blob: 6569e33458235993c8e62bb623708fbfef14119d [file] [log] [blame]
/*
* Copyright (c) 2017, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
#ifndef MDTX_BASES_H_
#define MDTX_BASES_H_
#ifdef __cplusplus
extern "C" {
#endif
#define MDTX_INTRA_16 1
#if CONFIG_LGT
static const int32_t lgt15_16[256] = {
// 1.5
66, 164, 261, 355, 446, 533, 615, 691, 760, 822, 877,
923, 960, 989, 1008, 1017, 197, 476, 715, 893, 996, 1015,
949, 802, 588, 324, 33, -261, -533, -760, -923, -1008, 325,
738, 980, 996, 781, 385, -100, -561, -893, -1018, -908, -588,
-131, 355, 760, 989, 450, 924, 987, 612, -36, -668, -1002,
-891, -384, 294, 842, 1015, 737, 131, -533, -960, 567, 1012,
732, -73, -825, -986, -441, 420, 981, 838, 96, -716, -1014,
-586, 262, 922, 677, 991, 279, -723, -976, -218, 765, 956,
156, -805, -933, -94, 842, 906, 31, -876, 776, 861, -252,
-1015, -366, 792, 848, -275, -1016, -344, 806, 835, -298, -1016,
-321, 821, 863, 632, -716, -798, 531, 921, -318, -995, 87,
1015, 148, -981, -375, 894, 583, -758, 933, 324, -983, -173,
1009, 19, -1012, 136, 991, -288, -947, 433, 881, -567, -794,
689, 983, -31, -967, 544, 678, -904, -198, 1009, -338, -830,
779, 416, -1000, 115, 939, -613, 1007, -391, -660, 977, -208,
-793, 912, -17, -897, 813, 175, -968, 685, 360, -1005, 532,
997, -709, -139, 877, -923, 240, 632, -1005, 585, 297, -945,
847, -81, -749, 988, -447, 940, -929, 442, 272, -846, 987,
-622, -62, 714, -1000, 774, -152, -548, 968, -891, 358, 821,
-993, 877, -507, -11, 525, -887, 992, -809, 391, 141, -631,
939, -974, 726, -268, 623, -854, 974, -969, 839, -600, 284,
69, -413, 704, -903, 986, -942, 776, -510, 178, 340, -500,
643, -765, 863, -933, 972, -981, 958, -903, 820, -711, 578,
-427, 262, -88,
};
#else
static const int32_t dst7_16[256] = {
96, 191, 284, 375, 462, 545, 624, 696, 762, 822, 874, 917,
953, 980, 998, 1007, 284, 545, 762, 917, 998, 998, 917, 762,
545, 284, 0, -284, -545, -762, -917, -998, 462, 822, 998, 953,
696, 284, -191, -624, -917, -1007, -874, -545, -96, 375, 762, 980,
624, 980, 917, 462, -191, -762, -1007, -822, -284, 375, 874, 998,
696, 96, -545, -953, 762, 998, 545, -284, -917, -917, -284, 545,
998, 762, 0, -762, -998, -545, 284, 917, 874, 874, 0, -874,
-874, 0, 874, 874, 0, -874, -874, 0, 874, 874, 0, -874,
953, 624, -545, -980, -96, 917, 696, -462, -998, -191, 874, 762,
-375, -1007, -284, 822, 998, 284, -917, -545, 762, 762, -545, -917,
284, 998, 0, -998, -284, 917, 545, -762, 1007, -96, -998, 191,
980, -284, -953, 375, 917, -462, -874, 545, 822, -624, -762, 696,
980, -462, -762, 822, 375, -998, 96, 953, -545, -696, 874, 284,
-1007, 191, 917, -624, 917, -762, -284, 998, -545, -545, 998, -284,
-762, 917, 0, -917, 762, 284, -998, 545, 822, -953, 284, 624,
-1007, 545, 375, -980, 762, 96, -874, 917, -191, -696, 998, -462,
696, -1007, 762, -96, -624, 998, -822, 191, 545, -980, 874, -284,
-462, 953, -917, 375, 545, -917, 998, -762, 284, 284, -762, 998,
-917, 545, 0, -545, 917, -998, 762, -284, 375, -696, 917, -1007,
953, -762, 462, -96, -284, 624, -874, 998, -980, 822, -545, 191,
191, -375, 545, -696, 822, -917, 980, -1007, 998, -953, 874, -762,
624, -462, 284, -96
};
#endif // CONFIG_LGT
#if CONFIG_LGT
// Quantized with 2^10 and scale factor 1.4142135623730951
static const int32_t lgt_klt4_inter[16] = {
-25, 17, 668, 1284, -60, 370, 1238, -651,
505, 1317, -293, 145, 1356, -474, 176, -59,
};
// Quantized with 2^10 and scale factor 2
static const int32_t lgt_klt8_inter[64] = {
33, 35, 28, 89, 402, 1017, 1404, 1009, 0, -34, -10,
415, 1185, 1090, -330, -1148, 0, 1, 365, 1211, 968, -680,
-549, 947, -63, -466, -1272, -935, 652, 158, -719, 717, 911,
1374, 590, -619, 89, 414, -639, 399, 1342, 295, -945, 276,
338, -724, 709, -443, 1030, -859, -116, 707, -894, 807, -587,
295, 705, -1124, 1091, -845, 587, -370, 204, -85,
};
// Quantized with 2^10 and scale factor 2.8284271247461903
static const int32_t lgt_klt16_inter[256] = {
325, 377, 419, 468, 526, 597, 684, 785, 860, 910, 951,
968, 947, 878, 765, 607, 348, 430, 500, 576, 656, 731,
794, 815, 713, 441, 32, -462, -912, -1174, -1159, -879, 627,
744, 781, 778, 711, 557, 293, -87, -521, -926, -1138, -963,
-356, 433, 929, 888, 634, 743, 725, 625, 417, 84, -389,
-887, -1030, -581, 296, 1047, 999, 83, -866, -1031, 547, 605,
487, 245, -88, -475, -829, -864, -237, 803, 1170, 204, -1103,
-1018, 352, 1127, 825, 836, 515, -13, -620, -1048, -878, 41,
985, 797, -430, -942, 146, 969, 63, -921, 739, 660, 180,
-436, -919, -797, 167, 1068, 458, -946, -655, 853, 538, -950,
-441, 942, 945, 643, -293, -1091, -910, 308, 1161, 272, -957,
-265, 865, -49, -786, 474, 575, -741, 977, 297, -853, -1024,
160, 1054, 135, -967, 73, 888, -522, -560, 884, -164, -831,
776, 1055, -136, -1213, -270, 1092, 292, -1005, 64, 828, -660,
-217, 833, -586, -213, 861, -655, 951, -596, -952, 721, 666,
-934, -115, 933, -714, -208, 876, -794, 117, 592, -927, 573,
858, -899, -368, 1040, -391, -668, 960, -363, -451, 914, -768,
176, 496, -929, 966, -521, 672, -948, 171, 719, -927, 341,
441, -903, 848, -399, -200, 720, -1025, 1055, -858, 412, 531,
-912, 601, 97, -681, 760, -391, -170, 673, -1016, 1145, -1099,
942, -721, 478, -204, 549, -1012, 892, -345, -384, 947, -1202,
1186, -1021, 792, -583, 397, -248, 139, -69, 20, 452, -1009,
1334, -1426, 1286, -1010, 681, -398, 198, -73, -5, 48, -64,
60, -49, 24,
};
#else
// These split inter mode TXs do not produce significant performance
// improvements. They have been left in this code in case someone else wants to
// pick up this idea later on. Current best results are had with CONFIG_LGT=1
// and CONFIG_MODE_DEP_INTER_TX=1
// Quantized with 2^10
static const int32_t single_klt16_inter[256] = {
344, 390, 432, 480, 535, 600, 677, 761, 830, 886, 934, 964,
954, 892, 789, 640, -444, -536, -607, -674, -730, -769, -778, -731,
-602, -356, -4, 420, 824, 1104, 1158, 956, -696, -794, -808, -764,
-644, -437, -146, 228, 602, 917, 1065, 906, 368, -386, -936, -1020,
-724, -770, -676, -484, -210, 141, 532, 862, 916, 546, -194, -972,
-1126, -353, 736, 1198, 734, 702, 456, 114, -293, -674, -881, -724,
-87, 769, 1122, 362, -888, -1122, 70, 1120, -856, -712, -278, 264,
734, 926, 602, -238, -974, -802, 357, 1082, 145, -1062, -380, 1002,
792, 544, -39, -589, -864, -588, 290, 1052, 564, -794, -946, 582,
876, -724, -732, 908, 964, 402, -484, -978, -674, 347, 1095, 414,
-908, -636, 826, 403, -933, 116, 852, -692, -912, -136, 818, 888,
-108, -1002, -412, 901, 420, -968, 8, 935, -668, -350, 1038, -672,
-922, 224, 1050, 305, -916, -620, 813, 542, -940, 16, 856, -782,
12, 768, -1004, 536, 826, -518, -920, 402, 932, -434, -794, 784,
172, -910, 780, -58, -678, 1051, -954, 433, 734, -737, -562, 857,
316, -964, 281, 692, -977, 490, 271, -861, 1077, -978, 682, -280,
-646, 890, 124, -956, 480, 556, -921, 473, 289, -898, 1138, -1084,
872, -606, 363, -136, 622, -1019, 337, 657, -906, 242, 612, -1143,
1256, -1080, 804, -552, 350, -187, 80, -24, 619, -1260, 1065, -152,
-832, 1316, -1251, 914, -566, 298, -146, 62, -18, -8, 5, 1,
-389, 988, -1415, 1534, -1314, 916, -520, 242, -93, 20, 14, -28,
26, -14, 12, -7
};
// Quantized with 2^10
static const int32_t single_klt4_inter[16] = { -14, 35, 672, 1282, -52, 384,
1232, -656, 447, 1332, -323, 138,
1376, -418, 158, -56 };
// Quantized with 2^10
static const int32_t single_klt8_inter[64] = {
48, 54, 60, 134, 410, 964, 1372, 1090, -16, 1, -35,
-431, -1156, -1124, 258, 1159, 46, 70, 402, 1177, 964, -680,
-662, 900, 220, 586, 1214, 883, -647, -259, 759, -698, 938,
1264, 520, -702, -13, 514, -720, 412, 1263, 346, -984, 66,
520, -787, 684, -386, 1052, -807, -336, 851, -908, 714, -471,
212, -747, 1215, -1096, 777, -498, 286, -146, 58
};
// Quantized with 2^10
static const int32_t comp_klt16_inter[256] = {
420, 444, 465, 485, 518, 548, 590, 644, 687, 734, 808,
902, 970, 1007, 996, 896, -500, -557, -573, -582, -596, -622,
-656, -664, -640, -540, -402, -128, 253, 876, 1366, 1404, 428,
502, 490, 461, 424, 379, 328, 244, 92, -124, -460, -856,
-1299, -1030, 226, 1801, 515, 440, 442, 414, 380, 294, 188,
-6, -144, -392, -712, -1177, -459, 950, 1479, -1390, -535, -606,
-500, -420, -292, -143, 110, 292, 593, 662, 1094, 157, -868,
-1224, 1584, -576, -554, -510, -465, -304, -198, 83, 184, 605,
542, 1034, 54, -545, -1410, 1654, -796, 218, 501, 441, 346,
237, -18, -41, -470, -364, -1035, -40, 70, 1918, -1566, 379,
130, -198, 526, 432, 334, 42, 24, -461, -218, -1120, -162,
-360, 2204, -972, -216, 396, -334, 134, 697, 509, 176, 3,
-461, -326, -1057, -205, -682, 2222, -374, -542, 431, -318, 110,
-8, 1199, 224, 100, -569, -304, -1096, -266, -630, 2036, -176,
-647, 394, -227, 74, -1, -9, 1022, 290, -327, -284, -979,
-244, -747, 2115, -300, -823, 462, -196, 48, 45, -40, 18,
1592, -1178, -337, -1042, 400, -87, 1488, -116, -888, 268, -38,
-18, 60, -43, -45, 47, -813, 1370, 656, -624, -853, -1259,
1558, 258, -430, 146, -119, 26, 11, 14, 47, -37, 322,
1168, -1456, -328, -1138, 1612, 471, -740, 169, -43, -33, 39,
-6, -14, 10, 6, 321, -290, -1234, 2196, -468, -1076, 676,
-76, -78, 92, -48, 20, -2, -4, -6, 6, -152, 1150,
-1542, -546, 1910, -718, -292, 296, -158, 42, 11, 12, -15,
-16, 18, -13
};
// Quantized with 2^10
static const int32_t comp_klt4_inter[16] = { -108, -28, 782, 1214, -110, 589,
1110, -711, 414, 1278, -421, 338,
1379, -340, 276, -64 };
// Quantized with 2^10
static const int32_t comp_klt8_inter[64] = {
16, 30, 26, -50, -50, 533, 1436, 1358, 20, 12, -69, -72, 636,
1516, 506, -1108, 28, -51, -102, 664, 1540, 248, -793, 824, -40, -130,
436, 1430, 329, -794, 918, -600, -124, 348, 1405, 694, -756, 795, -576,
260, 878, 1506, 596, -545, 539, -400, 204, -115, 1574, 2, -817, 750,
-586, 328, -178, 62, -963, 1336, -996, 598, -322, 150, -58, 13
};
#endif // CONFIG_LGT
static const int32_t mdt4_mode0[16] = { -260, -168, 696, 1231, -308, 699,
1084, -582, 1080, 884, -58, 382,
876, -894, 659, -310 };
static const int32_t mdt4_mode1[16] = { -118, -56, 751, 1231, -336, 442,
1136, -705, 948, 1082, -39, 165,
1036, -854, 490, -238 };
static const int32_t mdt4_mode2[16] = { -133, -83, 680, 1269, -338, 400,
1186, -644, 864, 1146, -40, 186,
1104, -785, 476, -190 };
static const int32_t mdt4_mode3[16] = { -169, -31, 732, 1238, -270, 736,
1040, -633, 1100, 885, -173, 274,
887, -878, 671, -297 };
static const int32_t mdt4_mode4[16] = { -146, -139, 616, 1295, -284, 573,
1184, -534, 776, 1158, -230, 320,
1181, -640, 512, -180 };
static const int32_t mdt4_mode5[16] = { -152, -138, 615, 1295, -336, 508,
1192, -552, 862, 1126, -110, 273,
1104, -744, 534, -202 };
static const int32_t mdt4_mode6[16] = { -166, -212, 550, 1312, -415, 464,
1214, -486, 944, 1062, 28, 279,
1004, -841, 566, -247 };
static const int32_t mdt4_mode7[16] = { -144, -74, 624, 1296, -456, 436,
1164, -586, 1066, 966, 116, 118,
855, -984, 582, -242 };
static const int32_t mdt4_mode8[16] = { -194, -125, 651, 1273, -392, 634,
1106, -564, 1066, 942, -25, 268,
877, -890, 670, -296 };
static const int32_t mdt4_mode9[16] = { 743, 1118, 246, -484, 686, -354,
-1172, -359, 764, 10, 67, 1229,
702, -849, 812, -474 };
static const int32_t mdt4_mode10[16] = { -266, -205, 722, 1210, -237, 793,
1054, -548, 1072, 842, -150, 468,
907, -848, 664, -341 };
static const int32_t mdt4_mode11[16] = { -310, -281, 648, 1225, -280, 774,
1094, -472, 1020, 873, -128, 527,
939, -810, 682, -308 };
static const int32_t mdt4_mode12[16] = { -144, -120, 642, 1284, -325, 312,
1228, -622, 1091, 932, 126, 147,
884, -1056, 400, -200 };
static const int32_t mdt8_mode0[64] = {
12, -17, 50, 393, 791, 1038, 1161, 993, -34, -182, 25, 886, 1296,
437, -745, -974, -156, -180, 610, 1236, 50, -1144, -254, 929, -259, 262,
1341, 533, -752, 379, 698, -884, 920, 1554, 619, -252, 329, 86, -512,
332, 1279, 134, -781, 650, -101, -589, 899, -585, 1084, -872, 192, 340,
-777, 898, -744, 378, 668, -930, 996, -916, 774, -562, 343, -142
};
static const int32_t mdt8_mode1[64] = {
35, 36, -4, 82, 420, 806, 1266, 1326, 67, 11, -147,
198, 1162, 1263, -68, -1086, -126, 68, 172, -921, -1200, 632,
900, -804, -113, 404, -330, -1526, 262, 456, -952, 633, 524,
-426, -1620, -424, 312, -633, 602, -270, 1784, 954, 204, 108,
-196, 80, -68, -1, 596, -1354, -312, 344, -736, 834, -656,
351, 590, -1050, 1126, -814, 694, -490, 276, -120
};
static const int32_t mdt8_mode2[64] = {
8, 48, -23, 2, 312, 754, 1292, 1363, 78, 54, -148,
-22, 828, 1353, 318, -1244, -50, 71, 216, -473, -1465, -11,
1120, -718, 100, 214, 80, -941, -740, 1154, -1047, 518, 466,
230, -1074, -1440, 520, -600, 249, -50, 1373, 1409, 394, 402,
-32, -82, 15, -13, 860, -685, -1356, 812, -624, 298, -90,
58, 1156, -1277, 986, -437, 234, -81, 58, -8
};
static const int32_t mdt8_mode3[64] = {
32, 12, 30, 230, 594, 982, 1224, 1150, 30, -150, -94,
673, 1364, 794, -492, -990, -110, -269, 348, 1262, 468, -1042,
-494, 919, 346, -284, -1462, -753, 610, -176, -635, 694, 938,
1554, 571, -260, 328, 69, -532, 333, 1462, -80, -626, 680,
-229, -462, 814, -514, 918, -1009, 544, 74, -648, 886, -817,
402, 448, -761, 954, -996, 900, -692, 438, -172
};
static const int32_t mdt8_mode4[64] = {
18, -19, -82, 25, 398, 916, 1280, 1244, 34, -154, -302, 354, 1298,
1080, -204, -1030, 188, 368, -338, -1368, -804, 712, 514, -787, -340, 328,
1469, 760, -487, 294, 682, -670, 810, 1569, 541, -250, 473, 130, -572,
394, 1427, 100, -612, 750, -152, -552, 818, -463, 1026, -908, 466, 168,
-688, 924, -790, 350, 547, -794, 970, -983, 866, -648, 406, -154
};
static const int32_t mdt8_mode5[64] = {
0, -44, 104, 482, 770, 954, 1133, 1078, -46, -142, 151,
925, 1214, 498, -625, -1086, -112, -154, 652, 1217, 6, -1186,
-384, 836, -222, 190, 1279, 444, -907, 306, 836, -814, 151,
1255, 1008, -555, 280, 446, -858, 509, 1448, 1003, -384, 359,
170, -550, 600, -348, 1251, -790, 102, 366, -764, 849, -681,
304, 667, -952, 962, -926, 783, -561, 338, -134
};
static const int32_t mdt8_mode6[64] = {
21, 26, -9, -138, -164, 458, 1306, 1493, 66, -17, -331,
-318, 764, 1530, 529, -880, 38, 218, 72, -1042, -1499, -51,
538, -720, 354, -144, -1383, -1146, 217, -114, -684, 542, 426,
1396, 891, -506, 121, 525, -737, 426, 1417, 780, -535, 506,
216, -622, 682, -372, 1112, -798, 50, 610, -872, 865, -618,
234, 798, -965, 1042, -890, 683, -468, 244, -66
};
static const int32_t mdt8_mode7[64] = {
48, -1, -22, 63, 285, 639, 1206, 1498, -8, -88, -110,
427, 1242, 1252, 168, -925, 24, 176, -120, -1066, -988, 600,
996, -826, 136, 91, -852, -1281, 354, 564, -1024, 553, 330,
-424, -1390, -76, 566, -1006, 738, -300, 1462, 1358, 264, -30,
290, -212, 80, -70, 1247, -960, -398, 653, -820, 598, -316,
80, 608, -1096, 1132, -892, 628, -354, 150, -56
};
static const int32_t mdt8_mode8[64] = {
20, -10, 44, 301, 671, 1020, 1206, 1075, -12, -156, -34,
746, 1332, 674, -588, -1020, -132, -244, 414, 1259, 354, -1102,
-415, 920, -333, 176, 1362, 724, -731, 193, 709, -774, 945,
1546, 688, -198, 288, 87, -471, 290, 1444, -78, -720, 648,
-178, -476, 802, -515, 945, -1038, 499, 102, -636, 862, -806,
409, 441, -776, 962, -984, 890, -687, 454, -192
};
static const int32_t mdt8_mode9[64] = {
-48, 54, 474, 938, 1128, 1001, 749, 498, -225, 3, 976,
1242, 40, -1004, -776, -192, 9, 749, 1112, -224, -1122, -28,
882, 556, 496, 1196, 526, -368, 367, 635, -596, -1101, 1146,
873, -510, 62, 461, -706, -194, 1052, 1154, -277, -392, 838,
-524, -108, 860, -950, 1000, -916, 570, -58, -483, 826, -900,
551, 502, -723, 874, -938, 898, -766, 556, -272
};
static const int32_t mdt8_mode10[64] = {
-28, 94, 624, 1116, 1132, 844, 614, 422, -188, 171, 1090,
1020, -371, -1152, -649, -118, 45, 737, 953, -475, -1070, 298,
1035, 456, 376, 1130, 506, -417, 406, 620, -747, -1114, 1130,
970, -468, -27, 418, -658, -166, 1059, 1235, -218, -376, 764,
-470, -103, 791, -1020, 988, -910, 562, -45, -483, 810, -921,
577, 485, -722, 881, -960, 914, -762, 514, -246
};
static const int32_t mdt8_mode11[64] = {
-33, 21, 495, 988, 1112, 963, 784, 440, -134, 138, 1038,
1183, -6, -1012, -782, -212, -74, 442, 972, -185, -1204, -94,
1050, 674, 162, 1017, 795, -504, 46, 868, -364, -1166, 931,
1236, -198, -280, 555, -407, -382, 1032, 1386, 46, -466, 672,
-306, -310, 808, -872, 1046, -872, 436, 95, -578, 868, -875,
538, 514, -810, 922, -996, 877, -682, 408, -176
};
static const int32_t mdt8_mode12[64] = {
13, 22, -14, 176, 592, 797, 1186, 1330, 26, 0, -94,
424, 1299, 1030, -162, -1108, 48, -40, -115, 746, 1004, -790,
-1088, 898, -73, 172, -278, -1342, 39, 912, -1064, 559, -255,
-316, -1116, -966, 796, -878, 618, -255, -816, -1489, -716, 528,
-497, 452, -235, 116, 1388, 265, -1320, 444, -444, 238, -66,
24, 1237, -1332, 770, -467, 264, -94, 17, 4
};
#if MDTX_INTRA_16
#if CONFIG_LGT
// intra mode dependent transforms, trained with LGT
static const int32_t mdt16_mode0[256] = {
169, 276, 360, 451, 550, 637, 710, 774, 825, 871, 909,
920, 914, 899, 868, 796, 349, 592, 769, 888, 949, 934,
847, 673, 430, 148, -156, -459, -717, -905, -995, -911, 470,
794, 958, 918, 676, 262, -226, -695, -983, -1011, -830, -458,
31, 536, 879, 877, 441, 784, 868, 543, -68, -679, -1040,
-926, -353, 397, 978, 1075, 644, -117, -752, -859, 569, 899,
699, -35, -841, -1096, -561, 420, 1045, 822, -4, -806, -977,
-363, 459, 808, 589, 821, 377, -545, -1040, -443, 677, 1026,
165, -885, -933, 132, 1063, 742, -304, -818, 785, 835, -128,
-1073, -652, 643, 967, -184, -1043, -281, 873, 660, -549, -919,
-9, 768, -1012, -656, 679, 952, -348, -893, 256, 921, -172,
-943, 50, 953, 30, -1010, -286, 897, 1069, 249, -1013, -281,
955, 67, -951, 167, 881, -453, -801, 675, 622, -847, -564,
854, 1137, -255, -936, 584, 574, -923, -98, 953, -457, -684,
856, 193, -908, 381, 807, -803, 1063, -669, -511, 942, -320,
-645, 877, -187, -746, 885, -26, -862, 778, 122, -1027, 762,
951, -969, 168, 703, -976, 417, 463, -950, 686, 128, -810,
851, -174, -645, 1046, -610, 771, -1066, 744, -65, -647, 988,
-762, 137, 550, -955, 808, -252, -457, 918, -948, 476, 535,
-917, 1003, -772, 297, 260, -727, 930, -818, 440, 118, -651,
995, -1037, 795, -336, 391, -751, 991, -1090, 1030, -840, 526,
-152, -234, 577, -814, 924, -886, 711, -461, 174, 97, -231,
393, -561, 726, -881, 989, -1051, 1076, -1043, 948, -810, 639,
-442, 249, -82,
};
static const int32_t mdt16_mode1[256] = {
160, 258, 349, 442, 524, 595, 661, 760, 830, 887, 911,
932, 934, 913, 880, 824, 319, 535, 733, 895, 944, 930,
887, 747, 469, 203, -112, -445, -718, -894, -987, -896, 400,
745, 939, 938, 765, 401, -127, -729, -1104, -1080, -730, -352,
46, 450, 806, 852, 356, 685, 749, 472, 49, -440, -930,
-1084, -503, 428, 1093, 1131, 612, -177, -816, -889, 571, 942,
820, 155, -605, -1034, -918, 95, 1098, 938, -164, -861, -807,
-218, 442, 666, 793, 1148, 488, -711, -1145, -423, 723, 977,
-38, -914, -632, 316, 846, 484, -302, -594, 349, 560, 40,
-802, -675, 402, 913, -120, -983, 33, 1171, 411, -985, -1128,
211, 1025, 1092, 797, -868, -1167, 440, 1153, -117, -950, 97,
755, -110, -721, 16, 741, 139, -571, 895, 264, -915, -262,
877, 53, -890, 309, 706, -659, -596, 973, 425, -1168, -471,
975, 1324, -239, -991, 685, 519, -1003, -86, 848, -537, -416,
859, -19, -839, 491, 687, -716, 1098, -670, -411, 845, -426,
-502, 868, -357, -567, 899, -286, -762, 1004, -140, -999, 847,
994, -987, 287, 546, -982, 561, 382, -916, 752, -78, -707,
964, -382, -468, 1002, -641, 731, -988, 742, -211, -447, 830,
-702, 155, 488, -932, 870, -307, -483, 1002, -1138, 621, 536,
-900, 963, -721, 194, 442, -880, 988, -859, 479, 58, -583,
920, -933, 810, -420, -230, 457, -608, 676, -602, 375, -49,
-352, 785, -1050, 1187, -1186, 1055, -812, 552, -248, 290, -557,
840, -1087, 1234, -1216, 1051, -872, 747, -553, 406, -305, 234,
-198, 143, -58,
};
static const int32_t mdt16_mode2[256] = {
171, 258, 339, 423, 527, 628, 690, 782, 841, 882, 915,
928, 921, 901, 864, 806, 333, 532, 717, 864, 924, 932,
876, 691, 480, 215, -104, -422, -691, -907, -1036, -963, 493,
775, 957, 954, 720, 329, -88, -603, -956, -1037, -868, -472,
2, 466, 849, 904, 466, 758, 831, 574, 41, -589, -1076,
-968, -404, 299, 916, 1084, 715, -21, -724, -911, 675, 933,
684, 16, -782, -1056, -635, 309, 946, 846, 165, -717, -1062,
-469, 456, 813, 574, 731, 412, -344, -1072, -659, 637, 1083,
281, -783, -974, 4, 1011, 810, -287, -819, 801, 820, -71,
-1065, -793, 627, 1118, -166, -1097, -305, 798, 711, -373, -842,
-70, 588, 995, 630, -602, -983, 280, 970, -233, -898, 162,
898, -131, -984, -9, 1050, 313, -881, 1135, 249, -1009, -399,
905, 142, -918, 229, 863, -549, -750, 655, 603, -811, -605,
838, 1091, -267, -974, 516, 627, -825, -54, 871, -468, -680,
843, 251, -954, 364, 904, -873, 1151, -827, -570, 1023, -280,
-677, 872, -351, -617, 898, -19, -774, 693, 88, -915, 691,
761, -918, 196, 627, -904, 446, 362, -940, 772, 101, -882,
930, -162, -706, 1137, -663, 727, -1081, 714, 41, -757, 1004,
-701, 147, 487, -942, 754, -140, -602, 984, -920, 442, 521,
-895, 918, -603, 122, 369, -789, 990, -806, 335, 232, -771,
1077, -1047, 764, -328, 305, -576, 723, -707, 555, -289, -102,
485, -832, 1099, -1199, 1150, -973, 695, -432, 164, 307, -656,
970, -1129, 1126, -1096, 1004, -917, 809, -620, 455, -264, 119,
-46, 25, -10,
};
static const int32_t mdt16_mode3[256] = {
169, 263, 368, 461, 539, 620, 698, 763, 827, 889, 907,
903, 913, 914, 877, 805, 457, 662, 831, 947, 995, 943,
812, 617, 379, 75, -201, -466, -707, -856, -921, -863, 609,
872, 1013, 871, 503, 48, -389, -764, -994, -977, -730, -316,
98, 533, 896, 898, 591, 833, 730, 303, -215, -714, -1001,
-805, -210, 490, 1012, 1087, 647, -123, -832, -949, 859, 1036,
540, -390, -1124, -1061, -230, 719, 1057, 586, -209, -760, -738,
-231, 363, 604, 567, 681, 53, -833, -902, 126, 1105, 822,
-380, -1120, -657, 457, 1056, 585, -345, -751, 936, 638, -599,
-1076, -112, 956, 608, -624, -877, 136, 955, 431, -751, -889,
123, 805, 1071, 373, -973, -679, 764, 697, -661, -673, 602,
680, -580, -847, 324, 1029, 151, -818, 800, -46, -945, 99,
940, -388, -842, 677, 728, -891, -572, 945, 465, -943, -482,
871, -1113, 536, 827, -802, -280, 973, -251, -790, 685, 426,
-958, 77, 841, -563, -723, 838, 1028, -855, -289, 890, -520,
-363, 852, -442, -493, 903, -330, -683, 927, -69, -1085, 852,
-863, 1102, -398, -470, 970, -650, -153, 859, -923, 197, 662,
-959, 334, 507, -971, 603, 553, -907, 774, -293, -419, 913,
-852, 333, 384, -949, 947, -415, -410, 985, -1074, 566, 517,
-908, 1006, -851, 371, 227, -749, 1045, -994, 661, -128, -392,
793, -918, 735, -332, 276, -605, 854, -1027, 1037, -920, 650,
-275, -116, 485, -780, 962, -984, 810, -536, 213, 131, -307,
492, -656, 756, -825, 881, -931, 946, -957, 964, -920, 799,
-582, 357, -132,
};
static const int32_t mdt16_mode4[256] = {
174, 248, 335, 440, 546, 624, 712, 801, 858, 874, 917,
933, 927, 900, 838, 757, 339, 535, 690, 792, 882, 905,
855, 734, 518, 242, -77, -463, -798, -985, -1019, -908, 444,
701, 889, 919, 774, 461, 9, -498, -920, -1106, -964, -536,
33, 545, 847, 840, 501, 852, 992, 683, 30, -648, -1020,
-922, -451, 236, 837, 1045, 671, -76, -693, -813, 721, 958,
699, -60, -832, -1032, -546, 270, 890, 805, 45, -800, -994,
-330, 544, 927, 539, 715, 375, -503, -1040, -484, 608, 1075,
368, -816, -1029, 58, 1044, 724, -318, -879, 827, 786, -150,
-1047, -682, 608, 1036, -93, -1089, -453, 791, 806, -383, -866,
-47, 698, 1062, 602, -661, -904, 296, 893, -142, -922, -11,
908, 65, -894, -68, 1045, 348, -1021, 1166, 205, -1099, -301,
1014, 66, -976, 130, 872, -379, -774, 571, 602, -760, -553,
782, -1011, 316, 888, -651, -522, 991, 58, -985, 434, 760,
-837, -218, 920, -385, -815, 808, 1057, -774, -472, 991, -376,
-612, 901, -184, -745, 837, -14, -833, 762, 155, -1026, 708,
863, -1021, 202, 683, -902, 411, 420, -934, 679, 155, -865,
929, -225, -663, 1058, -598, -712, 1050, -725, 80, 636, -974,
728, -52, -630, 1010, -824, 203, 512, -941, 939, -444, 519,
-914, 934, -663, 173, 368, -823, 1005, -826, 377, 199, -691,
993, -1028, 792, -324, 340, -705, 913, -976, 864, -592, 204,
218, -573, 827, -984, 1022, -953, 768, -493, 186, 197, -445,
666, -851, 974, -1057, 1075, -1034, 922, -808, 697, -583, 463,
-330, 192, -72,
};
static const int32_t mdt16_mode5[256] = {
155, 254, 333, 421, 537, 630, 708, 766, 810, 864, 899,
907, 929, 936, 891, 821, 244, 476, 685, 810, 899, 943,
908, 768, 550, 268, -86, -474, -757, -913, -1002, -920, 403,
690, 935, 980, 798, 461, -40, -623, -986, -1083, -920, -495,
46, 513, 765, 768, 551, 916, 925, 528, 32, -531, -992,
-953, -401, 374, 965, 1037, 581, -93, -710, -882, 675, 1019,
802, 4, -850, -1111, -528, 460, 970, 635, -139, -797, -886,
-273, 518, 824, 661, 814, 220, -641, -900, -273, 687, 1000,
157, -987, -933, 266, 1106, 666, -382, -848, 780, 789, -192,
-1037, -565, 693, 989, -213, -1045, -243, 843, 584, -575, -954,
-20, 882, 963, 599, -714, -922, 344, 880, -192, -871, 133,
957, -57, -1042, -139, 1033, 389, -892, -1220, -136, 1159, 150,
-1182, -1, 1034, -250, -815, 504, 568, -632, -352, 753, 401,
-704, 930, -319, -731, 675, 371, -919, 124, 925, -633, -659,
983, 108, -1018, 533, 831, -869, -1115, 685, 519, -1029, 404,
648, -881, 266, 630, -906, 152, 765, -834, -59, 976, -663,
-963, 1051, -309, -568, 971, -561, -325, 903, -784, 23, 707,
-907, 286, 575, -1020, 609, -688, 1028, -778, 186, 552, -936,
771, -215, -423, 875, -881, 400, 388, -969, 1064, -543, 532,
-883, 957, -748, 309, 236, -733, 1028, -964, 559, 9, -561,
923, -986, 782, -340, 350, -722, 978, -1131, 1111, -968, 679,
-283, -126, 476, -714, 816, -814, 684, -465, 186, 94, -214,
353, -498, 641, -772, 869, -953, 1011, -1045, 1047, -964, 807,
-589, 365, -142,
};
static const int32_t mdt16_mode6[256] = {
159, 262, 374, 469, 543, 629, 725, 808, 848, 878, 911,
914, 898, 876, 844, 789, 290, 525, 744, 893, 979, 983,
869, 658, 401, 88, -202, -483, -730, -896, -976, -913, 458,
781, 938, 919, 706, 282, -262, -720, -1001, -1013, -763, -384,
14, 492, 884, 947, 554, 852, 839, 546, -55, -681, -1032,
-904, -315, 497, 1026, 1017, 530, -191, -741, -841, 540, 931,
732, -36, -876, -1068, -463, 526, 1092, 770, -171, -954, -931,
-211, 468, 663, 671, 840, 374, -587, -988, -296, 753, 939,
-27, -1010, -837, 264, 1080, 694, -309, -837, 826, 879, -239,
-1172, -550, 726, 939, -328, -946, 20, 888, 419, -661, -869,
29, 795, 1079, 566, -875, -825, 647, 851, -481, -828, 418,
856, -362, -886, 220, 936, 192, -783, -1113, -64, 990, 24,
-885, 302, 808, -498, -763, 630, 640, -844, -401, 1004, 494,
-935, 1165, -421, -847, 692, 377, -944, 245, 776, -634, -457,
931, -55, -924, 497, 825, -836, -955, 764, 295, -956, 512,
470, -927, 378, 600, -951, 263, 806, -854, -57, 1034, -790,
-1002, 1160, -478, -483, 1102, -804, -106, 860, -835, 163, 552,
-820, 369, 413, -848, 488, -644, 943, -853, 466, 220, -822,
978, -562, -138, 815, -1052, 642, 158, -788, 1001, -540, 432,
-838, 1037, -932, 621, -146, -387, 795, -954, 800, -311, -295,
796, -1032, 886, -387, -248, 583, -887, 1042, -1110, 1101, -970,
762, -409, -17, 375, -630, 767, -741, 518, -197, -11, -17,
88, -175, 320, -492, 671, -870, 1004, -1073, 1112, -1124, 1059,
-848, 521, -173,
};
static const int32_t mdt16_mode7[256] = {
145, 227, 293, 403, 507, 570, 641, 702, 763, 822, 871,
930, 968, 978, 973, 928, 409, 619, 772, 905, 976, 945,
850, 722, 534, 275, -12, -309, -608, -832, -962, -942, 561,
817, 953, 897, 657, 280, -190, -622, -933, -1032, -892, -556,
-74, 440, 825, 917, 674, 935, 836, 433, -162, -777, -1083,
-858, -302, 321, 885, 1055, 711, -20, -647, -789, 703, 886,
567, -208, -952, -1059, -341, 582, 1015, 743, -15, -747, -995,
-445, 453, 853, 786, 830, 140, -877, -1048, -76, 987, 915,
-84, -915, -781, 160, 934, 675, -248, -714, 827, 516, -462,
-927, -216, 798, 724, -398, -977, -210, 967, 770, -631, -1126,
-20, 897, 1087, 439, -833, -791, 463, 815, -324, -923, 195,
992, 4, -1002, -178, 1018, 355, -801, 913, 30, -1003, -168,
946, -16, -953, 233, 999, -400, -1007, 517, 793, -756, -621,
796, 1099, -459, -996, 773, 562, -1036, -22, 987, -440, -722,
739, 221, -801, 365, 692, -673, -962, 853, 301, -986, 514,
501, -921, 319, 669, -878, 46, 823, -801, -60, 1045, -755,
-816, 1016, -280, -649, 981, -531, -281, 858, -712, -73, 824,
-901, 193, 633, -1117, 667, 657, -1039, 776, -149, -560, 957,
-820, 206, 562, -941, 768, -140, -573, 978, -986, 489, 465,
-816, 873, -675, 220, 347, -795, 974, -788, 307, 325, -819,
1069, -1045, 825, -364, 352, -709, 904, -947, 839, -560, 164,
267, -694, 963, -1069, 1046, -862, 615, -382, 139, 225, -508,
709, -850, 976, -1049, 1078, -1065, 983, -827, 650, -487, 340,
-232, 150, -58,
};
static const int32_t mdt16_mode8[256] = {
168, 251, 322, 399, 505, 612, 688, 752, 808, 867, 911,
957, 960, 932, 892, 793, 314, 560, 752, 885, 987, 992,
917, 736, 444, 121, -142, -416, -714, -897, -941, -824, 481,
749, 893, 879, 685, 350, -133, -702, -1045, -1068, -840, -388,
74, 553, 902, 843, 673, 929, 898, 513, -96, -659, -1008,
-970, -323, 543, 994, 909, 471, -143, -712, -800, 694, 894,
553, -134, -715, -851, -458, 373, 978, 777, -27, -916, -1105,
-419, 586, 1030, 621, 798, 402, -452, -976, -533, 449, 1017,
414, -766, -1044, -18, 1048, 822, -298, -904, 991, 838, -403,
-1279, -586, 738, 989, -81, -968, -407, 651, 688, -317, -758,
-99, 591, 1085, 342, -939, -740, 615, 883, -328, -837, 284,
875, -182, -972, -31, 996, 283, -894, 895, 20, -928, -56,
1029, -61, -1066, 271, 862, -521, -784, 719, 680, -880, -579,
855, 1091, -415, -867, 734, 474, -1034, 18, 989, -496, -671,
821, 225, -878, 322, 783, -747, 999, -768, -421, 982, -433,
-576, 990, -261, -654, 875, -180, -781, 790, 38, -997, 797,
777, -934, 222, 603, -956, 453, 433, -960, 780, 73, -854,
990, -282, -662, 1034, -601, 767, -1155, 821, -111, -584, 952,
-729, 130, 514, -959, 837, -270, -438, 889, -909, 468, 529,
-959, 1058, -792, 299, 228, -665, 927, -931, 611, -49, -511,
879, -975, 797, -370, 265, -589, 846, -1000, 977, -813, 485,
-109, -256, 632, -909, 1016, -1007, 832, -556, 231, 143, -312,
506, -704, 852, -955, 1016, -1018, 986, -938, 847, -735, 629,
-467, 284, -103,
};
static const int32_t mdt16_mode9[256] = {
146, 237, 323, 402, 498, 598, 678, 760, 824, 884, 925,
935, 919, 923, 898, 842, 341, 558, 728, 875, 985, 980,
904, 745, 508, 171, -182, -470, -683, -848, -932, -876, 479,
785, 966, 960, 731, 308, -236, -746, -1047, -1012, -745, -351,
87, 516, 825, 832, 531, 852, 868, 555, -62, -766, -1112,
-858, -134, 608, 1008, 931, 479, -225, -748, -805, 492, 735,
601, 22, -683, -1018, -560, 467, 1106, 749, -217, -1004, -1036,
-298, 606, 915, 622, 850, 418, -451, -997, -559, 536, 1044,
247, -904, -943, 173, 1072, 737, -285, -803, -663, -839, -147,
955, 927, -507, -1052, 73, 1023, 245, -917, -612, 669, 893,
-17, -717, 1007, 719, -639, -1086, 245, 974, -114, -969, 127,
931, -102, -934, 34, 940, 252, -771, 1128, 318, -1125, -411,
983, 75, -797, 183, 721, -537, -614, 759, 481, -986, -430,
888, 1121, -237, -959, 539, 568, -879, -26, 901, -578, -543,
946, 18, -925, 514, 784, -836, 1045, -658, -509, 932, -345,
-649, 939, -228, -703, 921, -161, -807, 865, -28, -955, 765,
988, -1029, 156, 738, -996, 497, 323, -901, 777, -25, -724,
898, -308, -489, 987, -623, 738, -935, 571, 6, -610, 982,
-860, 249, 456, -889, 821, -354, -378, 967, -1135, 584, 555,
-950, 1002, -735, 206, 369, -800, 982, -863, 493, 29, -534,
914, -994, 793, -355, 450, -853, 1098, -1177, 1113, -959, 683,
-358, 11, 291, -554, 723, -750, 638, -446, 180, 68, -203,
312, -368, 446, -607, 794, -921, 1042, -1153, 1156, -1026, 837,
-618, 398, -141,
};
static const int32_t mdt16_mode10[256] = {
147, 251, 354, 453, 536, 621, 695, 765, 836, 887, 922,
928, 901, 888, 873, 820, 303, 565, 755, 890, 1003, 967,
863, 737, 454, 110, -247, -535, -735, -862, -905, -847, 385,
713, 973, 980, 696, 252, -285, -739, -1065, -1049, -743, -325,
98, 554, 851, 846, 434, 755, 868, 579, 7, -635, -1063,
-926, -239, 557, 1088, 1009, 447, -291, -789, -824, 371, 709,
736, 160, -664, -1154, -702, 399, 1180, 846, -291, -1075, -823,
-62, 555, 648, 815, 1053, 421, -596, -1086, -457, 696, 962,
20, -919, -729, 380, 993, 490, -342, -647, 917, 1012, -132,
-1108, -568, 715, 710, -425, -807, 222, 974, 110, -1002, -693,
285, 730, 1116, 594, -985, -759, 837, 746, -651, -805, 609,
647, -611, -661, 485, 804, 23, -658, -915, -72, 903, -77,
-821, 393, 766, -606, -591, 833, 304, -953, -125, 1239, 323,
-1116, 1032, -299, -878, 708, 400, -898, 71, 829, -629, -393,
984, -218, -861, 765, 709, -953, 1158, -792, -359, 957, -492,
-458, 958, -437, -569, 922, -267, -655, 820, -159, -907, 787,
-951, 1033, -350, -498, 912, -586, -210, 854, -899, 222, 624,
-979, 552, 356, -1004, 670, 709, -989, 802, -309, -430, 956,
-940, 424, 309, -787, 838, -505, -226, 900, -1081, 550, 561,
-900, 995, -908, 492, 66, -572, 895, -964, 702, -215, -294,
766, -970, 900, -428, 268, -528, 781, -996, 1082, -975, 675,
-301, -72, 389, -681, 920, -1009, 890, -646, 275, 113, -286,
457, -572, 678, -782, 907, -945, 986, -1068, 1034, -914, 732,
-530, 345, -130,
};
static const int32_t mdt16_mode11[256] = {
151, 254, 353, 438, 548, 625, 687, 765, 832, 874, 911, 933,
926, 903, 870, 806, 395, 605, 784, 919, 976, 960, 861, 647,
405, 136, -171, -457, -718, -878, -940, -884, 512, 833, 1007, 907,
580, 211, -272, -767, -1016, -971, -750, -387, 58, 530, 883, 894,
490, 779, 850, 496, -144, -735, -1079, -927, -227, 583, 1064, 1016,
480, -245, -717, -794, 627, 798, 580, -123, -851, -971, -466, 469,
1098, 854, -88, -964, -1044, -246, 575, 740, 830, 958, 295, -669,
-1011, -395, 684, 968, 59, -906, -771, 267, 1059, 615, -409, -712,
386, 464, 2, -647, -640, 283, 960, 101, -1045, -394, 971, 809,
-633, -1292, -43, 1126, 1300, 743, -923, -1214, 358, 1135, -67, -958,
-110, 703, 177, -494, -210, 540, 292, -528, 863, 108, -873, -85,
934, -61, -947, 156, 907, -426, -808, 636, 639, -982, -663, 1091,
1086, -327, -955, 659, 654, -935, -198, 963, -377, -756, 768, 317,
-899, 358, 777, -736, -986, 668, 506, -885, 221, 646, -807, 126,
805, -900, -137, 1058, -791, -238, 1016, -696, 948, -1036, 87, 777,
-1017, 339, 588, -911, 578, 205, -908, 890, -108, -615, 914, -513,
-677, 971, -629, -19, 689, -971, 624, 45, -673, 1030, -818, 145,
574, -981, 1015, -506, -575, 969, -952, 651, -131, -462, 833, -864,
578, -120, -358, 795, -1056, 1038, -822, 379, 316, -592, 692, -621,
386, -44, -347, 700, -983, 1123, -1149, 1073, -907, 702, -501, 217,
-326, 680, -958, 1136, -1213, 1206, -1090, 905, -659, 427, -229, 75,
40, -52, 23, -13,
};
static const int32_t mdt16_mode12[256] = {
47, 192, 406, 471, 585, 644, 706, 754, 806, 849, 882,
901, 922, 915, 882, 844, 166, 372, 616, 763, 946, 967,
921, 799, 497, 229, -72, -430, -715, -893, -1037, -1034, 285,
658, 1097, 1050, 789, 375, -106, -565, -919, -1056, -933, -553,
-20, 426, 697, 818, 366, 816, 1034, 755, -40, -665, -1060,
-952, -294, 562, 1042, 871, 414, -129, -661, -778, 304, 641,
775, 145, -796, -945, -397, 440, 1065, 837, -18, -981, -1152,
-386, 568, 889, 650, 1040, 602, -525, -1140, -451, 632, 894,
276, -710, -899, 163, 1060, 604, -307, -739, 1578, 1204, -646,
-972, -112, 775, 407, -236, -745, -65, 764, 352, -643, -512,
170, 530, 804, 478, -832, -318, 871, 450, -939, -648, 945,
772, -720, -881, 348, 980, 158, -753, 755, -61, -685, 423,
809, -635, -803, 581, 867, -761, -609, 931, 463, -1020, -614,
962, 516, -100, -651, 639, 549, -1052, -173, 1130, -423, -717,
767, 33, -878, 790, 899, -1039, 1215, -770, -587, 1145, -390,
-710, 1092, -343, -583, 784, -28, -744, 526, 296, -780, 466,
606, -585, -89, 807, -865, 419, 529, -1097, 962, -312, -545,
974, -481, -465, 1158, -746, -1281, 1660, -1221, 572, 237, -777,
910, -535, 41, 212, -225, 58, 191, -415, 302, -45, 314,
-315, 378, -483, 574, -447, -14, 501, -1003, 1185, -802, 105,
726, -1272, 1230, -559, 206, -336, 770, -1189, 1242, -1241, 1127,
-912, 479, -130, -121, 428, -575, 443, -257, 73, 177, -171,
166, -216, 193, -150, 237, -426, 685, -1052, 1332, -1367, 1218,
-929, 582, -226,
};
#else // CONFIG_LGT
// intra mode dependent transforms, trained without LGT
static const int32_t mdt16_mode0[256] = {
241, 351, 423, 506, 586, 657, 709, 796, 849, 888, 878, 884,
876, 866, 833, 765, 439, 700, 853, 930, 947, 878, 752, 557,
309, 47, -226, -507, -743, -906, -983, -909, 549, 887, 987, 824,
495, 83, -355, -813, -1042, -1011, -732, -337, 129, 584, 870, 857,
594, 895, 790, 281, -369, -860, -1035, -763, -144, 532, 977, 1009,
587, -133, -761, -885, 760, 907, 424, -322, -918, -964, -400, 643,
1108, 661, -322, -899, -903, -284, 465, 818, 822, 764, -61, -886,
-887, -5, 908, 879, -87, -940, -812, 205, 1029, 708, -282, -851,
890, 663, -474, -1078, -269, 831, 753, -490, -959, -3, 1002, 501,
-690, -926, 36, 832, 1104, 244, -1050, -576, 878, 742, -683, -834,
371, 847, -216, -868, 47, 897, 267, -812, 889, -128, -931, 169,
915, -201, -864, 411, 687, -691, -746, 923, 606, -985, -593, 922,
1061, -550, -737, 855, 309, -1040, 137, 910, -588, -605, 932, 116,
-899, 347, 784, -724, 915, -779, -276, 925, -502, -487, 913, -350,
-650, 950, -142, -865, 843, 105, -1066, 785, 865, -1085, 445, 502,
-1002, 602, 330, -933, 731, 56, -736, 804, -164, -664, 1053, -604,
682, -1070, 901, -305, -465, 966, -883, 314, 411, -907, 854, -352,
-356, 868, -946, 476, 375, -764, 982, -886, 517, 25, -578, 920,
-923, 538, 53, -622, 1012, -1079, 805, -318, -85, 175, -349, 558,
-754, 920, -970, 1050, -1157, 1032, -912, 798, -623, 405, -194, 39,
321, -647, 888, -1034, 1027, -876, 585, -203, -209, 573, -844, 979,
-950, 769, -485, 173,
};
static const int32_t mdt16_mode1[256] = {
241, 344, 412, 489, 568, 636, 688, 783, 835, 872, 875,
897, 905, 888, 846, 799, 474, 706, 859, 955, 992, 924,
784, 567, 271, 16, -257, -509, -691, -856, -922, -885, 624,
974, 943, 737, 444, 45, -426, -916, -1064, -948, -636, -293,
104, 537, 853, 923, 658, 917, 755, 257, -395, -916, -1093,
-713, 76, 720, 894, 854, 532, -145, -792, -895, 477, 642,
410, -131, -723, -911, -514, 682, 1328, 690, -538, -1006, -947,
-254, 523, 839, 966, 1056, 50, -1197, -1262, 45, 1200, 786,
-463, -776, -185, 304, 448, 130, -207, -221, 8, 224, 30,
-405, -258, 458, 466, -617, -817, 529, 1379, 306, -1136, -1276,
84, 1196, 1300, 462, -1215, -1022, 722, 1063, -494, -845, 309,
679, -83, -527, -158, 452, 284, -452, 1049, -173, -1004, 253,
803, -428, -615, 632, 361, -889, -314, 1030, 329, -1085, -525,
969, 1084, -589, -561, 839, 83, -937, 262, 668, -673, -273,
1030, -188, -973, 539, 912, -869, 960, -813, -294, 857, -543,
-308, 873, -514, -474, 1052, -369, -903, 919, 73, -955, 724,
777, -1074, 575, 396, -1026, 737, 219, -883, 825, -214, -659,
952, -213, -651, 958, -517, 603, -996, 906, -363, -344, 858,
-848, 336, 319, -831, 871, -391, -404, 985, -1113, 564, 362,
-718, 894, -753, 338, 238, -787, 997, -950, 559, 3, -607,
1030, -1077, 831, -315, 59, -111, 44, 53, -171, 358, -506,
763, -1093, 1164, -1235, 1237, -1029, 725, -409, 126, 366, -692,
1008, -1269, 1328, -1224, 953, -593, 226, 131, -328, 403, -399,
302, -186, 78,
};
static const int32_t mdt16_mode2[256] = {
243, 333, 402, 493, 600, 683, 726, 772, 805, 846, 873, 895,
898, 881, 846, 798, 415, 610, 711, 849, 922, 948, 821, 646,
371, 124, -199, -492, -733, -893, -1011, -994, 731, 1059, 1101, 867,
506, 43, -414, -818, -969, -974, -703, -292, 129, 480, 686, 699,
652, 913, 684, 158, -409, -886, -1006, -676, 121, 740, 1031, 933,
457, -208, -762, -943, 924, 958, 210, -572, -924, -736, -94, 700,
1008, 571, -253, -918, -984, -302, 508, 885, 817, 698, -148, -1009,
-834, 71, 999, 750, -246, -967, -639, 343, 1026, 676, -306, -899,
933, 416, -707, -1108, 152, 1146, 488, -873, -925, 141, 958, 417,
-585, -756, 15, 633, 792, 11, -903, -345, 794, 578, -689, -742,
534, 867, -433, -1074, 208, 1190, 288, -957, 1001, -190, -1047, 169,
1011, -302, -926, 536, 719, -715, -636, 777, 566, -800, -610, 774,
986, -545, -700, 828, 240, -921, 206, 768, -671, -514, 962, 162,
-1026, 406, 914, -828, 1062, -957, -195, 1068, -799, -309, 863, -378,
-598, 912, -236, -626, 728, 29, -941, 701, 690, -975, 487, 348,
-928, 728, 112, -895, 1042, -248, -720, 938, -305, -581, 1035, -591,
-182, 449, -570, 711, -1027, 1202, -1211, 1081, -970, 725, -605, 514,
-267, 91, 71, -67, 540, -974, 932, -352, -395, 866, -905, 415,
346, -912, 943, -398, -404, 975, -983, 423, 515, -969, 1191, -1030,
651, -143, -464, 844, -938, 751, -280, -261, 669, -836, 709, -309,
110, -292, 431, -538, 582, -511, 353, -104, -287, 733, -1103, 1308,
-1317, 1097, -723, 272,
};
static const int32_t mdt16_mode3[256] = {
256, 333, 394, 466, 540, 604, 657, 739, 821, 877, 907, 919,
942, 931, 861, 775, 603, 824, 959, 1009, 978, 882, 725, 528,
281, -19, -256, -468, -674, -808, -872, -798, 735, 909, 871, 680,
326, -108, -499, -829, -1018, -984, -707, -260, 163, 595, 946, 949,
742, 922, 660, 104, -472, -933, -1063, -670, -18, 558, 963, 975,
518, -184, -788, -870, 906, 825, 151, -564, -971, -823, -120, 710,
1100, 641, -269, -934, -924, -294, 490, 814, 825, 750, -206, -1161,
-937, 351, 1187, 657, -466, -951, -449, 373, 811, 499, -253, -693,
903, 332, -884, -885, 383, 1072, 229, -878, -729, 341, 973, 382,
-754, -908, 75, 799, 894, 91, -1019, -386, 951, 494, -816, -546,
668, 581, -591, -858, 341, 1134, 127, -996, 866, -310, -967, 301,
841, -578, -673, 863, 628, -1026, -553, 964, 474, -835, -445, 691,
992, -708, -599, 884, 55, -922, 425, 693, -850, -268, 1086, -200,
-889, 573, 693, -800, 966, -930, -144, 829, -617, -199, 812, -558,
-412, 953, -428, -669, 1008, -79, -1064, 791, 765, -1097, 503, 362,
-930, 724, 79, -855, 947, -225, -636, 965, -425, -431, 1006, -653,
448, -838, 792, -346, -356, 842, -798, 260, 454, -1006, 977, -442,
-408, 1005, -1128, 618, 483, -906, 1081, -928, 405, 256, -801, 1052,
-967, 631, -119, -387, 743, -849, 686, -304, 226, -515, 759, -938,
968, -867, 606, -203, -217, 584, -864, 1036, -1057, 886, -596, 238,
127, -329, 544, -728, 869, -948, 981, -970, 907, -859, 845, -805,
715, -549, 354, -139,
};
static const int32_t mdt16_mode4[256] = {
177, 249, 339, 455, 556, 628, 714, 808, 868, 894, 918,
899, 889, 890, 846, 778, 427, 639, 785, 860, 903, 893,
820, 672, 437, 162, -128, -490, -800, -936, -960, -891, 585,
848, 993, 905, 630, 234, -228, -684, -975, -1001, -783, -401,
82, 550, 852, 889, 682, 969, 876, 371, -295, -859, -1024,
-690, -140, 418, 852, 991, 666, -29, -697, -948, 854, 894,
379, -363, -979, -979, -280, 533, 986, 694, -148, -907, -957,
-242, 559, 847, 514, 621, 159, -716, -979, -70, 963, 978,
71, -957, -1034, 153, 1071, 701, -252, -799, 1147, 697, -641,
-1138, -223, 849, 733, -410, -991, -172, 870, 683, -442, -782,
-24, 603, 977, 224, -904, -557, 689, 670, -447, -709, 259,
802, -170, -1001, 23, 1197, 396, -1140, 1076, -134, -1088, 146,
1034, -291, -919, 419, 870, -551, -813, 594, 635, -697, -580,
731, 878, -604, -689, 928, 198, -1105, 300, 963, -648, -689,
837, 177, -836, 400, 751, -768, 886, -833, -207, 896, -542,
-394, 917, -392, -689, 975, -88, -860, 850, 128, -1092, 717,
731, -962, 263, 605, -900, 521, 340, -980, 714, 186, -869,
909, -172, -747, 1122, -601, 690, -1041, 760, -128, -637, 968,
-729, 58, 658, -1012, 771, -123, -580, 976, -915, 407, 507,
-923, 998, -762, 246, 336, -842, 1063, -853, 385, 167, -629,
911, -967, 740, -286, 315, -685, 924, -1027, 969, -757, 417,
-13, -392, 731, -937, 1008, -938, 730, -450, 161, 155, -364,
555, -728, 851, -956, 1029, -1038, 986, -920, 831, -713, 588,
-428, 256, -98,
};
static const int32_t mdt16_mode5[256] = {
175, 249, 322, 426, 527, 603, 702, 785, 814, 844, 870, 904,
926, 935, 914, 862, 286, 512, 736, 898, 965, 981, 923, 738,
466, 170, -143, -475, -738, -868, -937, -859, 463, 699, 885, 910,
707, 352, -154, -677, -1012, -1086, -895, -475, 65, 550, 836, 855,
772, 1191, 1059, 403, -245, -732, -989, -749, -153, 453, 851, 880,
486, -108, -635, -759, 852, 1037, 428, -458, -984, -836, -112, 780,
1023, 354, -472, -915, -818, -202, 514, 836, 713, 645, -129, -850,
-753, 199, 1007, 760, -272, -1071, -756, 428, 1121, 611, -405, -870,
995, 641, -674, -1109, 35, 1010, 595, -672, -941, 214, 919, 302,
-645, -791, 42, 752, 1293, 34, -1199, -189, 984, 309, -762, -447,
580, 632, -358, -803, 103, 1005, 209, -909, 955, -373, -815, 445,
772, -514, -681, 635, 523, -908, -386, 1015, 362, -1060, -567, 945,
752, -465, -422, 851, -52, -1079, 500, 890, -954, -459, 1080, 48,
-985, 434, 743, -703, 964, -952, -44, 979, -833, -314, 967, -609,
-407, 978, -310, -669, 806, -40, -870, 650, 782, -1045, 568, 250,
-934, 845, 5, -763, 863, -294, -468, 941, -536, -449, 1115, -683,
483, -852, 771, -328, -401, 885, -856, 439, 218, -832, 975, -486,
-397, 1072, -1146, 558, 474, -842, 989, -851, 453, 110, -672, 994,
-926, 587, -31, -587, 952, -977, 758, -333, 287, -651, 945, -1104,
1100, -980, 713, -346, -56, 435, -727, 847, -859, 723, -486, 194,
100, -207, 338, -468, 609, -743, 859, -960, 1057, -1113, 1099, -964,
745, -501, 320, -135,
};
static const int32_t mdt16_mode6[256] = {
209, 316, 419, 491, 546, 630, 724, 783, 813, 847, 891,
893, 886, 882, 875, 836, 382, 624, 823, 926, 976, 957,
839, 627, 335, 50, -227, -519, -740, -860, -928, -877, 541,
816, 903, 785, 542, 170, -306, -737, -1032, -1056, -811, -416,
29, 525, 905, 965, 711, 969, 851, 422, -208, -780, -1001,
-808, -260, 463, 947, 1004, 556, -164, -718, -834, 818, 1008,
479, -404, -1009, -963, -249, 642, 1077, 662, -324, -931, -796,
-222, 397, 694, 779, 605, -57, -731, -722, -13, 776, 858,
-61, -1015, -878, 259, 1152, 823, -252, -1039, 863, 678, -491,
-1151, -359, 838, 849, -328, -916, -133, 741, 645, -462, -1016,
-185, 927, 1090, 248, -982, -646, 781, 927, -570, -961, 332,
932, -135, -842, 7, 830, 312, -740, 985, -226, -1041, 298,
1051, -420, -892, 527, 784, -602, -711, 773, 461, -862, -455,
771, 1046, -533, -630, 637, 214, -851, 231, 772, -647, -530,
1074, 49, -1103, 346, 983, -795, 1010, -973, -207, 980, -545,
-455, 905, -306, -671, 887, -169, -805, 781, 169, -996, 676,
743, -1067, 540, 461, -1053, 713, 196, -900, 829, -60, -710,
883, -239, -678, 993, -503, 600, -965, 882, -395, -379, 931,
-976, 377, 439, -984, 979, -456, -237, 745, -933, 499, 308,
-729, 942, -842, 447, 124, -668, 1001, -1033, 725, -144, -443,
896, -1058, 818, -317, 310, -703, 1002, -1150, 1115, -945, 704,
-410, 40, 342, -635, 806, -852, 736, -455, 152, 52, -124,
273, -448, 615, -746, 869, -957, 968, -970, 985, -1000, 946,
-745, 418, -127,
};
static const int32_t mdt16_mode7[256] = {
170, 268, 332, 401, 477, 537, 602, 674, 750, 814, 863,
930, 983, 997, 993, 950, 477, 702, 841, 934, 996, 965,
861, 698, 494, 217, -68, -336, -594, -779, -891, -880, 594,
833, 930, 841, 578, 170, -315, -748, -994, -1020, -868, -515,
11, 494, 807, 899, 808, 1028, 808, 296, -368, -934, -1086,
-728, -116, 456, 883, 945, 568, -103, -624, -778, 941, 915,
280, -528, -1047, -897, -17, 853, 998, 433, -343, -846, -855,
-273, 467, 799, 1059, 682, -405, -1077, -681, 433, 1119, 512,
-568, -995, -450, 483, 910, 476, -307, -645, 844, 258, -659,
-696, 213, 891, 268, -814, -821, 357, 1145, 398, -954, -1025,
132, 934, 1037, 36, -975, -423, 785, 605, -734, -780, 654,
899, -416, -964, 160, 990, 234, -807, 839, -339, -961, 321,
949, -379, -837, 582, 697, -725, -685, 789, 612, -921, -598,
881, 987, -740, -697, 1038, 222, -1002, 281, 772, -654, -454,
883, -9, -871, 565, 713, -759, 835, -1005, 14, 979, -811,
-269, 992, -644, -387, 979, -350, -613, 832, -112, -900, 686,
566, -879, 467, 402, -963, 757, -1, -745, 921, -282, -720,
1075, -420, -566, 1151, -660, 575, -1018, 928, -330, -456, 933,
-907, 415, 317, -828, 841, -345, -375, 935, -1043, 509, 396,
-728, 805, -616, 212, 275, -736, 1058, -1021, 622, -9, -581,
977, -1079, 913, -416, 341, -736, 1002, -1122, 1084, -871, 518,
-139, -281, 637, -867, 941, -810, 584, -338, 111, 175, -388,
533, -641, 717, -786, 862, -939, 1012, -1034, 976, -850, 709,
-568, 379, -135,
};
static const int32_t mdt16_mode8[256] = {
203, 279, 351, 414, 518, 627, 705, 769, 814, 864, 901,
925, 920, 912, 902, 810, 382, 649, 829, 917, 982, 960,
857, 687, 406, 63, -223, -457, -691, -870, -936, -816, 666,
958, 979, 820, 493, 117, -317, -782, -1030, -1010, -765, -295,
187, 580, 829, 784, 749, 959, 800, 269, -413, -820, -899,
-698, -124, 622, 1047, 952, 466, -200, -770, -895, 807, 857,
301, -381, -824, -740, -259, 436, 954, 750, -71, -954, -1127,
-449, 551, 1058, 1040, 846, -238, -1131, -905, 60, 832, 884,
39, -817, -761, 131, 854, 591, -231, -751, 924, 351, -832,
-1009, 247, 1145, 497, -727, -979, 78, 886, 511, -565, -842,
-52, 715, 884, 21, -910, -259, 947, 571, -806, -781, 602,
896, -331, -948, 75, 1006, 303, -972, 848, -213, -887, 335,
920, -460, -920, 479, 743, -545, -711, 695, 742, -872, -720,
963, 1111, -646, -783, 977, 223, -1070, 390, 830, -689, -456,
810, 81, -850, 300, 734, -660, 619, -615, -191, 776, -554,
-355, 1042, -439, -672, 1033, -185, -979, 918, 220, -1140, 759,
832, -1100, 377, 575, -1037, 586, 387, -991, 823, 31, -842,
885, -152, -644, 821, -425, 734, -1158, 924, -266, -418, 870,
-861, 366, 315, -881, 888, -398, -357, 891, -911, 452, 433,
-860, 1017, -820, 442, 28, -557, 915, -1004, 757, -204, -432,
861, -1024, 829, -352, 233, -509, 777, -944, 964, -865, 567,
-206, -174, 590, -917, 1039, -1035, 879, -585, 234, 133, -293,
495, -700, 842, -931, 992, -1005, 980, -959, 890, -766, 641,
-475, 275, -93,
};
static const int32_t mdt16_mode9[256] = {
216, 339, 433, 508, 594, 658, 704, 769, 828, 869, 878,
887, 889, 874, 848, 798, 417, 672, 846, 922, 955, 905,
766, 565, 341, 80, -226, -517, -728, -887, -973, -925, 572,
884, 988, 856, 511, 71, -387, -826, -1038, -993, -755, -347,
119, 547, 835, 841, 708, 965, 807, 273, -445, -960, -1067,
-686, -17, 635, 1012, 911, 401, -236, -690, -742, 634, 749,
368, -328, -855, -836, -242, 687, 1087, 607, -303, -1003, -1084,
-319, 611, 962, 954, 893, -37, -951, -954, -5, 904, 845,
-88, -889, -730, 219, 935, 652, -264, -765, 910, 491, -560,
-910, -154, 861, 723, -507, -1001, -9, 1011, 538, -748, -1000,
78, 868, 1059, 244, -973, -583, 758, 731, -587, -920, 370,
960, -177, -952, 26, 953, 279, -799, 1127, -227, -1119, 323,
1010, -393, -880, 584, 680, -726, -592, 771, 436, -791, -431,
699, 847, -596, -532, 862, 149, -937, 289, 836, -714, -430,
961, -51, -970, 587, 899, -945, 849, -783, -240, 950, -541,
-554, 972, -332, -621, 965, -195, -845, 868, 33, -1013, 768,
804, -1105, 452, 534, -1031, 657, 253, -913, 812, -13, -757,
842, -171, -602, 985, -578, 623, -981, 776, -190, -505, 949,
-817, 249, 417, -924, 902, -390, -385, 969, -1069, 540, 443,
-838, 1011, -863, 392, 196, -715, 963, -889, 496, 68, -621,
988, -1013, 754, -306, 364, -715, 964, -1106, 1076, -903, 611,
-259, -132, 484, -763, 912, -874, 702, -475, 185, 87, -185,
328, -503, 679, -843, 925, -997, 1088, -1087, 1004, -864, 695,
-506, 306, -102,
};
static const int32_t mdt16_mode10[256] = {
208, 322, 387, 482, 594, 688, 745, 789, 840, 880, 906,
898, 872, 847, 822, 772, 415, 695, 865, 919, 966, 862,
713, 608, 377, 48, -283, -543, -734, -890, -951, -912, 538,
911, 1051, 940, 522, -53, -534, -786, -935, -898, -674, -317,
89, 551, 866, 898, 506, 699, 635, 310, -205, -642, -876,
-797, -338, 432, 1081, 1182, 732, -149, -892, -1032, 588, 985,
650, -266, -1101, -1175, -380, 504, 993, 874, 77, -708, -852,
-303, 301, 649, 1212, 1049, -222, -1152, -827, 288, 922, 595,
-245, -882, -644, 219, 769, 506, -141, -553, 839, 496, -655,
-849, 217, 1060, 258, -926, -768, 445, 1002, 145, -951, -873,
193, 822, 1009, 52, -957, -190, 935, 234, -935, -593, 754,
798, -369, -934, 117, 995, 376, -950, 809, -6, -936, 162,
865, -483, -859, 622, 756, -745, -533, 890, 367, -1035, -532,
1016, 979, -581, -607, 842, 127, -987, 351, 958, -776, -580,
1047, 35, -871, 242, 811, -688, 1074, -902, -259, 987, -601,
-310, 942, -508, -473, 934, -421, -624, 813, -39, -946, 748,
788, -1052, 621, 298, -858, 618, 51, -791, 947, -246, -605,
889, -255, -746, 1158, -603, 695, -1042, 910, -404, -340, 878,
-923, 430, 303, -821, 889, -485, -274, 868, -1002, 527, 309,
-631, 875, -891, 536, -26, -536, 892, -924, 611, -16, -660,
1139, -1155, 781, -243, 270, -428, 480, -512, 401, -144, -174,
506, -827, 1070, -1229, 1303, -1145, 811, -396, 87, 227, -489,
801, -1077, 1244, -1280, 1189, -951, 652, -473, 281, -63, -76,
138, -163, 100,
};
static const int32_t mdt16_mode11[256] = {
191, 288, 368, 455, 547, 616, 665, 742, 835, 886, 903,
922, 918, 894, 885, 825, 521, 740, 882, 958, 954, 900,
786, 578, 350, 127, -144, -464, -732, -848, -893, -881, 644,
935, 1019, 831, 444, 28, -460, -862, -992, -911, -692, -303,
109, 543, 871, 876, 652, 825, 737, 258, -444, -957, -1109,
-729, 45, 708, 1019, 927, 454, -239, -708, -796, 637, 644,
271, -298, -777, -862, -423, 614, 1277, 714, -344, -1046, -1036,
-193, 594, 830, 878, 867, 119, -780, -1068, -338, 1005, 1101,
-213, -1079, -531, 427, 876, 253, -419, -291, 139, 195, -3,
-333, -354, 165, 680, -103, -960, -93, 1112, 622, -750, -1503,
-113, 1485, 1406, 614, -1014, -1242, 268, 1140, 62, -879, -271,
600, 294, -378, -284, 455, 340, -501, 927, -145, -1034, 84,
1086, -49, -907, 143, 784, -408, -744, 501, 757, -808, -809,
971, 1036, -591, -842, 832, 495, -954, -103, 908, -441, -708,
830, 312, -952, 333, 792, -666, 699, -616, -313, 786, -168,
-684, 787, -119, -820, 989, 206, -1340, 809, 445, -998, 581,
936, -1122, 150, 789, -1063, 299, 711, -932, 485, 332, -973,
812, -1, -659, 722, -329, 579, -974, 695, 4, -703, 965,
-531, -130, 683, -1020, 820, -153, -556, 1005, -1051, 520, 475,
-871, 886, -568, 60, 443, -744, 697, -311, -141, 562, -976,
1177, -1134, 915, -406, 333, -623, 701, -542, 182, 254, -691,
1033, -1185, 1162, -1044, 877, -660, 483, -384, 182, 318, -720,
1059, -1265, 1315, -1198, 979, -748, 477, -216, 11, 135, -201,
162, -68, 16,
};
static const int32_t mdt16_mode12[256] = {
181, 228, 274, 379, 479, 534, 618, 688, 769, 879, 924,
926, 938, 967, 973, 938, 402, 518, 650, 782, 960, 1010,
1006, 898, 566, 218, -76, -417, -684, -803, -877, -857, 629,
878, 1009, 913, 636, 271, -173, -594, -870, -1039, -941, -524,
70, 504, 765, 819, 469, 725, 796, 619, 115, -470, -904,
-892, -447, 404, 945, 990, 739, 54, -841, -1134, 796, 985,
781, -133, -1031, -1035, -578, 251, 1042, 838, 123, -693, -887,
-358, 385, 527, 884, 874, -31, -1032, -988, -10, 729, 824,
63, -768, -714, 163, 984, 786, -191, -917, 1133, 604, -570,
-874, -70, 592, 403, -264, -866, -310, 810, 862, -463, -1227,
-168, 1034, 1172, 162, -1220, -589, 947, 713, -639, -914, 467,
867, -273, -743, -120, 713, 271, -557, 459, -150, -508, 301,
717, -502, -967, 471, 1170, -526, -1075, 738, 872, -791, -748,
770, 657, -213, -727, 535, 626, -975, -420, 1165, -258, -985,
784, 372, -1008, 424, 841, -728, 1110, -792, -542, 984, -289,
-925, 895, 160, -834, 704, 71, -831, 531, 319, -937, 594,
921, -1147, 182, 798, -925, 314, 592, -920, 602, -54, -639,
932, -240, -545, 990, -653, 704, -1209, 837, -215, -545, 1114,
-942, 258, 428, -873, 883, -476, -128, 675, -785, 392, 410,
-740, 731, -601, 325, 165, -722, 997, -994, 750, -204, -464,
949, -1110, 994, -450, 284, -668, 1015, -1017, 765, -554, 236,
85, -392, 667, -921, 1079, -1067, 858, -553, 222, 199, -429,
660, -894, 1022, -1062, 991, -892, 803, -819, 801, -673, 577,
-403, 247, -116,
};
#endif // CONFIG_LGT
#endif // MDTX_INTRA_16
#if CONFIG_MODE_DEP_INTRA_TX && CONFIG_MODE_DEP_NONSEP_INTRA_TX
// non-separable transforms
static const int32_t mdt4x4_mode0[256] = {
5, 11, 17, 22, 8, 28, 43, 44, 14, 38, 51, 47, 20, 34, 39,
38, 24, 54, 40, 4, 36, 68, 36, -10, 14, 10, -12, -20, -14, -36,
-36, -20, 14, -5, -36, -37, 40, 29, -37, -59, 34, 48, 8, -26, 10,
26, 31, 17, -38, -37, 23, 40, -12, -4, 14, 9, 40, 46, -17, -46,
38, 32, -22, -44, 38, 2, -14, 44, 64, -16, -48, 53, 35, -14, -38,
16, -3, 4, 2, -8, -38, 28, 48, -26, -8, -6, -14, -16, 42, -26,
-54, 28, 41, 7, -1, 52, 4, -7, 32, 71, -4, 2, -8, -26, -25,
-3, -12, -51, -28, -10, 42, 58, -59, -51, -8, -2, 18, 16, -1, 8,
39, 16, 8, 27, -52, -62, -4, 18, -39, 33, 38, -23, 9, -6, -15,
12, 2, -7, 0, -6, -56, 32, 64, -55, 38, -40, 44, -27, 46, -62,
52, -24, 18, -10, 10, -4, -21, 15, -10, 8, -32, -46, 4, 9, 53,
52, 6, -19, -48, -52, -4, 18, 26, 32, 1, -14, 17, -23, 34, -19,
-10, 14, -28, 11, -51, 64, -46, 32, -34, 29, -32, 13, -16, 23, 40,
30, 20, -28, -57, -36, -12, 14, 67, 28, 15, -11, -36, -13, -50, 37,
-28, -14, 41, -20, 9, 35, -22, 5, 12, -46, -16, 31, -45, 44, -2,
19, -35, 44, -22, 6, 20, -48, 32, -17, -9, 38, -52, 56, -32, -1,
24, -28, 30, -21, -33, 40, -41, 30, 34, -43, 43, -32, -21, 30, -28,
18
};
static const int32_t mdt4x4_mode1[256] = {
22, 11, 0, 0, 50, 28, 0, -1, 66, 42, 2, -2, 66, 44, 4,
-2, -7, 20, 8, -2, -24, 46, 20, -6, -40, 60, 32, -8, -44, 56,
35, -5, 58, 30, -2, -2, 70, 38, -4, -1, 0, -4, -5, 3, -62,
-42, -4, 4, 12, -65, -28, 8, 36, -60, -30, 6, 14, 11, 11, -5,
-44, 38, 38, -10, 2, -4, 30, 4, 11, -13, 56, 9, 16, -26, 69,
14, 16, -33, 66, 20, -80, -16, 13, -6, 2, 20, 3, -12, 66, 32,
-8, -10, -42, -39, -4, -2, 0, 23, -26, -40, -6, 4, -28, -56, 2,
-21, 10, -59, 16, -18, 46, -54, -7, 32, 60, -12, 16, -30, 38, -5,
21, -47, -22, -12, -30, 54, -16, -38, -28, 58, -22, 5, -8, 6, -49,
24, 22, -36, -22, 40, -12, 24, 54, 34, -6, -4, -6, -74, 14, -16,
6, -60, -4, -4, 14, 16, -6, 20, -22, 73, 50, 32, -36, -5, -64,
-31, 16, 2, 60, 17, 28, 8, -27, -5, -23, -6, 44, -52, 18, 2,
-42, 42, 18, -22, 24, -21, -62, -7, -8, 6, 40, 24, 20, 28, 68,
-4, -8, -54, -33, -4, -8, 58, -29, -14, 6, -28, 26, 22, 7, -19,
12, -73, -4, 8, -4, 24, -4, 14, -10, 76, 6, -12, 12, -57, -14,
20, -55, -24, 18, -26, 71, 30, -15, 23, -57, -22, 6, -10, 24, 8,
6, -12, 15, -56, -10, 18, -22, 82, 8, -14, 20, -62, -4, 6, -10,
24
};
static const int32_t mdt4x4_mode2[256] = {
19, 48, 68, 71, 9, 22, 37, 46, 1, 0, 2, 6, -1, -4, -4,
-4, 0, -10, -34, -47, 24, 52, 60, 48, 10, 24, 36, 40, 1, -2,
-2, 2, 53, 78, 8, -50, 28, 36, -12, -50, -4, -8, -9, -8, -5,
-6, 1, 8, -31, -26, 14, 35, 36, 50, -10, -56, 42, 58, 17, -21,
2, 2, 10, 18, -17, -22, -12, -4, 20, 38, 32, 5, -10, -28, -53,
-66, -17, -30, -39, -42, -70, 14, 70, -54, -42, -2, 32, -22, 7, -2,
-6, 11, 8, -2, -10, 2, -8, 21, 4, -30, 20, -16, -28, 58, 59,
28, -43, -36, 32, 38, 22, -8, -34, -3, 23, -8, 60, 4, -62, 20,
3, -22, -8, 58, -34, -29, -17, -21, -24, -15, 2, 6, 28, 30, 8,
4, -32, -59, -32, 4, 22, 34, 52, 62, -12, 18, -30, 27, -14, 28,
-5, -26, 12, -19, -17, 46, 71, 34, -28, -52, -63, 63, -45, 16, -30,
28, -30, 24, -30, 10, 26, -26, -20, -8, 14, 2, 30, -25, 10, -4,
-64, 57, -40, 22, -2, 26, -48, 22, -3, -23, -14, 32, 14, -28, 40,
-22, 6, 24, -31, 12, -72, 24, 34, -23, 22, 38, 12, -47, -6, 4,
3, -5, 24, -14, -15, 16, -16, 2, 26, -23, 70, -36, -68, 54, -14,
16, -14, 6, 26, -28, 22, -10, -54, 66, -56, 24, -20, 34, -31, 17,
3, -4, 4, -2, -10, 15, -12, 6, 23, -30, 26, -12, -46, 80, -66,
24
};
static const int32_t mdt4x4_mode3[256] = {
2, 3, 10, 21, 8, 16, 30, 40, 20, 35, 46, 44, 35, 48, 46,
38, 10, 26, 26, 11, 40, 53, 24, -12, 58, 36, -16, -34, 34, -11,
-37, -28, 50, 40, -11, -20, 74, 14, -32, -4, 17, -32, -6, 28, -34,
-15, 28, 30, -24, -8, -28, -53, -10, -14, -52, -38, 42, 1, -22, 7,
66, 24, 12, 18, -68, 26, 51, -5, -31, 40, 6, -9, 14, -20, -22,
26, -19, -40, 16, 42, 36, 46, 14, -46, -27, 36, 16, -48, -66, 23,
12, -8, 10, 25, -2, 15, -22, -40, -52, -47, 5, 38, 12, -10, 16,
48, 42, 10, -48, -28, -2, -4, 52, -61, -1, 34, -12, 4, 12, -31,
-2, 22, -36, 2, 13, -38, 0, 65, -18, -34, 44, 10, 28, -6, -8,
-46, 9, 16, -13, -34, -52, 66, 32, 2, 46, -34, 42, -34, -32, 4,
26, -16, 36, -44, 22, 20, 6, -12, 36, -50, -21, 21, -23, 5, 22,
-43, 64, -48, 14, -35, 44, -38, 13, -18, 8, 30, -9, -28, 54, -58,
46, -42, 21, 21, -18, 10, 0, 26, 9, -4, -54, 20, -29, -38, 11,
20, 50, 40, -28, -16, -56, -22, 30, -2, 48, -26, 23, -21, 2, 28,
26, -6, 2, -52, -20, 0, -6, 68, 2, -14, 5, -56, 59, -20, -18,
2, -34, -4, 24, -4, 62, -14, -22, 5, -72, 45, 6, 8, 30, -37,
2, -16, -8, -45, 2, 22, 20, 64, -9, -17, -30, -75, 8, 0, 40,
22
};
static const int32_t mdt4x4_mode4[256] = {
25, 28, 20, 13, 20, 44, 38, 26, 6, 32, 52, 45, 0, 10, 36,
52, 1, -30, -42, -24, 26, 10, -40, -50, 22, 49, 16, -38, 2, 33,
50, 16, -12, -6, 38, 44, 16, -22, -8, 52, 40, 30, -34, -4, 16,
58, 24, -37, -42, 5, -6, -62, -22, -34, 26, -16, 40, -16, -10, 52,
33, 42, -4, 26, 53, 42, -17, -32, 29, 43, 26, -19, 19, 4, -11,
-2, 21, 26, -35, -62, -25, 0, 2, -56, 28, -14, 18, 20, -24, 38,
-16, 28, -61, -30, 34, -44, 9, -69, -40, 6, 42, 6, -23, 34, 10,
14, 8, 53, 10, -10, -56, 4, -32, 20, 50, -7, 64, -2, 2, -24,
32, 24, -22, -28, 10, -41, -40, 38, 60, 26, -18, 2, 40, -40, -25,
2, 10, -44, -50, 20, -31, 4, 26, 38, 36, -22, 50, -74, -11, 13,
-38, 50, -21, -9, 1, -28, 28, 6, 2, 17, -12, 26, -44, 2, 28,
-27, 10, 29, -24, 0, 2, -10, 84, -42, 38, -9, 24, 0, 20, 13,
-16, -16, -4, -42, -70, 59, -45, 34, 30, 16, -13, 13, 18, -45, 31,
7, -15, 36, 4, -34, 40, -19, -32, 33, 26, -52, 48, -22, 30, -1,
-36, -7, -54, -6, 36, 32, 42, 52, -38, -30, -10, -30, -14, 28, 21,
-62, 10, 0, 31, -27, 86, -10, -22, -21, 2, -36, -2, 21, 6, 8,
46, 4, 28, -2, -10, -77, -10, -20, 29, 22, 65, 9, 4, -24, -9,
-27
};
static const int32_t mdt4x4_mode5[256] = {
21, 12, 2, -1, 43, 40, 10, 0, 42, 58, 32, 8, 22, 52, 46,
26, -2, -20, -12, 1, 23, -24, -34, -10, 50, 2, -50, -35, 46, 38,
-32, -52, -23, 6, 29, -1, -12, -22, 38, 24, 40, -34, 4, 53, 65,
1, -31, 40, 52, 16, 9, 3, 78, 8, 10, 17, 25, -18, -22, 26,
-44, -32, -42, 0, 16, 59, -8, -27, -13, 59, 24, -43, -4, -1, 12,
-30, 44, -33, -36, -22, -8, -35, -31, -30, 24, -20, -25, -59, 32, -21,
20, -24, 6, -44, 14, 60, 9, 12, -35, 56, -4, 24, -52, 52, 12,
-8, 2, 4, 40, -54, 31, -2, 80, -6, -32, -1, -2, -22, -15, -4,
-60, -18, 6, 10, 38, 40, -16, 30, 0, 62, -22, -20, 7, -24, 1,
-4, 18, -74, 10, 5, -14, 30, 56, -27, -30, 27, -48, -42, -18, 26,
-50, -2, 4, 22, -34, 60, -20, 18, -26, 22, -32, 28, -30, 66, 5,
8, 2, 0, 6, -17, 26, -43, -27, 40, -50, 41, 6, 34, 60, 8,
-6, 12, -22, -10, -11, -8, -76, -31, 4, 4, 27, 55, 56, 8, -24,
18, -74, -24, 28, -10, 60, 24, -19, -2, -29, -8, 3, 9, -4, 60,
16, -22, 10, -76, -26, 23, -6, 54, 30, -20, 5, -21, -15, 6, -26,
11, -60, 14, 32, -24, 68, -2, -29, 26, -54, -1, 18, -16, 23, 7,
5, -18, -21, -64, -8, 20, 18, 82, 9, -14, -5, -56, -6, 6, -4,
22
};
static const int32_t mdt4x4_mode6[256] = {
28, 46, 45, 30, 14, 34, 54, 62, -3, 6, 23, 41, -2, -4, -2,
8, 2, -20, -48, -46, 30, 40, 10, -29, 6, 30, 54, 52, -4, -4,
14, 38, -22, -25, 28, 66, 6, -14, -25, 2, 38, 50, 18, -13, -8,
14, 46, 52, 47, 58, -2, -52, -33, -22, 6, -2, 24, 10, -16, -28,
15, 27, 41, 48, 27, 44, 31, 14, 32, 35, -24, -65, -12, 0, 3,
-34, -40, -48, -12, 13, 20, -22, -43, 0, -30, -14, 30, 40, 22, 30,
0, -34, -57, -62, -22, 8, 39, -4, -36, 10, 57, 36, -5, 20, 19,
30, -10, -46, 9, 38, 22, -55, -58, 14, 44, -64, 32, 1, -10, 20,
50, 22, -24, 6, -34, -10, 4, -24, -29, -24, 4, 10, -20, 60, 73,
-34, 24, -16, -49, -22, 13, 5, 10, 16, 19, -18, -19, 7, 30, 6,
-26, 26, -10, -57, -58, 34, -45, -5, 46, 31, 32, -16, 4, 2, 38,
-13, -14, 2, 44, 8, -40, 18, 54, -18, -68, 38, -27, -21, 15, -30,
34, 11, 0, 44, -60, -8, 14, -62, 26, -10, -3, 48, 56, -66, 61,
-28, 3, -23, 26, -22, -26, 23, -6, 6, -26, 24, 2, -10, 12, -12,
14, -10, -58, 65, -57, 22, -23, 44, -30, 17, 20, -18, 4, -6, -24,
30, -26, 12, 8, -6, 10, -6, -46, 52, -44, 12, -39, 55, -44, 24,
8, -14, 10, -8, -25, 38, -30, 16, 36, -44, 36, -18, -40, 59, -50,
20
};
static const int32_t mdt4x4_mode7[256] = {
-2, -4, 2, 14, 0, 7, 22, 34, 8, 28, 45, 51, 36, 54, 52,
47, 11, 36, 63, 66, 22, 45, 42, 26, 20, 16, -4, -16, -1, -14,
-20, -16, 50, 79, 32, -24, 18, 2, -30, -31, -20, -36, -14, 18, 0,
12, 26, 29, 24, 26, -40, -77, 28, 50, 31, 15, 32, 30, 14, 8,
4, -14, -22, -16, 53, 28, -14, 4, -40, -54, 14, 60, -32, -6, 24,
4, 6, 6, -20, -46, 64, -28, -64, 53, 48, 22, -10, 2, -18, -9,
5, -9, -24, -10, 14, 17, -24, -9, 9, 4, 56, 19, -36, -11, -33,
-15, 30, 28, 26, 36, -10, -75, 18, 14, 4, 12, 20, -43, -68, -2,
64, 64, 10, -20, 4, 6, 2, -10, 36, -4, -14, 18, -42, 18, 18,
-72, 0, 15, 3, -21, 71, 24, -22, -8, -4, 0, -24, 8, 13, -3,
-8, 43, 46, -48, -75, 7, 56, 20, -6, -3, -3, -9, 14, -3, 20,
-7, -29, 20, -32, 6, 19, 14, 55, -55, -61, 54, -20, 14, -4, -19,
38, -14, 18, 20, -45, 19, -8, -92, 22, 32, 19, 16, -59, 74, -62,
38, -24, 19, -21, 0, -2, -5, 22, -4, 0, -14, -2, 4, 12, -12,
10, -8, -49, 66, -58, 38, -36, 38, -36, -5, -4, 10, 11, -6, -10,
16, -16, 12, 18, -23, 20, -16, -30, 52, -56, 44, -30, 42, -51, 14,
5, -7, 8, -5, -11, 19, -19, 12, 26, -40, 37, -28, -34, 66, -64,
33
};
static const int32_t mdt4x4_mode8[256] = {
4, 8, 16, 28, 14, 24, 36, 39, 30, 42, 42, 34, 42, 48, 38,
27, 16, 19, 8, -18, 46, 36, -7, -34, 62, 24, -30, -34, 48, -2,
-38, -26, 49, 18, -22, 2, 72, 0, -30, 22, 24, -34, -4, 36, -35,
-30, 24, 30, -30, -29, -32, 0, -22, -47, -43, 16, 38, -28, -24, 26,
70, -4, 2, 22, -46, 46, 35, -12, -31, 52, 8, -1, 10, -10, -19,
30, 2, -60, 0, 44, 68, 50, 0, -2, -18, 1, 4, 2, -60, -30,
-2, 5, 64, 4, -16, 10, -22, 47, -18, -63, -6, 10, -44, -33, -4,
0, 2, 8, -9, 60, 50, -3, -20, 38, 38, 2, 8, -37, 39, 7,
34, -74, 28, -14, 4, 2, 18, -47, 20, -36, 53, -42, 12, -38, 36,
-49, 6, -8, -14, 8, -3, 20, -2, 63, -14, 24, 45, 40, 10, -10,
-24, 34, -8, -4, -70, 10, -23, 58, -30, 4, -58, -29, 1, 4, 73,
31, 0, -8, -60, -32, 10, -6, 32, 6, -2, 6, 20, -22, 40, 44,
-12, 14, -30, -24, -4, -3, -27, -40, 16, -18, 84, -6, -16, 38, -40,
54, -2, -12, 4, -34, 14, -10, 21, -58, -10, 15, -12, 66, -18, 38,
35, -7, 30, -67, -32, 10, -24, 62, 26, -11, 13, -38, 2, 2, -9,
11, -37, -34, 12, -14, 58, 48, -11, 14, -61, -44, 5, -9, 37, 12,
11, -20, 32, -41, -14, 24, -40, 64, 10, -20, 34, -61, -4, 8, -16,
30
};
static const int32_t mdt4x4_mode9[256] = {
2, 8, 14, 20, 6, 26, 42, 40, 14, 40, 52, 44, 20, 39, 43,
38, 16, 43, 30, -4, 42, 74, 24, -26, 34, 33, -12, -31, 2, -17,
-28, -20, -4, -36, -37, -22, 16, -7, -42, -44, 33, 52, 3, -33, 30,
54, 28, -6, 46, 36, -32, -36, 44, 15, -39, -20, -13, -24, 6, 30,
-33, -16, 37, 48, 21, -9, -6, 48, 56, -18, -34, 58, 52, -12, -42,
20, 18, 2, -14, -6, -46, 14, 36, -36, -21, -2, -8, -24, 39, -18,
-42, 32, 46, -4, -10, 60, -26, -53, 8, 52, 8, 10, -2, -20, 15,
22, 0, -26, -45, -52, 18, 56, -20, 38, 59, 25, 4, -10, -18, -4,
-5, -25, -25, -32, -30, 44, 68, -16, 66, 11, 7, 47, -12, -16, 14,
-28, -32, -12, -10, -40, 53, 16, -13, 48, 22, -35, 48, -32, 54, -59,
46, -27, 20, -18, 26, 6, -18, 12, -14, -2, 0, 46, 35, 20, -10,
-46, -60, -12, 6, 46, 53, 14, 0, -25, -28, -4, 18, -24, 32, -14,
0, 10, -18, 12, -50, 54, -52, 28, -40, 40, -36, 19, -28, -38, 30,
18, 44, 40, -35, -22, -54, -29, 26, 26, 46, -4, -2, -20, 59, -34,
38, -20, -38, 5, -10, 1, 12, 18, -20, 20, 24, -50, 54, -34, 18,
-4, -14, 50, -32, 16, 6, -64, 34, -21, -2, 61, -30, 32, -14, -24,
26, -28, 28, -20, -34, 40, -41, 31, 34, -42, 44, -33, -20, 28, -29,
20
};
static const int32_t mdt4x4_mode10[256] = {
4, 12, 20, 19, 10, 32, 45, 38, 19, 42, 50, 41, 24, 36, 40,
34, 21, 33, 14, -12, 50, 58, 0, -40, 46, 36, -20, -40, 20, 2,
-24, -22, 11, -34, -50, -20, 27, -33, -61, -21, 26, 20, 0, 2, 24,
51, 38, 20, 52, 36, -18, -24, 50, 18, -15, -5, -16, -36, 12, 35,
-46, -38, 22, 37, 21, -6, 3, 53, 42, -24, -16, 68, 44, -22, -38,
22, 17, -8, -30, -12, -47, 24, 18, -36, -24, 8, -14, -16, 32, -24,
-36, 46, 45, -15, -18, 58, -64, -28, 31, 24, 25, 10, -14, -6, 36,
12, -16, -14, -68, -20, 45, 16, -6, -64, -34, -31, 19, -8, 40, -7,
34, 20, 38, 18, -4, -48, -48, 6, 6, -10, -48, 50, -36, 54, -40,
11, -22, 41, -10, -8, 10, -40, -11, 36, -42, 32, -44, -40, -10, 31,
-25, 44, 13, 10, 8, 34, -22, 7, 3, -66, -9, 32, -24, 30, -16,
-15, 0, -16, 47, -42, 52, -30, 38, -45, 41, -18, 54, 12, 4, -32,
-59, -28, 17, 22, 49, 38, -38, -12, -26, -20, 28, 6, 26, -43, 56,
-9, -4, 15, -38, -14, -15, 13, 4, 44, 34, -42, 34, -48, -4, 46,
30, 19, -4, -52, -46, -18, 6, 50, 46, 20, -24, -6, -46, 4, 24,
-14, -13, 43, -38, 26, 8, -56, 38, -30, -4, 51, -35, 40, -14, -19,
19, -27, 36, -28, -26, 36, -45, 38, 26, -39, 48, -40, -14, 23, -27,
22
};
static const int32_t mdt4x4_mode11[256] = {
4, 10, 17, 22, 12, 33, 43, 38, 19, 46, 52, 39, 20, 36, 40,
33, 18, 50, 38, -2, 39, 68, 25, -16, 26, 15, -18, -22, -8, -36,
-38, -20, -28, -44, -14, -10, 11, 6, -20, -38, 52, 62, -10, -40, 35,
40, -6, -20, 32, 25, -36, -49, 42, 18, -52, -38, 8, -1, 4, 16,
-17, 0, 45, 46, -23, -36, -33, -32, -26, 30, 32, -30, -32, 29, 58,
0, -38, -46, -13, 0, -32, 37, 52, -41, -57, 2, 18, -52, -18, -10,
-10, -5, 33, 22, 12, 34, 52, 25, -2, 28, -1, -11, 10, -26, -50,
15, 28, -64, -18, 41, 29, -32, -12, -36, 26, 70, 7, 6, -3, -26,
2, 0, -22, -33, -24, -32, 26, 68, -64, 18, 36, -10, 4, -1, -28,
20, 9, 14, -2, -2, -68, 4, 50, -42, -5, -14, 10, -16, 38, -36,
50, -25, 50, -61, 41, -19, 12, -17, 33, -17, -14, 56, -52, 21, -49,
1, -12, 22, 35, 8, 10, -37, 30, -48, 30, 0, 20, 22, 41, 8,
-1, -70, -32, -20, 20, 47, 46, 19, -6, -31, -34, 10, -64, 26, -10,
31, 49, 13, -34, -10, -40, -26, 46, -6, 34, 12, -30, 5, -26, 35,
-37, -12, 16, -36, 44, 14, 16, 8, -15, -28, -50, 38, -42, 48, 0,
16, -26, 54, -32, 16, 2, -60, 38, -24, 3, 54, -32, 30, -12, -23,
21, -18, 24, -14, -36, 36, -42, 30, 36, -40, 48, -38, -24, 28, -30,
22
};
static const int32_t mdt4x4_mode12[256] = {
-1, 7, 21, 24, -8, 19, 45, 46, -2, 27, 49, 48, 14, 38, 45,
40, 16, 21, -2, -12, 56, 61, 4, -24, 53, 62, 14, -24, 14, 10,
-9, -18, -12, -54, -56, -14, 0, -47, -44, -14, 18, 32, 22, -4, 18,
50, 32, 3, 58, 24, -32, 3, 60, 2, -48, 22, -2, -32, -14, 39,
-13, -10, 19, 39, -15, -18, 12, 52, 14, -22, -12, 65, 48, 6, -40,
8, 44, 2, -42, -14, -1, -44, -34, 8, 25, -9, 24, 32, -2, 16,
56, 12, -48, -62, -22, -28, 44, 16, 28, 22, 22, -42, 20, 8, 7,
-24, 11, -26, -28, 41, 36, -70, -64, -25, 49, -3, 42, -4, -8, -18,
39, -12, -22, 12, -46, -15, 46, 18, -22, -18, -13, 48, -2, 62, -40,
28, -56, 16, -23, -28, -32, 22, 20, -22, -40, -8, 8, -42, 67, 4,
10, 19, -51, -38, 22, -8, 46, 25, -20, -12, 34, -48, 18, 52, 28,
-10, 26, -34, -20, -4, 4, -55, 21, -12, -2, 56, 22, -62, -10, 8,
-11, 52, 21, -34, 20, -52, -11, 52, 16, 18, -1, -32, -26, 32, 8,
54, -7, 5, -50, -32, 12, -32, 69, 4, 33, -26, 8, -16, -15, 12,
-54, -8, -12, 18, 34, 32, 30, -36, -14, -50, 30, -33, 60, 0, -31,
28, -46, 28, 6, 1, 27, -10, 26, -35, 10, -13, -49, 54, -48, 32,
25, -30, 39, -40, -28, 27, -40, 43, 34, -31, 40, -42, -18, 14, -18,
23
};
static const int32_t mdt8x8_mode0[4096] = {
2, 2, 3, 4, 4, 4, 4, 6, 4, 6, 8, 10, 10, 10, 11,
12, 4, 9, 12, 14, 16, 16, 18, 18, 4, 10, 14, 17, 20, 22,
22, 20, 5, 11, 16, 20, 23, 26, 25, 22, 6, 12, 16, 21, 24,
26, 25, 22, 6, 12, 16, 20, 23, 24, 24, 22, 7, 12, 15, 18,
20, 20, 21, 20, 4, 9, 11, 12, 11, 10, 9, 7, 8, 19, 24,
24, 24, 22, 18, 12, 8, 20, 26, 29, 30, 28, 20, 10, 6, 14,
20, 23, 24, 20, 12, 4, 4, 6, 8, 8, 6, 3, -1, -2, 0,
-2, -6, -9, -12, -14, -13, -10, -4, -11, -16, -19, -21, -22, -21, -17,
-7, -13, -18, -20, -22, -22, -22, -19, 2, 2, 0, -2, -3, -4, -8,
-11, 6, 8, 5, 0, -4, -11, -20, -24, 9, 18, 16, 11, 0, -14,
-28, -32, 12, 24, 28, 24, 9, -12, -29, -30, 14, 28, 32, 28, 14,
-8, -23, -25, 14, 24, 25, 19, 10, -2, -14, -18, 12, 17, 14, 10,
6, 1, -8, -12, 8, 10, 8, 6, 4, 2, -4, -8, 2, 7, 10,
10, 12, 15, 15, 11, 3, 6, 9, 15, 24, 30, 27, 16, -1, -8,
-11, -2, 14, 24, 18, 7, -4, -16, -24, -22, -12, -6, -8, -8, 0,
-4, -8, -15, -24, -30, -27, -16, 6, 16, 22, 12, -8, -22, -22, -13,
12, 26, 32, 26, 12, -2, -8, -8, 13, 22, 22, 20, 16, 9, 0,
-6, 7, 13, 14, 14, 10, 4, 0, -4, 12, 28, 34, 29, 16, 0,
-8, -8, 12, 26, 33, 26, 6, -16, -20, -12, 5, 6, 4, -2, -14,
-26, -22, -10, -2, -12, -23, -28, -24, -15, -6, 0, -5, -15, -25, -24,
-10, 8, 15, 12, -5, -9, -10, -4, 8, 20, 24, 20, -4, -3, 1,
7, 13, 17, 20, 20, -2, -6, -6, -2, 7, 8, 2, -5, -8, -22,
-19, 8, 27, 14, -10, -18, -16, -36, -22, 21, 40, 10, -24, -23, -18,
-27, -4, 24, 22, -4, -17, -8, -10, 0, 18, 8, -14, -12, 7, 14,
3, 20, 16, -14, -30, -6, 24, 22, 9, 14, -2, -21, -19, 2, 19,
16, 4, -2, -14, -13, -4, 4, 6, 6, 2, 8, 8, -4, -10, -4,
4, 4, 2, 10, 10, -2, -8, -2, 4, -2, -2, -6, -3, 5, 12,
10, -7, -18, -11, -32, -26, 13, 40, 22, -22, -31, -17, -43, -32, 16,
47, 20, -24, -25, -16, -26, -14, 12, 22, 6, -8, -6, -6, -2, 6,
4, -4, -1, 7, 7, 2, 8, 8, -2, -8, 0, 8, 6, -2, 1,
12, 16, 4, -16, -20, -14, -8, -6, 17, 32, 12, -25, -38, -22, -10,
-14, 1, 20, 16, -6, -18, -12, 0, -8, -20, -18, 8, 28, 22, 3,
8, 6, -20, -33, -2, 35, 31, 3, 8, 10, 0, -8, -2, 10, 2,
-10, 3, 8, 16, 17, 6, -12, -23, -20, 2, 6, 14, 18, 8, -12,
-22, -18, -4, -5, 3, 16, 22, 16, 8, 6, -14, -22, -2, 26, 26,
10, 6, 12, -22, -30, -4, 16, -2, -20, -4, 11, -17, -15, 6, 6,
-19, -26, -8, 0, -5, 2, 10, 10, 8, 7, -6, -17, 1, -4, -6,
12, 40, 36, -5, -26, -4, -18, -24, 2, 32, 28, -7, -22, -10, -20,
-20, -6, 6, 2, -8, -12, -6, -10, -2, 10, 13, 4, -4, -6, -2,
-12, -17, 0, 26, 23, -6, -24, 12, 8, -21, -27, 15, 38, -1, -34,
21, 30, -6, -37, -4, 30, -1, -28, 14, 22, 4, -11, 0, 7, -6,
-10, -4, -13, -2, 16, 12, -4, -2, 6, -18, -32, -13, 14, 10, 2,
8, 13, -16, -22, -14, -4, 0, 7, 12, 10, 18, 29, 19, 12, 17,
14, 0, -8, 27, 39, 13, -2, 12, 12, -12, -18, 14, 14, -14, -28,
-12, -6, -18, -14, -10, -16, -16, -17, -18, -15, 0, 12, -19, -18, 12,
24, 2, -3, 22, 30, -12, -2, 26, 33, 13, 6, 16, 18, -4, 4,
7, 2, -2, -4, -7, -6, 0, -2, -13, -20, -16, -14, -18, -18, 0,
9, 20, 14, -2, -2, 16, 20, -4, 5, 22, 13, -15, -10, 21, 26,
-4, -9, -6, -9, -20, -14, 2, 2, 8, 1, -23, -24, 0, 2, -19,
-22, 26, 32, -4, -16, 16, 22, -6, -15, 27, 39, 16, -6, 2, 20,
20, 10, 10, 12, 4, -12, -24, -4, 20, 19, -6, -13, -13, -19, -29,
-19, 2, 10, 10, 4, -20, -20, 9, 24, 8, -7, 20, 16, -26, -34,
10, 36, 8, -13, 12, 16, -4, -15, 2, 12, -2, -10, -2, 1, 4,
2, -3, 0, -1, -9, 1, -2, -14, -18, 0, 26, 14, -17, 18, 13,
-23, -38, 5, 42, 14, -22, 22, 23, -6, -19, 2, 18, -1, -17, 12,
16, 11, 6, -2, -9, -11, -9, -10, -14, -8, -2, 8, 18, 9, 0,
-4, -14, -16, 2, 16, 8, -4, 4, 19, 6, -18, 4, 17, -20, -24,
18, 40, 20, -28, 4, 24, -32, -25, 34, 34, 8, -32, 5, 28, -16,
-9, 30, 7, -10, -15, 5, 10, 0, 2, 10, -8, -6, 10, 4, -11,
-4, -2, -8, -1, 11, 18, 3, -10, -9, -10, -11, 14, 25, 17, -8,
-26, -22, -6, 3, 22, 25, 3, -13, -16, -14, -4, 9, 20, -2, -33,
-6, 26, 6, -4, 14, 14, -11, -30, 7, 30, 2, -4, 14, 11, 12,
6, 1, -8, -10, -4, -2, 6, 16, 10, -12, -14, 6, -4, -20, -6,
-12, -17, -7, 21, 28, -3, -22, -14, -28, -26, 4, 32, 26, 2, -6,
-12, -16, 9, 32, 14, -17, -26, -12, -6, -11, 4, 22, 14, -13, -22,
-3, 12, 14, -10, -19, -2, 8, 11, 16, 14, 12, -10, -14, -3, 6,
15, 13, -4, -14, 1, 18, 6, -8, -10, -12, -6, -6, 4, -3, -2,
7, -9, -26, 16, 28, -5, -42, -15, 26, 14, -12, 28, 31, -10, -34,
-11, 20, 22, 8, -2, -15, -10, 8, 2, -8, 10, 28, 17, -6, -26,
10, 14, -22, 2, 42, 34, 18, -22, 4, 20, -23, -17, 16, 12, 14,
5, -3, 1, 1, -12, -22, -28, -14, 23, -4, -20, 23, 15, -28, -32,
-19, 18, 2, -17, 12, 20, -4, -8, -2, 6, 8, 0, -12, -2, 8,
8, 8, 0, 8, 7, -16, -16, 2, -27, -24, 12, 6, -22, -1, 28,
13, -36, -18, 29, 0, -30, 12, 26, -3, -9, 13, 18, -12, -4, 18,
-9, -26, 10, 13, -4, -6, 10, 1, -14, -12, 0, -11, -2, 7, -11,
-8, 20, 14, -13, -13, 10, 2, -16, 12, 30, 4, -6, 3, 5, -9,
6, 26, -2, -28, 4, 8, -4, -4, 16, 14, -22, -36, -2, 8, 8,
-14, -6, 20, -2, -32, -12, -2, 13, -8, -6, 22, 2, -27, -4, -8,
2, 11, -2, -8, 10, 15, 12, 2, -8, 7, 0, -14, 9, 18, -2,
6, 8, -6, -6, 12, 2, -26, -35, -6, 36, -2, -20, 22, 7, -39,
-40, -14, 34, 5, -26, 4, 18, -6, -17, -6, 10, 3, -16, -9, 16,
18, 0, -23, -44, -28, -10, -22, -25, -8, 10, 0, -14, 2, 7, -8,
-6, 5, 6, 18, 30, 23, 10, 12, 15, 11, -6, -8, -4, -11, -6,
0, -5, -2, -4, -16, -26, -17, -6, -14, -13, -3, 8, 14, 20, 24,
10, 8, 16, 6, 0, 10, 25, 16, 4, 22, 20, -5, -16, -25, -24,
-29, -20, -2, -12, -26, -36, -26, 12, -6, -17, 8, 2, -17, -22, -2,
17, -8, -6, 13, 0, -17, 26, 17, -6, 10, 9, -4, 8, 0, 28,
-16, -24, 19, -8, -16, 18, -2, 0, -23, -2, 6, -15, 0, 8, -12,
5, 14, 8, 0, 16, 5, -14, 6, 22, 16, -18, 6, 28, -20, -18,
30, 12, -16, -30, 5, 2, -30, -5, 26, 4, 22, 24, -18, -50, -24,
2, -6, -3, -2, 5, 0, -8, 0, 5, -3, -4, -15, -16, 13, 38,
17, -4, 4, -5, 16, 12, -14, -10, -8, -10, 10, -8, 15, 18, -18,
-23, -10, -7, 7, -4, -18, -16, 12, 30, 16, 0, 2, 10, -4, -12,
6, 12, 6, 6, 3, 20, 32, 18, -19, -42, -22, 0, 0, 20, 20,
-14, -32, 2, 34, 12, -16, 2, -3, 2, 0, -7, 4, 7, -4, -8,
-15, 8, 25, -6, -26, -3, 9, 16, 12, -14, -14, 6, 12, 4, -7,
13, 10, -8, -15, 0, 19, 8, -12, -10, -18, 10, 23, -8, -20, -3,
8, 10, 0, -15, -2, 8, -5, -8, 8, 39, 27, -36, -38, 22, 30,
-4, -8, -19, -15, 0, -9, -12, 20, 39, 22, -7, 4, -1, -6, 2,
-1, -4, 3, 3, 22, 7, -2, 16, -16, -40, -5, -20, 4, 9, -19,
4, 12, -1, 24, -28, -4, 3, -25, 4, 18, 2, 22, 0, 18, 8,
0, 10, -10, -35, -17, 10, 11, 6, 6, -4, -4, -8, -18, -12, -18,
-7, -15, -18, 26, 43, 12, -25, 4, 13, -8, 16, 8, -32, -18, -30,
12, 14, -19, 9, 9, -16, 8, -14, 12, 0, -16, 0, 0, 3, 30,
-16, 12, 2, -13, 18, 4, -29, 9, -34, 14, 16, -24, 20, 13, -41,
6, -24, 10, 8, -22, 0, 6, -2, 28, 6, 0, -10, 3, 4, -4,
6, 12, 13, -4, -8, 15, 16, -2, -20, -24, 20, -14, -12, 20, -5,
-6, 8, -20, 8, -8, 3, 9, -12, 6, 6, -14, -26, 12, 16, -24,
10, 10, -18, 24, -32, 13, 2, -22, 26, -4, -27, 30, 0, -6, -6,
10, -1, -3, 4, -14, 27, -12, -2, 22, -22, 2, 20, -29, 22, -6,
-10, 14, 2, -14, 0, 10, 4, -4, -16, 6, 18, -23, -13, 36, -4,
12, -1, -18, 4, 2, -12, 21, -34, 20, 13, -34, 20, 6, -36, 36,
-41, 10, 14, -22, 23, 7, -30, 20, 1, -2, -2, 4, -7, 0, 8,
-14, 32, -6, -8, 18, -20, -6, 22, -22, 8, -4, 0, 7, 2, -2,
-2, 0, -20, 4, 8, -12, 8, 2, -14, 14, -14, 9, 7, -15, -4,
4, -2, 12, 26, 4, -26, 2, 5, -24, 0, 36, 5, -5, -2, 3,
0, 2, 0, -1, -15, -5, 17, 2, -6, 19, -2, -28, 6, 9, -10,
-1, 3, -10, -4, 14, 0, 12, -9, -11, 10, -6, -12, 27, -38, 6,
24, -21, 10, 24, -27, -2, -24, 9, 12, -16, 12, 8, -27, 10, 20,
10, -24, -2, 12, -26, -11, 38, 9, -8, 13, 18, -13, 10, 12, -38,
18, -16, -10, 12, -12, -3, 15, -10, 2, 4, -8, -6, 8, -8, 0,
18, -16, 12, 12, -4, 7, 4, -6, -7, -3, -4, -3, -1, -4, 4,
-2, -9, 0, 10, -4, -13, 10, 0, -18, 27, -32, 27, 22, -28, 22,
11, -34, 28, -46, 9, 14, -28, 8, 14, -22, 2, -53, 6, 8, -10,
28, -4, -28, 14, -2, 16, -2, -10, -5, 0, 10, 1, 28, -10, -4,
15, -13, 3, 12, -15, -12, -12, 6, 2, 12, -2, -18, 6, -10, 16,
0, -16, 0, -2, 7, 11, 18, -4, -7, 16, -11, -1, 15, -20, -2,
-12, 6, 8, 4, 3, -22, -5, -19, 26, 10, -42, 10, 8, -22, 44,
-7, -40, -36, -16, -16, -6, -10, -24, 19, 16, 24, 18, 3, 10, 9,
11, 7, 4, 11, 3, 2, 8, -7, 11, -13, -32, -27, -20, -13, -3,
-17, -12, 6, 18, 23, 12, 3, 10, 10, 6, 1, 10, 12, 2, 10,
4, -4, 10, -18, -29, -28, -28, -12, -12, -22, -10, 9, 18, 27, 14,
2, 12, 16, 5, -2, -34, -10, 44, 26, 2, 12, 2, 10, 25, -2,
-21, -20, -12, 2, -12, -16, 13, -5, -8, 4, -10, 4, -1, -16, -18,
-8, 30, 26, 0, 11, 4, 18, 18, 4, -20, -22, -2, -3, -8, -4,
2, 4, -10, 0, -2, -6, 4, -20, -22, -4, 27, 27, 6, 13, 8,
24, 24, -3, -20, -29, -5, 12, -22, -4, -11, 26, 26, -29, -40, -12,
6, 14, -2, -11, -14, 14, 36, 3, -3, 3, -8, 4, -5, 0, 9,
-7, 8, -1, -12, 24, 17, -25, -28, -13, 8, 18, 0, -14, -11, 13,
32, 4, -6, 0, 0, -2, 0, 1, 4, 1, 4, -9, -2, 18, 15,
-20, -33, -8, 4, 18, 1, -26, -15, 19, 34, 8, -16, -4, 5, -8,
-8, -12, -22, 2, 4, -22, 24, -13, 8, 23, -12, 25, -15, -33, 36,
-24, 4, 22, -30, 36, -24, -30, 29, -22, -4, 6, -39, 26, -11, -12,
12, -7, 4, 18, -2, 12, -5, 2, 2, -2, 3, 3, -2, 6, -2,
-2, 4, -5, -6, -11, -16, 2, 0, -10, 8, -2, 0, 16, 8, 4,
-4, 28, 13, -7, 12, 26, -10, -43, -23, -15, -15, 2, -6, -14, 8,
28, 20, -8, 2, -1, -4, 2, 0, 6, 0, 18, 16, -6, 10, 21,
-16, -28, -22, -8, -13, 2, -6, -14, 8, 26, 16, -6, -2, 2, -4,
2, 4, 2, 5, 16, 13, 0, 14, 16, -16, -30, -26, -8, -14, 1,
-2, -28, 12, 43, 6, 4, -14, 16, 2, -6, 16, -14, 9, 27, -26,
15, -6, -17, 23, -28, 18, 16, -9, 6, 0, -3, 9, -9, 4, -28,
26, -16, 5, 16, -24, 30, -21, -37, 36, -26, -2, 18, -32, 31, -20,
-8, 8, -4, 0, 7, -6, 2, 2, 12, -16, 10, 3, -6, 10, -8,
7, 13, -8, 1, 1, -8, 6, 0, -2, 10, -18, 17, -8, -9, 22,
-24, 16, 17, -16, 10, -2, -6, 10, -16, 11, -6, 10, -10, 5, 4,
-13, 16, -15, -18, 12, -8, 2, 3, -8, 12, -10, 18, -23, 16, -3,
-12, 21, -27, 21, 44, -40, 26, 0, -22, 33, -31, 20, 15, -19, 12,
2, -14, 13, -6, -2, -10, 8, -4, -1, 5, -6, 4, 0, -27, 4,
28, 2, -10, 18, 6, -44, 8, 8, -30, -4, 10, -22, 10, 24, -10,
8, 0, 0, 7, -4, 2, 4, -20, -2, 18, 0, -8, 16, -4, -32,
20, 2, -22, 2, 4, -16, 6, 24, -4, 2, 4, 0, 2, 0, 2,
5, -17, -8, 18, 0, -8, 16, -7, -33, 40, -8, -26, 15, 4, -22,
6, 28, 10, -23, 18, -10, -11, 24, -23, 14, 20, -14, 14, -3, -4,
10, -15, 12, -2, 0, -2, 2, 1, -5, 10, -8, -9, 4, 1, -2,
1, 3, -2, -2, 8, -2, 2, -2, 0, 2, -8, 13, -10, 14, -14,
3, 8, -18, 24, -14, -38, 40, -24, 4, 22, -32, 34, -28, -25, 32,
-20, 0, 16, -24, 16, 2, 12, 18, 20, 24, 16, 12, 14, 14, -14,
-22, -30, -28, -23, -18, -20, -16, 6, 20, 20, 26, 14, 19, 14, 10,
0, -4, -10, -2, -6, -3, -6, 1, -8, -10, -12, -14, -12, -8, -12,
-8, 11, 20, 26, 24, 23, 18, 18, 11, -8, -18, -28, -24, -21, -23,
-12, -12, -2, 12, 13, 10, 14, 10, 6, 2, -49, 34, -3, -19, 20,
-13, -4, 12, 18, -7, -11, 14, -8, 0, 12, -14, 14, -12, 12, 0,
-6, 8, -9, 6, -25, 14, 2, -16, 14, -6, -6, 12, 11, -3, -11,
16, -10, 0, 14, -18, 14, -10, 10, 2, -9, 12, -14, 8, -20, 10,
0, -15, 15, -7, -6, 18, 2, 10, -20, 23, -4, -22, 45, -40, -4,
8, -27, 20, 4, -18, 34, -33, -13, 15, 9, -12, 0, -2, -11, 17,
12, -22, 4, -2, -2, 18, -16, 12, 10, 4, -6, 14, -10, -6, 17,
-20, -21, 20, -4, -8, 6, -5, -5, 9, 8, -20, 2, 2, -2, 16,
-15, 14, 18, 5, 2, 10, -12, -7, 14, -18, -44, 34, -23, -8, 28,
-25, 18, -3, -7, -18, -18, -4, 26, 26, -4, 3, 10, 22, 26, 1,
-36, -28, -2, -1, -5, -17, -24, 2, 30, 20, 8, -6, -2, 5, 14,
-6, -6, -8, -4, 6, 11, 6, 12, -2, -13, -10, -1, -2, -9, -20,
-27, 4, 32, 22, 5, -5, 0, 26, 28, -5, -33, -24, -6, 9, 9,
-24, -17, 7, 14, 20, -2, -4, -13, -19, 10, 28, 8, -18, -17, 4,
21, 22, -11, -37, -8, 24, 18, -2, -20, -18, 7, 32, 7, -22, -12,
0, 5, 11, -7, -11, -2, 9, 1, 0, 8, 7, -4, -11, -4, 9,
7, 2, -18, -22, 12, 32, 8, -24, -14, -1, 20, 22, -11, -38, -4,
23, 15, 0, -13, -18, 13, 23, 4, -15, -9, 2, -16, -14, 3, -5,
-13, 0, 30, 20, 25, 16, 1, -3, 22, -8, -34, -29, -18, -24, 11,
-8, -8, -2, 36, 22, 9, 7, 0, -5, 10, -6, -8, -11, 9, 6,
0, 4, 5, -2, -14, -10, -20, -18, 4, -4, -18, 8, 32, 26, 24,
16, -2, 2, 20, -6, -36, -26, -10, -13, 8, -4, -16, 5, 18, 14,
2, -2, 10, -8, 14, -10, 8, -14, 12, -22, 19, -29, 22, -22, 14,
6, 17, -24, 39, -34, 34, -22, 14, -17, 12, -21, 24, -30, 28, -26,
20, -6, 9, -15, 14, -20, 18, -12, 6, 4, 4, -4, 17, -10, 11,
-2, -2, -10, 4, -10, 0, -11, 6, -12, 12, 6, 4, -2, 10, -6,
8, -2, -4, -4, -15, -6, 21, -4, -10, 20, 0, -23, 24, 7, -28,
8, 8, -24, -2, 32, -29, 4, 12, 7, -20, 31, -6, -26, 8, 4,
-18, 12, -7, 0, -8, 14, 8, 2, -2, 0, 6, -12, 7, 10, -18,
-12, 26, -16, 2, 14, 2, -34, 30, -1, -15, 4, 10, -25, 3, 36,
-21, 3, 12, -9, -1, 14, 0, -21, -10, 10, -12, 22, -25, 26, -18,
4, -6, 18, -28, 22, -19, 11, -8, 11, -5, -6, 16, -12, 12, -7,
8, -10, 20, -24, 24, -26, 24, -22, 16, -6, 3, 2, -4, 2, 0,
0, -2, 2, -24, 24, -21, 30, -30, 26, -20, 4, 0, 12, -29, 23,
-22, 16, -10, 12, -10, 10, -2, 6, -5, 2, -2, -4, 36, -37, 26,
-10, -8, 17, -18, 16, -24, 18, -5, -6, 16, -18, 16, -16, 4, 0,
-6, 4, -2, -2, 6, 2, 17, -23, 20, -9, -5, 15, -22, 12, -15,
16, -8, -4, 15, -18, 20, -12, 4, -3, -4, 4, -4, -2, 3, -2,
13, -18, 20, -11, -3, 18, -24, 17, -14, 20, -18, 4, 14, -29, 34,
-22, 6, -13, 15, -14, 14, -7, 4, -8, 12, -16, 22, -24, 26, -26,
18, 0, 6, -12, 16, -17, 14, -10, 7, -12, -4, 12, -14, 18, -15,
14, -10, 8, -18, 26, -38, 36, -38, 26, -18, 11, -14, 22, -20, 28,
-22, 24, -14, -2, 0, 2, -11, 8, -9, 2, -2, 8, 0, 1, 2,
2, -4, 6, -4, -4, -20, 13, -2, -4, -4, 16, -26, 24, 21, -7,
-12, 24, -16, -3, 20, -24, -22, 6, 16, -27, 20, -6, -9, 16, 18,
-8, -6, 10, -8, 4, -1, -4, -4, 6, -8, 16, -18, 8, 4, -8,
-20, 12, 2, -20, 24, -8, -14, 20, 33, -30, 18, -1, -2, -10, 26,
-26, -10, 3, 12, -27, 30, -17, 0, 7, 3, 10, -22, 28, -26, 17,
-3, -5, -22, 15, -5, 0, -3, 10, -20, 19, 19, -11, 2, 2, 2,
-8, 16, -16, -6, 2, 4, -6, 4, -1, -3, 4, -10, 15, -15, 14,
-12, 15, -16, 14, 8, -4, -6, 10, -10, 2, 10, -14, -2, -10, 28,
-38, 39, -26, 8, 6, 24, -31, 28, -25, 20, -18, 20, -14, 6, 10,
8, 8, 8, 5, 8, 6, -10, -18, -14, -18, -12, -13, -14, -12, 16,
20, 25, 20, 19, 16, 20, 15, -18, -23, -30, -24, -22, -20, -24, -18,
14, 24, 24, 27, 16, 23, 22, 17, -12, -19, -22, -20, -16, -16, -21,
-12, 7, 14, 12, 16, 8, 13, 13, 7, -3, -4, -6, -4, -6, -2,
-6, -2, -10, 16, -27, 30, -35, 28, -14, 10, -4, 8, 2, -2, 12,
-9, -2, -6, 11, -24, 17, -22, 12, -12, 22, -4, 2, 12, -6, 14,
-6, 8, -22, 2, -16, 4, -10, 2, -10, 8, 9, 6, 21, -14, 22,
-17, 25, -23, 6, -14, -4, -4, 1, -4, -4, 7, 0, 8, -12, 24,
-32, 36, -30, 24, -19, 5, 4, 8, -7, 10, 3, 4, -20, 0, -11,
-6, 1, -7, -18, 5, 26, 6, 19, 8, 0, 6, 30, -16, -28, -14,
-21, -12, 4, -11, -32, 18, 33, 18, 20, 17, -12, 19, 25, -14, -36,
-15, -16, -16, 16, -21, -16, 8, 34, 11, 17, 4, -4, 8, 18, -10,
-20, -8, -12, 6, -6, 5, -18, 12, 3, 6, 0, 9, 10, 2, -14,
-5, -4, -5, -2, -14, -20, 0, 22, 10, 6, 10, 2, 18, 33, -6,
-26, -18, -8, -14, 1, -26, -36, 4, 32, 17, 12, 16, -4, 28, 37,
-5, -31, -16, -13, -15, 4, -25, -32, 6, 26, 12, 12, 11, -4, 18,
22, -3, -18, -6, -9, -6, 0, -6, -14, 6, 4, 4, 2, 3, -6,
-11, 6, 13, 1, -6, -2, 2, 11, 19, -10, -23, -4, 12, 4, -4,
-19, -24, 14, 34, 4, -17, -4, 6, 26, 26, -16, -40, -3, 20, 5,
-7, -28, -25, 16, 40, 2, -22, -4, 7, 25, 22, -16, -33, -2, 20,
2, -6, -18, -15, 12, 23, 1, -14, 0, 4, 8, 8, -7, -10, 0,
8, 0, -2, -20, 16, -12, 8, 6, -2, 10, -15, 30, -20, 14, -9,
-12, 0, -14, 25, -29, 12, -4, 2, 20, 2, 12, -30, 22, 0, -10,
4, -20, -12, -2, 26, -12, -12, 18, -7, 13, 25, -14, -14, 2, 20,
-22, 8, -4, -34, 27, 2, 3, -18, 18, -4, -4, 32, -30, 6, -2,
11, -11, 4, 4, -20, 20, -6, -9, 18, -16, 6, 0, -18, 11, 2,
8, -23, 20, -6, 0, 30, -18, -6, 0, 21, -18, 3, 0, -38, 20,
14, -12, -11, 12, -1, 4, 36, -14, -24, 22, -1, -6, 0, -10, -27,
3, 32, -28, 10, 0, -1, 15, 14, 8, -34, 24, -12, 3, 2, -16,
-2, -12, 28, -14, 10, -4, 0, 9, -2, 10, -14, 11, -17, 22, -24,
24, -22, 20, -12, -10, 14, -18, 19, -22, 22, -22, 17, 0, 2, -4,
6, -2, -2, 10, -12, 5, -12, 18, -23, 22, -16, 3, 5, 0, 8,
-18, 24, -26, 21, -8, 0, -9, 6, 2, -7, 12, -11, 2, 2, 20,
-26, 24, -21, 15, -12, 12, -8, -16, 24, -26, 26, -22, 18, -16, 8,
-4, -2, 10, -14, 14, -6, -2, 8, 12, -3, -11, 20, -18, 6, 6,
-16, -24, 12, 7, -19, 16, -2, -14, 27, 32, -20, -2, 18, -14, -2,
20, -34, -34, 22, 0, -17, 14, 1, -20, 35, 28, -18, -4, 19, -17,
4, 14, -28, -16, 8, 8, -20, 18, -9, -4, 16, 6, -2, -6, 14,
-14, 10, -2, -5, -8, 10, -8, 4, 1, -4, 6, -6, 16, -19, 15,
-8, -2, 8, -13, 12, -23, 26, -20, 9, 6, -13, 21, -18, 26, -30,
22, -10, -8, 17, -26, 23, -25, 28, -19, 6, 12, -20, 29, -24, 20,
-22, 14, -3, -12, 20, -27, 22, -13, 14, -8, 1, 10, -15, 20, -16,
6, -6, 4, 0, -6, 8, -10, 8, -8, 12, -16, 18, -18, 16, -12,
7, 12, -18, 24, -27, 28, -25, 20, -12, -10, 16, -20, 24, -26, 24,
-19, 12, 2, -6, 8, -12, 14, -14, 12, -9, 6, -8, 8, -6, 4,
-1, -2, 2, -13, 18, -22, 21, -18, 14, -9, 4, 14, -22, 26, -26,
25, -20, 14, -6, -8, 14, -18, 18, -18, 14, -11, 6, 3, -4, 6,
-6, 6, -5, 4, -2, -7, 10, -13, 14, -13, 11, -9, 5, 10, -15,
19, -20, 20, -18, 14, -8, -13, 20, -25, 27, -26, 24, -19, 10, 14,
-20, 26, -28, 28, -26, 20, -12, -12, 18, -23, 26, -25, 23, -18, 10,
8, -14, 17, -20, 19, -18, 14, -8, -4, 6, -8, 10, -10, 9, -8,
4
};
static const int32_t mdt8x8_mode1[4096] = {
10, 6, 3, 1, 1, 2, 0, 0, 27, 16, 6, 2, 1, 0, 0,
0, 38, 26, 6, 4, 1, 1, 0, 0, 42, 28, 6, 4, 2, 0,
0, 0, 44, 28, 8, 5, 4, 1, 0, 0, 45, 27, 9, 4, 5,
2, 0, 0, 41, 26, 7, 2, 3, 2, 0, 0, 38, 27, 10, 4,
3, 1, 0, 0, -3, 12, 10, 3, 0, 2, 0, 0, -16, 21, 24,
6, 0, 0, 0, 0, -28, 20, 30, 10, -1, 0, 0, 0, -30, 18,
33, 11, -1, 0, 0, 0, -26, 24, 36, 12, 2, 0, 0, 0, -20,
26, 37, 14, 3, 1, 0, 0, -20, 26, 36, 14, 2, 2, 0, 0,
-16, 24, 34, 15, 2, 2, 0, 0, 0, 6, -10, -10, -1, -3, 0,
0, -10, 11, -18, -22, -1, 2, 0, -1, -18, 8, -20, -33, -2, 2,
0, 0, -20, 14, -14, -36, -6, 3, 0, 0, -18, 25, -15, -38, -14,
3, 1, 0, -9, 36, -11, -35, -19, -1, 3, -1, 6, 40, -3, -30,
-16, -2, 4, 0, 6, 32, -8, -30, -15, 0, 2, 0, 15, 14, -2,
-2, 1, 0, 0, 0, 36, 30, -2, -6, 2, 2, 0, 0, 46, 44,
-2, -10, 2, 2, 1, 0, 28, 35, -3, -9, 2, 2, 1, 0, -4,
14, -4, -7, 2, 2, 1, 0, -31, -4, -4, -6, 2, 1, 0, 0,
-50, -18, -5, -7, -2, 0, 0, 0, -52, -20, -4, -6, -3, 0, 1,
0, -26, 1, 4, -3, 1, 6, -2, 0, -58, 8, 17, -1, -1, 0,
-2, 0, -42, 26, 22, 6, -2, 0, 0, -1, 4, 37, 0, 6, 6,
0, 0, -2, 30, 34, -12, 2, 18, 1, -1, -2, 18, 6, -24, -7,
21, 8, -3, -2, -6, -24, -38, -14, 10, 8, -2, -2, -6, -18, -24,
-4, 9, 1, -2, -2, 18, 22, 15, -4, -4, -2, 0, -2, 24, 31,
25, -8, -12, 2, 0, -4, -4, 21, 36, -9, -19, 0, -2, -2, -29,
2, 40, -6, -22, 0, -2, -2, -20, -16, 18, -10, -22, 1, 0, -3,
14, -25, -9, -10, -22, -4, 0, -4, 32, -26, -18, -6, -18, -6, 0,
-6, 28, -27, -18, -10, -18, -4, 0, -5, -18, -19, 0, -5, -8, -6,
0, -2, -24, -34, 2, -8, -14, -4, 0, -3, 1, -20, 10, -12, -18,
-3, -2, -1, 32, 7, 18, -15, -24, -1, -2, 0, 40, 9, 16, -16,
-31, -2, -1, -2, 18, -2, 20, -9, -36, -7, 0, -2, -10, -12, 28,
0, -31, -10, 0, -2, -30, -22, 22, 0, -29, -10, 0, -1, -44, -24,
-11, -10, -2, 0, 0, 0, -31, -16, -4, -12, -6, 0, 0, 1, 28,
29, 8, -8, -4, 0, 0, 2, 26, 30, 5, -4, 0, 0, 0, 4,
-30, -16, 2, 0, 2, 0, -2, 3, -49, -33, 6, -3, 2, 2, -1,
4, 5, -12, 7, -2, -1, 2, 0, 4, 58, 20, 9, 4, -2, -2,
0, 4, -2, -15, -8, 10, 10, -4, 0, 0, 8, -33, -34, 4, 17,
3, 0, 0, 12, -16, -26, -8, 12, 4, -1, 0, -13, 28, 26, -4,
1, 2, 0, 0, -28, 44, 44, 2, -6, 2, 2, 0, -4, 28, 16,
6, -2, -2, 2, -1, 20, -12, -17, 11, 12, 0, 0, 0, 8, -45,
-32, 8, 13, 4, 0, 0, 0, -27, 4, 10, -10, -1, 0, -4, 14,
-30, 16, 26, -16, -7, 0, -6, 21, -16, 22, 38, -16, -12, 0, -7,
8, -2, 18, 37, -10, -13, 0, -8, -11, 7, 6, 14, -8, -10, 0,
-8, -16, 15, -13, -13, -8, -4, -2, -8, -18, 25, -36, -31, -7, -2,
-4, -8, -8, 32, -28, -30, -8, -6, -6, -8, 22, -34, -45, -12, -5,
-1, -6, -6, 22, -18, -40, -16, -14, -12, -8, -6, -16, 26, 6, 0,
-18, -16, -8, -6, -32, 25, 10, 6, -10, -17, -8, -5, -2, 2, -14,
6, 4, -15, -10, -6, 22, -14, -26, 2, 9, -10, -12, -6, 1, -6,
-4, 9, 4, -12, -15, -5, -12, 16, 32, 27, 8, -19, -15, -4, 24,
38, -8, -11, -3, 0, -4, -6, -10, 25, -22, -19, -9, -8, -7, -8,
-24, -12, -24, -4, -15, -14, -8, -8, 20, -8, -16, 18, -12, -20, -7,
-8, 22, 16, 15, 30, -8, -22, -6, -8, -28, 2, 24, 18, -12, -16,
-6, -8, -28, -13, -6, -1, -13, -12, -8, -8, 39, 6, -22, 2, 1,
-14, -11, -8, 11, -10, -20, -22, 10, 18, -2, -4, 10, -6, -18, -36,
5, 16, -4, -6, -6, -5, 10, -12, 2, 14, -4, -5, -1, -18, 19,
12, 11, 7, -2, -3, 14, -12, 36, 12, 23, 13, -2, -4, 9, -11,
26, -23, 21, 32, -4, -6, -10, -12, 10, -49, 3, 35, -4, -6, 0,
4, 9, -34, 4, 22, -2, -4, -2, 0, -18, 8, 8, 2, 4, 6,
0, 10, -20, 19, 15, -6, 6, 9, -4, 16, -12, 37, 20, -6, 6,
12, -16, 8, -16, 36, 21, -8, 6, 15, -8, 12, -8, 18, 9, -6,
8, 14, 8, 2, 4, -10, -14, 2, 10, 13, 10, -20, 12, -25, -48,
-2, 17, 12, 8, -18, 22, -12, -48, -13, 16, 12, 22, -8, -14, -1,
-2, 10, 15, 9, 4, -8, -14, -10, -7, 16, 22, 10, -17, 1, 3,
-14, -16, 16, 26, 11, 2, 10, 16, 8, -20, 13, 30, 13, 18, -2,
0, 22, -18, 12, 32, 14, -4, -11, -14, 21, -12, 10, 35, 14, -16,
6, -17, 16, -1, 10, 36, 16, 0, 26, -18, 11, 2, 12, 34, 16,
18, -1, -19, -18, -6, -2, 0, 10, 12, 4, 8, -12, -12, -6, 0,
15, 0, -24, 38, 14, -10, -7, 0, 18, 14, -27, 12, 4, 2, -4,
-2, 22, 5, 21, -14, -32, 8, 2, -4, 23, -25, 32, -6, -36, 12,
6, -4, 25, -13, -5, 4, -2, 10, -2, -4, 26, 26, -25, 4, 30,
11, -12, -4, 26, 47, -1, 16, 30, 14, -2, -2, 0, 18, -28, 11,
34, 17, 0, -4, 0, -28, -19, 2, 8, 10, 6, -2, -3, 0, 31,
-2, -22, 6, 15, -3, -8, 18, 22, -6, -28, 4, 15, -6, -10, -22,
-28, -4, -8, 0, 7, -4, -8, -20, -26, 4, 2, -2, 6, -1, -8,
34, 19, 22, -6, -9, 10, 0, -10, 4, 16, -3, 14, 16, -22, -6,
10, -10, 3, -22, 8, 32, -10, -9, 16, -12, 4, 3, -6, 28, -8,
-11, 20, 13, 9, 48, -3, 11, -6, -12, 22, 22, -28, 17, 0, -4,
-10, -12, 21, -1, -24, -14, -3, -5, -24, -10, 22, -1, 21, 4, -6,
14, -22, -12, 21, -12, 15, -16, -28, 8, -8, -12, 20, -27, 40, 26,
-6, 6, 4, -2, 3, -4, 9, -10, -17, 2, 6, 0, 4, 22, -39,
-24, -1, -8, 1, -1, 4, 1, -6, 19, 13, -8, -2, 0, 7, -16,
29, 18, -5, 2, 1, -1, 7, 12, -12, -32, -10, 9, 4, -2, 5,
2, -32, -34, 3, 1, 0, -2, 3, -13, 42, 44, 10, -10, -4, 0,
2, -1, -18, 24, 0, -14, 0, 2, 12, 20, -15, 26, -2, -24, -14,
2, 18, 0, 2, -7, -16, -20, -14, 4, 17, -24, 8, -33, -30, -5,
-17, 2, 17, -2, 15, 17, 8, 15, -22, 0, 20, 18, -10, 32, 21,
21, -14, -3, 24, -6, -24, -3, -16, 4, -6, -2, 26, 1, 14, -6,
-32, 6, -7, -1, 24, -28, -40, -16, 20, 21, -6, -4, -3, 12, 22,
5, 2, 29, 4, -6, 0, 9, 9, 17, -26, 10, 16, -8, 0, -14,
-40, 7, -20, -3, 14, -10, -1, 14, 5, 8, 8, 8, 5, -10, 0,
10, 26, -5, 16, 10, -6, -6, -2, -40, -16, -20, 16, -15, -14, 2,
-3, 21, 17, -10, 8, -34, -17, 4, -8, -21, -8, -10, 10, -4, -1,
4, 0, 0, 24, -11, 30, 1, -16, 4, 2, 0, 26, -24, 32, 8,
-14, 2, 3, -15, -13, -13, -4, -17, -2, 4, 2, 13, -12, 28, -30,
-40, 12, 8, 0, 20, -9, 24, -30, -20, 21, 4, -1, -22, -14, -13,
-12, 15, 14, -2, 2, 6, 17, -4, 24, 36, -2, -6, 4, -33, 18,
-24, 6, -3, -12, -2, -2, 7, 16, -27, 18, -2, -9, 0, -4, 13,
-13, 10, 20, -22, -8, 2, -2, -16, -2, 20, -7, -28, -3, 1, 0,
5, 19, -34, -8, -7, -4, -1, 3, 6, 2, -10, 28, 10, -2, 0,
3, -12, -12, 37, 12, 8, 24, -4, 0, 14, -6, -5, -44, 4, 48,
-4, -2, -16, 0, -12, -46, -4, 10, -4, -6, 17, -2, 18, -22, 2,
12, -4, -5, 8, -20, 15, 17, 34, 4, -12, 2, -19, 14, -5, 8,
40, 6, -14, 6, 3, 24, -13, -10, -5, 8, -4, 4, 10, -24, 10,
10, -38, 1, 2, -2, -4, -13, 14, 24, -20, -6, -1, 0, -9, 30,
-41, 2, 18, 0, -9, 1, 32, 2, -55, -10, 22, 0, -2, -2, -28,
12, 4, 14, 10, -10, 0, -2, 1, -4, 24, 20, -4, -8, 8, -2,
34, -16, -18, -25, -8, 2, 6, -4, -28, 6, 18, -18, 2, 4, 0,
-6, -2, -2, 20, 19, 8, -4, 0, 0, 38, -23, -20, 15, 3, -4,
4, 2, -29, 24, -2, -18, -8, -1, 6, 0, 10, 0, 2, 11, 2,
16, -12, 10, -4, -3, -5, 5, -6, 16, -20, 14, -4, 6, -8, 6,
-24, 19, -26, 22, 5, 10, -17, 6, -21, 19, -30, 24, -9, -5, -6,
12, -14, 22, -32, 18, -2, 0, 7, 18, -11, 32, -30, 15, 8, 16,
-18, 8, -18, 32, -24, 10, -10, 0, -12, 16, -22, 18, -25, 8, -4,
8, -2, -11, -48, -19, 8, 0, 0, 7, -20, 10, -42, -25, 10, 2,
-4, -2, -20, 14, 0, -6, 4, 0, -2, 2, 18, -8, 18, 28, -1,
-4, 8, -4, 21, -15, 28, 42, -4, -5, 0, -11, -1, 6, 29, 20,
-5, -2, -4, 12, 4, 18, 2, -12, 0, -2, 0, 2, -22, -6, -38,
-27, 5, -6, -23, 38, 0, -6, 46, 20, -2, -6, 12, -21, -8, 5,
28, 0, -2, -2, 8, -12, 14, 12, -31, -9, 10, 0, -13, 20, -4,
-14, -26, -5, 8, -3, 2, -10, -10, -9, 22, 4, -4, -5, 8, -16,
22, -2, 24, 13, 0, -3, -8, 26, 10, -16, -14, -6, 14, 0, -2,
-2, -28, 24, -2, -42, 8, 0, -9, -8, 4, -15, -4, 45, 9, -4,
9, 6, -8, 2, 6, 48, 12, -12, -10, 6, -7, 30, 4, 35, 14,
-18, -2, 1, -6, 6, -17, 20, 15, -10, 9, 0, 2, -14, -19, 0,
10, 0, -9, 0, 2, 7, 12, -21, -10, 12, 2, 4, -2, 6, 22,
-30, -28, 16, 6, -11, 14, -29, -11, -24, -26, 16, 7, 17, -4, -48,
-20, 0, -16, -21, -2, -20, 14, 6, 15, -16, -24, -16, 8, -2, 4,
12, 38, -8, -27, -2, -7, 8, -4, -28, -15, 0, -10, 2, 2, -9,
6, 16, -34, -6, 12, 2, 3, 6, -16, 26, 16, 10, 14, 0, -17,
16, -18, -16, 16, 18, 10, 7, 13, -15, 20, 4, -22, -4, 16, 14,
26, 19, -16, 30, -19, -3, 2, -22, -32, -6, 3, 24, -12, 10, 1,
-27, 26, -6, 4, -22, 2, 26, -6, -16, -3, -2, 8, -8, 0, 18,
-2, -2, -22, 8, -12, 27, -1, 6, 10, 8, 24, 5, -10, -8, 0,
11, 8, 7, -10, -22, 32, -24, -8, -4, -10, 13, 3, 14, -14, 7,
22, -32, -20, 22, -10, -35, -4, 15, -2, -15, -3, -18, 20, 36, 20,
-3, 12, 4, -4, -26, -20, -19, -14, -10, 6, -2, -8, -14, 10, 2,
-6, 8, -22, -26, -3, 10, 7, 29, 4, 7, -12, -10, 8, 15, -24,
-34, -12, -12, 22, 28, 6, 3, 32, 10, 26, 0, 13, 16, 2, 0,
-16, 2, -18, 6, -16, -20, 2, 4, -23, 8, -30, -8, -10, -8, 24,
19, 20, 10, 10, 16, 3, -14, 30, 28, -9, -22, 13, -10, 12, 10,
20, 20, 4, 4, -8, -26, 0, 23, 11, 6, 5, 14, 5, 36, -8,
0, 2, -5, -16, -13, -12, 13, -10, -4, -10, -10, 12, 12, -8, -38,
-8, 6, -18, -16, -2, -10, 18, 13, 16, -11, -30, -25, -31, 8, -6,
18, -8, 6, -8, -24, 27, 8, -18, 16, -18, -2, -12, -28, -18, -6,
14, 0, -13, 4, -6, -28, 6, -2, -2, -22, 26, 10, -10, -23, 14,
-2, 14, 5, 22, -4, -8, -12, -20, -5, 1, 2, -19, -14, 1, 16,
16, 10, -26, -10, -23, 3, 12, 33, -9, -4, 12, 16, 14, 23, 13,
39, 8, 12, -24, 7, -10, 21, 25, -12, -13, 0, 10, 14, -16, 29,
30, -15, 12, -6, -8, 4, 8, 7, 13, -6, -7, 8, 7, -22, 18,
-30, -7, 16, 2, -11, 18, -15, 7, -45, -15, 27, 12, -10, -2, -12,
12, -17, -13, 9, -15, 14, -4, 4, -2, 16, -6, -12, 4, 1, -13,
27, -29, 29, 8, -22, -9, 14, 19, 18, 2, -18, 34, -24, 14, -16,
-22, -19, 5, -9, 30, -31, -12, 6, 28, -7, 10, -14, 6, -3, 8,
2, 0, -2, 18, -18, 2, 26, -2, -14, -22, -10, -6, 0, 16, 11,
-4, 20, 27, 18, -9, 28, 10, -8, 3, -10, -27, 12, 8, 18, -17,
-6, -2, 6, 9, -8, -16, -15, -35, 10, 10, -2, -5, -20, 24, -30,
-4, 16, -10, -2, 26, -6, 12, -20, 16, 2, 12, -3, -16, -10, 4,
-12, 36, -34, -14, 8, 3, 10, 0, -6, 28, -42, 6, -6, 2, 6,
2, 5, -1, -13, 4, 0, -4, -4, -6, 11, -20, 17, -8, 4, -1,
8, -6, 17, -31, 32, 3, 2, -8, 14, -26, 20, -26, 28, -18, 32,
-34, 24, -6, -26, -10, 34, 12, -12, 6, -1, -16, 10, -14, 22, 2,
-9, 16, -16, 1, 31, -21, -12, -15, 16, -16, 22, 11, 2, -8, -16,
10, -8, -12, 2, -21, -16, 12, -5, -2, -2, 33, -22, 6, -2, 7,
-4, 6, -8, -11, 4, 43, -3, -3, 0, -5, 6, 0, 1, -28, -6,
18, -1, -6, 9, -34, 4, 42, -10, -14, -30, 2, -2, 34, 2, -22,
2, -4, -26, 6, -6, -16, -6, -27, -14, 3, 13, -13, 12, -20, 12,
18, 8, 4, 30, 9, -6, 24, 10, 5, 30, 6, 18, 1, 0, -17,
-8, -20, 0, 8, -4, -12, 17, -6, 15, 21, -20, -1, -6, 12, -20,
20, -24, 4, 2, -9, -4, 0, -2, -12, 15, 14, 35, 13, 40, -6,
8, 4, 6, -18, 18, 4, 28, 4, -4, -2, -3, 0, -22, -24, -6,
4, -4, 7, -16, 16, -35, -27, -20, -2, 1, 14, -6, 4, -2, 16,
-21, 4, -4, -24, 14, -4, 26, 36, -22, -9, 14, 5, 14, -6, 12,
4, 0, 7, -11, 6, -14, -1, -16, -26, 30, 6, -7, -5, 7, 10,
-4, 52, -8, -6, 8, 9, -20, 4, -10, 40, -6, 5, -10, -2, 2,
0, -2, -5, 2, -1, 8, -4, 16, -4, 12, -38, -8, -9, 6, -8,
2, -21, 8, -49, -24, 12, -8, 2, 8, -3, -2, -28, -9, -8, 7,
0, -10, 21, -2, 24, 20, 6, -9, 9, -12, 8, -10, 38, 22, -13,
22, -4, -22, -8, 1, 2, -8, 18, -26, 4, 29, 3, 16, 8, 2,
-15, 20, -2, -12, 6, 3, 13, 24, 4, -6, -8, -4, -14, -20, 2,
15, 8, -10, 15, 22, 3, -3, -18, -24, -15, 28, -23, -30, 0, 10,
-23, -37, 12, -28, 21, 26, -1, 1, -6, -5, -6, 16, -12, -8, -2,
2, 15, 37, -8, 10, 1, -23, 7, -3, 30, 23, 14, -20, 4, 16,
7, 0, 16, -6, -14, 15, -1, -4, -2, -8, -22, -42, 8, 0, -8,
-2, -16, -4, -32, -18, 1, -10, 9, 16, 3, 18, -5, 38, -7, 20,
-14, -14, -2, 12, 10, 46, 6, -16, 8, 12, -4, -11, 14, 8, -2,
6, 1, -10, 12, 0, -2, -44, 10, -4, -2, -6, 3, 25, 0, -13,
-19, 3, 8, 16, -4, 8, 8, 2, 32, 5, -22, -11, -2, -25, -1,
12, -42, -10, 34, -8, 4, -4, -10, -6, 48, 3, -32, 8, 2, 10,
-10, -2, -44, 9, 24, 7, -8, 6, 6, 7, 33, -16, -12, -14, 15,
-4, 2, 2, -14, 8, 6, 4, -6, -6, 2, -8, 8, -5, 5, -14,
4, -46, -28, 34, -8, 2, 1, -2, -4, 14, 12, -11, 9, 5, -10,
24, -8, 38, 22, -32, -14, -2, 6, -10, -4, -2, -13, 19, 16, -4,
1, -10, 11, -18, -26, 26, -13, 4, 0, 18, -6, 12, 4, -24, 4,
4, -12, -4, -14, 8, 20, -24, 0, -4, 12, -10, 24, -22, 0, 20,
-2, 15, 5, 15, 16, 7, -24, -22, 0, -22, -7, -12, -22, -14, 0,
10, 3, 22, 10, 2, 9, 18, 28, 16, -6, -22, -9, 4, 19, 1,
3, -15, 8, 14, 16, -8, -28, -27, -24, -18, -10, -4, -23, 7, 4,
13, 0, 28, 4, 2, 11, 14, 3, 31, 28, 22, -2, -1, -2, -13,
2, -28, -18, -34, -7, -16, 14, -20, 32, 27, -22, 12, 12, 18, -8,
22, -22, -16, -2, -2, -21, -12, -11, -4, -14, -10, 14, -15, 25, 10,
22, -14, 34, 20, 2, 2, -22, -11, -18, 16, -16, -14, -6, 16, 14,
17, 0, 2, -20, -2, -10, -1, -6, -17, 14, -11, 36, 23, -8, -14,
2, 6, -8, 4, -16, -23, 22, 2, 6, 8, 14, 8, 33, 6, 32,
22, -9, -20, -9, -20, -16, -27, -6, -14, 16, 28, 10, 18, -2, -2,
-25, -14, -18, -29, -14, -7, 4, 32, 6, 10, 19, 24, 16, 4, -7,
-7, 25, 16, -19, -12, -21, 0, 2, -20, -12, -14, 12, 3, 18, -5,
1, 8, -24, -19, -6, 4, -14, 12, -9, 8, 16, 19, -10, 6, -24,
1, 20, 6, 15, -6, 19, -11, 40, -6, -20, -25, -4, -2, -22, 8,
-46, -2, 12, 16, -17, 6, 14, 4, 34, 19, -10, 24, 0, 2, -5,
-16, -16, -24, -6, -19, 4, -2, -2, 15, 11, 8, 36, -14, 12, -6,
4, -12, -4, -2, -32, 6, 14, -4, -3, 6, -2, 2, 10, 6, -23,
12, -6, 10, -17, 35, -8, 24, -10, 23, 4, -4, 11, -20, -17, 3,
-16, -9, 0, -7, 2, -4, 34, -22, 8, -21, 0, 7, 6, -3, -1,
-22, 36, 8, 2, -10, -4, -4, -19, 21, -6, 12, -5, 12, -5, 21,
8, 24, -46, 3, 1, -2, -4, -1, -26, -12, -14, 0, 2, -2, 7,
-11, 24, -10, 38, -10, 2, -11, 10, 18, 22, -24, -7, -16, 0, 17,
-4, -38, -23, 18, 11, 12, 2, -24, 1, 48, 10, 2, -4, 18, -6,
34, -8, -30, -8, 0, -16, -11, 8, -36, 10, 16, -4, 3, 14, -14,
-9, 34, -16, -2, 10, -2, 10, 8, 8, -24, 16, -13, -4, -6, -11,
7, -4, 12, -10, 12, -2, 6, 2, -8, 4, -10, 0, 0, -10, 10,
34, 30, -9, 18, -1, -2, 6, -11, -36, -28, 12, -21, 0, 8, -2,
2, -16, -2, -12, 22, -2, -10, -8, 15, 35, 26, 10, -18, 3, 14,
20, -20, -9, -21, -4, 11, 0, -24, -15, -6, -8, -8, 0, -4, -4,
26, 6, 27, 30, 30, 0, 0, 2, -12, 0, -16, -22, -18, -3, 4,
4, -10, 17, -24, -6, 36, 6, -11, 2, 8, -19, 30, 1, -37, -11,
19, -9, 4, 2, 0, -5, 6, 12, -20, 11, -5, 5, -18, 2, 32,
-10, 16, -8, -5, -2, 15, 0, -38, 6, -8, 0, 21, 0, -2, 4,
-11, -2, -1, 7, -34, 12, -18, 1, 48, 0, 2, -6, 20, -12, 14,
-4, -28, -4, 6, -2, 21, -13, 24, -24, 20, 4, -4, -2, -18, 0,
-2, 5, -10, -1, -2, 14, -3, 24, -34, 28, -18, 0, 4, -15, 6,
-15, 14, -8, 8, 0, -2, 6, 8, -10, 30, -34, 16, 0, 3, -2,
-6, 12, -34, 20, -14, 4, -9, 10, -14, 17, -2, 40, -14, -3, 6,
-8, 15, -20, 18, -40, 17, 6, -10, 15, -14, 14, 23, -14, 7, -9,
16, -20, 18, -6, -41, 16, -6, 12, -18, 18, -16, -3, 22, 9, -14,
-10, 13, -8, 4, 16, -2, -18, 28, 8, -6, 0, 10, -36, -10, 6,
-10, -4, -2, 6, -18, 38, 26, 6, -18, 3, 3, -5, 12, -23, -44,
-2, 17, -1, -1, 0, -4, 5, 28, -6, -6, -1, 2, 2, 9, 18,
10, -16, -3, 2, -4, -1, -12, -33, -16, 12, 0, -5, 8, -4, 16,
46, 8, 4, 4, 9, -14, 14, -24, -45, 1, -7, -6, -12, 20, -24,
32, 34, -11, -4, 6, 10, -20, 23, -33, -23, 16, 8, -6, -7, 15,
-16, 24, 10, -14, -8, 6, 3, -7, 6, -10, -2, 7, 4, -2, -1,
-1, 2, -3, 8, -7, 46, 8, 2, 1, -2, -2, -8, -2, -57, -14,
-2, 0, -1, 9, -2, 17, 26, 20, 2, -2, 3, -12, 10, -16, 14,
-18, -3, 4, -4, 8, -12, -2, -38, -2, 2, -2, 0, 3, 1, 31,
24, 30, -2, -1, 2, -10, 9, -38, 1, -40, 0, 0, 0, 6, -6,
17, -6, 18, 2, -9, 16, -22, 34, -22, 5, -10, -5, 12, -24, 30,
-44, 24, 8, 6, 5, -9, 18, -18, 26, 2, -34, 8, -2, 4, -7,
7, -8, -17, 32, -16, 0, 3, -4, 0, -8, 19, 4, 8, 2, -6,
8, -2, 14, -16, -36, 10, -2, 4, -6, 0, -8, 7, 40, -21, 0,
-2, 3, 1, 2, 0, -20, 14, 0, -2, 0, -4, 3, 6, -16, 38,
-2, 6, -4, 12, -8, -7, 14, -56, 4, -10, 10, -21, 18, 0, 14,
40, -6, 10, -11, 21, -18, 6, -25, -5, 4, -8, 6, -14, 10, 2,
6, -28, -2, 2, 0, 1, 3, -16, 18, 42, 0, 2, -4, 7, -11,
24, -29, -27, 0, -2, 2, -5, 8, -14, 18, 6, -1, -2, 4, -7,
10, 13, 14, -15, -1, 7, -9, 14, -20, -24, -14, 12, 3, -10, 12,
-20, 24, 28, 6, -2, -4, 12, -14, 29, -29, -15, 3, -7, 6, -13,
17, -36, 32, 2, -16, 26, -6, 12, -16, 33, -26, 2, 20, -32, 4,
-8, 10, -23, 15, -2, -18, 26, -2, 3, -4, 9, -6, 1, 8, -11,
-1, 0, 3, -1, -3, -10, -8, 15, 1, 1, -6, 3, 3, 25, 13,
-28, -1, -2, 6, -5, -3, -36, -12, 40, 1, 1, -6, 5, 5, 41,
16, -48, 0, 0, 4, -4, -8, -39, -14, 43, 0, 0, -2, 0, 10,
29, 7, -34, 0, 1, -1, 2, -8, -16, -2, 22, 0, -1, 1, -2,
3, 6, 0, -6, 0, 0, -1, 2, -4, 6, 8, 14, 0, 0, 2,
-4, 4, -16, -22, -24, 0, 0, -6, 7, -6, 25, 35, 33, 1, -1,
7, -8, 8, -29, -41, -36, 0, 0, -6, 5, -4, 23, 48, 32, 0,
0, 3, -2, 0, -15, -42, -26, 0, 0, -2, 1, 2, 6, 26, 14,
0, 0, 0, 0, -2, -2, -10, -4, -2, 2, -6, 8, -14, 21, -27,
12, 2, -2, 8, -12, 18, -32, 44, -18, -2, 0, -5, 8, -12, 28,
-42, 15, 0, 2, 0, -2, 0, -14, 24, -9, 0, -6, 7, -9, 17,
-10, 6, -8, -2, 8, -12, 16, -27, 26, -24, 20, 2, -6, 10, -14,
24, -28, 28, -21, -1, 4, -6, 6, -11, 14, -14, 10, 0, 0, -2,
-2, 2, -6, 6, -5, 0, 0, 0, 6, -8, 18, -20, 12, 1, -2,
4, -12, 14, -30, 30, -16, -1, 2, -5, 14, -18, 36, -36, 20, 1,
-2, 6, -16, 18, -40, 41, -20, 0, 2, -5, 14, -14, 34, -38, 16,
0, -2, 4, -10, 10, -22, 26, -11, 0, 1, -2, 4, -4, 9, -10,
4
};
static const int32_t mdt8x8_mode2[4096] = {
15, 39, 43, 30, 27, 38, 46, 36, 16, 35, 34, 22, 20, 26, 30,
24, 8, 14, 9, 1, 0, 4, 8, 4, 0, 0, 0, 0, 1, 2,
0, -2, 0, -1, -2, -1, 0, 0, 0, 0, 1, 2, 2, 3, 2,
0, 0, 1, 1, 0, 0, 0, 0, 2, 2, 1, 0, 0, 0, 0,
0, 0, 0, 0, -14, -22, -18, -14, -20, -26, -24, -14, 6, 16, 18,
8, 3, 17, 30, 26, 22, 46, 40, 16, 8, 31, 44, 28, 16, 28,
21, 6, 5, 16, 22, 12, 4, 3, -2, -4, -1, 4, 5, 6, 3,
4, 4, 6, 3, -1, -2, 0, 0, 0, 1, 2, 2, 2, 0, 1,
0, 0, -1, -2, 0, 0, 0, 0, -10, -18, -10, -6, -10, -14, -16,
-11, 6, 2, 10, 19, 23, 22, 16, 23, 6, 4, 6, 8, -4, -18,
-25, -18, -22, -31, -21, 0, 0, -20, -36, -27, -5, -14, -25, -20, -12,
-2, 3, 9, 20, 38, 34, 30, 20, 10, 8, 15, 7, 10, 8, 8,
10, 14, 16, 11, 2, 3, 2, 2, 0, 0, 2, 4, 40, 27, -34,
-47, 0, 34, 16, -27, 38, 18, -34, -40, 3, 34, 10, -28, 24, 14,
-11, -12, 8, 22, 4, -16, 5, 1, -4, -4, 1, 1, -4, -5, -4,
-5, -4, -2, -4, -4, 0, 4, 2, 5, 6, 6, 3, 0, 1, 2,
1, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 1,
1, -16, -20, 6, 5, -8, -15, -18, -9, 14, 27, 22, 13, 18, 12,
0, -14, 14, 6, -14, -3, 28, 27, 8, -10, 1, -20, -41, -40, -20,
-16, -16, -18, -8, -8, 0, 6, 0, -16, -20, -22, -24, -36, -28, -20,
-6, 0, 2, -3, 5, 0, -10, -16, -18, -8, 0, -4, -1, 6, 14,
12, 4, -4, -3, -2, 6, 38, 26, -26, -71, -34, 24, 35, -10, -2,
-3, -27, -48, -12, 22, 19, -3, -2, 6, 9, 3, 6, 2, -2, 0,
-7, -8, -2, -2, -10, -12, -4, -8, -14, -14, -6, -6, -14, -12, -4,
-2, -4, -3, -2, 1, 2, 1, 0, 3, 3, 0, -3, -3, 0, 2,
2, 0, 2, 2, 2, 0, -2, -1, 0, -12, 8, 42, 34, -17, -34,
-19, 4, 6, -2, -10, -6, 6, 14, -4, -19, 28, 6, -36, -34, 4,
24, -8, -41, 28, 18, -8, -6, 20, 32, 8, -12, 10, 6, -2, -6,
2, 14, 12, 12, 10, 18, 17, 9, -4, -8, -6, -2, -8, -5, 4,
9, 9, 1, -6, 0, 0, -6, -11, -10, -2, 4, 2, 0, -44, -56,
-42, -9, 12, 13, 54, 54, -4, -2, -7, -13, -18, -6, 14, 9, 16,
12, -10, -22, -12, 6, 0, -15, 9, 3, -13, -11, 6, 14, -2, -16,
7, 4, -2, -1, 4, 8, 1, -6, 0, 0, 1, 2, 0, -2, 1,
2, 0, -1, 0, -2, -2, -1, 0, 1, 1, 2, 2, 2, 2, 0,
1, 1, -4, -6, -18, -36, -28, -4, 7, -1, 17, 38, 41, 24, 8,
6, 4, -4, -14, -19, -14, -8, -9, -18, -14, -3, -2, -14, 0, 10,
8, 4, 0, 12, -4, -6, 8, 10, 8, 8, 0, 3, 8, 8, 1,
-16, -32, -28, -28, -30, -22, -14, 4, 12, 12, -9, -24, -9, -2, -18,
-28, -24, -6, 10, 4, -1, 14, 11, -6, -28, -29, -8, 4, 12, 5,
20, 32, 21, 4, -9, -22, -17, -2, -5, -6, -6, -7, -6, -4, 0,
-6, -2, -8, -8, 2, 14, 16, 1, 28, 40, 28, 18, 20, 31, 32,
10, -2, -1, 2, 13, 22, 20, 22, 24, 16, 10, -4, -10, -9, 4,
16, 8, 4, 17, 26, 22, 10, -2, 3, 6, 0, 8, 2, -8, -2,
5, -14, 4, -18, -30, -22, -9, 14, 28, 30, 33, 10, 16, 20, 19,
2, -18, -27, -28, -8, -14, -18, -19, -12, -2, 8, 11, 11, 22, 20,
16, 14, 18, 24, 22, -8, -8, -7, -5, -3, -4, -8, -8, -13, -32,
-27, -15, -10, -8, -19, -29, -3, -6, 0, 2, 3, 0, -8, -14, -7,
-5, 2, 18, 0, -10, -11, -36, 14, 15, -5, -18, -24, 19, 48, 32,
-3, -6, -15, -38, -41, -21, -7, -7, -23, -10, 6, 12, 6, 10, 12,
8, 6, 18, 24, 22, 4, -10, -16, -23, -9, -16, -14, -11, -4, 7,
13, 14, 10, 19, 16, 10, 5, 4, 11, 8, 1, 4, 3, 0, -6,
-6, -2, 1, 11, 8, -7, -17, 2, 13, -6, 10, -21, -15, 2, 9,
14, -3, -6, 15, 0, 12, 16, 26, 27, -2, -28, -36, 14, 4, -18,
-23, 3, 27, 26, 17, 10, 6, 2, 0, 0, -12, -21, -22, 4, -4,
-10, -17, -18, -8, -2, -1, 8, 34, 37, 28, 20, 8, 16, 33, 6,
4, -4, -6, -2, 5, 12, 16, 38, 9, -42, 10, 14, -58, -12, 61,
23, -8, -28, 20, 36, 11, 6, 14, -2, -16, -16, -10, -1, 10, 6,
-1, -8, 0, 18, 11, -6, -12, 2, 14, -10, -2, 9, 8, -4, -12,
-4, 5, -4, -6, -6, -4, -2, 0, -1, -4, 4, 4, 1, 0, 1,
2, 4, 4, 2, 2, 3, 3, 2, 0, 2, 3, 42, 23, -25, -6,
20, -4, -17, -12, -15, -10, 9, 16, -12, -18, 13, 35, -10, -12, -10,
-14, -21, -2, 18, 15, 29, 11, -26, -23, 10, 22, -16, -50, 18, 4,
-23, -20, 10, 24, -1, -24, -1, -2, -2, -3, -5, -6, -3, -3, -7,
-6, -3, -4, -8, -8, -6, -4, -2, -3, -2, -2, -2, -2, -2, -2,
-26, -6, 11, -24, -22, 22, 9, -8, -22, -24, -4, 3, 32, 40, 18,
21, -24, -48, -34, -3, 30, 18, 6, 16, 22, 30, 22, 12, 0, -14,
-16, -20, 6, 8, 6, 4, 2, 5, 8, 7, -6, -10, -6, -7, -2,
5, 8, 6, 3, 8, 7, 4, 3, 3, 6, 8, 4, 4, 3, 2,
0, 0, 2, 4, -2, 1, 6, 9, 26, 1, -24, 9, 3, 16, 0,
-40, -24, -12, 1, 18, 0, 0, -2, 2, 18, 14, 16, 14, -1, -18,
-10, -7, -11, -27, -26, -5, 2, -4, 16, 28, 30, 27, 23, 30, 12,
10, 4, -8, -17, -13, -12, -19, -2, 13, 16, 11, 12, 5, 4, 22,
14, 12, 4, 6, 14, 22, 24, 24, 18, -12, -12, 32, -2, -31, 64,
-52, 16, -10, -9, 29, -16, -22, 34, -6, -10, -14, -4, 21, 24, 11,
-4, -8, 10, 5, -6, -24, -19, -6, 3, 12, 2, 7, 11, 2, -2,
2, 12, 18, 8, 7, 8, 5, 0, 1, 0, -7, 0, 3, 2, 2,
-1, -6, -2, 6, 1, 0, -2, 0, 0, 4, 6, 7, 0, -12, -4,
3, 12, 11, -24, 13, 44, 36, 2, -18, -22, -27, -5, 36, -17, -24,
-4, 28, 42, 10, -21, -23, 10, 12, 6, 9, 9, 6, 0, -8, 4,
12, 4, -6, -10, -5, 6, 7, -4, -2, 2, 2, 8, 20, 22, 22,
-2, -3, -1, 1, -4, -9, -11, -14, -10, -12, -12, -14, -16, -16, -17,
-18, 14, -3, -6, -8, 10, 3, -14, 4, -25, 6, 38, -4, -14, 3,
6, -8, -20, 9, 9, -26, -30, -2, -4, -44, 26, 40, 19, -22, -47,
-28, 0, -4, -22, -14, 4, 6, -12, -16, 12, 34, -3, -6, 2, 6,
4, 2, 2, 1, 8, 12, 6, 0, -5, -6, 2, 2, -5, -2, -2,
-6, -10, -9, -4, -2, -12, -2, 4, 3, -18, 20, -10, -8, 38, 14,
-20, 14, 0, -18, -6, 32, 7, -2, -14, 2, -14, -27, -18, -10, 10,
23, 20, -4, -10, 6, 16, 1, -6, -12, -22, -29, -16, 2, 11, 11,
-11, -11, -11, -4, 2, -16, -26, -26, 3, -7, -13, -12, -8, 6, 12,
9, 13, 22, 29, 30, 26, 16, 18, 19, 9, -10, 10, -4, -28, 40,
-12, 4, 6, -16, -16, 24, 1, -21, -18, 38, 27, 2, -32, -20, -6,
7, 22, 26, -1, -12, -20, -30, -21, 0, 16, 22, -26, -8, 24, 19,
-8, -13, -1, 4, 10, 14, 22, 16, 5, 2, 4, 0, 6, 10, 4,
-2, -4, -9, -4, 2, -10, -11, -14, -16, -13, -9, -6, -3, 70, -60,
7, 34, -44, 31, -6, 10, 8, -20, 10, 2, -12, 12, -2, -7, -3,
14, 14, -4, 6, 1, -8, -8, -2, 4, 10, 20, 18, -3, -20, -16,
6, -2, 0, 10, 12, 4, -5, -1, -4, -10, -7, -5, -6, -4, 0,
-2, -2, -4, 0, 0, 3, 4, 0, 0, 2, 0, 2, 3, 6, 6,
4, 3, 1, 15, -17, -10, 19, 5, -3, -15, -30, -12, 28, 24, -20,
-18, 12, 12, 28, 1, -22, -6, 20, 18, -8, -22, 4, -13, 1, 38,
50, 13, -8, 14, -26, -23, 6, 24, 0, -22, -4, 26, -14, -8, 5,
7, -1, -6, -1, 2, 8, -4, -14, -16, -8, 8, 7, -6, 4, 8,
13, 15, 9, 4, 3, 1, -7, 14, 0, -2, -6, -16, 22, -14, 5,
4, -17, 8, 20, -21, -22, 12, 42, 34, 7, 2, 4, -26, -22, 6,
9, 12, 22, 22, -2, -13, -28, -38, -7, -4, 10, 19, 17, 17, 12,
1, -8, -14, -11, -11, -14, -11, 0, -4, 14, 30, 14, -2, -12, -14,
2, 6, -8, -6, -7, -11, -24, -24, -16, -10, 3, -8, -10, 18, -4,
2, -7, 4, -8, 7, 4, -14, -8, 32, 6, -6, -8, -16, -7, 10,
2, -4, -10, 6, 12, -12, -9, 0, 16, 9, 14, 38, -6, -24, -30,
-10, 20, 25, 16, 2, 15, 8, -5, -4, 8, 0, -7, -24, 16, 30,
2, -30, -42, -28, 10, 23, -15, 5, 6, -4, -20, -32, -16, -3, 2,
-1, 6, -8, 6, 6, -2, 1, 0, -16, 10, 2, -10, -6, 4, -1,
-10, -2, 0, -10, 18, 30, 16, -14, -60, -19, 20, 0, -11, 16, 13,
-30, 6, 24, 6, -21, -28, 2, 20, 5, -3, 1, -2, 4, -10, -33,
-34, -26, 14, 12, -2, -4, 0, 10, 18, 10, -6, 0, 5, 0, -16,
-24, -20, -18, -24, 14, -2, -2, 0, 23, -28, 18, 34, -27, -10, 48,
-39, 7, 28, -40, 25, -16, 2, 36, -26, -1, 20, -11, 10, 0, -5,
7, -2, -12, -15, -2, 8, 10, -4, -2, 14, 6, 0, 12, -4, -8,
-9, -7, -4, 4, 3, -4, 10, 12, 12, 15, 8, 3, 2, -2, -2,
-8, -3, -2, -7, -6, -4, -6, -16, 13, -14, 20, -21, 10, 6, -5,
0, 17, -32, 10, 14, 2, -12, 3, -50, 0, 23, 6, -16, 11, 22,
-12, -15, -4, -16, -12, 16, 34, 10, -22, -17, -36, -9, 27, 26, 3,
2, 38, -20, -19, -2, 6, 4, -9, 0, 15, 4, 4, 7, 6, 11,
14, 4, -4, 0, -2, -5, -5, 0, -2, -6, -8, -13, 18, -12, 6,
-14, 18, -2, -10, -14, 8, -13, 24, 4, -18, -8, 16, -5, 8, 6,
-22, 0, 42, 7, -44, -15, -15, 32, 19, -22, -17, -4, 8, 29, -2,
-18, 2, 30, 12, -20, -20, 29, 17, -13, -13, 14, 26, 6, -12, -14,
-3, -2, -9, -12, -14, -10, -1, 2, 2, -3, -2, 2, 4, 6, 8,
-12, 20, -32, 34, -16, 10, -4, 2, -20, 20, -12, 8, -21, 33, -26,
2, -6, -2, 12, 15, -10, 12, -10, 8, 10, -4, -7, 12, -2, 4,
-12, -20, 6, 30, 27, 0, -38, -25, 0, -4, -4, 12, 20, 6, -17,
-18, -3, 0, 8, 16, 4, -9, -20, -32, -19, -12, 2, 6, 7, 4,
2, 8, 18, 23, -4, 0, 0, 1, 0, -2, 10, -7, 18, -7, 6,
-10, 9, -4, -23, 18, -10, -2, 14, -13, -16, 14, -6, 7, 32, 2,
-28, 10, 10, -30, -8, 22, 56, 24, -12, 11, 9, -32, -28, 24, -8,
-3, 8, 16, 4, -13, -26, -22, 9, 0, -3, -4, 5, 22, 20, -2,
0, -1, 2, 0, -8, -17, -18, -20, 2, -19, 40, -36, 22, -14, 8,
-2, 36, -28, 4, -8, 14, -1, -4, 6, -7, -22, 25, 14, -23, 8,
16, -23, 0, 4, 2, 7, 2, 22, -2, -15, -8, -6, 10, 26, 12,
-10, -22, -8, 6, 16, 15, 10, 0, -13, -6, 2, 0, 14, 3, -20,
-31, -34, -15, -8, 8, 14, 10, 1, 1, 2, 12, 22, 6, -9, 10,
-8, -3, 8, -16, 12, -26, 34, -30, 3, 20, -32, 46, -26, -26, 26,
-26, 12, 17, -39, 30, -12, 6, 6, 2, 2, 17, -8, -4, -8, 19,
12, 14, 8, 0, -16, -21, 0, 6, 12, 16, 14, 6, -5, -13, -14,
6, 9, -4, -12, -12, -8, 2, -2, -1, 4, 2, 3, -2, -5, 0,
0, 10, -14, 16, -16, 5, -2, 6, -2, -4, -3, -6, 3, 15, -13,
3, 4, -7, 18, -9, -16, -10, 8, 8, 6, -6, -20, -20, 14, 13,
-5, 4, 12, 17, 4, -24, -34, -20, -10, 24, 44, -5, -5, -26, -28,
-8, 13, 12, 11, 20, 30, 26, 19, -4, -24, -34, -36, 8, 4, 0,
1, 1, 6, 8, 10, 16, -16, 2, 6, -3, -4, 12, -6, -22, 16,
4, -17, 10, 4, -11, 9, 24, -20, -20, 41, -20, -6, 34, -24, 26,
-32, -14, 50, -36, -6, 46, -24, 3, -4, -3, -1, -2, 4, 4, 0,
-7, -3, -5, -2, 6, -3, -5, 6, -2, -6, -2, 4, 8, 10, 6,
8, -2, -8, -2, 3, -1, 2, 2, -7, 0, 0, 0, 4, -7, 4,
4, -3, 0, 2, -2, -4, 16, -14, -2, 2, 8, -6, 8, 7, -24,
2, 24, -16, -10, 10, -12, -5, 27, -12, -20, 11, -1, 14, 11, -18,
-19, -8, 10, 20, 0, 10, -10, -40, -23, -3, 12, 30, -45, -18, -14,
-26, -10, 2, 21, 50, -9, 9, -8, -18, -8, -14, -4, 20, -5, 8,
-7, 2, 1, 2, -6, 6, 10, -16, 7, 8, -12, 4, 10, -9, 5,
4, 0, -23, 32, -22, -7, 14, -12, -8, 6, 4, -18, -14, 42, -15,
41, -17, -34, 13, 4, -9, -5, 16, -20, -18, 25, 14, -16, -16, 4,
39, -30, 1, 10, -19, -16, -16, -8, 21, 8, 2, -10, -9, -7, 4,
10, 10, -10, 14, -14, 9, -4, -4, 9, -6, 18, -24, 20, -10, -2,
12, -22, 14, -10, 11, -2, -8, 20, -30, 44, -31, -16, 15, -16, 2,
34, -38, 16, -1, -16, 14, 0, -10, 0, 16, 2, -14, -19, -14, 10,
10, 7, 22, 0, -26, 12, -2, 8, 6, -6, -8, 2, -6, -24, -21,
-10, -2, 0, 9, 19, 22, 3, -3, 2, -4, 6, -5, 6, -3, 2,
0, -5, 16, -22, 20, -21, 12, -19, 27, -30, 14, 1, 0, 10, -10,
-15, 31, -20, 8, 2, -27, 12, 9, -12, -4, -4, 2, 12, 10, 0,
-18, 10, 20, 19, -16, -32, -8, -5, 21, -14, -3, 7, 12, 0, -1,
-1, -16, 40, 34, 24, 14, -2, -14, -26, -33, -12, 18, -24, 26, -24,
15, -4, 0, 15, -19, 22, -26, 32, -28, 20, -10, 10, -26, 32, -22,
12, -18, 18, -7, 24, -18, 7, -8, 8, -6, 14, -7, -13, 0, 4,
2, -2, -9, 9, -8, 22, 20, 6, -16, -23, -6, 7, 7, 13, 2,
5, 6, 2, -3, -10, -14, 19, 15, 20, 17, 8, -4, -15, -29, -1,
7, -16, 13, -2, -4, 4, -2, 1, -9, 24, -14, -8, 18, -16, 6,
20, 0, -30, 24, 5, -23, 8, 6, -26, 19, 15, -28, 4, 10, 5,
-22, 14, 0, -2, 4, 22, -33, -25, 31, 40, 23, -40, -16, 25, -4,
-16, 14, 3, 10, -6, -6, 2, 6, -7, -18, -8, 2, -6, -3, 5,
2, 2, 2, 8, -2, -8, 12, -8, 4, 2, -2, -22, 15, 8, -16,
13, -8, 0, 2, 41, -34, 0, 14, -8, 0, 10, -10, -29, 14, 14,
-20, 2, 3, -19, 21, 6, 8, -7, -17, 11, 16, -20, 6, -43, -18,
22, 24, 10, 3, -10, -6, -8, 6, 18, 10, 2, -8, -16, -14, 40,
30, -3, -22, -10, -7, -8, 4, 0, -2, 0, 2, -2, 1, 3, -3,
-2, 2, 2, -6, 4, -2, -5, 8, -3, 2, -12, 6, -1, 0, 16,
-13, 5, -12, 26, -13, -10, 4, -32, 36, 3, 10, -16, -8, 16, 11,
-2, -10, -18, 10, 0, 12, -18, -46, -13, 56, 13, -1, 4, 17, -14,
-10, 16, -12, -38, -34, 10, 24, 6, 14, 8, -8, -4, 4, -2, -1,
3, -6, 6, -2, 14, -18, 12, -2, -9, 20, -22, 10, -18, 27, -18,
7, 4, -25, 28, -12, 28, -44, 35, -14, -8, 30, -31, 12, 27, -21,
20, -9, -22, 6, -6, 8, -1, -16, 2, 6, -12, 16, 22, -12, 1,
-1, -16, -4, 6, -1, -2, 13, 27, 16, -8, -9, -6, 0, -5, -12,
-4, 6, -5, 2, 0, 2, -1, 1, 11, -15, 6, 2, -4, 0, 4,
-3, -20, 20, -3, -9, 7, 2, -8, 7, 26, -26, 3, 8, 2, -7,
2, -5, -26, 12, 24, -21, 18, -4, 2, -4, -40, 24, -20, -4, 57,
-4, -42, 17, -36, 10, 10, 16, 0, -17, -10, 18, 4, 22, -1, -11,
5, 1, -10, -5, -10, 14, -16, 13, -10, 8, -6, 2, 16, -22, 21,
-18, 18, -19, 16, -6, -18, 22, -19, 8, -2, 10, -8, 1, -8, 23,
-34, 36, -30, 10, -12, 16, -6, 0, 3, -4, -14, 36, -16, -6, 4,
-2, -12, 8, 6, -26, 2, 18, 27, 14, -20, -32, 10, 14, -14, -3,
17, 4, -17, -24, 1, 3, 5, 15, 6, -10, 12, -10, 8, -6, 2,
-1, -8, 16, -21, 20, -18, 14, -8, 5, 6, -17, 23, -16, 8, -4,
5, -10, 16, -14, 16, -18, 21, -30, 17, -2, -6, 3, 11, -23, 14,
10, -2, -10, -2, 6, -1, -7, -4, -18, -8, 26, 36, 27, -28, -40,
16, 33, -14, -9, 13, 10, -30, -22, 6, 10, 6, 0, -2, 1, 0,
0, -1, 2, -1, -1, 0, -1, 2, -3, 6, -6, 1, 2, 3, -1,
-6, 16, -20, 14, 0, -10, -7, 6, 3, -12, 33, -29, 1, 4, 27,
-27, 6, 18, -24, -8, 38, -30, 26, -30, -20, 32, 23, -24, -10, 12,
8, -2, -2, 12, 17, -26, -35, 32, 1, 4, -4, 4, 14, 3, -10,
-12, 0, 1, -2, 2, 0, 0, 0, 0, 2, -5, 7, -5, 2, -3,
2, -2, 2, 1, -8, 13, -8, 3, 1, -2, -6, 10, 4, -5, -5,
8, -9, 4, 29, -25, -4, 27, -20, -4, 30, -24, -38, 26, 28, -36,
2, 26, -16, -6, -8, 28, 20, -30, 0, 28, -4, -16, -33, 6, -8,
-8, 35, 18, -12, -13, 0, 1, -1, 2, -2, 2, 0, 1, 1, 1,
-4, 4, -4, 0, 0, -1, -1, -4, 6, -7, 12, -10, 12, -6, 12,
-7, -2, 2, -4, 2, -10, 10, 8, -12, -10, 21, -10, -10, 39, -28,
10, 0, -21, 11, 9, -12, -12, 9, -23, -2, -4, 10, 8, 26, 20,
-51, -2, 24, 16, -18, -44, -32, 16, 48, 3, -4, 5, -6, 6, -4,
2, 0, -8, 12, -15, 16, -16, 12, -9, 3, 14, -22, 28, -30, 30,
-30, 23, -9, 0, 14, -22, 17, -14, 15, -20, 12, 6, -4, -2, 24,
-43, 31, -22, 14, 14, 3, -15, -14, 24, 1, -28, 14, 11, -16, 16,
6, 4, -16, -1, 10, -5, 4, 6, -2, 18, 2, -23, -6, -1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
-2, 2, -2, 2, 1, -2, 0, 5, -5, 0, 6, -4, -4, 5, 2,
3, -14, 31, -32, 7, 16, -23, 10, 24, -30, 15, 15, -12, -8, 4,
0, -38, 26, 8, 0, 12, 16, -20, -18, -43, 8, 6, 26, 38, -34,
-38, 32, 1, -2, 2, -2, 1, -2, 2, -1, -2, 4, -4, 3, -4,
6, -7, 4, 2, -3, 4, -8, 12, -18, 18, -8, -4, 8, -9, 10,
-16, 22, -22, 13, -20, 34, -34, 7, 20, -30, 22, -7, -4, -2, 2,
6, 4, -3, 12, -12, -23, 30, -14, -24, 42, 7, -52, 27, 0, -13,
14, 26, -11, -5, 2, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2, -2, 0, 2, 0, -1, 2, 1, -2, 4, -2, 0, -1, 3, -2,
0, 1, -8, 6, 2, 0, -6, 4, -11, 10, 8, -13, -6, 4, 1,
3, 34, -34, -10, 22, 5, -6, 4, -2, -39, 23, 33, -22, -26, 20,
14, -13, -12, 13, 14, -24, -12, 52, 27, -55, -2, 2, -2, 2, -2,
1, 0, 0, 2, -2, 2, -3, 3, -2, 1, -2, -4, 4, -2, 1,
-1, 0, 0, 2, 2, -4, -2, 9, -10, 17, -14, 1, -10, 11, 0,
-12, 22, -24, 20, -7, 34, -48, 36, -14, -9, 44, -66, 30, 20, -11,
-2, 2, -18, 6, -2, 9, 11, -2, -16, -2, -1, 4, -6, 13, 0,
0, 1, -1, 1, -1, 0, 0, -1, 2, -3, 4, -4, 4, -2, 1,
2, -1, 2, -6, 10, -11, 10, -4, -2, 4, -8, 14, -16, 10, -8,
4, -6, 16, -14, -5, 24, -35, 30, -10, 2, 0, -13, 19, -4, -24,
34, -16, 6, -8, 0, 16, -26, -6, 26, -4, 4, 24, -40, -27, 55,
11, -38, 9, 0, 0, 0, -1, 2, -1, 0, 0, 1, -2, 1, 0,
-1, 0, 0, 0, -6, 13, -12, 9, -6, 4, -4, 1, 10, -18, 18,
-8, 4, -6, 6, -6, -16, 27, -24, 14, 0, 3, -10, 4, 4, -2,
4, -2, -2, -8, 10, -2, 28, -46, 40, -16, 0, 25, -37, 14, -30,
26, 40, -37, -8, 10, -27, 22, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -1, 2, -2, 0, -3, 4, -4, 4, -4, 1, 2,
-1, 6, -8, 9, -10, 8, -3, -2, 1, -10, 12, -4, 10, -16, 6,
4, -4, 6, 0, -11, 0, 20, -13, 4, -1, -14, -10, 55, -26, -32,
36, -7, -6, 52, -45, -33, 38, 8, -20, -10, 12, 0, -1, 0, 1,
-1, 1, 0, 0, 1, -1, 2, -2, 4, -4, 2, -2, -4, 7, -9,
10, -10, 8, -6, 3, 12, -19, 18, -15, 12, -8, 8, -6, -28, 42,
-46, 40, -28, 23, -13, 6, 10, -10, -9, 15, -18, 23, -17, 6, -21,
28, -18, -8, 25, -26, 28, -16, 3, 8, -17, -6, 25, -2, -12, 4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -2, 3, -2, 0, 0, 1, -1, 0, 2, -3, 2, 1, -4, 3,
-4, 2, -7, 10, -9, 4, -2, 2, -4, 2, 5, -10, 16, -16, 12,
-12, 6, 0, 10, -23, 16, 2, 4, -2, -6, 0, -26, 50, -42, 16,
18, -55, 67, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1,
0, 0, 0, -1, 0, -2, 4, -4, 2, -2, 1, 0, 0, 2, -5,
6, -3, 2, -2, 0, 2, 0, 3, -1, -6, 6, -5, 4, -2, 16,
-30, 47, -52, 49, -40, 20, -6, -1, -2, 6, -18, 38, -36, 34, -21,
12, -20, 16, -12, 0, 8, -9, 6, 0, 0, 0, 0, -1, 0, 0,
0, 1, -1, 1, -1, 2, -1, 0, 0, 0, 0, 0, 2, -2, 2,
-1, 0, 0, -2, 2, -4, 4, -4, 2, 0, -3, 10, -15, 18, -16,
13, -10, 4, 5, -10, 24, -29, 26, -20, 14, -6, -6, 19, -36, 44,
-37, 26, -16, 6, -13, 28, -30, 32, -38, 36, -24, 8, 0, 0, 0,
0, -1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, 0, 0, -1,
0, 0, 0, 1, -1, 1, 0, 2, -4, 3, -3, 2, 0, 0, 2,
-7, 10, -10, 8, -4, 2, -1, -4, 8, -14, 15, -11, 8, -3, 0,
8, -22, 32, -38, 38, -28, 20, -8, -17, 34, -41, 50, -44, 36, -26,
8
};
static const int32_t mdt8x8_mode3[4096] = {
2, 1, 2, 2, 3, 3, 4, 6, 2, 2, 4, 5, 6, 8, 11,
15, 4, 6, 6, 7, 10, 13, 17, 20, 6, 8, 7, 10, 14, 18,
20, 20, 8, 8, 11, 16, 19, 22, 23, 21, 9, 12, 16, 20, 24,
25, 24, 22, 12, 16, 20, 22, 25, 26, 24, 22, 16, 20, 22, 23,
24, 25, 23, 22, 3, 4, 7, 6, 6, 7, 7, 6, 10, 11, 12,
12, 16, 18, 14, 10, 15, 14, 14, 18, 24, 20, 14, 4, 15, 19,
19, 22, 24, 16, 2, -10, 18, 22, 24, 22, 16, 1, -14, -19, 21,
22, 21, 14, 2, -12, -21, -22, 18, 17, 10, -1, -12, -20, -24, -24,
12, 7, -2, -13, -21, -24, -24, -23, 2, 1, 6, 10, 11, 8, 2,
-4, 8, 10, 18, 22, 20, 10, -4, -12, 20, 24, 24, 23, 14, -6,
-17, -14, 27, 30, 22, 8, -10, -24, -18, -3, 28, 22, 8, -10, -26,
-22, -2, 10, 20, 6, -10, -20, -18, 0, 15, 18, 4, -12, -21, -20,
-4, 16, 22, 18, -9, -20, -18, -8, 6, 18, 21, 17, 2, 2, 7,
13, 8, -4, -8, -1, 10, 16, 22, 18, 0, -14, -8, 6, 22, 30,
22, -1, -21, -16, 6, 11, 25, 25, -1, -28, -22, 6, 16, 2, 20,
0, -27, -26, 8, 26, 10, -8, 2, -23, -26, 6, 30, 17, -5, -11,
-16, -22, 0, 25, 20, -4, -16, -16, -17, -2, 16, 16, -4, -15, -17,
-17, -2, 4, 6, 2, -6, -8, -4, -4, 4, 12, 8, -4, -10, -7,
-8, -16, 18, 16, -2, -14, -8, -3, -21, -31, 23, 8, -18, -15, 3,
-7, -36, -34, 10, -10, -16, 4, 12, -18, -34, -16, -5, -8, 12, 24,
1, -21, -9, 8, 0, 18, 36, 20, -10, -8, 14, 18, 20, 37, 28,
3, -2, 12, 18, 13, -4, -6, -14, -9, 3, 4, -9, -16, -12, -18,
-14, 6, 6, -10, -24, -22, -20, -15, 8, 19, -9, -28, -24, -12, -14,
2, 24, 6, -26, -22, -6, -6, 2, 20, 16, -16, -23, 4, 6, -15,
18, 24, 2, -14, 4, 16, -5, -19, 27, 24, 7, 14, 24, 7, -14,
-16, 27, 24, 22, 28, 16, -3, -12, -13, -10, -19, -18, -5, 0, -6,
-1, 12, -28, -31, -14, -2, -5, -1, 12, 10, -34, -17, 10, 2, -6,
15, 15, -7, -13, 19, 20, -7, 4, 22, -4, -22, 20, 30, -2, -10,
18, 6, -28, -16, 26, 0, -23, 5, 16, -20, -22, 8, 3, -26, -12,
18, 0, -18, 6, 22, -17, -19, 8, 12, -6, 5, 22, 20, 8, 0,
-2, 2, -2, -20, -18, 1, 7, -2, -2, -6, -24, -39, -16, 20, 6,
4, -2, -20, -35, -24, 14, 28, 12, 10, -6, -22, -17, 6, 19, 12,
14, 16, 2, -6, 6, 8, 0, 4, 22, 26, 10, -3, -4, -6, -4,
8, 33, 24, -7, -24, -20, -10, 4, 14, 30, 2, -27, -28, -14, -1,
8, 15, 10, 8, 4, 18, 29, 12, -4, -2, 6, 8, 23, 38, 26,
-3, 2, 16, -18, 2, 36, 28, -4, -4, 20, 12, -33, -14, 14, 0,
-12, 10, 10, -14, -40, -16, -12, -20, -3, 6, -13, -16, -30, -5, -5,
-11, -8, -11, -10, 6, -2, 16, 6, -8, -12, -16, 4, 22, 18, 17,
2, -6, -3, 4, 11, 16, 15, 24, -1, -24, -10, 0, -2, 10, 40,
20, -26, -23, -2, -3, 9, 24, 44, -5, -28, 7, 4, -8, 16, 12,
12, -8, 10, 18, -10, -4, 3, -22, -12, 3, 20, -8, -14, 4, -18,
-36, -11, 2, -8, -20, 4, 2, -22, -16, -2, -6, -18, 4, 20, 0,
-6, 14, 0, -6, 4, 24, 14, 3, 14, 26, -10, -6, 26, 22, -12,
-12, 10, 17, -14, 11, 40, 5, -27, 3, 23, 0, -4, 14, 8, -22,
-12, 22, 8, -29, -7, -13, -16, -12, 3, 12, -16, -29, -17, -8, 3,
-7, -4, 6, -10, -10, 4, 25, 6, -18, 4, 18, 3, -2, 28, 13,
-22, -4, 27, 14, -2, -1, 13, -28, -22, 24, 24, -1, -8, -7, 12,
26, 18, 10, 8, -4, -14, -12, 27, 24, 2, 5, 10, -10, -33, -32,
8, -12, -12, 2, 2, -6, -26, -30, -25, -22, 3, 2, 4, 12, 0,
-1, -20, 14, 16, 4, 21, 21, 8, 20, 12, 24, 4, 16, 25, -1,
0, 19, 12, -12, -8, 20, -2, -23, 1, 14, -18, -30, 0, 2, -24,
-15, 8, 10, 26, 33, -4, -8, 2, 5, 24, 28, 34, 18, -10, 3,
-2, 3, 36, 28, -10, -19, 0, 0, -12, 2, 4, 0, -29, -12, -4,
-18, -6, -14, -25, -1, 10, 14, -24, -19, -2, -20, -2, 18, 36, 8,
-16, -2, -10, -4, 26, 12, 14, 1, 13, 8, -10, 6, 11, -10, -10,
11, 20, 0, -4, -4, -16, -20, 19, 8, -12, 7, 5, -28, -22, 2,
20, -12, -6, 26, -6, -37, -12, 2, 0, -18, 10, 11, -15, -2, 6,
-13, -6, 0, 10, -2, 8, 21, -2, -24, 3, 10, 12, 16, 14, 0,
-7, -16, -6, 6, 23, 13, -13, 2, 12, -16, -32, -3, 12, -12, -4,
34, 12, -26, -32, -8, -10, -8, 32, 36, -4, -20, 10, -16, -17, 14,
26, 18, 20, 15, 6, -28, -10, 18, 17, 13, 18, 12, 2, -16, -8,
-4, -4, -16, -12, -2, 4, -3, -18, -16, -18, -28, -21, -12, 5, -6,
-1, 12, 4, 6, -3, -21, -4, 6, 24, 27, 33, 38, 6, -14, -9,
8, 7, -4, 14, 12, -6, 14, -7, -12, -28, -22, -16, -24, -1, 30,
-30, 4, 25, 0, -17, -10, -4, 6, -34, 18, 28, 2, -8, -22, -6,
34, -13, 0, 0, 16, 7, -28, -5, 34, 2, -26, -9, 23, 0, -26,
-6, 0, 10, 2, 7, 6, -10, -8, -4, -14, 11, 25, 18, -1, -6,
3, 4, 4, -21, 6, 20, 10, -4, -10, 4, 17, -48, -8, 18, 6,
-6, -12, -4, 6, 34, 18, 6, 2, 0, 20, 10, -31, 14, 14, 16,
-14, -10, 18, -6, -28, -34, 6, 10, -24, 2, 4, -4, 10, -18, 2,
-16, -4, 18, 4, 14, 10, 27, 4, -20, 6, 2, 11, 8, -32, 27,
2, 2, -10, -20, 12, -14, -36, -8, 3, 9, -18, -5, 4, -10, 10,
-19, 4, 4, 4, 17, 3, 8, 36, -18, 15, 20, 12, 26, 21, -4,
-1, -18, -4, -13, 13, 43, 12, -13, 4, 5, -28, -40, 0, 15, 8,
2, 4, 30, -20, -38, -25, -4, 24, 12, -6, 27, 10, -16, -30, -2,
14, -4, -4, 4, 22, 6, -14, -11, -14, -7, 4, -4, 8, 2, 1,
-3, -5, 3, -6, 4, -4, -6, 6, 18, 18, 3, -16, -2, 10, 24,
18, -20, -17, 23, 32, -3, -8, 1, 4, -14, -3, 16, -3, -4, -15,
-10, -4, -2, 12, -6, -36, 8, 14, 16, -5, -16, 14, 17, -10, 6,
22, 22, -18, -28, 24, 40, 3, -20, -1, 10, -16, -16, 12, 5, -9,
-27, -2, 17, -5, -16, -10, -10, -1, 0, 25, 16, -13, -26, -8, 18,
19, -18, 16, 28, -26, -24, 30, 17, -9, -14, 20, 7, -24, -3, 19,
-1, -4, -8, 1, -3, 5, -6, -16, -6, 8, -16, 6, 20, -4, -16,
2, -2, -16, -6, 8, 8, -11, 16, 27, -12, -22, 0, -8, -8, 10,
28, 14, 2, 2, -3, 1, -3, -9, -4, 21, 24, -8, 2, 10, -16,
-45, -11, 34, 11, -32, -16, 0, 24, 40, 21, 4, 6, 12, -4, 9,
8, 14, 5, 3, 8, 2, 4, -3, -19, -22, -22, -5, 0, 11, -16,
-4, 6, -7, -20, -19, 11, 22, -10, -2, 26, 29, -12, -27, 4, -4,
17, -15, -2, 26, -2, -26, -22, -29, 18, -27, -12, 14, 0, 10, -4,
-23, 3, 4, 14, -2, 4, 28, 26, 6, 10, 2, 12, 8, -26, -26,
1, 1, 2, -18, 12, 26, -10, -14, 6, -8, 8, -33, -4, 40, 20,
-7, -1, -5, 14, -31, -12, 28, 16, -5, 2, 0, 22, -32, -26, 4,
7, 10, 7, -13, 26, -26, -29, 0, 10, 12, 0, -18, 26, -7, -10,
-2, -6, 4, 6, -4, 23, 2, -2, -10, -16, 8, 20, 0, -12, -12,
-20, -21, -1, 30, 18, -22, 2, -10, 2, 6, -21, 15, 31, -34, 32,
-6, 17, 18, -42, -6, 32, -16, 20, -26, -1, 2, -23, 4, 26, 0,
-2, -16, 0, 2, -7, 4, 11, -4, 11, 15, 16, 6, -14, -14, 2,
2, 9, 6, 17, 12, -14, -12, 8, 4, -24, -21, 7, 4, -5, 7,
6, -7, 19, 2, 18, 5, -17, 26, 40, -7, 8, -28, 20, 16, -30,
-6, 10, -4, 6, -22, 0, 13, -5, -31, -21, 22, 10, 18, -6, -4,
24, -6, -20, 27, -12, 32, 4, -10, 23, 6, -14, 12, -31, 6, 8,
0, -6, -14, -10, 2, -11, -12, -6, 10, -6, -16, -7, -2, 19, -10,
-6, 22, 20, 8, -2, -4, 19, -30, 4, 28, -21, -24, -14, -36, 22,
-24, 7, 5, -6, 18, 2, -13, 14, -2, -10, -12, 23, 28, 16, 30,
-12, 0, -4, -13, -7, -6, -4, 16, -14, 14, 5, -30, -22, -14, -24,
-10, -3, 20, 0, -10, 14, 9, -1, -4, -7, 8, 14, 9, 4, 10,
24, -2, -13, -1, 16, -7, -31, 2, 15, -20, 34, 34, 10, 2, 4,
-2, -12, -4, -5, 6, 10, -4, -10, 8, 7, -12, -36, -18, 6, 0,
-19, 8, 25, -6, 18, -11, 4, 16, -22, -14, 8, 8, 40, -8, 13,
14, -13, -19, -22, 22, -14, -3, 11, 2, 24, -4, -24, 26, -33, 9,
-11, 4, 30, -4, -4, 3, 13, 6, -16, 4, -7, -6, 7, -20, 48,
-29, -20, 8, -13, 6, 30, 24, 10, -7, 3, -5, 8, 2, -17, 21,
-16, 28, -2, -11, 18, -17, -30, 3, 1, -3, -8, 4, -12, 5, 18,
-20, 6, -28, 10, 8, -16, 16, 17, -6, 8, 1, 8, 0, 2, -19,
-16, 22, 6, 10, 0, 4, -4, -14, 1, 0, -8, -17, 6, 12, -4,
27, 16, -36, -10, -6, -18, 4, 14, -2, 9, 20, -4, 5, -7, 8,
-4, -4, 11, -7, 14, 12, 4, 0, -12, 2, -18, -8, 6, -16, 4,
6, 10, 5, -20, 32, -4, -10, -2, -2, 26, 10, -15, 26, 4, 28,
-22, -36, 26, 3, -36, -8, -14, 33, -9, -30, 7, 6, -16, -14, -32,
23, 18, -10, -6, 18, 22, 4, 6, -18, 11, 36, 29, 24, -2, -22,
2, -12, 0, -5, -9, -1, 0, 2, 6, -8, -20, -24, -22, -13, 9,
6, 7, -10, 12, 24, 8, 3, -10, -28, 11, -1, 22, 24, 16, 16,
-4, -10, 6, -10, -20, -24, -4, 16, 28, 24, -6, -9, -18, -26, -16,
-4, 16, 10, 2, 20, 32, 14, -8, -15, -18, -16, -17, -30, 14, 20,
-28, -10, 16, -6, 22, 0, -6, 8, 0, 4, 2, -12, 22, -6, -10,
8, 6, 1, -4, 4, -27, -12, 16, -8, -16, 8, 8, -4, 12, 0,
-2, 0, -5, 0, 0, 4, 28, -12, -7, 14, 4, -22, -11, 30, -20,
11, 1, -12, 20, -10, -25, 26, -11, 32, -24, -14, 42, -3, -34, 8,
6, -26, -34, -4, 20, 2, -12, -4, 0, 18, 31, -10, -15, 0, 10,
5, 2, 3, -3, 5, 8, -10, 12, -16, -4, -18, -41, 20, 18, -20,
14, -20, -8, 47, -6, -10, -6, -4, 22, 1, -3, 19, -7, 6, 6,
-3, -3, 5, -13, -32, -12, 8, 14, -5, -16, 0, 14, 27, 0, -32,
1, 22, 2, -4, 27, -8, 28, -16, -18, 30, -4, -16, -10, -23, 24,
-8, 4, 0, -21, 26, 7, -14, 2, 4, 9, -3, 12, -11, 10, 0,
0, -8, -15, 15, 10, -30, -10, -1, -4, 3, 1, -28, 0, 34, 0,
8, -16, 11, 16, -11, 0, 0, 8, 8, 2, -22, 2, 26, -27, -27,
-10, -8, 30, -5, -7, 4, -12, 39, 8, -33, 11, 18, 1, -14, -4,
36, 6, 6, 7, -39, 12, 25, -18, -4, 4, -2, 6, 2, -4, -9,
10, -17, -2, -18, 14, 26, -25, -22, 18, 12, 8, 11, -20, -12, 30,
4, -20, 11, -4, 9, -4, -2, 6, 4, 2, -22, -16, -3, 23, 0,
-36, -3, 22, -15, 18, -14, -12, 18, 21, 0, -12, 13, 18, 4, -18,
2, 5, -11, -2, 0, -11, 8, 11, -10, -7, 18, -9, 4, 0, -14,
26, -9, -9, 30, -32, 27, 34, -46, 25, -6, -12, 20, -32, 12, 8,
-8, 24, -16, -8, 13, 2, -12, -9, 3, -3, 10, 0, -10, 18, -6,
8, -16, -8, 16, -3, -4, -10, 4, 7, -2, 10, -26, 7, 19, -30,
21, -12, -4, -6, 24, -10, -2, 40, -37, -1, 24, -32, -1, 6, -28,
12, 3, -10, 14, 7, -8, 4, -2, -5, 8, 4, -18, 20, 6, -2,
11, 4, -18, 14, 6, -26, 10, 7, -25, 21, -6, -21, 35, -22, 8,
12, -18, 21, -14, -24, 10, -10, 8, 8, 2, 7, -17, 24, -13, -12,
8, -13, -4, 14, 9, 6, -33, 4, 1, 14, 32, 4, -4, 6, 17,
-2, -3, -10, -32, 4, 3, -10, 20, -20, 11, 0, -14, 6, -8, -11,
-14, 6, 11, 16, 36, -14, 9, 18, -16, 22, -30, -20, 10, -29, 26,
16, -19, 15, -9, -17, 2, -6, -11, -5, -12, 20, 29, 16, 22, 11,
-16, 10, -2, -16, -14, -13, -14, 1, 17, -36, -16, -8, -28, -12, 14,
4, 10, 30, 2, 18, 10, 3, 5, -30, 16, 16, -18, 30, -5, -12,
19, -18, 8, -23, -24, -8, -18, -1, 15, 1, 2, 24, 6, 0, 18,
-2, -12, 0, 0, 4, 0, 20, -10, -4, 13, -14, 1, -24, -25, -7,
-20, -1, 16, 2, 6, 33, 0, 10, 24, -22, -12, 19, -12, -8, -8,
13, 4, -2, -1, -44, -32, 12, 0, -8, -6, -4, 19, 26, 26, 2,
3, 2, 3, -4, 2, 0, 8, -17, 4, 10, 1, -4, -16, -41, -16,
14, -13, -5, -3, 2, 24, 23, 19, 8, -4, 14, -5, 0, 8, 2,
8, -10, 2, 16, 0, -15, -30, -40, -26, 10, -18, -12, 10, 6, 26,
32, 4, 14, -4, -20, -14, -28, -26, 14, -23, -19, 28, -3, 24, 26,
-4, 24, -11, -16, 24, -19, 16, 9, -8, 15, -1, 0, -10, -22, -22,
-30, 0, -8, 2, 2, 6, 28, 4, 14, 15, -19, 12, 2, -3, 17,
6, 6, 11, 1, 0, 0, -26, -20, -26, -33, 2, -1, -8, 8, 10,
16, 22, 4, -2, -10, 12, 2, -24, 18, -21, -20, 20, -22, 19, 22,
-8, 6, 6, 13, 2, -7, 0, -12, 7, 3, 3, -4, -3, 18, -12,
-4, 1, -10, -15, 5, -1, -14, 14, 16, -9, 12, 4, -1, 4, 5,
-5, -10, 12, -4, 12, -3, -15, 40, -32, -10, 24, -54, 13, 12, -42,
25, -10, -14, 24, 3, -2, 4, 2, 6, 6, -8, -10, 30, -10, -8,
11, -12, 12, 24, -10, -24, 18, 4, -16, 10, -9, -22, 24, -10, -2,
-2, 4, 12, -13, -1, 4, 0, 6, -1, -8, -4, 18, 14, -8, -11,
13, -2, -2, 1, -11, -19, 26, -6, -10, 4, 10, -12, 2, 1, -18,
10, 4, -4, 8, -19, 37, 21, -30, 33, -23, -8, 38, -42, -3, -6,
-8, 14, 18, -21, 2, 28, -16, 15, 0, -28, -10, 24, -12, -21, 14,
-12, -6, 32, -10, -13, 12, 15, -6, 24, -8, -4, 16, 1, -10, -2,
-7, -8, 8, -18, -4, 5, -2, -17, 20, -10, -8, 32, -6, -13, 34,
-10, 0, 39, -26, -10, 8, 10, -18, -12, 0, -28, 26, -2, -16, 9,
6, 14, -9, 10, 12, 10, -24, 19, 14, 6, -9, -15, -24, 9, 0,
0, -40, 8, 8, 16, 10, 10, -34, 37, 10, 8, -18, 6, -20, 24,
-8, -6, -4, -2, 12, -14, -7, 6, -5, -13, -9, -2, 8, 28, 8,
-8, 13, 19, 20, 0, -24, -18, -18, 14, -12, -16, -32, 6, 22, 9,
10, -14, 4, 24, 2, 10, -22, 0, -30, 10, 1, 22, -15, -2, 2,
6, 30, 8, -34, 10, -14, 26, -14, -5, -35, 11, 1, 24, -30, 9,
-6, 8, -4, 19, -25, 9, 10, -10, 12, 11, 11, -4, -7, -6, 1,
3, 0, -20, -20, 10, 26, -6, -4, 0, -8, 19, 17, -2, -38, 18,
2, -12, 20, -7, -20, 24, 9, -8, 4, 10, -20, 48, -26, 22, -9,
-20, 8, -24, 7, -34, 14, -12, 8, 20, 9, 4, 4, 10, 9, -14,
16, -35, 7, -10, 0, 8, -11, 10, -8, 0, 12, -14, 10, -16, 15,
-10, 13, 21, -17, 23, -14, 4, 8, -10, -7, -20, -2, -1, -8, -2,
-13, 16, 2, 14, 14, -12, 28, 1, 10, -14, -2, 4, -28, 26, -24,
-6, 12, 8, 2, -16, -15, -22, -14, 10, -23, -2, -6, 22, 20, 35,
13, -4, 2, 30, -26, 13, -44, -10, -14, 10, -13, 10, -19, 20, -12,
16, -6, -1, -20, 13, -5, 18, 16, 8, 6, 4, 22, 6, -14, -14,
-26, -24, 2, -4, -24, -3, 9, 14, 25, 25, -4, 5, 10, 5, -14,
4, -24, -6, 4, -10, -16, -21, -18, -14, 4, -4, -26, 18, 21, 32,
28, 14, -7, 10, 26, -14, -25, -22, -29, -4, 12, -12, -17, 8, 3,
8, 6, -7, -9, 7, 2, 14, 14, 16, 12, 10, -2, 10, 9, -28,
-22, -28, -22, 8, 2, -17, -14, 24, 24, 24, 17, -11, -4, 18, 10,
-14, -10, -15, -6, 15, -4, -8, -2, -2, 0, 8, 21, 10, 14, -18,
-22, 6, 4, -21, -12, -36, 5, 10, 38, -11, 5, 1, 38, -2, 21,
-34, -20, 4, 8, -14, 6, -13, 8, 6, 7, -2, -3, -6, -16, -3,
-6, 17, 8, -2, -1, 20, 18, 22, -12, -22, -28, 7, -2, -21, -18,
-15, 10, 32, 26, -10, 14, 0, 16, 2, -4, -18, -10, -8, -14, 14,
-11, 8, 17, -14, 22, 22, 6, -11, 14, -24, -10, 4, -24, -29, 10,
-2, 3, 14, 10, -6, 16, 19, -17, 10, -12, 10, -14, 16, -8, 5,
-6, 14, -26, 16, -28, 12, -26, -14, 0, 8, -8, 34, -8, 11, 30,
24, -19, 15, -16, -17, 3, -8, -28, -13, 10, -6, 3, 22, -24, 21,
6, 8, 6, -18, 18, -12, 4, 10, -3, -22, 14, -6, 4, -4, 8,
-24, 10, 16, -6, -6, 6, -4, -4, 22, -14, -14, 0, 19, -29, 38,
-27, 14, -6, 15, -22, 26, -36, 34, -36, 16, 0, 7, -15, 24, -22,
12, 7, 6, -14, -8, 9, -8, 7, 0, -8, -10, 20, 6, -11, 7,
-4, -8, 20, -12, -2, 0, -1, 20, -24, 25, -34, 28, -15, 6, -18,
13, -16, 20, -7, 5, 0, 0, 6, -4, 12, -22, 10, -10, 7, -12,
15, -22, 20, -14, 8, -5, -1, 2, -6, 10, -6, 17, -11, 12, -3,
8, -12, 22, -36, 24, -30, 20, -14, 2, -14, 20, -19, 35, -22, 14,
-2, 8, -12, 16, -20, 10, -5, 2, 1, -6, 16, -32, 30, -26, 22,
-10, 6, -6, 11, -4, 9, -20, 12, -15, 8, 4, 1, -10, 10, 8,
-5, 8, -8, -7, 6, 4, -6, -6, 4, -4, 6, 8, -5, -6, 12,
-12, 12, -14, 8, -10, 12, -6, 7, 1, 0, 6, -7, 6, -16, 18,
-28, 23, -24, 14, -6, 14, -26, 37, -39, 42, -32, 22, -8, 20, -16,
4, 6, -2, 14, -8, 2, -26, 26, -4, -18, 7, -26, 16, -8, 29,
-38, 20, 6, 11, 5, -5, -1, -20, 28, -5, -18, 0, 5, -2, 10,
8, -16, -14, 34, -20, -2, 6, -18, -7, 15, 16, -36, 24, 6, -13,
21, 6, -14, -5, 20, -16, -11, 22, -22, -3, 10, -2, -7, 8, 6,
-16, 14, 2, 9, -9, 14, -34, 27, -24, 14, -10, 7, -18, 21, 8,
-4, 4, -6, 4, 0, 19, -30, 2, -8, 6, -3, 8, -14, -9, 22,
2, 0, -10, 8, -18, 30, -8, -6, -9, 11, 4, -6, 14, -33, 18,
-10, 24, -33, 13, -4, 1, -2, 22, -31, 24, -8, 13, -6, 1, -2,
-13, 22, -28, 20, -20, 11, 13, -22, 28, -24, 14, -13, 8, -6, -10,
19, -28, 25, -9, 5, 0, 6, 0, -2, 6, 0, -17, 20, -16, 5,
12, -11, 4, -14, 31, -32, 22, -13, -16, 14, 0, 1, -15, 15, -6,
6, 17, -14, -5, 16, -12, 18, -24, 12, -18, 20, -4, -12, 14, -22,
32, -24, 14, -22, 20, -11, 6, 0, -11, 13, 11, 10, -1, -16, 9,
-3, -8, 3, -18, -20, 12, 17, -12, 4, 12, -2, 24, 28, -26, -14,
14, -4, -14, 4, -30, -25, 37, 10, -16, 6, 8, -4, 30, 20, -42,
-3, 15, -7, 2, 1, -28, -12, 39, 0, -15, 8, -9, 4, 21, 1,
-25, 2, 13, -8, 13, -10, -11, 4, 10, -4, -4, 3, -5, 6, 4,
-9, -2, -6, 9, 4, 12, -14, -1, 10, 10, 4, -13, -15, -13, 24,
-1, -11, -16, 4, 12, 34, 2, -26, 2, 12, 20, -10, -12, -45, 12,
25, -2, -18, -12, 4, 19, 42, -22, -20, 0, 18, 6, 1, -22, -32,
24, 12, 2, -18, 6, -12, 26, 13, -14, -7, -3, 12, -8, 12, -21,
3, 3, 3, -7, -4, 0, -2, 14, -10, 0, 4, 13, 8, -1, 6,
-32, 28, -10, -2, -22, 0, -14, 20, 24, -22, 3, 10, 26, -4, 18,
-38, -13, 16, 2, -18, -20, 2, -12, 43, 6, -12, -4, 20, 11, 3,
1, -35, -4, 10, 6, -20, 1, -16, 18, 6, 22, -24, 11, 4, -3,
13, -18, 6, -18, 22, -12, 3, 4, 4, 8, -8, 10, -20, 22, -8,
-6, -12, -2, -1, 2, 20, -29, 12, 8, 20, -6, 11, -22, -12, 31,
-10, -14, -19, 10, -18, 41, -6, -24, 6, 22, 8, -4, 12, -45, 20,
12, 0, -28, 8, -12, 5, 30, -18, -10, 0, 22, -14, 20, -14, -12,
8, 10, -2, -12, 13, -18, 14, 0, -2, -4, 2, 2, 10, 6, 15,
4, 16, 2, 4, -3, -20, -11, -26, -9, -27, -6, -8, 8, 22, 24,
22, 26, 24, 17, 6, -10, -29, -24, -29, -24, -26, -16, -8, 12, 28,
26, 20, 27, 16, 20, 4, -10, -26, -18, -14, -20, -8, -18, 0, 6,
18, 8, 12, 8, 9, 10, 0, -2, -10, 0, -6, -1, -6, 0, 0,
2, 6, 8, 6, 0, -4, -9, -12, -6, -10, -15, -8, -2, 11, 19,
23, 11, 15, 18, 12, -4, -14, -34, -26, -15, -16, -21, -12, 7, 16,
44, 24, 16, 15, 22, 12, -6, -16, -44, -18, -14, -10, -22, -5, 0,
18, 36, 10, 10, 4, 16, 0, 4, -17, -22, -6, -4, 0, -8, 4,
-6, 13, 6, 0, -10, 8, -13, 12, -8, 0, 4, -13, 18, -15, 24,
-23, 16, -4, -4, 20, -20, 13, -20, 17, -8, -6, 11, -31, 23, -14,
17, -12, 2, 15, -17, 40, -24, 14, -13, 4, 1, -18, 18, -42, 22,
-16, 12, -2, 0, 16, -16, 37, -15, 12, -9, 2, -1, -8, 9, -25,
8, -9, 7, -4, 2, 0, -3, 10, -4, 10, -15, 14, -17, 14, -11,
10, 5, -12, 24, -25, 28, -22, 18, -16, -1, 5, -18, 20, -25, 19,
-18, 20, -3, 5, 8, -9, 16, -8, 10, -18, 8, -16, 10, -12, 4,
-9, 4, 10, -10, 21, -19, 25, -18, 22, -16, 0, 10, -20, 22, -28,
24, -26, 20, -8, -4, 10, -14, 19, -18, 19, -16, 8, 4, -6, 10,
-10, 10, -10, 9, -4, -8, 12, -18, 20, -20, 20, -17, 10, 8, -11,
16, -17, 18, -18, 18, -14, -10, 14, -20, 21, -25, 21, -24, 18, 11,
-16, 22, -20, 26, -20, 24, -20, -10, 14, -22, 21, -26, 19, -22, 20,
8, -11, 16, -14, 20, -15, 18, -16, -4, 7, -10, 8, -10, 8, -8,
6
};
static const int32_t mdt8x8_mode4[4096] = {
8, 12, 12, 10, 10, 8, 6, 6, 7, 14, 16, 16, 14, 12, 10,
9, 5, 12, 17, 18, 18, 16, 14, 12, 4, 10, 15, 19, 22, 22,
19, 16, 4, 8, 13, 18, 23, 26, 24, 20, 3, 8, 11, 16, 22,
26, 26, 24, 3, 6, 10, 14, 19, 24, 27, 27, 2, 6, 10, 13,
16, 20, 24, 27, -1, -8, -14, -16, -14, -11, -8, -8, 6, 0, -12,
-18, -20, -18, -16, -12, 12, 13, 0, -12, -20, -23, -22, -17, 11, 20,
18, 3, -10, -20, -24, -22, 8, 20, 26, 19, 5, -8, -18, -23, 7,
16, 24, 27, 19, 5, -7, -17, 5, 12, 18, 26, 26, 16, 5, -6,
4, 9, 16, 22, 26, 22, 14, 5, -4, -4, 0, 10, 16, 14, 10,
6, -4, -10, -10, 3, 18, 22, 18, 13, 2, -7, -19, -14, 4, 21,
26, 20, 10, 8, -10, -24, -18, 4, 20, 24, 13, 23, 11, -14, -26,
-18, 2, 16, 10, 24, 26, 10, -14, -24, -16, 2, 6, 18, 28, 26,
8, -14, -22, -13, 4, 11, 21, 28, 22, 3, -14, -17, -2, 3, 7,
-2, -13, -16, -10, -6, -8, -7, 8, 12, -4, -20, -22, -14, -4, -18,
-10, 16, 16, -6, -24, -24, 9, -8, -27, -8, 19, 16, -7, -22, 18,
14, -19, -30, -2, 22, 15, -6, 17, 29, 8, -23, -24, 5, 22, 11,
10, 28, 29, 3, -22, -12, 10, 16, 5, 18, 28, 20, -3, -15, -4,
10, 20, 22, 12, 2, 2, 6, 8, 4, 18, 34, 30, 10, -1, 4,
10, 8, 6, 22, 38, 28, 6, -3, 4, 8, 4, 4, 17, 31, 20,
-4, -10, -1, 10, 2, -6, 10, 16, -2, -19, -16, 14, 14, -3, -12,
-2, -4, -22, -28, 10, 22, 12, -10, -14, -8, -21, -34, 5, 17, 19,
3, -10, -11, -18, -32, -6, -9, -10, -6, 6, 19, 20, 11, -10, -12,
-8, -16, -12, 11, 29, 28, -12, -20, -9, -8, -25, -18, 14, 34, -2,
-22, -20, 1, -6, -26, -15, 14, 10, -7, -28, -6, 18, 0, -22, -10,
14, 14, -15, -20, 12, 26, 2, -15, 10, 20, 8, -14, -8, 23, 26,
1, 6, 16, 20, 5, -8, 6, 25, 19, 2, -18, -27, -15, 0, 8,
10, 6, 14, 2, -24, -34, -20, -2, 10, 16, 16, 27, 7, -19, -23,
-14, -4, 11, 6, 22, 26, 11, -2, -3, 0, 6, 0, 2, 12, 13,
6, 14, 24, 20, 6, 0, -3, -5, -10, 0, 26, 35, 10, 10, 0,
-10, -22, -28, -6, 26, 8, 14, 10, -2, -15, -31, -32, -5, 2, -10,
-8, 6, 2, -18, -25, -16, 6, 2, -14, -6, 16, 3, -26, -30, -2,
8, 4, -17, -4, 24, 6, -25, -7, -10, 11, 4, -21, 3, 28, 8,
6, -20, -16, 17, 0, -22, 8, 29, 23, 4, -30, -8, 19, -6, -15,
12, 22, 30, -6, -26, 4, 20, -6, -9, 12, 32, 24, -7, -11, 14,
16, -3, -4, -8, 12, 26, 18, 1, -6, -2, 14, -11, -14, 18, 30,
16, -1, -10, 29, 14, -20, -14, 11, 16, 8, -7, 18, 34, 10, -12,
-8, -4, -4, -8, 4, 24, 23, 4, 2, -2, -20, -24, -2, 8, 9,
-5, 0, 16, -2, -28, -1, 2, -2, -19, -27, 1, 24, 2, -2, 2,
-1, -18, -40, -32, 12, 30, 12, 8, -14, -4, 13, -4, -23, -18, 1,
22, 2, -22, 3, 18, -11, -31, -19, 2, 24, -6, -24, 8, 18, -11,
-10, -18, 4, 17, -13, -19, 13, 18, 4, 5, -13, -2, 12, -8, -10,
13, -10, 16, 16, -14, -6, 12, 0, -5, -30, -14, 30, 16, -23, -8,
14, 4, -24, -39, -4, 30, 1, -26, -1, 16, -10, -7, -10, -22, -20,
-10, -3, -4, -10, -14, 0, -8, -23, -17, -6, -2, 16, -12, -4, 12,
-2, -6, 5, 8, 41, 19, -13, 6, 15, 8, 22, 30, 28, 40, 0,
-6, 18, 8, 10, 34, -6, 18, 8, -10, 12, 10, -14, 0, -16, -9,
-3, -16, -4, 18, -8, -32, -9, -16, -17, -22, -20, 8, 13, -22, 4,
-10, -4, -4, -27, -12, 26, 32, 18, 10, -12, 6, -2, -31, -4, 38,
2, 26, 5, -9, 20, 6, -20, 7, -17, 2, 18, -11, -10, 21, 10,
-6, -5, -14, -6, -1, -22, -15, 10, 5, -4, 7, -8, -16, -5, -16,
-17, -3, -26, 2, 23, -8, -12, 12, 4, -10, -28, -29, 18, 20, -12,
4, 32, 17, 2, -2, -12, -28, -20, -13, -20, -16, 19, 4, 5, -6,
-19, -4, 0, -13, 24, 19, 3, 16, 6, 2, 22, 19, -6, 20, -5,
-6, 16, 2, 9, 35, -31, -8, 2, -31, -14, 0, -16, 6, -12, -28,
0, -14, -35, -6, -7, -22, 20, -5, -10, 8, -6, -6, 16, -2, 19,
26, 6, 10, 19, 6, 19, 28, 30, 36, 7, -10, -1, 6, 8, 8,
8, 32, 32, 0, -12, -4, 1, 6, -2, -4, 14, 4, -15, -10, -6,
-5, 14, -1, -12, -14, -27, -20, -4, -2, 21, 20, 4, -10, -30, -33,
-2, 14, 10, 13, 10, 8, -6, -24, -6, 24, 8, 2, -10, -6, 4,
0, 3, 30, 10, 8, -20, -33, -17, 2, 18, 33, 22, -14, -33, 1,
25, 14, 2, 0, 26, 21, -22, -26, 11, 22, 7, -1, 14, 20, 8,
-10, 0, 16, 4, -12, 19, 0, -11, -1, 11, 20, -1, -30, 20, 8,
-28, -28, -5, 20, 9, -28, 4, 12, -10, -24, -15, -4, 6, -6, -6,
-4, -8, -4, 12, 3, -6, 2, 0, -10, -22, -14, 22, 38, 11, -7,
4, 12, 17, -4, 2, 22, -14, -42, 10, 7, 12, 8, -16, 12, 20,
-29, 9, 16, -13, -2, -5, -24, 8, 12, -16, 14, 0, -31, -4, -4,
-18, 6, -12, -11, 10, -12, -22, 16, 13, -4, 6, 4, -8, 6, 0,
0, 22, 14, -20, 18, 11, -16, 6, 16, -2, -3, -40, -18, 28, -8,
-21, 22, 7, -28, -14, 2, -24, -36, -3, 16, 0, -14, -36, -6, 4,
-24, -17, 14, 17, -6, -26, -18, 12, 8, 9, 22, 20, -2, -7, -6,
11, 8, 16, 38, 14, -21, 0, 1, 21, 18, -8, 6, 6, -32, 2,
2, 10, 20, -2, -28, -14, -14, 0, 9, 3, -6, -4, -8, -10, 9,
-7, 4, 16, -12, -30, -4, 19, 20, -6, 14, 2, 2, 22, 26, 20,
10, -23, -2, 15, -11, -1, 18, 4, -3, 10, -6, 9, 0, -16, -2,
-14, -32, 17, 17, 0, 4, -8, -6, -1, -28, -30, 8, 2, -10, -2,
-6, 15, 15, -41, -24, 4, -20, -6, 2, -4, 18, 2, -20, 8, 0,
-18, 18, 2, -21, 25, 16, 22, 29, -13, 6, 32, -20, 38, 15, -13,
-1, -6, -15, -2, 6, 13, 32, -4, -13, 2, -12, -10, 12, -24, -6,
-6, -26, -5, 7, -2, 9, -18, -18, -15, -28, -14, 18, 17, 4, -12,
4, 14, -7, -4, 26, 18, -9, -12, -4, 28, 18, 9, 30, 18, -23,
12, -7, 2, 10, -3, 14, 14, -30, 19, 19, 2, -13, -24, -13, -4,
-24, -17, -12, -2, -3, 16, 24, 22, 24, 18, -7, 0, -8, -10, 11,
-2, -10, 12, 6, -6, 10, -3, -4, -10, -40, -32, -8, -16, 5, 20,
-6, 2, 2, -22, -19, 6, -6, 8, 2, 1, 34, 32, 8, 29, 21,
-16, 4, -4, -8, 24, 22, 9, 18, -7, -2, 8, -28, -22, -8, -25,
-29, -4, -2, 12, 7, -13, -46, -15, 25, 2, -4, -8, -28, -17, -5,
-6, 16, 14, -4, 8, 2, -31, 10, 36, 15, 12, -10, -13, 22, -10,
-8, 26, 14, -4, -12, -22, 6, 12, 6, 8, -6, -28, -10, 8, 4,
4, 10, 21, -2, -25, -7, 20, 6, 10, -8, 4, 8, -12, 10, 18,
-13, 24, 4, -20, -13, -14, 12, 21, -18, -6, 5, 26, -10, -16, 33,
18, -38, 12, -6, 4, 8, -22, -5, 24, -16, 4, 10, -6, -12, 1,
-7, -1, -2, -2, -6, 14, -12, -18, 22, 17, -14, 26, -7, -8, 10,
-8, 4, 24, -2, 23, 8, -16, -8, 13, 8, -8, -9, 20, -13, -9,
12, -8, 2, 8, -21, 32, -14, -34, 30, 16, -31, 6, 10, -22, -26,
-26, -24, -10, -4, -6, -4, 8, 2, 14, 8, 5, 12, 6, 8, 29,
16, 20, 24, 14, 14, 8, 2, 13, -4, -20, -12, -12, -4, -2, -18,
-8, -14, -33, -21, -10, -15, -6, -6, -10, -5, 0, 22, 39, 13, -2,
16, 2, 2, 20, 28, 24, 18, 1, 10, 5, -2, 0, -2, -30, -34,
-18, -10, 17, 2, 7, -1, -14, -2, -8, -28, 33, 2, -20, 2, 0,
0, 16, 0, 14, -6, -31, -12, 14, 6, 4, 15, -11, -24, -19, 12,
25, 4, -18, -13, -18, -2, -6, 26, 28, -16, -14, 1, -23, 14, 29,
-2, 6, -22, -20, 37, 1, -5, 26, -5, -24, 3, -12, 12, 26, 0,
-15, -3, -8, 9, 16, -9, -26, 20, 17, -26, -29, -25, -8, 14, -16,
-8, 18, -4, -2, 11, 7, 16, 4, 6, 4, -14, -8, 34, 26, -4,
-12, 10, 14, 0, -18, -4, 6, -24, -13, 0, 9, 0, -1, -12, -10,
-14, 12, 13, 16, -27, -19, 24, 17, 14, 16, 13, 10, -17, -14, 24,
14, 8, -5, -9, -28, -10, 22, 16, -18, -28, -36, 0, 35, 34, 10,
-14, -16, -2, -15, 4, 14, -7, -12, -14, -11, 10, 18, 21, 18, -25,
-36, -12, 6, 18, 16, -2, -6, -2, -11, 12, 19, 2, -5, -20, -27,
-2, 14, 24, 17, -18, -9, -5, 12, 12, -4, -12, -11, -10, 4, 8,
29, 18, -8, -18, -18, 8, 7, 2, -9, -22, -11, 18, 16, 11, 8,
23, -18, -4, 30, -25, -39, 14, -4, -5, 8, -14, 10, 8, -20, 22,
22, -16, -12, 9, -4, -6, 2, 26, 0, 10, -2, -2, 10, 0, -15,
-3, 4, -10, 10, 6, -4, 4, 7, -9, 44, -8, -16, 10, 2, -14,
4, 16, 28, -6, -8, 10, -12, 2, -4, -12, 0, -31, -15, 34, -13,
-15, 36, -15, -12, 10, -14, -6, 26, 8, -16, -12, -3, 1, -1, -4,
14, 0, -10, 8, 8, -7, 0, 15, 11, -23, -24, 24, -18, -6, 5,
10, -15, -5, 6, -2, -37, 10, 14, -8, -14, 6, 32, -6, -15, 28,
16, -33, 18, 16, -22, -5, 4, 18, 4, -27, 16, 16, -34, -4, -2,
4, -18, -4, 20, -14, -13, 33, 7, -16, 11, 19, -4, -14, -8, 14,
10, -10, -6, 9, -14, -2, 13, 1, -32, 7, 9, 6, -20, -8, 28,
-12, -42, 19, 14, -11, 4, 3, 4, -17, -7, 30, 10, -44, 16, 24,
-20, 2, 10, 10, -4, -18, 24, 4, -31, 26, 6, -9, -14, 12, 14,
-8, -24, 12, 2, 4, -2, 4, -14, -10, 19, -4, 15, -10, -4, 13,
-20, -8, 12, -51, -6, 10, 0, 6, 16, -8, 16, 22, 8, -17, 12,
-8, -6, 10, -8, 13, 16, 2, -19, 18, -16, -8, 11, -32, -18, 14,
2, -5, 18, -4, 8, 7, 16, -22, 4, 0, -4, 8, -9, 10, 20,
6, -24, 16, -9, -16, 2, -13, -60, 10, 11, -3, 13, -5, 11, 6,
16, -23, -10, -4, -18, -16, 8, 18, 31, -18, 4, 30, 2, 4, 10,
-8, 23, -28, 2, 34, -21, -11, 30, -18, -1, -17, -4, 15, -31, -28,
27, -5, -6, -4, 10, 16, -10, 14, 30, -22, -6, 9, 2, 7, 0,
-6, 22, -14, -10, 2, 0, -12, -12, -20, -16, 2, 11, -6, 2, 8,
0, 14, 18, -5, 50, 33, 12, 10, -4, -3, 6, 0, -11, -37, -40,
-8, -8, -10, 6, -6, 0, -18, -5, 10, 4, -4, 12, 0, 13, 17,
32, 32, 2, -2, 5, -2, -10, -15, -20, -14, -17, -7, 4, -4, -10,
-8, -9, -8, -5, 0, 6, -2, 6, 23, 30, 32, 22, 11, 6, -5,
-6, -2, -16, -22, -14, -10, -4, 0, -2, 16, -3, -34, 12, -2, -44,
12, 15, -22, 0, 22, 4, 16, 10, 17, -18, 9, -4, 4, 0, -8,
5, 4, -6, 5, 17, -14, -14, 2, -18, -26, 26, -2, -21, 9, 13,
2, 15, 16, -12, -8, 0, 8, -4, 6, 0, 11, -30, -6, 4, 14,
-18, -18, 3, -42, -9, 34, 4, -24, 20, 2, 4, 22, -26, 0, 29,
11, 20, 4, -17, 0, 40, -8, -3, -21, -24, -6, -13, 14, 12, -5,
-10, 8, -11, -2, 4, 10, -15, -26, -4, 36, 13, 7, 28, -16, 15,
17, 5, -2, -21, -27, 8, -14, 2, 2, 5, -2, -20, -2, 1, 2,
-17, -22, -22, 8, 20, 22, 24, 4, -13, 20, 23, 0, -10, -14, -8,
-14, -26, 22, 18, -42, -20, 24, 12, -3, 12, 4, -18, -6, 36, 12,
-27, -4, 4, -4, -8, -2, 18, 4, -22, 10, -10, -12, 24, 18, -26,
-16, 2, 16, 1, 17, -7, -20, 12, 16, -7, -6, 8, 2, -7, -5,
2, 6, 5, -2, 14, -21, -2, 28, 1, -27, -12, 12, 4, -6, 13,
-10, -28, 26, 15, -11, 12, 1, -29, -10, 34, 33, 6, -8, 5, -18,
6, 26, -2, -32, -25, -2, -2, -6, 6, 18, -6, -16, -4, 9, -12,
16, 6, -18, -18, 20, 36, 4, -2, 2, -6, 6, 18, -10, -18, -18,
6, -11, 6, -2, 8, -4, -21, 4, 4, -2, 14, 2, -32, 4, 28,
32, -11, 8, -8, -9, 14, 14, -8, -32, 16, -2, 2, 1, 4, 8,
-16, -25, 10, -18, -2, 1, -2, 1, 4, 31, 4, -14, 10, 5, -7,
10, -13, -8, -2, 8, 0, 0, 0, -4, 8, -17, 18, -23, 18, -16,
3, 5, -9, 23, 28, -25, 13, 11, -22, 32, -18, -12, -8, -18, 19,
-14, -2, 16, -24, 10, 32, -29, 22, 0, -18, 28, -32, 24, -9, 24,
-24, 8, 4, -18, 23, -41, -9, -8, 20, -8, 14, -4, 0, 28, 16,
1, -13, 5, -18, 12, -10, -7, -36, 18, 2, -2, 9, -6, 12, -8,
-8, 3, -2, -8, 14, -4, -5, 14, -2, 32, -27, 12, -4, -12, 12,
-16, -42, 12, 2, 0, 22, -27, 24, -4, 30, 6, -10, -4, -2, -2,
8, -8, 8, -18, 10, -12, 14, 19, -40, 11, 3, 6, 2, 20, -14,
-10, 8, 12, -9, -4, 1, -8, -2, -5, 2, 0, 14, -8, 4, 4,
-11, 21, 2, -14, -35, 24, -2, -2, 22, -21, -4, 18, -20, 22, -18,
2, -4, -13, 18, -14, 31, 19, -11, -2, 21, -24, 27, -12, 12, -42,
9, 6, -17, 20, -18, 6, 10, -3, 22, -4, -3, 16, -19, 5, -23,
8, -24, -16, 2, -2, -6, 11, 14, 10, 6, 15, 16, -11, 7, 0,
26, -28, 0, 4, -17, 1, 10, -14, 0, -34, 28, -18, -16, 27, -32,
15, -2, 15, 10, 14, 8, 12, -23, 14, -28, 21, -18, -16, -4, -28,
28, 2, 7, 6, -7, 6, 12, -6, 16, -21, 1, -14, -28, -4, 11,
-4, 4, -6, 8, 2, 48, 21, -6, -2, -2, 6, -4, 2, -38, -22,
-4, 1, 0, -8, 18, -22, 22, 9, 4, 4, 3, 6, 20, -23, 26,
14, -10, 12, -18, -2, -20, -8, -2, -40, -20, 26, -15, 16, 9, 13,
8, 23, 32, -17, -6, 1, -9, 0, -4, -6, -16, -2, 12, -4, 1,
-24, 22, -25, -14, 42, -17, -5, 12, 13, -4, 18, 22, -4, -30, 22,
-17, -16, 11, -16, -26, 12, 0, -1, -1, 22, -16, 6, 20, -16, 10,
-1, 6, 0, 9, 2, 0, 16, -12, 0, -10, -16, -13, -2, -10, -26,
22, -2, -14, 31, 12, -2, 10, 29, -18, 0, 3, 5, -21, 4, 9,
-31, 16, -3, 28, -22, 16, 0, -18, 0, -10, 3, -12, -10, 18, -18,
-9, 46, -16, 10, -33, 37, -26, 7, 20, -12, -20, 8, -6, 27, -26,
6, 11, -34, 33, -6, 4, 0, -3, 8, 2, -15, 31, -16, -4, -4,
-5, 0, 4, 8, -22, -5, 5, 6, 4, 2, -2, -16, 15, 10, 4,
-7, -3, 0, -3, 8, 0, -8, -3, 36, -12, -18, 10, -2, 2, -2,
-2, -34, -22, 29, 14, -18, 14, -3, -16, 44, 18, -14, -5, -6, -1,
-4, 5, 0, -26, 4, 8, -10, 11, 0, 8, -14, -16, 7, 10, -7,
2, 0, -7, 8, 38, 6, -24, 10, 6, -10, 12, 2, -32, -20, 30,
-4, -16, 16, -4, -6, 6, 22, -14, -14, 22, -14, 30, -12, 14, 2,
2, 8, -18, -1, 2, -42, 21, -4, -34, 19, -1, 14, 22, -10, 26,
-17, 2, 42, -40, -2, -8, -8, 6, -6, -6, 12, -22, 22, -8, 0,
-8, 4, -8, 2, -4, 10, -2, 16, 10, -10, 20, 3, 12, -27, -6,
-6, -11, 5, -4, -11, -14, 24, -16, 20, -8, 6, 1, -3, 17, -16,
-28, 18, 6, 10, 8, -18, 12, -24, 50, -14, -6, -26, -3, 8, -6,
22, -36, -6, 5, 30, -6, 10, -5, -11, 20, -7, 14, -23, 5, -2,
-6, 4, 12, 10, -2, 0, -16, 8, -6, 8, -38, -20, -2, 14, 17,
4, 0, -6, 30, 32, 4, -18, -13, -12, 3, 6, -10, -16, -9, 10,
8, 4, 6, -6, 4, 3, 0, -9, -24, -18, -8, -2, -1, -7, -2,
12, 34, 38, 17, 11, 8, -2, 3, 0, -32, -32, -16, -16, 8, -16,
12, -6, 6, 18, -5, 8, -2, 0, 0, 7, -2, 30, 10, 15, -2,
6, 4, -9, -7, -40, -37, -20, 12, -11, -2, 6, 6, 30, 36, 22,
-9, 1, 4, -3, -3, -8, -19, -10, 18, -9, 6, 1, -14, 0, 31,
2, 12, -37, 18, -8, 8, 24, -41, -23, 4, -2, 21, 1, -22, 7,
-6, 32, 0, -6, 6, -8, -8, 23, -11, 4, 0, -5, 0, -12, 21,
0, -5, -24, -6, 4, 16, 12, -19, -4, -8, 42, -6, 14, -16, -17,
18, 0, 12, -36, 8, -12, 7, 5, -2, -2, -12, 18, 20, -5, 4,
4, -5, 20, 4, -20, -26, -10, 4, -8, 8, -11, -34, 32, 8, 32,
-19, 23, -16, 0, 30, -16, 0, -16, 12, -18, 18, -11, 6, -4, -2,
-3, -14, 16, -18, 8, -18, 2, -10, 28, 10, -6, 14, -10, 26, 6,
28, -34, -8, 4, -10, 6, -15, -18, -14, 3, 12, -2, -2, 10, -12,
21, -8, 18, -9, -8, 1, 7, 5, 0, 16, -20, -2, 22, 3, -14,
-10, -1, -23, 17, 12, -17, -26, 26, 8, 0, 27, -6, -26, 18, 26,
-8, -20, 8, -32, 0, 22, -2, -36, 4, 21, -8, 24, 10, -14, -12,
34, 4, -20, 7, -18, 1, -6, 24, -24, -10, 18, -6, 16, -10, 10,
-13, 2, 12, -12, 4, 0, 6, 8, 6, 2, 0, 4, 1, -2, -13,
-20, -18, -4, -4, -8, -4, 6, 15, 30, 31, 12, 8, 10, 10, -4,
-18, -35, -41, -19, -6, -12, -12, 2, 10, 38, 43, 24, 6, 5, 12,
0, -6, -26, -41, -23, -4, -1, -8, -4, 2, 12, 30, 18, 3, -2,
4, 3, -1, 0, -12, -8, -2, 1, -2, -9, -11, 8, 2, -12, 4,
3, 0, 20, 18, -2, -14, 14, 8, -10, -2, -28, -28, -6, 22, -16,
-14, 8, 6, 31, 37, 9, -20, 6, 27, -10, -6, -31, -34, -17, 22,
0, -27, 2, 10, 22, 30, 16, -14, -10, 27, 2, -12, -16, -16, -11,
10, 12, -12, -10, 13, 0, 14, -2, 2, -8, -1, 10, -8, -4, 2,
-10, 8, 11, 3, 4, -7, 14, -3, 16, -2, -30, -9, -12, 11, -26,
6, -22, 2, 34, 23, 14, -7, 29, 0, 18, 4, -34, -32, -12, 2,
-30, 1, -20, 0, 26, 40, 8, 2, 27, 1, 15, 5, -18, -36, -9,
-2, -16, -4, -9, -6, 10, 26, 6, 2, 4, 4, 0, 6, -2, -11,
-5, 0, 8, -2, -8, 2, -11, 8, 12, 6, -8, -8, 10, 8, 5,
4, -30, -14, 2, 22, -18, -3, -12, -6, 28, 27, 2, -31, 11, 9,
6, 13, -24, -32, -10, 34, -4, -8, -8, -8, 12, 35, 8, -20, -16,
26, -12, 20, -9, -30, -8, 8, 16, -16, -3, 2, -12, 24, -8, 18,
-28, 22, -10, 6, 2, -6, 2, -4, 3, 4, -10, 25, -16, -2, -14,
18, -14, 4, 0, -20, -6, 20, 19, -14, 2, 10, -10, 24, 18, -28,
-20, 4, 11, -14, 7, -14, -36, 30, 8, 12, -20, 12, 0, -2, 43,
-24, -9, -3, 2, 12, -24, 28, -45, 14, 6, 6, -3, -10, 17, -16,
18, 3, 0, -3, 0, 5, -3, -2, 3, -8, -1, -4, 0, -4, 8,
-2, 14, 8, 2, 8, 7, 2, -5, -10, -18, -23, 11, -24, 4, -14,
8, 14, 17, 36, -20, 26, 6, 0, 10, -26, -11, -40, 26, -22, -11,
4, -11, 20, 12, 32, -32, 19, 14, -6, 6, -7, -17, -20, 16, 8,
-28, 15, -10, 4, 10, 14, 5, -22, 24, -13, 8, 0, -4, -6, 4,
-8, 10, -6, 0, 3, 4, -6, -3, -2, 10, -14, 14, -10, -9, 10,
4, 6, -9, 2, 1, -10, 26, -12, -7, 0, -2, 8, -7, 14, -26,
4, 18, -8, 8, -19, 16, -23, 23, 5, 16, -44, 48, -42, 42, -27,
18, -19, -8, 8, 5, -14, 18, -22, 14, 1, 8, -8, 8, -5, 4,
-2, 4, -5, 0, -2, 6, -8, 9, -4, 4, -5, -2, 6, -4, 0,
2, -8, 2, 6, -4, 7, -12, 11, -6, 8, 4, -9, 2, 4, -3,
6, -10, 4, -14, 12, 20, -34, 32, -36, 34, -20, 24, -10, -24, 23,
-10, 6, 0, -9, 0, -6, -3, 16, -28, 26, -27, 24, -10, 6, -16,
22, -26, 30, -27, 24, -20, 8, 1, 3, -6, 7, -5, -2, 0, -6,
-11, 4, -1, 2, -5, 17, -6, 14, 10, 4, -4, -2, 8, -22, 4,
-14, -4, -16, 16, -10, 4, 11, 6, 9, -8, 24, -20, 11, -2, -12,
-6, -5, 4, -18, 14, -5, -6, 14, 5, 0, -30, 53, -50, 40, -29,
22, -24, 10, 26, -26, 16, -9, 4, -2, 4, -1, -8, 14, -20, 24,
-22, 14, -3, -7, 12, -12, 8, -4, -4, 14, -23, 21, -4, -3, 12,
-19, 28, -32, 31, -21, -16, 28, -39, 42, -38, 34, -25, 11, 10, -4,
2, 8, -12, 10, -10, 5, -15, 14, -14, 8, -6, 6, 0, 1, 11,
-6, 2, 1, -4, 3, -2, 1, -2, -2, 2, -2, 3, 0, 0, 0,
-12, 18, -28, 38, -39, 34, -30, 22, 1, 2, 5, -10, 8, -12, 21,
-19, -2, 8, -22, 30, -25, 26, -26, 16, -12, 12, -9, 11, -14, 5,
5, -7, 10, 2, -12, 14, -12, 16, -14, 6, 0, -14, 19, -14, 9,
-10, 4, 2, -5, 16, -14, 6, 0, -2, 5, -8, -2, 4, -12, 18,
-20, 16, -13, 8, 10, -22, 32, -36, 37, -28, 18, -10, -2, 2, 3,
-10, 12, -12, 8, 0, 0, -2, 4, -2, 4, -6, 2, -4, -16, 18,
-20, 14, -11, 7, -4, 3, -4, 18, -26, 34, -32, 27, -16, 4, 6,
-12, 10, -6, 0, 3, -8, 9, -12, 13, -8, 4, 4, -6, 9, -8,
-2, 12, -22, 29, -31, 26, -21, 10, 14, -18, 18, -16, 16, -9, 2,
2, -7, -4, 13, -18, 20, -24, 20, -10, -11, 26, -33, 33, -28, 22,
-12, 2, -2, 5, -13, 26, -31, 26, -21, 10, 0, 4, 0, -2, 0,
3, -1, 2, -7, 7, -12, 16, -14, 8, -4, -4, 8, -2, 2, 2,
-9, 14, -14, 12, 10, -21, 25, -28, 29, -26, 18, -10, -7, 6, -2,
-3, 11, -16, 16, -11, -18, 34, -46, 52, -51, 43, -28, 9, 0, 7,
-18, 24, -26, 19, -14, 8, -6, 7, -10, 14, -16, 16, -7, 0, 6,
-4, 0, 4, -4, 4, -6, 3, 2, -6, 10, -9, 6, -3, 4, 0,
3, -3, 4, -6, 8, -5, 2, -3, 2, -2, 2, -2, 0, -2, 2,
0
};
static const int32_t mdt8x8_mode5[4096] = {
7, 9, 9, 10, 9, 5, 3, 4, 8, 14, 13, 14, 16, 12, 7,
5, 7, 16, 18, 17, 18, 17, 12, 8, 5, 14, 18, 19, 20, 20,
16, 12, 5, 12, 17, 21, 22, 21, 20, 16, 6, 10, 16, 20, 22,
22, 23, 21, 6, 10, 15, 20, 22, 26, 25, 22, 5, 10, 13, 19,
22, 24, 24, 21, 10, 4, -5, -8, -6, -4, -3, 2, 16, 14, -5,
-14, -12, -9, -6, -2, 18, 25, 4, -15, -16, -13, -9, -4, 14, 30,
20, -6, -18, -16, -12, -6, 11, 28, 30, 7, -14, -18, -14, -12, 10,
24, 34, 20, -4, -14, -16, -16, 10, 20, 30, 28, 8, -10, -18, -18,
6, 16, 24, 29, 16, -4, -16, -18, 5, -2, -4, 3, 6, 5, 6,
7, 8, -6, -12, -2, 9, 10, 8, 9, 11, -4, -24, -14, 7, 15,
12, 10, 10, 9, -21, -29, -5, 16, 20, 13, 10, 20, -6, -36, -22,
10, 24, 16, 8, 22, 12, -26, -34, -4, 20, 20, 7, 20, 19, -6,
-34, -20, 11, 22, 8, 17, 22, 10, -18, -24, -3, 21, -3, -8, 2,
7, -6, -12, -7, -6, 4, -12, -4, 15, 3, -18, -20, -10, 14, -6,
-14, 15, 20, -12, -30, -18, 17, 6, -18, 2, 29, 8, -30, -29, 14,
18, -12, -12, 24, 24, -16, -33, 12, 22, -2, -20, 4, 26, 4, -27,
12, 22, 8, -18, -11, 19, 18, -15, 8, 18, 14, -8, -12, 10, 20,
-4, -2, -4, 0, -6, -2, 16, 20, 12, -6, -14, -4, -8, -17, 4,
30, 30, -4, -20, -10, -1, -24, -20, 24, 40, 8, -15, -18, 3, -12,
-32, 0, 32, 18, 0, -20, 4, 8, -20, -16, 12, 18, 18, -11, -3,
20, 8, -13, -6, 12, 26, 3, -12, 12, 26, 2, -12, 4, 22, 16,
-10, 0, 26, 18, -3, 4, 10, 14, 11, 10, 10, 2, -6, 6, 13,
22, 20, 17, 20, 8, -8, 4, 6, 22, 28, 19, 22, 14, -4, 6,
-2, 6, 24, 19, 14, 12, 8, 15, 0, -12, 8, 12, -2, 1, 16,
20, 12, -16, -10, 2, -15, -20, 2, 18, 20, -7, -16, -6, -18, -38,
-25, 12, 20, 4, -12, -15, -18, -36, -42, -20, -12, -2, -4, 4, 0,
-10, -9, -24, -24, -3, -4, 5, 8, -14, -24, -17, -30, -8, -6, -4,
18, -6, -34, 0, -24, -12, -6, -16, 12, 6, -26, 17, -12, -14, 6,
-13, -8, 8, -8, 26, 3, -14, 20, 10, -20, 0, 14, 24, 22, -6,
19, 30, -10, -7, 22, 16, 31, 9, 10, 32, 9, -6, 16, 16, 10,
-14, -16, 1, -4, -8, -4, 22, 30, -9, -28, -6, 0, -10, -11, 14,
32, 14, -24, -20, 2, -5, -16, -4, 10, 24, 2, -22, -4, 8, -12,
-2, -8, 4, 18, -6, -8, 16, -1, 14, -1, -21, -6, 6, 0, 14,
10, 20, 15, -25, -38, -8, 11, 10, 14, 16, 27, -6, -43, -26, 14,
14, 12, -2, -26, -14, 12, 12, 2, 0, -5, 15, -23, -35, 4, 25,
12, 0, -4, 30, 4, -38, -18, 16, 20, 5, 3, 18, 26, -10, -24,
-3, 15, 10, 10, -4, 20, 14, -2, -6, 0, 4, 12, -8, -4, 3,
11, 13, -2, -10, 0, 3, -13, -22, -4, 22, 15, -14, -19, 10, -6,
-34, -22, 15, 30, -2, -30, -2, -4, 11, -4, -17, 0, 14, 8, 14,
-6, 8, 10, -20, -20, 13, 20, 28, 5, -2, 16, 1, -27, -9, 22,
20, 14, -2, 4, 14, -6, -20, 8, 8, 4, 3, 0, 2, 14, -2,
-6, 13, -11, -11, 8, -5, 0, 10, 4, 26, -8, -38, 8, 11, -28,
-4, 25, 30, 12, -40, -4, 24, -28, -23, 30, -8, -14, -2, -14, -29,
-11, -14, -24, 2, -16, 4, -2, -30, -15, -14, -34, 22, -5, 2, 19,
-14, -15, 4, -23, 30, 14, -9, 20, 4, -16, 16, 8, 12, 28, -12,
2, 16, -15, 8, 38, -12, 17, -4, -13, 12, -7, -6, 41, -20, -4,
8, -10, 2, 2, -10, 20, -15, -24, 2, 0, -4, 4, -3, 1, 0,
20, 12, 2, 26, 9, 2, 20, -9, 11, 17, -6, 19, 16, -3, 21,
13, -10, 10, -7, -7, 20, -6, 2, 44, 0, -4, 5, -17, 4, 1,
-18, 39, 25, -12, 13, -6, -16, 4, -32, -1, 30, -6, 2, 10, -12,
-2, -21, -28, -3, -8, -10, 6, -6, 1, 11, -20, -38, -16, -10, -2,
-3, 0, 25, 6, -14, -14, 10, -6, -18, 8, 29, 10, -2, -22, 6,
4, -32, -13, 40, -4, 12, -4, -3, 13, -14, -26, 18, -10, -2, 6,
0, 4, 14, -2, -8, 5, -14, -14, 11, 0, 8, 31, -2, 4, 0,
-21, 6, 10, -12, 16, 17, -26, 14, 6, -10, 17, -6, -24, 14, -40,
3, 32, -8, 6, 14, -32, -16, 1, 30, 40, 33, -8, -14, 2, 16,
3, 12, 27, 32, 4, -16, -10, 12, -2, -6, -16, 4, 16, -6, -9,
-8, -10, -2, -18, -14, -2, -13, -4, -12, -24, 6, 14, -5, -13, -34,
-10, 10, -17, 2, 24, 8, -8, -27, -20, 22, 4, 4, 6, -8, 2,
10, -13, 19, 10, 14, -2, -33, -8, 26, 11, 13, 32, 14, 2, -9,
3, -11, -16, 8, 38, 22, 11, 0, 4, -4, -20, 2, 32, 6, 4,
11, 2, 4, -4, 1, 12, -10, -19, -1, -4, 0, 13, 7, -2, -21,
-40, -24, -10, -12, 2, 0, 1, -22, -29, -22, -8, -12, -14, -10, 8,
-18, -4, 12, 2, 4, 1, -10, 14, -8, 15, 42, 29, 28, 18, 0,
20, -10, -5, 20, -8, -6, -9, -40, 22, 1, -10, 29, 13, -4, 4,
-28, -10, 16, -2, 6, 20, -4, 14, 10, -11, 2, 8, -13, -1, -8,
-7, 24, 24, -10, 5, -2, -18, -10, -26, 2, 38, 2, -13, 14, -11,
-12, -12, -17, -4, 12, -7, 2, 6, -8, 12, 4, -52, -10, 1, -16,
5, -6, 12, 34, 8, -16, -3, 21, 16, 18, 10, 4, 30, -11, -16,
8, 9, 25, 16, -1, 24, 10, -15, -5, -10, 6, 10, -15, -6, 10,
-10, 2, -2, -14, -10, -24, -24, -8, -14, 10, 30, -10, -23, -14, -17,
-18, -12, 6, 39, 4, -20, 8, -4, -6, 10, 4, 4, -8, -14, 23,
0, 8, 29, 14, -28, -32, -4, 28, 21, 26, 6, 6, -8, 26, 18,
-8, 14, 29, 2, -6, -20, 12, 24, -14, -16, 14, -9, -12, -10, -8,
12, -22, -18, -6, -20, -20, 4, -2, -1, -26, 0, 5, -10, -34, 8,
18, 2, -7, 8, 18, 6, -20, 6, 28, 8, 8, -4, 7, 4, -4,
22, 20, -18, 6, -16, -13, -20, -8, 37, 6, -35, -3, -14, -15, 8,
-20, -18, 22, 12, -14, 10, -15, 14, 6, -21, 14, 22, -6, 30, 2,
6, 28, -2, 8, 22, -2, 6, 6, -1, 11, -1, 10, 13, -14, -28,
-8, 1, 0, -21, 2, 14, -31, -34, -8, 1, 6, -22, -18, 16, -29,
-22, 20, 7, -5, 4, -10, 10, -8, -20, 26, 14, -25, 18, 20, -1,
3, 34, -7, -24, -8, 12, 12, 8, -7, 38, -5, -15, -8, 10, 14,
4, 2, 7, -22, -7, 14, 0, -2, -17, -2, -14, -35, -20, 32, 11,
-10, -24, -8, -6, -8, -5, 28, 5, -15, 0, 4, 6, 22, 28, 17,
-18, -22, 22, 16, 7, 6, 19, 6, -20, -11, 20, 6, 8, -20, -26,
-10, 6, 9, -5, -16, 9, 16, 26, 14, -1, -12, -22, 6, 22, -10,
8, 12, -7, -10, -23, -7, 18, -24, -20, -2, -16, -6, 8, -8, 4,
-16, -16, -1, -20, -14, 31, 11, -2, -8, 3, 16, 0, 2, 32, 6,
8, -10, 8, 26, 13, 31, 30, -27, 9, -2, 6, 12, 4, 16, 9,
-30, -11, 2, 2, -14, -14, -34, -28, 2, 5, -33, 2, 18, -14, 2,
13, 6, 10, -28, -1, 30, -2, 0, 6, 11, -14, -4, 16, 24, -5,
0, 5, -2, -31, 13, 28, 12, -28, -11, 18, -22, -11, 22, 8, -8,
-20, -21, 22, -22, 21, 17, -10, -24, 2, 0, 10, -6, 29, -11, -2,
-12, 0, 20, -2, 0, 18, -34, -4, 22, -7, 4, -2, 0, 4, -2,
-8, 14, 12, -18, -23, -23, -4, 0, -10, 4, 26, -2, -12, -10, -2,
-5, 8, -6, 6, 2, -4, 22, 2, -16, 14, 13, -14, -15, -10, 25,
-19, -4, 2, 8, -8, -7, -10, -3, -44, 22, 2, -30, 2, 18, 3,
-10, -18, 22, 5, -34, 13, 10, -4, 10, 30, 12, 0, 6, 38, -14,
-33, 22, 28, 6, -6, -4, -40, -15, 37, -26, 5, 18, -8, 2, -6,
-26, 29, -15, -12, -9, -3, -6, 18, 5, -2, 2, 8, -22, -5, -10,
-7, 30, 6, 6, 10, -2, -8, 12, -13, 10, 18, -8, -21, 14, 2,
14, 27, -10, -6, -16, -12, -2, 7, 4, 19, -6, -16, -6, 40, -10,
2, 6, -34, -8, 18, 8, -41, 2, 34, 8, -14, 7, 4, -24, -13,
16, 3, -8, 3, 2, 16, -10, 35, 15, -22, -30, 16, -2, 4, 12,
13, -20, 0, -4, 9, -4, -13, 0, -12, -26, 9, 25, -6, -6, 0,
-12, 14, 6, -10, 1, -9, -2, 16, 8, 26, 4, -4, -16, -6, 12,
7, 14, 0, -42, 25, 25, -7, 10, -16, -20, -12, 2, 2, -34, -10,
-11, -10, 17, 11, -1, 0, -26, -13, 0, -17, 11, 12, -10, -17, -2,
6, 22, 0, 4, -40, -8, -6, 10, 23, 24, 19, 15, -38, 10, 16,
6, 16, 4, -2, 2, 17, 30, 11, -10, 12, -5, -33, -22, 18, 16,
-12, -11, 10, -14, -20, -4, -18, -20, -4, 2, 6, -6, 8, 33, 8,
-2, 35, 5, 8, 12, 32, 14, 12, -8, 8, 9, 6, 0, 6, -13,
12, -12, -12, -6, -12, -10, -30, -25, -12, -2, 16, -4, -20, 0, -11,
8, -4, -8, 14, 12, -12, 13, 3, 24, -4, 16, -12, -12, 6, 6,
-4, 11, -32, 28, -32, -14, -3, -18, 12, -16, -17, 13, -14, 36, 14,
-13, 34, -19, 1, 24, 3, -22, 21, 14, -8, -28, 3, -2, 16, -2,
18, 4, -7, -8, 5, -22, 12, 12, -5, -14, -20, 24, -18, 11, 0,
-16, -20, 4, -26, 16, -32, 36, -9, -23, -10, 18, -2, 0, -4, 13,
-22, 8, 24, -7, 16, 10, 18, -8, -7, 14, 28, -19, 14, 7, -5,
-10, 26, -17, -20, 7, -6, -18, -30, -16, -16, 10, -10, -36, 18, 2,
6, 3, 18, -2, 10, -12, 8, 12, 31, 12, 35, -3, -6, 24, -2,
2, 5, -13, -4, -5, -32, 16, -10, -8, -18, -12, -28, -14, -10, 4,
-20, 12, 5, 8, 6, 0, 6, 18, -8, 18, 16, 18, 30, 18, 6,
12, 9, -5, -19, -4, -30, -18, 4, -26, 12, -11, -16, 4, -11, -18,
11, 28, 38, 14, 0, -7, -2, -6, 15, 4, 6, -13, 11, -8, 14,
7, 18, -12, -38, -26, 12, 2, 12, 4, 4, -4, -19, 16, 4, -10,
2, -2, -23, -2, 10, 34, 8, -20, 9, -6, -12, 11, -6, -13, 12,
-14, 20, -8, 8, 25, -26, -20, 0, -12, 19, -14, -2, 6, -16, 46,
14, -12, 8, -37, 10, 13, -26, -6, 8, -10, 14, 6, 10, 3, -6,
4, 13, -7, -1, 21, 1, -14, 0, 16, 8, -13, 3, -8, -13, 4,
7, -4, 18, -36, 26, -13, -21, 20, 0, -22, 17, -17, 39, -10, 12,
18, -26, 15, -11, 6, 10, -16, 14, 11, -22, 36, -2, 2, -14, 7,
-26, 2, 4, -17, 22, 30, 5, -23, -30, -16, 16, -12, 18, -22, 8,
-8, -2, -1, 8, 12, -6, -36, -6, -8, 5, 36, 0, 8, 2, 13,
8, 2, -10, 28, -14, -12, 10, 18, 16, 20, 0, -13, -28, -2, 7,
-29, -8, -8, -4, 8, -8, 16, 1, -22, -1, -22, -14, 28, 16, 6,
-16, 17, 16, 6, 17, -10, -23, -8, 3, -5, 22, 37, 22, -11, 8,
-16, 11, -16, 2, -4, -6, -16, 8, -10, 9, -19, 14, -19, -40, -11,
4, 4, 0, -8, 19, 0, -14, 24, 6, 10, 4, 2, -2, 6, 24,
43, 1, -4, 11, -9, 8, -2, -6, -8, -20, -9, 8, -18, 28, -12,
-30, -25, -16, 6, 6, -8, 5, -16, 17, 38, -2, 10, -5, -12, 22,
-11, -4, 2, 14, -26, -13, 2, 17, -4, 16, 2, -6, -8, -17, 26,
-4, -4, -7, 8, -32, 18, -20, 40, -38, -2, -10, -2, -2, 18, 0,
0, -32, 19, 16, -20, 26, -10, 12, -19, 25, -8, 18, -12, 14, -14,
2, -6, 21, -18, -7, -2, -4, 1, -12, 20, -28, 18, 2, 2, -1,
4, 10, -40, 34, -12, -18, -2, -18, 37, 19, -14, 22, 0, -18, 18,
-6, -6, -12, 14, 16, -14, -4, 26, -3, -12, -15, 6, 3, -27, 8,
10, -24, 26, 17, -10, -13, -4, -2, 0, -27, 12, -2, 8, -2, 14,
3, 2, 15, -8, -22, 4, 6, -3, 7, -3, 17, 5, 32, -18, 8,
-12, -12, 16, -26, 0, 2, -8, 22, 24, -10, 38, -28, -40, 18, -15,
4, -14, -29, 18, -24, 32, -10, 8, 2, -18, -2, 10, -22, 28, 2,
-6, 4, 13, 6, 14, -16, -18, 8, 2, -2, 0, -10, 2, 13, 13,
-11, 2, -14, 1, -19, 2, -2, 16, -1, 0, 8, 10, 13, 16, -29,
-24, 3, 1, -2, -5, 0, -20, 31, 12, -22, -34, -18, -3, 3, -10,
-10, -12, 12, 32, 24, 10, 6, 1, 10, 9, 10, 2, 5, 8, -8,
4, 7, 0, -14, -32, -23, -8, -14, 2, -17, -7, 7, 22, 14, 4,
-2, 4, -4, 6, 12, 19, 16, 10, 2, 8, 19, 8, -22, -44, -36,
-7, -18, 6, -26, -18, -5, 29, 16, 16, -3, 14, -4, 18, 18, -9,
4, 36, 13, -35, 4, 13, -4, -4, 6, -30, -20, 8, 18, -22, 2,
-10, 1, -12, -3, 22, -3, -2, 8, 0, -8, 40, 20, -10, -20, 19,
-4, 8, 7, -9, -27, -2, 4, -12, 4, -9, 13, -30, -10, 8, 16,
-7, 8, -11, -12, 14, 39, -6, -12, 16, -24, 17, 0, 6, -28, 10,
4, -10, 30, -6, -28, 2, 30, -2, -11, 1, -16, -16, 30, 16, -16,
-18, 15, 6, -4, 7, 19, -10, -16, -6, 10, -10, 13, 14, -30, -24,
17, 14, -6, -10, -14, -8, 2, 22, -6, -1, 4, 9, -2, -4, 18,
10, -10, -6, 3, 4, 22, 4, -10, -48, 26, -3, 4, -13, 0, -23,
26, 3, 17, -24, 18, -5, 38, -8, -16, 6, -22, -4, 13, -10, -24,
-10, 16, 11, -6, 27, -15, 6, -6, 0, 10, 0, -8, 18, -26, 8,
36, -4, 0, -18, -8, -9, -2, 5, -20, -18, 16, -12, 21, 2, 8,
2, -18, 7, 2, 8, 9, 9, -4, -2, 26, 28, -31, 22, -38, 3,
-14, 2, -22, -7, 1, 10, -10, 26, -19, 13, 14, -44, 6, 8, 2,
20, 34, -6, -4, 15, 24, -19, 8, -7, -24, -4, -4, 13, -4, -12,
2, -12, -22, 6, 2, -20, -11, 14, 2, 5, 38, 4, 4, 8, 14,
-8, 5, -6, -2, -7, -2, 4, 4, -7, -4, -2, -35, -2, 2, -21,
-12, 12, 8, 12, 43, 14, 3, 6, 26, -26, 14, -23, -12, -14, 8,
-4, 8, -4, -36, -17, -8, 10, -14, 11, -4, 0, 13, 36, 1, 12,
-14, 17, -26, 14, 10, 7, -2, -5, 10, 0, -12, 24, -34, -27, -8,
-8, 6, -2, 10, 3, -9, 29, 0, 10, 4, -8, 4, -6, 13, 17,
0, 4, 15, -17, 16, -20, 6, -49, 0, -12, 4, -16, 24, -26, 27,
-2, 22, -4, 0, 0, -4, -8, -6, -20, 6, -5, 16, -18, 22, -12,
12, 17, 7, -4, 6, -20, 31, -34, 35, -8, -2, 2, -16, 6, 1,
-20, 24, -50, 16, -4, -1, 16, -17, 10, -2, 2, 26, -16, 6, 1,
-8, 26, -17, 36, -16, 0, -14, 2, -4, 1, -14, -8, -22, 17, 6,
0, 6, -8, 14, -3, 20, -14, -4, 0, 10, -13, 30, -42, 10, -34,
12, -21, 26, -24, 17, -10, 22, 20, -9, 9, -16, 2, -2, -2, 7,
-1, -8, 21, -4, 11, 4, -10, 4, -29, 14, -25, 20, -16, 9, -6,
6, 12, 3, -4, 0, -18, 6, -4, 3, 10, -20, 24, -14, 26, 3,
-4, 11, -30, 20, -20, 10, -10, -7, 11, -16, 19, 14, -2, 6, -4,
2, 12, 1, 9, -6, -14, 8, -13, 14, -18, -11, -3, -15, 18, -6,
-4, 14, -22, 23, -6, -2, 24, -30, 32, -23, 14, 13, -4, -10, 6,
-24, 38, -38, 32, -33, -2, -12, 16, -12, 12, -20, 22, -8, 12, 8,
6, -11, 15, -14, 9, -13, -1, -4, -2, -7, 10, -16, 19, -15, 12,
-44, 41, -42, 20, -1, 4, 24, -6, 26, -14, 1, 30, -34, 18, -29,
-5, -4, 11, 6, -2, -12, 18, -18, 11, -14, 8, -26, 6, -6, -4,
14, 10, 18, -14, 7, 13, -13, 13, -8, -8, 3, -2, 14, -10, 0,
10, -10, 1, -14, 4, -16, 0, 8, -14, 13, 6, 18, -10, 10, 3,
-8, 12, -6, -6, 0, 2, -13, 19, -32, 24, -9, 4, 8, -11, 15,
-14, 13, 2, -12, 10, 7, -19, 29, -38, 35, -26, 17, -1, 6, -6,
7, -4, 2, -8, 14, -16, 0, -4, 0, -3, 6, 6, -14, 8, 2,
-8, 24, -27, 28, -24, 15, 6, 4, -4, 1, -12, 17, -26, 25, -28,
-12, 14, -15, 16, -14, 17, -13, 13, -2, -16, -25, -18, -7, 9, -24,
-4, -1, 26, 30, 48, 6, -2, 22, 16, 0, -14, -25, -34, -16, 1,
-8, -14, -3, 2, 4, 4, 4, -2, -8, 2, 0, 16, 6, 32, 4,
6, 15, 11, -4, -13, -25, -36, -18, 8, -19, -14, 2, 11, 22, 28,
14, -6, 10, 10, -2, 0, -14, -4, -12, 12, -9, -1, 30, 17, -12,
5, 12, 5, -10, -6, -48, -24, 10, 9, -32, 0, 10, 4, 36, 18,
-14, -5, 20, 8, -13, 1, -12, -2, 13, 2, 4, 0, 2, 0, -19,
-12, -6, 3, -22, -8, 0, 0, 37, 27, -11, -4, 26, 6, -6, 6,
-32, -30, 20, 8, -17, -6, 11, -8, 12, 15, -7, -9, 6, 4, -9,
6, 4, 14, 22, -24, -8, 18, 4, -16, 2, -27, -28, 23, 22, -33,
-2, 20, -1, 18, 18, -16, -12, 20, 10, -18, 6, -8, 7, 2, 4,
-2, -3, 0, 0, -18, -16, 2, 14, -22, -1, 9, -4, 27, 30, -22,
-12, 26, 8, -14, 8, -28, -24, 22, 12, -24, -7, 15, -6, 9, 16,
-15, 0, 6, 9, -11, 9, 14, 8, 6, -34, -25, -12, -1, -21, -6,
-26, 5, 27, 44, 15, 6, 20, 2, 14, 2, -32, -26, -12, 2, -10,
8, -4, 2, 5, 7, 3, -8, -8, -3, -20, 5, 8, 23, 8, 7,
16, 10, 18, 6, -34, -25, -22, -1, -20, -6, -20, 2, 25, 30, 15,
-5, 7, 4, 6, 4, -14, -8, -10, 6, 4, -14, 8, 20, 2, 9,
-1, -34, -15, 37, -24, -16, -12, -9, -4, 40, 10, -27, 9, 22, -2,
14, -7, -18, -6, 15, 0, -2, 6, -1, 10, -12, -6, 10, -15, -4,
-20, -10, -10, 28, 10, -21, 11, 23, -2, 36, -12, -20, -10, 18, -6,
-18, 4, -24, 18, 13, 6, -6, -2, 14, -11, 16, -16, -2, -18, 5,
14, -4, 18, -13, -32, -2, 27, -12, -17, -1, -24, 8, 44, 10, -25,
17, 13, 2, 21, -8, -22, -12, 11, -10, -6, -2, -1, -1, -1, -1,
7, 2, -7, 2, -22, 9, 24, 11, -27, 15, 6, 3, 28, -10, -37,
-11, 27, -14, -7, -3, -20, 7, 32, 8, -18, 12, -4, 8, 2, 2,
-16, -3, -7, 14, -26, 30, -26, 26, -30, 5, 4, -13, 22, -27, 16,
-14, 24, 8, 1, -2, 0, 0, 12, -7, -2, -22, -4, 15, -16, 22,
-28, 19, -16, 18, -4, -8, 12, -17, 16, -8, 10, 11, 16, -4, 2,
4, 6, -8, 6, -34, -18, 12, -16, 9, -19, 14, -11, 34, 12, -9,
12, -8, 12, -10, 10, -18, -4, -12, 2, 8, -8, 14, -25, 20, 2,
29, -14, 4, -4, -8, 22, -30, -2, -34, 4, 0, -2, 0, -12, 26,
1, 32, 4, 2, 2, 18, -2, -2, -4, -16, -20, 12, -10, -22, 9,
-24, 5, -2, 28, -18, 12, 22, -12, 38, -3, 8, -22, 22, -17, -8,
4, -28, 4, -12, 19, -22, 14, -2, 2, 9, 8, 4, 12, -9, -6,
18, -6, 16, -11, -12, -21, 12, 11, -32, 4, -23, 9, 22, 28, -18,
-7, 30, 8, 22, -6, -26, -32, 26, -2, -16, -22, -15, -4, 32, 22,
-22, 0, 6, 26, 3, 11, -30, -8, 15, 2, 2, -25, 9, -14, 23,
-2, -6, -4, -4, 15, -14, 7, -6, -2, 7, -4, 8, -10, 10, 2,
-2, 11, 13, -4, -1, 2, 6, 0, 0, -20, -26, 3, 6, -10, -5,
-2, -1, 34, 34, 0, -10, 13, 8, 6, 0, -39, -46, 2, 6, -12,
-12, -8, -6, 42, 45, -2, -9, 12, 11, 10, 8, -30, -39, 0, 8,
-6, -10, -8, -8, 16, 22, 0, -6, 2, 7, 4, 5, -5, -6, 0,
2, 0, -2, 10, 4, -2, 6, 10, 4, -12, 7, -16, -12, 2, -16,
-22, -6, 20, -10, 25, 16, -6, 22, 36, 8, -20, 8, -30, -19, 10,
-22, -44, -3, 12, -4, 30, 18, -12, 20, 44, -4, -6, 0, -20, -16,
13, -12, -36, 8, 0, 4, 12, 10, -11, 4, 20, -7, 0, -4, -4,
-4, 3, 2, -9, 6, -2, 3, 4, 8, -9, 7, -14, -6, 2, 6,
-14, -14, 12, -4, 20, 17, -6, -10, 28, 14, -8, 0, -28, -29, 8,
14, -38, -13, 4, 2, 30, 32, -8, -16, 43, 9, -1, -4, -28, -30,
6, 16, -36, -8, 0, 2, 23, 22, 0, -13, 22, 6, 0, 0, -16,
-12, -3, 7, -8, -2, 1, -2, 6, 4, 2, -2, 1, 4, 7, -3,
-6, 0, -17, -7, -3, -5, -16, 6, 12, 2, 33, 17, 5, 6, 25,
-7, -14, -6, -46, -23, -3, -10, -26, 4, 14, 7, 50, 26, 4, 10,
30, -7, -4, -10, -40, -28, -3, -10, -22, 0, 4, 6, 29, 20, 2,
8, 12, 0, -2, -6, -14, -12, 0, -4, -2, -2, 2, 2, 6, 3,
-10, 4, -6, -2, 0, -6, -5, 15, 18, -8, 10, 2, 4, 8, 18,
-30, -26, 8, -10, -3, -3, -17, -22, 35, 30, -4, 5, 8, -6, 27,
20, -32, -26, -4, 4, -14, 18, -34, -8, 24, 16, 12, -12, 21, -23,
33, 2, -14, -10, -11, 10, -18, 17, -26, 2, 4, 2, 8, -9, 12,
-12, 14, -3, 0, -2, 5, -14, 18, -20, 18, -10, 5, 1, -1, 16,
-24, 26, -28, 10, -2, 6, -11, -10, 20, -22, 31, -6, -4, -14, 22,
1, -8, 12, -24, -2, 9, 19, -33, 13, -10, 5, 8, 14, -16, -22,
36, -21, 22, -18, 6, -20, 18, 16, -26, 16, -18, 14, -8, 14, -12,
-8, 12, -10, 10, -10, 8, -8, 6, 6, -10, 7, -12, 8, 0, -2,
7, -10, 18, -12, 18, -10, -8, 8, -18, 17, -28, 16, -19, 8, 16,
-15, 31, -20, 29, -18, 15, -6, -19, 20, -38, 20, -26, 14, -8, 1,
22, -23, 38, -15, 18, -6, 0, 6, -22, 20, -30, 9, -9, 1, 4,
-6, 14, -12, 18, -3, 2, 2, -4, 6, -7, 6, -6, 4, -6, 8,
-10, 12, -13, 10, -6, -8, 12, -15, 19, -21, 22, -14, 12, 13, -18,
20, -24, 26, -28, 20, -18, -14, 20, -22, 25, -29, 30, -23, 20, 14,
-21, 22, -22, 25, -26, 20, -16, -10, 15, -15, 14, -15, 16, -12, 11,
6, -8, 8, -7, 8, -8, 7, -7, -3, 4, -4, 4, -4, 4, -3,
2
};
static const int32_t mdt8x8_mode6[4096] = {
6, 10, 14, 14, 16, 14, 12, 10, 10, 16, 20, 23, 26, 27, 23,
22, 6, 12, 20, 24, 26, 28, 27, 26, 5, 9, 12, 16, 24, 30,
30, 26, 2, 4, 6, 10, 16, 21, 26, 27, -1, -1, 1, 4, 8,
12, 15, 20, 4, 3, 0, -2, 2, 8, 10, 12, 0, 2, 2, 3,
4, 7, 10, 12, -2, -2, -2, -2, -4, -6, -6, -5, 0, -2, -2,
-4, -7, -8, -6, -8, -5, -4, 2, 0, -1, -3, -6, -9, -2, 2,
-1, 0, -2, 0, 2, 0, 10, 12, 7, 0, -8, -13, -12, -8, 14,
20, 20, 18, 14, 8, 4, 0, 4, 14, 28, 38, 44, 42, 30, 17,
2, 6, 12, 18, 27, 36, 43, 42, 0, -4, -6, -4, -5, -6, -4,
-2, -2, -7, -12, -12, -13, -14, -12, -10, 16, 14, 2, -8, -16, -22,
-19, -20, 10, 18, 22, 19, 6, -10, -22, -18, 1, 11, 22, 30, 32,
30, 22, 12, -8, -6, 4, 18, 30, 35, 35, 34, 0, -6, -10, -9,
-4, 8, 22, 28, 4, 2, -4, -8, -11, -13, -12, -4, 0, -12, -28,
-34, -34, -28, -24, -16, 13, 20, 18, 4, -18, -34, -38, -40, 5, 12,
18, 28, 30, 19, 0, -16, 2, -4, -5, 0, 12, 22, 28, 22, -4,
-8, -2, -1, -3, -1, 8, 20, 6, 7, 3, 0, -2, -2, -2, -4,
-9, -12, -6, -2, 2, -2, -6, -4, 2, -2, -6, -11, -12, -6, 2,
0, -8, -12, -12, -6, 0, 6, 6, 0, 3, -3, -10, -18, -18, -8,
6, 12, 18, 25, 18, 4, -9, -16, -18, -12, -8, 0, 18, 28, 31,
16, -4, -18, -2, -9, -17, -11, 8, 26, 26, 10, 10, 6, -6, -21,
-30, -22, -2, 11, 12, 22, 20, 14, -2, -20, -27, -18, -3, 6, 22,
33, 33, 20, 2, -8, 2, 6, 8, 14, 10, 1, -4, -2, -2, -4,
0, -4, -4, 5, 16, 12, 18, 18, 6, -2, -14, -20, -15, -2, -10,
-14, -7, 8, 17, 8, -13, -19, 1, 0, -10, -17, -7, 13, 28, 22,
6, 16, 20, 16, -7, -24, -22, -10, -26, -33, -15, 4, 16, 16, 1,
-20, 0, -14, -37, -45, -29, -2, 22, 29, -15, -19, -12, -6, -9, -20,
-31, -22, -6, -18, -27, -16, 12, 26, 9, -16, 25, 28, 2, -20, -15,
12, 36, 36, 11, 26, 28, 18, 2, -10, 0, 14, -10, -5, 16, 26,
18, -5, -16, -12, 4, -4, -4, -2, -2, -1, -14, -27, 0, -5, -6,
-2, 2, 0, -11, -24, 8, 4, -2, -4, 0, 8, 16, 12, -1, -1,
0, -4, -4, 4, 12, 14, -8, -14, -10, 2, 1, -6, -10, 1, -10,
-22, -25, -13, 2, 10, -6, -8, 33, 24, -6, -20, 0, 16, 15, 2,
20, 39, 36, 20, 4, 3, 22, 22, -12, 4, 32, 27, 5, -14, -16,
-1, -2, -9, -4, 6, 1, -13, -32, -29, -8, -18, -14, 8, 24, 24,
0, -22, -3, -17, -36, -32, 0, 30, 42, 32, 15, 16, 4, -14, -25,
-18, 10, 43, 2, 10, 21, 18, 6, -2, -10, 2, 10, 14, 14, 8,
7, 4, 0, -4, 1, 8, 12, 11, 0, -16, -26, -21, -13, -17, -4,
6, 14, 2, -18, -33, 5, -7, -15, -10, -4, 8, 11, -4, 6, 6,
-6, -8, -4, 0, 6, 9, 9, 12, 14, 10, 6, 4, 0, 0, 26,
38, 20, 4, 0, 4, 0, -14, 3, 12, 18, 18, 0, -11, 1, 6,
6, -4, 2, 10, -4, -18, -18, -5, 6, -2, 2, 18, 26, 8, -18,
-27, 25, 39, 22, 6, 11, 19, 2, -24, -8, 12, 22, 13, 2, -8,
-16, -20, -33, -44, -14, 6, 2, -8, -14, -20, 16, 8, -4, -18, -6,
18, 21, 17, -8, -1, 11, 10, -6, -16, -18, 0, 0, -12, -16, -13,
-4, 6, 10, 8, 8, 7, -1, -9, -8, -12, -8, 6, -29, -22, -2,
11, 20, 11, -4, -12, 8, 2, -20, -36, -26, 8, 32, 25, -14, -16,
-2, 10, 0, -19, -21, 4, -3, -22, -30, -16, 5, 28, 41, 26, -8,
-5, -6, -12, -11, -18, -30, -39, 14, 22, 10, -14, -14, 10, 24, 10,
-27, -25, 4, 18, 4, -14, -4, 39, 4, 0, -12, -9, 16, 14, -8,
-22, 18, 22, 0, -12, 7, 18, -3, -36, -29, -17, 10, 3, -17, -7,
16, 12, -2, -16, -12, -3, -12, -14, 4, 18, 2, -10, -12, 4, 17,
13, 5, 12, -32, -42, -36, -17, 5, 12, 6, 6, -10, -12, -24, -34,
-14, 12, 18, 12, -8, -6, 2, 0, -2, -4, 14, 29, -9, -20, -16,
-9, -13, -9, 9, 23, 5, -6, -14, -8, -11, -11, 10, 29, 12, 21,
6, 0, 9, 14, 17, 26, -12, 4, 12, 2, 2, 6, 4, 9, -28,
-34, -10, 1, -7, -8, -8, -16, -15, -5, 20, 24, 14, 0, -11, -7,
14, 7, -14, -20, -9, 4, -3, -10, -14, -15, -6, 0, -6, -11, -20,
-26, 4, -2, -1, -6, 4, 20, 26, 1, -17, -18, 0, 15, 13, -3,
1, 18, -4, -19, -26, -9, 14, 8, -18, -23, 9, 19, -7, -34, -28,
1, 15, 0, -38, -35, -4, 10, 7, 10, 22, 34, 18, 11, -13, -20,
-14, 0, 6, 9, -28, -20, 5, 6, -9, -7, 1, 4, -2, -16, -18,
-12, -12, 2, 14, 13, 13, -18, -22, 0, 22, 6, -5, 12, 17, 10,
-3, -4, 19, 35, 16, -6, 15, 30, 13, -10, 3, 14, -14, -40, -8,
4, 9, -12, -26, -12, 14, 10, -4, 8, 29, 20, -12, -28, 0, 38,
45, 32, -14, -17, -3, -2, -6, -6, 2, 19, 10, -13, -12, 0, 3,
1, -18, -6, 14, -8, -26, -8, 11, 6, -19, -27, 4, 12, -14, -34,
-10, 30, 14, 0, -16, 2, 15, -2, 10, 32, -24, -18, -7, 8, 17,
3, -10, 4, -2, -8, -7, -14, -6, 17, 3, -34, 4, 4, 10, 12,
13, 28, 17, -18, -19, -20, -8, -4, 2, 5, 0, 0, 22, 28, 15,
2, 7, 16, 6, -6, -3, -2, 0, 6, -2, -16, -8, 16, 6, -14,
-25, -32, -20, -10, -14, -24, -4, -4, 14, 16, 4, 0, 12, 25, 30,
15, -2, 12, 16, 7, 2, 6, 24, 22, -8, -12, -10, -20, -26, -13,
20, 46, 20, -18, -12, 12, 26, 14, 12, -2, -16, -18, -20, -14, -14,
-16, -12, -2, 26, 26, 4, -2, 24, 34, 38, 24, -22, -11, 26, 23,
-2, -12, 1, -3, 2, -17, -20, -12, -20, -23, -6, -19, 0, 6, -12,
-5, 14, -8, 4, -3, 0, 18, 8, -16, -6, 14, 9, 8, -16, -24,
2, 9, 6, 2, -40, -26, 15, 18, 9, 7, 1, 6, 19, 36, 30,
-4, -22, -18, -8, -10, 2, 4, -2, -22, -34, -28, 14, 36, -6, -12,
-16, -10, -2, -17, -10, 38, 2, 12, 12, 10, 0, 18, 18, 10, -8,
-4, 21, 18, -8, -19, -8, 12, 28, 12, -6, -11, -4, -10, -6, 17,
21, 21, 3, 6, 13, 5, -4, 2, -9, 5, 4, -16, -25, -14, -5,
-9, 14, 22, 12, 2, -5, -6, 1, 18, 19, 0, -16, -10, -5, -8,
-6, -9, 30, 28, 10, 6, -10, -17, 14, 24, 17, -4, -29, -19, 8,
-5, -21, 18, -38, -6, 13, -14, -26, -11, 8, 22, 0, -10, 14, 16,
-4, 1, 0, -21, 20, -10, -8, 10, -14, -22, 14, 40, 5, -5, -15,
16, 32, 8, -9, -2, 2, -10, -8, 17, 36, 28, 0, -32, 23, 26,
8, -11, -26, -12, 8, -4, 23, 4, -27, -16, 0, 4, -2, -18, 13,
20, 16, -6, -23, -24, 11, 45, 16, 9, -6, -13, 10, 9, -10, 6,
2, 12, 20, 5, -26, -24, 0, 12, 12, -10, -10, 2, -6, -11, 7,
8, 5, 10, 4, 8, -2, -20, -6, 23, -34, -15, 17, 18, 2, -8,
0, -2, -21, -6, 24, 9, -20, -22, 4, 11, 11, -7, -20, 8, 21,
-16, -18, 21, -3, -3, -11, 0, -2, -14, -2, 24, -24, -12, 0, -8,
0, 24, 10, -1, -20, -20, 7, -1, -3, 38, 22, -28, 14, -5, -10,
8, 22, 22, -6, -46, 6, 6, 0, 10, 12, -8, -8, 1, -18, 0,
14, 4, -14, -14, -5, -16, -9, 0, 16, 10, 8, 3, 8, 30, 34,
14, -2, 10, 4, -14, -26, -8, 23, -2, -4, 5, -12, -14, 10, 3,
17, 30, 3, -8, 2, -22, -21, 32, -9, 7, -17, -33, 5, 20, -4,
-6, -39, -14, 32, 10, -31, -16, 9, 8, 16, -2, 2, 2, 0, 13,
20, -14, -19, -6, 20, 2, -36, -39, 14, 60, 22, 14, -12, -2, 18,
1, -18, -6, 6, -9, -4, 5, 7, 1, -4, 18, -6, 8, 22, 10,
-12, -22, -16, 3, 21, 17, -15, -15, 2, 0, -6, 12, -12, 1, 14,
-1, -22, -16, 2, 22, 14, 8, -4, -12, -16, 8, 12, -16, -10, -10,
4, 9, -8, -12, 6, 28, 11, 6, -15, -4, 19, 6, -18, -1, -20,
-17, 14, 16, -10, -2, 8, -12, -10, -8, 29, 22, -9, -7, 6, 2,
60, 46, -12, -12, 12, -5, -28, -6, -12, 0, -22, -16, -2, -16, -6,
18, -12, -4, -1, -6, -5, -6, -4, 20, 15, 26, 20, -4, -5, 22,
2, -22, -2, -7, -5, 0, -16, -14, 0, 10, -22, -12, 10, 22, 13,
-2, 2, -9, -2, -12, -2, 19, -2, -40, -27, 20, 6, 7, 8, -8,
-19, 10, 18, 10, 2, -22, -22, -6, 24, 16, -8, -1, 9, -4, -13,
12, 33, -7, -34, -2, 10, 17, 18, 6, -14, -16, 8, 13, 10, -2,
-16, -28, -18, 21, 24, -6, -1, 8, 0, -6, 6, 24, 8, -32, -2,
-8, -6, 10, 5, -12, -8, 16, 8, 14, 20, 4, -5, 12, 16, 1,
-20, 4, 14, -22, -24, 8, -2, -17, -4, -3, -20, 7, 22, 2, -8,
-8, -12, 6, 29, 33, -8, -38, -8, 22, -2, 8, 4, -22, -29, 2,
22, 4, -20, -32, -23, -2, 18, 9, -12, -4, -3, -4, 24, 32, 6,
-26, -14, 19, -11, 12, 16, -16, -6, 36, 24, -34, 22, 0, -16, 12,
20, -16, -34, -7, 12, 7, 5, 8, -17, -26, 6, 36, 8, 6, 3,
-18, -16, 12, 10, -18, 0, -1, -4, -6, -4, 6, 2, 4, -14, -3,
-13, -2, 13, -6, -8, 12, -31, -18, -11, -2, 20, 18, -12, -8, -14,
-8, 34, 30, -7, -18, -2, 10, 4, 8, -8, -23, -15, -8, -9, -11,
30, 6, -30, 4, 27, 0, 10, 38, -6, -4, -3, -8, -12, 10, 1,
-24, -2, 1, -10, -20, -17, 10, 21, -18, -18, -17, -20, 4, 28, 6,
-1, 10, 0, 6, 19, -10, 0, 16, 0, 0, 22, -6, 12, 20, -7,
14, 12, -24, 36, -2, -32, 14, 14, -29, -13, 8, -16, -9, -12, -2,
12, -16, -26, 22, -20, -6, 26, 32, 10, -14, 0, 15, -7, -6, 18,
10, -36, -28, 9, -4, -32, 3, 10, -6, -15, 2, 18, 14, -24, 10,
14, -8, 20, 17, -22, 2, 6, -12, -5, 23, 18, -19, -24, 16, 10,
-10, 2, 31, -2, -30, -4, 8, -15, -7, 4, 7, -4, -10, 2, 9,
-10, 2, 4, -2, 10, 7, 3, 12, -10, 22, 26, -28, -26, 15, -6,
-24, 26, -16, -34, -2, 9, 19, 27, 8, 2, -14, -10, 23, 10, 4,
4, -42, -28, 3, 4, -11, 11, 4, -18, 8, -11, 2, 4, -11, 23,
0, -42, 28, 6, -10, 3, 10, 0, 12, 6, 2, 16, -2, -8, 21,
-1, -12, 9, -16, -8, 16, 4, -34, -10, 34, 16, -34, -2, -24, -7,
12, 15, 18, 10, -19, 10, -17, -4, 24, 14, -9, -10, -14, -37, -10,
2, 14, 22, -2, -21, 12, -14, 20, 30, 2, 0, -14, -20, 14, 6,
-2, 16, 4, -20, -2, 14, 3, 29, 6, -7, 2, -14, -10, 18, -19,
-5, -12, -4, 7, -14, -12, 22, -6, -24, -3, 10, -7, -14, 16, 18,
-19, -28, 8, 29, 10, 0, 0, -8, -11, -29, -4, 0, -9, 4, 3,
-16, 27, -14, 16, 24, 10, -1, -12, -10, -10, -4, -26, -18, 28, 12,
-22, 14, 28, 5, 6, 6, 16, 0, -27, -11, -15, -13, 2, 12, 5,
-16, -6, 20, 16, 18, 2, -18, -2, 28, 3, -34, 18, 10, 15, 3,
-18, -3, 0, -2, 26, -34, -6, 10, -22, 4, 42, 7, -18, 13, 4,
6, 16, 4, -35, -28, -2, 18, 6, 2, -16, -22, 14, 38, 0, 2,
-24, -14, 2, 22, 0, -14, -12, 12, 16, 17, 2, -19, -10, 12, 0,
4, -22, -28, -13, 8, 6, 21, -2, 2, 7, 14, 7, 5, 10, 0,
-18, 18, -4, -18, 5, 20, -8, -9, 16, 25, 2, -6, 8, -15, -6,
12, -11, 5, -18, -24, 1, 11, 1, 10, 14, -26, 29, 24, -32, 3,
21, -14, -22, -12, 0, 2, -8, 4, 4, 0, 20, 16, -2, -18, 8,
-10, -2, 23, -24, -28, -18, 18, 18, -18, 4, 40, -23, -13, 8, 22,
-4, -4, 10, -2, -20, -2, 12, 28, 18, -14, -8, 14, -4, -8, -23,
-26, -20, -30, -11, 28, 4, -10, 0, 14, 33, 29, 16, 24, -22, -2,
0, 1, -10, -6, -2, -17, -3, 0, -22, -20, 10, 21, -6, -24, 10,
-6, -1, 11, 33, 14, 1, 4, 10, -22, -20, 0, 7, -2, -26, -28,
-2, 2, 13, 18, 10, -3, -8, 10, 18, 20, 3, -2, 8, 11, 2,
10, 2, -18, -6, 18, -10, -16, -1, -8, -18, 21, 38, 12, -32, -2,
4, -10, 22, -28, -12, -6, -25, -10, 38, 16, -12, 28, 9, -3, 8,
-1, -22, -10, -6, -25, -18, 6, 12, 5, 9, 26, 8, 14, 16, 26,
4, -16, -17, -5, -22, 12, -15, -12, 5, -9, -14, 3, 23, 19, 2,
-16, 12, 20, -8, -2, -2, -1, -30, -4, 17, -10, -12, 4, -11, 12,
-14, 5, 26, 10, -6, 2, 15, -16, -5, 24, 2, -18, 2, -2, -20,
32, 17, 2, -11, -1, -8, -13, 20, 34, 12, -11, -28, 8, 24, -11,
0, 17, -11, -32, -22, 7, 6, -20, 6, 8, -1, -30, 9, 38, -1,
-18, 20, 34, -34, -8, 20, -22, -8, 23, -8, 14, -10, -2, 12, 8,
16, 6, -10, -20, 18, -10, -24, 18, -4, -42, 17, -4, 16, -18, -14,
29, 3, -18, 20, 4, -9, -13, -8, 25, 12, -26, 12, 5, -9, -6,
-10, 17, 6, -34, 13, 6, -6, -13, 17, 20, -6, 2, 10, -6, -2,
-1, 8, -4, -8, 10, -16, 30, -13, -24, 24, 32, -2, -21, 4, -1,
-9, -22, 4, 15, -12, -22, 14, -9, -8, 0, 20, 32, -6, -29, 24,
3, -18, 10, 22, -14, -4, -5, 2, -22, -20, 16, 28, -14, -6, 11,
-12, -23, 22, 22, -3, 2, -12, -10, 10, -5, -9, 10, -4, -16, -10,
4, -2, 28, -14, 12, 21, -16, -1, 16, 2, -2, -3, -4, -12, 4,
-5, 0, 8, 32, -16, 6, 32, -11, -2, 21, -14, 28, -24, -14, 0,
-19, -15, 3, 2, -20, 11, 2, 5, 5, 2, 13, -5, 8, -26, -22,
16, 11, -20, 4, 8, -44, 0, 40, -7, -14, 21, -15, -13, 2, 14,
12, -8, 15, 0, -25, 36, -4, 0, 11, -13, -16, 17, 2, -8, 8,
12, -15, -12, 28, -2, -14, -4, -14, 10, -8, -20, 32, 2, -32, 19,
1, -2, -14, -2, 17, 10, -7, 8, 17, -17, -2, 22, 6, -1, -4,
-20, 9, -5, -9, -6, 16, -4, -30, 36, -14, -18, 10, 4, -10, 10,
12, -16, 10, 5, -9, 28, 18, -20, -6, 5, -46, 18, 12, -26, 4,
0, -16, 16, -15, 2, 14, 0, 6, 4, -6, -6, -16, 9, 6, -6,
-2, -10, -12, 10, -26, 9, 22, -17, 0, 18, 11, -2, -7, 28, 26,
-9, -10, 1, -8, -20, 14, -4, -16, -16, -16, -4, 21, 9, -2, 16,
17, -18, 0, 28, -2, -22, 36, -20, -30, 14, 2, -24, 10, 12, 0,
-15, 8, 19, -27, 1, 40, -26, 32, -25, -4, 24, -22, -5, 30, -22,
-14, 0, 4, -2, -3, 0, -3, 0, -18, 14, 12, 7, -6, -12, 24,
-2, -8, 12, 0, 7, -18, -16, 32, -26, -26, 4, 24, -12, -16, 11,
-3, 3, -9, 2, 39, -8, -26, 22, -12, 10, -10, 10, 6, -10, -21,
4, 12, -8, -32, 27, -3, -16, 14, -2, 4, 2, -12, 21, 14, -24,
14, 24, -46, 20, 4, -5, 1, -10, -5, 10, -22, 18, -13, 25, -7,
-5, 12, 8, -16, 3, -38, 35, -6, -16, 18, -10, -6, 10, -1, -4,
5, -8, -14, 16, -22, 2, 3, 7, 22, 0, 2, 20, -14, 15, -32,
12, 4, -30, -13, 11, -19, 2, 0, 15, -6, 2, 17, -4, 4, 2,
-2, 12, -8, 8, -2, -11, 14, -13, 3, -12, 2, -11, -14, 19, -14,
8, 6, -11, 28, -8, -5, 42, -34, 10, -10, -4, 13, -15, -12, -3,
0, 2, -54, 40, -6, -26, 28, -1, 2, 0, -5, 18, 6, 1, 4,
-6, 9, -14, 8, -4, 5, -10, -4, 22, -28, 18, -2, -4, 16, -5,
-16, 20, -18, 5, 11, -14, -2, 2, -8, -4, 4, -2, -33, 38, -8,
-10, 24, -12, 10, 4, -6, 9, -18, 1, 8, -32, 28, -17, -10, 0,
20, -19, 1, 30, -26, 9, -12, 8, 10, -14, 7, 9, -23, 21, -28,
27, -4, -5, -2, -7, 8, -15, -7, 29, -4, -24, 21, 8, -15, 14,
28, -20, -1, 2, -5, 10, -10, 0, 34, -39, 19, 8, -16, 16, -16,
-3, -2, -1, 12, -18, 5, 16, -38, 28, 18, -14, -15, 17, 0, -23,
22, -10, -18, 24, -12, 2, 30, -11, 7, 2, 0, 13, -24, -2, 9,
-41, 23, -14, 8, 8, -11, 12, 12, 5, 10, 0, 18, -20, 1, 2,
-8, -2, -11, -6, 2, -4, 8, -2, -3, 8, -14, 12, 1, -14, 20,
-6, -8, 9, -7, -1, 3, -3, 4, -6, -6, 12, -3, 2, 18, -17,
17, 8, -21, 19, -7, -7, 1, -8, 12, -17, -8, 32, -34, 24, 6,
-19, 16, 6, -15, 4, 0, -8, -34, 35, 2, -33, 22, 6, -16, 20,
5, -6, -7, 16, 1, -16, 26, -23, -18, 18, 4, -24, 16, 12, -26,
14, 6, -10, 18, -14, -8, 22, -22, 14, 26, -28, -2, 22, -14, -10,
20, -12, -27, 28, -10, -18, 14, -4, 5, 4, 10, -6, -8, 28, -6,
-15, 28, -18, -16, 17, -6, -22, 6, -2, -10, 6, -26, 37, -12, 0,
24, -16, 24, -6, 4, 13, -24, 0, 4, -22, 15, -14, 4, -4, 6,
-8, 4, 14, -12, 7, -2, -2, 15, -6, 5, 14, -13, 9, -4, -10,
-6, -10, -7, -8, 2, -6, -11, 30, 8, 18, 30, -4, 16, -2, -18,
-4, -26, -24, -23, -17, -8, -6, 14, 22, 16, 32, 33, 12, 20, 3,
-12, -14, -12, -36, -28, -14, -28, -6, 20, -8, 12, 20, 3, 26, 8,
14, -4, -6, 10, -12, -12, 10, -18, 3, -21, 32, -20, -4, 20, -20,
22, -4, -15, 25, -22, 6, 20, -22, 25, -19, -6, 14, -9, -17, 21,
-22, 0, -2, -8, 16, -9, 3, 24, -2, 8, 9, -10, 8, -16, 0,
-8, -19, 6, -22, -3, 20, 2, -10, 22, 16, -12, 24, 19, -34, 4,
3, -28, 6, -8, -12, -15, 7, 14, -14, 3, 22, -16, 16, -4, 14,
-11, 6, 12, -14, 5, 0, -8, 6, -9, -6, 4, -7, 0, 0, 14,
-4, 3, 12, 6, 0, -2, 4, -18, 12, -12, -13, 2, -10, 2, 3,
-12, 26, -16, 14, 24, -25, 30, -14, -24, 20, -9, -16, 12, -22, 5,
-6, -22, 32, -20, -2, 24, -18, 14, 1, -22, 34, -28, 8, 20, -38,
32, -14, -12, 25, -18, 6, 18, -36, 31, -16, 15, -20, 15, -15, -6,
17, -25, 17, 6, -7, 10, 0, 8, -7, 17, -7, -12, 24, -20, -12,
17, -29, 14, -8, 11, -15, 16, 3, -7, 18, -7, 5, -2, 8, -4,
-6, 3, -6, -4, 4, -6, 20, -12, -6, 23, -28, 26, -14, 29, -32,
14, -8, -8, 17, -18, 10, 9, -12, 12, -4, 1, 14, -10, 4, -12,
14, -10, -12, 19, -32, 23, -12, 16, -14, 12, 0, -8, 22, -14, 7,
-8, 15, -25, 19, -18, 11, -4, 1, -14, 21, -16, -4, 11, -12, 9,
-7, 28, -26, 17, 2, -13, 27, -21, 12, -28, 24, -22, -5, 14, -26,
21, -12, 22, -22, 24, -8, 0, 16, -13, 6, 2, 13, -20, 26, -23,
16, -6, 2, -28, 30, -35, 24, -21, 10, -1, -1, 10, 10, -20, 38,
-35, 28, -18, 9, -14, 14, -18, -2, 9, -16, 16, -10, 12, -4, -6,
16, -16, 14, -14, 6, -14, 16, -19, 10, -6, 3, 5, -3, 8, 14,
-26, 28, -14, 8, -4, 1, 4, -10, 2, 1, -10, 10, -6, 2, 2,
-4, 11, -7, 4, 6, -9, 6, -7, 8, -13, 12, -8, -2, 2, -1,
7, -9, 18, -16, 14, -4, -2, 3, 17, -40, 44, -44, 43, -33, 20,
-6, -2, -2, 12, -8, 12, -18, 9, -8, -6, 7, -14, 22, -29, 29,
-25, 15, -11, 18, -14, 16, -2, -1, 4, -3, 8, -5, 3, -5, 3,
-6, -4, 2, -2, 0, 5, -2, 4, -2, -2, 2, -12, 20, -26, 23,
-19, 8, -4, 2, -10, 18, -18, 18, -12, 6, -1, 2, 4, -8, 10,
-10, 12, -12, 2, 0, 8, -16, 30, -34, 26, -26, 16, -6, 16, -34,
38, -36, 29, -17, 14, 0, -6, 0, 13, -13, 18, -15, 9, -8, -3,
8, -10, 18, -24, 20, -14, 9, 14, -20, 26, -29, 32, -26, 18, -6,
2, -12, 16, -25, 26, -22, 16, -8, -2, 6, -7, 18, -18, 18, -12,
2, -6, 12, -12, 4, 3, -8, 4, 0, 16, -30, 32, -27, 14, -9,
8, -4, -8, 13, -10, 8, 2, -6, 7, -4, -10, 16, -24, 27, -35,
28, -18, 7, 1, 2, -7, 12, -8, 4, 2, 0, -16, 20, -21, 9,
0, -8, 6, -2, 18, -20, 18, 2, -12, 22, -18, 8, -28, 37, -41,
20, -10, -12, 10, -8, 11, -14, 16, 7, -18, 34, -22, 15, -8, 12,
-12, -3, 12, -26, 18, -14, 4, -3, 4, 8, -17, 25, -16, 12, -15,
22, -29, 24, -15, 4, 0, -3, 5, -4, 4, 0, -3, 4, -3, 2,
6, -11, 19, -22, 24, -20, 14, -2, -6, 4, -8, 8, -8, 3, -2,
-2, -16, 24, -26, 30, -26, 20, -10, 6, 2, -2, 4, -2, 2, -4,
0, -1, -4, 4, 0, -4, 3, -4, 5, 0, -5, 8, -11, 10, -8,
6, -6, 2, 20, -22, 30, -28, 22, -12, 6, 0, 12, -26, 32, -42,
40, -32, 20, -8, -12, 22, -32, 41, -36, 30, -16, 8, 6, -10, 15,
-20, 19, -18, 8, -6, 3, -6, 2, -2, 2, 1, 1, 2, -2, 4,
4, -4, 6, -4, 4, -2, 13, -23, 26, -29, 22, -16, 9, -4, -3,
-4, 14, -15, 16, -12, 8, -2, 4, 0, -2, 8, -10, 10, -8, 4,
10, -21, 30, -36, 30, -24, 16, -6, 8, -8, 6, -2, 4, -3, 2,
0, 4, -14, 21, -23, 18, -14, 12, -8, -3, 10, -17, 20, -16, 6,
-1, -1, 6, -18, 30, -32, 26, -18, 12, -2, -14, 24, -36, 37, -32,
18, -12, 3, 12, -20, 34, -32, 28, -18, 14, -2, -4, 8, -13, 14,
-8, 4, -4, 0, 4, -6, 9, -7, 0, 0, 0, 0, 6, -13, 16,
-18, 17, -14, 6, -4, -10, 18, -24, 32, -33, 27, -15, 8, 8, -13,
20, -24, 21, -18, 10, -6, -2, 4, -8, 12, -11, 10, -6, 4, 0,
2, -4, 2, -4, 2, -1, 1, 10, -16, 20, -18, 20, -18, 10, -6,
-10, 18, -28, 28, -29, 22, -13, 6, 11, -18, 24, -26, 26, -18, 12,
-4
};
static const int32_t mdt8x8_mode7[4096] = {
0, 1, 2, 2, 2, 2, 4, 4, 0, 2, 2, 2, 2, 2, 4,
7, 1, 2, 2, 2, 2, 4, 9, 14, 1, 2, 2, 3, 6, 11,
16, 20, 2, 2, 4, 8, 13, 19, 23, 24, 2, 4, 9, 16, 22,
26, 28, 29, 4, 11, 19, 25, 28, 30, 30, 30, 12, 21, 26, 28,
30, 30, 30, 29, 4, 10, 16, 16, 18, 23, 29, 30, 6, 16, 20,
18, 18, 24, 34, 33, 6, 16, 18, 16, 18, 26, 32, 26, 6, 12,
16, 18, 22, 23, 19, 12, 6, 11, 15, 18, 16, 11, 4, 0, 8,
10, 10, 10, 4, -2, -6, -9, 5, 6, 3, -2, -7, -10, -13, -15,
-1, -2, -5, -10, -13, -15, -16, -16, 6, 15, 18, 16, 18, 26, 30,
22, 8, 18, 20, 16, 17, 22, 20, 8, 6, 14, 14, 12, 8, 0,
-11, -18, 5, 6, 4, -3, -16, -28, -30, -23, 0, -4, -11, -20, -29,
-30, -20, -8, -4, -10, -17, -21, -18, -8, 2, 9, -8, -12, -14, -8,
2, 12, 18, 21, -4, -4, 0, 8, 18, 21, 22, 22, -8, -20, -28,
-30, -29, -23, -14, -4, -10, -22, -24, -15, -1, 10, 12, 8, -4, -6,
1, 16, 31, 32, 18, 2, 5, 14, 24, 31, 26, 10, -6, -14, 10,
20, 24, 14, -4, -18, -20, -12, 10, 12, 1, -12, -20, -17, -6, 4,
1, -5, -13, -14, -8, 2, 13, 18, -6, -10, -8, 1, 11, 18, 20,
19, -16, -44, -49, -20, 12, 12, -8, -10, -14, -22, -2, 27, 36, 15,
-8, -8, 4, 18, 36, 36, 11, -10, -8, 2, 14, 24, 18, -3, -22,
-14, 6, 14, 7, 2, -13, -20, -10, 5, 13, 10, -6, -15, -13, -2,
10, 12, 6, 0, -4, -4, 2, 8, 8, 1, -6, -10, 2, 6, 6,
2, -5, -11, -12, -10, 10, 10, 2, 5, 27, 40, 22, 0, 0, -16,
-18, 5, 24, 9, -27, -36, -9, -28, -20, 8, 16, -14, -43, -34, -4,
-3, 12, 23, 13, -6, -12, -4, 10, 25, 33, 22, 4, 4, 10, 10,
17, 24, 18, 6, -2, 2, 6, 5, 12, 10, 2, -2, -2, -2, -2,
0, 3, 0, -3, -4, -4, -3, -2, -1, 0, 0, 14, 29, 27, -2,
-35, -44, 10, 24, 28, 22, 2, -24, -36, -32, 16, 28, 22, 4, -10,
-6, 6, 9, 10, 15, 12, 6, 9, 19, 20, 10, 9, 12, 12, 10,
8, 7, 2, -3, 4, 2, -4, -10, -13, -12, -6, 3, -4, -10, -16,
-17, -12, -4, 6, 14, -12, -18, -14, -4, 6, 14, 16, 16, 18, 41,
28, -16, -42, -28, -13, -20, 17, 28, 11, -11, -8, 8, -1, -27, 12,
18, 16, 20, 28, 20, -9, -28, 13, 20, 20, 17, 7, -8, -12, -4,
8, 5, -2, -7, -10, -6, 8, 17, -1, -5, -6, -2, 8, 14, 15,
8, 0, 2, 8, 14, 14, 6, -6, -14, 6, 10, 11, 4, -6, -16,
-21, -20, 12, 19, 12, 0, -3, 2, 8, 12, -2, -12, -17, -10, -6,
-9, -2, 14, -16, -26, -15, 4, 4, -8, 1, 21, -8, 2, 14, 9,
-4, 0, 20, 32, 8, 14, 4, -16, -16, 10, 30, 31, -1, -15, -34,
-30, -4, 16, 19, 14, -23, -36, -34, -14, 4, 8, 2, -1, -27, -30,
-16, -3, -2, -5, -7, -6, 20, 29, -10, -52, -34, 19, 26, -10, 12,
14, -4, -12, 11, 27, 4, -21, 6, 9, 9, 10, 2, -14, -10, 10,
1, -4, -11, -12, -12, -3, 20, 28, -12, -18, -12, 2, 14, 18, 12,
-2, -10, -5, 10, 12, 4, -9, -18, -12, 8, 7, -2, -16, -22, -16,
1, 17, -6, -14, -22, -18, -3, 12, 22, 24, -33, -25, 13, 10, -36,
-37, 23, 56, -20, -7, 26, 20, -8, -16, -5, -2, 6, 14, 12, 2,
0, -8, -32, -36, 13, 8, -8, -8, 8, 12, -2, -6, 4, 0, -1,
8, 16, 18, 20, 16, -1, 2, 8, 7, -1, 0, 8, 13, 0, -2,
-6, -12, -14, -7, 1, 8, -10, -14, -16, -12, -2, 4, 4, 4, -12,
-31, -32, -16, 2, 14, 6, -13, 17, 30, 16, -6, 0, 21, 12, -12,
27, 26, -8, -25, -4, 11, 5, -4, -16, -33, -27, 2, 14, -2, -10,
3, -20, -14, 16, 22, -4, -14, 8, 26, 4, 12, 4, -15, -14, 12,
30, 24, 2, -6, -19, -16, 6, 18, 6, -10, -7, -14, -10, 1, 2,
-8, -17, -16, -14, -16, 8, 22, 14, 8, 8, 10, 12, -6, -34, -24,
12, 28, -6, -33, 26, 10, -32, -30, 17, 40, 4, -26, 20, 18, -6,
-10, 10, 28, 19, 3, 0, -8, -14, -6, 6, 8, 6, 2, -22, -32,
-20, 0, 4, -9, -14, -8, -18, -16, 2, 7, -2, -9, -5, 0, -2,
6, 11, 6, 1, 3, 6, 4, -12, -11, 15, 36, 14, -26, -38, -14,
10, 0, -7, 4, 16, 17, 15, 16, -3, -14, -16, 6, 32, 24, 0,
-6, -10, -10, 0, 1, -18, -31, -6, 22, -10, -15, -11, -12, -18, -6,
20, 27, -4, 9, 18, 13, 7, 8, 2, -2, 18, 24, 8, -12, -15,
-6, 2, 12, 7, -10, -30, -30, -12, 4, 10, 14, 8, 24, 8, -8,
-10, -16, -17, 1, -10, -12, 10, 48, 50, 9, -18, -6, -10, -26, -12,
24, 28, 13, 6, 6, -6, -28, -40, -22, 12, 30, 14, -12, -15, -17,
-12, -4, 2, -1, -8, -8, -3, 2, 3, -6, -16, -14, 3, 16, -6,
-7, -4, 1, 4, 7, 4, 0, -8, -2, 10, 14, 9, 0, -10, -15,
28, 22, -4, 0, 16, 14, 1, 1, -14, -33, -24, -6, -12, -14, -2,
4, -4, 11, 15, -8, -15, 8, 12, -4, 36, 38, -2, -22, 2, 12,
2, 0, -4, -20, -16, 7, 0, -24, -8, 25, -12, 0, 21, 10, -24,
-14, 22, 32, 13, 20, 3, -21, -10, 20, 20, 0, 10, 0, -20, -18,
2, 2, -16, -20, -30, -6, 36, 14, -25, -6, 18, 4, -20, -16, -5,
-6, 4, 12, -10, -26, 8, 11, -4, -4, 3, -10, 1, 28, 12, 10,
1, -8, -18, -16, 22, 39, -18, -4, 21, 5, -25, -21, -8, -12, 10,
21, 14, -13, -16, -1, -10, -26, 24, 12, -14, -8, 20, 21, -2, -20,
8, 2, 6, 22, 20, 1, -8, -4, -22, -7, 13, -2, -9, 20, 20,
-14, -19, -3, 16, 5, -16, -18, -14, -2, 0, -4, -8, 12, 18, -7,
-3, 26, -7, -12, -4, 28, 33, 2, -5, 9, -8, -16, -4, 2, -16,
-11, 6, 10, -24, -32, -18, -18, -22, -6, 8, 12, -8, 12, 16, -8,
-18, -13, -6, 8, 42, 44, 5, -21, -17, -6, 4, 12, 12, 2, -12,
6, 18, -16, -16, 41, 35, 16, -32, -18, 6, -15, -16, 15, 14, 10,
10, 24, 6, -20, -14, -5, -7, -4, 18, 24, 3, 8, 14, -11, -36,
-28, 2, -2, 2, 27, 7, -24, -18, -3, -2, -22, -12, 6, -2, 0,
26, 16, -16, -19, 4, 5, -2, 6, 18, 8, 0, 14, 14, -6, -12,
-3, 18, 8, -13, -4, -5, -30, -5, 44, 20, 6, -11, 10, 27, 9,
-14, -20, 4, 8, 4, -20, -30, 0, 20, 8, -15, -1, 4, -15, -21,
2, 14, 4, 3, 24, 24, 2, -20, -24, -4, 16, 27, 8, -18, -12,
-4, -4, 4, 14, -6, 2, 11, 4, -10, -12, 0, 10, 22, 30, 9,
-26, -30, -7, 10, 12, 12, 18, -10, -22, 6, 19, 2, -3, -24, -14,
13, 16, -9, -27, -10, 18, 23, 14, -12, -12, 6, 24, 14, -22, 16,
2, -12, -12, 2, 20, 6, -25, -14, 0, 15, -22, -38, 8, 26, 4,
10, 18, -4, -18, 14, 28, -8, -24, 19, 10, -10, 4, 20, -8, -26,
0, 16, -8, -14, 0, -2, -6, 12, 30, -4, -6, 9, 6, -6, 11,
19, 5, 14, -10, -21, 0, 0, -31, -31, 4, 18, 18, 7, 12, 16,
2, -2, 16, -8, -6, 12, 12, 6, 4, -1, -2, -36, -32, -7, 4,
-11, -30, -22, 4, 16, 14, 2, 20, 25, 5, -3, 4, -16, -10, 18,
32, 8, -1, 14, 12, -40, -26, 4, -10, -32, -11, 10, 2, 32, -6,
-34, 8, 14, -8, 9, 20, -2, 8, 18, -1, -25, -16, -4, -11, -26,
-2, 20, 0, 9, 26, -10, -22, -19, -14, 2, 10, 13, 3, 15, 40,
3, -12, -22, -6, -15, -24, 12, 24, 10, 6, 4, 0, -23, -22, -17,
-28, -2, 4, 15, 6, -7, -4, -10, -18, -16, 2, 18, 19, 20, 16,
4, 2, -11, -11, -13, -16, -10, 8, 16, 6, 36, 30, 4, 6, 0,
-30, -24, 20, 29, -7, -36, -2, 20, 0, -6, 12, 4, 6, 0, -8,
-9, 4, 12, 8, 34, 38, -8, -38, -19, -1, -6, -9, -11, 4, 24,
12, -13, -16, -4, 6, 2, 10, 16, 6, 0, 14, 15, -2, 6, -4,
-14, -8, 11, 14, -8, -25, -19, -14, 6, 7, 0, 14, 20, -6, -9,
6, 5, -16, -22, 6, 9, -40, -26, -12, 13, 13, -3, 14, 25, -12,
-23, -11, 11, -1, -12, 22, 22, -12, 0, 2, -22, -40, -4, 19, -10,
-10, 22, 17, -12, -12, 6, -8, -1, 36, 35, 20, -6, 4, 5, -8,
12, 24, 4, -10, -8, 0, -11, -14, -6, -13, 7, 2, -8, 4, 6,
-10, 6, 26, -6, 0, 6, 4, 0, 2, -14, -44, -16, -10, 12, 6,
-12, 10, 31, 4, -6, -13, -4, 18, 16, -6, -7, -5, 0, 5, 4,
-4, -6, -4, -10, -22, -30, -23, 10, 15, 18, 35, 10, -30, -20, 0,
10, 4, 16, 28, 10, -5, 14, -15, -49, -24, 16, 10, -6, 0, 6,
-12, -8, 18, 7, -9, -4, 4, 16, 15, -10, -32, -10, 20, 5, -8,
-15, -8, 14, 24, 8, -24, -18, 31, 46, 10, -50, -18, 36, 14, -14,
-2, 9, 8, -6, -18, -16, 0, 6, -4, 23, 20, 8, -10, -14, 10,
11, -3, -8, -4, 8, 15, 8, -8, -14, 6, -4, -3, -6, -6, -8,
-11, 2, 20, 5, 15, 0, -10, 10, 0, -15, 25, -36, -4, 5, -13,
15, 6, -32, 4, 14, 24, -4, -26, -2, 14, 5, 10, 18, -21, -16,
38, 7, -38, -6, 18, 39, 2, -36, -7, 16, 8, -10, -15, 0, 12,
4, -15, -2, 9, 0, 12, 8, 13, 2, -6, -3, -4, 4, 21, -14,
-9, 10, 14, -12, -24, -4, 4, -40, 13, 20, -20, 4, 12, -14, 10,
13, -3, -24, 1, 12, -4, -3, -1, 14, 0, 8, 15, -23, -13, 22,
-4, 2, -8, -10, 6, 23, 4, -24, -1, 2, 3, -16, -12, 14, -4,
-2, 40, 28, 10, -28, -19, 12, 4, -10, -20, 4, 17, 20, -4, -24,
-10, 4, -20, 4, -10, -6, 7, 27, 34, 5, -23, 7, 1, -10, 0,
2, -8, 5, 4, 22, -13, -2, 34, -14, -18, 22, -18, 25, -16, -18,
15, -2, -2, 12, -9, 2, 8, -2, -6, 22, -6, -24, 40, -6, 12,
-12, -18, 34, 4, -40, 10, -5, -6, -2, -2, -2, 2, 6, -8, 36,
-7, -28, 0, 12, 10, 4, -14, -3, 7, 10, -2, -20, -22, 6, 34,
-28, -6, 16, -8, -12, 12, 12, -8, 28, 16, -16, -7, 21, -10, -26,
19, -31, -11, 20, 3, -12, 12, 14, -16, -6, -2, 4, -4, -14, 8,
18, -16, 30, -6, -25, 17, 14, -20, -8, 19, -14, 6, 22, -6, -14,
11, 12, -5, -5, -2, -9, -10, 13, 8, -26, -18, 5, 1, -4, 8,
1, -24, -3, 50, 38, -16, 2, 32, -32, -12, 36, -28, 22, -32, -25,
24, 16, -1, -5, 2, 0, 28, 13, -28, 0, 10, -7, 26, -26, -6,
6, -2, 14, 2, -29, -10, 16, 3, -15, -14, 1, 18, 12, -8, 10,
-1, -6, -6, -3, 7, 8, 0, 8, 12, 3, -6, -8, -8, -9, -2,
7, -6, -10, 11, 21, 2, -7, 2, -13, 12, 8, -2, 3, -4, -2,
-1, -4, -12, -14, 0, 4, 6, 8, -6, 9, 10, 14, 3, -28, -10,
24, -6, -12, -8, 3, 11, 8, -8, -12, 0, -24, 23, 22, -31, -18,
14, 12, 14, -46, 0, 46, 10, -34, -22, 6, 16, -5, -11, 12, 30,
-4, -30, -16, 2, -12, -17, 7, 22, 2, -8, 2, 8, 10, -8, -4,
2, -4, -2, -2, 7, -4, 16, 12, -9, 12, 4, -23, 12, -20, -4,
0, -12, 4, 0, -12, 14, 8, 8, -2, -1, 10, 0, -16, 10, -10,
4, 10, 6, 6, -18, -20, 34, -13, -13, -18, 14, 30, -25, -32, 22,
24, -8, -23, 24, 20, -22, -10, 10, 42, -22, -32, 27, 15, -10, -2,
-6, 10, 1, 0, 10, -2, -3, 8, -14, -5, -14, -10, 0, -6, -4,
15, 8, 12, 13, 10, 8, 4, 0, -13, -20, 4, -21, -4, 9, -12,
-1, 22, 16, -2, 2, -10, -7, 23, 6, -28, 6, -8, 47, 20, -34,
0, 13, -12, 3, -40, -36, -6, 17, 6, -8, 4, 0, 46, 15, -22,
-10, -2, 12, 14, -22, -16, 12, 10, -5, 8, 7, -7, 2, -16, 4,
-13, -26, 10, -1, -24, 18, -14, 24, 36, -6, 10, 19, -16, 0, -26,
-17, -10, -17, 14, 10, -20, 11, 0, 17, 4, -20, -4, 14, 2, -8,
6, -11, 7, 26, -2, -8, 10, -8, 26, -26, -36, -2, 10, 16, 10,
-22, 4, 22, 12, -29, -22, 24, 19, -11, -18, 22, 1, -12, 20, 2,
-22, 14, -18, -12, 2, -9, -14, 8, 11, -7, 28, 16, -2, -2, 19,
-4, -28, 16, -48, 7, 18, -20, 0, 13, -1, 3, 2, 4, -14, -4,
12, -6, -10, -2, 28, -2, 0, 13, -10, -9, 9, 8, -18, -7, 17,
6, 6, 4, -18, 3, 9, 0, -28, -4, 32, -16, -35, 36, 4, -2,
10, 8, -2, 0, 3, -10, 10, -20, -22, 2, -7, -10, 20, 6, 24,
11, 16, 24, -11, -12, 10, -24, 14, -44, -32, 22, -2, -7, 23, 2,
26, 10, 8, 10, -19, -11, 16, -2, 17, -24, -13, 32, 14, -30, -26,
11, 2, -2, -10, -5, 16, 16, 1, 11, 2, 10, -7, -6, 11, -13,
-22, 12, 26, -9, -6, 18, 0, -5, 11, 8, -26, 4, 5, -25, -10,
-2, -16, -14, 30, -1, -16, 34, 22, -8, 30, 18, 3, -14, -2, 2,
-32, -14, 6, -36, 6, 0, -6, 3, 14, 0, -3, 17, 10, -5, 4,
20, 0, -2, 27, 10, 12, -16, -12, 0, -24, -17, -12, -44, 8, -4,
5, 10, 8, 18, 16, 10, 13, 0, -1, 9, -2, -12, -4, -8, -22,
0, 2, -7, 12, 22, 16, 8, 11, 10, -4, -5, -8, -28, -28, 2,
-10, -13, 10, 14, 4, 34, 19, -16, 11, 12, -6, -8, 1, -10, -10,
17, -28, -4, -13, -20, 0, -12, -10, 0, 8, 38, 20, 6, 20, 34,
10, -41, -10, -23, -7, -6, -28, 0, 28, 11, -2, -2, 4, -8, -6,
2, -10, 0, 8, -4, 6, 13, 10, 10, 9, 2, 2, -6, -18, -17,
-20, -16, -2, -4, 8, 9, 14, 32, 11, -4, 22, -6, 8, -26, -28,
9, -1, -9, 11, -14, 22, -8, -2, 7, -33, -6, 28, -6, 36, -22,
-9, 49, 26, -16, -20, 2, 0, 0, -16, -27, 2, 29, 6, -12, -12,
12, -7, -5, 12, -6, 0, 14, 14, -10, -3, 10, -15, -4, 9, -27,
4, 2, 0, 0, 11, -2, 4, 28, -6, 1, 5, -2, -2, -3, -18,
-11, 24, -14, -10, 10, -6, 0, 6, 12, -18, 11, 18, -6, 17, -6,
-28, 30, -12, 17, -22, -24, 45, -4, -53, 3, -20, 15, 10, -14, -2,
28, 20, -20, -21, 20, -4, -8, 18, -5, -2, 7, 19, -17, -10, 11,
-24, -6, 14, -14, 8, 2, 14, 7, 12, 10, -16, 16, -10, -12, -7,
-19, -12, 9, 0, -2, 36, 0, -2, 34, -8, -21, 20, -14, -18, -8,
-4, -4, -6, 8, 19, -18, 20, -4, -2, 16, -12, -16, 21, 8, 28,
-32, -1, 36, -24, -14, 26, -20, -29, 30, -27, 2, 16, -34, 30, -16,
-4, 11, 2, 6, 12, 0, 5, -8, 13, -30, 4, -16, -24, 14, -16,
22, 32, -8, 26, 25, 0, 9, -12, -12, -14, -13, -20, -16, -8, 3,
22, 0, 15, 19, 3, 24, 9, -18, -5, 0, -12, -16, -14, -13, -10,
17, 12, -14, 20, 2, 2, 10, -4, -10, 0, 10, -14, 23, -22, 17,
12, -30, 38, -24, -17, 9, -6, -14, 6, -2, -11, 16, 24, -20, 18,
12, -7, 19, -12, -1, 6, -12, -5, -13, -15, 2, 2, 8, -9, 22,
11, 15, 20, -16, -13, -1, -12, -16, -15, -22, -4, 14, 12, -4, 22,
16, 10, 13, 11, -20, -20, 26, -30, 7, -2, -20, 18, 14, -16, -8,
-18, 16, -10, -6, 16, -12, 12, -4, -8, 24, -28, 14, 16, -44, 30,
-12, -42, 32, -9, -16, 30, 0, 4, -4, 20, -2, -12, 4, -13, -16,
0, 12, 0, -9, 21, 7, 0, 24, -13, -14, 10, -10, -16, -7, -5,
-10, 10, 24, -2, 6, 21, 15, 0, -2, -7, -32, -1, -10, -13, -2,
4, 5, 7, 13, 2, 7, -10, 8, 4, -18, 14, -10, -34, 30, -16,
-8, 28, -18, 22, -8, -7, 23, -26, 4, 8, -40, 19, -7, -20, 8,
9, -6, 14, 21, -6, -6, 27, -16, -8, 0, -12, -10, -4, 26, 2,
-8, 24, 7, -2, 20, -14, -30, 6, -12, -18, -5, -2, -8, 18, 34,
-2, 10, 8, 2, 2, -12, -10, -12, 10, -16, 16, -10, -7, 20, -23,
14, 0, 6, -7, 12, -4, -10, 20, -19, -10, 4, 5, -13, 4, 10,
-24, 26, 36, -44, 22, 8, -29, 34, -14, -6, 6, 3, 5, -6, -4,
-4, -10, 16, -28, 14, 0, -2, 9, 5, 6, -12, 24, -18, 0, 7,
-20, -4, 1, 11, -14, 8, 14, -17, 14, 13, -36, 15, -12, 14, -8,
-2, 10, -9, 6, -4, 18, -16, 4, 8, -10, 2, 6, -6, -24, 22,
-3, -16, 18, -8, -8, 14, -10, 18, -26, 16, 14, -28, 42, -38, -28,
37, -16, -10, 18, -28, 12, 11, -11, 0, 7, -6, 16, 18, -22, 4,
28, -24, 2, -4, -22, 12, 1, 2, -8, 8, 10, -5, 3, 4, -11,
3, -8, 9, -3, -4, 4, -5, -4, -4, 14, -15, 10, 4, -4, 13,
4, 8, -6, 2, 2, -12, -6, -6, -22, -6, 10, -12, 2, 18, 7,
20, 29, 10, 6, -7, 15, -26, -23, -8, -53, 0, 17, -31, 17, 26,
14, 38, 24, 12, -7, 15, -12, -26, -17, -31, -15, -8, -6, 4, 0,
20, 11, 0, 19, -10, -6, 7, -4, -1, 4, -2, 2, 2, 16, -18,
14, -1, -14, 10, -14, 0, -4, 0, 5, -4, 8, 13, -2, 16, 10,
-10, 2, 4, -23, -6, -6, -24, 8, -19, 22, -2, 10, 38, -11, 40,
28, -36, 20, -15, -40, 7, -37, -14, 4, -3, 8, 18, 10, 11, 27,
1, -15, 18, -18, -3, 2, -23, 10, -6, 6, -10, 10, -6, -2, 8,
-6, 3, -6, 11, -12, 6, 3, -16, 14, -9, -8, 8, 0, -6, 8,
8, -9, 12, 10, -8, -4, 8, -12, -10, 10, -18, -30, 32, -9, -15,
33, -8, 6, 17, 11, -4, -11, 23, -22, -20, 32, -40, -32, 36, -20,
-14, 32, -9, -4, 26, 4, 3, -4, 12, -8, -10, 16, -17, -11, 13,
-8, -2, 9, -10, 7, -2, 18, -21, 16, -4, -8, 14, -14, 5, -12,
17, -10, 0, 8, -12, 8, -2, -4, 6, -6, 4, 1, -1, 4, -5,
13, -12, 6, 0, -7, 5, 0, 4, -25, 32, -18, 0, 19, -26, 23,
-16, -16, 29, -38, 24, 6, -37, 46, -18, -20, 26, -9, -12, 16, -2,
-20, 16, -8, 12, -10, 2, 8, -14, 14, -6, 16, -22, 16, -5, -10,
17, -16, 8, -16, 19, -12, 4, 10, -12, 12, -8, 6, -10, 4, 1,
-6, 0, -1, 0, 5, -8, 10, -4, 2, 20, -21, 16, 2, 1, -12,
11, -12, -10, 9, -18, -8, 0, 8, -10, 10, 16, -18, 24, 34, -50,
40, -10, -26, 36, -36, 8, -1, 3, -8, 14, -18, 17, -11, 5, -16,
22, -22, 13, 2, -12, 14, -8, 22, -28, 24, -4, -14, 26, -25, 16,
-24, 31, -28, 10, 10, -25, 26, -18, 18, -20, 16, -4, -10, 17, -18,
16, -5, 2, -3, 7, -6, 10, -10, 0, -8, 14, -18, 10, 0, -12,
15, -6, 10, -18, 20, -6, -10, 22, -26, 12, 20, -32, 40, -42, 38,
-28, 18, -6, 13, -24, 32, -40, 40, -34, 23, -11, 16, -22, 23, -17,
11, 0, -1, 2, -6, 8, -7, 0, 4, -5, 4, -2, 4, -6, 5,
-4, -2, 3, -2, 2, -2, -1, 2, -4, 0, 0, 0, 0, -1, 2,
0, 0, 0, -4, 4, 0, 2, -5, 5, -1, -2, 6, -6, 2, -11,
18, -24, 26, -26, 20, -13, 6, 4, -8, 10, -12, 12, -10, 6, -3,
16, -28, 38, -43, 42, -34, 22, -10, 14, -22, 26, -28, 28, -22, 18,
-7, 4, -4, 4, -2, 0, 6, -6, 5, -8, 11, -14, 5, -1, -7,
8, -6, 4, -5, 8, -3, -2, 6, -5, 6, -4, 5, -4, 2, 1,
-8, 8, -4, 0, 0, -2, 2, -4, 5, -4, 2, 0, 2, -2, 2,
-2, 0, 0, 0, 0, -4, 6, -11, 14, -12, 10, -6, 16, -21, 22,
-14, 4, 3, -6, 7, -10, 9, -6, -8, 24, -32, 30, -20, 24, -34,
34, -21, -4, 20, -24, 21, -20, 29, -28, 16, 6, -24, 26, -20, 12,
-18, 14, -5, -12, 23, -25, 16, 8, -14, 18, -20, 20, -16, 10, -4,
-10, 15, -19, 18, -18, 15, -10, 4, -3, 8, -9, 12, -12, 10, -8,
4, 8, -20, 28, -36, 38, -33, 24, -13, 24, -35, 40, -37, 28, -18,
10, -2, -6, 7, -5, -1, 6, -8, 4, 0, 3, -4, 2, 2, -6,
8, -8, 4, -2, 2, -2, 0, 2, -5, 5, -2, 4, -8, 12, -14,
14, -12, 7, -4, -4, 6, -8, 10, -10, 10, -4, 2, -1, 3, -2,
2, 2, -4, 4, -2, 8, -14, 16, -18, 11, -6, 4, -1, -10, 22,
-25, 26, -20, 16, -12, 4, -12, 22, -36, 42, -46, 45, -32, 17, -9,
21, -25, 24, -20, 10, -6, -4, -4, 4, -2, 2, 2, 0, 2, -1,
-6, 9, -12, 12, -11, 9, -4, 2, 6, -12, 14, -17, 16, -12, 8,
-4, -2, 6, -7, 8, -6, 4, -1, 0, -4, 4, -7, 6, -8, 7,
-6, 5, 8, -12, 18, -16, 16, -12, 6, -4, 0, 0, -1, -2, 0,
0, 0, -1, -9, 20, -29, 36, -44, 43, -34, 16, -12, 24, -32, 37,
-34, 24, -13, 1, -8, 12, -16, 18, -18, 14, -10, 4, 12, -20, 26,
-28, 26, -22, 14, -7, -8, 14, -17, 20, -18, 14, -8, 5, 0, -2,
0, -1, -2, 2, -4, 2, 8, -10, 17, -18, 22, -19, 14, -8, -9,
12, -19, 19, -21, 20, -14, 10, -2, 6, -4, 4, 0, -2, 0, -4,
11, -22, 30, -36, 37, -32, 24, -8, -3, 6, -9, 10, -10, 9, -6,
3, 6, -12, 18, -22, 22, -18, 12, -6, -9, 18, -25, 30, -30, 24,
-16, 8, 8, -18, 24, -27, 26, -22, 14, -8, -4, 12, -14, 16, -14,
11, -5, 3, 0, -2, -1, 1, -2, 4, -4, 2, 7, -12, 20, -25,
26, -25, 18, -8, -6, 14, -22, 27, -28, 26, -18, 8, 0, 0, 0,
0, 2, -2, 2, -1, -1, 2, -3, 4, -6, 6, -6, 3, 3, -6,
10, -12, 14, -13, 10, -6, -6, 10, -16, 20, -20, 19, -13, 7, 8,
-16, 22, -28, 28, -24, 16, -8, -11, 21, -29, 32, -31, 27, -18, 8,
10, -18, 26, -30, 28, -24, 15, -8, -8, 15, -20, 23, -22, 18, -12,
6
};
static const int32_t mdt8x8_mode8[4096] = {
0, 0, 2, 2, 3, 4, 4, 7, 2, 2, 4, 5, 7, 8, 10,
14, 4, 4, 5, 8, 10, 14, 16, 18, 4, 5, 8, 10, 14, 18,
20, 20, 5, 8, 11, 14, 19, 23, 23, 22, 7, 10, 14, 18, 24,
26, 26, 24, 10, 14, 18, 22, 26, 28, 27, 24, 12, 16, 20, 23,
26, 27, 26, 24, 2, 3, 4, 5, 4, 6, 4, -4, 4, 7, 8,
10, 12, 10, 1, -8, 6, 10, 12, 16, 18, 8, -5, -14, 10, 15,
18, 22, 17, 2, -12, -18, 15, 21, 26, 24, 12, -6, -17, -20, 20,
28, 29, 20, 3, -11, -21, -22, 26, 31, 25, 11, -4, -14, -22, -21,
28, 28, 17, 4, -8, -16, -21, -18, 2, 4, 4, 6, 5, -3, -6,
-2, 5, 9, 11, 12, 4, -12, -10, 3, 8, 14, 17, 12, -8, -22,
-8, 10, 13, 22, 20, 1, -24, -24, -1, 15, 20, 28, 14, -16, -30,
-16, 8, 19, 28, 28, 0, -27, -26, -4, 14, 18, 29, 16, -15, -28,
-16, 6, 17, 16, 22, 1, -22, -23, -8, 10, 16, 14, 2, 4, 6,
6, 2, -2, 3, 8, 5, 10, 14, 8, -4, -3, 12, 13, 8, 18,
18, -2, -14, 6, 22, 8, 15, 25, 10, -18, -10, 22, 22, -5, 24,
23, -8, -24, 7, 32, 12, -16, 25, 4, -26, -13, 22, 26, -4, -24,
10, -18, -26, 3, 22, 7, -18, -26, -7, -26, -14, 12, 11, -9, -23,
-23, 3, 8, 12, 5, -8, -2, 4, 0, 9, 20, 18, -6, -15, 4,
5, -9, 19, 30, 6, -24, -6, 14, -6, -16, 32, 24, -18, -24, 14,
8, -22, -10, 34, 2, -30, -2, 22, -12, -24, 5, 18, -16, -16, 16,
6, -25, -8, 22, -1, -16, 5, 16, -12, -20, 10, 30, -5, -3, 14,
6, -12, -4, 20, 27, 7, 8, 6, 8, 7, 8, 14, 18, 12, 9,
6, 9, 11, 18, 28, 28, 12, 5, 2, 8, 18, 24, 28, 28, 6,
0, 1, 16, 25, 18, 18, 22, -2, -4, 8, 24, 16, 2, 9, 15,
-9, -8, 10, 8, -14, -11, 6, 6, -16, -12, -6, -25, -38, -14, 2,
-4, -15, -14, -22, -40, -35, -11, -4, -10, -2, -6, -2, -6, -20, -12,
13, 12, -9, -10, -4, -22, -36, -2, 26, 12, -15, -8, -9, -36, -26,
20, 26, 4, -14, -6, -17, -28, 0, 26, 12, -3, -10, -6, -14, -10,
7, 7, -4, -4, 3, 12, 2, -10, -9, -8, -4, 0, 30, 35, 4,
-17, -12, -3, 2, 0, 46, 33, -8, -14, -1, 4, -2, -6, 2, 13,
6, -2, 0, -4, -13, 1, 14, 24, 4, -6, -2, -18, -18, 14, 30,
22, -10, -10, -10, -26, 0, 30, 34, -1, -25, -8, -15, -18, 22, 26,
12, -24, -18, 0, -16, -4, 23, 7, -14, -16, 10, 6, -10, 4, 5,
-12, -14, 16, 30, 6, -2, 5, -12, -22, 2, 33, 28, 0, -1, -1,
-18, -20, 3, -4, -6, 12, 12, -18, -14, 9, 2, -14, 2, 26, -4,
-34, 0, 21, -10, -14, 24, 20, -32, -22, 21, 16, -16, 2, 26, -7,
-26, 11, 16, -1, -14, 10, 7, -14, 6, 16, -10, -5, -10, 0, 1,
8, 12, -14, -22, 10, -12, -2, 18, 18, -12, -34, -6, 22, -10, 12,
28, 6, -26, -24, 10, 19, 8, 25, 4, -12, 6, 0, 1, 6, 30,
30, -16, -8, 13, -2, 8, 8, 44, 2, -28, 11, 6, 2, 16, -6,
22, -26, -7, 16, -11, 10, 8, -26, -14, -18, 16, -7, -14, 14, -14,
-26, -15, 6, 6, -22, 5, 4, -26, 2, 6, 12, -16, -8, 20, -10,
-10, 30, 10, -1, -20, 6, 11, -12, 10, 33, 0, -1, 14, 26, 6,
-6, 7, -2, -2, 4, 32, 30, -2, 4, 12, -12, -2, 17, 34, 10,
-6, 16, 6, -20, 2, 15, 14, -2, 0, 12, -4, -24, -8, -12, -2,
-4, -8, 3, -8, -23, -34, -24, 2, -19, -21, 6, -2, -17, -36, 6,
8, -28, -6, 25, 8, -4, -4, 32, 4, -10, 26, 32, 13, 8, 22,
12, -5, 7, -2, -18, -8, -12, 38, 6, -7, 6, -20, -22, -12, -29,
26, -6, 0, -12, -32, -7, -13, -30, -1, -7, 4, -16, -8, 9, -12,
-10, -14, 6, 16, 12, 26, 19, 3, 8, -8, 13, 26, 28, 25, 23,
22, 6, -6, 2, 4, -4, -6, 14, 17, -10, -6, -10, -22, -32, -16,
6, -2, -17, 28, 16, -12, 8, 16, 4, 16, 3, 46, 3, -11, 24,
12, 8, 21, -2, 24, -19, 6, 18, -4, 12, 8, -4, -14, -17, 8,
-9, -5, 0, -10, 10, -20, -3, -16, -18, -3, -25, -10, 20, 4, -5,
-28, -2, -12, -31, 6, 6, 20, -8, -6, 18, -6, -2, 12, -22, 17,
0, 19, 26, 16, 24, -2, -32, -3, -6, 0, -2, -12, -16, 10, 31,
-2, -4, -2, -5, -18, -16, 28, 38, 4, -2, -8, -6, -13, -5, 20,
12, 7, 0, -2, 0, -12, -17, -16, -12, 11, 10, 17, 10, -17, -34,
-32, -9, 10, 16, 33, 18, -8, -14, -12, -1, -10, -2, 19, 14, 16,
24, 4, -6, -36, -28, -10, -2, 24, 27, 2, -9, 14, 0, -30, -16,
-1, -11, -10, -4, 18, -19, -40, -14, -6, -12, -6, -4, 4, -24, -17,
3, 0, -2, 8, -2, 13, 4, 8, 15, 12, 10, 16, -10, 36, 18,
4, 14, 5, 11, 11, -29, 28, -13, -13, -4, -23, 0, 0, -30, -2,
-23, 1, -16, -30, 6, 6, -8, -8, 14, 28, -7, 2, 28, 22, 18,
4, 0, -8, -10, -1, 21, 25, 6, 6, 1, -10, -10, 9, 34, 28,
-6, 0, -4, -1, 0, 2, 18, 7, -22, -4, -3, 2, -12, -28, -8,
-6, -20, 6, 4, -4, -30, -32, 4, 12, -7, 15, 12, 6, -12, -5,
28, 28, 6, -7, 12, 31, 8, -6, 8, 12, 11, -37, 8, 32, -10,
-34, -28, -12, 0, -13, -4, 6, 6, 17, 14, -9, 11, -11, -2, 4,
19, 31, -1, -10, 28, -1, -2, -6, 14, 16, -19, -2, 16, 0, -12,
-22, -11, -2, -12, -12, -22, -6, -14, -30, -12, 16, 4, -23, -36, 8,
-2, -14, 14, 26, 16, 0, -18, 24, 4, 4, 6, -7, 22, 32, -4,
16, -4, -2, -30, -33, 20, 22, -8, -3, -21, -28, 6, 25, -20, -7,
16, -14, -30, -20, 25, 22, -20, 4, 1, -3, -12, -6, 22, 3, 6,
4, -24, 32, 0, -16, 4, 0, 17, -6, -18, 38, -18, -18, -2, -1,
4, -2, 20, 6, -17, 4, -2, -2, -2, 10, 38, -5, 8, 7, -6,
12, 1, -3, 14, 8, 13, -24, -10, 18, -16, -32, -18, 14, 1, 11,
18, -27, -26, 12, 24, 14, -3, 20, 19, -30, -26, 8, 21, 2, -8,
7, 12, 13, -14, -22, 2, -9, -16, -9, 15, 34, -10, -24, -8, -8,
-14, -10, 7, 0, 6, 17, -16, 10, -2, -5, -8, -24, 24, 34, -12,
20, -4, 2, 2, -10, 0, 0, 10, 5, -14, 10, 18, 3, -28, -24,
24, 18, -8, -11, 12, 7, 19, 22, -12, 16, -22, 0, 10, -8, 26,
25, -12, -2, -15, 16, -2, -26, -6, 10, 10, 2, -4, 2, 2, -22,
-40, 2, 21, 17, -16, -9, 25, -1, -20, 1, -5, 9, -26, 2, 26,
19, 17, -11, -22, 4, -12, -6, -3, 16, 8, -18, 6, 24, 10, -20,
-14, 6, -18, -3, 38, 22, 12, -16, -12, 16, 10, 6, 20, 23, 5,
-19, -12, 12, 0, -1, 30, -10, 6, 0, -12, 4, -12, -24, 20, -22,
23, 1, -10, 18, -12, -37, 8, -2, 28, -12, -6, 30, 3, -20, 8,
-6, 13, -14, -17, 17, 12, -7, 6, -26, 17, -4, -27, 7, 4, -16,
5, -18, 34, 0, -8, 20, -4, -18, 10, -18, 2, 2, -26, -25, 6,
23, -2, -18, 4, 0, -16, -28, -3, 28, 1, 9, -6, 5, 26, -18,
-24, 4, 0, 28, -8, 22, 39, -2, -18, -21, 0, 14, -6, 11, 4,
21, 7, -18, 10, -17, -12, -22, -22, 22, 10, 6, 13, -13, -2, -16,
-5, -1, -2, 22, -8, 14, 16, 10, 9, -18, -3, 10, -34, -2, -8,
6, 14, -28, -12, 6, -24, 6, -24, 4, 24, -18, 0, -1, -20, 17,
-30, -7, 19, 22, 16, -9, 20, 19, -16, -13, -10, 22, 12, -8, 40,
14, 8, -9, -38, -2, 2, -16, 12, 2, 23, 6, -22, 10, 3, -25,
-17, -15, 19, 12, 4, 17, 4, -8, -10, -18, 2, -8, -10, -14, -2,
20, 8, -12, -22, -16, 12, -1, -18, -2, 22, -2, -20, -22, 2, 6,
2, 0, 16, 23, 6, -14, -18, 15, 22, -9, 0, 24, 32, 10, -23,
-4, -3, -15, 3, -15, 24, 26, -8, -16, -17, 4, 0, -44, -6, 1,
7, 4, 6, 18, -18, -11, -17, -22, 15, 4, 3, 10, -13, 37, 6,
5, 13, -23, -16, 4, 15, -30, 9, 25, 24, 27, 10, 26, 26, -22,
3, 6, 20, 16, 4, 17, 2, 4, -22, -29, -10, -22, -12, -20, -20,
11, -24, -20, -18, -17, -4, -14, 4, 10, 8, 17, 8, 16, 20, 17,
20, 9, 14, 11, -4, 0, 2, -3, -9, -2, -8, -10, -17, -22, -18,
-20, -19, -6, 5, 16, 16, 10, 14, 17, 14, -20, 14, 18, 0, -5,
-39, -16, 19, -6, 22, 0, -3, 1, -18, 2, -2, 1, 0, -7, 6,
10, 24, 12, -28, -20, -10, 9, 14, -2, -2, 4, 2, -10, 2, -2,
8, -8, -28, 2, 32, 20, -12, -26, 3, 24, 10, -16, 4, 14, -15,
-8, -10, 22, 29, -26, -13, -7, 25, 24, -34, -20, 0, -4, 16, -23,
18, 18, -26, -26, 17, 22, -8, -8, 6, -1, 2, -3, -5, 10, -2,
8, -18, -7, 29, 14, -20, -6, 2, -2, 7, 6, -16, 0, 7, 0,
-8, -7, 32, -4, -26, -6, 9, 16, -8, -10, -8, -2, 35, -6, -19,
13, 6, -8, -25, 7, 22, -2, -8, -16, 13, 17, 14, -12, -41, 24,
20, -32, 13, -39, -2, -3, 0, 18, 13, -28, -32, -17, 1, -4, 6,
-2, 4, -3, -8, 28, -10, 2, -2, -22, 7, 34, 12, 16, -12, 4,
-7, 10, 0, -4, 4, -16, 10, -4, 5, 30, -24, -22, -5, -6, 20,
-11, -5, -11, 3, 22, -4, 8, 5, 0, -14, -18, 26, 8, 6, -12,
-11, 18, 7, 14, -14, -46, 26, -17, -38, -22, -16, -4, 10, 17, 16,
1, -18, -14, -8, 0, 2, 4, -2, 32, 30, 14, 5, -4, -11, -18,
-10, 9, 19, 18, 2, 2, 7, -8, 12, -34, -25, -2, -7, 8, 24,
0, 20, 0, -16, 0, -5, -8, 6, -26, 0, 40, 6, 24, -2, -14,
8, -28, -4, -14, -24, 8, -15, 4, 20, 2, 13, -3, -3, -20, 8,
12, -18, 26, -18, -12, 14, -20, 16, 3, -27, 42, -30, -8, 36, -22,
14, 6, -27, 26, -15, -10, 28, -30, 10, 16, -19, 14, 5, -19, 16,
-24, 6, 6, -6, 16, -4, -10, 20, -8, 4, 0, -6, 6, -15, -3,
18, -5, 8, 5, -10, 6, -6, -13, -2, -8, 2, -3, -6, 16, 6,
0, -38, 15, 36, -20, 10, 10, -13, 16, -30, 8, 12, -6, 8, -4,
3, 27, 0, -18, -20, 12, -14, 0, 6, 2, 4, -3, -2, 0, -12,
18, -20, -12, 2, 14, 20, -4, -3, 12, -19, 9, 8, -26, 4, 16,
-14, 0, 28, 3, 10, -30, -16, 15, -10, -6, 24, -25, 20, 26, -12,
2, 14, -11, -26, -11, -2, 5, 2, 10, -8, 4, -28, -2, 9, -2,
8, 6, -14, 16, -14, 1, 16, -24, -2, 2, -1, 0, 30, -22, 11,
-8, -12, -1, 17, -30, 22, -10, -6, 31, -2, -17, 22, -34, -6, 30,
-38, 22, 2, -15, 15, -1, 2, 20, -32, -6, -8, 6, 1, 20, 8,
-8, 27, 6, 0, 11, -23, 2, -19, 24, -4, 27, 6, -4, 12, -8,
-2, 14, -18, 13, -4, 2, 2, 0, -6, -7, -10, -22, 2, 4, -18,
28, -16, -2, 23, -30, 10, 8, -18, 16, -7, -5, 32, -6, -8, 5,
6, -20, 19, -19, -4, 18, -20, -8, 28, -29, 25, 3, -32, 21, -7,
-16, 25, -12, 6, 31, -18, 18, 8, -6, 0, -8, -8, 20, 13, -8,
42, 10, -12, 36, -8, -17, 22, -20, -1, 6, -10, 4, -14, -32, 8,
-14, -22, -1, -2, -19, 15, 16, -12, 20, 10, -4, 14, 0, 17, 14,
-9, 16, -5, 1, 2, -8, -12, -18, 3, -14, -12, 6, -6, -10, 2,
2, 0, 8, 12, -2, 22, -2, 26, 16, -27, 22, -16, -17, 26, -38,
2, 23, -10, -28, -28, -28, 2, -6, -29, -4, 10, 6, 20, 2, -10,
12, 8, -17, 23, 8, 20, 22, 4, 12, 9, 2, -16, -18, -29, -17,
6, -17, -13, 10, -18, 10, 4, -9, 0, -4, 10, -4, 16, 16, 17,
20, 8, 6, 14, -6, -2, -28, -32, -15, -4, -27, -14, 12, -14, 31,
13, -8, 22, -6, 16, -27, 40, -25, -11, 12, -18, 14, -20, -10, 0,
-4, 14, -6, 4, 6, 6, 14, -20, 18, -3, -10, 18, -24, 24, 1,
13, -6, -10, 10, -6, -5, -14, -12, 16, -16, 20, -6, -11, 29, -21,
-4, -5, 10, -3, -4, 8, -14, 22, 4, -8, 14, -24, 15, 13, -29,
26, 10, -17, 7, 12, -16, -2, 24, -32, -12, -4, -2, 2, -34, -51,
4, 24, -2, 10, -10, -1, 23, 20, -9, -21, 6, 4, 7, 6, 16,
19, 2, 1, -4, -6, 4, -5, -30, -32, 14, 26, -4, 6, -14, 0,
15, 4, -11, -16, 4, 8, 1, 8, 16, 20, -10, -4, -5, -5, 8,
-14, -40, -20, 14, 28, 2, 0, -6, 12, 30, 4, -11, -18, -1, 9,
19, -20, -26, 20, 48, 6, 5, -9, -10, 16, 18, -30, -20, -1, -2,
-4, -4, 2, 8, -8, -14, -7, -2, 12, 10, -18, -18, 30, 30, 0,
3, -2, -6, 21, 5, -20, -8, 4, 0, -8, -4, 9, 6, -16, -12,
-5, 0, 12, 4, -31, -3, 36, 28, -8, -6, -6, -1, 24, 0, -36,
0, 7, 34, 43, 14, -18, 0, -4, -18, 14, -22, -20, 8, 8, -2,
3, 4, -11, -19, -26, -9, 6, 5, 2, 12, -8, 34, 31, 2, -18,
2, -12, -6, 17, -11, -6, 16, 0, 0, 1, -4, -4, -22, -24, -7,
12, 1, 4, 8, -10, 42, 34, -15, -7, 4, -14, -2, 12, -33, -6,
10, -4, 4, 7, 0, -6, -8, 9, 44, 20, -14, -14, -15, -39, 10,
-15, -28, -5, 16, -2, 18, 14, -1, 0, -22, -6, 7, 8, 8, 18,
-13, 23, 29, 7, -22, -3, -26, -20, 10, -12, -11, 6, 4, 7, 8,
6, 3, -17, -14, -4, 8, 2, 18, 12, -4, 26, 30, -2, -14, -10,
-18, -24, 5, -19, -19, 12, 1, 6, 7, 12, -24, 30, -23, 28, -16,
22, -8, 10, -4, 12, -30, 23, -22, 10, -7, 4, 0, 1, 2, -18,
25, -28, 22, -18, -10, -4, 33, -34, 34, -20, 16, -5, 12, -22, 14,
-10, -6, 4, -14, 11, 12, -8, -4, 13, -17, 24, -14, 14, -16, 13,
-5, 4, -6, 0, -4, -4, 8, -2, -5, 4, 4, -6, 10, -6, 26,
12, -26, 32, -16, -7, 20, -28, -29, 12, -5, -3, -6, 13, -20, 26,
-5, -2, 2, 0, 0, 10, -10, 11, 26, -6, -6, 14, -10, -6, 17,
-32, -24, 14, -2, -13, 11, -5, -3, 14, -2, -7, 6, 0, 2, 6,
-6, 20, 30, -16, -1, 12, -20, 2, 4, -34, -25, 28, -14, -4, 20,
-17, 10, 13, -8, 10, -8, -8, -6, -5, -1, 5, 4, -2, 1, 24,
-18, 26, -14, 4, 0, 13, -30, 29, -24, 10, -11, 0, -24, 26, -20,
2, 2, -10, 14, -5, 2, -14, 28, -16, 22, -12, 12, -6, 20, -24,
16, -22, 13, -15, -3, 0, -8, 12, -11, 18, -16, 20, -2, 8, -6,
12, -22, 28, -31, 26, -29, 11, -3, 2, 0, -8, -2, -11, -4, -1,
4, -4, 10, -2, 10, 6, 11, -6, 2, -9, 6, -4, -3, -5, -8,
8, 3, -2, -8, 9, -14, 14, -10, 4, 0, 10, -14, 27, -23, 28,
-14, 4, -6, 16, -28, 32, -38, 19, -24, 16, -8, 22, -35, 39, -28,
37, -12, 0, -12, 19, -20, 20, -22, 6, -6, 2, -24, 32, -14, 22,
1, 6, 17, 14, 4, -14, -6, -4, -24, 12, -32, -4, 6, -3, 4,
14, -6, 9, 4, 5, -12, 29, -28, 28, -16, 12, 0, 4, -4, 0,
-20, 18, -34, 24, -36, 6, 2, 5, 2, 7, 7, 4, 14, 5, -6,
6, -6, -14, 16, -30, 16, -22, 8, -16, 20, -8, -2, 16, -18, 18,
-2, 2, -22, -3, -35, -30, -20, -10, 1, 12, 12, 16, 27, 43, 16,
14, 0, -8, -2, -10, -8, -28, -4, -8, -6, -2, -8, -7, -8, -6,
-3, -6, 6, 10, 8, 16, 16, 34, 4, 16, -6, -9, -6, -12, -22,
-38, -10, -12, 2, 4, 10, -6, 38, 10, 28, -8, 5, -15, 14, -16,
-3, -13, -10, 10, 26, 4, 16, 18, -6, 18, -38, 10, -25, -3, -33,
10, -36, 28, 8, 10, 1, 29, -24, 36, -16, 3, -18, -6, 4, 0,
6, 6, -11, 18, -14, 10, -11, -2, -17, 2, -10, 4, 15, -1, 4,
26, -10, 24, 0, -13, -14, -10, -8, -15, 5, -20, -2, 20, 4, 16,
8, 0, 6, 0, 13, -20, 10, -15, -18, -26, 20, 6, -25, 6, 7,
15, 29, 28, -38, 12, 10, 12, -26, -10, -32, 4, 1, 22, -36, 10,
10, 12, 2, -3, -5, -2, 5, 2, -6, 0, 18, 7, -8, -1, 18,
-8, -4, -12, -28, -6, 14, 4, -32, 10, 16, 13, 23, 6, -21, 6,
20, -2, -24, -4, -10, -2, 13, -11, -2, -6, 21, -6, -6, 2, 19,
27, 18, -26, 1, -1, 6, -6, -16, -56, 6, 12, 18, -8, 2, -12,
30, 18, 10, -28, -6, 4, 4, 4, 3, -8, 16, -2, 8, -4, 0,
-12, -12, -34, 2, 6, 6, -4, 4, -5, 40, 25, 5, -24, -3, 6,
4, 4, -32, -26, 4, 20, 6, -8, -5, 2, 10, 20, -13, 0, -8,
8, 9, 36, 26, -14, -20, -6, 8, -8, -13, -46, -28, 11, 30, -4,
-2, 6, 6, 25, 26, -17, -13, 0, 6, -5, 7, 2, 0, 0, 5,
-5, 1, 0, -12, -32, -8, 7, 15, -2, -2, 3, 15, 36, 22, -24,
-16, 4, 2, -6, -10, -32, -20, 26, 14, -6, 1, 4, 2, 16, 7,
-13, -6, 8, -6, 0, 32, 0, -6, -6, 0, -14, 12, 35, -32, -5,
18, -6, 13, 16, -18, -40, 20, 2, -14, 3, -6, -16, 19, 26, -1,
-3, 10, -7, 4, 4, -4, -2, -15, -4, 9, -5, 11, 2, -12, -24,
24, 4, -16, 4, -11, -12, 31, 30, -23, -2, 15, -6, 12, 14, -30,
-26, 14, -3, -4, 0, -6, -10, 20, 9, -1, 1, 10, -20, 30, -28,
20, -18, 8, -16, 15, -8, -4, 7, -5, 13, 0, 8, -16, 18, -14,
17, -17, 6, -10, 8, -4, -4, 8, -14, 16, -14, 11, -20, 22, -18,
11, -6, 2, 7, 2, 9, -18, 19, -16, 17, -18, 5, -20, 23, -18,
14, -10, 0, 13, -8, 16, -27, 32, -35, 34, -26, 12, -2, -20, 10,
6, -22, 18, -9, -16, 22, 28, -14, -2, 25, -24, 15, 20, -32, -24,
13, -4, -15, 16, -9, -16, 26, 8, -4, 8, -4, 4, -4, 10, -9,
12, -10, -1, 8, -12, 4, 7, -20, -24, 21, 1, -17, 24, -14, -10,
34, 24, -23, 8, 5, -13, 6, 16, -34, -10, 9, -1, -6, 12, -10,
-5, 16, 18, -24, 32, -29, 24, -20, 22, -14, -12, 11, -19, 19, -10,
11, -18, 14, -2, 6, -4, 1, -18, 14, 2, -4, 12, -20, 18, -17,
36, -31, 10, -6, -8, 13, -8, 7, -26, 24, -10, 6, 3, 0, -10,
16, -6, 5, -8, 3, 0, -6, 16, -22, 18, -18, 18, -8, -2, 6,
-13, 20, -22, 21, -21, 10, 18, -22, 11, 2, -10, 10, -21, 12, -20,
34, -18, 0, 8, -3, 28, -16, 12, -32, 11, 10, -12, -6, -26, 16,
4, 22, -4, -16, 9, 18, 11, -8, -18, -2, -6, 24, -8, -26, 8,
-5, 22, -10, 10, -24, 4, 30, -24, 16, -18, 13, -10, 16, 0, -25,
26, -18, 8, -10, 8, -11, 4, 9, -14, 10, 9, 4, 1, -8, -8,
26, -16, 9, -17, -5, -7, 24, 2, -30, 14, -7, 18, 11, 4, -33,
0, 36, -12, -1, -14, -17, 3, 38, -7, -30, 4, 11, 4, 24, -14,
-32, 12, 21, 6, -20, 4, -26, 22, 17, -8, -14, -10, 22, -6, 22,
-22, -6, 4, 6, 10, -16, 4, -12, 14, -2, 1, -4, -4, 8, -4,
8, 8, 12, -12, 11, 4, 10, 4, -8, -24, -12, 13, -13, -15, -14,
-8, 10, 40, 8, -13, 10, 28, 12, 8, -14, -44, -8, 20, -14, -32,
-9, -8, 12, 43, 3, -20, 13, 32, 4, 8, -12, -28, -2, 20, -16,
-23, 0, -6, 10, 14, 4, -16, 13, 14, -2, 3, -6, -4, -2, 10,
-10, -2, 0, 12, 1, 8, 8, 20, 6, 6, 10, -19, -7, -9, -18,
-32, -11, -8, -17, 24, 12, 7, 26, 40, 14, 6, 20, -25, -16, 1,
-34, -35, -16, -4, -21, 23, 12, -3, 29, 32, 10, 7, 16, -17, -7,
4, -21, -26, 0, -11, -8, 12, 2, -2, 14, 16, -1, 8, 4, -5,
2, -1, -4, -9, 5, -6, 0, 8, 6, -6, -5, -8, -8, 8, 11,
-17, -8, 12, 10, 16, 14, -16, -20, 25, 8, -18, -16, -22, -18, 20,
28, -28, -7, 22, 16, 24, 20, -23, -32, 28, 6, -22, -12, -23, -16,
22, 30, -22, -5, 18, 8, 18, 12, -16, -22, 14, 4, -14, -2, -13,
-9, 12, 13, -7, 0, 5, 1, 5, 3, -5, -3, 3, 14, 11, -2,
1, -12, -10, -4, -8, -27, -16, -2, 3, 19, 20, 7, 13, 36, 22,
2, -6, -25, -28, -8, -16, -40, -24, 0, 6, 28, 30, 8, 15, 37,
20, 0, -5, -26, -26, -6, -11, -28, -14, 0, 4, 20, 20, 4, 8,
14, 10, -2, 0, -14, -12, -2, -2, -5, -4, 2, -1, 6, 4, 0,
-14, 4, 0, -4, 2, 2, -8, 16, 24, -8, 0, 11, -8, 0, 9,
-27, -32, 11, -2, -12, 12, -2, -10, 36, 36, -10, -1, 16, -16, 4,
10, -42, -36, 10, 4, -18, 20, -10, -4, 38, 28, -8, -4, 18, -20,
12, 0, -28, -18, 6, 4, -14, 14, -10, 2, 16, 6, -3, -2, 8,
-8, 8, -4, -4, -6, 14, -21, 22, -22, 18, -12, 6, 4, -15, 24,
-28, 29, -24, 18, -8, 0, 10, -18, 22, -24, 20, -16, 6, -8, 0,
4, -9, 12, -10, 9, -1, 15, -14, 14, -10, 9, -8, 6, -7, -17,
22, -24, 24, -22, 20, -18, 12, 14, -19, 22, -22, 22, -19, 17, -12,
-6, 10, -13, 14, -14, 13, -12, 7, 8, -10, 8, -2, -4, 7, -9,
6, -16, 20, -18, 10, 4, -10, 16, -12, 19, -24, 20, -10, -6, 15,
-24, 20, -22, 26, -20, 8, 10, -20, 33, -26, 20, -24, 18, -8, -10,
20, -34, 28, -16, 20, -14, 6, 9, -18, 28, -23, 10, -12, 8, -2,
-8, 13, -20, 16, -4, 4, -2, 1, 4, -6, 10, -7, 6, -10, 12,
-13, 12, -10, 7, -4, -9, 14, -18, 20, -16, 14, -10, 5, 12, -19,
24, -26, 21, -18, 15, -8, -14, 22, -27, 30, -24, 22, -19, 10, 12,
-20, 24, -29, 24, -22, 21, -11, -9, 15, -19, 24, -21, 18, -18, 10,
7, -11, 13, -16, 14, -12, 12, -7, -3, 6, -7, 9, -8, 6, -6,
4
};
static const int32_t mdt8x8_mode9[4096] = {
1, 2, 2, 4, 4, 4, 4, 6, 2, 4, 6, 8, 9, 10, 11,
13, 3, 6, 9, 12, 14, 16, 17, 18, 4, 8, 12, 15, 18, 20,
22, 20, 4, 10, 14, 18, 22, 24, 25, 22, 5, 11, 16, 20, 24,
26, 26, 22, 6, 13, 18, 22, 24, 25, 24, 22, 8, 14, 18, 20,
22, 23, 22, 22, 4, 8, 10, 12, 14, 12, 8, 5, 8, 18, 24,
26, 27, 22, 13, 6, 12, 26, 32, 34, 32, 23, 11, 3, 11, 24,
30, 30, 24, 14, 2, -4, 8, 16, 16, 14, 8, -1, -8, -9, 5,
5, 1, -4, -8, -12, -14, -14, 0, -4, -9, -13, -16, -18, -18, -16,
-3, -8, -12, -14, -16, -18, -18, -17, 1, -2, -6, -8, -6, -6, -8,
-11, 2, -3, -8, -8, -9, -14, -21, -22, 3, 0, -1, 0, -6, -20,
-28, -26, 6, 14, 18, 17, 3, -16, -26, -25, 10, 26, 34, 29, 12,
-8, -21, -22, 13, 28, 33, 26, 14, -1, -14, -18, 14, 24, 22, 16,
10, 2, -8, -14, 14, 18, 14, 10, 8, 3, -4, -8, 2, 4, 9,
10, 4, -4, -9, -8, 9, 22, 30, 22, 0, -14, -16, -12, 16, 37,
39, 16, -12, -22, -18, -10, 18, 30, 16, -10, -26, -24, -14, -7, 13,
8, -14, -30, -26, -12, -3, -2, 3, -8, -20, -21, -7, 8, 11, 7,
-3, -7, -6, 2, 12, 18, 18, 15, -2, 0, 6, 12, 16, 16, 18,
17, -2, 4, 6, -5, -18, -16, -6, 2, 6, 20, 13, -20, -40, -24,
0, 6, 14, 32, 15, -26, -34, -8, 10, 8, 16, 22, 4, -11, 6,
22, 13, 2, 7, -4, -12, 11, 40, 32, 3, -7, -6, -22, -14, 20,
34, 12, -12, -10, -11, -19, -6, 10, 6, -10, -16, -10, -8, -6, 0,
-3, -12, -14, -11, -10, 2, 12, 16, 12, 8, 10, 12, 9, 8, 22,
19, 10, 12, 22, 24, 12, 10, 10, -4, -11, 4, 22, 18, 4, 3,
-14, -32, -28, -8, 0, -9, -13, -4, -22, -28, -14, -4, -18, -32, -22,
-4, -6, 6, 19, 8, -17, -26, -14, 2, 15, 31, 32, 14, -4, -10,
-6, 10, 23, 29, 22, 10, 4, 0, -4, -2, -2, 2, 4, 4, -1,
-1, 4, -4, -8, -4, -1, -3, -2, 6, 14, -2, -2, -5, -17, -20,
0, 24, 26, 12, 23, 3, -32, -34, 5, 33, 21, 24, 44, 16, -30,
-30, 5, 21, 2, 22, 39, 18, -12, -14, 0, 0, -12, 13, 17, 10,
3, -1, -8, -16, -16, 5, 2, 2, 6, 0, -12, -16, -14, -12, -28,
-28, -20, -11, -2, 3, 6, -18, -36, -32, -17, 0, 13, 16, 10, -5,
-4, -2, 3, 15, 24, 18, 4, 16, 30, 17, 4, 9, 12, -4, -17,
20, 22, -4, -15, -2, -5, -26, -30, 2, -14, -25, -12, 2, -6, -18,
-18, -12, -25, -13, 10, 14, 6, 4, 5, -10, -9, 8, 20, 18, 15,
17, 14, -7, -9, 4, 16, 9, -8, -16, -10, -19, -22, 12, 39, 20,
-16, -27, -15, -23, -26, 6, 28, 18, -6, -15, -12, -13, -14, -12, -10,
8, 22, 9, -12, 2, -1, -22, -28, 11, 41, 15, -19, 6, 1, -12,
-8, 20, 27, 0, -22, 0, -2, 4, 14, 16, 2, -14, -18, -4, -1,
10, 14, 3, -10, -14, -13, 2, 3, 1, -10, -21, -20, -12, -10, 6,
10, 0, -13, -14, -10, -14, -18, 14, 11, -9, -6, 21, 23, -6, -19,
22, 5, -24, -5, 38, 38, 1, -14, 20, 4, -23, -18, 7, 14, 4,
-2, 13, 16, 0, -24, -33, -15, 9, 13, 10, 24, 17, -13, -33, -17,
12, 19, 12, 18, 13, 0, -8, -2, 9, 14, -2, -1, -1, -7, -16,
-15, 0, 12, -12, -2, 14, 1, -32, -30, 11, 30, -20, -9, 29, 28,
-16, -23, 20, 34, -19, -22, 14, 35, 8, -8, 8, 12, -8, -18, -11,
4, 2, -5, -14, -16, 6, 8, -11, -25, -14, -6, -14, -20, 16, 26,
6, -16, -10, 2, 0, -6, 16, 22, 14, 7, 5, 8, 10, 6, -2,
-11, -16, -12, -8, -10, -18, -19, 2, -6, -14, -6, 3, -8, -25, -21,
10, 13, 8, 12, 16, 4, -2, 6, 3, 10, 17, 14, 0, 4, 27,
30, -20, -21, 5, 2, -26, -14, 22, 27, -30, -32, 2, 6, -20, -28,
-11, 4, -14, -6, 16, 23, 8, -18, -26, -12, 7, 18, 24, 24, 17,
-3, -16, -13, 12, 14, -8, -25, -10, 14, 8, -6, 26, 26, -17, -35,
4, 26, 4, -11, 21, 15, -12, -6, 16, 5, -8, 0, 0, -10, -2,
16, 4, -12, 0, 8, -7, -13, -7, -8, -8, 12, 14, -10, 6, 6,
-20, -34, 6, 42, 10, -31, 14, 14, -13, -17, 20, 30, -8, -31, 9,
8, 2, 8, 14, 2, -15, -17, 1, -10, -14, 4, 13, -6, -6, 16,
20, -8, -30, 17, 26, -26, -10, 38, 42, 4, -34, 18, 20, -38, -11,
38, 36, 8, -23, 5, 6, -22, -11, 12, 11, -4, -9, 2, 6, 5,
-4, -9, -5, -8, 2, 6, 6, 10, 2, -4, -2, 2, 4, 2, -6,
-8, 2, 8, 6, 8, 2, -6, -16, -18, -2, 10, 13, 37, 28, -2,
-17, -16, -7, 0, 17, 26, 8, -4, -10, -18, -10, 3, 4, -22, -24,
10, 18, -4, -3, 10, -3, -20, -14, 16, 20, -2, 0, 17, 14, 24,
6, -4, -2, -14, -9, 14, 22, 20, -6, -6, 2, -20, -20, 4, -4,
-26, -18, 20, 24, -8, -14, 0, -24, -37, -7, 26, 24, 10, 3, 4,
-2, 2, 12, 18, 0, -26, -24, -5, 7, 6, 4, 12, 2, -21, -14,
4, 18, 8, -16, -10, 6, 14, 18, 6, 0, -2, -4, -10, -1, 26,
20, -14, -30, -12, 32, 6, -19, 6, -4, -35, -30, -4, 30, 1, -16,
4, -9, -30, -5, 0, -10, -16, 8, 24, 10, -8, 4, -10, -31, -16,
17, 28, 20, 9, -2, 0, 10, 22, 26, 12, -16, -24, -10, -10, 1,
5, 16, 10, -24, -26, -8, -4, -8, -22, -8, 3, 0, 10, 13, 9,
-9, -3, 4, -4, 16, 40, 26, 2, -16, 22, 24, -15, -10, 18, 18,
-8, -24, 0, 10, -12, -32, -20, 11, 6, -16, -26, -6, 10, -6, -15,
14, 21, 0, -15, 2, 27, 26, 12, -19, -14, 16, 10, -20, -9, 16,
12, -30, -18, 24, 8, -22, -3, 14, 8, -4, 0, -2, -4, 10, 3,
-12, 2, 30, 10, -26, 2, 26, -13, -18, 11, 24, -2, -12, 14, -3,
-20, 10, 15, -8, -8, 16, 6, -22, 10, 24, -8, -20, -5, 16, -6,
-2, 32, 4, -35, -12, -6, -3, -4, 16, 20, -16, -36, 10, 32, 22,
2, 14, 31, 16, 0, -4, 7, 4, -13, 0, 12, 0, -4, -15, -18,
-12, -6, -10, -21, -14, 3, 2, 8, 5, 8, 4, -4, 3, 4, 3,
16, 16, 0, 4, 26, 11, -19, -29, -16, 14, -14, -25, 10, 0, -32,
-40, -22, 22, -2, -33, -10, 4, -2, -16, 8, 31, 18, -3, -1, 18,
26, 37, 18, -24, 12, 30, -12, -5, 22, 41, 0, -32, 16, 8, -24,
2, 15, 3, -15, 2, -1, -24, 5, 10, -21, -10, -2, 16, -2, -3,
21, 4, -21, 11, 4, -10, 8, 13, -8, 2, 11, 10, -8, -17, 0,
-13, -13, 14, 6, -10, -8, 10, -7, -16, 20, 11, -27, -12, 6, 22,
4, 10, 26, -6, -32, -12, -6, 28, 35, 10, 2, 22, 32, -11, -10,
2, 4, -4, -10, 7, 21, 4, 2, -24, -26, 0, -5, -22, -18, 0,
13, 11, 0, 9, 12, -12, -18, -14, 0, 26, 8, -4, 12, 10, 12,
-4, -12, -23, -23, -6, -6, -4, 17, 20, 4, -34, -12, 14, -15, -23,
6, 30, 24, 10, 26, 25, -4, -10, 2, -15, -32, -30, -5, 24, 32,
21, 11, -2, 6, -4, -4, 10, -2, -8, 7, 10, 34, 17, -9, -12,
-22, -24, 0, -11, -6, -12, -8, 16, 13, -2, 8, -19, -10, -12, -6,
22, 16, 1, 10, 3, 31, 19, -10, -15, -18, -16, -6, 3, 8, 7,
1, -7, -10, -10, -10, -21, -38, -16, 17, 28, 24, 12, 3, 10, 6,
3, 4, -6, -2, -3, -16, 14, -10, -4, 8, -11, -2, 4, -6, -1,
-4, 0, -1, 5, 4, -2, 24, -26, 26, 9, -28, 27, 4, -38, 32,
-42, 29, 8, -38, 24, 2, -43, 22, -26, 3, 3, -13, 4, 9, -2,
7, 4, -2, 3, 4, -7, 10, 14, -8, 14, 8, 1, -2, -6, 0,
-6, -16, -11, -22, 0, 34, 26, -12, -31, -25, 1, -6, 2, 3, -2,
6, 2, -14, 12, 9, -4, -23, -22, 15, 30, 8, -2, -12, -4, 20,
8, -15, -8, 3, -6, -6, 2, 24, 12, -14, -15, -10, 7, 13, -2,
-20, -15, 18, 26, -4, -1, -6, 0, 4, -8, -2, 16, 8, -16, -20,
15, 44, 7, -39, -22, 6, -32, 6, 12, -14, 14, -2, -24, 14, -30,
12, 2, -19, 18, 0, -17, 13, 9, 0, -8, 6, -4, 1, 15, -13,
22, -10, -1, 20, -16, -1, 14, -16, -7, 8, 5, -11, 12, -2, -20,
20, -32, 22, 2, -34, 27, 6, -23, 34, -27, 10, 10, -16, 2, 12,
0, -3, -8, 0, 18, 2, -20, 8, 7, -31, -11, -18, 6, 16, -22,
-30, 8, 24, 4, 4, -2, 2, 7, -7, -10, 12, -2, 20, -4, -22,
28, 22, -26, -4, -30, 0, 18, -10, -9, -2, -4, 14, -13, -6, 9,
8, -14, -14, 8, 12, 20, 10, -14, 1, 15, 10, -8, -20, -6, 5,
14, -4, -10, 6, 2, -14, -38, -7, 38, -1, -40, -6, 27, 16, 16,
18, -11, -10, 20, -6, -32, 9, -22, 22, 4, -28, 24, -2, -35, 36,
-50, 17, 15, -32, 19, 8, -20, 32, -18, 10, 2, -10, 12, 2, -14,
-5, 14, 0, -6, 9, -4, -6, -4, -16, 2, -6, 3, 4, -8, 2,
11, 9, -8, 2, 2, -4, 9, 4, -2, 16, 4, 6, -9, -4, 14,
-6, -24, -3, 34, -2, -26, 16, 2, -28, 2, 25, 15, -8, -2, 8,
-8, 3, 12, -5, -12, -6, 17, -2, -6, 19, -1, -26, 8, 0, -11,
6, 4, -12, -4, 10, 12, 6, -12, 0, 4, -7, 1, 24, -28, 11,
21, -20, 10, 22, -26, -6, -31, 14, 12, -16, 19, 2, -34, 8, 6,
4, -22, -2, 12, -24, -2, 42, 6, -9, 22, 30, -1, 22, 12, -31,
18, -18, -14, -2, -18, -2, 4, -7, 6, 2, -8, -8, 2, -10, -2,
23, -9, 6, 21, 12, 8, 8, 0, -8, 6, -12, -6, -4, -12, 6,
-2, -20, 10, 4, -7, -10, 4, -3, -14, 26, -26, 26, 29, -12, 24,
10, -24, 34, -42, 4, 4, -32, 6, 16, -22, -8, -14, -23, -24, -24,
-20, -8, -12, -26, 14, 18, 20, 24, 8, 8, 18, 6, 6, 2, -1,
5, 2, -4, 6, 13, -19, -17, -21, -24, -10, -8, -15, -12, 6, 20,
22, 16, 8, 10, 6, 0, 7, 4, 4, 3, 2, 2, 0, 14, -26,
-19, -22, -40, -11, -8, -28, 2, -10, 32, 30, 2, 22, 18, -8, 5,
14, 18, -17, -31, 8, 37, 23, -2, -12, -6, 10, 22, -12, -32, -9,
-8, -6, 6, -5, 6, 4, -7, 7, -7, 4, 21, -24, -20, 17, 20,
26, -2, -16, 0, 8, 19, -8, -35, -6, -3, -3, 2, -1, 0, 4,
-2, -4, -2, 6, 9, -17, -24, 20, 31, 8, 11, -21, -3, 24, 14,
-16, -32, -14, 10, 6, 28, 24, -13, -32, -21, -2, 0, -10, -16, -16,
14, 26, 7, 7, -4, -8, 10, -12, 4, 8, -8, 14, -6, -8, 42,
2, -11, -18, -30, 14, -10, -25, -2, -25, 16, 32, -6, 12, -8, -10,
7, -12, 3, 10, -5, 8, 0, 8, 29, 10, -18, -24, -17, -4, 6,
-16, -20, -10, 16, 33, 9, -10, 4, -54, 13, 10, -15, 26, 0, -16,
26, -10, 13, -10, -10, -2, -6, 0, -2, 22, -8, -4, 15, -12, 4,
11, -22, -15, 2, 7, 0, 12, 0, -4, 8, -19, 18, -10, -14, 6,
-12, 2, 8, 16, -6, -6, 14, -13, 2, 12, -20, 6, -8, 14, 6,
3, 12, -16, 4, -16, 20, 0, -38, 18, 0, -35, 42, -2, 4, 13,
-21, -20, 9, 2, 16, 17, -28, 18, 4, 2, 19, -40, 14, 34, -38,
24, -2, -16, 30, -32, 17, 24, -20, 21, -14, -26, 24, -7, 14, 2,
-12, 4, 10, 9, 0, -16, -4, -2, -2, 1, 2, 2, 0, -2, -2,
4, 4, 5, -16, -14, 8, 4, 12, -2, -12, 0, 14, 17, -6, -24,
8, 18, -8, 0, 4, 14, 11, -28, -4, 12, -24, 24, -12, -24, 20,
-11, 24, 16, -15, 12, -3, -5, 12, -12, 10, 1, 10, -18, 10, 18,
-17, 2, -24, -34, 29, -17, 0, 2, -23, 46, -15, -20, 20, -14, 4,
12, -16, 16, -3, 10, -2, -8, 7, 8, -8, -19, -8, 2, -4, 14,
-8, -19, 18, 16, 4, -16, -31, 4, 16, -18, -1, 36, 20, 24, 17,
2, -4, 7, 0, -23, -14, 0, 1, -2, -5, 4, -6, -7, 0, -28,
-8, -8, 9, -2, -6, 42, 6, 3, 38, -19, 4, 16, -22, 2, -26,
-16, 10, -9, -2, 6, -15, 2, -5, -26, -16, 2, 2, 0, 8, 30,
21, 30, 16, -12, -2, 8, -10, -16, -17, 10, -24, 20, -12, -13, 22,
-25, 18, 26, -20, 19, -4, -4, 14, -22, 16, 0, 4, -7, 0, 4,
-12, 18, -16, -28, 20, -14, 4, 8, -19, 24, -19, 4, -4, 3, -2,
1, 4, -12, 14, 33, -34, 23, -8, -17, 29, -28, 19, 20, -20, 20,
2, -14, 16, -9, -2, 3, -2, -10, 6, 1, -8, 8, -4, -28, 4,
26, 0, -6, 26, 4, -43, 12, 1, -25, -2, -1, -22, 2, 24, 0,
4, 6, 5, 6, 5, 0, 10, -17, -2, 16, -5, -7, 19, -10, -32,
16, 0, -24, 6, -2, -20, 9, 21, -6, 8, 4, 7, 8, 1, 8,
4, -21, -4, 10, -8, -5, 15, -13, -36, 36, -10, -20, 20, -3, -22,
13, 30, 10, 18, 16, 20, 14, 8, 11, 21, -13, -27, -29, -22, -23,
-14, -18, -18, 10, 26, 24, 21, 16, 18, 10, 4, -6, -7, -13, -3,
-5, -10, 0, 8, -6, -10, -11, -10, -12, -2, -10, -12, 16, 22, 28,
24, 16, 22, 8, 10, -12, -30, -28, -22, -21, -18, -11, 4, 6, 15,
14, 10, 11, 12, 3, -10, 9, -16, 20, -12, -3, 22, -24, 18, 14,
-14, 12, -6, -6, 6, -12, 5, -1, 4, -6, 8, 1, -8, 14, -10,
-10, 4, -1, -4, 1, 5, -8, 4, 11, -10, 7, -6, -3, 7, -12,
13, 0, 7, -9, 8, 6, -19, 25, -16, -40, 38, -26, 2, 22, -32,
34, -27, -29, 33, -20, 0, 17, -21, 16, 0, -48, 32, -4, -20, 22,
-14, -11, 12, 19, -8, -7, 14, -8, 8, 16, -12, 14, -14, 12, -3,
-10, 5, -14, 4, -24, 15, 1, -14, 18, -4, -10, 16, 9, -2, -10,
18, -11, 2, 18, -18, 8, -8, 6, 0, -12, 7, -14, 2, -16, 14,
1, -12, 20, -6, -4, 24, 6, -2, -16, 22, -12, -14, 41, -42, -8,
9, -24, 23, 7, -15, 32, -28, -9, 16, 4, -18, -4, -2, -11, 12,
8, -24, 10, 4, 2, 14, -14, 15, 10, 5, -8, 8, -7, -6, 16,
-22, -18, 19, -6, -6, 3, -5, -3, 6, 8, -24, 8, 6, 0, 15,
-12, 16, 21, 8, -2, -4, -8, -10, 12, -20, -46, 33, -20, 1, 30,
-30, 26, -8, -10, -27, -12, 4, 31, 16, -6, 10, 16, 30, 20, -14,
-34, -22, 1, -11, -14, -20, -21, 15, 28, 12, 8, -2, 0, 8, 6,
-7, -8, -4, -4, 9, 14, 7, 7, -5, -14, -6, -2, -5, -18, -24,
-16, 17, 30, 14, 6, -2, 10, 30, 16, -21, -31, -16, -6, 6, 4,
-32, -4, 17, 12, 16, -6, -3, -10, -16, 20, 26, -4, -19, -18, 5,
20, 12, -24, -32, 2, 32, 12, 0, -20, -8, 18, 30, -4, -27, -10,
0, 6, 6, -10, -10, 3, 10, 2, -1, 8, 2, -8, -8, 0, 11,
4, 2, -18, -8, 23, 26, -6, -27, -12, 0, 24, 8, -24, -32, 12,
30, 10, 0, -15, -12, 26, 15, -9, -14, -12, 6, -19, -6, 6, -3,
-18, 4, 26, 20, 25, 12, -10, 8, 22, -6, -37, -24, -22, -11, 9,
-6, -20, 8, 30, 18, 6, 8, -8, 6, 5, 0, -12, -4, 8, 4,
-6, 8, 0, -2, -18, -12, -22, -8, 8, -7, -18, 16, 35, 21, 21,
12, -12, 9, 20, -18, -37, -20, -12, -6, 12, -8, -17, 14, 18, 10,
-4, 6, -12, 6, -9, 8, -10, 2, -4, 10, -10, 24, -24, 21, -10,
10, -14, 21, -32, 28, -28, 23, -23, 6, -14, 27, -32, 39, -34, 27,
-13, 6, -10, 14, -21, 25, -26, 22, -14, 7, -4, 10, -13, 11, -11,
8, -12, 2, -3, 4, -6, 11, -8, 5, 4, 2, 0, 2, -4, 2,
-3, 6, -8, 0, 22, -4, -10, 1, 7, -20, 4, 30, -28, 2, 23,
-13, 4, 19, -2, -41, 24, -5, -17, 6, 1, -25, 8, 30, -6, 2,
10, -3, 0, 14, -8, -8, -16, 6, -4, 2, -6, 8, -5, -14, 21,
2, -21, 20, -8, -14, 8, 34, -23, 4, 16, -11, -4, 30, -20, -30,
14, -4, -14, 14, -5, -17, 12, 16, 15, -22, 28, -25, 19, -12, 11,
-12, 12, -20, 24, -34, 38, -37, 25, -5, 6, -10, 16, -14, 12, -8,
8, -12, -2, 8, -14, 18, -22, 23, -20, 13, -16, 22, -30, 28, -26,
18, -10, 9, -6, 8, -4, 8, -8, 8, -6, -8, 10, -11, 6, -6,
5, -4, 1, 11, -4, 2, 4, -6, 5, -2, 4, -10, -14, 14, -6,
-10, 26, -31, 24, -8, 16, -22, 20, -12, 0, 6, 1, -5, -1, 4,
-8, 8, -6, 4, -12, 13, -21, 28, -25, 19, -12, 8, 4, -5, 9,
-19, 14, -9, 3, 0, -4, -1, 19, -20, 28, -35, 35, -27, 17, 2,
-2, -8, 14, -14, 18, -19, 20, -23, 14, -14, 10, -8, -4, 13, -19,
20, -26, 28, -22, 8, 6, -11, 10, -7, 18, -20, 15, -4, -6, 8,
-3, 4, 6, -12, 20, -26, 25, -18, 4, -4, -6, 6, -2, -4, 14,
-20, 27, -14, 8, -6, -2, 10, -24, 26, -24, 12, -12, 20, -20, 22,
-15, 15, -18, 13, -16, 22, -27, 24, -16, 2, 14, -17, 8, -10, 10,
-4, -6, 17, -28, 21, 4, -20, 17, -22, 19, -22, 16, -12, 14, 2,
13, -7, 16, -5, 6, 4, -15, -6, -18, 6, -22, 9, -14, -1, 6,
18, 7, 11, 8, 5, 6, 4, -4, -24, 2, -28, 11, -23, 8, -8,
10, 10, 12, 12, 0, 12, -1, 0, -19, 14, -38, 27, -34, 22, -21,
14, -12, 26, -24, 30, -24, 20, -11, 2, 16, 0, -1, 14, -2, -8,
27, -20, -26, -1, -2, -25, 8, -3, -27, 20, 30, 4, 8, 28, -10,
14, 20, -10, -25, -6, -20, -12, -4, -14, -10, -6, 8, 18, 18, 2,
16, 10, 0, 20, 10, -30, -12, 8, -26, 0, 5, -26, -20, 36, -3,
-2, 17, 2, -10, 24, 12, -20, 2, 11, -23, 15, -4, -8, -2, 5,
19, -14, 19, -2, 0, 14, 8, -24, -13, -2, -12, -12, 8, -24, -4,
32, 17, 9, 14, 14, -2, 21, -8, -29, -26, -12, -18, -9, -12, -8,
21, 20, 28, 14, 14, 8, 20, -8, -24, -12, -19, -22, 0, -14, -18,
14, 20, 11, 3, 31, -18, 26, 4, -10, -22, 16, -21, 4, -4, -2,
-8, 10, -6, -2, -4, -10, 4, 8, 16, 5, 10, 5, 9, 13, -4,
-20, -25, -9, -14, -7, -14, -14, 2, 34, 30, 13, 13, 11, 13, 18,
-5, -41, -33, -14, -10, -14, -11, -20, 8, 40, 33, 11, 8, 12, 10,
16, -8, -32, -28, -7, -4, -8, -6, -13, 6, 22, 20, 4, 6, -3,
10, -2, 4, -14, -4, -2, -11, 12, -24, 30, -26, 27, -18, 10, -2,
9, 1, -8, 1, -10, 4, -4, 7, -25, 18, -14, 26, -12, 16, -7,
4, 14, -5, 2, -20, 6, -15, 6, -15, 1, -12, 16, 0, 10, 4,
1, 16, -9, 21, -26, 16, -24, 10, -10, -2, -6, 0, 4, -1, 8,
-4, 7, -14, 28, -34, 36, -36, 27, -20, 6, 3, 8, 2, -8, -18,
6, -5, 0, -10, -10, -9, 22, 24, -4, 3, 2, 12, 16, 13, -36,
-28, 0, 2, -6, -10, -24, -10, 40, 33, 0, -4, 8, 6, 31, 2,
-34, -36, 3, 4, -7, -3, -32, 4, 25, 33, -7, -3, 5, 6, 18,
2, -23, -16, 0, 8, -6, -6, -4, -7, 19, -2, 6, -10, 6, -18,
11, -6, 14, -10, -8, 10, 2, 25, -10, 0, -14, 13, 16, -20, -4,
-28, 6, 12, 11, -16, -22, 26, 9, 26, 2, -25, -6, 20, 20, -22,
-16, -19, -10, 33, 3, -24, -14, 14, 22, 12, 13, -34, 0, 24, 5,
-4, -25, -8, -10, 24, 3, -23, 4, -4, 22, 5, 2, -10, -3, 16,
-8, 7, -12, -14, 26, -24, 7, 2, -6, 8, -11, 14, -33, 31, -3,
-9, 11, -12, 18, -4, 29, -26, -8, 18, -14, 10, -20, -9, -16, 16,
16, -20, 7, 1, 13, 21, 2, -4, -22, 16, 4, -16, 0, -26, 7,
0, 17, -4, -19, 32, -12, 23, -11, 4, -12, -2, 22, -33, 17, -13,
10, -6, 8, 1, -14, 20, -11, 6, 4, -9, 0, -2, -3, -1, 16,
-15, -3, 14, 2, 2, 10, -2, -28, 23, 2, -18, -4, 0, -18, 9,
36, -26, -2, 24, 2, 2, 24, -14, -40, 28, 0, -25, 0, -2, -26,
18, 37, -23, -1, 26, -6, 5, 22, -18, -28, 16, 1, -20, 8, -6,
-14, 14, 18, -10, 2, 8, -4, 2, 9, -9, -6, 10, -14, 18, -22,
25, -27, 24, -12, -8, 10, -12, 17, -22, 26, -27, 16, 0, 4, -8,
8, -4, -7, 14, -8, 4, -10, 21, -26, 26, -14, 2, -2, 2, 4,
-16, 25, -29, 19, -9, 8, -12, 11, -4, -5, 12, -6, 2, -4, 18,
-24, 22, -18, 11, -12, 9, -3, -14, 22, -26, 24, -22, 19, -14, 6,
-4, -2, 11, -14, 12, -4, -7, 10, 14, -4, -10, 18, -16, 2, 16,
-19, -23, 13, 7, -18, 18, 0, -23, 29, 30, -20, -2, 14, -15, -3,
28, -36, -29, 20, 0, -13, 16, 2, -26, 34, 22, -15, -3, 15, -18,
4, 18, -26, -12, 6, 8, -17, 20, -10, -7, 14, 4, -2, -6, 13,
-16, 11, -2, -4, -8, 10, -7, 3, 2, -5, 6, -5, 16, -18, 14,
-6, -4, 10, -12, 10, -23, 26, -19, 8, 7, -15, 18, -16, 26, -30,
22, -8, -9, 18, -23, 19, -25, 29, -20, 6, 12, -22, 26, -22, 20,
-24, 14, -2, -14, 22, -27, 20, -13, 15, -8, -1, 12, -18, 22, -16,
6, -7, 4, 2, -8, 12, -13, 8, -6, 10, -15, 18, -19, 16, -12,
6, 8, -16, 23, -28, 30, -26, 19, -10, -6, 12, -18, 24, -27, 24,
-18, 10, -2, -2, 6, -12, 14, -14, 10, -6, 8, -10, 10, -6, 4,
-1, 1, 0, -14, 19, -22, 22, -20, 16, -12, 6, 13, -20, 24, -26,
26, -21, 16, -9, -8, 13, -17, 19, -20, 16, -13, 7, 4, -5, 8,
-8, 8, -6, 5, -2, -7, 12, -15, 16, -16, 14, -10, 4, 10, -16,
22, -24, 22, -20, 14, -7, -12, 18, -25, 28, -26, 23, -16, 8, 12,
-20, 26, -28, 27, -24, 18, -10, -10, 17, -23, 25, -24, 22, -17, 9,
7, -13, 17, -18, 18, -16, 14, -8, -4, 6, -10, 10, -10, 10, -8,
4
};
static const int32_t mdt8x8_mode10[4096] = {
2, 2, 2, 2, 2, 3, 4, 3, 4, 6, 6, 8, 8, 8, 9,
9, 6, 8, 10, 14, 14, 14, 15, 14, 6, 9, 14, 17, 19, 20,
21, 19, 7, 11, 16, 20, 22, 25, 25, 22, 8, 13, 17, 21, 24,
26, 24, 21, 8, 14, 18, 22, 24, 24, 22, 20, 10, 16, 18, 20,
22, 24, 22, 20, 2, 4, 6, 6, 8, 7, 5, 0, 6, 14, 19,
24, 25, 19, 10, -1, 12, 20, 29, 36, 34, 23, 6, -7, 16, 24,
27, 30, 26, 12, -6, -14, 16, 20, 18, 16, 8, -6, -18, -19, 10,
9, 8, 4, -5, -17, -22, -20, 3, 2, 2, -4, -12, -18, -20, -20,
0, 0, -4, -9, -14, -15, -18, -20, 3, 3, 1, 0, -4, -7, -11,
-12, 8, 8, 2, -5, -15, -24, -31, -25, 9, 10, 2, -7, -20, -35,
-42, -30, 12, 12, 8, 3, -10, -28, -34, -24, 14, 18, 19, 15, 4,
-9, -16, -14, 12, 20, 24, 19, 10, 2, -4, -6, 10, 21, 22, 17,
12, 4, -1, -1, 12, 20, 18, 14, 12, 6, 1, 2, 2, 4, 7,
8, 1, -6, -8, -3, 12, 20, 27, 18, -3, -14, -6, 8, 20, 36,
36, 11, -18, -20, 4, 20, 26, 34, 14, -18, -32, -15, 12, 17, 24,
17, -16, -38, -28, 0, 14, 6, 12, -4, -23, -25, -9, 10, 8, 1,
-4, -13, -12, -2, 7, 8, 2, 3, -10, -8, 0, 8, 8, 3, 2,
6, 1, 4, 2, -8, -10, -6, 4, 9, 9, 14, -2, -28, -28, -4,
18, 19, 18, 22, -10, -42, -28, 14, 31, 15, 20, 16, -14, -28, -2,
28, 19, -3, 14, 4, -9, 2, 24, 18, -10, -18, 5, 0, 4, 22,
22, -5, -26, -18, 0, 2, 14, 20, 3, -17, -20, -12, 0, 6, 13,
8, -8, -14, -12, -10, 4, 8, 4, 4, 12, 16, 10, 0, 12, 16,
6, 6, 29, 37, 16, -11, 18, 10, -10, -8, 22, 33, -3, -28, 12,
-4, -32, -34, -4, 4, -28, -31, 4, -8, -30, -32, -14, -14, -23, -9,
0, -3, -4, 2, 0, -8, 3, 16, -2, 1, 14, 20, 9, 4, 18,
22, -1, 3, 10, 11, 5, 10, 16, 14, 4, 0, -5, -4, 2, 6,
6, 6, 9, -2, -12, -4, 7, 13, 18, 19, 9, -8, -15, -5, -1,
4, 22, 28, 3, -6, -2, -4, -24, -26, 10, 26, 0, 13, 22, -1,
-40, -42, 0, 20, 8, 31, 34, 2, -32, -27, -2, 8, 16, 32, 24,
0, -14, -9, -2, -1, 16, 20, 8, 0, -3, -4, -4, -4, 6, 4,
-6, -16, -11, 1, 2, -6, 21, 12, -17, -34, -17, 6, 0, -16, 30,
22, -14, -23, -1, 8, -8, -16, 30, 20, 4, 16, 22, 2, -8, 6,
21, 6, 7, 26, 15, -10, 6, 29, 8, -6, -10, -8, -18, -12, 17,
29, -2, -10, -18, -30, -30, -4, 20, 19, -4, -8, -15, -22, -17, 2,
14, 12, 0, 10, 12, 10, 7, 1, 4, 9, 8, 26, 24, 14, 2,
-4, 10, 18, 9, 20, 16, 6, -14, -18, 4, 18, -6, -14, -1, 12,
-8, -32, -14, 14, -22, -40, -6, 36, 16, -32, -19, 18, -21, -34, 1,
38, 18, -18, -5, 18, -14, -16, 4, 16, 3, -5, 4, 10, -8, -6,
0, -4, -8, -2, 0, 2, -1, -5, -5, 6, 17, 22, 8, -8, -2,
-12, -16, -5, 22, 36, 7, -22, 2, -3, -12, -22, -10, 10, 1, -18,
2, 18, 18, -14, -35, -16, 8, 4, 3, 18, 32, 17, -12, -8, 16,
13, -1, -7, 6, 26, 25, 14, 4, -6, -10, -28, -22, 12, 28, 14,
-12, -20, -14, -28, -24, 0, 10, 0, -13, -15, -8, -12, -12, -18, -14,
10, 24, 16, -23, -18, -4, -20, -26, 14, 43, 20, -26, -4, 24, 4,
-21, 2, 22, 3, -10, 12, 28, 15, -8, -18, -24, -20, 12, 10, 3,
4, 1, -18, -35, -24, 18, -1, -18, -9, 5, 2, -6, -5, 9, -4,
-14, -6, 6, 16, 18, 13, 1, 0, 1, 4, 9, 17, 20, 15, 2,
15, 20, 4, -6, -2, 0, -6, -2, 26, 34, -3, -18, 6, 4, -17,
-20, 18, 30, -18, -24, 20, 8, -28, -37, -2, 26, -15, -18, 26, 12,
-24, -38, 0, 29, -2, -14, 12, 14, -3, -17, 11, 21, -2, -14, -6,
10, 14, 4, 10, 0, -10, -12, -12, 4, 16, 5, 1, -11, -14, -6,
-2, 4, 8, -13, -16, -4, 4, -2, -13, -10, 0, -32, -32, 0, 14,
2, -16, -14, -4, -30, -16, 9, 6, -2, 4, 0, -9, 2, 22, 7,
-16, -3, 16, 8, 2, 24, 27, -2, -8, 6, -8, -4, 24, 6, -4,
6, 23, 2, -38, -9, 32, -20, -20, 16, 28, -14, -34, 4, 24, -21,
-12, 12, 6, -18, -10, 10, 12, 1, -6, -16, -22, -19, -5, -16, -26,
2, -1, -12, -26, -12, 10, -15, -34, 2, 11, 15, 5, 9, 23, 9,
-10, 2, 0, 20, 25, 2, 6, 24, 10, -11, -28, -8, 4, -22, -20,
4, 2, -18, -28, -18, -10, -16, -22, -18, -6, -10, -3, 7, 16, 16,
-4, -16, -6, -1, 12, 28, 38, 30, 12, -1, -2, 6, -7, -17, -4,
0, -19, -9, 16, 24, -6, -36, -1, 12, -22, -4, 32, 30, 8, -19,
6, 17, -8, 2, 16, -2, 17, 24, 1, -4, 8, -6, -24, -34, 6,
36, -8, -19, 12, -8, -35, -32, -10, 14, 0, -10, 2, 4, -6, -18,
-18, 1, 13, 0, -6, 12, 19, -14, -17, 0, 8, -2, -2, 13, 18,
-11, -5, 25, 18, -29, -26, 10, 16, -18, -8, 28, 13, -32, -18, 12,
10, 2, -3, -12, -8, 12, 16, -3, -8, 20, 0, -24, -4, 22, 9,
-6, -10, 14, -2, 10, 14, -21, -20, 10, -2, -6, -7, 26, 10, -32,
-6, 16, -12, -16, -13, 6, 0, 6, 26, 3, -22, -15, -20, -13, 5,
30, 26, -2, -14, -22, -22, -6, 4, 14, 12, -10, -12, -36, -18, 2,
-2, 18, 18, -13, -3, -12, 24, 10, -18, 2, 1, -7, 19, 18, 30,
0, -16, -6, -6, 0, 8, 4, -18, -2, 10, 0, 6, 2, -22, -27,
-30, 16, 11, -12, 15, 8, -22, -18, 10, 24, -20, -26, 16, 14, -6,
14, 34, 8, -28, -14, 11, 12, 4, 2, 4, 0, -17, -14, 18, 30,
12, -2, 6, 2, -20, -14, 20, 23, 6, -9, 1, 6, 6, 8, -12,
-22, -5, -5, 0, 2, 13, 6, -20, -17, -4, 5, -2, -6, -8, -12,
17, 38, 0, -2, -8, 5, -2, -10, 26, 38, 0, -19, -10, 28, 20,
-13, -16, -4, -4, -20, -1, 34, 19, -25, -38, -22, -11, 5, -15, -10,
6, -5, -2, 4, -17, 20, -27, -3, 33, -14, -4, 24, -24, 34, -28,
3, 32, -32, -6, 35, -28, 30, -22, -3, 12, -28, 0, 26, -26, 12,
-18, -8, 10, -2, 8, 12, -15, -3, -8, 5, 12, 2, 6, 10, -4,
-4, 4, 10, -3, -14, -1, 10, 4, 2, 5, 1, -12, -14, -7, 4,
6, 16, -18, -31, 2, 4, -16, 7, 27, 20, -18, -22, 14, 0, -18,
9, 20, 1, 12, 18, 0, -2, 8, -8, -21, -15, 20, 19, -20, -1,
17, -14, -17, -11, -10, -14, -6, 2, -6, 10, 28, 4, -18, -18, 12,
2, -9, 19, 26, 14, 10, 4, -2, 2, 14, -5, -22, 16, 27, 6,
-18, 4, 16, -26, -42, -24, -17, 12, 12, -6, -11, 2, 18, -24, 0,
5, 2, 11, -4, -10, 20, 2, 16, -16, -12, 20, 6, -14, -6, 9,
-5, -1, 8, -16, 2, 16, -24, 14, -30, 10, 26, -30, -4, 28, -15,
32, -15, -20, 6, 8, -2, 2, 8, 38, 6, -26, -1, 17, -17, -12,
22, 24, 9, 2, 10, -11, -28, -1, 18, -18, 6, 14, 3, 18, 26,
27, 33, -20, 1, 4, -4, 8, 2, 6, 19, 12, -7, -12, 2, -14,
-22, -12, -20, 32, -2, 4, 15, -10, 6, 10, -15, 0, 4, 12, -4,
7, 18, 4, 20, -40, 4, -2, -32, 4, -13, -32, 25, -28, 12, 0,
-20, 6, -10, -25, 4, 4, 16, 12, 8, 19, 21, 4, -8, -22, -26,
4, -12, -31, 3, 8, -22, -14, -23, 12, 2, -25, 8, 14, -18, 24,
6, 1, 18, 10, -4, -2, 11, 16, 20, -10, -8, 14, -7, -22, 18,
-30, 4, 5, -26, 2, 10, -14, 12, -30, 0, 12, 2, 13, 6, 0,
19, 19, 8, -16, 14, 20, -14, -6, 14, 35, 2, -31, -4, 2, -24,
-18, -4, 0, -20, 15, 50, 4, -18, 6, 6, 10, -21, 5, 28, -7,
1, 10, -12, 12, 2, -12, -26, -8, 23, 2, -12, -10, 13, 10, -2,
7, -8, -14, 22, -22, 7, 10, 10, 15, -16, -14, 19, -9, 7, -21,
-31, 4, 20, -5, -16, -2, 6, 0, -13, -10, 6, 0, -8, -5, 4,
38, 32, -15, -28, 6, 20, -1, -14, -26, -6, 0, -30, -28, 6, -8,
1, -4, -10, 8, 0, -7, 12, -10, 16, 20, -6, 2, 24, 14, -6,
8, -10, -9, 12, -7, -12, -4, -13, 12, -9, -16, 9, 0, -13, -8,
6, -12, 28, 21, -17, 17, 30, 0, 21, -31, 24, 18, -23, 20, 14,
-20, 22, -24, -12, -18, -9, 8, -27, -31, 12, 31, -6, -20, 20, 20,
18, 22, 0, 20, -10, -10, 17, -1, 2, 15, -4, -20, 5, 10, -10,
-12, -14, -8, 4, -8, 11, -10, -9, 20, 2, -6, 7, 13, -4, -10,
14, 8, 9, 14, -11, 0, -12, 12, 6, -33, -12, 1, -11, -4, -2,
-4, -5, 1, -24, -26, 22, 12, 6, -26, 12, 50, -12, -18, 44, -22,
-8, -10, 3, 38, 12, -24, -5, -22, 2, 0, -2, 12, 0, -8, 6,
4, 10, 4, -8, -28, -4, 22, 4, 10, -2, -10, 12, 6, 4, -1,
-18, -10, 0, -4, 10, 21, -1, -7, -8, -4, 12, 2, -14, -25, -6,
36, 13, 20, -5, -10, 12, -18, -8, 31, -6, 14, -26, -4, 48, 16,
-11, -18, -36, -17, -46, -26, 2, -2, 15, 28, 6, -2, -4, -5, 1,
0, 0, 2, -6, 14, 42, 12, 0, 5, -20, -16, -10, -15, -4, -10,
-1, 4, 0, 16, 6, -20, -22, -14, -2, 2, 7, 11, 7, 19, 30,
14, -1, 2, -10, -22, -12, 14, 18, 15, 4, -6, -4, -2, -15, -29,
-42, -10, 3, -9, 18, 33, 2, -16, -14, 18, 17, -2, 20, 6, -46,
6, -10, 0, 9, -4, 1, 6, -7, 14, 1, -14, -13, 0, -9, -2,
38, -12, -6, 14, -4, 2, 16, -14, -6, 0, -8, 10, 10, -5, 10,
-6, -22, 25, 6, -16, -3, -3, -12, 6, 31, -10, 12, 4, -15, 10,
3, -8, 28, -46, 6, 22, -14, 12, 16, -32, -24, -15, 15, -5, 10,
12, -16, 10, -19, -24, 34, -28, 8, 8, -34, 40, -28, -24, 34, -36,
10, 14, -28, 42, -22, -15, 23, -14, 8, 14, -14, 12, -5, -3, 8,
0, -6, -6, -4, 1, 5, 1, -4, -1, -4, -1, 4, 1, 2, -6,
-1, 1, 2, 11, 4, 0, 0, -2, 16, 5, -10, -3, -4, -2, -2,
-20, 6, 3, -6, 25, 23, -8, 11, -2, -10, 10, -10, -16, 1, -16,
8, 24, -12, 3, 8, -9, 1, 2, -6, -8, 22, -16, 8, 26, -6,
22, -16, -38, 36, -24, 0, 4, -42, 30, -16, -6, 10, -16, 12, 2,
-15, 12, -10, 10, -4, 4, 2, 14, 20, -16, 9, -13, 7, 12, -26,
-6, 0, -15, 28, 50, -4, -6, 10, 28, 41, -4, -11, 6, -16, 13,
-4, -26, -13, -10, 6, -20, 6, 1, -3, -2, -8, 5, 4, 10, 12,
-17, 10, 24, 18, 8, -12, 8, -14, 14, -1, -30, -8, -12, 5, -4,
-12, 18, -13, -1, 9, -20, 18, 6, -2, -4, 2, 31, 26, 3, 2,
4, -8, 7, 4, -39, -18, 18, -16, -30, -7, -6, -10, 25, 7, -26,
13, -8, 6, 7, -9, -5, 1, 2, 2, 21, -4, 0, 12, -14, -1,
12, -18, -4, -16, 4, -2, 8, 12, -19, 9, 0, -16, 28, -22, -6,
20, -24, 31, 38, -30, 22, 0, -24, 20, -13, -1, 20, -26, 10, 6,
-8, 14, -22, -8, -15, 7, 10, -14, 8, -1, -16, 32, 12, -16, 24,
-2, -28, 2, -14, 10, 24, -15, 16, -1, 5, 24, -18, 6, -2, 6,
-18, 4, 12, -13, 16, -8, -34, 29, -21, 4, -5, -36, 33, -20, -5,
11, -5, 4, 17, 6, -6, -4, 19, -24, 14, -10, -2, 19, -24, 24,
6, -18, 19, -12, -26, 2, -4, 14, 8, 2, -4, 11, 18, 7, -4,
-20, -4, -10, -36, -44, -16, 6, -10, -28, 4, 11, 22, 24, 6, -2,
10, 16, -4, 3, 4, 10, 4, -2, -1, 7, -6, -6, -36, -32, -4,
4, -11, -18, -4, 16, 21, 22, 6, -6, 12, 10, -5, 6, 5, 5,
6, -2, 0, 4, -10, -16, -36, -35, -6, 0, -16, -18, -2, 12, 34,
24, -2, 0, 14, 10, 4, -27, -12, 35, 18, -27, -36, -14, 6, 4,
9, -12, -12, 24, 18, 10, 0, 0, 4, -13, -8, 8, 4, 9, -2,
-15, -8, 26, 14, -28, -21, -12, 3, 14, 0, -11, -4, 16, 26, -3,
-4, 4, -2, -6, 0, -3, 2, 9, -4, -15, -8, 22, 11, -33, -27,
-9, 6, 17, -1, -18, -10, 30, 36, -13, -8, -24, -36, 16, 4, -10,
38, 21, 2, 24, 4, 3, -6, -4, -16, -22, 2, 8, 8, -1, -6,
15, -16, 4, -5, -30, -18, 11, -4, 4, 20, 24, 4, 24, 9, -3,
-4, -4, -12, -23, 0, 4, 10, -4, 0, 4, -10, 2, -8, -45, -9,
4, -2, 15, 14, 34, 22, 16, 18, -10, -6, 6, -24, -22, 4, 28,
-5, 10, 2, -17, 14, -32, -16, 2, -16, 2, 2, -8, 17, 1, -1,
-9, 8, -4, 2, 9, -13, 17, 16, 2, 10, -2, -7, 0, -8, -12,
-8, 0, -13, 2, 5, -6, 16, -3, -6, -2, 8, -4, 2, 14, -18,
19, 34, -24, 28, -8, -27, 24, -42, 12, 31, -46, 12, 10, -14, 24,
-6, 8, -3, 21, -10, 16, -13, 16, -19, 13, -11, 14, -30, 30, -37,
28, -16, 6, -12, 22, -33, 42, -32, 30, -18, 8, -8, 23, -22, 23,
-26, 18, -17, 8, -5, 2, -11, 9, -14, 13, -5, 1, 1, 2, -3,
11, 0, 4, -2, 2, 0, 10, -4, -2, -9, -3, -6, 0, -7, -2,
-2, 4, -1, 7, 2, 0, 42, 16, -14, -16, 8, -20, -8, 34, -24,
-16, 16, 6, 2, 8, 4, -22, -6, 0, -1, 0, 5, -1, 10, -10,
30, 12, -14, -12, 4, -22, 0, 23, -19, -16, 21, 0, 5, 12, 1,
-18, -1, 1, -2, 0, 4, -1, 6, -6, 33, 14, -17, -6, -2, -21,
-4, 27, -36, -11, 28, -8, 1, 29, -14, -12, -32, 41, -22, -8, 17,
-20, 14, 3, -1, -2, -4, 12, -4, 0, 3, -8, 22, -26, 17, -5,
-10, 12, -14, 6, -8, 14, 2, -14, 16, -9, 4, 6, -8, 0, -6,
9, -3, -2, 8, -11, 18, -21, 13, -1, -12, 18, -20, 12, 2, 10,
4, -14, 14, -7, -2, 14, -22, 18, -21, 14, 6, -29, 48, -40, 23,
6, -14, 26, -22, 0, 34, -29, -24, 8, -6, -4, 8, -1, -22, 20,
-4, -2, 9, -8, 1, 10, -4, 8, 28, -7, -4, 14, -6, -9, 20,
-28, -24, 10, -2, -8, 8, 0, -17, 18, -1, 0, 1, 6, -11, 20,
-4, 10, 26, -6, -15, 19, -15, -6, 10, -25, -42, 32, -4, -14, 20,
-14, 1, 14, 9, 2, 19, 21, 30, 10, 7, 4, -10, -13, -16, -30,
-28, -20, -6, -11, 12, 13, 10, 25, 22, 16, 7, 10, -2, -8, 2,
-10, -6, -4, -2, -2, -2, -12, 3, -27, 0, -20, 4, -8, 18, 3,
26, 16, 46, 4, 18, 7, -15, -14, -12, -38, -25, -25, -2, -13, 4,
10, 6, 16, 24, -1, 10, -1, 8, 2, -24, 2, -9, 8, -14, -12,
-14, 19, -2, 28, -20, 18, 2, 19, -3, 4, -22, 2, -8, 4, -18,
-2, 6, -13, 21, -18, 18, -12, 16, -6, 10, -16, 38, -32, 38, -31,
26, -6, 8, -17, 0, -34, 26, -21, -1, -12, 0, 0, 26, 6, 1,
2, 17, 7, 0, -2, -14, -6, 9, -10, -6, -2, -20, 18, 11, 4,
-30, 32, -6, 20, 6, -7, -38, 30, -6, 0, -26, -4, -6, 14, 16,
-10, 1, 1, 26, -2, 6, -19, 21, -29, 29, -24, 8, -6, 12, -18,
0, -2, 11, -10, -5, -6, -6, 26, 8, 2, -22, 24, 8, 10, -8,
-12, -24, 17, 6, -7, -26, 4, 9, 3, 11, -6, -16, 16, 8, -3,
-4, -4, 6, 33, -14, -31, -7, 16, 6, 14, -20, -21, 6, 44, 2,
-16, -8, -7, 11, 18, -8, -30, -4, 13, 6, -2, 2, -13, 12, 0,
8, -10, 6, -3, 0, -18, 14, 10, 4, -10, -10, -6, 18, 20, -10,
-36, -4, 18, 11, 10, -22, -26, 16, 38, 4, -16, -10, -5, 19, 12,
-10, -23, -2, 10, 4, -6, -28, 20, 10, 14, -22, 5, -14, 22, 13,
-2, -32, 6, 7, 3, 8, -14, -4, -4, 34, -14, 4, -10, 4, -14,
18, -22, 14, -13, 10, -1, -1, 14, 2, 4, -22, 12, -4, 3, -7,
8, -44, 44, -5, 18, -24, 6, -16, 26, -2, 2, -38, 16, 3, 10,
4, -6, -14, 16, 8, -4, -7, -5, -16, 8, 22, 9, 3, 2, -22,
-30, 18, -14, -24, -8, -4, 0, 27, 40, -11, 8, 20, 3, 2, 2,
-23, -32, 5, -2, -6, 0, 2, -3, 7, 8, 2, -4, -10, -4, -4,
2, 14, 18, -10, 10, 22, 10, 0, 5, -32, -36, 12, -8, -27, -4,
-5, -2, 32, 38, -11, 6, 14, 2, 2, 5, -20, -18, -40, 6, -19,
9, 18, -10, 29, -14, 36, 9, 12, -6, -14, -2, -20, 6, -14, -22,
0, 2, 4, 14, 2, 4, -12, 22, -11, 2, 6, -18, 16, -12, 27,
-10, 16, -12, -2, 0, -13, 4, -16, -26, 7, -4, 10, 10, 11, 1,
5, 42, -18, 8, -6, -20, 4, -10, -3, -20, 6, 7, -18, 34, -25,
17, 10, 42, -10, -4, 10, -28, 8, -10, -20, -40, 10, 2, -3, 22,
4, 4, 26, 16, 3, -4, -3, -8, -14, 5, -18, 10, -10, 3, 8,
-7, 15, -12, -6, -26, 8, 1, -5, 14, -5, 6, 30, 29, -2, -6,
-4, -11, -12, 6, -46, -7, -18, 23, -6, 12, 14, -14, 22, 10, -3,
3, -14, 10, -24, 18, 13, -27, 28, -24, 16, -14, 12, -4, 2, 3,
2, -8, 13, -10, 4, -4, -7, 9, -14, 20, -20, 14, -8, 4, 0,
-2, 2, 0, -2, 4, -4, 4, 4, -6, 10, -18, 22, -22, 16, -12,
0, 0, -2, 10, -14, 11, -5, 2, -10, 22, -30, 32, -32, 34, -33,
19, -20, 26, -30, 28, -22, 8, 4, -6, 24, -8, -6, 19, -17, 2,
18, -22, -32, 16, 2, -18, 16, 0, -26, 28, 26, -12, -4, 14, -13,
4, 19, -20, -10, 5, 5, -4, 2, -6, -8, 3, -10, 6, -4, -10,
14, 4, -6, 18, 24, -16, 6, 17, -22, -2, 18, -32, -27, 18, -2,
-22, 29, -8, -14, 30, 20, -18, 8, 9, -18, 10, 4, -14, -4, 11,
-19, 26, -32, 24, -20, 12, -6, 7, -4, -1, 9, -8, 8, -7, 11,
-18, 20, -20, 16, -17, 10, -5, 1, 6, -7, 9, -8, 14, -12, 8,
-10, 6, -9, 7, -7, -2, 6, -5, 11, -15, 24, -24, 26, -16, 10,
-4, 1, -2, -3, 2, -9, 6, -4, 4, -18, 32, -37, 40, -36, 29,
-20, 8, -1, -6, -6, -12, -12, -6, -8, -4, 5, 9, 14, 20, 21,
13, 15, 9, -10, -10, -20, -27, -28, -19, -20, -12, 10, 12, 22, 31,
31, 22, 23, 14, -12, -12, -18, -33, -26, -24, -24, -14, 10, 8, 14,
28, 19, 22, 18, 12, -8, -4, -10, -20, -10, -16, -10, -6, 6, -3,
8, 5, 5, 6, 3, 0, 4, 2, -8, -6, -6, 28, -15, 6, -8,
0, 10, 16, 0, -36, 17, -6, 12, -4, -8, -30, 15, 34, -9, 0,
-12, 3, 12, 33, -24, -28, -2, 8, 4, 4, -18, -28, 28, 20, 14,
-17, 4, -12, 26, 14, -18, -18, -15, 18, -8, 18, -28, 0, 6, 16,
9, -15, 5, -14, 20, -8, 4, -12, -1, 7, 22, -30, 24, -13, 15,
-4, -14, 6, -24, 32, -21, 6, -14, 2, 24, -10, 16, -20, 4, 14,
2, 4, -32, 12, -6, 4, 12, -26, 0, 0, 28, -8, -4, 9, -22,
30, 4, -10, -13, -2, 6, -10, 18, -20, -15, 24, -7, 13, -4, 4,
-8, 4, 22, -30, 18, -18, 2, 0, 2, 0, -16, 21, -17, 13, 4,
-14, 12, -10, -10, 2, 10, 12, -2, 15, -12, 10, 21, -6, -18, -19,
-3, -12, 8, -6, -34, 12, 25, 23, 9, 6, -4, 4, 35, -9, -36,
-20, -13, 0, 2, -5, -29, 2, 44, 13, 15, -6, 0, 5, 19, 5,
-46, -4, -12, 8, -2, -2, -10, -6, 35, -3, 8, -8, 4, -2, 6,
4, -18, 4, 1, 12, 12, 8, -16, 8, -14, 1, -3, -18, -25, -5,
20, -8, 21, 0, 4, 23, 36, -2, -16, 0, -19, -6, 0, -29, -42,
6, 10, 6, 15, 12, -5, 34, 38, -8, -3, -11, -9, -16, 10, -38,
-25, 4, 0, 12, 5, 16, -13, 34, 8, 4, -4, -6, -4, -10, 9,
-20, 3, -6, 3, 1, 2, 3, 4, -1, 18, -28, 21, -12, 16, -10,
-1, -14, -10, 28, -16, 6, -14, 12, -5, 30, -6, -14, -3, 14, 4,
-8, 7, -35, 14, 5, 15, -29, 6, 4, -4, 30, -9, -7, -14, 31,
-9, -1, -4, -15, -2, 18, 3, -22, 5, 4, 13, -7, 22, -34, 18,
2, 6, -9, -11, 13, -23, 32, -26, 13, -13, 11, 12, 15, -8, -3,
-3, -6, 0, 11, -22, -22, 10, 7, 2, 13, -1, -18, 32, 26, -12,
-11, 0, -20, 3, 24, -40, -26, 14, 11, 1, 24, -5, -26, 40, 23,
-15, -9, -2, -22, 4, 26, -34, -18, 15, 5, 4, 18, -4, -21, 21,
12, -14, 0, -6, -9, 2, 14, -10, -2, 6, -2, 3, 4, 0, -5,
-14, 5, -6, -1, 4, 0, -9, 18, 24, -8, 7, 3, -10, 2, 12,
-29, -32, 8, -5, -8, 16, -4, -12, 36, 36, -8, 2, 12, -22, 7,
10, -39, -34, 6, 2, -15, 24, -10, -6, 36, 29, -5, -4, 14, -20,
10, 2, -28, -19, 3, 6, -11, 16, -8, 0, 17, 8, -1, -6, 8,
-11, 8, -2, -6, -8, 14, -16, 12, 0, -5, 6, -6, 12, -20, 24,
-17, 0, 9, -12, 13, -16, 22, -26, 17, 4, -15, 18, -20, 16, -20,
22, -14, -11, 22, -24, 26, -14, 17, -16, 8, 16, -26, 28, -29, 11,
-12, 10, -2, -18, 26, -28, 28, -6, 7, -4, 0, 14, -19, 20, -20,
2, -2, 0, 1, -8, 10, -10, 10, -2, 7, -15, 20, -20, 18, -12,
6, 1, -11, 22, -30, 31, -28, 20, -11, 5, 4, -15, 24, -27, 26,
-18, 10, -12, 6, 2, -10, 14, -16, 11, -6, 18, -18, 14, -8, 4,
0, 0, 0, -20, 24, -24, 22, -16, 11, -10, 5, 16, -23, 24, -24,
20, -15, 13, -7, -8, 14, -16, 16, -15, 12, -10, 5, 5, -7, 12,
-10, 9, -8, 6, -3, -10, 13, -20, 19, -17, 15, -10, 6, 12, -16,
25, -24, 21, -18, 13, -8, -14, 19, -28, 28, -24, 21, -15, 9, 13,
-20, 27, -28, 25, -21, 16, -10, -10, 18, -24, 25, -23, 20, -16, 9,
6, -13, 17, -18, 17, -14, 12, -8, -3, 6, -8, 9, -9, 8, -7,
4
};
static const int32_t mdt8x8_mode11[4096] = {
1, 3, 6, 6, 7, 8, 7, 8, 1, 4, 8, 10, 12, 12, 13,
14, 2, 6, 11, 15, 16, 17, 19, 20, 3, 8, 12, 17, 20, 22,
24, 22, 2, 8, 14, 18, 23, 25, 26, 24, 2, 8, 14, 20, 24,
25, 26, 24, 3, 8, 14, 20, 22, 24, 24, 23, 4, 10, 14, 16,
20, 21, 22, 22, 2, 6, 11, 14, 14, 13, 10, 6, 2, 13, 24,
26, 23, 18, 14, 10, 6, 22, 32, 34, 28, 20, 12, 4, 10, 22,
30, 30, 22, 10, 2, -4, 7, 16, 18, 14, 7, -4, -9, -10, 2,
4, 0, -6, -9, -14, -15, -13, 0, -6, -14, -18, -20, -19, -19, -17,
-2, -9, -16, -19, -20, -20, -20, -18, -4, -10, -18, -22, -20, -12, -10,
-12, -3, -12, -21, -21, -14, -14, -18, -20, 0, -3, -6, 0, 1, -10,
-20, -20, 6, 14, 23, 27, 15, -4, -16, -18, 11, 28, 43, 40, 20,
-2, -12, -16, 11, 26, 34, 28, 14, 0, -10, -13, 8, 16, 15, 10,
5, 0, -4, -8, 6, 6, 4, 2, 1, 0, -2, -5, -3, -8, -10,
-6, -2, -6, -17, -17, 0, 4, 10, 9, -4, -17, -24, -22, 10, 29,
38, 25, -8, -24, -22, -14, 16, 34, 34, 12, -14, -20, -8, -2, 10,
12, -1, -17, -15, -4, 6, 4, 0, -12, -30, -30, -2, 16, 13, 6,
-4, -15, -22, -12, 13, 22, 16, 12, -2, -6, -2, 10, 18, 16, 14,
14, -7, -16, -23, -26, -22, -18, -11, 1, -7, -16, -26, -28, -26, -14,
2, 7, -2, -3, -4, -8, -10, 6, 20, 18, 2, 6, 11, 11, 16,
27, 25, 18, 0, -6, -4, 10, 28, 32, 20, 10, -6, -24, -30, -9,
12, 14, 6, 1, -8, -24, -28, -20, -12, -8, -6, -6, -8, -14, -14,
-16, -19, -16, -8, -8, 2, 6, 12, 8, -4, -10, -6, -2, 6, 22,
28, 6, -18, -16, -8, -7, 12, 31, 26, -2, -18, -6, -3, -8, 12,
10, -11, -11, 8, 16, -1, -10, 2, -19, -36, -2, 36, 20, -8, -14,
-6, -22, -14, 21, 33, 4, -19, -16, -4, 0, 21, 30, 10, -12, -20,
-15, 8, 22, 30, 18, -2, -12, -11, -11, 0, 2, -8, -22, -20, -6,
2, 4, 5, 8, -5, -14, -4, 10, 8, -2, 4, 2, 2, 16, 32,
19, -6, -18, -6, -20, -9, 32, 44, 7, -26, -24, -16, -36, -22, 12,
14, -14, -26, -10, -12, -23, -16, -14, -20, -18, 0, 12, -1, 4, 3,
-11, -15, 2, 20, 21, 6, 12, 10, 5, 9, 18, 20, 17, -10, -26,
-32, -23, -8, 4, 9, 14, -8, -21, -24, -14, 2, 19, 28, 24, 3,
11, 8, -2, 2, 24, 33, 21, 15, 30, 15, -9, -15, -2, 8, 2,
12, 14, -4, -18, -22, -25, -20, -11, 0, -7, -10, -6, -4, -18, -23,
-12, 0, 0, 8, 19, 16, 0, -10, -8, 8, 16, 26, 29, 20, 8,
2, -4, 0, -5, -16, -20, -10, -2, -12, -18, 2, -6, -8, 4, 15,
0, -24, -24, 0, -8, 4, 30, 30, 2, -12, -3, -6, -13, -3, 8,
8, 12, 20, 18, -6, -8, -12, -28, -20, 16, 36, 18, 8, 16, 2,
-25, -22, 4, 12, -2, 16, 34, 25, 3, -6, -10, -18, -20, 15, 26,
21, 12, 0, -14, -23, -22, 0, 2, 6, 4, -17, -26, -10, 3, 7,
18, 18, -9, -36, -22, 2, 5, 16, 30, 16, -19, -22, 8, 16, 4,
12, 20, 4, -16, 0, 19, 12, 5, 1, 8, 6, -5, -12, -10, 6,
18, 2, 18, 24, -1, -38, -34, 8, 28, 6, 22, 20, -8, -34, -22,
11, 22, 6, 8, -2, -12, -9, 2, 10, 11, 6, 4, -8, -10, 12,
28, 8, -6, 11, 16, -7, -22, 1, 16, 1, -1, 13, 23, 8, -9,
-18, -21, -4, 18, -3, -2, 14, 22, -20, -42, 2, 34, -23, -34, 10,
38, -4, -28, 8, 28, -22, -26, 5, 14, 4, 0, 2, 6, -2, 10,
6, -11, -6, 4, -6, -7, 14, 25, 10, -10, -12, -10, -8, -7, -7,
-8, 2, 15, 18, 7, -13, -22, -8, -22, -22, 12, 32, 12, -24, -34,
1, -4, -16, -10, 19, 18, -12, -21, 10, 25, 7, -21, -2, 17, 8,
3, 2, 6, 7, 4, 0, -3, 7, 18, -22, -36, -4, 27, -3, -29,
-4, 19, -24, -28, 6, 16, -15, -26, 0, 16, -6, 7, 14, -2, -12,
-2, 10, 12, -6, -14, -9, 14, 34, 30, 18, 14, -14, -30, -14, 8,
4, -4, 6, 16, -10, -14, 2, 2, -26, -27, -9, -1, 6, 13, 8,
1, 0, -2, -14, -14, 14, 11, -14, -6, 28, 22, -6, -10, 10, 6,
-14, -19, 0, 10, 7, 5, 14, 22, 10, -23, -35, -11, 12, 17, 21,
36, 24, -8, -22, -10, 9, 16, 1, 11, 22, 16, -3, 9, 37, 30,
-4, -6, 0, -12, -24, -6, 14, 12, -1, -6, -12, -14, -5, -12, -28,
-17, 6, 12, 7, 14, 22, 0, -18, -2, 4, 13, 11, 4, -2, 8,
23, 23, -8, -10, 0, -14, -32, -4, 23, 12, -18, -24, 0, 10, -2,
-8, -14, -18, -9, -3, 18, 33, 32, 7, -24, -29, -26, -54, -39, 8,
13, -6, 8, 17, -14, -24, 6, 30, 5, -26, -5, 23, 6, 11, 19,
18, 1, -22, -13, 8, 2, -8, -13, -2, 8, 2, -4, -7, -16, -28,
-10, 5, -4, 2, 8, -5, -18, -6, 32, 25, -14, -7, 10, 3, -10,
-2, 10, 13, 4, 1, 2, -3, -4, -16, -28, -12, 11, 7, -6, -12,
-8, -12, -15, -26, -18, 20, 24, 4, 0, 11, 3, -17, 4, 35, 14,
-10, 16, 26, 0, -8, 18, 15, -18, -18, 27, 17, -32, -24, 5, -14,
-25, -6, 24, 12, -24, -16, 5, -4, 6, 15, 13, 12, 9, 12, 18,
22, 26, 20, -1, 0, 4, -1, -1, 10, 10, 4, -7, -11, -12, -22,
-24, -16, -14, -12, -12, -18, 7, 28, 18, 1, -4, -3, -2, -2, -6,
-9, 7, 14, -4, -12, 22, 29, -14, -43, 0, 30, 3, -22, 12, 13,
-2, -11, 0, 22, 12, -23, -16, -22, 14, 15, -8, 14, 14, -23, -12,
-4, 7, -18, -10, 24, 8, -24, 13, 22, -12, -32, 8, 25, 0, -16,
16, 13, -10, 0, 20, 10, -1, -4, -8, -6, 10, 17, 3, -10, -20,
-18, -16, -14, 14, 16, -4, -10, -12, -6, -4, -9, -14, -3, 5, 0,
4, 26, 30, 6, -41, 4, 27, -12, 0, 38, 40, 13, -20, 24, 18,
-32, -13, 19, 12, -2, -2, -3, -8, -8, -8, -8, -2, 0, -4, -26,
-6, 26, 3, -20, 10, 14, 2, -3, 16, 18, 0, -14, -3, 13, 26,
-3, -28, -18, 2, 15, 6, 0, -6, 4, 7, -20, -7, 32, 28, 4,
-37, 11, 37, -22, -14, 32, 29, 20, -11, -2, 3, -14, -6, 6, -6,
4, 18, -14, -20, 13, 1, -22, -29, -16, 12, -5, 2, 20, -2, -18,
-11, -1, 2, 0, 2, -3, 2, 9, 13, 18, 4, -8, -19, -16, 10,
20, 6, 12, 7, -2, -26, -36, -3, 20, -10, -18, 10, 28, -4, -8,
16, 8, -23, -25, 12, 12, 1, 22, 6, -24, -12, 6, 18, -18, -22,
0, -10, -20, -6, 0, 9, 6, -11, -18, 3, 14, -9, -24, -8, 20,
14, 10, 20, 14, 4, 6, 0, -13, 0, 26, 10, -16, 18, 35, 10,
-28, -15, 8, -11, -28, 34, 28, -30, -30, 20, 12, -13, -6, 26, 22,
-6, 0, 11, 0, -4, 5, -4, -7, 8, 5, -14, -4, 11, 6, 2,
3, -8, -12, -2, 10, 8, -11, 14, 18, -2, -2, 6, 12, 5, -26,
-18, -12, 22, 6, -29, 10, 18, -26, -34, -22, 24, -6, -28, 22, 21,
-18, -10, 6, 6, -10, 7, 20, 2, -12, 20, 31, 22, 14, 16, 2,
-12, -12, -12, -30, -30, -17, -8, 0, -1, -6, -6, -3, 4, -2, 1,
0, 6, 17, 10, 32, 30, 4, 20, 0, -18, 10, -15, -18, -24, -23,
6, -2, -22, -4, -11, -4, 0, 0, -4, 6, 8, 6, 7, 28, 36,
22, 12, 14, 8, 2, -12, -22, -34, -20, 4, 4, -16, -18, 12, 18,
6, -26, -25, 30, 37, -4, -15, -9, 12, -2, -8, 10, -2, -8, -20,
-3, 16, 2, 2, -12, -28, 6, -4, 14, -2, -24, 3, 15, 6, 13,
-5, 0, -2, -8, 5, 18, 15, 1, -8, -7, 7, 14, 1, -20, -30,
-13, 10, 10, -14, -16, 6, -6, -26, -6, 21, 10, -29, -24, 22, 40,
24, 13, 16, 11, -20, -5, 24, -6, -11, 27, 38, 20, -32, 3, 30,
-26, -16, 28, 30, 12, -22, -4, 8, -10, -12, -5, 0, 4, 2, -11,
2, 16, -6, -6, -2, 7, -1, -8, 14, -2, -9, 28, 16, 8, -18,
2, 16, -21, -14, 28, 20, 6, -19, -2, 12, 0, -10, -10, 10, 6,
-9, -12, 10, 24, 0, -24, 9, 17, -4, -18, 14, 12, -26, -11, -14,
4, 10, -6, 0, 2, 0, 4, -12, -10, 0, 10, -10, -4, 17, 4,
19, 0, -24, 4, -2, 3, 0, -26, 16, 4, 8, 8, -6, 4, 0,
-14, -15, -15, 12, 2, -2, -5, 12, 36, 4, 1, -22, -5, 25, -16,
-12, 38, 36, 17, -26, 10, 33, -29, -42, -2, -18, 14, 30, -14, -3,
20, 4, 8, -15, -10, -8, -6, -2, -6, 4, -6, 26, -8, -16, 34,
-16, -12, 26, -31, 42, -8, -10, 32, -28, 0, 40, -30, 12, -14, -12,
4, -6, -2, 14, 2, -3, 4, 2, -2, 12, -12, -12, 10, -6, 7,
12, 2, -6, 2, 1, -11, -9, -15, -4, -6, -8, 22, 20, -16, 30,
8, -10, 18, 8, -12, 11, 16, 6, 0, -8, -14, -4, -8, -10, 12,
-17, 2, 6, -13, 14, 6, -19, -1, 10, 4, 6, 20, 0, -2, 19,
-10, 44, -18, -27, 24, -32, -15, 40, -22, 39, -12, -18, 24, -10, -10,
14, -18, 11, 2, 1, 14, 14, -4, -4, 8, -4, 4, -5, -17, -7,
-8, 4, 23, 18, 8, -18, 5, 16, -20, -11, 36, -5, -6, -3, -7,
-1, 1, -5, 8, -14, -4, 14, -2, -3, 20, -8, -32, 6, 0, -8,
11, 2, -8, 4, 5, 5, 5, -10, -6, 3, -7, 1, 34, -28, 11,
25, -25, 12, 21, -36, 0, -37, 7, 21, -22, 11, 6, -36, 2, -9,
-1, -6, -3, 2, -16, 6, 38, -14, -8, 6, -2, 10, 30, 0, -3,
-28, 15, 20, -30, -6, -14, -37, 21, -27, 10, 6, -18, 14, 2, -18,
19, -12, -10, 6, 8, 8, 28, 13, -12, 6, 2, 10, -12, -22, -4,
-13, -8, -4, 5, 2, -13, 9, -4, -18, 24, -22, -5, 4, -4, 20,
27, 8, 11, -14, 12, 23, -17, -30, 8, -1, -30, 18, 3, -8, 0,
-5, 22, 49, 17, 18, -7, -8, 14, -14, -30, -17, -26, 7, -4, -4,
7, -7, 4, 4, -20, 1, 4, -4, -2, 8, 27, 32, 20, -7, 4,
0, -2, 0, -25, -25, 4, -8, -3, 6, -2, -4, -3, -10, -12, 10,
-8, -8, 6, 8, 30, 36, 10, 24, -6, -10, 16, -10, -40, -16, 5,
-39, 4, 15, -20, 18, 27, -14, 2, 7, -2, -3, 4, -24, -12, 8,
0, 30, -6, -6, 18, -9, 2, 10, -8, -14, -2, 3, -10, 18, 16,
-14, 3, -8, 6, 6, -6, -11, -10, 2, 6, 24, -9, -8, 18, -13,
0, 6, -14, 2, -7, 7, -6, 15, 23, -28, 3, -27, 14, 17, -36,
10, 0, -34, 46, 4, 15, 10, -24, -30, 4, 10, 7, -7, -14, -6,
23, 30, -9, -22, 14, -3, 10, 4, -10, 6, 0, -10, 14, 0, 12,
6, -24, -23, 6, 10, -4, 0, -20, -6, 32, 16, -10, -4, -12, 10,
8, -4, -2, 4, 0, 2, 9, -6, 21, 10, -37, -14, 4, -6, 20,
-44, -23, 20, 25, 23, -8, -30, 4, 42, 20, -28, -15, 22, 16, -8,
-20, -16, -24, 18, 22, -24, -14, 14, 4, 6, 0, -4, -1, 1, 6,
2, 3, 26, 11, -19, -11, 20, 7, -18, -10, -24, -16, 22, 7, -16,
-10, 14, 7, -4, 7, -2, -4, 6, 0, 5, 2, 20, 8, -22, -2,
13, -6, -8, -12, -24, -17, 28, 18, -30, -4, 27, -2, 26, -24, -13,
32, -18, -4, 28, -40, 43, -6, -12, 22, -20, 0, 32, -20, 12, -4,
-12, 4, 2, -13, 8, 10, -6, -2, -2, 6, 2, -2, 6, -10, 10,
4, 1, 3, -6, 9, 5, -15, -4, 0, -2, -12, 8, -2, -18, 25,
-28, 9, 12, -18, 22, 6, -21, 27, -18, 13, 8, -20, 1, 11, -9,
-16, 11, 8, 17, 26, 0, 10, 8, -25, 0, -19, -42, -22, -16, -22,
-6, 8, 4, 23, 24, 27, 16, 18, 4, 16, -6, -19, -2, -8, -16,
10, -18, -12, 6, -16, -9, -12, -10, -4, -7, 8, 16, 16, 32, 21,
14, 15, 7, 9, -12, -30, -20, -22, -24, -2, -10, -18, 21, 6, 6,
18, 8, -1, 5, 10, 11, 4, -11, -2, 4, -14, 4, 22, -12, 1,
6, 1, 5, 7, 4, -24, 4, 0, 1, 2, -4, -4, 1, -4, 30,
-20, 7, 2, -14, 12, -16, 32, 28, -36, 28, -2, -22, 43, -42, 8,
32, -23, 17, 4, -18, 22, -24, 7, 15, -10, -3, 1, -6, -2, 2,
14, -16, 7, 10, -8, 4, 10, -5, -12, -11, -10, 11, -12, -18, 19,
-11, -36, 24, 4, 0, 18, 8, -2, 12, 31, -12, -6, -2, -16, -3,
-10, -4, -2, -7, 4, 12, -4, -2, 16, -10, -24, 32, -12, 2, 15,
-6, 10, -5, 34, 9, -30, 6, -14, -22, 13, -20, 12, 12, 2, 26,
10, 4, 21, -8, -26, 18, -20, -20, 16, -13, -25, 20, 14, -16, 4,
-11, -1, 6, -6, 22, -18, 8, 12, 10, 0, 0, -2, -8, 4, 26,
-40, 9, -6, -18, 32, -28, 22, 44, -35, 30, 4, -20, 30, -28, 8,
14, -2, 0, 0, -1, -6, -1, 0, -28, 15, -20, 0, 12, -11, 18,
-7, -16, 18, 2, 1, 4, -8, 1, -8, 6, -3, -8, 0, 4, -1,
-4, 10, -24, 26, -10, -8, 5, -18, 28, -18, -38, 30, -28, 11, 32,
-35, 34, -20, -27, 30, -8, -10, 2, -22, 23, -8, -2, -3, 2, -3,
9, 7, -10, 2, 11, -10, 1, 4, 0, 0, -4, 7, -3, 15, -4,
-8, -6, -10, 16, -6, -27, 11, -9, 4, 22, -5, 2, -16, -5, 17,
-4, -6, -4, -10, 6, 12, 40, -18, -9, 2, -24, 8, 19, -16, -20,
-4, 26, 8, 17, -6, -32, 9, 1, 8, -25, -18, -6, 7, 25, 4,
14, -2, 8, 25, -5, -10, 7, -22, -21, -1, 2, -14, 12, -4, -18,
14, 8, 12, -8, -6, -7, 16, 14, 12, 2, -20, 3, 28, -14, -4,
-14, -24, -2, 18, -4, -28, 15, 10, -18, 33, -16, 38, -6, -6, -4,
-32, 12, -12, -14, -20, -11, 12, 24, 18, 1, 2, 31, 0, 22, -18,
-27, 3, -16, 12, 0, -8, -2, 8, 10, -4, 7, -5, -16, 6, -15,
8, 10, -2, 13, -15, 10, 15, 15, -12, -25, 2, -14, 15, 14, -42,
-1, 14, 12, 28, -22, 20, 25, -2, 14, -6, -25, 5, -2, -6, -10,
0, -24, 24, 10, -18, 18, -19, -18, 45, -6, -19, 0, -12, 15, 1,
-24, -10, -12, 17, 10, -4, -8, 4, 18, 11, -8, 4, -9, 3, 7,
-8, -16, 16, 2, -8, 0, -4, 8, 0, -15, -22, 0, 12, 8, 4,
-14, 5, 48, -2, 16, -12, -32, 25, -16, 8, 0, -32, 17, 5, 2,
13, -25, 15, -24, 17, -14, -19, 18, 16, 12, 2, -2, 7, 8, 26,
-20, -38, -6, -10, 2, 4, -20, -14, 14, 38, 8, 0, -18, 6, 8,
4, -2, -18, -4, 11, 4, 0, -2, 9, -10, -12, 4, -16, 14, -8,
-9, -10, 12, 40, -2, 6, -8, -8, 27, 7, -24, -24, -24, 23, 26,
-10, -18, 2, 7, 17, 16, -22, -22, 24, -18, 2, 18, -19, 24, -32,
-2, -2, 17, -15, -6, 2, 0, 20, 21, -23, 2, 0, 9, 4, -12,
-4, -6, 14, 4, 0, 3, -14, 26, -15, -12, 2, -6, -12, 6, -3,
-4, 11, 22, -15, 12, 10, -1, 12, -20, 4, 0, 5, -10, -6, -4,
-12, 26, -8, -41, 36, -17, 2, 30, -34, 18, -14, -20, -5, 6, 4,
-3, -4, 24, 22, 30, 12, -7, -8, 11, 0, -40, -25, -18, -21, 12,
8, -18, 6, 28, 21, 2, 17, -10, 0, 12, -5, -7, -8, 3, 4,
-7, 0, 1, -6, -12, -13, -11, -18, 18, 4, -18, 16, 26, 26, 19,
12, -16, -8, 20, -9, -36, -18, -22, 2, 6, 5, -14, -2, 34, 0,
-12, 2, 10, 3, -14, 14, 1, -28, 21, -2, -24, 8, 7, -18, -2,
37, -22, 4, 19, -4, -13, 26, -4, -28, 8, 3, -20, 15, -6, -6,
-2, 13, 4, 4, -8, 6, 0, 2, -5, 17, -24, 0, 16, -14, -7,
16, -2, -33, 25, 2, -24, 20, 10, -30, 14, 28, -20, 6, 16, -20,
-2, 24, -16, -12, 10, -1, 0, 12, -16, 7, -8, 10, -23, 12, -27,
16, -4, 10, -4, -3, -5, 30, -16, 30, -40, 30, -25, 20, -8, -8,
-27, 16, -18, 20, -22, 4, -10, 18, 18, -1, 10, -10, 20, -8, 12,
-24, -4, -19, 2, -8, -5, 2, 8, 0, 18, 10, 0, 6, 5, -2,
-22, 17, -18, -8, 14, -26, 24, -10, 13, -1, 8, 4, 5, 2, 13,
2, -16, -14, -6, -20, 4, -20, -4, -6, 27, 2, 44, -10, 31, -5,
19, 0, -2, -44, -8, -32, 1, -21, 6, -10, 19, 22, 32, 7, 24,
-6, 7, 2, -10, -30, -8, -30, 3, -8, 8, -4, 27, -2, 30, 3,
13, -10, 2, -3, -6, -6, 0, -16, 7, -3, 5, 0, 6, -22, 14,
-6, -8, 10, -14, 2, 7, 20, -3, 5, 14, -10, 14, 0, -19, -17,
-4, -11, -9, -3, 0, -8, 34, -10, 38, -12, 26, -6, 2, 7, -6,
-30, 7, -38, 25, -36, 27, -12, 18, 0, 33, -10, 16, -6, 4, -10,
8, -28, 4, -14, 2, 0, -8, 18, 0, 8, 5, -4, 12, -14, 16,
-15, 26, -25, 14, 1, -10, 15, -8, -2, -26, 18, -2, -14, 16, -20,
10, 4, 18, -14, 7, 0, 6, -5, 10, -16, 7, -11, 12, -8, -5,
8, -12, 11, -19, 31, -30, 22, -9, 4, -2, 4, -10, 15, -22, 34,
-36, 24, -9, -7, 1, 4, -4, -3, -2, 14, -24, 27, -10, 14, -12,
11, 2, -18, 28, -24, -17, 14, -10, 14, -12, 17, -18, 16, 6, 12,
-28, 24, -30, 15, -2, -6, -16, 5, 12, -4, 13, -5, -9, 9, 26,
-22, 10, -27, 16, -18, 22, -14, 8, -9, 16, 4, 8, -9, 6, -8,
-20, 24, -22, 4, -16, 22, -24, 21, 1, 8, -23, 36, -28, 14, -2,
-8, -16, 22, -14, 3, 0, 1, -7, 8, 4, 10, -22, 26, -18, 4,
8, -12, -29, 18, -6, 1, -8, 18, -33, 28, 22, -1, -17, 25, -18,
6, 16, -18, -16, -4, 14, -20, 18, -18, 2, -1, 21, -12, 18, -20,
22, -4, 3, 10, 12, -20, 0, 12, -17, -1, 8, -20, -26, 30, -10,
-5, 12, 3, -11, 21, 14, -16, 0, 17, -24, 14, -4, -6, 11, -23,
30, -28, 32, -24, 18, -8, 16, -14, 16, -25, 14, -19, 8, -8, -10,
5, -4, 16, -2, 16, -3, 9, -2, 7, -10, -8, -12, -6, -10, -6,
6, -12, 19, -4, 25, -8, 21, 3, 8, -5, 0, -11, -10, -2, -13,
-6, -13, 16, -20, 31, -20, 28, -12, 17, -12, 20, -25, 25, -27, 18,
-17, 3, 2, 4, 10, -8, -5, -11, 6, -6, 8, -22, -2, 2, 30,
6, 2, 4, 2, 18, 16, -22, -32, -18, 2, -4, -4, -23, -14, 21,
46, 15, 5, -2, 8, 18, 22, -30, -38, -22, 1, 0, -6, -17, -20,
30, 26, 22, -4, -2, -3, 22, 2, -7, -33, -4, -4, 6, -3, -6,
-7, 11, 8, 4, -1, -4, 9, -7, -2, 10, -6, 1, -12, -3, -14,
12, -4, -12, 4, 8, 24, 5, 16, -20, 12, 11, 0, -23, -30, -10,
-5, 12, -10, -14, -2, 37, 32, 14, -8, 0, 2, 20, -2, -38, -31,
-14, 18, -10, 10, -30, 11, 28, 30, 8, -10, 2, 0, 16, -1, -26,
-16, -9, -2, 12, -18, 10, -18, 28, -6, 10, 11, 0, 2, -12, 4,
5, -12, 0, -16, -4, 4, 21, -10, -7, 17, -2, 20, 16, -20, -20,
10, 8, -14, -6, -28, -19, 26, 24, -12, -4, 12, 16, 36, 16, -26,
-26, 14, 2, -6, -21, -32, -19, 34, 8, 2, -12, 14, 17, 28, 10,
-24, -5, -3, 10, -10, -12, -23, 10, -4, 17, -13, 6, -4, 10, -12,
16, -23, 24, -28, 27, -12, 13, 1, 4, -1, 3, 10, -14, -6, -10,
10, -24, 24, -28, 11, -4, 26, 2, 7, 8, -8, 16, -2, -3, -26,
-2, -18, 8, -8, 0, -14, 17, 16, 6, 21, -14, 15, -11, 25, -28,
-4, -11, -4, -3, 2, -2, -10, 14, 4, 5, -16, 27, -34, 34, -24,
18, -18, 6, -18, 24, -21, 13, -2, -6, 4, -10, 22, -28, 22, -12,
-8, 19, -12, 19, -18, 24, -16, 8, 16, -26, 14, -25, 4, -8, 0,
-2, -18, 23, -6, 18, 8, -7, 10, 1, 8, -7, -12, -2, -16, 16,
-13, -6, 7, -14, 32, -15, 18, -20, 15, 4, -11, 21, -36, 21, -13,
18, -16, 5, 3, -11, 21, -13, 3, 2, -6, 2, 0, -7, 3, 13,
-12, 3, 8, 0, -2, 18, -9, -24, 16, 0, -19, 8, -2, -24, 15,
32, -23, 5, 20, -10, 5, 28, -19, -37, 26, -6, -22, 15, -10, -26,
19, 36, -24, 8, 18, -14, 12, 22, -17, -30, 20, -12, -7, 7, -6,
-16, 12, 20, -9, 8, 2, -4, 4, 8, -6, -8, 12, -18, 23, -24,
24, -23, 22, -12, -10, 18, -22, 22, -21, 24, -26, 20, -7, 6, -6,
10, -11, 2, 8, -13, 10, -8, 10, -19, 25, -14, 2, 7, -6, 5,
-10, 19, -28, 17, -4, -4, -4, 8, -4, -4, 18, -10, 0, 4, 18,
-27, 28, -21, 9, -8, 9, -7, -14, 24, -27, 24, -17, 14, -12, 6,
-3, 1, 6, -12, 12, -6, -2, 8, 6, -1, -12, 23, -22, 11, 6,
-15, -18, 16, 2, -17, 18, -5, -17, 28, 24, -20, -1, 18, -18, 2,
24, -36, -24, 20, -1, -17, 18, -2, -25, 38, 20, -16, 0, 18, -18,
4, 22, -32, -8, 4, 8, -19, 20, -8, -10, 20, 2, 0, -7, 14,
-15, 10, 2, -8, -10, 14, -14, 13, -10, 7, -5, 2, 18, -26, 25,
-21, 14, -8, 6, -2, -18, 28, -24, 17, -6, 0, 3, -5, 18, -27,
20, -12, -2, 7, -10, 10, -14, 22, -12, 3, 12, -16, 20, -16, 6,
-10, -2, 10, -24, 26, -26, 18, 3, -4, 13, -21, 30, -30, 27, -16,
-2, 4, -9, 15, -20, 19, -18, 10, -1, 4, -8, 12, -14, 14, -12,
6, 0, -2, 8, -16, 22, -24, 22, -14, 8, -6, -2, 12, -22, 27,
-27, 18, -17, 18, -10, -1, 14, -22, 24, -17, 23, -28, 20, -10, -2,
12, -18, 14, -23, 30, -25, 18, -6, -4, 10, -9, 20, -28, 27, -22,
14, -6, -2, 3, -10, 15, -16, 15, -11, 6, -2, 0, 3, -6, 6,
-6, 6, -6, 5, -3, -7, 12, -14, 15, -14, 12, -11, 6, 10, -17,
20, -21, 20, -18, 16, -10, -13, 24, -27, 30, -28, 24, -20, 12, 12,
-22, 25, -29, 28, -26, 22, -13, -8, 18, -20, 23, -22, 20, -18, 10,
6, -14, 14, -18, 16, -14, 12, -6, -2, 6, -6, 8, -7, 6, -6,
3
};
static const int32_t mdt8x8_mode12[4096] = {
0, 0, 1, 1, 2, 3, 2, 2, 1, 1, 2, 4, 7, 8, 8,
8, 2, 2, 5, 8, 10, 12, 16, 18, 2, 6, 10, 12, 12, 18,
28, 29, 4, 8, 12, 17, 18, 23, 31, 32, 4, 8, 14, 21, 23,
24, 28, 27, 6, 12, 16, 21, 24, 24, 26, 24, 8, 16, 17, 18,
21, 22, 24, 22, 2, 2, 2, 2, 2, 4, 2, -2, 2, 4, 4,
4, 7, 8, 0, -8, 4, 2, -4, 1, 10, 6, -13, -25, 4, -4,
-12, -2, 12, 6, -31, -51, 4, -2, -6, 5, 18, 9, -31, -56, 6,
11, 12, 20, 26, 14, -12, -25, 11, 22, 21, 22, 25, 18, 3, 0,
14, 22, 18, 16, 18, 15, 6, 2, -1, -2, -1, -2, -2, -2, -2,
0, -2, -1, -1, -7, -12, -12, -6, 0, -3, -5, -10, -18, -24, -24,
-14, 0, -3, -18, -30, -34, -28, -23, -22, -2, -3, -22, -36, -32, -15,
-14, -10, 10, -3, -10, -13, -6, 1, -4, 16, 31, 0, 2, 6, 10,
5, 7, 33, 40, 3, 6, 8, 7, 4, 13, 28, 30, -2, -2, -2,
-2, -4, -8, -13, -12, -2, -2, -1, -8, -18, -26, -32, -25, -1, 2,
2, -16, -32, -32, -22, -13, 2, 9, 1, -22, -26, 0, 22, 10, 5,
10, -6, -16, 2, 32, 34, 8, 5, 1, -8, 2, 21, 30, 6, -17,
4, 2, 4, 12, 20, 8, -24, -31, 6, 13, 14, 11, 7, -8, -26,
-26, 2, 1, -2, 2, 6, 8, 2, -6, 2, 0, -2, 6, 10, 3,
-12, -19, 1, 0, 10, 15, -2, -24, -33, -26, 0, 15, 32, 22, -20,
-48, -28, 2, 6, 26, 35, 18, -24, -39, -3, 26, 14, 23, 13, 8,
-6, -15, 10, 20, 15, 18, 0, 2, 6, 0, 2, -1, 12, 12, 2,
2, 8, 10, 0, -6, -4, -4, -2, -8, -16, -14, -6, -8, -5, -6,
-4, -16, -22, -12, -12, -20, 2, 0, 2, -6, -2, 6, -14, -32, 13,
19, 11, 6, 18, 24, -4, -28, 19, 30, 10, -4, 12, 29, 12, -14,
16, 21, -10, -24, -6, 16, 22, 12, 8, 3, -21, -31, -22, 0, 25,
26, 0, -8, -18, -22, -20, -2, 22, 20, 0, 0, -1, 4, 14, 16,
6, 5, 0, 0, 4, 16, 24, 20, 12, 10, -4, -3, 10, 22, 9,
-4, 7, 10, -7, -4, 10, 2, -22, -18, 4, -4, -4, 3, 0, -30,
-34, 10, 8, -24, 4, 4, -15, -40, -11, 42, 18, -21, 3, -6, -22,
-20, 19, 44, 16, -8, -3, -14, -20, -4, 24, 20, -1, -6, 2, 2,
4, 5, 0, -4, -2, 6, 2, 4, 6, 2, -9, -11, 8, 25, 5,
13, 12, -7, -24, -8, 32, 38, 13, 27, 16, -16, -29, 2, 30, 6,
20, 30, 8, -14, -17, -8, -14, -32, 22, 23, -2, -2, 1, -23, -30,
-15, 22, 22, -2, 2, 4, -14, -7, 14, 19, 19, 4, -2, -4, 0,
16, 20, 2, 5, 4, -2, 2, 8, 7, 4, 4, 6, 2, -4, 8,
17, 10, 2, 7, 0, -14, -8, 18, 19, 0, 0, 9, -8, -34, -18,
17, 6, -12, 18, 14, 4, -28, -20, 14, -7, -9, 39, 26, 31, -9,
-14, 14, -2, -4, 14, 34, 38, -7, -20, 6, 8, -5, -17, 26, 18,
-18, -25, -7, 0, -18, -30, 1, 2, 1, 8, 11, 8, -5, -16, 0,
2, 12, 24, 24, 17, -5, -24, 6, 14, 21, 18, 16, 26, -1, -26,
20, 32, 12, -16, -2, 20, 1, -6, 26, 18, -24, -32, -2, -6, -4,
18, 6, -21, -38, 0, 12, -23, -14, 16, -16, -30, -14, 20, 13, -12,
-10, 6, -14, -4, 15, 16, 6, 4, 2, 3, 2, 0, -2, 6, 14,
4, -2, 8, 0, -2, -2, 8, 7, -4, 4, 16, -2, 0, 4, -6,
-20, -14, 4, 6, -4, 2, 10, -2, -18, -14, -10, -7, 2, -2, 2,
25, 29, -2, -18, 0, 14, -6, -17, 35, 60, 16, -4, 14, 8, -18,
-34, 5, 26, 8, 8, 12, -12, -32, -36, -24, -23, -24, -8, -2, 0,
0, 2, 3, 5, 4, 8, 23, 1, 0, -2, -4, 4, 16, 18, 16,
0, 5, -6, -23, -6, 29, 12, -30, 0, 2, -2, -29, -26, 18, 12,
-44, -4, -1, 16, -7, -36, 0, 30, -3, -1, 10, 30, 19, -12, -5,
28, 28, 0, 6, 12, 18, 10, -10, -6, 13, -4, -12, -15, -4, 2,
-18, -30, -16, 4, 7, 7, 8, 18, 23, 0, -13, 1, 5, 10, 23,
36, 12, -24, -14, -2, -3, 2, 26, 24, -17, -18, 15, -1, -10, -12,
4, -4, -10, 12, 10, 2, -8, -16, -8, -6, 18, 19, -22, 8, 8,
8, 8, -1, 12, 16, -7, 8, 18, 16, 8, -20, -32, 4, 26, 2,
6, 4, -8, -34, -50, -14, 22, 6, 6, 6, 5, -10, -13, 9, 19,
8, 11, 12, 7, -20, -24, 26, 38, 14, 16, 14, 14, -2, -21, 5,
17, 20, 17, 0, 14, 20, -14, -29, -11, 24, 10, -18, -2, 8, -2,
1, -4, 13, 1, -16, -8, -8, 6, 40, 10, -6, -4, 14, 7, -12,
2, 18, -8, -16, -2, 32, 20, -4, -18, -34, -24, 0, -3, -4, -12,
-22, -16, 1, 11, 2, 0, -12, -20, -15, -8, 0, 12, -1, -6, -10,
6, 24, 9, -8, 0, -7, -12, 2, 20, 16, -6, -8, 1, -6, -5,
6, -6, -18, -4, 5, 6, 10, 10, -16, -25, 9, 12, -18, 6, 12,
6, -22, 5, 42, -14, -40, 26, 0, -10, 1, 36, 24, -38, -20, 40,
-2, 0, 12, 10, 4, 2, -3, -7, 4, 14, 16, -4, -2, 16, 0,
-6, 20, 30, -4, -34, -1, 15, -10, 10, 22, 29, -14, -25, 5, -16,
-28, 28, 5, 21, 12, -2, 1, -6, -16, 12, -18, 10, 38, -4, -5,
34, -8, -19, -27, -11, 18, -6, 2, 20, -11, 2, -16, -14, -10, -1,
-2, -18, -4, 34, 4, 4, -4, -11, -5, 18, 22, 4, 0, -1, -16,
-33, -6, 36, 21, -9, -6, -10, -16, -27, -2, 19, 1, -13, 4, -2,
-8, 8, -8, -26, 14, 8, 24, 5, -15, 22, -8, -27, 30, -10, 26,
-5, -29, 15, 8, 3, 16, -36, -1, -10, -7, 1, -6, 2, 5, -20,
-16, 10, 28, 2, -18, -7, 17, 18, 6, 14, 20, 20, 13, 18, 32,
31, 2, 17, 32, 17, -2, 11, 27, 18, -14, 2, 20, -6, -28, -12,
-12, -30, -22, -8, 10, -2, -8, 3, -8, -13, -13, -5, 4, 7, 22,
28, 8, 26, -6, -4, -8, -20, 2, 10, -18, 3, -2, 4, -3, -24,
-13, -14, -28, -5, 8, 20, 18, 4, -4, 0, 15, 26, 16, 14, 14,
16, -5, -15, -2, 4, 20, 28, 20, 8, -3, -16, -20, -3, 26, 41,
8, -12, 13, 4, -16, -2, 16, 9, -6, 7, 6, 0, 21, -6, -1,
-37, -12, 34, -14, -22, 26, -14, -8, -30, -15, 11, -4, -7, 8, -4,
7, 8, -18, -27, 9, 12, -4, 12, 20, 16, -14, -17, 16, 10, -7,
6, -12, -6, 6, 6, -16, -18, -11, -26, -18, -2, 37, 13, -26, 3,
10, -36, -14, 2, 40, 12, -18, 26, 38, -18, -9, -14, 2, 12, -8,
-8, 20, -4, -8, -18, -16, 8, -2, -31, -13, 6, -1, 12, 6, -9,
6, 14, 0, 0, 8, 21, 15, -8, 1, 20, 10, -2, -2, -11, 4,
14, -16, -28, -4, -1, 8, -4, -16, 8, 32, 21, -12, -24, 2, -6,
-16, -8, 10, 22, 0, -22, -8, 1, 4, -31, -33, 4, 16, 16, -10,
6, 8, -6, 5, 0, -8, 6, -2, 0, -2, 21, 34, 2, -11, -19,
2, -1, -13, -14, -20, -8, 22, 14, 8, 6, -15, -20, -12, -9, -2,
22, 7, 6, 5, 25, 43, -6, -42, 0, -3, -7, -15, -20, -12, 2,
12, -8, 13, 7, -24, -23, -3, 16, 20, -9, 22, 26, 6, 0, 6,
12, 6, 2, -2, 18, 36, 2, -14, 2, -16, 8, -34, -16, 14, -17,
-12, 16, -20, 0, -29, -28, -16, -6, 14, 16, 2, 6, 1, 11, 0,
4, 2, -4, 16, 4, 26, 37, 13, -8, -32, -22, -2, -17, 15, 4,
-3, 7, 2, 4, 24, 4, 23, 12, 0, 2, -14, -5, 6, -15, 10,
14, 18, -2, -10, 6, -18, -4, -7, -9, 12, -12, 6, 24, -14, 26,
-10, -18, 4, -10, -2, 10, -6, 6, 20, 6, 4, 12, -17, -15, 13,
-35, 40, -1, -15, 34, -6, -14, 30, -20, 8, -40, -24, 30, 6, -6,
14, 6, 11, 28, 11, -8, 10, 23, 0, -10, 20, 28, -2, -10, 4,
2, 5, -16, 38, 8, -35, 5, -8, -26, 22, -17, 28, -12, -26, 21,
-10, -6, 36, -14, -2, 2, 12, 8, 0, 8, -14, 4, -12, 18, 8,
-21, 4, 4, -19, 19, -2, -9, -16, 0, -1, -4, 14, 0, -2, -20,
10, 32, -5, -6, 14, -19, -18, -18, -4, -10, -18, 13, 28, -3, -16,
-22, 8, 2, -22, 18, 35, -16, 8, -9, 6, 24, -10, -24, 8, -7,
36, 10, -17, 12, 6, -23, 1, 2, 22, 0, -16, 0, 8, 15, 12,
-4, -18, -20, 14, 12, -6, -3, -2, -3, -3, -9, -2, 11, 4, -18,
-9, 7, 38, 5, -44, -8, 26, -2, -4, 6, 6, 22, 13, -14, -24,
8, 22, -20, -1, 30, 26, -26, -20, 23, 6, -18, -16, 12, 20, -8,
4, 0, -18, 26, -18, -6, 4, 7, 2, -9, -6, 14, -5, 3, -5,
-7, -4, 16, 11, -28, 5, 17, 2, 3, 13, -8, -6, 21, -10, 0,
7, 4, 11, -18, -19, 28, -28, -20, -1, -14, 0, 36, 0, -34, 12,
9, -38, -30, 18, 8, -12, 20, 17, 16, -32, -29, 6, 1, -10, 7,
8, 21, 35, 20, -16, -6, 6, -18, 8, -6, 14, 21, -5, 0, 11,
-8, 10, -14, -34, -11, 12, 0, -3, 14, 4, 12, 8, 0, -4, 0,
-11, -7, -9, 14, 34, 4, -8, 10, -12, 0, -18, -13, -12, -25, 8,
13, -13, 26, 28, 38, 12, -7, -2, -18, -49, -22, 22, 27, 14, -3,
-12, 7, 6, 3, 2, -24, -4, 18, -11, 16, 30, 0, -10, -18, -4,
4, -1, -14, -23, -6, -4, 18, 8, -19, 1, 4, 6, 6, -3, -4,
1, 16, 0, 6, 29, -8, -2, -21, -16, 16, -4, -16, -14, -15, 19,
23, -11, -18, 2, 8, -4, 23, -17, -14, -9, -22, -4, 0, -34, -2,
-15, 2, 18, -20, 18, 27, -26, 39, -2, 16, 28, -10, 6, 14, -14,
19, 12, 2, -4, 0, -13, -18, -9, -23, 0, -6, -10, 10, 12, 3,
20, 2, -15, 6, 4, -12, 13, -2, 8, 6, 4, 2, -8, -4, -10,
-24, 0, -28, 27, -17, -9, 36, -1, -4, 34, -12, -9, -18, -10, -12,
-45, -30, 5, -9, 20, 0, -12, 26, 18, 4, 18, -9, 24, 16, -14,
13, 22, -2, 12, -2, -18, 5, -4, -30, -32, -24, 3, -9, -14, 0,
-1, 8, 20, 12, 4, 6, 18, 4, 0, 15, 7, 8, -4, 0, 18,
0, 0, -18, -40, -7, -13, 4, -9, -20, 13, 6, 15, 23, -13, 14,
-10, 30, 28, -26, -22, 4, 4, 38, -14, 8, 17, -20, 2, 14, -33,
7, -14, -16, -2, 1, 5, 11, -14, -8, -7, 10, 8, 1, -12, -2,
27, 9, 2, 16, 0, -4, 11, -7, -36, 2, 8, -28, 0, 6, -10,
17, -9, 2, 22, -24, 11, 8, -28, 14, 20, 14, 22, -2, -2, 6,
16, -4, -30, -4, -2, -16, -6, 22, 8, -20, -30, 3, -4, 7, -2,
0, 4, 10, 4, 3, -13, 20, -6, -15, -4, 6, 14, -12, -2, -4,
-9, 22, -2, -16, -12, 10, 28, -21, 0, 20, -25, 39, -14, 10, 44,
-18, -2, 0, -31, 33, -28, 4, 10, -9, 6, 22, -4, -17, 0, 16,
-6, 14, -6, -4, -2, 5, 14, -26, -6, 1, -2, 18, 16, -26, -4,
28, -10, 14, -6, -2, 12, -8, 6, -6, -14, 20, -10, -12, 12, -7,
17, -29, -27, 28, -8, 4, 26, -38, 21, 9, -38, 26, -15, -18, 23,
-13, 12, -8, -21, 14, -12, -10, 6, -4, 6, -18, -4, 6, 2, 23,
4, -22, 14, 12, -2, 4, -20, -1, 10, -2, 14, -16, 16, -2, -10,
23, 2, -36, 3, 40, 21, -16, -10, 15, -1, 10, -8, -8, 24, -28,
9, 6, -18, 38, -20, -5, 26, -30, 4, 7, -22, -4, -4, 33, 13,
2, 0, 2, 9, -3, 4, -20, -16, 20, 0, -14, 19, 4, 0, -6,
-22, -6, 2, -5, -8, -14, -2, 26, 15, 0, 4, 10, -6, 11, -2,
-23, 38, 8, -30, 16, 2, -6, 30, -9, 19, 6, -26, 0, -8, -12,
0, -8, -22, 0, 14, 4, 11, 5, -8, 18, -26, 8, -7, -6, 8,
-4, 12, -16, 9, 22, -24, -2, -4, -16, -2, -7, 2, -1, 19, 16,
-11, 28, -12, 34, -6, -24, -2, -6, -16, 20, -20, -8, 32, 4, -10,
20, -7, -20, 26, -12, 5, 8, -16, -12, -17, -17, 16, 3, -14, 26,
-2, -1, 15, -10, 2, -6, -32, 16, 3, 6, 11, -3, -1, -1, -8,
-13, -11, -4, -26, 16, 2, 6, 30, 1, 4, 9, -9, 13, -24, 10,
-4, 12, 12, 9, 14, -10, 9, -14, -45, 10, -24, -22, 6, -22, 36,
-13, -16, 32, -14, 8, 32, -20, -5, 2, 26, 23, 42, 28, -14, -4,
6, -28, 12, -24, -20, -4, -1, 0, -3, 11, -4, -22, -22, -13, 6,
8, 0, 6, 2, 24, 32, 14, -17, -6, 0, -14, 10, -12, -19, -1,
2, 8, -4, 14, -5, -10, -14, -10, 12, 7, -2, -1, -12, 35, 38,
-3, -5, -18, 8, -14, -10, -15, -32, 6, 20, -5, 12, 0, -24, 27,
4, 12, 10, -14, 3, 6, -44, 17, -22, 2, 10, -10, 12, -12, -22,
10, -19, 6, -5, 6, -2, 7, 16, 16, -3, 21, -20, 19, -16, 10,
-1, -2, -22, 13, -20, 6, -11, -6, -28, 16, -15, 16, -6, 11, 16,
9, 7, 18, -18, 13, -16, 8, -28, -10, 15, -20, 0, 16, -26, 32,
-13, 19, 20, 4, -28, -4, -6, -20, -10, -33, 0, 20, 11, 8, 12,
10, 28, 19, -21, -10, -9, -16, 2, -12, -20, -6, -4, -6, 2, 3,
-3, 5, -2, -6, 14, 18, 6, 9, 2, 8, 24, 16, -22, -6, -15,
-9, -6, -24, -32, -25, -1, 5, 18, 10, 4, 29, 26, 26, 32, -25,
4, 0, -17, -2, -26, -2, 24, 16, 16, -26, 16, 1, -6, 16, -6,
-7, -4, -16, 20, -32, 10, -20, -26, -6, 11, -2, 24, -10, 41, -16,
12, 6, 12, -28, 6, -10, -26, 18, 24, -20, 10, -2, -2, 2, 14,
-4, -2, -19, 21, -2, 14, 0, 4, -12, 12, 0, 8, -32, 7, -6,
-10, 17, 18, -26, 18, 10, -6, 3, 12, -14, -4, 33, -12, -32, -6,
-10, -20, 10, 7, 2, -2, 22, -1, 17, 10, 6, 4, -26, -2, 22,
-24, 2, -14, -5, 6, 29, -9, -20, 3, 7, -12, 17, -14, 7, -14,
19, -1, 4, 10, -10, -10, -13, -5, 18, -28, 2, -13, 2, 14, 32,
-8, -12, 12, 14, -6, 8, -40, 8, -8, 12, 8, -28, 31, -22, -55,
18, 17, -20, 7, -16, 10, -8, 0, 28, -14, 10, 27, -20, 18, -16,
16, 2, -5, -10, -5, 2, -6, 11, -8, -28, 22, -5, -8, 10, -8,
0, 14, 2, 3, 10, 20, -16, 14, -12, 22, -4, -9, -28, -10, -6,
8, 9, -9, -22, 33, 12, 10, 10, -15, -4, 13, 10, -24, -3, 6,
-21, 20, -4, -22, 14, 9, -10, 25, 32, -1, -24, -13, -9, -8, -2,
-22, -30, 4, 22, 20, 4, 8, 9, 4, 20, 1, -10, -8, -6, 0,
-4, 2, 4, -17, 2, -17, 6, -10, 5, -23, -8, 22, 12, 10, 24,
-14, 26, 14, 20, -29, -24, -21, -8, -4, -10, -36, -6, 14, 31, 11,
8, -5, 12, 22, 2, -6, -19, -16, 14, 1, 40, 25, -41, 2, -8,
-23, 9, -7, -37, 7, 12, 18, -5, 12, -16, 20, -5, 14, -10, -12,
8, 30, -20, 14, 0, 4, -10, 5, -8, -13, 2, 2, -28, 0, 12,
9, 0, -2, -8, 14, 26, 6, -10, -19, 11, 28, -8, -8, -20, -14,
10, 12, -11, -20, 3, 17, -8, 25, -18, 1, 4, 12, 28, -30, -20,
4, -9, 32, -34, -20, -4, 0, 23, 12, -23, 3, 20, -9, -12, 15,
-16, -4, 18, -13, -2, 36, 4, -6, -10, 10, -14, 21, -8, -8, -16,
18, 5, 6, -17, -14, 8, -4, -2, 6, -26, 2, 32, 8, -6, 24,
-6, -5, 22, 0, -32, -4, 3, -16, 9, 8, -20, 6, 15, -1, 0,
11, 20, -2, 13, 12, 2, 6, 4, -26, -10, -20, -4, -21, -2, -7,
-12, -2, 33, -12, 40, -12, 32, -6, 24, -14, 12, -36, 13, -30, -4,
-16, -18, -4, 8, 18, -1, 21, 3, 22, 12, 10, -30, 18, -28, 10,
-22, -3, -16, 22, -10, 12, -7, 11, 4, 8, 10, -10, 4, 0, 1,
-5, -2, -2, -4, 2, 16, 35, 3, -24, 0, 10, 4, 2, -22, -28,
-2, 10, 6, -18, -6, -6, 13, 30, -4, 6, -5, 17, 13, 10, -22,
9, -22, 6, -20, -6, -22, 10, -8, 4, 4, 24, 6, 16, 16, -16,
20, -2, 0, -36, -3, -20, -11, -10, 8, -38, 34, 2, 24, 4, 14,
-13, 24, -6, 8, -22, 4, -10, -4, -24, 7, 30, 11, -10, -6, -5,
-20, 23, -15, -36, -5, 8, 8, 8, 19, -2, 8, 25, 8, -8, -4,
-12, -13, -17, 3, -16, 4, -4, 10, 10, 5, 2, 17, -29, 20, -8,
4, -20, 8, -16, 10, 16, 0, -14, 2, 15, -16, 13, -22, -3, -18,
40, -23, 4, 9, 18, -19, 37, -27, 5, -4, 4, -6, -28, -14, -10,
20, 0, 8, 8, -15, 4, 32, -4, -6, -8, 2, -11, 20, 4, -4,
-16, 12, -10, 5, -3, -4, -6, -17, 16, -4, 10, -7, 17, -9, 32,
6, 12, -33, 18, -16, -14, 16, -8, -34, 10, 20, -8, 11, 24, -28,
-1, 32, -12, -17, 4, -5, -24, 30, -8, -7, -4, 22, -16, 12, 9,
-18, -2, 16, 18, -6, -7, -8, -30, -10, -3, -11, -24, 16, -2, 21,
30, 16, -18, 16, -8, 4, -17, -10, -32, -15, -3, 20, 10, 2, 22,
-1, 22, 14, 2, -44, 5, -28, 6, -14, 4, -15, 29, 8, 36, -6,
22, -10, -2, 6, -16, -14, -14, -8, -10, 9, 3, 0, 6, 14, -7,
22, -15, 8, -12, 4, -7, 40, -28, 6, 9, -2, -17, 26, -28, -8,
-4, 18, -36, 26, 1, -22, 22, 0, -5, 0, 18, -12, -6, 24, -15,
0, 18, -32, 18, -12, 16, -23, 10, -16, 10, 9, -4, 6, -15, 17,
10, 10, -16, 3, -9, 6, 6, -8, -26, 6, 8, -6, 18, -16, 5,
-4, 25, -22, 16, -14, 2, 0, 4, 0, 16, 0, -14, 0, -13, -16,
19, -2, -21, -2, 25, -10, 25, 12, -17, -2, 19, -16, -20, -9, -10,
-18, 16, 10, 5, 23, 20, 23, -12, 24, -16, -15, -28, -16, -32, -6,
8, -8, 2, 24, 28, 21, 23, 6, -13, -4, 12, -30, -10, -26, -9,
-8, 14, 4, -12, 26, 7, 10, 4, 2, -5, -4, 9, -14, 30, 4,
0, 16, -35, 22, -9, -8, -36, 0, -20, 7, 9, 0, -2, 17, -4,
22, 12, 0, -2, 0, 2, -20, 28, -26, -11, -4, 2, -8, 8, 16,
-28, 10, 22, -5, 2, 16, -20, -5, 14, 7, -34, 17, -7, -20, 26,
-4, -6, -10, 29, -14, 2, 21, -26, 8, 8, -2, -8, 3, 6, -16,
19, -7, -8, 16, -2, -18, 25, -24, 36, -20, -2, -16, 12, -5, 8,
-12, -22, 20, 23, -6, 3, -2, -8, 26, 9, -18, -18, 8, -9, 5,
6, -39, 6, 14, -3, -1, -1, -5, 0, 41, -8, -12, 20, -6, 1,
16, -18, -26, 0, 15, -24, 10, -2, -15, 24, 11, 7, -16, 12, -7,
-2, 14, -24, 8, -13, 14, 2, -8, -12, 22, -17, 29, -3, -8, -22,
32, -4, 6, -20, -12, -14, 21, 0, -6, -28, 15, 11, 22, 8, -22,
-2, 8, 32, -13, -18, -16, -9, 23, 14, -24, -18, 0, 28, 4, 16,
-22, -13, 20, 18, -8, -18, -6, -13, 18, 6, -11, -14, 10, 10, 6,
10, -12, 4, -6, 22, -26, 14, -16, 4, 1, 23, -10, 8, -8, 28,
2, -24, -6, -12, -21, 22, -25, -17, -18, 42, 4, 20, -2, 6, 1,
48, -4, -30, -8, -10, -5, 6, -8, -40, 4, 22, 8, 2, 7, -16,
16, 25, 2, -22, -1, 0, 0, 7, -8, -20, -2, 18, -4, 0, 2,
-10, 12, 5, 6, -16, 9, -12, 15, -14, 10, -12, 6, 2, -4, -33,
26, -33, 38, -20, 23, -7, 2, 18, 16, -10, -2, -11, -2, -8, 4,
2, -36, 28, -14, 29, -12, 17, -10, 4, 18, -10, -10, -5, -2, -5,
4, -9, 0, -7, 22, -12, 14, -3, 2, 8, -6, 14, -24, 20, -20,
8, -6, 8, -15, 11, -4, 2, 4, 0, 4, -11, 20, -24, 24, -22,
16, -14, 6, 0, -14, 10, 18, 16, -27, 17, -17, 6, 14, 2, -46,
0, 21, -10, 15, -10, -13, 4, 52, -4, -18, 6, -10, 4, 24, -22,
-40, -2, 16, 0, 7, -4, -25, 30, 22, 6, -16, 0, -4, 13, 13,
-26, -12, -4, 11, 2, 2, -20, 2, 8, 14, -6, 2, -5, 2, 10,
-4, -4, -4, 1, 2, 0, -1, 22, 13, -6, 16, -26, 2, -2, -4,
-45, -10, -3, -14, 26, 6, 0, 10, 50, 8, 12, 2, -14, -20, 9,
-17, -33, -18, -1, -9, 13, 23, -11, 18, 13, 23, -5, 6, -5, -26,
14, -18, 2, -27, 12, -10, 2, 23, -14, 14, -2, 17, -4, 4, 4,
-20, 12, -12, -4, -2, -7, 5, -8, 13, -10, 8, -9, 29, -16, -2,
13, -20, 17, -13, 8, -39, 17, 6, -16, 27, -23, 21, 2, 33, -17,
-4, 10, -22, 18, -20, -21, -13, 8, 4, -1, 10, -8, 15, 32, -6,
2, -1, -10, 3, -6, -5, -32, 12, -3, -6, 20, -14, 16, -2, 27,
-14, 3, 10, -24, 20, -21, 8, -12, 10, -4, -4, 12, -14, 14, -6,
12, -17, 12, -16, 22, -16, 10, -5, -7, 13, -11, 16, -28, 23, -16,
8, -18, 16, -22, 14, 4, -10, 8, -4, 26, -28, 32, -25, 8, 2,
0, 0, -18, 22, -26, 18, -6, -4, 4, -2, -2, 1, 1, 2, -6,
9, -7, 4, 18, -23, 23, -26, 24, -22, 16, -6, -11, 17, -20, 24,
-21, 18, -16, 7, 20, -25, 15, -6, -2, 0, -2, 4, -24, 20, -6,
-8, 20, -10, 8, -9, 29, -20, 2, 12, -26, 16, -12, 12, -30, 16,
4, -16, 29, -20, 13, -14, 30, -18, -2, 12, -27, 21, -12, 12, -32,
26, -8, -2, 15, -14, 7, -9, 28, -26, 14, -4, -6, 7, -4, 6,
-14, 16, -13, 10, -4, 0, 0, -1, 12, -20, 22, -16, 15, -12, 10,
-4, -18, 26, -24, 20, -18, 16, -13, 6, 8, -12, 8, -5, 2, -4,
6, -3, 4, -6, 6, -8, 9, -4, 2, 0, -13, 20, -20, 22, -22,
14, -10, 4, 19, -28, 29, -31, 29, -20, 14, -7, -16, 24, -26, 28,
-26, 20, -14, 8, 7, -12, 14, -15, 14, -10, 8, -4, 10, -16, 19,
-20, 16, -10, 6, -2, -20, 26, -32, 33, -28, 20, -13, 6, 19, -23,
31, -30, 25, -18, 11, -6, -16, 19, -29, 29, -23, 16, -9, 4, 14,
-16, 24, -24, 18, -12, 7, -4, -9, 8, -13, 15, -10, 8, -3, 2,
8, -6, 8, -10, 7, -6, 2, -2, -4, 2, -2, 4, -2, 2, 0,
0
};
static const int32_t mdt4x8_mode0[1024] = {
1, 2, 4, 8, 2, 4, 10, 18, 3, 8, 17, 28, 4, 14, 27,
36, 8, 22, 33, 36, 12, 28, 35, 34, 16, 30, 34, 32, 20, 30,
29, 26, -1, 0, 6, 14, 1, 10, 23, 31, 6, 25, 41, 36, 16,
36, 39, 22, 20, 28, 14, -2, 12, 4, -15, -21, 0, -18, -31, -30,
-14, -30, -34, -28, 0, 9, 19, 16, 10, 30, 37, 20, 26, 42, 26,
-2, 25, 19, -12, -20, 6, -22, -35, -12, -18, -40, -21, 8, -23, -18,
13, 29, -4, 16, 31, 32, 14, 32, 28, 12, 34, 50, 29, -4, 29,
19, -10, -18, -4, -29, -20, 7, -26, -28, 12, 28, -9, 15, 30, 14,
12, 19, -2, -18, 0, -18, -31, -30, 7, 3, -12, -19, 6, -4, -22,
-16, -6, -4, 5, 24, -14, -10, 27, 50, -24, -30, 10, 46, -38, -46,
-8, 22, -40, -31, -6, 2, -20, -4, 2, -2, 8, 20, 16, -3, 23,
30, 0, -30, 14, -8, -26, -17, -12, -12, 8, 14, 10, 36, 26, -4,
32, 20, -18, -12, -6, -40, -22, 26, -37, -26, 26, 46, -8, -15, -16,
-22, -14, -14, -10, -32, 8, 28, 0, -38, 42, 36, -19, -12, 38, 7,
-4, 34, 13, 2, 32, 38, -15, -6, 12, 6, -32, -28, -18, -10, 34,
44, 10, -30, 42, 21, -24, -34, -2, -16, -2, 2, 2, 28, 25, -10,
34, 27, -12, -18, 1, -22, -10, 7, -13, 10, 20, -6, 28, 32, -8,
-32, 24, 30, 17, 26, 4, -16, 10, 44, -44, -40, 8, 10, -32, -2,
-10, -24, 8, 10, -21, 1, 10, -4, 14, 40, -14, -10, 22, 19, -36,
-30, -12, -6, -33, -19, 36, 42, -24, 6, 26, 4, -2, -22, -44, -14,
7, -10, -12, 20, 28, 24, 20, 15, 4, -21, -8, 0, -35, -20, 12,
-10, 9, 36, 5, -40, -32, -9, 10, -8, 4, 7, -20, 6, 44, -18,
-30, 44, 26, -7, 10, 5, -4, 4, -1, -49, -34, 10, 18, -3, -23,
18, 36, 26, -22, -31, -18, -3, 38, 18, -21, 7, 17, -22, -4, 36,
10, -10, -8, -12, 31, 7, -14, -26, 0, 14, 42, 6, -42, 15, 33,
-25, -46, -8, -20, -27, 5, 12, 16, 20, -6, -38, -44, 11, 30, 7,
-12, 18, 36, 16, 14, -18, -32, -12, 18, -36, -30, 28, 20, -8, 10,
5, -13, 32, -7, -25, 8, 20, -5, 18, 1, -40, -14, -27, -22, -14,
10, 34, 24, -16, -24, 7, 31, 0, -44, -17, 0, 2, 22, 2, -10,
-5, 5, 10, 30, -36, -50, 24, 30, -30, -25, 6, 8, 12, 23, -20,
-18, 62, 34, -17, -16, 4, 7, 4, -18, -41, -10, 18, 18, 30, 16,
-6, -6, 10, -6, -25, -18, -30, 6, 37, 24, 12, 2, -25, -19, 18,
32, 4, -30, -16, 18, -14, -9, 29, 20, 9, -10, 30, 22, -32, -49,
36, 24, -14, -17, 8, 44, 8, -20, -18, 4, -4, 18, 1, -24, 17,
14, -28, -44, -10, -4, -8, 35, 8, -21, 26, 30, -24, -4, 20, -19,
-4, -22, -10, 31, 6, -24, 32, 18, -18, 6, 19, -6, -2, -31, -22,
41, -10, -22, 41, 27, -4, -18, -17, -23, 4, 25, -2, -14, 17, 10,
-4, -4, -34, -24, 20, 13, 26, 10, -14, -16, 1, -10, 2, -24, -12,
2, 48, 59, -22, -50, 10, 23, 12, 22, 37, -24, -30, -26, -22, 27,
34, -2, 10, -13, -8, 18, 8, -17, -10, -28, -21, 42, 26, 16, 18,
-48, -12, 2, -26, 18, 12, -13, 18, 26, -26, -40, -8, 0, 26, 44,
13, -8, -24, -47, -9, 19, 7, 42, 18, 8, -22, -34, -22, 4, 18,
6, 40, -3, -2, -27, -14, 5, 2, 6, 5, -16, 19, -19, -10, -7,
12, 16, 6, 7, -44, 8, -15, 23, 36, 3, 1, -60, -4, -16, 30,
38, 12, -8, -36, -22, -18, 36, 12, 16, 2, -24, 4, 32, 5, -10,
-22, -46, -6, 32, 0, 47, -6, -18, 10, -20, -4, 3, -16, -12, 34,
14, 6, 10, -56, -6, 6, 18, 23, 22, -35, -18, -5, -6, 22, -4,
12, -20, 32, -20, 36, -27, -12, -16, -12, 22, 4, 45, -37, 1, -14,
-4, 22, -5, 19, -11, 18, -56, 28, -13, 34, 5, -26, -9, -6, 2,
12, 22, -30, -8, 41, 19, -2, 16, -54, 10, -34, 29, 30, 14, 9,
-37, 15, -18, 32, -27, -5, -19, -6, 30, 3, 26, -25, -6, -6, -2,
4, 6, -1, -23, 13, 19, -28, 27, -59, 36, 3, 22, -11, 26, -40,
-2, -14, 3, 34, -6, 25, -24, -7, -25, 26, -28, 20, -7, 12, 8,
-22, -1, -7, 15, -2, 14, -1, 10, 3, -22, -10, 8, -10, 42, -40,
33, -10, 2, -30, 32, -20, 33, -19, -14, 24, -1, 7, 9, -22, -4,
19, -38, 44, -22, 29, -18, -10, -35, 53, -46, 23, -11, 3, -2, -2,
9, -16, 30, -26, 9, -14, -1, 28, 12, -15, 24, -46, 22, -38, 32,
12, 6, -2, -9, -2, 6, -8, 14, -6, -6, -11, 6, -2, 29, -16,
20, -14, -18, -3, 0, 12, 8, 22, -28, 4, -24, -8, 37, -24, 28,
-14, -19, 22, -28, 48, -36, 14, -28, 34, -37, 16, -3, 25, -22, 8,
-30, 14, -4, -2, 20, 5, -14, 8, -44, 48, -32, 14, -6, 16, -20,
10, -16, 18, -10, 0, -25, 38, -38, 22, 4, -16, 35, -31, -6, 12,
0, -8, -14, 24, -32, 33, -8, 17, -6, -29, -4, 2, -6, 34, -14,
40, -36, -8, -22, -2, 22, -4, 19, -8, -12, 2, -36, 52, -40, 19,
-22, 37, -38, 20, -1, -15, 26, -23, 8, 6, -18, 22, -27, 17, -4,
-12, 31, -24, 12, 6, -32, 36, -25, 5, 19, -29, 24, -7, -15, 30,
-36, 18, 28, -30, 24, -10, -23, 29, -26, 14, 24, -38, 34, -23, -18,
32, -28, 23, 17, -35, 32, -24, -7, 20, -21, 20, 2, -14, 17, -19,
2, 1, -4, 10
};
static const int32_t mdt4x8_mode1[1024] = {
14, 4, 0, 0, 33, 13, 0, 0, 45, 22, 2, 0, 48, 27, 4,
0, 46, 26, 4, 0, 44, 24, 4, 0, 42, 21, 2, 0, 38, 17,
2, 0, 18, 18, 3, 0, 18, 41, 10, 0, -4, 52, 20, 0, -26,
48, 26, 4, -30, 40, 21, 5, -28, 30, 14, 2, -28, 16, 8, 0,
-30, 4, 5, 0, 6, 1, 0, 2, 0, 1, 2, 1, -32, -6, 5,
2, -52, -14, 7, 2, -40, -6, 8, 1, -4, 14, 6, 2, 46, 32,
5, 1, 75, 38, 6, 2, 34, 0, -4, 1, 69, 7, -6, 1, 58,
6, -4, 2, 4, -18, 0, 6, -35, -38, -2, 8, -39, -34, -4, 4,
-11, -20, -5, 1, 24, -5, -3, 0, 24, 11, 1, 0, 20, 22, 6,
0, -28, 17, 16, 2, -40, 2, 17, 6, 5, -8, -1, 8, 54, -22,
-20, 4, 45, -42, -22, 1, -13, -54, -14, 0, -20, -22, -8, -4, 2,
-32, -21, -6, 22, -2, -29, -10, -12, 35, -20, -22, -36, 46, -8, -25,
-16, 25, -14, -14, 16, -15, -30, -9, 20, -42, -34, -10, 44, -6, -9,
0, 52, -18, -18, 0, -8, -38, -24, -4, -27, -29, -22, -10, 2, 10,
-10, -12, 24, 40, 5, -8, 1, 35, 10, -2, -52, 8, 8, -2, -19,
-30, 2, 4, 2, -46, 4, 8, 29, -28, 22, 12, 0, -6, 46, 23,
-20, 8, 51, 28, 9, 13, 34, 21, 19, 0, 20, 14, -14, -30, 10,
12, -46, -6, 0, 0, -16, 8, -2, 1, 49, 34, -10, 0, -17, 4,
-13, -4, -42, -28, -16, -5, 32, -12, -18, 0, 36, 19, -2, 2, -48,
32, 22, 2, 21, 44, 10, -6, -32, 32, 24, -6, 10, -16, 8, -3,
44, -32, -6, -10, -34, -12, 8, -22, -20, 26, 20, -20, 42, 13, 5,
-10, -14, -38, -11, -9, 12, 5, -3, 12, -8, 5, -10, 14, -10, 15,
-33, 8, 2, 18, -48, -2, -6, 5, -17, 4, -4, -2, 24, 22, 11,
-16, 45, 36, 14, -36, 52, 46, -26, 16, 22, -7, 12, 4, 32, -8,
28, -10, 12, -16, -38, -10, 0, -40, 12, 6, 14, -50, 30, -9, 30,
-26, -31, -27, 36, -10, 21, -5, 20, -9, -46, 8, 0, 6, 6, 34,
-2, 7, 20, 12, -2, 15, -22, -48, -12, 28, 14, -5, -21, 27, 10,
52, -10, 12, -34, 20, -4, 7, 22, -38, -22, 8, -42, -36, 2, -4,
42, 2, -4, -8, -36, 33, 2, -16, 6, 4, 0, -18, 32, -38, 7,
-12, -38, -6, 22, -12, 30, 33, 14, -16, -9, -32, 2, -11, -52, 44,
14, 4, 38, 25, 2, 7, -4, -52, -2, 12, -6, 4, -4, 4, 16,
40, 0, 5, -36, -20, -10, 12, 35, -13, -12, 18, -18, 20, 6, 12,
6, -36, 28, 12, 14, -22, 57, 14, -6, 0, 54, 10, 12, -4, -8,
12, -10, 16, -54, -7, -14, 18, -38, -16, 6, -6, 4, -6, -1, -4,
30, 8, -18, -31, -28, -14, 12, 28, -28, -22, -22, 15, 2, -18, 30,
-44, 3, 8, -23, 25, 6, 5, 6, 28, 6, -8, 7, -65, 10, -8,
-2, 27, 24, -12, -29, 16, 11, 0, 39, 2, 2, 9, -42, -22, -2,
8, 48, 35, -3, 0, -54, -28, 9, -6, 49, 6, -8, 0, -34, 10,
-3, 2, 12, -6, -3, 6, -2, -10, 5, 31, 6, -2, 10, 48, -7,
14, -10, 48, -2, 1, -32, 33, -4, 8, -4, -4, 6, -12, 50, -18,
10, -20, 19, -21, -8, 20, -46, -30, 4, -20, 24, 21, 3, 0, 13,
28, -8, 27, -6, 10, 9, -30, 5, -39, 4, -6, 34, -41, -4, 18,
-2, 22, -2, -14, -41, 48, -6, 21, -23, 42, -2, 30, -10, 26, -4,
-15, -32, 44, 0, 8, -17, 34, -4, 2, 33, 4, 16, -22, 19, -21,
-14, 28, -32, -34, 0, -14, -10, -23, 6, -8, 54, -16, 2, -41, -40,
24, -10, 50, -24, 18, 4, -24, 17, 18, 6, -8, 24, -6, -8, 28,
-4, -33, 8, -43, -14, -24, -8, 35, 18, 8, 4, -17, -6, 20, -1,
-5, -24, -34, 1, 0, 17, -32, 2, -3, 4, 25, -10, 13, -28, 49,
10, -14, 26, -17, -2, 3, 18, -56, -2, 0, -38, 1, -2, 4, 10,
54, 8, -28, 46, -6, -2, 18, 24, -6, -4, 6, -46, 10, 4, -22,
-20, 18, -6, 33, 46, 8, 8, -30, -19, 8, -8, 24, -24, -15, 6,
-16, 38, -34, 10, -47, 15, 19, -14, 55, 6, -3, 14, -52, -6, -1,
-14, 46, -5, -6, 11, -42, 0, 8, -6, 37, 12, 8, 3, -22, -15,
6, -2, 6, 10, -22, 5, -12, 65, -32, -4, 12, -23, 18, 0, -4,
-37, -6, 1, 0, 46, 5, -3, 2, -32, 8, 1, 0, 13, -20, 3,
-6, 10, -40, -2, 6, -12, 54, -3, 0, -38, 4, 0, 6, 22, 47,
3, -6, 12, -22, 0, -4, -21, -41, -2, 7, 10, 39, 4, -5, 21,
13, -4, 2, -38, -65, 1, -1, 17, 32, 0, -5, -18, -74, 0, 3,
0, 14, 0, -1, 6, 54, 1, 0, 16, -10, 0, 0, -33, -32, 0,
0, 27, 50, -2, 4, -22, 0, 2, -6, 19, -26, -2, 10, 19, 49,
0, -7, -29, -16, 0, 4, 16, -28, 4, -7, 14, 23, -6, 10, -38,
-16, 9, -14, 60, 0, -8, 12, -60, 10, 4, -7, 30, -10, 6, -2,
48, -18, -6, 0, -68, 2, 4, 1, 66, 26, -3, -1, -47, -26, 0,
2, 22, 18, 2, -4, -4, -12, -2, 2, -2, -2, 1, -2, 2, -1,
-1, 2, 3, 45, 1, -3, -2, -68, 0, 2, 0, 48, 0, 0, 0,
-8, 0, -2, 2, -22, -2, 4, -8, 47, 2, -5, 10, -61, -2, 2,
-4, 28, 2, 0, 6, -12, -3, 4, -16, 32, 4, -6, 20, -54, -5,
6, -22, 60, 5, -6, 20, -58, -4, 4, -17, 48, 2, -2, 11, -28,
0, 0, -5, 8
};
static const int32_t mdt4x8_mode2[1024] = {
0, 2, 2, 4, 2, 4, 12, 10, 6, 18, 31, 28, 13, 36, 48,
50, 16, 36, 40, 46, 14, 20, 20, 26, 12, 11, 11, 12, 8, 7,
8, 6, -4, -1, 5, 4, 2, 11, 16, 14, 10, 24, 31, 24, 16,
32, 26, 10, 12, 8, -16, -23, -3, -24, -43, -40, -10, -30, -38, -34,
-14, -28, -32, -30, 2, -1, -6, -12, -6, -18, -22, -25, -30, -40, -26,
-14, -26, -18, 2, 19, 10, 33, 24, 16, 24, 34, 6, -9, 16, -2,
-26, -32, -8, -34, -38, -36, 10, 17, 20, 18, 24, 47, 48, 26, 18,
28, 18, 6, -16, -39, -36, -9, -8, -12, 1, 12, 16, 30, 26, 14,
14, 12, -2, -6, -11, -26, -28, -19, 7, 6, -6, -8, 10, 12, -16,
-36, 16, 22, -2, -29, -12, -16, 18, 45, -41, -51, 4, 54, -31, -30,
-11, 10, -12, -12, -13, -6, -4, -10, -12, -4, 5, 2, -2, -2, 0,
0, -9, -14, 22, 25, -10, -58, 33, 51, 14, -64, -2, 10, 21, 2,
-9, 2, 21, 30, 3, 4, -5, 4, -6, -18, -26, -21, 2, 6, 12,
9, 30, 50, 28, -8, 8, -8, -42, -28, -8, -10, 2, 2, 17, 42,
50, -3, -7, -13, -16, -26, -26, -29, -18, 6, 0, 11, 22, 32, -20,
-30, -26, -10, -22, -26, -14, -10, 42, 52, 26, -25, -6, -20, -20, -4,
-2, 11, 6, 11, 36, 39, -3, -35, -2, -19, -18, -7, -4, 6, 22,
24, 21, 20, -11, -32, 42, 32, -30, -61, 10, 14, 18, 26, -6, -2,
24, 2, -10, 3, -5, -58, 0, 26, 18, -8, 8, 14, 0, 8, 13,
-2, -2, 12, -12, -4, 18, 12, -6, 15, 22, -12, 10, -6, -46, -25,
50, 28, 0, 42, -2, -30, -27, -5, 15, 32, 10, -46, 22, 32, 10,
-12, 6, 8, 4, -1, -20, -20, 4, -7, -12, -9, -17, -16, 33, 20,
-22, 24, 31, -24, -41, 37, 32, 23, 14, -19, -34, -21, 21, 7, -22,
2, 26, 23, -20, -16, -24, -24, 8, 6, 2, 14, -14, -23, -12, 38,
10, -7, -20, 34, 10, 2, 12, -5, -56, -18, 53, -22, -32, 20, 34,
-21, -4, -4, -24, -14, -13, -17, 0, 26, 0, -1, 29, 56, -7, -17,
-16, 7, 15, 20, -14, -23, -44, -8, 39, 18, -22, 8, 2, -40, 22,
2, -30, 4, 12, 1, 33, 37, -14, -8, -10, -13, 3, 3, -4, -4,
4, 2, 3, -10, -18, -14, 4, 0, 12, 16, -6, 6, 14, -14, -19,
6, 18, 8, -4, 12, 2, -19, -2, 36, -70, -64, 8, 55, -22, -30,
-51, -54, 14, 20, 14, 38, 14, -11, -10, -3, -14, -5, 26, -12, -14,
0, 12, 5, -6, -4, -26, -26, 10, 40, 37, 16, -16, -15, -10, -10,
55, 56, 6, -17, -9, -27, -6, 18, -11, 26, 14, -30, -15, 6, -16,
12, 24, 14, 6, 6, -16, -17, 3, -44, -6, 41, 22, -12, -6, -10,
-2, 18, 12, 46, 30, -46, 2, -10, -20, 22, 40, -6, -28, 18, 28,
-6, -16, -1, -15, 9, -3, 15, 22, 9, -52, 18, 27, -12, -18, 28,
16, 1, 2, -6, 20, 10, 0, 10, 11, 6, -19, -10, -20, 0, -2,
26, 18, 8, -4, -24, -11, -22, 18, 30, 39, 20, -6, -36, -63, -20,
42, 20, -12, 16, -10, -32, 11, -2, -24, -15, 38, -9, -13, 58, -10,
0, -3, -37, 0, 5, 4, 36, 12, -7, -26, -18, -4, 21, 36, 5,
-24, -42, -17, 32, 22, 7, -14, -12, -36, -20, 26, 20, 32, 0, -34,
4, -10, 6, 0, 14, -14, 18, -18, -14, 4, 0, -2, 28, 1, -13,
-1, -27, 4, 20, -8, 22, 55, -28, -42, 42, 32, -18, -40, 14, -15,
-2, 30, -13, -49, 21, 8, -8, 34, -4, -30, 16, -26, 3, 31, -20,
0, 3, -38, 10, 16, 2, -6, 30, 36, -10, -16, 2, 6, 8, -2,
-25, -60, 5, 36, -8, 8, 10, -32, 12, -16, -8, 32, -4, -2, 4,
-26, -4, 21, 1, 13, 16, -52, 0, 1, 0, 35, -17, -34, 31, 8,
13, -20, 42, -2, 8, -22, 8, 22, -36, 26, -16, 53, -58, 36, -11,
20, 8, -13, 10, -19, 20, -20, 1, -12, 13, 7, -8, 12, -12, -14,
18, 15, -12, -11, 6, -3, 10, -24, 15, -18, 42, -40, 18, -2, -18,
23, -12, 68, -54, 24, -4, 13, 0, -10, 13, 12, 18, -28, -3, -2,
4, 10, -2, 2, -3, -26, 14, 34, 2, -24, 19, 7, 10, -20, 2,
6, 20, -26, 20, -19, 14, -4, -14, 35, -7, -21, 46, -33, 22, 18,
-66, -4, -8, 4, 22, -56, 14, 46, -31, -13, 18, -16, 14, -57, 26,
20, -24, 20, -20, 10, 4, -14, 4, 10, -16, -11, 23, -14, 14, -29,
20, -6, -4, -10, 2, 10, -2, -22, 15, 10, -16, 1, -16, 16, -3,
22, -38, 38, -22, 6, -2, -4, 12, 18, -48, 54, -32, 48, -32, 8,
5, -4, 1, 4, -2, 10, 5, -22, 8, 23, -16, -4, 6, -37, 50,
-38, 16, 2, -14, 12, -6, 4, 4, -10, 10, -20, 18, -9, 0, 30,
-34, 20, -6, -2, 33, -45, 24, -29, 34, -19, 2, 0, -1, -3, 12,
-1, -10, 12, -10, 27, -24, 12, 0, -30, 30, -20, 7, 13, -14, 4,
-3, -25, 40, -30, 11, -50, 50, -42, 26, 2, -8, 20, -20, 52, -72,
58, -27, 31, -32, 18, -2, 2, -4, 6, -4, 15, -19, 14, -5, -4,
4, -2, 1, 2, 3, -7, 6, -12, 14, -6, -8, -12, 12, -11, 12,
-20, 22, -17, 12, 38, -44, 26, -10, -9, 15, -14, 8, 22, -28, 20,
-8, -18, 20, -14, 6, 31, -40, 25, -10, -14, 34, -37, 21, -4, -13,
26, -20, 22, -24, 18, -6, -19, 26, -20, 10, 6, -10, 11, -7, 4,
-2, 0, 2, -5, -2, 4, -4, 16, -20, 16, -6, -6, -4, 12, -4,
42, -69, 66, -30
};
static const int32_t mdt4x8_mode3[1024] = {
1, 3, 3, 6, 5, 8, 9, 14, 10, 10, 15, 24, 12, 14, 24,
32, 14, 22, 29, 31, 20, 28, 32, 32, 26, 32, 32, 30, 32, 34,
30, 28, 0, 2, 7, 14, 8, 17, 23, 26, 21, 28, 32, 24, 28,
33, 32, 10, 30, 32, 14, -15, 22, 13, -11, -30, 9, -10, -29, -30,
-10, -26, -34, -28, 0, 12, 16, 12, 12, 25, 26, 9, 30, 37, 19,
-14, 38, 23, -20, -34, 22, -16, -38, -15, -8, -32, -14, 15, -23, -16,
14, 30, -12, 12, 30, 31, 2, 26, 22, 0, 36, 48, 16, -14, 50,
16, -23, -20, 12, -30, -24, 2, -28, -24, 12, 20, -14, 16, 24, 8,
12, 22, 2, -20, 11, -4, -24, -31, -2, -17, -15, -2, -20, -18, 4,
20, -16, 10, 28, 17, 13, 18, 2, -5, 3, -22, -18, 9, -42, -28,
22, 26, -26, 25, 31, -23, 24, 26, -27, -59, 10, 22, 6, -8, 34,
18, -16, -7, 13, -16, -4, 36, -10, -3, 38, 51, -6, 2, 16, 16,
-32, -30, -6, 6, -58, -28, 6, 5, -32, 3, 9, 0, -32, -36, -4,
3, -52, -7, 14, -16, 0, 34, -9, -18, 27, -2, -14, 26, 2, -6,
23, 46, -3, 12, 21, 22, -18, -18, -7, 3, -48, -31, 1, 5, 0,
4, 3, -27, 10, 4, -28, -54, 1, -12, -33, -30, 16, 24, 2, -2,
59, 29, -6, 4, 41, -13, 0, 18, -8, 0, 21, 2, -2, 13, -13,
-36, -41, -33, 16, 10, -36, 22, 18, -19, 15, 10, -26, 9, 4, -22,
5, 29, -1, 4, 10, -24, -3, -19, -36, -36, -6, -9, -2, -3, 42,
48, 17, -12, 4, 0, -24, -44, 1, -18, -45, -29, 20, 18, -1, 12,
53, 17, 8, 11, 2, -26, 0, -4, -30, -1, 3, -30, 10, 22, -20,
-14, 26, -8, -7, 44, 40, 0, -22, 20, 24, -22, 20, 22, -14, 4,
-4, -49, 3, -1, -26, 12, 28, 6, 29, 42, -2, -6, -6, -34, -32,
-3, -16, -32, 18, 30, 12, 14, 20, -4, -36, 10, 4, -27, -14, 22,
27, -6, -18, -12, 41, -2, -4, -2, -22, 9, 24, -30, -14, 36, -20,
-14, -5, 0, 22, 50, -24, 10, 14, -44, -60, 9, 12, -2, 2, 0,
-11, 29, 12, -37, -9, 14, 4, -6, -16, -32, 26, 10, 12, -14, -2,
20, 35, -28, -40, 38, 10, -22, -28, 12, 6, 18, 25, 16, 58, 52,
-14, -4, 10, -16, -43, -22, -30, 0, 28, 18, 0, 18, 18, -8, 4,
-18, -36, 6, 14, -12, 0, 18, 5, 20, 10, -27, -13, 6, 16, 22,
10, -32, -6, 14, 25, -46, -42, 29, 36, -7, -9, 10, 10, 0, -18,
-12, 6, -16, 3, 30, 4, -38, -6, 20, 22, -14, -38, 24, 32, -14,
21, -52, -19, 14, 10, 8, 16, -26, 22, 16, -4, -26, -30, 5, 30,
-16, -12, 40, 10, -40, -21, 0, 22, 10, -28, 20, 21, -8, 6, -16,
-20, 33, -2, 29, 21, -6, -30, 5, -10, -5, -3, -14, 2, -18, 21,
20, 27, -54, -32, 35, 40, 10, -29, 1, 1, 29, 3, -33, -30, -18,
12, 29, 9, 1, 46, 12, -9, -24, -27, 10, 9, -1, -8, 14, -6,
44, 12, -50, -30, -6, 26, 8, 5, -34, 14, 26, 26, 24, -35, -27,
-16, -2, 20, 3, -6, 4, -44, 7, 1, -38, 27, 10, 8, 6, -28,
10, 26, -28, -18, 6, -9, 5, 13, 5, 20, -4, -26, 22, -1, -4,
-25, -12, -18, 58, 44, -22, -19, -10, -14, -12, 16, 48, 28, -32, -36,
-28, 14, 22, 13, 8, -19, 22, -3, -2, -6, -34, -2, -14, 18, 26,
44, -2, -13, -42, -22, -2, 12, 24, 12, -14, -2, 52, 14, 12, -40,
-25, -20, 10, 16, 22, 12, -28, -6, -11, 18, 16, -28, -4, -5, -2,
45, -2, -16, -3, -42, 20, 16, 10, 12, 4, -46, 18, 6, 7, 22,
-14, 0, -18, -20, 14, -1, 46, -12, 18, -22, 5, -35, -13, -4, 18,
55, -10, 2, -60, 22, -26, 24, -9, 34, 9, -4, -15, 0, -4, 7,
9, -16, -22, -20, 0, 46, -6, 24, -46, -6, 4, 0, 52, -27, 20,
-33, 10, -20, 2, 14, -9, 44, -30, 0, -32, 6, 14, 8, 8, -19,
7, 8, -8, -22, 0, -14, 54, -22, 34, -23, -2, -10, -32, 4, -12,
42, -2, 16, -44, 10, -14, 10, -15, 41, -18, 20, -22, 2, 16, -16,
24, -22, 8, -33, 0, -14, 6, 48, -10, 18, -3, -46, -4, 0, -2,
50, -8, -13, 20, -35, 1, 18, -36, 27, -15, -4, 32, 4, -14, 16,
-26, -5, 12, -22, 20, 24, -57, 43, -19, 18, 6, -3, 3, -11, -4,
-4, 30, 12, 8, -4, -34, -21, -13, 8, 36, 22, 12, -24, -13, -20,
6, -4, 26, -10, 27, -44, 12, -2, 12, -32, 4, -2, 6, 30, -4,
-4, 1, -42, 22, -12, 38, 18, -28, -6, -51, 40, -4, 33, -12, -13,
15, -26, 27, -19, 2, 18, -28, 24, -10, 2, -9, -8, 20, -2, 6,
0, -31, 6, -37, 53, 2, 32, -41, 14, -28, -4, -4, 16, 24, 22,
-20, 10, -28, -10, -14, 31, 6, 28, -41, 18, -10, -2, 12, -40, 42,
-8, 30, -16, -34, -7, -4, 30, 18, -4, 1, -36, 0, -2, 21, 14,
2, -2, -28, 0, 2, 4, 40, -47, 32, -22, 26, -22, 0, 9, -10,
33, -28, 6, -50, 36, -2, 25, -20, 20, -20, 5, -28, 24, 10, 13,
-16, 15, -24, 8, -35, 22, 14, 12, 25, -47, 19, -18, 15, 4, -10,
-18, 30, -26, 13, 6, -36, 41, -30, 9, 8, -14, 22, -14, -20, 22,
-29, 34, -14, 8, 18, -26, 12, -12, -10, 24, -25, 25, 11, -12, 22,
-44, 16, 11, -10, 10, -4, -19, 12, -10, -4, 26, -36, 40, -10, -20,
24, -33, 17, 25, -40, 50, -25, -8, 16, -36, 26, 10, -11, 26, -20,
-6, 2, -14, 14
};
static const int32_t mdt4x8_mode4[1024] = {
2, 4, 5, 0, 6, 8, 7, 2, 20, 14, 7, 4, 28, 24, 12,
8, 26, 34, 26, 14, 23, 34, 36, 28, 20, 32, 37, 36, 18, 26,
34, 36, -21, -12, -4, -2, -30, -34, -18, -8, -17, -37, -40, -21, 3,
-16, -41, -41, 12, 6, -24, -42, 16, 18, -1, -27, 15, 21, 16, -2,
10, 18, 22, 16, 4, 10, 4, 8, -14, 4, 17, 20, -38, -17, 24,
35, -28, -34, 8, 40, 4, -28, -14, 23, 28, 4, -18, -6, 31, 36,
-2, -22, 18, 41, 24, -16, 20, 18, 10, -10, 42, 42, 14, -12, 33,
35, 14, -5, -4, 4, -3, -6, -10, -8, -28, -37, 4, 8, -26, -58,
10, 12, 6, -24, 0, 4, 25, 31, -4, 14, 14, 11, -23, -1, 34,
27, -11, -24, 24, 42, 30, -4, -11, 23, 30, 36, -16, -16, -6, 31,
6, -31, -35, -9, 14, -10, -32, -38, -8, 2, -14, 4, -3, -18, -8,
8, -2, -28, 19, 13, 0, -24, 46, 12, 6, -5, 46, 15, 0, 14,
25, 12, -14, -2, 7, 16, -20, -48, 1, 12, -10, -68, -7, -17, 16,
36, 14, -36, 2, 61, 30, 2, -14, 34, 2, 46, 11, -14, -12, 12,
22, -22, 5, -13, -8, -18, 22, -4, -18, -24, 26, 17, -11, -12, -6,
30, 15, -21, -13, 19, 32, -13, 28, -22, -4, 21, 38, -8, -46, 13,
-24, 4, -12, -8, -40, -32, 16, 12, 15, -16, -10, 16, 36, 36, -4,
-13, 35, 22, 4, -4, 3, 28, 18, -2, -38, -4, 16, -2, -20, 3,
1, -30, 21, 20, 14, -46, 40, 2, 9, 7, 32, -16, -30, 35, 14,
-4, -44, -12, 58, -18, -29, 12, 46, 0, -30, 5, -6, -16, 3, -5,
-6, -11, -21, 16, -6, 22, -6, -4, -21, 13, 46, -15, -12, 6, 34,
-16, 15, 16, -10, -42, -32, -3, -26, -39, 2, -20, -17, -38, 16, -22,
4, 15, -19, 0, 20, 48, -21, 26, 20, 0, 12, 21, 12, -40, 34,
-17, -10, -5, 15, -14, -28, 18, 22, 26, 6, -18, 0, -2, 12, -14,
4, -38, -12, 5, -22, 20, 0, -6, -40, 28, 44, -12, 6, -2, -8,
10, -10, 14, -14, -10, -60, 12, 48, -24, 8, 12, 31, -2, 35, 4,
0, 16, 38, -10, -54, 11, -5, -28, -40, 14, 6, -28, 2, 21, 38,
18, 11, 18, 20, 11, -6, 2, -20, -40, -21, -2, -44, 4, 30, -4,
-20, 10, 34, 0, -7, 40, -3, -12, -38, 2, 0, -14, -34, -10, 13,
-8, -6, 18, 47, -13, -4, 22, 41, -12, -4, 3, -26, -33, -24, -44,
-21, -8, 13, -16, -4, -8, 19, 22, 32, 24, -2, 12, -22, 24, 2,
-12, -32, -40, 28, -23, 7, 14, 2, 14, -3, 43, -44, 12, 5, -28,
-14, 35, 8, -54, 41, -32, 1, -4, -4, -10, -14, 37, -30, 14, 22,
-21, 34, -6, -21, -2, -4, -1, -20, 16, -36, -9, 34, 8, 22, 12,
-4, -13, -32, -26, 36, 9, 26, 25, -18, 9, -4, 10, -22, 2, -5,
-52, 26, 6, 9, 29, 4, -12, -24, 35, -9, -2, -6, -32, -30, 26,
-7, 32, 22, -20, -1, 0, 42, 30, 4, -8, 15, -11, 9, -24, 6,
-48, -27, 27, -7, 22, 3, 30, -35, 35, 33, -24, -9, -18, -1, -40,
23, 15, -6, 21, -2, -4, -8, -24, -33, 14, -9, 19, 29, -14, 22,
8, 0, 12, -38, -5, -44, 2, 23, -4, 37, -2, 29, 8, -2, 10,
-49, -34, -9, -22, 34, 8, 20, 8, -6, -12, -6, -25, 33, -18, 25,
2, -56, 36, -12, 10, 1, 24, -40, -9, 14, 15, -7, 38, -17, -2,
24, -12, 27, -18, -30, -19, -24, 9, 15, 19, 19, -2, 17, -18, -43,
37, -48, 4, -21, 28, -52, 26, 0, 28, -3, 38, 18, -4, 12, -13,
10, -31, 0, -18, -5, -16, 24, -2, -8, 12, 1, 0, -6, -27, -26,
-3, -6, 34, 4, 2, -4, 2, -8, 32, 6, -3, 0, -32, -39, 36,
-29, 17, 14, 10, -36, 32, 36, -28, 46, -14, 1, -21, 4, -14, 28,
13, -42, 0, -16, -28, 39, 10, 18, 18, -26, -1, 21, -27, 30, -12,
2, -30, 11, 12, 12, 4, 8, -40, 13, -44, 19, 29, -22, 22, 8,
-18, 45, -54, 51, -54, -18, -32, 18, 6, 0, 8, 20, -16, 8, -1,
-6, 13, -10, -14, 12, -10, -2, 24, -16, 8, 4, -15, 6, 0, 24,
-20, 17, -10, 4, 20, 8, -16, -28, 0, -37, 22, 34, -5, 38, 2,
-26, -6, 4, -22, 20, -12, -22, -5, -4, 10, 47, 24, 26, -44, -6,
-38, -24, 12, 16, 10, 8, 38, -19, 24, -22, -14, -11, -2, 3, 28,
-12, -4, -25, 40, -20, 24, -8, -4, -29, -2, -25, 61, -20, 9, 9,
-5, -22, 28, 18, -18, 20, -28, 20, 26, 6, -1, -14, -42, -10, -4,
2, 54, -5, 8, 8, -40, -1, 6, -36, 48, -22, -3, 37, -10, 4,
19, -32, 6, -18, -16, 8, 14, -12, 18, 16, -24, -13, -36, -24, 24,
-1, 32, 24, -11, 0, 0, -16, 15, -10, -19, -8, 8, -16, 36, -5,
30, -16, -16, -25, 27, -24, 20, -18, 44, -48, 17, 24, -15, 18, 38,
-4, -20, 14, -60, 4, 3, -8, 26, -4, 3, 4, 4, 16, -12, 5,
-16, -28, 24, -20, 26, 17, -3, 15, -23, -30, 36, -42, 24, -24, 32,
-2, -4, 20, -6, -30, 26, -20, 8, 34, -20, 28, -2, -43, 9, -19,
-18, 43, -6, 12, 24, -38, 4, 0, -26, 30, 0, -16, 28, -22, 4,
0, 6, -26, -16, -7, -9, 22, 35, 18, 16, -9, -36, -34, -26, -8,
28, 38, 40, 13, -18, -38, -29, -30, 18, 30, 18, 20, -7, -11, -7,
-8, 4, 8, 6, 22, 12, -14, -14, -32, -25, 18, 19, 33, 35, -18,
-22, -30, -38, 18, 18, 30, 38, -15, -20, -16, -38, 14, 14, 8, 30,
2, -17, 8, -18
};
static const int32_t mdt4x8_mode5[1024] = {
6, 5, 2, 4, 13, 12, 8, 10, 18, 18, 15, 18, 22, 26, 26,
24, 22, 32, 34, 26, 15, 32, 36, 30, 9, 26, 33, 33, 4, 18,
29, 36, -2, -6, -3, -14, -3, -6, -9, -35, 2, 1, -23, -50, 6,
7, -36, -47, 4, 8, -32, -30, -2, 6, 0, -7, -4, 10, 35, 22,
-4, 14, 50, 38, -4, -2, 2, 6, 7, -6, -2, 10, 22, -2, -2,
2, 28, 15, 0, -18, 31, 32, -2, -35, 30, 41, -6, -44, 25, 36,
-10, -50, 14, 20, -6, -38, -14, -3, 2, 1, -32, -16, -2, 5, -38,
-37, -6, 17, -28, -46, -8, 23, -10, -28, -2, 13, 5, 12, 10, -2,
21, 42, 20, -5, 36, 48, 24, -4, 26, 13, -3, -12, 38, 30, -6,
-28, 6, 34, -4, -26, -35, 21, 8, -8, -46, -7, 22, 8, -22, -13,
28, -2, 12, 6, 18, -28, 33, 27, 2, -34, -3, 6, 10, 0, -33,
11, 29, 0, -48, 13, 43, -10, -39, 19, 45, -28, -15, 18, 17, -38,
15, 6, -16, -20, 24, -3, -14, 22, 8, -6, -4, 22, 18, 18, 8,
0, 18, 34, 26, -6, 2, 26, 30, -6, 4, -6, 3, 6, 25, -30,
-38, 24, 30, -18, -54, 16, 8, 13, -24, -8, -17, 34, 34, -4, 24,
14, 8, 18, 46, 12, 10, 37, 26, -14, 8, 39, -14, -18, -10, 6,
-34, 5, -26, -28, -30, 18, -18, -29, -3, 0, 0, -3, 24, -14, 20,
45, 4, 4, 21, -6, -19, 2, 42, -6, -24, -2, 29, 8, -4, 10,
-10, 24, -2, 22, -24, 11, -18, 14, 16, -24, -36, -9, 52, -32, -38,
-22, 28, -34, 15, 45, -18, -26, 4, 51, -14, -36, -12, -8, 0, -11,
2, -52, 4, 8, 22, -12, 12, -4, 9, 39, 20, -14, -2, 12, -6,
-9, -14, -37, -20, 20, 16, 10, 4, 14, 8, 18, 7, 22, -23, 12,
-10, 16, -14, 8, -47, 2, 28, 0, -25, -8, 48, -28, 39, -6, 45,
-40, 30, 2, 12, -4, -26, 7, -12, -2, 6, -23, 6, -18, 14, -38,
10, -20, 11, -17, -9, 8, -15, 21, -14, 42, -36, 40, 4, 30, -22,
26, 42, -13, -14, -2, 42, -33, -10, 0, -18, 26, 8, 8, -29, 20,
28, 10, 17, 5, 38, -12, 49, -12, -4, -28, 12, -16, -22, -6, -42,
-10, 19, 16, -11, 6, 12, 13, 54, 6, -31, -9, -20, 6, 48, -38,
-6, -6, 46, -34, 25, 6, -18, 18, 11, 14, -26, 31, -14, -12, 21,
-14, 2, -24, 10, -31, 4, 17, -22, 4, -12, 21, -23, 30, 43, -18,
18, -4, 44, -27, 16, -2, -22, -19, 16, -8, -22, -4, -10, -17, 14,
10, -14, -4, -1, 15, 6, 22, -30, 40, 1, 28, -16, 21, -60, -7,
10, -40, -46, -32, 6, -2, -29, -28, -22, 14, 24, 24, 16, 20, 20,
36, 24, -4, -28, -6, -16, -16, -9, -40, -14, -6, 12, 2, 28, 17,
-16, 20, 6, -46, 22, 25, -11, 2, 3, 12, -22, 70, -19, -14, 0,
4, -23, 8, 8, -33, -2, 18, -14, 36, 2, -8, 0, 32, -18, -4,
16, -40, 0, 10, 34, 50, 15, -12, -13, -20, -11, 10, -34, -17, -28,
10, 3, 44, 4, -12, 30, 8, 6, 14, -20, -34, -11, 14, -10, 29,
-10, -38, 23, -22, 10, 26, -10, -8, -8, 25, 16, -38, 10, 4, 24,
-18, 34, -44, -2, -4, 30, -4, 0, -33, -2, 27, 12, -22, 20, -23,
22, 14, 24, -41, -17, -17, -14, 43, 63, -20, -17, 20, -12, -4, 34,
-2, -14, -22, 0, -30, 33, -17, -14, 10, 4, 18, 28, 12, -24, 1,
17, -16, 14, -36, -40, -4, 2, 26, 19, 8, 9, -30, 28, -27, 36,
-13, 26, -16, 0, -22, -10, 13, 9, -13, 36, -11, 34, -38, 13, -26,
1, -10, 12, 8, 16, -12, 8, 15, 26, -40, 38, -30, 6, -6, -52,
-36, -5, 2, 15, 18, -6, -10, 14, 28, 14, 31, -17, -23, -29, -26,
-20, -2, -16, 7, 30, 16, 42, 32, -23, 4, -38, -15, 10, -10, 58,
16, -1, -5, -31, -26, -12, 0, 21, 20, 2, -4, 26, -20, -2, 19,
-27, 1, 12, -10, 12, -18, -40, -10, 28, 26, 44, 32, -4, -24, -12,
-22, 2, -22, 10, -58, -6, -18, -3, 23, 5, 42, 16, 18, -6, -54,
-5, -34, 8, 30, 15, 4, -11, -8, -4, 25, 10, -15, 8, -44, -8,
11, -2, 22, 28, 0, 54, 15, -28, -3, -40, -24, 8, 1, -6, 16,
8, 6, 42, 2, -8, -13, -47, -14, -20, 24, 26, 18, 28, -21, -8,
-12, -26, 22, -8, 8, 9, -33, 8, -26, -8, 50, 22, 28, -6, -30,
-49, -8, 22, 13, 30, -22, -22, -8, -6, 32, 13, 14, -28, -9, -4,
-8, 34, -8, 2, 8, -28, 12, 34, 11, -14, -20, -30, -30, 10, 2,
32, 4, 11, 8, -17, 18, -6, -12, -12, -40, 1, 0, 51, 38, 12,
8, -49, -30, -8, -11, 30, 4, 4, 6, 14, -26, -38, 25, -33, 20,
40, -20, 40, 2, -33, 8, -42, -10, 19, 14, 22, 22, -18, -28, -6,
-22, 5, 32, -6, 25, 2, -18, 2, -9, -7, 6, 4, -34, 9, 36,
3, 24, -13, -46, -18, -18, 31, 34, 34, 3, -26, -18, -34, 0, 26,
-14, 30, -13, -10, 32, -10, 12, 9, -32, 7, -14, 0, 14, 15, -26,
29, -20, -19, 30, -34, 20, 22, -18, 21, -12, -10, -9, 0, -4, -9,
28, -20, 21, 28, -39, 38, -26, -20, 28, -33, 17, 12, -19, 20, -9,
10, -12, 9, 10, -21, 16, -14, -20, 36, -20, 22, 28, -41, 18, -28,
-36, 41, -16, 30, 36, -32, 10, -24, -28, 20, -6, 14, 14, -10, 3,
-4, -4, 2, -18, 14, -25, -8, 25, -22, 36, 10, -26, 26, -45, -12,
25, -25, 50, 14, -18, 20, -47, -14, 8, -15, 34, 8, -4, 8, -17,
-2, 1, -2, 4
};
static const int32_t mdt4x8_mode6[1024] = {
5, 8, 8, 8, 8, 11, 16, 20, 12, 20, 26, 26, 14, 26, 32,
33, 14, 28, 34, 38, 14, 28, 36, 34, 11, 23, 29, 28, 7, 14,
20, 22, -2, -4, -8, -10, -10, -20, -24, -22, -19, -34, -36, -30, -15,
-24, -30, -25, 1, 1, -3, -4, 10, 18, 22, 17, 10, 24, 33, 35,
16, 27, 38, 44, -16, -26, -21, -10, -12, -26, -36, -32, 3, -6, -23,
-34, 14, 23, 12, -10, 11, 36, 41, 20, 4, 18, 26, 24, -2, -11,
-18, -2, -11, -32, -41, -29, 21, 34, 28, 16, 10, 17, 30, 34, -21,
-29, -10, 7, -14, -24, -32, -26, 14, 21, 7, -16, 20, 41, 32, 0,
13, 12, 2, -10, -4, -32, -33, -24, 12, 14, 13, 8, 22, 21, 8,
-2, 10, 9, -18, -25, 0, -15, -30, 4, -22, -40, 3, 53, -38, -35,
24, 52, -1, -2, -2, 4, 22, 12, -16, -28, -10, -16, -16, -6, 24,
25, -10, -33, 34, 40, 7, -18, -24, -25, 2, 20, -22, -34, -12, 1,
28, 42, 13, -26, 32, 40, 10, -14, -4, -16, -14, -4, 22, 27, 16,
-2, 26, 22, 6, -6, 42, 38, -10, -42, 36, 38, -2, -62, 8, 8,
2, -26, -2, -4, 0, -6, -2, 0, -4, 4, -14, -4, 14, 26, -38,
-38, 2, 27, -6, 7, 5, 10, 16, 22, 16, 10, -4, -10, -18, -11,
14, -10, -38, -26, -2, 4, 18, 30, -34, -25, 26, 56, -26, -26, -18,
1, -32, -23, 16, 54, -38, -42, 2, 50, 11, 5, -11, -16, 15, 26,
2, -22, -11, -24, -4, 12, -3, 0, -1, -11, 25, 40, 10, -26, 10,
6, -4, -4, -7, -8, -20, -33, 20, -4, -16, 2, -8, 7, 30, 24,
-4, 20, 6, -36, 11, 8, -20, -42, -6, -8, 14, 26, 18, 25, 14,
-8, 46, 40, -16, -47, -25, -42, -18, 32, 4, 36, 26, -8, 10, 6,
-2, 8, 15, -24, -37, 4, 2, 39, 38, -21, -24, -6, 7, -12, 22,
-8, -36, -7, 36, 16, 8, 20, -7, 3, 24, 20, 16, -2, -16, 22,
16, 1, -14, -6, -57, -11, 49, -15, -50, 6, 34, -27, 9, 6, -18,
15, 12, -28, -18, 32, 6, 16, 6, -12, 14, 2, -30, -50, -44, -12,
30, 13, 11, 3, 8, 30, 20, 0, -20, -16, -60, -22, 26, -14, -10,
6, 5, 16, 24, 5, -11, 20, -20, -22, 2, 6, -24, 18, 39, -30,
-17, -8, 1, -2, 50, 0, -48, 12, 32, -6, -16, 38, -4, 12, 2,
-19, 0, 16, 0, -26, -20, -11, 26, 10, 21, 24, -3, -36, -46, -12,
10, -32, 20, 10, -8, 24, 20, -3, -9, 20, -2, -14, -24, -22, 14,
8, -2, 30, 45, -6, -17, 34, 14, -9, -20, -36, -42, 14, 34, -6,
-8, -15, 2, 8, 31, 30, -4, -13, 4, -40, -28, 26, 10, 21, 4,
2, -13, 8, 15, -6, 2, -41, -46, 6, 17, 40, 44, 15, -7, -36,
-21, 5, -29, 4, 24, -10, -28, 19, 22, -28, -1, -3, 10, -4, -28,
-18, 30, -16, -9, 14, 18, -13, -49, -6, 22, 10, -34, 30, 26, -46,
-33, 2, 13, 2, 23, -10, -12, 40, -29, 26, 30, -42, -17, -6, 0,
-10, 20, 12, -2, -6, -7, -6, 3, -2, 34, 14, -21, 10, 4, -4,
10, 10, -30, 38, 28, -60, -8, -20, -18, -28, -16, 26, 45, 11, 2,
-1, -8, -12, -22, 8, 12, -38, -2, -2, 5, 42, 28, 14, -26, -16,
-40, -17, 22, -2, 49, 4, -26, 13, -20, -16, 2, -1, 50, 8, -26,
14, -36, -14, 16, 12, 24, 20, -15, -18, -36, -23, 28, 15, -20, 28,
23, -47, -28, -15, 16, 4, -16, 11, 16, -14, -43, 13, 62, -22, -14,
10, 0, -22, -50, 17, 40, -28, 25, -3, -6, 2, -5, -4, 4, 0,
6, 8, -32, 10, 30, -3, -8, 20, 22, -16, -8, 4, -25, 8, 15,
6, -4, 22, 14, -36, 12, -46, -20, 34, 0, 42, 28, -10, 0, -30,
-40, 8, -10, 24, 30, 2, 20, -13, -44, 4, 8, 4, -5, 19, -10,
-28, -8, -31, 22, 6, 42, 30, -32, 2, -40, -32, 10, 0, 34, 26,
38, -40, 14, -33, -4, -5, 11, 4, 0, 15, -18, 12, -8, -5, 16,
-12, -14, 8, -24, -16, 2, 13, 12, 26, 14, -22, 14, -36, -2, -10,
14, -2, 4, 40, -37, 30, -48, 7, -11, -29, 44, -4, 8, 34, -29,
12, -2, -20, 0, -10, -9, 0, 16, 4, 13, 14, -2, -28, 10, -40,
29, 8, 10, 32, -58, 27, -39, -24, 23, 2, 18, 31, -6, -25, 18,
-41, 14, -10, 8, 14, -30, 28, -10, -1, -12, 8, 8, -2, -1, -11,
18, -18, -16, 16, -10, 9, -2, -6, 21, -8, 48, -67, 50, -34, 10,
-8, 6, 14, -17, 22, -24, 6, -16, 34, -32, 16, -8, 22, -28, 14,
18, -31, 20, -4, 54, -55, 35, -12, 12, -28, 16, -8, 9, 10, -12,
13, -21, 12, -10, 2, 4, 13, -21, 10, 30, -30, 20, -8, -26, 34,
-29, 10, -27, 29, -34, 21, 24, -27, 32, -16, -1, 1, -11, 6, 2,
-16, 25, -10, 38, -34, 28, -15, -10, 14, -22, 14, -12, 18, -19, 8,
-6, -1, -1, -6, 17, -10, 12, 0, -8, -2, 7, -8, 28, -26, 20,
-4, -8, -5, 7, -4, 35, -51, 44, -18, 30, -51, 50, -21, -26, 42,
-38, 6, -31, 53, -36, 26, -30, 32, -34, 0, -20, 36, -18, 19, -8,
8, -8, -10, -10, 15, -10, 12, -10, 7, -4, -4, 4, -8, 9, -1,
-36, 40, -32, 19, 36, -46, 40, -26, -28, 37, -32, 20, 13, -16, 12,
-10, -10, 8, -6, 4, -4, 6, -9, 6, 13, -17, 19, -8, -11, 13,
-20, 12, 8, -6, 1, -4, 2, 1, 0, 6, 12, -17, 12, -15, -18,
26, -26, 22, 22, -29, 28, -22, -21, 32, -27, 22, 22, -32, 27, -24,
-26, 41, -44, 29
};
static const int32_t mdt4x8_mode7[1024] = {
2, 2, 2, 7, 2, 3, 8, 12, 2, 8, 12, 16, 4, 8, 18,
32, 5, 18, 34, 44, 9, 26, 39, 44, 14, 28, 38, 36, 18, 30,
32, 26, 0, 1, 3, 14, 0, 3, 13, 30, 2, 13, 32, 45, 9,
28, 42, 38, 16, 31, 28, 9, 13, 11, -4, -22, 4, -9, -26, -33,
-12, -26, -34, -33, 2, 14, 30, 41, 9, 27, 42, 42, 16, 32, 34,
14, 14, 18, -3, -22, 4, -10, -28, -28, -8, -22, -22, -6, -11, -16,
2, 23, -4, 11, 30, 32, 8, 23, 36, 42, 18, 33, 32, 10, 16,
7, -16, -33, -2, -23, -34, -10, -15, -17, 8, 26, -4, 17, 31, 18,
16, 18, 0, -24, 1, -14, -33, -40, -4, -22, -32, -18, -20, -32, -1,
28, -10, 26, 41, 6, 23, 25, -14, -31, 5, -27, -31, 7, -19, -16,
21, 29, 0, 26, 22, -15, 17, 10, -24, -38, -8, -32, -30, -1, -27,
-18, 20, 17, 2, 31, 11, -32, 10, -4, -29, -10, -5, -5, 19, 28,
8, 32, 16, -16, 15, -12, -40, -8, -25, -34, 13, 52, 32, 54, 16,
-32, 27, 0, -28, -11, -12, -8, 18, 16, 8, 24, 2, -14, 8, -14,
-18, 18, -8, -6, 27, 35, 2, -11, -10, 2, -41, -48, -5, 28, -8,
-2, 11, -14, 2, 16, -2, -39, 22, 34, -2, -2, 30, 5, -1, 54,
-2, -40, -2, 45, -36, -36, 0, -16, -26, -12, -15, -22, 14, 19, 7,
8, 10, 19, 0, -12, 9, -1, -12, 14, 2, -6, 16, 48, -12, -24,
-6, 7, -39, -38, -8, -23, -8, 26, 12, -40, 35, 41, -14, -24, 34,
8, 4, 29, -15, -18, -25, -26, 5, 17, 13, 32, 19, 0, 2, 40,
-31, -50, -6, 16, -43, -19, 6, 10, -5, -12, -5, 30, -19, -31, 8,
22, -37, -11, 3, -22, 15, 16, 8, 34, -12, -38, 2, 42, -54, -44,
0, 1, -27, -15, -10, 6, 6, -4, 10, 38, -22, -29, 0, -2, -32,
-14, -16, -21, 14, 16, 6, 14, 48, 48, -24, -48, 22, -2, 3, 22,
8, 24, 16, -26, 8, -9, -21, -12, 0, 18, 26, 12, 23, 12, -24,
-20, -9, -24, -2, -2, 18, 36, 12, -24, 25, 20, 18, 32, -36, -48,
-16, -11, -16, 18, -1, 4, 36, -8, -14, 32, -24, -27, 11, -16, -4,
18, -12, -16, 9, -11, 16, 48, -24, -12, 2, -32, 30, 2, -42, -8,
18, 11, 23, 26, 2, -10, -22, -24, 6, 4, 6, 26, 12, 8, 18,
-13, -54, -30, -10, -20, 12, 36, 18, 33, 10, -40, -22, 12, -64, 8,
26, -26, 19, 8, -14, 24, -26, -17, 16, -21, 2, 18, -4, -2, 0,
-8, 8, 26, -24, -2, -30, -13, 58, 0, -12, 22, -8, 3, 24, -27,
4, -6, -6, 1, 16, 6, 8, -10, -22, 12, 28, -11, -52, -2, -24,
40, 34, -16, -48, 22, 48, -1, -4, -34, -4, 21, 22, 20, -12, -10,
-8, -4, 24, 12, 6, -12, -40, -2, 34, -18, -18, 16, 14, -32, -27,
-4, 40, 15, -36, 7, -10, -5, 0, -20, -34, 32, 38, 20, 5, -36,
-23, 8, 10, 7, -32, 21, 50, -56, -46, 0, 28, 9, -16, 9, -9,
14, 13, -22, -26, 1, 20, 16, 18, -12, 8, -5, 0, -7, -24, 14,
30, -4, 8, -18, -26, 21, -11, 0, 15, 5, 5, -8, -16, -16, -2,
24, 36, -18, -34, 2, 18, -13, -38, 4, 16, 8, 1, -4, -14, 13,
-14, -16, -19, 44, 59, -20, -52, 16, -2, -6, 7, -6, 3, 13, 9,
-21, -20, 3, 30, -15, -27, 16, 24, -28, -22, -1, 28, -7, -42, 24,
38, -48, -42, 4, 32, -2, -36, 11, 11, -12, -28, 10, -2, 24, 30,
-28, -50, 20, 32, 13, 10, -18, 10, -11, -4, 2, -20, 14, 16, 6,
16, -22, -24, -6, -12, 26, 46, -34, -32, -1, -14, 28, 22, 4, 16,
0, -50, -6, -15, 0, 61, -4, -12, 22, -30, 8, 2, -38, 4, 20,
-12, 52, -9, -21, -4, -34, 16, 16, 0, 20, -4, -8, 9, -12, 14,
-17, 2, 16, 10, 8, -17, -37, -16, 26, 36, 29, -14, -33, -52, -2,
25, 48, 17, -10, -42, -10, -10, 14, 24, -4, 2, -14, 3, -9, 16,
-6, 22, -29, -6, 6, 12, 28, 19, -24, -38, -20, -2, 32, 42, 6,
-3, -36, -26, -10, 13, 44, 24, -4, -42, -14, 10, 0, 31, 0, -1,
-2, -22, 13, -16, 20, -22, 5, -24, 18, 7, -7, 12, -47, 30, -11,
21, 22, -34, 29, -48, 46, -34, -2, 1, -8, 28, -12, 8, -28, 14,
-2, 10, 0, -6, 4, 14, -27, 28, -16, 33, -42, 26, 0, 6, 9,
-25, 14, -20, 35, -26, 8, -14, 10, 8, -10, -4, -20, 21, -7, 34,
-22, -2, 8, -26, 46, -40, 16, -14, 8, -2, -1, 25, -42, 38, -18,
10, 2, -20, 17, -22, 46, -23, 1, -24, 0, 6, 3, 2, 11, -22,
9, -20, 6, 16, -20, 29, -48, 48, -16, -16, 22, -21, 10, -5, 3,
16, -27, 0, -12, 18, 9, 4, 8, -18, -11, -5, -12, 48, -16, 38,
-58, 18, 1, -8, 46, -44, 20, -18, 11, 8, -12, -31, 45, -38, 17,
-4, -23, 36, -32, 27, -19, 16, 12, -12, -12, 8, -12, 40, -26, 8,
6, -21, 24, -18, 3, 20, -26, 18, -1, -6, 18, -30, 14, -12, 16,
-16, 10, -4, 7, -9, 3, -22, 34, -23, 3, -11, -8, 22, -14, 4,
-12, 14, -5, 24, -47, 45, -23, 40, -48, 37, -14, 24, -22, 16, -3,
-28, 29, -18, 6, 24, -22, 20, -11, -28, 38, -30, 16, 20, -32, 22,
-14, -19, 48, -46, 24, -11, 2, 12, -14, -9, 22, -24, 18, -10, 10,
-4, -4, -12, 28, -30, 14, -30, 44, -30, 12, -25, 34, -42, 16, -30,
50, -30, 4, -9, -3, 7, -1, -12, 18, -20, 12, -8, 5, -3, -2,
-12, 20, -19, 8
};
static const int32_t mdt4x8_mode8[1024] = {
2, 2, 2, 8, 6, 6, 8, 20, 8, 7, 16, 30, 8, 12, 28,
33, 10, 23, 34, 28, 16, 32, 34, 24, 28, 36, 28, 22, 35, 31,
25, 22, 2, 0, 8, 12, 8, 9, 17, 20, 12, 22, 28, 16, 20,
34, 26, -1, 32, 32, 8, -25, 32, 20, -18, -38, 20, -5, -35, -34,
5, -24, -38, -29, 10, 20, 16, 3, 40, 42, 16, -6, 56, 35, -2,
-16, 50, 13, -20, -12, 29, -11, -20, 0, 6, -20, -6, 16, -9, -15,
10, 23, -12, 2, 22, 22, 16, 21, 4, -15, 40, 22, -14, -19, 36,
-9, -30, -8, 1, -36, -19, 4, -29, -24, 10, 0, -11, 22, 18, -14,
32, 32, -7, -26, 36, 2, -32, -32, 14, 17, -4, -9, 30, 6, -24,
0, 22, -18, -10, 38, -2, -12, 34, 49, -7, 8, 36, 22, -14, -2,
3, -1, -41, -26, -14, -1, -52, -30, -6, 4, 13, 11, -3, -10, 18,
-3, -22, -22, 2, -24, -20, -16, -24, -6, 10, -7, -12, 30, 0, -26,
34, 21, -39, -14, 40, -20, -26, 38, 14, -16, 24, 51, -4, -14, -3,
-31, -15, -10, -18, -50, -16, 8, -28, -28, 12, 14, -18, 14, 46, 8,
6, 42, 46, 10, 28, 16, 16, 4, 6, -12, -25, -23, -18, -4, 6,
2, -10, -26, 0, -9, -38, -23, -6, -14, -22, 18, 25, 6, 14, 14,
42, 3, 2, -26, 2, -31, -20, -34, -27, 2, 8, -16, 31, 64, 16,
-9, -58, -24, 18, 2, -55, 16, 12, -4, 22, 26, -29, 8, 30, -28,
-12, 30, -18, -14, 28, -5, 2, 14, -12, -34, 4, -4, -21, 10, -6,
5, 8, 18, 4, 11, 25, -20, -4, 32, 22, -41, -24, 33, 12, -16,
-20, 26, 20, 30, -22, 10, 9, 30, -27, -34, -20, 10, 0, -30, -10,
-2, 48, -3, -13, -1, 34, -8, -12, 16, 4, -30, -5, 30, -17, 2,
-2, 10, 23, 2, -26, 21, 25, -38, -4, 28, -18, -18, 4, -16, 6,
7, -41, 0, 34, -24, -20, 56, -28, -27, -30, -30, -6, -28, -30, -22,
42, 6, 16, -6, 26, 34, 28, -28, -16, 11, -2, -12, -44, 9, 8,
20, -13, 20, -10, 16, 20, -24, -18, 13, -30, 15, -18, -10, -21, 8,
-19, 20, 12, -18, -8, 50, 5, -14, -5, 16, 10, -8, -36, 2, 21,
-30, -22, 48, 32, -22, 6, 18, 26, -26, -13, -32, -16, 28, 32, -43,
-8, 32, 3, -10, -14, 0, 9, 46, -32, 11, -4, -9, 12, -10, -28,
-34, -4, -2, 32, -11, -5, 36, 0, -13, -14, -15, -10, 48, -17, -32,
-22, -14, 28, -20, -12, 0, 30, 28, 23, 10, -37, 25, 2, 18, -31,
-35, -24, 20, 34, -24, 6, -22, 26, -8, -8, -28, -17, 21, 28, 4,
44, -44, 0, -17, 14, -11, 14, -17, -24, 40, -10, 28, 4, 2, -4,
28, -2, -22, 3, -48, -10, 5, -14, 2, 15, 16, 21, 46, -17, -18,
0, -29, -28, -33, 37, 42, 29, -4, -7, 11, 14, -4, -40, -13, -42,
15, 12, 5, 12, 3, 6, -13, 22, -34, 10, 8, -24, 18, 0, 28,
12, 7, -46, 4, -12, -45, -22, -34, 31, 11, 36, -2, 0, -4, 18,
18, -17, -33, -37, -8, 17, 16, 8, -4, 18, 26, 11, 19, -46, -29,
-26, -2, 32, 8, 0, 2, -42, -8, 2, 10, 32, 8, 10, -14, -10,
-24, 23, -20, -8, -12, 8, 32, 36, -11, -32, 24, -24, 24, -48, -15,
-7, 48, 4, 4, -1, -23, 24, -12, -2, 8, -19, -16, 2, 34, -31,
16, -28, 28, 24, -17, 2, -26, 39, -24, 2, -46, 14, 11, 27, 12,
-22, 16, -9, 13, -24, 26, -16, 31, -36, 6, 31, 1, 26, -6, -23,
-36, 36, -30, 32, -30, 32, 2, 18, -20, 8, 23, -22, 4, -36, 6,
29, 0, -18, 11, -14, 18, -4, 7, -11, 30, -40, 13, 24, -23, 30,
15, -10, 4, -12, -7, 3, 16, -30, 24, -4, 0, 8, -21, -2, 6,
-2, 8, -2, 4, -32, 56, -6, 34, -48, -46, -5, 3, 38, -2, -6,
-26, 12, -1, 6, 1, 34, -19, 0, -42, 14, -11, 12, -26, 49, -14,
28, -36, 28, -22, -10, -36, 28, 16, 43, -18, -12, -14, -7, -5, 16,
4, 13, -32, -46, -12, -6, 33, 16, 20, 10, 7, -14, -8, -8, -27,
2, 0, 4, 46, 2, 5, -16, -36, -29, -2, 22, 24, 35, -28, -20,
4, -28, 34, 24, -10, -36, 54, -30, 35, -16, -32, 10, 13, 5, -8,
-12, -18, 30, 22, 4, -12, -36, -23, 16, 16, 31, -3, -28, -10, 12,
-15, 24, -22, 10, 10, 7, -55, 26, 6, 12, 44, -19, 0, -22, -39,
-10, 25, 34, 22, 8, -20, -23, 0, -36, 33, -8, 23, 6, -21, 11,
-26, 12, 6, -4, 12, -13, 4, 1, -8, 40, -16, 8, -29, -12, 10,
0, 22, 4, 7, 10, -36, 23, -30, -8, -12, 12, 14, 29, -2, -21,
-15, -21, -6, 61, -24, 31, -44, 8, 14, 37, -10, 3, -24, -42, 17,
10, 12, 42, -13, -3, 4, -39, 3, 9, -30, 26, -7, 6, 38, -1,
-10, 3, -40, -8, 14, -12, 40, 8, -13, 19, -30, 2, -6, 34, 2,
-2, -24, -31, 4, 18, 38, 12, 0, -28, -40, 6, 3, 42, 18, -28,
6, -48, 26, 10, 2, 28, -38, 0, 2, -10, 27, -15, 3, 10, -6,
13, -52, -8, 2, 11, 63, 3, -8, -33, -51, 4, 14, 29, 39, -4,
-9, -31, -20, 1, 22, 10, 16, -11, -10, -2, -15, 7, -3, 12, -1,
-6, 20, -30, 8, 2, -18, 50, -16, 10, 2, -52, 25, -20, 28, 24,
-21, 16, -38, -1, 12, -12, 42, -26, 4, 0, -23, 22, -11, 0, 14,
-20, 14, 14, -16, 16, 2, -22, 20, -30, 4, 26, -29, 36, -12, -22,
34, -39, 17, 14, -32, 44, -22, -6, 20, -34, 21, 3, -14, 29, -20,
1, 1, -12, 12
};
static const int32_t mdt4x8_mode9[1024] = {
0, 0, 3, 11, -1, 3, 12, 24, 2, 11, 25, 34, 6, 20, 34,
38, 8, 24, 33, 36, 11, 24, 32, 34, 13, 26, 31, 29, 17, 25,
26, 22, 1, 0, 2, 12, -5, 0, 18, 25, -5, 18, 39, 32, 10,
36, 38, 18, 18, 29, 10, -8, 14, 4, -20, -27, 0, -24, -36, -34,
-18, -34, -35, -30, 0, 3, 10, 12, 4, 20, 33, 18, 20, 43, 28,
-3, 30, 30, -11, -26, 20, -10, -37, -21, -6, -36, -28, 0, -18, -20,
10, 28, -4, 16, 35, 35, 6, 16, 23, 26, 26, 45, 40, 21, 40,
31, -4, -18, 16, -18, -30, -8, -14, -21, 9, 16, -8, 20, 32, 2,
12, 26, 2, -24, 6, -10, -28, -32, -15, -33, -27, 4, -34, -38, 1,
34, -17, 9, 32, 22, 3, 2, -4, -11, -24, -40, -21, -4, -40, -22,
12, 8, -4, 24, 18, -16, 24, 20, -18, -33, 8, 12, -6, -42, 10,
2, -31, -53, 14, 20, -4, -14, 44, 43, 12, 4, 38, -1, -6, 16,
0, -22, 14, 20, -10, 12, 22, -12, 8, 14, -20, -39, -2, 6, 4,
-2, 0, 6, 2, -4, 0, 4, 0, 10, -8, -10, 2, 40, -22, -34,
-2, 54, -24, -36, 5, 41, -32, -38, -8, 16, -44, -37, -10, 7, 26,
38, 20, -1, 41, 27, -7, 6, 10, -30, -6, 46, -22, -16, 30, 27,
-8, -10, -10, -21, -22, -37, -20, -20, -17, 9, 10, -11, 28, 33, 0,
-13, -28, -30, -8, -12, -18, 2, -4, -27, 38, 36, -11, 2, 23, -16,
6, 45, -22, -21, 33, 8, -11, 6, -18, -49, -2, -8, -24, -18, 13,
27, 24, 16, -16, -9, 32, 34, -34, 2, 41, -8, -36, -14, -17, -34,
-16, -5, -12, 20, 32, 16, 8, 30, 16, -28, -12, -4, -24, -15, 12,
-18, 17, 38, 4, -30, 28, 22, 4, 10, -9, -28, -7, 29, -17, -27,
-26, 18, 58, 3, -32, 16, 38, -13, 8, 4, -20, 4, 30, -35, -22,
12, -2, -20, -18, -9, 12, 29, 7, 19, 40, -2, -13, -1, 14, -37,
-38, 3, 22, -13, -6, 22, 7, 22, -8, -34, -34, 14, -4, 0, -6,
-16, 48, 33, -13, -6, 26, -26, -9, 38, -38, -18, 39, 28, -23, 14,
0, -18, 4, -12, -32, 2, 20, 12, 35, 0, -2, 7, 16, -48, -41,
-2, 11, -3, -10, 14, 23, 40, -8, -31, -19, -6, -41, -12, 6, -42,
-20, 34, 17, -14, -2, -2, 3, 54, -13, -24, -28, 16, 26, -2, -42,
-18, 31, 16, 18, 0, -8, 12, 22, -16, -28, -4, -2, 2, -18, -10,
4, 22, 18, 1, -14, -12, 9, 1, 16, -19, -40, 22, 35, -30, -3,
-5, 1, 5, -4, -6, 39, -12, -35, 16, 12, -62, -32, 8, 16, 36,
29, 4, -2, 36, 4, -34, -10, -8, 5, 27, -5, -6, -9, -2, 3,
30, -14, -24, -14, -14, 40, 6, -16, -26, 12, 14, 54, 14, -53, 1,
11, -31, -16, -33, 0, 49, 15, -23, -28, 8, 50, -11, -20, 8, 3,
-12, 4, 18, 36, -1, -41, 12, 26, -16, -11, 25, 14, 10, -19, -8,
26, -10, -25, 22, -24, 22, 42, 18, -13, -4, -22, -4, 8, -31, -1,
24, 33, 18, 4, -23, -32, -14, -18, 10, 10, 24, -4, 28, 24, -25,
-22, -20, -18, 27, 42, -31, -41, -28, -22, 6, 63, 25, -12, 14, -30,
-26, 10, -16, 1, 27, -6, 16, 19, -30, -12, 18, -6, 18, 8, -36,
6, -8, -7, 32, -1, 0, 14, -26, 27, -6, 1, 32, 10, -9, 3,
-42, -18, 12, 34, 1, 8, -24, 0, 18, 6, -16, -12, -41, 0, 44,
34, 22, -43, -30, -26, 10, 21, 17, -8, -2, 18, -28, -19, -2, 11,
2, 32, -18, 14, -39, 26, -24, 31, -20, 10, 21, -12, 45, -34, 8,
-44, 16, -24, 10, 6, 12, 22, -24, -16, -13, 24, -4, 35, -34, -20,
-6, 2, 10, 39, -4, -8, 1, -40, 7, -12, 6, 29, 0, 29, -33,
12, -28, -6, -20, 20, 28, 46, -2, -30, -13, -22, 8, 30, -10, -8,
7, 18, 12, 15, -22, -23, -10, 0, 43, -4, 16, -42, 12, -48, 18,
17, 44, -6, -7, -56, -4, 12, 4, 20, 0, -14, -4, -2, -10, 34,
-20, 18, -32, 16, 12, 12, -4, -1, -34, 3, -7, 24, 42, 5, -22,
-7, -44, 18, -15, 34, 25, 8, -14, -2, -19, 10, -22, 35, -4, 29,
-46, 26, -10, -11, 36, -20, -7, -30, 7, -10, 26, 17, 1, -2, -32,
-8, -12, 28, 21, 10, -8, -24, -16, 4, 1, 36, -8, 10, -44, 26,
-14, 41, -40, 36, -14, -6, 14, 34, -27, -9, -25, -4, 16, 20, 4,
30, -22, -14, -46, 34, -16, 56, -23, 4, 14, -20, 20, -18, -3, -8,
28, -24, 22, -21, 4, 12, -19, -26, 9, -8, 13, 23, 20, -28, 14,
-58, 38, -9, -4, 28, -36, 12, 2, 8, -7, 17, -15, 0, 4, -43,
39, 0, 14, 14, -37, 2, -15, 13, 10, 14, -26, 31, -34, 22, -30,
24, 19, -1, 16, -48, 6, -12, 30, 10, 0, -16, -9, -19, 7, 7,
41, -20, 11, -48, 4, 6, -10, 30, -25, 17, -7, 28, -26, 21, -4,
-8, 21, -26, 16, -18, 28, -22, 5, 0, -17, 25, -16, 8, 12, -34,
30, -29, 26, 8, -22, 26, -46, 24, 0, -11, 32, -34, 16, -20, -16,
48, -37, 44, -44, 12, 18, -2, -4, 19, -21, 18, -17, -6, 18, -12,
6, 17, -31, 14, -30, 26, 6, 27, -30, 16, -11, -6, 12, -16, 12,
-37, 46, -34, 10, 18, -40, 46, -24, 10, -4, -17, 17, -10, 7, 5,
-12, 22, -18, 9, 4, -26, 30, -21, 4, 18, -30, 27, -8, 0, 13,
-27, 16, 20, -18, 16, -5, -21, 24, -26, 16, 23, -27, 23, -16, -24,
36, -34, 24, 22, -32, 34, -24, -16, 28, -34, 25, 6, -16, 26, -20,
-1, 4, -13, 12
};
static const int32_t mdt4x8_mode10[1024] = {
0, 3, 3, 8, 4, 8, 12, 21, 10, 20, 24, 30, 18, 30, 34,
31, 22, 31, 35, 28, 16, 26, 33, 28, 12, 24, 28, 26, 16, 22,
22, 22, -4, 6, 7, 2, 10, 22, 16, -3, 36, 45, 13, -14, 58,
46, -2, -23, 48, 16, -13, -20, 14, -10, -14, -16, -11, -22, -16, -12,
-19, -20, -15, -10, 7, 6, -2, -11, 28, 16, -16, -30, 41, 6, -38,
-33, 25, -15, -34, -13, -2, -24, -7, 11, -20, -14, 20, 32, -18, 5,
29, 37, -4, 17, 30, 33, -8, -9, -8, -12, -18, -29, -20, -11, -16,
-32, -26, -12, 20, -3, -27, -23, 46, 26, -12, -32, 42, 36, 6, -27,
24, 30, 19, -8, 15, 22, 17, 8, 26, 2, -4, -4, 53, 2, -26,
-10, 53, -16, -26, 1, 11, -10, 13, 10, -24, 18, 35, -2, -7, 36,
14, -18, 18, 16, -14, -30, 8, -10, -30, -33, 0, -7, -10, -17, -5,
-8, -14, -37, -28, 7, -6, -44, -34, 32, 12, -31, -12, 44, 32, 8,
11, 19, 18, 26, 1, -22, -12, 24, -22, -37, -13, 14, 10, -18, -45,
-23, 8, -48, -53, 4, -4, -26, -8, 34, 24, 17, 18, 26, 30, 2,
-2, 14, -8, -38, -7, 13, -26, -28, -2, 6, -10, -4, -8, -3, -13,
-8, 22, 29, -2, -4, 10, 24, 26, -32, -21, 18, 8, -30, -6, 25,
-4, 18, 2, -8, 18, 25, -17, -10, -4, -30, -24, 25, -43, -38, 15,
52, -2, -29, -14, 30, 3, -36, 2, 45, 17, -2, 14, 5, 4, 26,
-2, -52, -38, 17, 2, -45, -47, 0, 18, -10, -14, 2, 16, 12, 8,
7, 6, 10, 36, 20, -6, -10, 56, 14, -13, -2, 2, 2, 14, 6,
-40, 14, 28, -10, -6, 11, -23, -33, 30, -18, -42, -14, 16, -10, -8,
21, 17, 24, 26, 30, -50, -24, 4, -14, -42, -10, -10, -36, 36, 7,
1, -18, 20, -1, 48, 12, -26, -6, 16, -14, -6, -9, -35, -4, 19,
-2, -24, 7, 33, 22, 10, 14, 24, -37, -33, 12, 15, -34, 1, 18,
-3, 36, 20, -23, 12, -4, -22, -2, -1, -40, -4, 40, 16, 14, -10,
-4, 41, 14, -30, -2, 21, -25, -4, 32, -16, -23, 12, 30, 8, -19,
10, 18, 36, -22, -3, -14, -16, -4, -1, -21, 2, 10, -22, 20, 45,
-15, -20, 60, 20, -9, 10, 11, -3, 14, -8, -54, -16, -27, -9, 0,
0, -16, -4, -14, 22, 39, -14, 4, -38, 36, -28, 39, -30, 16, -18,
17, 18, 2, 2, -31, -15, 0, 21, -34, -34, 17, 34, -6, -32, 8,
-26, 6, -12, 26, -43, 32, 6, 40, -32, 29, -22, -10, 8, -26, 5,
-39, 35, -26, 38, -14, 18, 0, 10, 10, -2, 6, -20, -4, -11, -1,
-13, 10, 5, 8, -10, 20, -10, 14, -4, 10, -44, 20, -9, 30, -51,
22, -5, 36, -20, 2, -18, -12, 1, 14, 20, -12, -30, 14, 60, 0,
-30, 10, 12, -22, 8, 60, 12, 7, 1, 10, -25, 3, -34, -43, -8,
-3, 14, 10, 34, 2, 44, 8, -6, -14, -6, -16, -34, -14, -22, -15,
13, 42, 10, 0, 10, -32, -25, -6, 0, 0, 10, -15, 6, 38, 24,
2, -8, -56, -11, 28, 5, 14, -6, -39, 20, 24, 16, 2, -36, -34,
12, 28, 30, 6, -26, -15, -46, 1, -39, 7, 15, 35, -27, 6, 8,
-5, 28, 3, -17, -24, 3, -28, 20, 27, -26, 31, -24, 34, -18, 15,
-31, 14, -20, -30, 6, 2, 13, 15, -33, -34, 36, -16, 36, -16, 25,
-21, 16, -18, 9, 16, -37, 8, 2, -5, 33, -18, 0, -6, 6, -28,
38, -4, -14, 20, -10, -16, 14, -8, -34, 37, -18, -44, 24, 16, 31,
14, -24, -10, -34, 19, -16, 2, 0, 7, 20, 22, 19, -9, -26, -18,
-38, 22, -26, -1, 22, 28, 24, 36, -18, -25, -4, -25, -4, -42, -8,
-58, 18, 16, 43, 12, -10, 1, -12, 28, 4, -14, -30, -24, 6, 17,
47, 7, -16, -8, -28, -1, 16, -6, -18, 9, -12, 17, 28, -19, -56,
38, -14, -12, 30, -14, 4, 26, 0, -16, 18, -36, -4, 6, -16, 14,
1, -5, 20, 23, 4, -4, -6, -54, -4, -9, 20, 47, 12, -3, -13,
-18, -30, -3, 16, 9, 32, 6, -24, -11, -28, -9, 31, 5, 24, 7,
-15, 5, -14, -21, -4, -15, 2, 15, 48, 12, 34, -56, -28, -14, -8,
27, 29, -12, -4, 30, 48, -18, 11, -52, -12, 5, -6, 30, -8, 18,
-2, 10, -11, -13, -1, -24, 12, 0, 5, 48, -29, 23, -49, 8, -26,
8, 12, 10, 7, -10, -3, 0, 30, 2, 4, -9, -14, 0, 1, 18,
-10, 14, -4, -22, 10, -26, 10, 8, 13, 22, -4, -10, -6, -13, 12,
-48, 56, -32, 47, -48, 32, 2, -26, 25, -7, -16, 30, -29, 14, 28,
-23, 28, -12, -33, 16, -30, 6, 30, -8, 31, 2, -36, -4, -27, -4,
40, 12, 18, 6, -41, -12, -9, 0, 17, -6, -30, 19, -5, 17, 29,
-17, 6, -36, -10, 2, 6, 46, 5, -4, -14, -54, 7, 2, 18, 43,
-6, -21, -4, -31, 6, 28, -10, 4, 14, -40, 24, -12, 18, -26, 56,
14, -8, 9, -60, -8, -8, 22, 33, 10, 6, -36, 2, -7, 2, 40,
-20, 10, -20, -26, 14, -4, 26, 5, 2, 8, -26, 14, -6, 2, 18,
24, 19, -2, -30, -18, -24, 0, 34, 14, 20, 0, -40, -6, -24, 8,
36, -1, 28, -20, -18, -2, -22, 31, -2, 0, 14, -36, 44, -38, 14,
-18, 17, -44, 13, 19, -13, 57, -22, -14, 2, -51, 24, 7, 11, 32,
-16, -4, -22, -20, 8, -4, 34, -4, 2, 8, -31, 18, -7, -2, 18,
-24, 12, 6, 0, 1, -6, -11, 9, -13, 8, 17, -14, 24, -13, -22,
21, -30, 18, 21, -24, 32, -20, -22, 28, -42, 25, 20, -28, 42, -27,
-14, 22, -37, 28
};
static const int32_t mdt4x8_mode11[1024] = {
1, 2, 4, 12, 2, 8, 16, 24, 6, 14, 26, 36, 8, 20, 33,
40, 10, 26, 36, 36, 12, 27, 34, 31, 11, 25, 29, 28, 9, 18,
22, 20, 1, 3, 6, 15, 6, 13, 23, 28, 10, 28, 37, 28, 16,
33, 31, 13, 12, 20, 6, -10, 0, -4, -22, -30, -14, -30, -36, -32,
-24, -36, -32, -27, 0, 6, 20, 26, 20, 41, 48, 28, 32, 44, 16,
-12, 13, -3, -31, -24, -10, -32, -30, -8, -16, -24, -8, 6, -7, -2,
14, 23, -1, 11, 24, 26, 3, 8, 15, 19, 18, 24, 20, 12, 14,
3, -16, -18, -12, -37, -29, 2, -18, -14, 18, 26, 13, 40, 38, 10,
26, 24, -5, -24, -6, -26, -42, -44, -8, -22, -24, -14, -20, -32, -8,
10, -1, 22, 36, 11, 22, 30, -2, -20, -3, -30, -32, -3, -18, -16,
20, 27, 11, 32, 25, -13, 23, 17, -30, -50, 34, 56, 33, -6, 40,
32, -12, -33, 0, -19, -15, 6, 4, 16, 24, 14, 19, 2, -14, -2,
-10, -35, -2, 22, -18, 7, 31, 4, 4, 10, -16, -38, 1, -2, -16,
-30, -2, 2, -8, -29, 14, 26, -2, -40, 34, 30, -21, -20, 42, 20,
-8, 18, 30, 12, 14, 28, -4, -8, 11, 17, -50, -36, -6, 12, -32,
-42, -10, 2, -10, 13, 8, -31, 27, 20, -23, -20, 12, -10, 3, 44,
-3, -12, 25, 45, -16, -30, 2, 2, -40, -28, -2, -14, 4, 27, 7,
-27, -7, -20, 10, 40, 2, 3, 22, 8, -6, -8, -12, -34, 2, 14,
-9, -28, 52, 50, 5, -18, 32, 6, -10, -17, 4, 6, 10, -12, 36,
42, 9, -31, -38, -42, -23, -36, 33, 45, -5, -16, 32, 0, 4, 32,
-26, -22, 20, -13, -8, 20, -5, -45, 16, 12, -7, 5, 5, 2, 20,
21, 0, -4, -8, -14, -2, 14, 14, -21, -7, 10, -6, -40, 28, 23,
-12, -4, 52, 16, 4, 25, -6, -16, 6, -20, 0, 24, -11, -56, 46,
36, -9, -8, 18, 10, 12, 6, 24, 22, -30, -53, 26, 18, -2, 2,
7, 14, 26, 12, -12, -14, -22, -22, 18, 15, 11, 24, -2, -4, 14,
-3, -14, 4, -24, -60, 28, 29, 10, 26, -31, -22, 11, 2, 0, 21,
12, 5, -8, -31, -20, -4, 14, 11, 8, -12, 29, 10, 10, -7, -60,
-22, 34, -10, -9, 37, 6, -18, 8, -36, -25, 44, -34, -13, 31, 9,
-9, 16, -2, -22, -14, -6, 19, 16, -32, 4, 0, 27, 28, -22, -64,
33, 47, -10, -6, 2, 17, 12, -10, -26, 4, -6, -2, 24, -2, -11,
-6, 46, 34, -6, -50, 10, 42, -15, -26, 11, 21, 20, 22, -18, -12,
-12, -13, -10, 8, 4, 26, 27, 8, -6, -24, -40, -22, 16, 28, 12,
-16, 4, -14, -10, 15, 10, -5, 19, -6, 8, -4, -36, -32, 26, 20,
-10, -26, 20, 16, 36, -15, -36, -48, 6, 54, 32, 0, -10, -29, 2,
12, -6, -12, -3, 8, -26, 8, 0, 4, 32, 8, -30, -22, 30, 44,
-12, -31, 8, 26, 8, -5, 17, -8, -15, -24, 34, 46, -30, -38, 26,
24, -2, -4, -12, 9, -16, -1, 0, 10, 25, 32, -44, -48, -2, 20,
-19, -8, 24, 14, 0, -9, -3, -8, -18, -34, 25, 28, 30, 28, -30,
-40, 0, 6, 2, 32, -15, 8, -2, 12, 29, 12, -12, -33, -30, 26,
32, 18, -20, -16, 4, 10, -12, -14, 20, 9, 12, -6, -4, -10, 18,
6, -12, -22, 26, 66, -20, -45, 28, 56, -32, -65, 24, 38, -4, 10,
2, -11, 0, -6, -8, 4, -14, -5, 48, 22, -13, -10, -12, 10, -25,
-6, -10, 18, 14, 8, 3, 8, -23, -4, 10, -22, -10, -2, -10, 64,
0, -24, 19, -20, -26, 22, -16, 6, 33, -8, -9, -2, -32, 3, 36,
4, 20, 11, -52, -20, -10, 0, 34, 14, -2, 4, -12, 2, 10, -20,
-28, -15, 23, 23, 37, 0, -20, -26, -44, 20, 15, 44, 14, -34, -4,
-32, -3, 28, 23, -9, 18, -22, -8, -3, -10, 32, 6, -25, 20, 22,
-14, -6, 10, -20, 20, 24, -32, -2, -40, 18, 23, 32, 3, 8, -47,
-36, -9, 30, 26, 42, -36, 2, -10, 14, -14, 20, -7, 8, -15, 0,
6, 24, -22, -7, 20, -6, 20, -9, -16, 3, -26, 18, 14, 24, -8,
-22, -1, -22, 39, -38, 32, -31, 40, -42, 4, -33, 39, -12, 5, -14,
6, 2, -6, -33, 1, 13, 10, 34, -2, -16, -4, -53, 16, 20, -6,
44, -25, -10, 10, -9, -8, 28, -20, 8, 13, -42, 34, -6, -4, 32,
-37, 1, 0, -7, 18, 22, -37, 35, -22, 29, -34, 36, -10, -2, 4,
-15, 8, -5, 8, 14, -14, 4, -26, 24, -6, 20, -2, -17, 18, -22,
42, -44, 13, -22, 28, -24, 12, -5, -1, -2, 3, 16, -8, 14, -10,
-8, -4, -11, 14, -6, 39, -46, 24, -37, 33, -12, -8, -1, -6, 20,
-13, 18, -28, 17, -4, -24, 48, -54, 28, -36, 33, -22, 8, 4, -8,
14, -10, 6, -14, 4, 4, -6, 33, -44, 22, -26, 12, 14, -27, 27,
-24, 4, 20, -33, 38, -32, 6, 21, -29, 26, -14, -20, 27, -28, 20,
-16, 26, -15, -3, -2, -22, 46, -25, 16, -32, 14, 4, 18, -12, 12,
-12, 6, -18, 14, -2, 6, 14, -39, 30, -30, 46, -34, 6, 2, -8,
32, -21, 18, -46, 21, 0, 46, -43, 56, -42, 5, -22, 6, 25, -10,
22, -12, -11, -7, -9, 9, 1, 10, -8, 16, -16, -6, -8, 15, 0,
-32, 40, -44, 22, 16, -36, 50, -33, 24, -17, -8, 16, -10, 2, 16,
-18, 24, -22, -3, 18, -21, 34, -29, 4, 6, -12, 14, -6, 1, 3,
-10, 8, 22, -15, 4, -2, -27, 30, -18, 8, 30, -34, 20, -10, -30,
44, -30, 16, 22, -42, 40, -20, -9, 24, -32, 20, 2, -11, 14, -12,
2, 4, -10, 7
};
static const int32_t mdt4x8_mode12[1024] = {
6, 4, 4, 4, 10, 10, 10, 14, 10, 21, 28, 34, 12, 34, 58,
59, 11, 25, 44, 34, 5, 12, 21, 17, 4, 6, 10, 11, 4, 6,
8, 9, 16, 10, 6, 0, 17, 10, 0, -3, 1, -5, -16, -18, -16,
-32, -28, -18, -15, -13, 20, 23, 2, 15, 38, 36, 16, 34, 42, 36,
22, 38, 34, 26, 3, 6, 4, 4, 20, 22, 14, 10, 42, 55, 20,
-13, 42, 45, -16, -67, 19, 17, -4, -16, 0, -1, 8, 10, -3, -6,
4, 8, 2, 1, 2, 4, 24, 14, 3, -10, 43, 34, -10, -41, 11,
11, -24, -52, -28, -7, 23, -6, -16, 5, 43, 14, 6, 8, 10, -4,
2, -12, -24, -22, -12, -29, -24, -22, 24, 20, 9, 12, 28, 35, 32,
31, 6, 26, 53, 32, -30, -38, -4, 6, -24, -46, -26, 2, 8, -6,
-14, 0, 12, 1, -10, -12, 0, -7, -8, -8, -8, -7, -13, -10, -2,
-6, -22, -29, 20, 32, 10, -46, 2, 18, 38, 26, -22, -44, -31, 2,
-24, -38, -31, 0, -6, 4, 10, 10, 18, 32, 22, 3, -10, -5, -11,
6, -5, 4, 2, 4, 1, 12, -6, -14, 17, -2, -46, 28, 10, -12,
-19, 68, -19, -19, 6, 47, -20, -22, -6, 17, -28, -36, -26, 12, 27,
-2, -16, -2, 16, -21, -32, 12, -19, -19, 11, 28, -32, 17, 36, -42,
-24, 1, 7, -18, -18, -34, 2, 38, -17, -24, 10, 34, -22, -20, -12,
24, 11, 22, 15, 10, -6, 21, 24, -4, -47, -20, 17, -36, -24, 7,
22, -14, 49, 31, -30, 22, 36, -8, -36, 22, -8, -14, -2, 4, 3,
16, 22, 6, 16, 17, 11, -2, 55, 42, -10, -12, 14, -18, -50, 29,
10, 6, -10, 40, 26, 10, -38, -36, -8, -14, -5, -8, -14, -2, 12,
18, -4, 2, 4, 17, 4, 52, 42, 6, -37, 22, 24, 4, -22, -22,
-24, 4, 31, 20, 22, -16, -8, -36, 8, 2, -37, -24, 18, 9, -14,
24, 11, -20, 6, -4, -18, -18, 39, -1, -8, 0, 21, -33, -18, 4,
-8, -12, -14, 4, 5, 58, -4, 0, -6, -20, -43, 24, 36, 20, 6,
12, 46, 32, -3, -18, 10, -4, -23, -18, 20, 2, 31, 44, -10, -28,
39, 30, 26, -8, -23, -40, 7, 6, 6, 20, -30, -2, 10, -20, 20,
-2, -20, -16, 24, -20, 8, 34, -18, -25, 3, 28, 12, 10, -7, -8,
-26, 8, -7, -28, -30, 15, 38, -28, 12, -5, 7, 24, 12, -16, -25,
-52, 6, 45, 46, 7, -4, 8, 12, 24, -18, -30, -15, 12, -9, -10,
15, 0, 9, -5, -24, -17, 14, -16, -4, 16, 48, -39, 36, -24, 44,
-56, 15, 12, 30, 8, -15, 10, 18, -11, -20, 8, 2, -16, 5, 26,
46, 10, 18, -4, 12, -46, -6, -2, 16, -13, 28, -12, 4, -3, -23,
15, 30, -15, 12, -1, 12, -36, 44, -16, -34, -36, 15, -34, 6, 12,
20, -12, -54, 3, 7, 28, 34, -10, -18, 42, 21, -19, 4, -25, -14,
-8, 35, -10, 8, -2, -33, 14, -9, 26, 26, -10, -23, 14, 30, -20,
-33, -6, 4, -12, 25, 56, -7, 14, -24, -2, -44, 6, 0, 24, -18,
18, 18, -8, 0, -3, -28, 6, -10, 18, 0, 46, -16, -5, -15, -36,
-11, 5, -24, 16, 41, -18, 27, -18, -8, 24, -10, -5, -16, 38, -33,
60, -40, -3, -30, 0, 4, -2, 48, -24, 17, 1, -10, 2, -2, -28,
-22, 24, -4, 0, 7, -1, -10, 16, 8, -16, -20, 16, 36, 24, -10,
32, -49, -31, 22, -28, 46, 10, -8, 3, -20, -6, 11, 6, -32, 8,
10, -28, 6, -14, -38, -2, 14, 18, 10, 24, -2, 58, 2, 6, 8,
-18, -46, 2, 9, -7, 40, -14, 4, -9, -25, 8, 18, 22, 24, 2,
-17, -12, -44, -17, 17, 43, 14, 4, 6, -16, -28, 18, -30, -8, 56,
-2, 20, -4, -8, -38, -44, 28, 8, 20, -8, 28, -20, -6, -22, -9,
5, 16, 10, -7, 0, -30, 11, -3, 19, -16, -36, -12, 26, 34, 50,
-29, -12, -9, -6, 1, 10, -8, -6, 10, -1, 1, 38, -44, 26, -12,
-4, 40, -24, 22, -23, -22, -1, -20, 22, 27, 32, -19, -34, -17, 14,
-2, -2, 9, 30, 25, -2, -21, -5, -22, 5, 18, -4, 8, -4, -24,
20, -8, -14, 34, -39, 16, -17, 7, 28, -6, -2, -22, -18, -8, 64,
2, -37, 40, -14, -16, 36, 10, 8, 2, -39, 31, -30, 30, -9, -14,
26, -26, -2, 19, -13, 20, 7, -36, 22, -25, -2, 54, 21, -10, 8,
-21, 6, 13, -12, -32, -4, 7, -14, -48, -3, 16, -2, 26, -9, 2,
-8, -6, 24, -5, 6, -4, -33, 0, 0, 16, 62, -4, -7, -30, -44,
-6, 40, 4, 14, 6, -40, 22, -15, 28, -16, -24, 52, -60, 53, -7,
-36, 23, -14, 2, 19, -15, 8, 0, 8, -4, 6, -6, -23, 20, -18,
7, -2, -12, 12, 16, 6, 4, -8, -24, 10, -29, 2, 72, 14, 2,
-2, -42, -10, -8, 16, 12, 18, -1, -7, -6, -15, 0, 9, 6, 17,
5, -18, -6, -48, 20, 20, 30, 16, -2, -12, -44, 4, -16, 40, -30,
-6, 14, -20, 17, -2, -5, 9, -2, -12, 3, 0, -6, 18, -2, -7,
22, -22, 4, 6, -38, 32, -34, 22, 61, 18, -7, -12, -51, 30, -33,
60, -43, 6, -12, 0, 13, 14, -10, 10, -8, 1, 2, -4, 4, -8,
4, -2, -2, -24, 45, -34, 25, -47, 28, -22, -6, -1, 1, 2, 9,
-5, 12, 17, -8, 4, -16, 2, -2, 2, 7, 2, 0, 4, -12, 6,
-2, -2, 12, -9, 6, 22, -32, 30, -18, -7, 35, -62, 44, -48, 49,
-22, -10, 13, -13, 2, 16, -8, 7, 5, -16, 8, -7, 5, 2, -4,
2, -2, -2, 13, -12, 9, -2, -19, 26, -16, 4, 17, -32, 32, -20,
-42, 71, -61, 16
};
static const int32_t mdt8x4_mode0[1024] = {
0, 2, 3, 5, 8, 12, 16, 20, 2, 6, 10, 16, 22, 28, 30,
30, 4, 10, 19, 28, 34, 36, 34, 30, 8, 18, 28, 33, 34, 34,
30, 28, -1, 2, 10, 20, 24, 22, 8, -11, 4, 14, 30, 40, 35,
13, -14, -30, 10, 26, 37, 34, 14, -12, -30, -34, 15, 26, 24, 9,
-12, -25, -28, -26, 8, 27, 38, 31, 10, -11, -18, -11, 19, 42, 48,
26, -10, -28, -16, 3, 19, 26, 10, -15, -24, -10, 15, 24, 4, -8,
-26, -26, -6, 18, 29, 26, -2, 1, 4, 12, 26, 37, 36, 27, 0,
0, 6, 19, 36, 41, 30, 16, -3, -13, -18, -10, 0, 6, 4, 2,
-21, -41, -46, -40, -28, -16, -7, -2, 14, 30, 29, 9, -15, -20, -2,
13, 24, 39, 18, -17, -24, 5, 23, 6, 11, -2, -22, -9, 26, 35,
-1, -32, -11, -25, -8, 28, 32, -4, -40, -42, 0, -5, -11, -16, -29,
-22, 14, 45, 2, 8, 6, -14, -23, 2, 38, 41, 21, 42, 30, -4,
-17, -6, 4, 4, 32, 36, 2, -28, -34, -24, -16, -12, 26, 36, 12,
-38, -50, -24, -8, -12, 20, 18, -6, -5, 20, 19, -6, -10, -8, -18,
6, 46, 35, -4, -12, 14, -16, -11, 1, -14, -37, -22, 13, 30, 14,
34, 32, 10, 9, 34, 43, 27, 20, 16, -18, -32, -6, 10, -4, -6,
4, -13, -30, -22, -24, -38, -28, 2, 9, 26, 37, 24, -4, -5, 15,
24, 12, 20, 32, 44, 18, -29, -32, 8, -18, -29, -2, 23, 4, -16,
13, 38, -38, -40, -9, 3, -3, 2, 14, 15, -6, 20, 31, 4, -26,
-29, -18, -8, -6, 4, 20, 17, 1, -4, -20, -45, -7, -9, -18, -22,
12, 41, 9, -30, 22, 14, -30, -34, 18, 41, 18, 0, 45, 36, -6,
-20, -17, -13, 0, 12, 46, 46, -10, -34, 8, 30, 0, -24, 25, -6,
-24, 8, 16, -4, -4, 11, -14, -7, 13, -2, -24, 2, 30, 7, 13,
24, -5, -26, 10, 34, -10, -53, -12, -18, -20, -2, 30, 24, -28, -32,
32, 32, -19, -24, 4, -4, -4, 33, 38, 12, -8, 12, -2, -12, 24,
40, -18, -22, 22, 25, -21, -35, -18, -9, -1, -6, -10, -24, -33, -34,
-20, 4, 2, -1, 8, 48, 60, 22, 5, 12, 28, 2, -36, -36, -34,
-26, -8, -1, 4, -5, 14, 26, 16, 6, -3, -5, 56, 18, -49, -4,
38, -8, -21, 2, 21, -12, -5, 16, -14, 0, 28, -12, -4, 12, 16,
-21, -14, 20, -18, -20, -2, -7, -6, 16, 12, -30, -8, 55, 0, -18,
-2, 40, 18, -36, -26, -2, 32, 8, -31, -26, 10, 32, 31, 0, 5,
-3, 18, 18, -15, -20, -18, -36, -24, 0, 10, -23, -7, 44, 32, -16,
-8, -22, -36, -12, 16, -1, -2, 30, 38, 32, 11, 22, 2, -34, -18,
2, 6, -42, -41, -2, 24, 32, 2, -26, 14, 30, 17, -26, -26, 10,
14, 2, 2, 26, 18, 8, 16, -10, -10, 47, 0, -35, -56, 2, 26,
-36, -33, 6, 46, 31, -6, 18, 24, 4, 0, -14, 12, -16, -22, 2,
2, 2, 2, 3, -10, 0, 14, -3, -15, -6, 22, 16, 9, -5, -14,
11, 4, -6, -8, -48, 8, 14, 23, -20, -36, 41, 50, -10, -56, -6,
42, 0, -24, -7, -2, 0, -66, 13, 32, -32, 3, 18, -22, -8, 15,
17, -23, 4, 12, -12, 21, 16, -15, -16, 18, 10, -28, 6, -1, -32,
4, 12, -12, -12, 26, -4, -32, 44, -6, -24, -6, 33, -10, -32, 27,
14, 58, 2, -24, 8, 10, 8, -20, -24, -21, -12, 15, -2, -1, -4,
0, 54, 13, 16, -28, -4, 34, -16, -33, 0, 3, -2, -5, -12, 17,
-2, -36, 40, -22, 40, 6, -42, 40, 16, -39, 2, -60, 27, 14, -30,
4, 8, 3, 1, -3, 4, -5, 8, -2, -4, 4, -4, 1, -4, 4,
6, -14, 8, 16, -29, 10, -11, -9, 7, 8, -12, -17, 48, 0, 28,
6, -41, 32, 20, -52, 5, -56, 26, 14, -28, 12, 5, -4, 6, 41,
-26, 9, 10, -11, 16, -19, 18, -18, -7, 24, -28, 4, 23, -36, 10,
41, -32, 7, 18, -22, 12, 1, -1, -5, 0, 16, -32, 20, 18, -50,
30, 18, -22, 2, 29, -34, 6, 32, -30, 14, 6, -12, -6, 20, -14,
-22, 42, -22, -3, 20, -4, -20, 24, 7, -40, 46, -38, 2, 24, -20,
-3, 10, 12, 30, -16, -6, 12, 0, -14, 28, -18, -39, 42, -23, -4,
27, -42, 34, -14, -15, 29, -38, 22, 4, -20, 19, -4, -12, 12, 2,
-15, 8, 14, -33, 22, 22, -39, 26, -4, -20, 31, -22, 8, 44, -36,
20, 0, -6, 2, 2, 2, -20, 26, -24, 5, 18, -35, 41, -33, -20,
26, -22, 12, 1, -11, 5, 10, 13, -32, 35, -16, -5, 26, -30, 15,
18, -8, -10, 14, -4, -17, 32, -25, -21, 20, -4, -8, 5, 16, -39,
34, 29, -40, 32, -8, -20, 34, -18, -4, -32, 38, -30, 8, 8, -18,
13, -5, 22, -26, 22, -6, -12, 22, -20, 8, -22, 30, -20, 0, 16,
-21, 18, -7, 8, -23, 26, -7, -23, 44, -48, 25, -3, 11, -23, 35,
-40, 36, -30, 15, -18, 34, -46, 49, -44, 34, -18, 3, -12, 16, -14,
8, -2, -4, 6, -5, 0, -4, 8, -13, 11, -7, 5, 0, 12, -22,
32, -38, 40, -33, 21, -8, 0, 2, -10, 20, -30, 34, -31, 20, -16,
28, -36, 38, -36, 28, -14, 0, -2, 5, -4, 3, 0, -4, 6, -4,
-8, 12, -19, 22, -22, 18, -12, 4, 0, -4, 6, -8, 8, -6, 5,
-4, 2, 4, -14, 26, -33, 34, -28, 15, -22, 36, -47, 50, -44, 34,
-16, 1, 15, -20, 21, -20, 18, -12, 8, -4, -14, 24, -29, 28, -24,
16, -9, 5, 15, -26, 35, -38, 34, -25, 14, -6, -4, 12, -24, 34,
-38, 36, -28, 12
};
static const int32_t mdt8x4_mode1[1024] = {
2, 3, 10, 25, 20, 0, -2, 0, 1, 2, 14, 44, 37, 3, -2,
0, 0, 1, 16, 55, 46, 7, -3, 1, 0, 2, 20, 58, 49, 12,
-1, 0, 0, 8, 23, 18, -15, -16, -3, 0, -2, 13, 42, 28, -30,
-30, -4, -1, 0, 13, 46, 26, -40, -36, -5, -2, 2, 14, 37, 12,
-44, -32, -6, -2, 6, 12, -1, -38, -38, 6, 6, -4, 5, 17, 1,
-52, -49, 2, 8, -4, 0, 7, 11, -10, -11, 2, 0, -4, 0, 4,
33, 56, 52, 14, -9, -7, 1, 10, 30, 0, -5, 16, 7, 3, 7,
16, 34, -2, 9, 38, 14, 5, 11, 26, 38, -12, 6, 55, 20, 10,
10, 27, 28, -34, -15, 46, 28, 12, -1, 16, 32, 30, -13, -24, -2,
1, -2, 23, 32, 16, -25, -37, 0, -2, 6, 15, -11, -18, -1, -20,
-2, -2, 16, -2, -57, -28, 56, 32, 8, -1, -24, -38, 5, 16, -6,
-16, -2, 13, -23, -54, -6, 13, -32, -6, 6, 19, -22, -25, 0, 8,
-34, 15, 22, 23, -16, -18, 2, 22, 0, 40, 33, 30, -3, 2, 14,
-24, -47, 9, 13, -12, -18, -10, 31, 8, -17, 22, 8, -14, -24, -34,
22, 38, 28, 22, -4, -17, -28, -42, -32, -26, -5, -11, -19, -24, -11,
-12, -28, -46, -30, -38, -20, 8, -6, -15, -20, -8, 3, -36, -24, 11,
-2, 16, 25, 34, 42, -10, -18, 12, 14, 34, 8, -36, 1, 18, 6,
20, 5, 0, -28, -6, -14, 12, 28, 6, 6, 8, -12, 10, -25, 15,
48, 7, 23, 18, -6, 42, 0, 2, 36, 12, 42, 20, -48, 16, -8,
-32, 22, 18, 27, 27, -5, 12, -28, -29, 1, -8, 46, 26, -36, 20,
-11, -18, -1, -8, 24, -12, -36, 28, -1, 20, 6, -11, -18, -22, 17,
4, -35, 42, 14, -19, -12, 13, 56, -2, -16, -25, -16, 16, 10, 13,
10, -30, 8, 0, -20, 24, 6, 8, -24, -8, 35, 18, -4, 30, -15,
-17, -18, 32, -26, -40, 12, 42, -18, 29, -19, -30, 40, -2, -10, 3,
-31, 42, 4, -26, 20, -10, -1, 1, -24, 24, 23, 20, -16, -18, 16,
-3, -12, -43, -24, 16, -20, 27, 36, -11, 27, -12, -10, -24, 14, 12,
-22, 13, 57, -6, 10, 8, 4, 14, -38, 16, 32, 0, 35, 16, -46,
12, -13, 18, -4, -26, -33, -2, 18, 2, -22, 21, 20, -6, -19, 18,
32, -22, 15, 11, 28, 5, 4, -24, -14, -24, 38, 8, 10, -18, 34,
-8, 31, -7, 34, 10, -44, -22, 24, -33, 24, -29, 12, 11, -2, 28,
28, -27, -14, 33, 26, 11, 4, 12, -13, 14, 26, 8, 14, 22, -18,
-12, -28, 24, -23, -50, 10, 32, -38, 19, 16, -26, 18, 12, -12, 25,
4, 4, 38, 34, 38, 27, -4, 3, 4, -10, -18, -62, -34, 4, -12,
2, 2, -24, 2, 54, 11, -14, -14, 0, 30, 8, -2, -17, -11, 20,
-9, -6, 10, -16, 24, -39, -8, 4, 9, -4, 18, -24, 28, -4, 34,
-14, 13, -7, 34, -46, 0, -16, 10, -42, 10, -9, 50, -26, 12, 10,
-8, 11, 38, -9, -26, -17, 38, -12, 4, -28, -14, -29, 16, -18, -16,
-18, 20, 10, -8, -36, 18, 10, 4, 22, -27, 0, 36, -31, -38, 42,
-18, -2, 18, -20, 22, -23, 57, 40, 12, 14, -16, -34, 8, 2, 2,
-19, -30, -12, 32, 4, 4, -1, -58, -21, 38, -10, -20, 9, 2, -4,
25, 13, -18, 8, 5, -10, 8, 8, 16, 36, -9, -40, 43, -2, -42,
-12, -2, 2, 36, 21, -32, -13, -6, -6, -19, -46, -32, 4, 1, 28,
22, 0, 6, 35, 4, -2, 3, -12, 5, 12, -55, 25, 6, -2, 3,
-38, 2, 15, -22, 19, -22, 2, 16, 1, 10, 18, 30, -33, 7, 8,
-28, 30, 15, 4, 40, -22, 21, -18, 20, -15, -38, -8, -4, -18, -1,
-10, 14, -24, 26, 18, 12, 1, 28, -18, 18, -24, 34, 26, 2, -18,
2, -6, 0, 11, -9, 11, -20, 44, -33, 29, -30, 32, -48, -34, -24,
-45, -30, 28, -26, -6, -18, -10, 30, 64, 18, -16, 14, 24, -12, 4,
-38, -44, -4, 6, -8, -10, 0, 8, 12, 16, 0, -3, 5, -2, 20,
4, -4, -8, 0, -2, 12, -10, 21, -54, -6, 13, 4, -10, 10, -14,
24, -54, 8, -6, 3, 5, -8, 5, -20, -8, 0, -8, -3, 4, -9,
18, -30, 80, 22, -56, 30, -25, 14, 3, 32, 16, 8, 20, -2, 3,
4, -38, -13, 0, -45, 31, -26, 17, -10, 32, 23, -16, 26, -18, 17,
-12, 8, -13, -12, -4, -47, 6, 22, -10, 2, 47, -17, -24, 44, 6,
-44, 26, -12, -41, 22, 5, -26, -8, 38, -24, 14, 14, -8, 5, 6,
0, -14, 10, -6, -4, 4, -6, -10, -2, 8, -12, 16, -42, -34, -16,
36, -19, 4, 8, -14, 50, 40, -3, -34, 37, -12, 0, 12, -32, 9,
17, 22, -24, 10, -4, -5, 12, -32, -10, 26, -9, -4, 20, -30, 28,
-44, -32, -25, 0, 0, -14, 20, -26, -8, 1, 11, 5, 5, -2, 6,
-3, 72, 35, 4, -6, -2, 4, -8, 10, -42, -8, 32, -25, 16, -6,
-2, 2, -44, -20, -29, 14, -8, -4, 12, -10, 58, 14, 14, 4, -9,
16, -23, 20, -56, 28, -6, -4, 7, -10, 14, -14, 26, -20, -14, 19,
-16, 4, 8, -8, 50, -72, 14, -22, 21, -12, 2, -10, -30, 18, -7,
12, -10, 8, -7, 14, -10, 55, 8, -6, 6, -6, 8, -12, 18, -28,
-26, 30, -26, 23, -24, 24, -22, 21, 31, -40, 38, -32, 32, -32, 28,
0, -15, 22, -25, 21, -18, 18, -6, -31, 4, -8, 9, -8, 6, -6,
2, 12, 8, -4, 2, 0, 1, -2, -2, -51, -6, 2, -1, 2, -2,
8, 2, 91, 4, 3, 0, 0, 2, -8, 6, -69, -2, 0, 0, -1,
-1, 4, -4, 20
};
static const int32_t mdt8x4_mode2[1024] = {
12, 29, 40, 44, 45, 47, 45, 40, 3, 10, 16, 20, 24, 28, 28,
27, 2, 2, 4, 6, 8, 7, 7, 7, 0, 2, 2, 2, 1, 0,
1, 2, -6, -20, -30, -34, -32, -22, -8, 2, 8, 14, 20, 26, 34,
38, 38, 35, 4, 10, 18, 28, 32, 31, 30, 31, 4, 7, 10, 10,
9, 8, 8, 8, 19, 40, 46, 30, 0, -28, -52, -59, 10, 28, 38,
34, 18, -1, -12, -12, 0, 1, 0, -2, -1, 2, 6, 10, -1, -2,
-4, -2, 1, 4, 6, 6, -7, -15, -22, -22, -12, 2, 11, 13, 13,
32, 44, 42, 30, 16, 3, -9, -7, -14, -20, -28, -30, -30, -25, -19,
-2, -6, -12, -18, -24, -29, -34, -37, -34, -54, -33, 15, 46, 38, 1,
-24, -2, 4, 20, 30, 20, -8, -32, -32, 4, 10, 10, 2, -8, -8,
3, 14, 6, 10, 10, 10, 14, 22, 28, 28, 16, 21, 7, -20, -32,
-11, 27, 49, 20, 34, 30, 6, -18, -27, -26, -22, -10, -16, -19, -18,
-8, 2, 8, 8, 8, 18, 26, 32, 35, 31, 24, 18, 16, 20, 0,
-18, -16, 7, 22, 14, 1, 9, 14, 10, 3, -12, -31, -40, 20, 44,
56, 52, 32, 3, -22, -30, -2, -8, -11, -14, -18, -14, -4, 6, -20,
-21, 2, 16, 12, -6, 0, 22, 19, 28, 22, -7, -36, -40, -18, 8,
3, -1, -4, 0, 14, 34, 47, 44, -9, -22, -34, -34, -26, -17, -14,
-12, -40, -38, 26, 56, -11, -61, -15, 48, -20, -19, 7, 21, 6, -8,
-2, 5, 2, 10, 10, 6, 6, -2, -16, -26, 6, 11, 14, 14, 8,
-2, -8, -8, 4, -4, -1, -4, -14, -10, 0, 12, -6, 2, 13, 7,
-12, -10, 18, 46, 18, 26, 14, -14, -36, -37, -20, -1, -15, -30, -40,
-30, -4, 26, 46, 46, 8, -12, -20, 10, 26, 6, -18, -16, 34, 49,
20, -27, -43, -15, 24, 39, 16, 28, 21, 6, -3, -9, -19, -29, 8,
16, 24, 28, 18, -3, -18, -20, -70, -12, 54, -3, -44, 17, 36, -35,
8, 28, 4, -34, -8, 25, 12, -14, 13, 10, -3, 0, 0, -10, -6,
9, 2, 4, 2, 3, -2, -4, 3, 6, 2, -9, -14, 16, 18, -18,
-16, 20, 33, 32, -18, -30, 15, 44, 13, -46, 8, -3, -16, -13, 14,
24, -4, -34, -31, -42, -26, 2, 18, 12, 10, 17, 16, 4, -6, 14,
2, -22, -10, 25, 28, 12, -36, -25, 24, 24, -14, -18, 17, 31, 25,
-4, -40, -40, 12, 60, 13, 22, 16, -4, -14, -12, -6, -6, 28, -26,
-10, 30, -9, -12, 14, -8, 22, 16, 2, -12, -9, 6, 6, 2, -38,
-44, -12, 31, 25, -16, -28, 0, 14, 22, 16, -20, -48, -16, 25, 40,
44, -18, -16, 29, -20, -6, 28, -18, -26, -22, 30, 4, -31, 20, 16,
-25, 34, 36, -18, -43, 2, 19, 10, 8, 6, 0, 10, 16, -10, -28,
-11, 24, -28, 20, 10, -38, 29, 9, -48, 32, -13, 7, 10, -12, 2,
6, 1, 2, 25, 13, -24, -24, 12, 18, -2, -18, 29, 34, 16, -12,
-40, -24, 16, 38, -14, 19, -10, -8, 24, -10, -17, 16, -52, 0, 45,
-20, -42, 32, 31, -38, -33, -18, 24, 24, -12, -22, -2, 27, -2, -8,
-6, 4, 8, 2, -1, -6, 11, -10, 4, 5, -5, -1, 7, -6, 8,
-2, -3, 3, -12, 9, 26, -24, -13, 6, 22, -14, -21, 28, 22, -31,
46, 46, -18, -58, 3, 46, 10, -28, 6, 10, -24, 16, 0, -10, 10,
-4, -42, 22, 14, -32, 20, 12, -36, 20, 29, 6, -36, 0, 43, -12,
-28, 18, 26, 10, -24, -14, 10, 30, 12, -38, -40, 55, -45, 12, 28,
-54, 54, -26, -4, 13, -12, 4, 12, -20, 12, 2, -4, 0, 6, -6,
-16, 16, 6, -10, 2, 7, 6, -2, -7, -14, 4, 16, 10, -8, -2,
12, -20, 15, -6, 0, -43, 30, 10, -40, 32, 8, -39, 27, -52, 9,
36, -27, -23, 29, 16, -20, -16, -2, 14, -2, -2, -12, -5, 14, -13,
14, -10, 8, -10, 10, -10, 4, 26, -12, -4, 6, -4, 6, -8, 7,
-36, 6, 15, -23, 19, 5, -32, 20, 56, 2, -52, 9, 42, -24, -33,
35, 17, -17, 8, -1, -1, -1, 2, -1, -30, 24, -6, -13, 24, -21,
14, -4, 26, -19, -24, 48, -32, -18, 42, -24, 41, -4, -30, 14, 19,
-16, -28, 31, 16, -22, 22, -19, 14, -7, 4, -1, -32, 38, -30, 6,
24, -52, 52, -24, -27, 30, -4, -22, 26, 0, -29, 27, -8, 0, 4,
-6, 4, 4, -9, 1, 8, -14, 18, -20, 20, -19, 14, -6, 16, -18,
16, -17, 14, -4, 0, 1, -30, 21, 4, -10, 4, -8, 18, -12, 44,
-33, -22, 54, -34, -10, 50, -33, -18, 28, -38, 44, -48, 44, -30, 12,
-14, 24, -29, 23, -7, -16, 24, -14, -3, 4, -3, 0, 3, -8, 14,
-6, 14, -13, -2, 22, -23, -6, 32, -20, -10, 15, -16, 14, -12, 9,
-7, 3, 25, -37, 40, -37, 32, -27, 21, -8, -24, 32, -22, -1, 28,
-43, 35, -14, -24, 18, 2, -14, 2, 16, -20, 10, 0, 2, -6, 10,
-12, 11, -7, 3, 12, -24, 32, -38, 40, -38, 27, -12, 40, -46, 32,
-8, -20, 36, -38, 20, 10, -12, 6, 6, -8, 4, 4, -6, -7, 6,
-4, 2, -2, 2, -2, 1, 4, -2, 0, 2, -4, 6, -6, 2, -17,
26, -26, 21, -20, 19, -16, 6, 36, -54, 36, -2, -36, 60, -48, 16,
1, 1, -2, 4, -5, 6, -5, 2, 8, -12, 10, -6, 4, -3, 2,
-2, -24, 43, -51, 48, -47, 44, -32, 13, -18, 22, -13, -4, 19, -28,
28, -14, 0, 0, 0, 0, 0, 0, 0, 0, -4, 4, -4, 4, -2,
3, -3, 1, 0, -3, 4, 1, -9, 12, -8, 4, -35, 53, -58, 58,
-51, 42, -28, 10
};
static const int32_t mdt8x4_mode3[1024] = {
0, 0, 1, 3, 5, 8, 12, 20, 1, 3, 6, 12, 18, 25, 30,
33, 6, 10, 18, 26, 32, 36, 36, 32, 12, 21, 30, 34, 34, 34,
32, 26, 2, 2, 4, 9, 14, 16, 8, -4, 6, 10, 18, 29, 30,
13, -8, -21, 16, 29, 39, 36, 14, -13, -26, -28, 34, 42, 34, 8,
-16, -31, -32, -27, 4, 10, 18, 19, 10, -4, -14, -10, 17, 26, 34,
21, -10, -28, -18, 6, 32, 38, 20, -18, -36, -19, 13, 30, 33, 14,
-20, -32, -14, 16, 34, 33, 4, 15, 21, 13, -8, -14, 6, 22, 26,
37, 22, -11, -22, 8, 33, 17, 34, 21, -16, -29, 5, 35, 12, -29,
15, -13, -26, 2, 26, 2, -37, -47, 13, 28, 24, 12, 14, 24, 9,
-16, 42, 40, 12, 4, 25, 18, -15, -23, 25, -14, -23, 14, 20, -11,
-20, 4, -38, -50, 0, 26, 0, -12, 11, 32, 8, 16, 12, -5, -34,
-43, -37, -22, 18, 13, -14, -40, -40, -26, -25, -13, 12, -4, -10, 8,
16, -3, -6, 5, 17, 28, 46, 40, 10, -3, 3, 6, -7, -4, 6,
-16, -38, -6, 33, 34, -6, 10, -12, -41, -1, 41, 27, 7, 18, 10,
-18, 0, 12, -14, -19, 8, 30, 9, -8, -20, -44, -36, 12, 40, 38,
44, 3, -18, 1, -1, -7, 20, 53, 4, -32, 4, 12, -10, 16, 39,
-8, -30, 8, 21, -18, -12, 25, 10, -16, 16, 16, -30, -36, -2, -2,
-29, -16, -14, 21, 45, 8, -36, -12, 31, -13, 10, 40, 18, -26, -12,
27, 21, -26, -8, 14, 3, -6, 4, -6, 0, -48, 0, 30, 4, -25,
-35, -10, 22, 46, 38, 5, 8, 2, -6, 18, 6, 22, -20, 2, 10,
-16, 12, 12, -34, -46, -8, 16, -26, 0, 24, -32, -25, 8, 32, -16,
-13, 29, 5, -2, 44, -28, 4, 50, 13, -22, 15, 42, 18, -14, 26,
11, -22, 0, 8, -16, -24, -22, -16, -3, 4, -20, -20, -2, -10, -18,
26, 20, -15, 4, 52, 24, -34, -20, -12, -30, -16, 32, 16, 11, 53,
18, 2, -24, 2, -10, -33, 10, 1, 37, -6, -8, -10, -41, -18, -22,
-40, 0, 3, 28, 21, 18, 16, 0, 29, 25, 11, 24, 32, 36, 38,
2, 13, -20, -11, 4, -10, 0, -8, -10, 30, -29, -12, -48, -28, -3,
-24, 0, 20, 44, 10, 4, 39, -2, -24, 0, -14, 70, -22, -40, 25,
2, -23, 22, 20, -2, -21, 18, -6, -19, 13, 2, -24, 21, 23, -4,
2, 4, -18, -12, 12, -14, -18, 16, 6, -16, 20, 33, -36, 2, 20,
-5, -40, -34, 10, 26, 15, 2, 4, 15, -1, -15, -14, -9, 28, -28,
36, 45, 0, -10, -40, -18, 26, -16, -21, -18, 38, 30, -17, -10, -8,
-6, -22, -21, 2, 6, 36, 36, -50, 27, 2, 2, -14, -30, 23, 6,
2, 14, -4, 8, -42, -22, 14, 12, 34, -30, 32, 32, -6, 3, -23,
-20, -2, -52, 18, 0, 33, 10, -40, 16, 12, 28, -33, -28, 30, -7,
19, -4, -8, 22, -26, 6, -3, 8, -17, -26, 42, 10, 5, -21, 3,
23, -14, 12, -26, 24, -4, 14, 20, -30, -19, 3, -46, -22, -9, -2,
16, 13, 22, 39, 28, 18, -22, -9, 18, -42, -42, -14, -8, 14, -12,
14, -2, 28, 23, -31, 18, 2, -46, -25, 1, -12, -4, -30, 8, 36,
20, 26, -4, 30, 14, -22, 44, -14, -8, -20, -16, 26, -20, -42, -4,
-14, 38, -15, -16, 20, 15, 3, -2, 10, -7, -26, -34, -22, -15, 26,
21, -10, 34, 38, 44, 5, -20, -14, -30, -3, -48, -30, 4, -7, 16,
11, 36, 27, 0, 11, -6, 6, -10, -24, 1, -29, 20, -28, -32, 16,
-20, -22, -26, 11, 25, 19, 15, 2, 35, 44, -14, -37, 6, -10, -26,
-17, -17, -3, -14, 17, -6, 12, 30, -26, 10, 36, -18, -13, -40, -12,
30, -19, 12, 29, -14, 58, -11, 12, -4, -26, -18, 4, 0, -30, -18,
6, 36, 8, -14, 35, -30, 34, -16, -23, 18, -16, 4, 3, 9, -5,
2, 8, 12, -44, -19, 2, 17, 20, -38, -1, 19, 56, 7, -22, -14,
0, 31, -20, -44, -18, -4, 45, -13, -18, 8, 11, 28, -12, -4, -14,
12, 1, -22, -5, 16, 30, -12, -26, 24, 14, 26, -21, -39, 16, 20,
12, -44, -30, 22, 6, 19, -25, -16, 16, 44, 5, -4, -9, -2, 14,
14, -49, 9, -22, 45, -36, 14, 20, -18, 39, -18, -6, -1, 4, -2,
-8, -16, -12, 22, -12, 34, -36, 10, 33, -10, -4, 3, -8, 4, 8,
-14, -23, 42, -44, 18, 14, -19, 6, 0, 7, -18, 29, -22, -10, 34,
-38, 20, 14, -42, 38, -14, -5, 25, -28, 9, 13, -19, 14, -5, -26,
40, -28, 6, 20, -30, 25, -6, -2, 28, -17, -6, 4, 18, -26, 12,
-19, -16, 38, -8, -24, 20, 10, -20, 32, -26, -1, 12, 18, -48, 44,
-10, -26, 42, -36, 11, 6, -2, -12, 8, -11, -12, 34, -24, -13, 33,
-22, 1, 26, -48, 24, 10, -6, -33, 52, -25, 2, 21, -32, 9, 16,
0, -30, 32, -4, 2, 10, -11, -8, 18, -10, -8, -14, 37, -55, 58,
-50, 40, -22, 4, -10, 14, -2, -14, 20, -24, 22, -10, -6, 3, -2,
6, -10, 12, -10, 5, 3, -5, 9, -14, 15, -18, 18, -8, -9, 12,
-1, -16, 30, -29, 18, -9, 12, -30, 48, -50, 32, -12, 0, 2, -4,
2, -10, 16, -10, -6, 16, -12, 6, -12, 24, -36, 45, -38, 20, -3,
2, 4, -4, 4, 8, -17, 19, -14, -5, -8, 22, -42, 43, -33, 16,
2, 18, -29, 25, -2, -21, 30, -27, 14, -6, 22, -38, 46, -36, 18,
-6, -3, 4, -6, 4, 6, 3, -2, 5, 0, -5, 10, -7, -10, 22,
-30, 26, -12, 4, -27, 47, -60, 60, -40, 12, 1, 15, -23, 24, -16,
0, 12, -10, 4
};
static const int32_t mdt8x4_mode4[1024] = {
7, 12, 10, 10, 12, 10, 10, 9, 5, 12, 20, 22, 26, 26, 22,
16, 4, 11, 23, 30, 33, 35, 33, 26, 4, 13, 24, 32, 36, 36,
34, 32, 10, 16, 14, 2, -10, -12, -10, -12, 10, 26, 30, 19, -4,
-24, -30, -26, 8, 24, 38, 35, 10, -20, -35, -34, 8, 22, 32, 36,
20, -10, -28, -32, 12, 7, -14, -30, -24, -1, 18, 26, 14, 22, -2,
-38, -48, -16, 26, 44, 6, 23, 22, -8, -30, -26, 6, 37, 3, 13,
22, 23, 4, -17, -9, 20, -22, -36, -26, 4, 23, 30, 22, 0, -14,
-36, -38, -12, 22, 37, 20, -7, 6, 9, 8, -4, -4, 4, -3, -14,
14, 38, 48, 26, -6, -28, -24, -19, 14, 28, 22, 6, 13, 22, 18,
4, 8, 26, 26, 20, 20, 34, 34, 22, -5, -4, 9, 11, 8, 3,
8, 20, -8, -22, -24, -16, -23, -50, -53, -30, 14, 4, 0, 19, 24,
1, -28, -28, 22, 28, 8, 1, 20, 10, -22, -25, 22, 38, 21, -27,
-34, 3, 20, 12, 12, 19, 14, -18, -51, -24, 24, 34, -24, -12, 32,
28, -16, -25, 10, 37, -9, -16, 10, 35, 6, -28, 4, 42, 28, 24,
-10, -12, 9, 4, -5, 8, 28, 46, 6, -38, -21, 12, -2, -19, 16,
13, -10, -2, 0, -7, 11, 14, 30, 35, -10, -34, 0, 23, 11, 0,
18, 28, -2, -42, -6, 44, 0, -39, 0, -8, -4, -8, 12, 42, 2,
-54, -12, -36, 2, 50, 22, -41, -34, 16, 13, -2, -20, 8, 16, -15,
-8, 21, -5, 10, 14, -12, -26, -1, 24, 18, -21, -38, -10, 42, 28,
-14, -17, -18, -4, -9, -16, 0, 44, 38, -17, -36, -8, -4, 17, 4,
-13, -4, 14, 2, 26, 12, 0, 6, -26, -40, 4, 26, 31, 12, -33,
-18, 40, 41, -12, -24, -42, 6, 56, 11, -26, -1, 6, -22, -7, 0,
16, -17, -22, 21, 8, -36, 31, 14, -38, -30, 2, 9, 14, 4, 9,
2, -10, 25, 35, -22, -19, 22, -14, -12, 28, 28, 7, 45, 55, -11,
28, 12, -12, 6, 14, -17, -8, 8, 1, 16, -6, -16, 2, -34, -46,
10, -39, -29, 16, 4, -5, 18, 24, 4, -3, -25, -20, -30, -22, -9,
-20, -26, 52, 2, -41, 4, 10, -6, 2, -4, 34, 28, -14, 23, 58,
6, -4, 32, -10, -5, -6, -19, 1, -4, -24, 4, 42, 43, 20, 10,
-9, -4, -18, -31, 2, -8, -29, 4, 16, -12, -1, 2, -22, -32, -34,
-33, 0, -6, 4, 43, 4, 24, 42, 16, 0, 21, -18, -24, 30, 15,
6, 22, 42, -3, -6, 45, 36, 13, -22, -14, 5, 12, -8, 9, 20,
-22, -42, 16, 10, -28, -22, -27, 22, 25, -18, 6, 20, -18, -2, 35,
-44, 28, 15, -30, 20, 6, -38, 6, -1, 0, 9, -18, 0, 10, -11,
28, 40, -10, -29, 28, 0, -14, 13, -1, -21, -14, 25, 23, -33, -1,
34, -37, 8, 10, 7, -4, 24, 12, -20, 10, 28, -28, 4, 42, -41,
-16, 44, -18, -6, 16, -14, -2, -11, 0, 28, -38, -50, 2, 32, -22,
4, 6, -18, 15, -26, -4, 25, 28, -3, -27, 0, 17, 6, 19, -15,
-44, -6, 30, 8, -38, -31, -8, 18, 42, -4, -30, 13, 22, -16, 16,
17, -45, -2, 26, -8, -10, 22, -33, -20, 38, 16, -22, -22, -20, -27,
18, 36, -18, -36, 12, 40, 8, -6, 8, -24, -9, 46, -6, -34, 4,
0, -12, 21, 8, -22, -2, 12, -2, 20, -25, 27, 19, -34, 4, 8,
-38, 35, -3, -22, 7, -17, -6, 40, 5, 2, -26, 8, 30, -15, -6,
26, -28, 29, 7, -20, 18, -19, -12, 42, -26, -18, 2, 34, -18, -16,
10, -56, -18, 6, -8, -13, -5, 18, 33, 15, 49, -42, 19, 21, -12,
-6, -8, -39, -29, 14, -4, -1, -9, 10, 11, -6, 27, 20, 10, -25,
6, -34, -48, 18, -14, 10, -38, 26, 16, 24, 52, 6, 8, 40, -5,
-8, 9, -39, -26, -22, -1, -22, -9, 10, -6, 10, 10, 2, 8, 36,
27, 22, -4, 6, -4, -2, 25, -24, -48, -30, 3, -20, 22, -3, -23,
-1, 57, 20, -5, 26, -25, -4, 17, 2, -12, -28, 11, -5, -10, 32,
-21, -12, -17, -13, -27, -21, 0, -10, 42, 8, 28, 8, 36, 28, 8,
26, -39, -16, 4, -22, -22, 1, -48, 13, 0, 40, -26, 6, 24, -21,
23, -2, 0, -11, 24, 10, 6, 12, -12, -7, 4, -26, 6, -36, 2,
0, -20, 46, -20, 48, -26, 38, 4, -9, 17, -36, 2, -2, -11, -16,
20, -33, 32, -24, 26, 39, -28, 16, -5, -26, 18, -12, 0, -62, 40,
-22, -2, 24, 0, -3, 13, 32, 4, -2, -2, 6, -30, 33, -28, -42,
12, 0, -12, 12, 1, -6, 5, -35, 37, -30, -6, 8, -32, 10, -22,
-11, 24, -12, 6, 32, -23, 44, -4, -24, 20, -12, -6, 2, -16, -7,
-6, -26, 39, -26, 2, 21, -28, 33, -8, 0, 29, -4, 12, 12, -20,
32, -29, -18, -8, -14, -22, 14, -24, 0, 19, -6, 39, -22, 30, 2,
-12, 34, -30, 41, -47, 21, -8, -10, 12, -24, 20, 8, 16, -18, 36,
-44, 48, -36, 28, -2, -18, 14, -32, 32, -32, 25, -20, 7, 16, -14,
25, -18, 20, -17, 10, 5, -16, 10, -14, 16, -18, 11, -5, 4, -4,
-2, 8, -7, 8, 1, -1, 20, -32, 38, -40, 24, -12, -2, 4, -13,
14, -2, -2, 16, -14, 20, -10, -30, 36, -44, 41, -42, 34, -30, 10,
28, -38, 37, -42, 22, -17, 10, 1, -12, 7, 4, 0, 14, -6, 9,
-12, -18, 30, -43, 40, -46, 36, -29, 18, -6, 8, -6, 12, -8, 6,
-2, -2, 16, -19, 34, -36, 29, -22, 6, 0, 14, -26, 30, -38, 40,
-32, 26, -10, 16, -24, 30, -28, 20, -14, 5, -2, 9, -15, 20, -22,
22, -18, 14, -4
};
static const int32_t mdt8x4_mode5[1024] = {
8, 14, 13, 16, 18, 12, 7, 8, 13, 18, 24, 30, 28, 17, 14,
12, 16, 23, 32, 40, 30, 20, 19, 16, 18, 27, 36, 42, 30, 22,
22, 18, 13, 14, 14, 6, -14, -21, -14, -2, 18, 27, 30, 10, -24,
-37, -28, -5, 17, 32, 35, 8, -24, -37, -33, -12, 14, 28, 27, 5,
-18, -30, -31, -23, 12, 4, -8, -11, -8, 1, 8, 21, 23, 13, -10,
-28, -20, 1, 21, 34, 27, 28, -4, -35, -32, -2, 34, 38, 20, 32,
4, -26, -31, -6, 33, 36, 16, 2, -8, 2, 22, 6, -20, -16, 40,
14, -22, -6, 35, 17, -29, -28, 46, 22, -32, -22, 24, 24, -16, -32,
25, 24, -20, -24, 0, 15, 2, -25, -21, -37, -6, 36, 30, -5, -12,
6, -12, -46, -22, 45, 34, -24, -12, 22, 13, -14, -14, 14, 4, -28,
-5, 26, 26, 23, 6, -18, -23, -19, -9, 12, 22, -6, -40, -22, 16,
22, 24, -2, 26, 0, -44, -26, 14, 17, 27, 2, 6, 0, -6, 9,
6, -18, -10, 8, -12, -2, 32, 38, 3, -44, -50, 2, -38, -12, 8,
-2, 9, 27, 7, -34, -43, -10, 14, -10, 2, 41, 17, -46, -7, 11,
20, -11, -21, 18, 14, -24, 33, 26, 20, 0, -34, -27, -4, 3, -14,
-6, 4, 7, -20, -10, 42, 24, -15, -13, 1, 4, -20, -6, 48, 26,
14, 6, -8, -12, 10, 15, 2, -10, 38, 24, -12, -12, 34, 18, -43,
-54, 12, 18, 48, 30, 2, 14, 23, -10, 28, 18, 30, 32, 4, 16,
30, -10, 20, -8, -22, 4, 1, -8, 14, 6, -5, -31, -44, -12, -10,
-44, -26, 20, 14, 2, 2, 34, 26, -5, 12, 14, 4, 12, 0, 18,
29, 8, 15, 14, -34, 18, 16, -28, -8, 24, 5, -4, -62, 4, 34,
-35, -36, 12, -12, -35, -15, 39, 3, -17, 32, 12, -11, 30, -36, 38,
10, -22, 38, 10, -17, 40, -6, -7, 6, -9, 0, -4, -13, 16, 44,
-40, -11, 7, -21, -6, -12, -20, 5, 24, -16, 6, -14, -20, 31, -32,
-24, 30, -18, 6, 10, -21, 10, -24, -21, 10, 6, -12, 34, -1, -34,
22, 20, -3, 12, -40, 4, 22, -24, 56, -60, 4, 40, 4, -35, -26,
4, 8, -2, 8, -10, -19, 4, 0, -13, 10, 34, 1, -36, -14, 35,
20, -13, 7, -31, -2, 42, 23, -16, -16, 0, 8, -44, 10, -28, 8,
14, 2, 2, -29, -2, 28, -25, 19, -2, -36, 23, -18, 42, 15, 1,
7, -30, -22, 38, -4, -6, -46, 14, 2, 5, 24, 12, -24, -32, -28,
12, -3, 28, 45, 14, -19, 8, -10, 32, -22, -3, 9, -16, 10, 24,
16, 18, -20, -18, -14, -42, 40, -32, 3, -12, -10, 33, 30, -19, 8,
5, 36, 24, -54, -22, 38, 13, -20, 10, -16, -2, 14, 6, 1, 8,
0, 3, -28, -16, 38, 9, -24, -4, 19, -5, 20, 20, -32, -35, 28,
10, -33, -2, 31, -10, -2, 30, -38, 18, 8, 23, -30, 16, -10, 1,
-8, 8, -11, 38, -66, 27, -4, -28, 34, -16, -12, 2, 1, 6, 10,
-21, 24, -15, 20, 8, 44, 26, 26, 27, -1, -47, -30, -10, 2, -12,
-17, -18, -6, 2, -5, -20, -26, -30, -22, -13, -4, 30, 30, 0, 35,
18, 10, 37, 2, -24, -8, -27, 10, -18, -50, 8, -36, -26, 2, -8,
-2, 20, -6, 27, -10, 4, -5, 6, 24, 15, 27, 16, 14, 39, 12,
-35, 28, -38, -22, 8, -20, -36, 8, 17, -26, 2, 6, -14, -31, 15,
-62, 14, -6, 8, -14, 16, -13, -2, 6, -13, 8, 8, -3, 3, 27,
6, 56, 15, -10, -24, 40, -32, 2, 6, -38, -12, 25, -45, 26, -32,
9, -10, -14, 3, 0, -8, 18, -24, 42, -25, 14, 22, -27, 41, -1,
18, 18, 0, 30, -3, -6, 2, -32, 18, -38, 10, -24, -24, 12, 44,
8, -29, -22, -7, 6, 32, -16, -58, -10, 36, 32, 4, -4, -22, 12,
42, 10, -36, -20, -4, -1, 12, -6, -16, -6, 18, 11, -5, 3, 13,
-32, 10, -10, -22, 16, -60, 2, 21, -16, 12, 2, -10, 3, 13, 2,
8, 1, 19, -16, 24, 12, 24, 2, 22, -46, 32, -14, -18, 30, -49,
14, 6, 17, 6, -32, -8, 21, 10, -2, -6, -15, -24, 56, -8, -12,
-38, 12, -4, 29, -18, -5, -47, 63, -4, 6, 3, -12, 3, 14, 10,
-8, -23, 15, 12, 33, 8, -4, -14, 32, 14, -8, -7, -46, 1, -4,
32, -48, -4, 2, 10, 5, 37, -58, 30, -16, 20, -22, -7, -2, -6,
15, 10, -20, 16, 1, -8, 28, 17, 6, 48, -1, -14, -11, 5, -37,
-26, -14, -54, -9, 26, 14, -4, 43, 13, 27, 34, 18, -30, -5, 1,
-18, -12, -7, -19, -10, 16, -1, 45, 20, -8, 18, -27, -11, -23, 4,
-62, -28, 0, -2, 14, 30, 20, -6, 50, 28, -11, 8, -18, -14, -20,
10, -24, -4, -10, 17, -11, 20, -5, 2, 22, -8, 18, -38, 30, -52,
18, -4, -5, -27, 20, 8, 4, 25, -7, -13, 8, 12, -10, -16, -3,
-18, 6, 14, 14, -34, 44, -28, 39, -24, 23, -14, -27, 12, -26, -27,
-4, -14, -36, -18, 24, 2, 20, 50, 5, 21, 49, 20, -19, 0, -12,
-45, -2, -16, -40, -6, 0, 10, -8, 26, 0, 0, 16, 2, 20, -26,
22, -10, -2, -2, -14, -55, -20, 23, -10, -12, 17, -11, 20, 65, 20,
-22, 12, 15, -15, 18, -11, -42, -6, 4, 9, -23, 18, -18, 9, 13,
12, -25, 24, -18, 3, 14, -26, 36, -14, 26, -24, 8, 6, -32, 38,
-48, 14, -21, 23, -8, -2, 29, -32, 38, -4, 4, -4, -4, 12, -24,
24, -18, 12, -18, 26, -26, 26, -17, 15, -4, -24, 26, -40, 36, -36,
28, -22, 7, 19, -16, 32, -29, 28, -26, 20, -3, -14, 16, -22, 23,
-20, 20, -13, 2
};
static const int32_t mdt8x4_mode6[1024] = {
4, 8, 8, 10, 13, 14, 15, 15, 4, 10, 17, 24, 28, 30, 28,
24, 4, 12, 22, 30, 35, 36, 34, 30, 6, 15, 22, 27, 29, 30,
31, 32, -13, -34, -46, -35, -16, 9, 32, 40, -14, -31, -37, -26, -12,
0, 10, 22, -8, -5, 10, 16, 8, -10, -18, -10, 8, 26, 40, 32,
10, -9, -10, -8, 6, 5, 5, 22, 37, 40, 29, 10, -6, -11, 3,
32, 46, 37, 18, 4, -4, 0, 8, 2, -9, -16, -12, -3, 8, 15,
4, -20, -44, -49, -32, -16, -6, -6, 4, 5, 0, -1, 8, 20, -6,
-16, -28, -28, -4, 20, 38, 42, -12, -34, -50, -40, -8, 22, 36, 33,
-14, -24, -26, -18, -9, -2, 0, 9, 23, 30, 10, -18, -48, -40, -2,
24, -8, -11, -2, 15, 26, 18, -12, -35, -18, -32, -22, 11, 44, 37,
0, -26, -3, 1, 6, 0, -16, -26, -10, 12, 4, 24, 40, 21, -6,
-18, -12, 7, 9, 16, 4, -17, -12, 18, 32, 19, 15, 12, -6, -5,
4, 6, -4, -14, -2, -2, 16, 38, 34, -2, -52, -67, 7, 2, -15,
-31, -23, 8, 36, 36, 24, 41, 32, 7, -14, -10, 14, 35, 4, 10,
19, 26, 18, 0, -15, -16, -16, -34, -44, -34, -10, 4, -4, -16, 28,
36, 11, -20, -34, -22, 1, 21, 2, 12, 12, -4, -20, -12, 6, 18,
22, 33, 14, -20, -36, -20, 16, 43, 18, 25, 22, 5, -25, -38, -2,
32, -26, -42, -30, -16, -14, -27, -43, -37, -6, -4, 0, 3, 7, 10,
12, 6, 16, 24, 26, 21, 19, 30, 35, 27, 10, 6, -10, -22, -22,
-22, -28, -24, -32, -20, 17, 20, -10, -17, 16, 36, 6, 0, -22, -24,
8, 36, 12, -36, 42, 50, 12, -22, -12, 15, -2, -40, 10, 2, -14,
-18, -8, 11, 21, 16, -2, 0, 3, 4, 0, -4, 12, 28, -38, -34,
26, 45, -5, -42, -16, 19, 2, 6, -8, -30, -9, 29, 22, -18, 34,
34, -8, -22, 8, 28, 0, -36, 7, -7, -6, 26, 36, 10, -8, -2,
22, 36, 12, -32, -46, -22, 7, 10, -4, -10, -18, 0, 33, 38, -2,
-30, 25, 39, 20, -11, -32, -21, 3, 18, 23, 9, -35, -31, 20, 38,
16, -12, 14, 5, -4, 4, 9, -11, -20, -18, 22, 28, -6, -39, -8,
42, 38, -22, -20, -28, -2, 34, 18, -26, -22, 6, -4, -30, -10, 51,
24, -32, -6, 54, -13, -4, 22, 12, -20, -19, -6, -20, -29, -2, 28,
8, -8, 2, 10, 13, -22, -28, -12, 22, 15, -32, -24, 24, -7, -17,
-12, 6, 4, -23, -14, 34, 60, 43, -24, 10, 50, -11, -40, 14, -8,
-16, -8, -8, -24, -5, 21, 5, -5, 12, 24, 1, -14, 12, 10, -28,
67, 24, -48, -4, 28, -20, -32, 12, 2, -10, -13, -13, -6, 28, 30,
-15, -26, 2, 29, -2, -20, -2, 5, -14, 8, 12, -16, -20, 6, 26,
12, -16, 10, 15, 2, 10, 19, -19, -40, 0, -12, -29, -28, 14, 20,
-25, 0, 66, 27, 24, 6, 4, 16, 0, -24, -36, -28, -25, 7, 8,
-18, -12, 22, 17, -6, -32, -37, -12, -6, -19, -18, -6, -18, 25, 60,
28, 7, 31, 32, 3, 11, -8, -38, -34, -15, -14, -25, -18, -8, -4,
23, 21, -4, 3, 17, 8, -2, 3, 11, 9, -14, 6, 20, -14, -18,
-6, 9, -4, -23, -6, 16, -14, -14, -5, 23, 13, -22, 10, 42, -18,
-54, -16, 48, 0, -48, 8, 36, -34, 25, 4, -24, 15, 22, -3, 8,
26, -14, -6, 2, -8, -12, 1, -22, -28, 57, 10, -36, 10, 42, -12,
-10, 52, -10, -14, 10, -2, -20, 11, 14, -36, -44, 32, 10, -47, 38,
18, -44, 42, -31, 14, 10, -12, -2, 2, 0, -12, 18, -20, -10, 34,
-16, -15, 30, -16, 4, -5, 5, -5, -4, 6, -15, 10, 8, -4, 7,
4, -8, 16, -11, 6, -51, 23, 23, -52, 20, 31, -55, 27, -33, 15,
18, -16, 6, 10, -6, 4, 22, -16, -11, 18, -13, -7, 22, -18, 44,
-26, -8, 30, -16, -10, 23, -18, -30, 16, 2, -20, 19, 0, -12, 18,
44, -28, -10, 40, -24, -18, 36, -30, 7, 1, 0, -12, 14, 9, -26,
22, -12, 14, -10, 4, 10, -24, 24, -14, -4, 12, -18, 13, 1, -18,
24, -7, 0, -8, -11, 21, -4, -14, 20, -12, 64, -28, -31, 44, -10,
-31, 46, -24, 6, -6, 1, 0, -2, -2, 4, -1, -22, 24, -10, -11,
29, -36, 28, -14, -48, 60, -34, -6, 37, -44, 27, -8, -8, 6, 6,
-8, -3, 16, -18, 8, -22, 32, -20, -2, 24, -36, 35, -18, -48, 50,
-29, 0, 15, -17, 8, -4, 2, -8, 16, -10, -15, 36, -37, 20, -16,
6, 10, -14, 6, 8, -14, 4, 26, -27, 21, -10, -5, 16, -13, 8,
0, 3, -14, 10, 3, -18, 18, -12, -3, 0, 4, 2, -17, 28, -26,
12, 48, -54, 26, 12, -40, 45, -32, 14, -32, 40, -32, 12, 14, -35,
30, -17, 24, -28, 22, -7, -12, 28, -28, 19, -12, 10, 1, -7, 12,
-18, 16, -10, 20, -26, 19, 2, -24, 34, -35, 18, 22, -32, 40, -44,
46, -40, 25, -9, 2, -4, -4, 12, -22, 28, -24, 10, -20, 32, -34,
32, -22, 13, -4, 0, -8, 4, 2, -6, 6, -8, 6, -2, -8, 16,
-24, 31, -33, 30, -20, 4, -16, 30, -44, 51, -46, 35, -22, 10, -16,
25, -26, 20, -12, 4, 4, -4, 4, -8, 8, -10, 10, -2, -2, 2,
-8, 14, -16, 16, -14, 8, -4, 0, 7, -14, 14, -14, 12, -8, 3,
-1, -6, 20, -32, 39, -36, 27, -17, 6, -26, 39, -49, 48, -38, 24,
-12, 4, 10, -18, 18, -16, 10, -7, 4, -2, -15, 24, -28, 30, -27,
18, -10, 4, 12, -24, 30, -32, 32, -27, 18, -8, -18, 28, -37, 42,
-38, 27, -16, 7
};
static const int32_t mdt8x4_mode7[1024] = {
0, 2, 3, 7, 12, 18, 25, 30, 1, 4, 8, 14, 22, 29, 33,
34, 2, 7, 15, 22, 29, 34, 35, 33, 6, 14, 24, 28, 32, 33,
31, 28, 2, 8, 18, 29, 37, 36, 26, 12, 4, 18, 30, 36, 30,
18, -2, -18, 10, 24, 31, 22, 4, -14, -27, -28, 14, 22, 14, -3,
-20, -30, -30, -26, 6, 22, 40, 42, 30, 6, -18, -26, 10, 28, 34,
20, -8, -28, -26, -7, 10, 14, 0, -20, -24, -10, 14, 31, 1, -9,
-22, -19, 0, 23, 36, 35, 8, 30, 35, 15, -6, 4, 36, 50, 12,
26, 10, -19, -18, 14, 34, 19, 6, -7, -34, -36, -4, 17, 1, -17,
-18, -36, -36, -11, 6, -4, -20, -20, 8, 32, 35, 15, -13, -38, -42,
-28, 18, 26, 8, -12, -19, -10, -2, -4, 8, 6, 4, 12, 27, 28,
8, -16, 8, 19, 30, 39, 32, 4, -24, -37, -8, -27, -22, -1, -10,
-32, -23, 16, -10, -2, 25, 18, -16, -12, 32, 40, 13, 44, 33, -14,
-25, 13, 28, 2, 28, 21, -20, -36, -12, 6, -14, -30, 28, 52, 30,
-19, -40, -23, 6, 19, 18, 6, -18, -18, 0, 8, 8, 18, -6, 2,
20, 20, -10, -28, -9, 20, 14, 32, 20, -24, -43, -20, 12, 29, -18,
-20, -4, -26, -45, -18, 22, 11, 4, 34, 26, -9, -8, 14, -9, -48,
34, 46, 12, -8, 12, 6, -27, -18, 11, -3, -14, 12, 20, 2, 14,
42, 8, 10, 1, -19, -24, -12, -26, -43, 4, 11, 13, 30, 50, 42,
12, 2, 4, -2, 2, 22, 30, 18, 12, 12, -25, -44, -36, -24, -20,
-14, -3, -5, 28, 42, -4, -44, -17, 23, 28, -6, 12, -13, -12, 18,
20, -10, -26, -16, -7, 10, 18, -7, -20, -2, 10, -10, 12, 8, -21,
-14, 36, 54, 6, -44, -28, -26, 0, -16, -18, 28, 26, -14, 17, 48,
6, -30, 0, -4, -24, 16, 31, 3, -15, 12, -4, -26, 29, 44, -6,
-6, 24, 6, -24, 2, 0, -48, -24, -4, 30, 20, 8, 22, 2, -34,
-15, -17, -40, -45, 10, 36, 10, -18, 8, 14, -14, -14, 16, 19, 11,
4, 52, 33, -30, -25, -4, 0, 4, -4, -35, -25, 32, 36, -20, -46,
3, 38, -12, -1, -4, 6, 22, 7, -16, -24, -18, -30, 5, 26, 4,
-8, 0, -16, -12, 2, 4, -24, -12, 44, 29, -28, 4, 1, 18, 8,
-1, 11, 24, 12, -20, -20, -16, -16, -38, -44, -23, -6, -4, 18, 46,
50, 36, 22, 14, 19, -11, -30, -30, -10, 0, -18, -18, 2, 26, 9,
6, 22, -14, -22, 4, 9, -47, -42, 14, 4, 12, 15, -16, 14, 16,
32, -16, -17, 14, -40, -20, 35, 16, -18, -9, 43, 6, -12, 19, -32,
36, -6, -18, 21, -12, -7, 38, -30, -7, -9, 32, -2, -42, 30, 20,
-50, -33, -9, 14, -21, -6, 21, 17, 22, -18, 10, 24, -8, -20, -2,
10, -17, 30, -2, -25, 17, 34, -6, -10, -13, 22, 7, -28, -34, -17,
16, 38, -1, 29, 26, 20, 32, -5, -28, -17, -26, -14, -30, -3, 1,
-8, 34, 35, -14, -36, 0, 48, -3, -24, 16, 8, -36, -31, -19, -11,
2, 2, 9, 32, 14, 2, 16, 35, -8, -48, -16, -6, -8, -45, -14,
24, 10, 22, 4, -14, 10, 0, 26, 2, -19, 18, 1, -20, 31, -30,
-14, -20, 4, 16, -8, -6, -40, 45, 27, -15, -16, -12, 36, 40, -9,
-22, -12, 40, 1, -40, -5, 10, -2, 22, -3, 10, -10, -22, 34, 2,
-22, -48, 2, 40, -14, -9, -17, -8, 40, -2, -2, -20, 8, 28, 10,
-8, -58, 4, 3, 16, -14, -30, 24, 26, 6, 30, -4, -6, 15, -9,
-16, 22, -12, -32, 2, 4, 12, 2, -6, 19, -17, 50, -32, -32, 42,
-21, -20, 22, 3, 24, 0, 3, -16, 20, 18, -50, 25, 42, -36, 4,
34, -22, -5, 10, -1, 27, -2, -14, -22, 42, 0, -30, 11, -27, 28,
5, -8, -24, 2, 47, -33, 4, -14, 0, 25, -9, -6, -19, 22, -8,
7, 10, -32, 16, 10, -26, 16, -33, 30, 20, -18, 0, 2, 28, -30,
-59, 2, 2, 21, -20, -24, 26, 2, 43, -31, -10, 30, -8, 4, -4,
-2, -22, 0, 14, 2, -20, -2, 29, -21, 36, -24, -14, 50, -16, -33,
34, -6, 9, -8, -18, 10, -2, 0, 18, -24, 37, -17, -6, 33, -24,
-20, 39, -8, -2, -2, 0, 2, -2, -2, 8, -6, 6, 4, -11, 10,
16, -40, 38, -18, -36, 58, -48, 0, 41, -31, 2, 11, -34, 25, 5,
-18, 0, 18, -18, 4, -21, 29, -30, 10, 21, -46, 50, -28, -34, 42,
-30, 2, 20, -16, -8, 22, -18, 7, 9, -15, -3, 25, -22, 1, 20,
-22, 14, 3, -14, 8, -6, 5, -50, 46, -30, 17, -6, 0, 0, 0,
28, -42, 30, -9, -20, 29, -22, 7, -6, 16, -6, 4, 12, -20, 18,
-10, 10, -24, 14, -4, -17, 32, -34, 19, -20, 33, -29, 7, 8, -14,
14, -6, -24, 14, 8, -12, 2, 4, -6, 3, 4, -10, 5, 8, 2,
-31, 52, -34, -36, 43, -36, 11, 20, -40, 29, -1, 6, -24, 44, -58,
61, -50, 34, -16, 15, -28, 26, -10, -5, 14, -14, 12, 2, 6, -12,
7, 0, -2, 8, -7, -8, 10, -6, 4, -8, 5, -6, 4, 4, -5,
4, -1, 0, 2, -4, 4, -11, 20, -34, 43, -49, 47, -35, 15, -24,
36, -40, 32, -20, 5, 5, -9, 2, -5, 14, -21, 22, -17, 12, -3,
-9, 10, -10, 6, 1, -6, 6, -2, 14, -24, 36, -38, 32, -22, 8,
-2, -10, 14, -22, 30, -30, 24, -13, 4, 12, -20, 29, -40, 44, -40,
29, -12, 8, -11, 11, -10, 9, -6, 2, 1, 0, 7, -12, 8, -3,
2, 2, -2, 4, -14, 28, -44, 48, -44, 32, -16, 24, -36, 43, -44,
34, -20, 8, 3
};
static const int32_t mdt8x4_mode8[1024] = {
1, 2, 4, 5, 5, 6, 10, 24, 4, 6, 12, 14, 14, 21, 31,
36, 6, 14, 17, 18, 26, 36, 38, 36, 10, 18, 21, 28, 37, 39,
36, 30, -4, 2, 8, 10, 14, 10, -2, -11, 2, 10, 20, 28, 24,
6, -14, -24, 12, 25, 38, 36, 16, -8, -23, -30, 28, 44, 46, 27,
4, -19, -31, -32, -2, 7, 18, 20, 6, -12, -15, -6, 8, 24, 34,
18, -16, -32, -18, 4, 25, 38, 24, -14, -37, -28, 3, 27, 31, 22,
-12, -34, -28, 0, 28, 38, 12, 20, 22, 5, -14, -8, 12, 13, 30,
40, 18, -22, -24, 14, 26, -2, 43, 24, -20, -32, 4, 30, 8, -26,
28, -6, -26, -6, 20, 7, -27, -40, 9, 2, 3, 9, 29, 40, 31,
6, 12, 16, 7, 30, 56, 42, 18, -2, 16, 2, -2, 16, 11, -4,
-7, 3, -9, -36, -32, -34, -38, -18, 4, 8, 9, 26, 22, 6, 6,
6, -18, -38, 30, 30, 3, -2, 12, -9, -45, -33, 24, -8, -25, 6,
20, -10, -14, 9, -21, -37, -2, 42, 36, 10, 16, 30, 30, 29, -8,
-38, -29, 6, 13, 8, 40, 2, -42, -40, 0, 15, 6, 6, 22, -12,
-10, 14, 7, -20, -10, 16, 28, 31, 28, 4, -34, -26, 10, 25, 20,
20, 8, 4, 8, -16, -22, 18, 35, 17, 0, 22, 8, -33, 0, 48,
6, -24, 4, 25, -20, -20, 32, 10, -34, -22, 25, 4, -20, 4, -6,
-55, -26, -20, 24, 19, -22, -24, 4, 26, -12, 23, 31, -6, -20, 4,
21, 21, 0, 2, -8, 4, 18, -2, -16, 10, -26, -22, 19, 32, -15,
-64, -26, 36, 48, 34, 14, 24, 0, -11, 16, 12, 32, -8, 16, 13,
-22, 6, 18, -27, -42, -17, 30, -8, -8, 20, -24, -24, -44, 19, 12,
-23, 8, 8, -6, 30, -31, 10, 46, 10, 5, 44, 48, 30, -20, 22,
3, -28, -4, 6, -10, -4, -12, -6, -17, -15, -26, -38, -13, -1, -18,
16, 28, 6, 0, 28, 24, -20, 30, -4, -26, 25, 59, 27, 13, 34,
12, -30, -12, 10, -12, -26, 6, 17, 11, 3, -20, -27, -22, -18, -14,
0, 26, -6, -2, 38, 24, -18, -22, 18, -22, -28, -34, -2, 1, -34,
22, 28, 10, 3, -20, 12, -14, -10, 20, -32, 55, 4, 11, 22, -15,
-2, -21, -36, -16, -28, 24, 0, -8, 30, 31, 10, -9, 0, 18, 44,
36, 6, -10, -44, -6, -10, -14, -4, -18, 8, 18, -20, 16, -24, -32,
-10, -6, 40, 35, -1, 10, 4, 50, -6, -42, -3, 1, 6, -10, -16,
-28, -35, -10, 46, 22, -46, 18, 8, 12, 2, -20, 8, 10, 0, 22,
8, 33, -18, -42, 6, 18, 28, -38, -4, 18, 2, 19, -11, -32, 4,
46, -34, -32, 40, -15, -10, 20, -8, 6, -14, 21, -13, -8, 22, -27,
-5, 6, 22, 0, -28, 28, -7, -6, 30, -19, 4, 9, 12, -16, -10,
40, -43, -21, -5, -13, -15, 36, 19, -48, 14, 18, 17, -10, -24, 16,
-6, -9, 29, 8, 28, 2, -38, 23, 24, -17, -32, -48, 33, 6, -10,
-10, -8, 18, 7, -49, -20, 7, 35, -10, -21, 3, 0, 46, -14, -20,
22, 14, 18, -8, 10, 20, -50, -2, -18, 5, -12, -18, 26, 0, 37,
-12, -25, 34, -5, -12, -6, -30, 42, -7, 8, 16, 21, 17, -34, 2,
-14, -1, 4, -60, -12, 19, 29, 4, -11, 28, 20, 39, -7, -22, -8,
4, -7, -28, 6, -4, -16, 36, -20, 26, -34, 6, -3, -18, 30, 20,
-10, -10, 2, 18, 6, -12, -41, -24, 38, 18, -14, -26, 20, 36, 18,
-30, -7, 5, -1, 24, -47, 4, 27, -22, 14, -16, -6, -15, -16, 25,
10, 22, 44, 16, 26, 0, 2, -24, -36, -32, -52, -14, -11, -4, 20,
26, 32, 34, 33, -2, 17, -16, -10, -7, -23, -4, -10, 10, 12, -24,
-12, 46, -38, -4, -18, -28, 46, -7, -2, -6, 11, 32, -1, -12, 8,
-28, 14, -6, -5, -48, 50, -6, 12, 12, -21, 19, 6, -8, -16, -3,
-40, -6, -13, -11, 2, 16, -33, 39, 30, 8, 32, 8, -28, 43, -2,
-46, 2, -40, -10, 4, -20, 8, -27, 9, 24, -10, 24, -10, 2, 23,
2, 6, -39, 15, 32, 18, 11, -21, -6, 24, -8, -9, -58, -14, 3,
24, -11, -3, 23, 12, 52, 10, -36, 16, 6, -16, 8, -27, -5, 0,
26, -29, 6, -4, 10, 22, 24, -10, -19, 46, -20, 1, 0, -74, 8,
16, -30, -12, 15, -14, 62, 8, -2, 2, 20, 4, 6, -16, -7, 0,
-4, 4, -10, -13, 2, 2, -40, 8, 8, 13, 5, -6, -2, 26, 37,
-16, -24, -8, 18, -24, 20, -40, -17, 36, 10, -32, 32, -22, -8, 44,
-37, 10, -4, 10, -14, 24, -6, 30, -32, 64, -32, 7, 8, -15, 4,
-10, -29, -12, 14, -6, -9, 24, -17, 24, 4, -4, 11, -10, 6, -4,
6, -12, 8, -3, -15, 35, -45, 42, -20, 25, 1, -26, 28, 0, -6,
16, -12, -40, 44, -12, -10, 4, 6, -12, 14, 19, -28, 2, 16, -10,
-17, 44, -43, -13, 30, -16, -11, 34, -34, 14, 16, -13, 2, 2, -24,
26, -26, 20, -4, 26, -30, 22, 12, -30, 49, -44, 25, -10, 32, -46,
34, -20, -1, 16, -22, -8, 7, 2, -8, 6, -6, 0, 7, 4, -6,
15, -14, 24, -33, 40, -20, -2, -16, 32, -39, 36, -28, -4, 14, 20,
-26, 12, 10, -25, 36, -18, 2, -9, 24, -34, 34, -24, 6, 0, -1,
10, -4, -4, 22, -32, 32, -26, 12, -12, 15, -24, 34, -25, 17, -10,
5, 10, 2, -20, 29, -36, 35, -29, 10, -16, 31, -38, 36, -26, 14,
-2, -4, 22, -28, 34, -33, 31, -20, 10, -3, -14, 21, -28, 29, -32,
28, -18, 8, 9, -19, 32, -34, 31, -22, 10, -3, -2, 6, -13, 22,
-26, 28, -22, 9
};
static const int32_t mdt8x4_mode9[1024] = {
1, 0, 0, 2, 6, 8, 13, 21, 0, 0, 4, 12, 18, 24, 32,
34, 1, 8, 16, 26, 32, 36, 36, 33, 7, 18, 28, 34, 36, 34,
32, 30, -2, -4, 0, 12, 22, 21, 8, -9, -2, 4, 20, 38, 38,
18, -10, -26, 6, 24, 40, 40, 20, -8, -28, -32, 18, 32, 30, 12,
-10, -24, -30, -26, 6, 22, 35, 38, 20, -2, -12, -5, 14, 38, 50,
32, -7, -26, -14, 8, 19, 32, 20, -12, -29, -16, 12, 24, 12, 6,
-14, -26, -14, 12, 26, 26, 4, 18, 26, 17, 4, 8, 22, 34, 14,
34, 23, -2, 4, 30, 42, 20, 18, 8, -20, -16, 16, 31, 6, -26,
-10, -34, -33, -8, 5, -10, -34, -42, 5, 18, 20, -2, -28, -34, -20,
-12, 15, 27, 8, -31, -47, -26, -8, -14, 12, 18, 0, -10, 7, 18,
-2, -23, 23, 34, 32, 40, 38, 10, -18, -20, -6, -18, -21, -22, -30,
-22, 13, 38, -12, -12, -2, -10, -20, 1, 38, 38, 6, 32, 34, -3,
-24, -8, 9, 2, 28, 40, 4, -33, -38, -19, -7, -10, 30, 49, 23,
-28, -24, 23, 26, 4, 38, 32, -22, -34, 12, 30, -1, -8, 10, -10,
-11, 12, 3, -27, -20, 10, 2, 12, 22, -2, -32, -17, 17, 28, 2,
-6, -24, -48, -32, 1, -12, -48, 8, 15, 5, -3, 18, 26, -12, -30,
24, 36, 18, 2, 19, 29, 18, 2, 14, -9, -42, -34, 7, 23, 8,
-3, 16, 22, 8, -4, -16, -42, -50, -24, 14, 6, -2, 16, 6, -14,
3, 30, -16, -25, 15, 46, 22, 12, 27, 24, -28, -18, 12, -8, -30,
-28, -18, -20, -36, -30, 22, 22, -30, -37, 0, 2, -29, 6, 25, -10,
-10, 22, 7, -23, 4, 10, -8, 6, 37, 10, -26, 3, -8, -16, -4,
10, -17, -40, 8, 59, -25, -26, -28, -34, -14, 8, 8, 24, 8, 39,
16, -3, 0, -26, -18, 20, 29, 22, 10, 25, -8, -40, -8, 7, -35,
-46, 11, 37, 8, 5, 4, -12, -20, -19, 7, 8, 22, 36, -20, -37,
-17, 4, -8, -32, 10, 10, -12, 30, 26, 21, -36, -21, 10, -8, 26,
45, 29, 10, 7, 22, -17, -36, -15, -20, 44, 12, -51, -12, 35, 8,
-21, 6, 24, -6, -6, 10, -20, -18, 12, 10, 14, 21, 6, -12, 9,
18, -20, -3, 11, -12, -19, 20, 12, -44, -24, 52, 0, -8, -28, -30,
-29, 2, 16, -16, 10, 18, 56, 48, 6, 14, 4, -2, -17, -40, -30,
-42, -20, 8, 5, 18, -2, 20, 26, 8, 2, -16, -16, 4, 26, 8,
5, 13, -6, 28, 33, -31, -16, -20, 16, -18, -46, 20, 10, -23, -23,
18, 52, -7, -20, 6, 15, 28, -38, -24, 9, 20, 0, -18, -2, -15,
-10, -35, -29, 26, 30, -2, -10, -15, 35, 24, -16, -12, -12, 11, 24,
-23, 31, -7, -4, -4, -20, 30, 20, -30, -31, 2, 46, -15, -36, 8,
22, 4, -42, 0, 28, -24, 6, 30, -32, -34, -4, 20, -6, -14, 5,
10, 29, 37, -22, -8, 29, -2, -29, -4, -18, -26, -23, 10, 0, -16,
30, 4, -28, 36, 26, 8, -4, 20, -16, -42, -24, -28, -2, -26, -7,
14, 32, 42, 36, 12, 22, 23, -8, -20, -32, -45, -16, -11, -2, -18,
6, 31, 12, 12, 14, -7, -12, 26, 29, -32, 1, -6, -15, 36, -28,
-7, -25, 15, 38, -10, -14, -34, 8, 26, 5, -30, -34, 28, 44, -10,
-18, -8, 18, 20, -10, -22, -8, 14, 31, 16, -4, -26, 6, 28, -26,
-6, -56, -2, 45, -12, -12, -8, 10, 16, -11, 2, -20, 5, 18, 2,
3, -52, 8, -14, 16, 8, -38, 18, 34, 0, 6, -4, -20, 3, 18,
-14, -34, 30, 12, 23, 8, -28, 21, 28, -30, 8, -56, 22, 20, -46,
22, 4, -26, 11, -27, 17, 1, -2, 0, -3, 26, -22, -28, 14, -13,
-20, 38, -17, -14, 4, -2, 34, 2, -4, -12, 9, 48, -48, -36, -14,
0, 22, -13, -27, 19, 14, 40, -6, -26, 24, 0, -12, 16, -13, 29,
-36, 0, 25, -19, 3, -11, 17, 8, 12, 14, -32, 20, 24, -35, 8,
-18, -26, 21, 18, -42, 12, 25, -18, 50, -29, -5, 16, -4, 3, -22,
19, 38, -6, -15, 6, 18, -19, 4, 6, -48, 31, 4, -24, 18, -5,
15, -24, -2, 14, -22, 14, 0, -16, 0, 32, -18, 6, 24, -35, 14,
30, -57, 16, 20, -30, 22, -9, -8, 26, -46, 34, 25, -32, 28, -4,
-16, 18, 6, -27, 18, -6, -12, 14, 12, -39, 35, -3, -32, 36, -18,
-5, 19, -8, -6, 3, 13, -22, 2, 13, -14, -2, 37, -28, 24, 11,
-9, -2, 27, -40, 14, 6, -52, 38, -20, -2, 16, -20, 42, -35, -16,
16, -20, 16, -8, -8, -2, 16, 4, -32, 34, -14, -12, 25, -24, 10,
36, -17, -8, 20, -4, -17, 30, -18, -30, 28, -8, -13, 9, 9, -31,
27, 28, -39, 30, -2, -25, 33, -17, -4, -48, 50, -32, 12, 4, -4,
0, 4, 24, -30, 18, -6, -18, 28, -23, 4, -12, 18, -7, -2, 14,
-20, 26, -9, 0, -9, 8, 6, -28, 39, -45, 22, 3, -13, 28, -42,
50, -41, 28, -15, 26, -38, 45, -42, 28, -15, 4, 4, 17, -15, 14,
-6, -1, 8, -9, 6, -4, 2, -5, 12, -14, 9, -6, 2, 11, -16,
18, -21, 20, -14, 6, -3, -2, 6, -12, 24, -32, 36, -26, 16, -16,
29, -40, 41, -40, 29, -20, 5, -20, 27, -28, 26, -22, 16, -6, 0,
-4, 10, -18, 26, -29, 23, -16, 4, -8, 5, 3, -14, 25, -28, 24,
-15, 17, -21, 16, -5, -8, 20, -24, 19, -20, 34, -44, 46, -42, 32,
-14, -1, 20, -26, 21, -17, 18, -13, 8, -4, -16, 29, -34, 32, -27,
18, -10, 7, 15, -29, 37, -42, 40, -30, 18, -9, 3, 2, -11, 21,
-26, 26, -20, 10
};
static const int32_t mdt8x4_mode10[1024] = {
0, 0, 2, 7, 9, 12, 15, 17, 0, 2, 10, 21, 26, 28, 30,
24, 2, 13, 24, 32, 36, 36, 30, 22, 9, 24, 32, 36, 34, 30,
26, 24, -4, -8, -5, 8, 15, 15, 10, -6, -6, -6, 8, 30, 35,
20, -6, -28, 2, 14, 30, 35, 18, -13, -39, -42, 10, 24, 25, 10,
-16, -37, -43, -34, 4, 17, 27, 28, 13, -8, -20, -17, 10, 37, 50,
34, -8, -39, -34, -10, 20, 36, 29, 2, -24, -22, 2, 16, 21, 20,
4, -10, -5, 10, 17, 20, 10, 26, 32, 12, -5, 4, 20, 20, 22,
47, 29, -12, -10, 24, 36, 13, 29, 27, -14, -29, 4, 29, 6, -28,
8, -12, -24, -6, 12, -1, -30, -39, 13, 16, 2, -18, -28, -28, -26,
-31, 10, 7, -12, -34, -38, -21, -19, -32, -3, 0, -1, 0, 16, 24,
-2, -23, 14, 28, 36, 44, 40, 14, -14, -15, 3, -6, -12, -20, -30,
-27, 4, 42, -7, -11, -8, -19, -28, -16, 30, 46, 4, 24, 29, 5,
-21, -12, 6, 8, 31, 46, 20, -13, -34, -24, -12, -3, 38, 34, -7,
-44, -16, 29, 12, -24, 46, 28, -22, -27, 18, 38, -4, -20, 18, 7,
8, 12, 2, -12, -10, 16, 3, 8, 7, -20, -29, -8, 23, 26, 22,
31, 22, 22, 0, -16, 5, 37, 36, 15, -4, 6, -8, -28, -2, 28,
-2, -35, -13, 35, 14, -30, -16, 9, -40, -28, 28, 34, -6, -25, -9,
6, -17, -8, 0, -20, -44, -55, -42, -16, -2, 16, 16, 14, 14, 7,
2, 1, 0, 10, 16, 38, 42, 26, 12, 4, -19, -33, -28, -20, -22,
-14, -5, 5, -34, -26, 18, 17, -20, -8, 31, 14, -25, 14, 20, -27,
-20, 21, 4, -34, 9, 15, -16, -16, 12, -1, -32, -2, -3, -4, 12,
24, -8, -34, 15, 64, -45, 12, 60, -12, -22, 17, -8, -23, -33, 20,
12, -27, 16, 24, 0, 17, -25, -18, -2, 11, -19, -30, 13, 12, -20,
16, 27, 0, -11, 15, 8, -35, 6, -4, 9, 32, 35, 6, -54, -42,
3, -10, -12, -14, 8, 15, 10, 28, 18, 1, -28, -22, 10, 17, 21,
26, 17, 10, 14, 20, -26, -51, -18, 10, -34, -20, -30, -42, 10, 28,
-11, 14, -6, 28, -6, -22, 17, -18, -34, 30, 38, 38, -6, 6, 6,
-27, -4, 15, 2, -26, -12, 36, 25, -3, -14, -10, -26, -40, -14, 16,
4, -39, -16, -12, 45, 16, -30, 10, 20, 12, 40, -6, 32, 9, -5,
-8, -36, -24, -3, -28, -28, 5, 26, 4, 3, 26, 18, -4, 9, -16,
-30, -4, 4, 26, 6, -42, 9, 3, 36, -3, -50, 12, 32, 6, -21,
4, 48, 2, -26, -4, 7, 17, -44, -22, 2, 14, 16, -20, -18, 0,
-8, 14, 21, -12, 34, 7, -52, 28, 3, 10, -14, -23, 10, 8, 2,
18, -32, 0, 34, -6, -8, 10, -32, -33, -18, 14, -16, -23, 32, 0,
-18, 48, 28, 18, -10, -8, 32, -3, -20, 19, -48, 8, 6, -19, -4,
4, 6, -14, 5, 11, 12, 14, -24, 8, 28, -49, 2, -43, 20, 26,
-40, 6, 39, -4, 16, 36, 6, -31, -27, -16, 0, -25, -24, -16, 4,
41, 30, 2, 38, 8, -7, 6, -20, -12, -32, -32, -5, -10, 24, -13,
-17, 36, 27, -10, -17, 31, -12, 4, -26, -36, -10, 5, -2, 26, 6,
26, 24, 36, 25, -6, -24, -7, -11, -22, -12, -50, -23, 43, 20, 2,
-28, 13, 43, 2, -16, -16, -17, 7, -45, 14, 6, -16, 19, 28, 20,
-21, -4, 22, -26, 14, -26, -44, 32, -12, 24, -25, -12, 43, -6, 20,
26, -20, 13, 2, 0, -18, -10, -4, -24, 28, 4, -48, 33, -10, -34,
33, -16, 6, 42, -28, 25, 4, -4, 9, -22, 20, 12, -35, 10, 12,
-22, 10, 10, -36, 40, -22, -4, 16, -4, -1, 6, 12, -11, 12, 34,
16, -6, -15, 23, 14, 6, -20, -49, -10, 20, 4, -24, -32, 11, 15,
51, -4, -38, 20, 38, 26, -8, -22, -10, 16, 11, -22, -22, -2, 52,
-31, 27, 3, -25, 24, 2, -7, -28, -18, -4, -4, 12, -23, -5, 6,
28, 36, -19, 5, 7, -2, 18, -16, -54, 10, 18, -24, 2, 18, -32,
23, 12, -33, 5, -2, 7, 6, 4, 13, 28, 26, 2, -12, 18, -22,
12, -28, -68, 24, -24, 10, 8, -25, 52, -10, 6, 21, -27, 15, -2,
-24, 5, -1, 26, -24, -12, 3, 13, -20, -17, 25, -18, 24, 24, -22,
7, 27, 8, -35, 15, -39, -14, 32, -26, -13, 6, 39, 26, -2, 6,
-15, 18, 18, -49, 8, 18, -21, -13, 27, -7, -16, 40, -39, -12, 45,
-14, -24, 36, -22, -12, 42, -33, -7, 15, -3, -12, 25, -22, -9, 26,
-24, 12, 0, -10, 14, -14, 12, 14, -32, 46, -40, 20, 7, -12, 6,
4, 0, -13, 17, -2, -29, 38, -22, -14, 18, 2, -12, 4, 22, -44,
40, 16, -33, 26, -4, -6, 3, 10, -22, -10, 6, 12, -36, 46, -39,
34, -18, 24, -45, 54, -44, 30, -22, 4, 2, 14, -6, 3, -3, 6,
4, 4, -4, -12, 8, -4, 4, -12, 9, -8, 7, -30, 24, -14, 16,
-8, 14, -11, 8, 28, -25, 4, -2, -10, 11, 0, -9, -33, 38, -10,
-7, 12, -14, 7, 4, 18, -36, 28, 2, -36, 54, -48, 20, 2, -10,
16, -26, 34, -33, 24, -10, 6, -2, -10, 26, -36, 46, -43, 27, -20,
33, -40, 32, -24, 11, 4, -6, 0, -4, 16, -16, 14, -11, -2, 3,
4, -2, 1, 3, -4, 8, -6, 4, 2, 1, -2, 4, -4, 2, -2,
-1, -3, 10, -18, 28, -36, 38, -35, 16, -24, 37, -52, 54, -46, 31,
-9, -2, 14, -23, 23, -25, 24, -17, 12, -4, -12, 24, -23, 27, -27,
20, -10, 6, 8, -28, 32, -40, 40, -33, 18, -6, -1, 10, -18, 28,
-32, 30, -24, 12
};
static const int32_t mdt8x4_mode11[1024] = {
2, 5, 4, 6, 7, 8, 13, 21, 3, 6, 8, 12, 17, 23, 31,
35, 2, 8, 16, 25, 32, 36, 37, 36, 6, 16, 24, 31, 34, 35,
34, 32, 2, 4, 12, 24, 30, 26, 11, -4, 5, 19, 37, 46, 38,
16, -7, -18, 11, 30, 41, 31, 10, -11, -24, -24, 14, 26, 19, 0,
-16, -24, -23, -19, 8, 30, 46, 44, 28, 4, -9, -10, 12, 34, 36,
18, -8, -21, -14, 4, 7, 8, -10, -24, -26, -8, 14, 24, -10, -25,
-35, -29, -6, 18, 27, 26, 12, 26, 28, 14, 3, 15, 29, 31, 8,
14, 0, -10, 8, 36, 38, 15, 0, -19, -34, -9, 25, 24, -4, -26,
-22, -40, -25, 6, 8, -16, -36, -36, 4, 23, 34, 14, -24, -42, -25,
-8, 17, 34, 14, -24, -39, -27, -10, -14, 10, 19, 4, -6, 10, 20,
0, -22, 15, 24, 26, 38, 35, 8, -20, -26, -13, -25, -20, -18, -28,
-28, 4, 37, 0, 14, 28, 6, -16, 0, 33, 36, 28, 50, 27, -14,
-16, 8, 18, 0, 14, 3, -30, -38, -16, -2, -10, -21, 28, 56, 32,
-27, -50, -17, 12, 14, 20, 14, -16, -16, 12, 16, 6, 6, -1, -4,
9, 20, 0, -26, -13, 16, 4, 18, 16, -16, -44, -22, 18, 24, -6,
-6, -14, -38, -33, -9, -16, -44, 10, 28, 18, 5, 22, 19, -20, -33,
22, 18, 4, 25, 41, 17, -3, 6, -20, -48, -34, 1, 12, 2, 3,
15, 20, 20, 4, 8, 1, -36, -49, -31, -14, -28, -2, 34, 12, -8,
10, 20, -34, -28, 18, 19, 10, 34, 34, 12, -14, 2, -2, -27, -18,
-10, -21, -32, -44, -44, 22, 46, -1, -34, -22, 0, -19, 5, 8, -17,
-4, 21, 13, 4, 4, -4, -20, -2, 27, 8, -12, 10, -4, 2, 14,
6, -34, -48, -4, 44, -4, -9, -23, -8, 3, -7, -8, 26, 18, 28,
21, 16, -10, -38, -4, 38, -6, -20, 10, 29, -14, -32, -5, 4, -53,
-42, 34, 36, -9, -14, -4, -3, -12, -6, 4, -7, 9, 38, -10, -42,
16, 25, -20, -30, 16, 12, -12, 32, 30, 12, -18, -12, -9, -11, 37,
49, 10, 6, 18, 12, -19, -18, -16, -44, -43, -30, 26, 20, -22, -6,
29, 16, 6, 15, -8, -12, 7, -6, -24, -16, -8, -30, 2, 39, 14,
-6, 12, -2, -10, 6, 6, -38, -14, 48, 22, -47, 0, -2, 10, 16,
-4, -34, -21, 1, -2, -12, -31, 6, 43, 40, 17, -21, 19, 28, 12,
-26, -47, -11, 6, -20, -38, -22, 26, 18, 0, 22, 26, -16, 12, 10,
11, 28, 26, 2, 0, 14, -9, -32, -49, -38, -22, -20, -14, 4, 20,
44, 43, 42, 22, -4, -2, 10, -10, -28, -26, 2, -2, -10, -2, -2,
-6, -2, -24, -2, 39, 10, -26, -22, 54, 39, -24, -32, -18, 14, 40,
2, -8, -14, 20, 14, -8, 18, -8, -38, -10, 14, 2, -32, -12, 14,
6, 22, 6, 2, -13, -3, 22, -24, -38, 40, 26, 5, -27, 18, 47,
-26, -24, 20, 36, -6, -46, 5, 27, -2, -4, -22, 35, 6, -16, 2,
-8, 9, 9, 1, 11, 4, -21, -3, 10, 4, 26, 34, 20, 8, -12,
12, -10, -18, -23, -56, 9, 6, -2, -24, 2, 59, 40, 11, -20, -2,
30, -7, -32, -28, 1, 6, 52, 1, -39, 18, 12, -8, -2, -12, -18,
-8, 40, -18, -32, 21, 10, -7, 18, 4, -27, 8, 30, -14, -5, -2,
6, -6, 18, 4, -40, 18, 44, -33, 20, -15, -32, 37, 3, -41, 14,
10, 50, 7, -7, 6, 0, 29, -2, -24, -14, -22, 13, 1, -11, -20,
-13, 56, 23, 0, -23, 6, 30, -16, -12, -14, -22, 12, 12, -38, 36,
-1, -34, 37, -32, 24, 12, -20, 0, 14, 14, -42, -31, -9, 8, 20,
-18, -12, 28, 9, 34, -11, -24, 30, -12, -8, 12, -14, 16, -6, -17,
8, -4, 8, -14, 20, -11, 29, 2, -34, 32, 4, -40, 22, -69, 30,
18, -42, 28, 6, -18, 1, -20, 12, -6, -3, -2, 2, 13, -10, 30,
-28, -2, 28, -30, 3, 27, -24, 8, 7, 0, -14, 22, -16, -4, 12,
-24, -2, 7, 16, -26, 8, 45, -46, 44, -28, -15, 30, -21, -9, 5,
18, 44, -14, -6, 2, 6, -6, -8, 18, -37, 20, 13, -34, 20, 11,
-16, -10, 18, -6, -13, 25, -21, -8, 17, 7, -10, 4, 22, -33, 16,
28, -64, 32, 4, -10, 16, -4, -10, 24, -35, 26, 35, -44, 38, -16,
-16, 46, -50, 14, 22, -30, 25, -4, -12, 8, 17, -20, -8, 6, -7,
2, 8, -13, 10, 2, -10, 19, -11, -1, 10, -14, 14, -6, -36, 22,
-7, -6, 2, 12, -28, 26, 26, -36, 32, -9, -25, 50, -46, 7, 39,
-36, 20, -5, -4, 2, 11, -6, 32, -45, 38, -10, -18, 36, -37, 16,
22, -10, -8, 14, -6, -14, 25, -15, -12, 7, 7, -10, 6, 14, -36,
26, 30, -38, 26, -4, -18, 26, -12, -4, -46, 40, -20, 4, 8, -14,
8, -2, 30, -35, 20, -8, -2, 16, -15, 4, -28, 26, -9, -5, 8,
-8, 7, 2, 25, -32, 23, 3, -29, 43, -44, 16, -15, 27, -34, 40,
-43, 40, -36, 16, -24, 27, -30, 30, -26, 16, 0, -8, 3, -7, 8,
-6, 17, -28, 24, -12, 19, -18, 16, -20, 18, -8, 0, 6, 12, -20,
26, -28, 28, -23, 14, -6, 5, 8, -16, 23, -28, 30, -26, 20, -29,
31, -26, 14, 1, -10, 14, -16, 18, -26, 35, -38, 34, -28, 19, -2,
-9, 10, -4, 0, 6, -2, 2, -2, 10, -22, 32, -42, 42, -38, 30,
-14, 9, -13, 18, -20, 21, -18, 12, -4, 16, -27, 34, -38, 38, -32,
20, -6, 14, -17, 20, -21, 24, -23, 20, -8, -7, 13, -16, 14, -12,
6, -4, 3, 17, -33, 47, -52, 50, -40, 28, -12, 2, -4, -2, 12,
-18, 20, -19, 12
};
static const int32_t mdt8x4_mode12[1024] = {
0, 1, 2, 8, 14, 18, 14, 8, 2, 6, 20, 35, 39, 24, 12,
8, -1, 10, 33, 44, 37, 22, 10, 8, 10, 28, 43, 43, 30, 20,
14, 12, -4, 4, 24, 36, 38, 18, 2, 5, 2, 20, 44, 52, 46,
17, -8, -6, 8, 8, -1, -2, -8, -20, -18, -8, -9, -25, -33, -34,
-31, -20, -9, -4, -2, 4, 11, 2, -2, 7, 20, 43, 7, 12, 2,
-14, -5, 31, 42, 48, 10, 2, -15, -26, -2, 28, 36, 36, -8, -18,
-26, -24, 1, 21, 32, 32, 9, 12, 20, 22, -7, -32, -12, 10, 16,
30, 40, 12, -34, -54, -22, 10, 9, 28, 28, -5, -32, -18, 5, 18,
16, 29, 17, -6, -6, 22, 26, 20, 2, -6, -4, 15, 7, -24, -24,
-35, -8, -22, 0, 28, 24, -26, -34, -14, -20, -34, -34, -8, 11, 10,
22, 28, -10, -30, -24, 14, 32, 36, 30, 22, -2, -20, -35, -33, -4,
2, -12, -8, -5, -28, -28, 12, 34, 5, -8, 12, -5, -2, 18, 24,
-18, -32, 10, 38, 10, 20, 14, -34, -54, -10, 28, 30, -11, -12, 2,
44, 58, 52, 32, 5, -16, -24, -26, -4, -18, -14, 2, 4, -16, -14,
-12, -27, -40, -23, -2, 14, 10, 16, 25, 20, 7, 5, -1, 6, 16,
28, 22, -13, 16, 28, 2, -3, 41, 40, -24, -44, 10, -6, -28, -2,
17, -2, -13, 24, 22, -34, -24, 17, -20, -28, 6, 24, -3, -9, 25,
26, -13, -8, 2, 24, 8, -40, 1, 68, -2, -10, -37, 13, 12, -45,
1, 39, 0, -18, -22, 30, 34, -9, -22, -16, -2, 1, 2, -5, -5,
-4, -12, -6, -12, -15, 12, -2, -40, 0, 39, 26, -4, -4, 24, -10,
7, 27, -30, -32, -22, -23, -24, -25, 17, -8, -47, -16, 15, 34, 3,
-15, 0, 13, 28, 30, -12, -7, 29, 4, -29, -10, -12, -2, -13, 4,
41, 2, -16, 12, 14, 24, -31, -52, -11, 9, -10, -14, 6, 30, -24,
-16, 36, 37, -26, -42, -14, 0, -22, -16, 12, 42, 20, -18, -46, -30,
2, 16, -12, -24, 4, 19, 0, -5, 28, 10, -36, -18, 30, 32, 12,
-6, 20, 30, 32, -9, -30, -18, 5, 15, 43, 36, -26, -10, -2, -12,
13, 2, 50, 29, -12, 30, 28, 1, 12, -1, -18, -28, -38, -30, -23,
7, 16, -14, 11, 16, 34, 1, -16, 8, -9, -21, -13, 12, 10, 22,
0, 12, 27, -30, 14, 13, -14, 8, -39, -12, 28, -28, -18, -40, 10,
58, 8, 22, 14, -22, -14, 4, -6, -39, -28, 23, 12, 10, -10, 28,
48, -12, -4, 22, -24, -20, -1, 1, -2, -22, 22, 2, -10, 42, -25,
-23, 2, 4, 8, -22, 12, 8, 24, 48, -22, -34, 27, 16, -24, -26,
-46, -46, 4, -2, -7, -3, -10, 8, 16, 20, -2, -14, 19, 20, -17,
6, 24, -12, 0, 13, -42, -14, 14, -25, -17, -17, 18, 7, -2, 53,
19, -46, -37, 10, 0, -28, 10, 0, -41, -16, 1, 16, -14, 29, 0,
-6, 48, 16, -8, -9, 11, -25, -19, -4, -49, -35, -22, 4, 6, 1,
27, -1, 19, 41, 41, 34, 46, 19, 9, -28, -24, 22, -12, -46, -22,
-20, 16, 31, -8, -16, -12, -2, 33, 0, -28, 12, 3, -29, -27, -2,
12, 4, -11, 6, 20, 6, -1, 17, 28, -46, -4, 40, -10, 17, -28,
-22, 16, 24, -11, -24, -10, -2, 36, 0, -44, 14, -7, 6, 35, -44,
22, -2, 4, 15, -18, -6, 18, 12, -16, 20, 38, 18, -42, -25, 29,
-21, -8, -7, -36, 24, 16, 6, 42, -28, 37, 22, -21, 6, -15, -38,
0, 26, 13, 6, -7, 16, 11, -3, 3, -8, -30, 29, -18, -16, 31,
-32, 12, 14, -55, 44, 10, -38, 28, -10, 15, -30, -36, 4, 2, 5,
-6, -11, 27, -6, 20, -4, -9, 13, -10, -2, 8, 2, -34, 22, 18,
-7, -25, 18, 30, -8, -24, 16, -30, 15, 20, -31, -38, 8, -3, 14,
24, -38, 10, 45, 3, 14, -38, -8, 29, -13, -16, -8, -2, -14, 16,
28, -17, 4, 6, 0, 0, -24, -34, -16, 20, -2, -18, 8, 19, 28,
-9, 28, -25, -6, 36, -28, -28, -1, -18, -11, 27, -11, -23, 40, 37,
-42, 11, -42, 24, -16, 14, 6, 2, 8, 25, -9, 10, -7, 14, -36,
34, -28, -16, 4, 4, -20, 24, -8, 22, 1, -30, 27, -8, -4, 8,
-36, 52, -40, 35, -26, 18, -18, 8, 1, 4, -3, -26, 0, 22, -28,
33, -34, 32, -19, 32, -17, -8, 4, -10, 16, -26, 21, -10, -8, 34,
-31, 6, 32, -40, 16, 34, -29, 2, 24, -24, -1, 35, -45, -14, 10,
0, -20, 32, -21, 7, 53, -2, -4, 16, -5, -6, -1, 2, -50, 20,
-12, -18, 21, -11, -12, 18, 17, 8, -12, -12, 14, -18, 5, 1, 0,
-9, 12, 0, 0, 2, 7, -8, 2, -24, 44, -32, 14, -2, -34, 42,
-27, -63, 18, 16, -21, 26, -2, -29, 36, -8, 28, -30, -4, 24, -28,
32, -15, -10, -11, 23, -10, 0, 8, -18, 18, 59, -36, -4, 8, -15,
4, -1, 0, -42, 43, -10, -5, 21, -29, 15, -6, 44, -18, -4, 10,
-14, 19, -24, 14, -52, 54, -28, 19, -13, 14, -10, -2, -2, -8, -14,
24, -24, 20, -20, 16, 1, 14, -8, -10, 22, -20, 31, -25, 0, -4,
11, -8, 14, -20, 17, -6, -2, 0, -4, 9, -14, 14, -11, 2, 5,
-14, 14, -6, 12, -22, 20, -12, 36, -49, 52, -54, 49, -32, 17, -2,
-6, 30, -44, 48, -46, 42, -36, 24, -5, -6, 13, -16, 20, -18, 17,
-19, 26, -30, 25, -16, 13, -20, 16, -7, 2, -10, 7, -8, 10, -4,
10, -2, 22, -18, 10, -14, 12, -9, 0, 4, -26, 28, -22, 26, -22,
16, -4, -7, 28, -36, 35, -40, 43, -41, 25, -8, -12, 14, -12, 16,
-22, 28, -20, 9
};
// non-separable secondary transforms
static const int32_t nsst8x8_mode1[256] = {
71, 82, 48, 26, -19, -16, -8, -10, -15, -18, -14, -5, -3, -7, -6,
3, 54, 14, -42, -82, 2, -32, 14, 40, 20, -2, 37, 8, -8, -12,
1, -8, -27, -14, 72, 12, 18, -63, -26, 46, 32, 10, 30, -6, -14,
-6, -2, -26, 5, 1, 20, 4, 62, 52, 54, 50, -16, -32, -13, -18,
-24, -26, -23, -18, 11, -20, -26, 30, -8, -35, 0, 24, -56, -21, -13,
64, -4, 32, -36, -47, -30, 24, -4, -18, 39, -4, -40, -51, -22, -26,
34, 41, -29, -58, -23, 6, -46, 25, 6, -6, -36, -25, 48, 30, -10,
-2, -12, 28, -42, 3, -4, 76, -52, 74, -1, -11, 1, 24, 15, 18,
8, 24, 15, 30, 57, 16, 5, -40, 16, 24, -28, 32, 44, 7, -6,
-7, 38, 63, 11, 6, -46, 44, -44, 14, 3, 2, 32, -52, 34, 22,
-50, 16, -50, 18, -25, 12, -15, 54, 36, 19, 5, -8, 4, -12, -24,
4, -8, 16, -26, 84, -45, 4, -3, -69, -21, -16, 4, -24, 54, -50,
-34, 28, 14, -30, 19, -6, 5, 14, 8, 28, -78, -4, 34, -24, 16,
33, -12, 48, -18, 36, 6, 10, 54, 57, 26, -18, 12, 42, 19, -18,
21, -4, 60, -44, 52, -36, 1, 20, -20, 34, 54, -4, 12, 26, -4,
0, 2, 6, -2, -12, 22, -6, -76, 30, 72, -54, 16, 11, -20, 12,
-9, 8, -23, 0, 19, -14, -48, 38, 3, -24, -28, -28, 58, -4, -59,
48
};
static const int32_t nsst8x8_mode2[256] = {
69, 2, 4, -10, 83, -6, 10, -7, 60, -8, 0, -6, 27, -3, -2,
7, 54, -4, 18, -35, 10, -20, 18, 16, -56, -26, -18, -2, -82, 1,
2, 8, 16, -11, -20, -24, -48, -24, -14, 33, 22, -78, 14, -12, 32,
-8, 44, 28, 8, 12, 33, 66, 1, 12, 34, 84, 10, 2, 20, 42,
-8, -8, 12, 3, -38, 31, 30, -6, 30, 18, 34, -32, -14, -42, 32,
10, 4, 72, 29, 22, 57, 26, 13, 0, -44, 20, 32, -30, -25, 55,
14, -13, 31, -8, 41, 38, -4, -36, -8, 34, 22, -62, 14, -38, -44,
-13, -4, 58, 32, -30, 6, 21, 1, 4, -16, -41, -14, -26, 56, 36,
-12, 10, 13, 0, 40, 28, -79, 12, 38, -12, 62, 9, -40, -22, -25,
-30, 12, -14, 42, 17, 6, 22, -28, -60, 34, 13, -21, 2, 4, 30,
-67, 22, -34, 2, -36, 48, 30, 56, -7, 8, -1, -22, 2, -20, 32,
26, 10, 27, -58, -5, 17, -28, 47, -18, 31, -70, -26, 18, 72, -58,
-4, 9, 0, 6, 12, 1, -54, 39, 24, -38, 4, 6, -2, 68, -10,
-14, 17, 8, -39, -1, -23, -14, 66, 12, -4, -56, -29, 16, -16, -27,
56, 11, 22, -32, -48, 27, -20, 24, 14, -58, 12, 13, -6, 52, -11,
40, -16, -28, 8, -76, -12, 22, 13, 48, 12, 16, -9, 25, 50, -30,
5, 72, 9, 48, -5, -32, 9, -6, -16, -32, -56, -47, 20, -2, -14,
-22
};
static const int32_t nsst8x8_mode3[256] = {
111, -32, -2, 1, -51, -1, 10, -2, -6, 14, -2, -2, -6, 0, -6,
0, 44, 69, -22, 4, 54, -54, -12, 5, -42, -11, 29, -4, -8, 16,
-4, -12, 28, 24, 29, 4, 18, 60, -48, -18, -4, -62, -36, 29, -16,
-16, 32, 2, 13, 28, -2, 6, 38, 23, 44, -18, -4, 26, -56, -46,
-2, -44, -35, 46, 19, -22, -24, -31, 53, 8, -46, -2, 69, 40, 26,
14, -37, -12, -10, 14, 9, 12, 12, 22, 10, 34, 64, 35, 44, -46,
38, -6, -38, 13, -30, -27, 0, 27, -35, 2, -18, 8, 12, -88, 37,
-1, 10, -41, 2, 14, 38, -37, 6, 12, -50, 2, 6, 76, -14, 42,
-22, 28, 26, -18, 56, 0, 8, -20, 6, 21, 22, 30, -10, 8, -16,
10, 26, 6, 13, -26, 12, 74, 21, 80, 8, -25, -13, 60, 24, -28,
-28, 27, 36, -8, -62, -25, 24, 20, -8, -46, 10, -24, 78, -40, 28,
0, -15, 0, -7, -2, 26, -72, 24, -2, 4, -26, 2, -27, 19, 61,
24, 11, -6, -60, -12, 0, 44, 32, 40, -6, -49, 6, -9, -8, 22,
18, 13, 32, 1, -14, -44, 60, -18, 6, -64, 52, 0, -36, 14, 4,
8, -59, 28, 5, 38, -14, 16, 0, -34, 50, 52, 58, -14, -11, 12,
-10, 24, 32, 36, -10, 46, 13, 10, 31, 10, 28, 14, -30, 89, 0,
-2, -72, -50, -10, 40, 4, 20, -10, -38, -48, 2, -23, -17, 24, 22,
29
};
static const int32_t nsst8x8_mode4[256] = {
116, -34, -16, -4, -16, 30, -6, -2, -14, 7, 11, -2, -1, -2, 2,
2, 8, 63, -18, -8, -78, 10, 50, 0, 6, -50, 9, 18, 8, -3,
-19, 1, 36, 12, 15, -14, 4, -74, 20, 38, 16, 10, -66, 12, -8,
34, 0, -31, 2, 36, 26, -12, -52, -6, -46, 20, -1, 27, -5, -70,
18, -16, 54, 6, 22, 54, 38, 12, 46, 18, -46, 43, -8, -42, 20,
-11, 1, 7, -47, -18, -25, -11, -14, -40, -8, 73, 6, 68, -20, 24,
-29, 20, 14, 36, 4, -5, -6, -12, 42, 16, -13, -8, 20, -10, -110,
-10, -29, 0, 2, -22, -9, -2, 2, -30, 60, -61, 19, 4, 54, 11,
19, -40, 28, -30, -17, -6, 24, 14, -16, -36, -22, 7, -38, -42, -20,
44, -27, -12, 64, -7, -45, 40, -7, -10, -8, -30, 24, 15, -30, 10,
-11, 38, 33, 6, -8, 30, -28, -86, -15, -40, 6, 14, 39, 20, -2,
-6, 48, 12, 4, 80, 54, 2, 36, 8, -32, -6, -4, -39, -6, -11,
-6, -27, -18, 10, 2, -36, 15, 14, 106, -7, 4, -22, -1, 17, 22,
-23, -4, 16, -14, -48, -10, 6, 23, 32, -13, 26, 40, -90, -11, -23,
-4, -44, -24, 5, -12, -38, 9, 10, -22, -54, -1, 10, -84, -30, -4,
-32, 60, 59, -38, 26, -12, -15, 34, -21, -24, 7, 3, 57, -1, 17,
4, 9, 34, -58, -18, -20, -48, -16, -4, 18, 8, 66, -5, -1, -19,
58
};
static const int32_t nsst8x8_mode5[256] = {
118, -19, -26, -2, -26, 23, 1, 0, -10, 2, 4, 2, -4, 0, 3,
0, 18, 90, 8, -29, -28, -34, 59, 20, 7, -18, -22, 16, 2, 4,
-10, -6, 22, -14, 80, 8, -11, -32, -33, 56, 18, 18, -36, -36, -8,
9, 22, -10, -8, 49, -16, 62, -59, 6, -46, -16, 18, -30, 26, -42,
-4, -4, 14, 7, 0, -24, 5, 79, -11, -24, 14, -3, -27, -21, -38,
42, 1, -4, -46, -46, 20, 18, 85, -1, 19, 20, 4, -49, -6, -10,
48, 5, -4, -40, -35, 0, -24, 3, 16, -16, -38, 71, 8, 32, -76,
-12, -22, -8, 2, -28, 19, -10, 14, 10, 5, 1, 60, 29, -10, 9,
-3, -84, -20, -26, 16, 53, -10, 2, -1, -10, -22, 3, 8, -1, 8,
74, 16, -6, 35, -32, 22, -46, -68, 14, 4, 8, 8, 60, 28, 36,
69, 0, 21, 39, -6, -27, 40, 0, 36, 14, -4, 0, -5, 14, 17,
34, 24, 24, 40, -12, 6, 11, -105, -12, 12, -20, 5, 26, 2, 12,
20, 11, -30, 47, 3, 4, 55, 66, 34, 10, 38, -42, 1, 30, -18,
-18, 15, 30, -24, -18, 15, 47, -23, -38, 7, 6, -36, -84, -14, -31,
18, -8, -48, 8, 39, 6, -2, 4, 54, -17, -3, 81, -22, -22, -8,
-38, 8, -26, -36, 20, 12, -14, 74, -46, -18, 14, 41, -32, 18, -30,
-4, 15, 14, 7, -21, 54, -28, 9, 34, 28, -33, 50, 4, 32, -48,
54
};
static const int32_t nsst8x8_mode6[256] = {
106, -42, -4, 1, 42, 4, -18, 2, -22, 20, 1, -8, -22, 2, 4,
0, 52, 2, -18, -3, -94, 21, 18, -7, 32, -32, -12, 19, -8, 32,
10, 8, 15, -6, 2, -8, -34, 38, 0, 4, -58, -16, 30, -6, 62,
-66, -28, -5, -12, 36, -3, 17, -24, 40, 4, -19, -49, 52, 23, 8,
-62, -12, 48, 8, 6, 0, 13, -1, 17, -35, 44, -26, -2, -63, 58,
21, -48, -28, -14, 32, 21, 75, -45, 6, 50, 37, 22, -16, 1, -16,
10, -2, 40, 34, 1, 23, -17, -52, 39, 26, 20, 66, -15, -35, 42,
-10, 24, 14, 22, 6, 34, 26, -22, -14, -8, -26, -1, 46, -34, 22,
-20, -22, 36, -28, -40, 57, -58, -8, 25, 52, 37, 12, -18, -13, -48,
0, 56, 27, 40, -40, -2, -24, -26, 16, 6, 8, 32, 24, 6, 18,
38, 28, 0, -43, -12, -82, -13, -5, 39, -40, 8, 7, 73, -56, -8,
-18, 32, -28, -30, 26, 6, -14, 28, 50, 6, 18, 12, 22, 36, -16,
18, 42, 40, 5, 30, 20, -14, 50, -20, -18, -43, -62, 4, 36, 40,
-24, 10, 14, -60, 2, -22, -54, -60, 26, -18, -16, 14, 23, -3, -4,
-18, 1, -4, -3, -13, -108, -3, -8, -28, -36, -10, -9, -24, -36, -4,
-5, -34, -99, 9, 13, -4, 2, 36, 2, 17, -18, -7, -33, 44, -8,
-6, -15, -6, -7, 0, 28, 41, 6, 12, 24, -53, -34, -20, -28, -40,
78
};
static const int32_t nsst8x8_mode7[256] = {
94, -44, -1, -6, -67, 21, 11, 0, 12, 14, -10, -2, -2, -8, -4,
5, 74, -5, -12, -3, 83, -53, 0, 0, -25, -3, 15, -4, 0, 10,
-6, -6, 15, -9, 7, -2, 39, 32, -24, -2, 85, -60, -19, 16, -14,
-22, 28, -2, 4, -5, -2, 2, -28, -2, -14, 10, -50, -58, 30, 26,
-60, 34, 54, -12, -14, -59, 27, -16, 38, 40, 14, -40, -37, 24, -34,
18, 8, 14, 42, 38, -17, -58, 54, 25, 12, 0, 38, 33, 30, 2,
56, -4, -12, 34, -31, -12, -8, -26, 16, -28, -4, 2, 6, -44, -20,
-32, 21, -60, 27, -42, 12, -67, -4, -24, 16, 54, 3, -13, 2, 36,
-34, -6, -30, 54, 10, -73, -6, -28, -8, -1, 28, 1, -18, -62, 24,
-64, 20, -10, -53, 20, -40, 20, -26, -18, -12, -32, 4, -36, 6, -5,
-76, -2, -2, 36, 17, -2, -62, -36, -36, 8, 10, 36, 14, 30, 3,
-1, 40, -40, 14, 34, 52, 0, -39, -54, 39, 26, 23, 46, 85, -34,
-8, 7, -32, -6, -6, 5, 20, 45, 38, 8, -2, -8, -7, -27, 4,
46, -18, -53, -59, -11, 26, 26, 8, -14, 38, 18, 57, 1, 2, -10,
-33, 44, -2, 28, -24, -67, -10, -28, 41, 36, 26, 10, -52, 13, 19,
28, 42, 65, 12, 40, -29, -2, -23, 0, -34, -61, -28, 16, -16, -5,
-4, -8, 29, -6, -16, -36, 1, 10, -14, -58, 1, -32, 16, -28, -16,
90
};
static const int32_t nsst8x8_mode8[256] = {
108, -40, -8, 2, -52, 8, 9, -2, -6, 9, 0, -2, -4, 1, -2,
0, 40, 94, -34, -6, 2, -58, -14, 14, -11, -8, 26, 5, -1, 4,
0, -10, 22, 32, 77, -20, -4, 28, -59, -36, -6, -32, -23, 33, 2,
4, 16, 7, 24, 15, 10, 38, 56, -6, 46, -52, -44, -8, -36, -37,
-4, 2, -12, 36, 10, -22, -1, -91, 36, 4, -18, 22, -36, -10, 24,
-34, 2, 10, -36, 31, 22, 10, 54, 38, 33, 24, 2, 48, 28, -8,
38, -42, -30, 10, -28, -40, 18, 10, -61, -14, 38, 56, -17, -24, 41,
-16, -12, 7, -49, -44, 0, -8, -2, 32, -14, 11, -14, 71, 12, -2,
-34, 12, 22, 8, 72, -22, -40, -20, -10, -24, -26, 40, -14, -13, -52,
-50, 16, -46, 52, -23, 14, 26, -31, 21, 4, -28, 0, 31, 21, -24,
-59, 25, -42, 4, -6, -20, 18, -77, 28, -12, -4, 26, 24, -20, -29,
6, 21, -22, 40, 18, 38, -58, 12, -48, 41, 46, 11, -6, 21, 13,
19, -28, 2, 11, 38, 24, 6, 57, 10, -42, -65, 54, 14, -3, -3,
-20, 15, -26, -8, -6, 60, -8, -59, -38, 67, 4, -18, -36, -2, 0,
8, -12, 10, -11, -29, -58, -6, 96, 16, -9, -20, 11, -18, -38, -12,
-11, 22, -27, -22, -33, 41, -39, -16, -47, 16, 9, -20, -52, -31, -57,
-23, 26, -2, 8, -63, 6, -24, 18, -13, 6, -56, -42, -42, -12, -55,
18
};
static const int32_t nsst8x8_mode9[256] = {
112, -38, -14, -4, -40, 7, 8, 0, -14, 10, 2, -2, -2, 0, 0,
2, 40, 38, -26, -6, 90, -14, -31, 0, -42, -19, 18, 8, -24, -1,
16, 2, 7, 92, -38, -14, -58, -18, 16, 8, -5, -30, 22, 15, 23,
6, -10, -8, 14, 34, 16, -18, -6, 76, -15, -32, 28, -32, -42, 2,
-24, -42, 15, 36, -18, 1, -82, 32, -10, 6, -18, -26, -8, 42, -5,
-54, 8, -9, 15, 46, 6, 28, 42, 24, -28, 2, -39, 31, -3, 9,
10, -66, -36, 12, 50, -38, 3, 5, 16, -38, -9, -46, 10, -62, 40,
18, 46, -4, -58, 16, 8, 30, -17, 7, -24, -32, -15, 2, 26, 44,
-30, 52, -36, 34, -71, -16, 8, -6, 12, 26, 4, 26, 0, 6, -34,
-24, 7, 26, -50, 12, -18, 74, -60, -9, -7, -16, -26, 4, -2, -22,
45, -50, -16, -52, -54, -21, -17, 19, 34, -48, 12, -8, -34, -28, 23,
-6, 11, 64, 76, -30, -16, -35, -11, 30, -8, 16, 26, 42, 22, 32,
35, 0, 68, -4, 34, 55, -17, 2, 32, 0, 35, -2, 6, 6, -14,
-56, 12, -8, -30, -23, 27, 37, -13, -24, 26, -47, -25, -70, -2, 12,
35, -64, 6, 6, 28, 1, -57, 7, -16, -58, 28, 27, -18, 37, -7,
-11, -12, -46, -8, 18, -37, -4, 6, 16, -4, 41, 39, 56, 75, 0,
-10, -4, -24, -4, 12, 83, 36, -11, -3, 7, 62, -10, -18, 32, -16,
-40
};
static const int32_t nsst8x8_mode10[256] = {
114, -28, -13, 0, -44, 8, 7, 0, -21, 9, 4, -2, -3, -1, 0,
1, 34, 62, -40, -2, 69, -24, -20, 4, -38, -28, 23, 2, -30, 4,
18, -4, -1, 92, -13, -22, -68, 13, 14, 8, 18, -25, -1, 10, 26,
-15, -10, 2, 20, 20, 58, -12, 26, 48, -4, -36, -8, -17, -66, 0,
-25, -22, 4, 44, 4, -18, -38, -62, 37, 34, 53, -6, 36, 1, 18,
18, -19, -32, -44, -10, 2, -11, -23, 37, 24, 8, 17, 3, -33, -26,
-36, 64, 72, 4, -31, 1, -3, -30, -3, 4, -15, -14, -2, -50, 26,
-78, 48, 21, -1, 2, 23, 48, 7, -6, 22, -50, 10, 36, -80, -5,
2, 8, 30, 30, 44, -12, 20, -33, -10, -8, -1, -14, -22, -41, -55,
5, -26, 2, -2, 18, -32, -29, -83, 32, 7, -9, 10, -38, 21, -40,
16, 40, -8, 4, 3, -40, 59, -45, 20, 56, 3, -2, 0, 62, 9,
52, -18, 26, 8, -34, 29, -54, 6, -52, -30, -12, -2, 8, 28, 31,
-5, -26, 26, -16, -10, 28, 22, 52, -18, -84, 32, -22, -39, -18, -24,
-20, -29, 52, 14, 25, -84, -6, 15, 6, -24, -4, 30, 22, 11, 2,
3, 20, 7, 18, -14, 82, 50, 9, 3, 53, -28, 14, 18, 45, -9,
-16, -80, 4, -12, -4, -38, -14, 28, 2, -62, -8, -6, -40, 40, 0,
2, -24, 29, -28, -9, -28, 7, 48, -2, -74, -35, 3, -22, -8, 10,
-60
};
static const int32_t nsst8x8_mode11[256] = {
112, -46, -18, -5, -28, 10, 4, -2, -18, 10, 4, -2, -2, 0, -2,
2, 30, 36, -26, -10, 95, -16, -32, -8, -38, -18, 21, 11, -23, 1,
13, -1, 0, 62, -32, -8, -63, -17, 18, 16, -53, -36, 40, 19, 17,
10, -8, -9, -2, 19, 4, 1, -22, 76, -17, -34, -14, -32, -22, 19,
-36, -50, 22, 43, -3, 18, 5, 16, -22, -47, -8, 28, -32, 67, -16,
-20, -42, -30, 51, 25, 18, 22, 88, -38, -10, 14, -14, 12, -6, -2,
2, 11, -31, 18, 16, -64, 2, -8, 32, -22, 14, -21, 14, 20, -16,
23, -2, 74, 12, -52, -61, 26, -18, -22, -36, -24, -12, 20, -78, 64,
-16, -6, -25, -16, 4, -18, -28, -26, 4, 0, 4, 98, -5, 1, -16,
-9, 2, 0, 26, 8, -36, -24, -39, -47, -9, 4, 2, 6, -8, -4,
-18, -59, -58, 28, -63, 2, 2, 52, -41, -2, 4, 24, 7, -37, 3,
3, 22, -16, 2, 7, 22, -84, -32, -29, -64, 10, -16, -22, -10, -31,
-16, -19, -38, -72, -4, 26, 44, 4, 31, -44, 22, -34, 22, 63, -7,
14, 14, 54, 3, 10, 16, 62, -9, -6, 62, -12, 1, -18, 9, -2,
10, 12, 13, -27, 36, -2, -26, -48, -62, -28, 36, -56, 16, -40, 13,
1, 62, 32, -2, -13, -52, 5, -18, -24, 25, -32, 54, 6, -2, 54,
-32, -49, 10, 8, 24, 50, 40, 19, -74, 18, 38, -14, 8, 4, 13,
-8
};
static const int32_t nsst8x8_mode12[256] = {
104, -46, -4, -3, -48, 10, 8, 4, -20, 21, -6, 2, -1, -1, -5,
2, 19, 51, -62, 42, -44, -6, 9, -2, 50, -31, 35, -28, 10, 4,
2, -8, -30, -35, 47, -2, -59, 48, -18, -2, 70, -9, -23, -4, 16,
-14, 4, 4, -18, 41, -6, 6, -33, -8, 46, -16, -22, 52, -48, -11,
28, -46, -22, 43, 20, 19, 48, 68, 5, -41, -47, -37, 0, 26, -10,
9, 28, 9, 38, -12, 18, 9, -34, 34, 38, 47, -34, 31, 2, -16,
-73, -14, -24, -22, 26, 16, 1, -16, -12, 18, 20, 41, -22, -31, -34,
-40, 16, 6, 80, 3, -46, 24, -3, -9, 0, -4, 12, -4, 16, 56,
-8, 10, -2, -28, 65, -35, 19, -77, -14, -52, 15, 62, 17, -22, 33,
42, 6, 8, 15, -52, -6, 24, -17, 43, 32, -7, -6, -36, 52, -23,
-16, -4, 62, 24, 30, -4, 22, -52, 5, 45, 12, 12, 32, 22, 28,
56, 24, -48, -3, 16, 34, -44, -40, -38, -17, -35, -33, -20, -38, -12,
-30, 16, -60, -4, -38, 46, 40, -42, -4, -7, 38, 16, -24, -43, -29,
45, -12, -24, -9, -2, -4, -4, 13, 59, -27, -70, -24, -20, -10, -30,
-31, 14, 18, 30, 62, -36, 11, 16, 4, 36, 19, 20, 74, 4, 9,
35, 46, 10, -16, 23, 12, 48, -31, -32, 47, 30, -2, -34, 42, 42,
0, 26, -6, 19, 10, 44, -14, 44, 22, 72, 21, 49, 5, 34, -38,
-8
};
static const int32_t nsst4x8_mode0[64] = {
106, -40, -52, -4, -19, 20, 2, 3, 30, 13, 84, -44, -74, -2, -14, 28,
-26, -82, 32, 52, -18, 52, -42, -16, 23, 2, 18, 93, -18, -77, 15, 21,
-5, -45, 30, -8, 22, 20, 108, 31, -13, -61, -2, -46, -16, -75, 6, -66,
-19, 34, -28, 26, -80, 32, 50, -58, -48, -28, -60, -16, -52, -16, -8, 80
};
static const int32_t nsst4x8_mode1[64] = {
84, 86, -16, -24, -25, -17, -6, -3, 43, -20, 72, 73, -40,
14, -30, -28, -12, 13, 58, -19, -32, 4, 7, 106, -74, 58,
30, -28, -52, 21, -12, -52, -4, -6, 28, -38, 40, -49, -100,
-2, 1, 34, 70, 2, 76, -23, 59, -22, 34, -62, 30, -84,
-36, -9, 33, -32, -22, -4, -10, 30, -42, -112, 24, -2
};
static const int32_t nsst4x8_mode2[64] = {
102, -30, -3, -7, -66, 25, -4, 4, -19, 24, 100, -32, -44, -16, -41, 22,
-18, -44, 30, 62, 7, 56, -53, -60, 1, 56, 12, 38, -47, -29, 52, -77,
35, 79, 12, 61, 30, 41, -10, 50, 42, 26, -22, -7, 32, -68, -80, -37,
48, -28, 68, -8, 75, -16, 50, -18, -4, -46, 7, 80, -19, -72, 4, 48
};
static const int32_t nsst4x8_mode3[64] = {
112, -22, -53, -6, -12, 14, -6, -2, 38, 42, 76, -46, -62,
-22, -12, 26, -16, -22, 3, -34, -52, 38, -4, -102, 8, -81,
58, 59, -16, 20, -46, 15, -6, -16, -5, -70, 53, -11, -91,
0, 4, 66, -20, 67, -18, -23, -70, -35, -18, -48, -32, -6,
-44, -104, 3, -2, 40, -1, 54, 14, 66, -50, 28, -62
};
static const int32_t nsst4x8_mode4[64] = {
108, -1, -63, 12, -16, -18, 10, -2, -53, 24, -84, -24, 32, -53, 32, 22,
2, -46, 29, -30, -60, -44, 28, 78, -6, 88, 9, -34, -78, -12, 3, -32,
40, 58, 41, -45, 65, 15, 26, 50, -16, 5, -38, 14, -32, 98, 50, 36,
0, 5, 34, 58, 7, -30, 98, -34, 6, -49, -3, -90, 6, 18, 40, -62
};
static const int32_t nsst4x8_mode5[64] = {
114, -22, -36, 29, -26, -6, 1, 3, -20, 10, -58, 66, 70, -58, -2, -6,
14, 16, 5, 32, 55, 102, -14, -36, 29, -6, -6, -66, 75, 2, -9, 74,
-1, -86, 74, 48, 24, -9, 13, 21, 12, 76, 36, 41, -6, 4, 67, 56,
41, 36, 62, -28, 37, -50, 2, -70, 5, 36, 33, 32, -15, -12, -107, 34
};
static const int32_t nsst4x8_mode6[64] = {
115, -32, -24, 5, -37, 12, 1, 1, -3, 0, -103, 34, 54,
-22, 34, -3, 0, -22, 22, 28, 29, 66, 26, -94, -19, 55,
-35, -22, -69, 55, 60, 6, -10, -38, -25, -102, -7, -34, 9,
-50, 22, 58, -26, -42, 44, 52, -74, -4, -46, -64, -45, 22,
-48, 36, -63, 4, 3, 54, -12, 36, -48, -58, -38, -70
};
static const int32_t nsst4x8_mode7[64] = {
102, -45, -55, 8, -10, 21, 8, -12, 38, 0, 72, -50, -76, 10, -10, 36,
-16, -4, -20, -54, -24, 2, -68, -88, -16, -34, -43, 10, -38, -88, -41, 48,
10, 0, -12, -48, 70, 32, -64, 62, -49, -90, 12, 32, -19, 63, -16, 9,
10, -70, 50, -38, 54, -54, 29, -26, 36, 10, 57, 77, 19, -16, -69, -19
};
static const int32_t nsst4x8_mode8[64] = {
114, -22, -45, -14, -14, 17, -1, 5, 26, 71, 60, -53, -50,
-20, -16, 31, -1, -48, 36, 67, -80, 17, 6, 38, -14, 66,
-72, 44, -4, 4, -17, 66, -18, -36, -34, -20, -36, -62, -88,
-14, 4, 18, 22, 16, 11, 88, -82, -29, -44, -28, -36, -78,
-35, 62, 18, 31, 9, -42, 34, -14, 68, -6, -32, 88
};
static const int32_t nsst4x8_mode9[64] = {
106, -51, -34, -6, -28, 20, -4, 2, 12, 4, 94, -46, -66,
-4, -12, 30, -56, -66, -13, -39, -20, 67, -32, -34, -4, 64,
-30, 29, -84, 30, 18, -46, 13, 40, -23, -26, 4, -29, -111,
-16, 10, 28, -25, -104, 17, -16, 50, -32, -13, -52, 4, 14,
-35, -92, 6, -60, -35, -11, -65, -18, -47, -32, 4, 85
};
static const int32_t nsst4x8_mode10[64] = {
116, -28, -28, 4, -34, 4, -11, -2, 16, 60, 56, 10, -46, -84, -14, 2,
10, 63, 29, 27, -25, 82, -2, -58, -20, 6, -60, 84, -34, -22, 61, -6,
-2, -28, -8, 37, 44, -38, -54, -88, 28, 70, -34, 31, 76, 0, -24, 46,
10, 44, -48, -76, 14, -26, 50, -54, -36, 20, -66, -21, -58, 6, -80, 9
};
static const int32_t nsst4x8_mode11[64] = {
111, -42, -27, 0, -38, 12, -3, 2, 6, 8, 98, -30, -66, -20, -23, 22,
-18, 8, -17, -56, -32, 58, -40, -81, 47, 43, 62, 38, 60, 50, -4, -31,
37, 77, -17, -60, 12, -59, 36, -20, 8, 61, -36, 38, -16, -13, -93, 30,
6, -48, 18, 14, 33, -78, -47, -65, 9, -26, 4, -76, 67, 16, -46, 54
};
static const int32_t nsst4x8_mode12[64] = {
100, -35, 5, 2, -64, 18, -26, 8, 44, -15, -60, 38, 64,
39, 46, -37, 3, -36, 70, -14, 62, 66, -20, 40, -14, -12,
-45, 24, 26, -2, -112, -14, 39, 33, -44, -60, 40, -32, -2,
75, 36, 78, 45, 76, 20, -22, -11, 15, 22, -62, 34, 2,
40, -93, 5, -24, -30, -50, -26, 68, -18, -10, 20, 82
};
static const int32_t nsst8x4_mode0[64] = {
108, -49, -22, 1, -40, 4, 14, 6, 39, 79, -59, -10, 30, -61, -18, 12,
48, 46, 57, -38, 26, 58, -40, -43, 16, -61, 9, 28, 100, -24, -30, -4,
-18, -22, -78, -56, 24, 68, -20, 26, -6, 3, -22, 70, -39, 18, -96, -4,
16, 38, -10, 76, 32, 62, 55, 28, 9, 5, 48, -16, -2, -4, -28, 114
};
static const int32_t nsst8x4_mode1[64] = {
79, -2, -88, -18, 10, -10, 43, -4, 9, 80, 16, -87, 12, -10, -19, 38,
-8, 11, 26, -10, -92, -8, 82, 13, 73, 20, 19, 22, -64, 33, -64, -23,
66, -34, 72, 14, 33, -50, 15, 43, 16, 60, 27, 44, 48, 70, 52, -10,
14, -54, 36, -76, 12, 48, 17, -60, -1, -42, -16, -8, -10, 74, -8, 93
};
static const int32_t nsst8x4_mode2[64] = {
89, -28, -18, -14, 79, -20, -22, 8, 68, -21, 16, 54, -54,
-5, 47, -54, 28, 70, -26, 2, 4, 86, -32, -38, -36, 42,
25, 51, 70, -40, 14, -58, -8, 0, -48, -80, -14, -38, 12,
-76, 0, -30, 100, -52, 15, 38, -7, -33, 38, 86, 38, -38,
-14, -38, 38, 39, 11, 12, 24, 14, -41, -51, -104, -14
};
static const int32_t nsst8x4_mode3[64] = {
109, -52, -14, 2, -38, -4, 14, 0, 38, 86, -50, -8, 9, -60, -20, 33,
31, 43, 68, -28, -24, 31, -74, -34, 32, 16, 31, 36, 76, -27, 34, -72,
10, -22, -4, -110, 59, 2, 8, 8, 24, 56, 14, 4, 6, 80, 68, 38,
-16, 28, -48, -38, -54, 6, 40, -84, -12, 8, 76, -24, -44, -68, 54, 20
};
static const int32_t nsst8x4_mode4[64] = {
111, -32, -28, 2, -40, 22, 14, 3, 18, 108, -43, -32, -6, -14, 34, 4,
26, 2, 98, -58, -10, -39, 30, 12, -5, -21, -36, 10, -28, -98, -19, 61,
-10, -44, -46, -66, 16, -36, 24, -75, 42, 28, 24, 58, 32, -54, -38, -67,
-4, 18, 3, -50, -57, 14, -99, -18, 34, -4, -12, -40, 96, 8, -44, 44
};
static const int32_t nsst8x4_mode5[64] = {
118, 10, -33, -11, -32, -4, 6, 6, -10, 108, 18, -60, 5,
-25, 7, 9, 32, -18, 117, 2, -5, -13, -18, 28, 8, 60,
0, 108, 6, -16, -28, -2, 29, 14, 12, -10, 82, 80, -22,
-38, 9, -14, -26, 0, 78, -32, 0, 92, 10, -20, -7, -19,
34, -84, -57, -64, -12, 3, -20, -22, -38, 32, -106, 39
};
static const int32_t nsst8x4_mode6[64] = {
113, -44, -24, -4, -32, 8, -2, 6, -10, -27, 19, -4, -36,
-91, 66, 36, 16, -4, -34, -4, 82, -62, -52, 41, -20, -105,
58, 10, 30, 16, -18, -10, -36, -20, -24, -11, -80, -18, -84,
16, 15, 16, 14, 113, -10, -33, -20, -37, 8, -2, -2, -50,
5, -49, -10, -106, 36, 46, 100, -28, -8, -12, -38, 21
};
static const int32_t nsst8x4_mode7[64] = {
108, -62, -10, 1, -24, -6, 16, 4, 45, 62, -52, -10, 62, -53, -24, 22,
42, 40, 34, -31, 6, 78, -62, -31, 2, -37, 39, 9, 96, -5, 28, -60,
-8, -30, -40, 52, 46, 72, -8, 62, 26, 66, 4, 76, -18, 20, 62, -29,
16, 14, 96, 16, 10, -23, -1, 76, -3, -19, 6, 80, -14, -38, -84, -30
};
static const int32_t nsst8x4_mode8[64] = {
108, -46, 2, -4, -46, 7, 18, -10, 38, 85, -64, -15, -14, -52, -3, 20,
26, 42, 57, -42, -2, 28, -90, -16, 20, 49, 50, 38, 30, -18, 50, -77,
-14, -6, 30, -108, 0, -30, 52, 0, 32, 26, -16, -16, 69, 82, 36, 36,
19, -44, -47, -22, 79, -34, -38, -50, 27, -12, 57, 26, 46, -60, -8, 76
};
static const int32_t nsst8x4_mode9[64] = {
104, -58, -15, 0, -38, 6, 18, 11, 33, 71, -80, -12, 7,
-53, -10, 26, 54, 56, 52, -47, 13, 34, -51, -36, 26, -28,
-8, 9, 106, -26, 24, -48, -6, -3, -28, -50, 46, 78, 25,
66, -28, -53, -48, -78, -14, -10, -48, -42, -4, 7, 47, -74,
-12, -58, 70, 12, 5, -34, 38, 0, 30, -48, -69, 76
};
static const int32_t nsst8x4_mode10[64] = {
108, -38, -36, 4, -42, -6, 14, 2, -4, 68, -76, 2, 4,
-73, 1, 24, 44, 82, 26, -64, -8, 42, -31, -6, 37, 19,
18, 38, 66, -28, 0, -88, -35, 11, -57, 15, -61, 44, -9,
-76, -12, -28, 34, -48, -46, -76, -52, -34, -5, -46, -60, -78,
64, 16, -11, -16, 10, -10, -18, 48, 18, 18, -111, 26
};
static const int32_t nsst8x4_mode11[64] = {
105, -58, -15, -2, -38, 11, 14, 6, 52, 78, -58, -21, 30, -44, -25, 14,
34, 17, 43, -26, 51, 79, -50, -32, 6, -48, -21, 34, 100, -24, 34, -26,
-28, -13, -94, 11, 0, 76, -7, 28, -23, -63, -20, -62, 2, -40, -78, -8,
-5, -4, 12, -92, 26, 12, 64, 54, 8, -14, 34, 42, 25, -6, -42, 104
};
static const int32_t nsst8x4_mode12[64] = {
102, -8, -64, -11, -32, -18, 15, 13, 20, 20, -42, -8, 98,
18, -58, -22, 52, -88, 68, 10, 21, 20, -14, -18, 36, 66,
50, -64, -24, 42, -6, -42, -6, -10, 6, -38, 20, -96, 24,
-67, -30, -40, -54, 4, -44, 46, -16, -82, -28, -48, -18, -102,
3, 13, -7, 48, 0, 2, 12, 2, -48, -45, -108, 12
};
static const int32_t nsst8x8_mode0[256] = {
114, -35, -16, -3, -34, 8, 8, 0, -23, 9, 4, -1, -2, 1, -3,
0, 26, 14, -16, 0, 104, -18, -28, -2, -44, 2, 16, -1, -26, 6,
14, -4, 16, 100, -42, -14, -30, 5, -2, 0, -14, -44, 26, 16, 11,
-8, 1, -2, 24, 18, -10, -2, 9, -76, 18, 32, 66, -4, -26, 2,
-6, 43, 2, -35, -4, -33, -60, 26, 24, -10, 20, -50, 22, -32, 6,
37, 42, 16, -32, 38, -9, -20, -36, 68, -2, 31, -26, 42, -10, -43,
-12, -33, 10, 6, -10, -56, 6, 19, -8, -10, 28, 28, 16, 34, 2,
66, -7, 19, 80, -18, -24, -28, 16, 6, 62, -14, 6, -25, -32, -22,
-12, -42, 0, -46, 68, 18, -27, 2, -2, -5, -4, -3, 10, -26, 46,
6, 10, -4, 52, -47, -22, -62, -61, -12, -7, -18, -26, -14, -8, -52,
-10, -7, -20, -12, -48, 0, 26, -80, 47, -10, -8, -14, -19, -61, 9,
12, 6, 64, -21, -32, -48, -3, -12, 10, -42, 44, -22, -7, 18, 23,
-19, -44, 56, 16, -82, 0, 12, 32, 9, 33, -4, -15, -20, -14, -32,
-46, -24, -16, -50, -40, -18, 26, -1, 12, -18, 19, -50, -57, -8, -4,
-20, 27, -26, -44, -62, 45, -2, 38, 42, -6, 12, 2, -6, 58, -18,
-18, -46, -44, -3, 6, 27, -4, -4, 10, 34, -67, 24, 40, 54, -2,
-2, -40, 20, -38, 6, 6, -16, 36, 21, -42, 64, 58, 12, -12, 24,
-28
};
// pointers to non-separable mode-dependent transforms
static const int32_t *nstx_intra_mtx[4][INTRA_MODES] = {
{ mdt4x4_mode0, mdt4x4_mode1, mdt4x4_mode2, mdt4x4_mode3, mdt4x4_mode4,
mdt4x4_mode5, mdt4x4_mode6, mdt4x4_mode7, mdt4x4_mode8, mdt4x4_mode9,
mdt4x4_mode10, mdt4x4_mode11, mdt4x4_mode12 },
#if !CONFIG_MODE_DEP_NONSEP_SEC_INTRA_TX
{ mdt8x8_mode0, mdt8x8_mode1, mdt8x8_mode2, mdt8x8_mode3, mdt8x8_mode4,
mdt8x8_mode5, mdt8x8_mode6, mdt8x8_mode7, mdt8x8_mode8, mdt8x8_mode9,
mdt8x8_mode10, mdt8x8_mode11, mdt8x8_mode12 },
{ mdt4x8_mode0, mdt4x8_mode1, mdt4x8_mode2, mdt4x8_mode3, mdt4x8_mode4,
mdt4x8_mode5, mdt4x8_mode6, mdt4x8_mode7, mdt4x8_mode8, mdt4x8_mode9,
mdt4x8_mode10, mdt4x8_mode11, mdt4x8_mode12 },
{ mdt8x4_mode0, mdt8x4_mode1, mdt8x4_mode2, mdt8x4_mode3, mdt8x4_mode4,
mdt8x4_mode5, mdt8x4_mode6, mdt8x4_mode7, mdt8x4_mode8, mdt8x4_mode9,
mdt8x4_mode10, mdt8x4_mode11, mdt8x4_mode12 },
#else
{ nsst8x8_mode0, nsst8x8_mode1, nsst8x8_mode2, nsst8x8_mode3, nsst8x8_mode4,
nsst8x8_mode5, nsst8x8_mode6, nsst8x8_mode7, nsst8x8_mode8, nsst8x8_mode9,
nsst8x8_mode10, nsst8x8_mode11, nsst8x8_mode12 },
{ nsst4x8_mode0, nsst4x8_mode1, nsst4x8_mode2, nsst4x8_mode3, nsst4x8_mode4,
nsst4x8_mode5, nsst4x8_mode6, nsst4x8_mode7, nsst4x8_mode8, nsst4x8_mode9,
nsst4x8_mode10, nsst4x8_mode11, nsst4x8_mode12 },
{ nsst8x4_mode0, nsst8x4_mode1, nsst8x4_mode2, nsst8x4_mode3, nsst8x4_mode4,
nsst8x4_mode5, nsst8x4_mode6, nsst8x4_mode7, nsst8x4_mode8, nsst8x4_mode9,
nsst8x4_mode10, nsst8x4_mode11, nsst8x4_mode12 },
#endif // !CONFIG_MODE_DEP_NONSEP_SEC_INTRA_TX
};
static INLINE const int32_t *nstx_arr(TX_SIZE tx_size, PREDICTION_MODE mode) {
switch (tx_size) {
case TX_4X4: return nstx_intra_mtx[0][mode];
case TX_8X8: return nstx_intra_mtx[1][mode];
case TX_4X8: return nstx_intra_mtx[2][mode];
case TX_8X4: return nstx_intra_mtx[3][mode];
default: assert(0); return NULL;
}
}
#endif // CONFIG_MODE_DEP_INTRA_TX && CONFIG_MODE_DEP_NONSEP_INTRA_TX
// pointers to separable mode-dependent transforms
static const int32_t *mdt_mtx_intra_arr4[INTRA_MODES] = {
mdt4_mode0, mdt4_mode1, mdt4_mode2, mdt4_mode3, mdt4_mode4,
mdt4_mode5, mdt4_mode6, mdt4_mode7, mdt4_mode8, mdt4_mode9,
mdt4_mode10, mdt4_mode11, mdt4_mode12
};
static const int32_t *mdt_mtx_intra_arr8[INTRA_MODES] = {
mdt8_mode0, mdt8_mode1, mdt8_mode2, mdt8_mode3, mdt8_mode4,
mdt8_mode5, mdt8_mode6, mdt8_mode7, mdt8_mode8, mdt8_mode9,
mdt8_mode10, mdt8_mode11, mdt8_mode12
};
#if MDTX_INTRA_16
static const int32_t *mdt_mtx_intra_arr16[INTRA_MODES] = {
mdt16_mode0, mdt16_mode1, mdt16_mode2, mdt16_mode3, mdt16_mode4,
mdt16_mode5, mdt16_mode6, mdt16_mode7, mdt16_mode8, mdt16_mode9,
mdt16_mode10, mdt16_mode11, mdt16_mode12
};
#else
#if CONFIG_LGT
static const int32_t *mdt_mtx_intra_arr16[INTRA_MODES] = {
lgt15_16, lgt15_16, lgt15_16, lgt15_16, lgt15_16, lgt15_16, lgt15_16,
lgt15_16, lgt15_16, lgt15_16, lgt15_16, lgt15_16, lgt15_16
};
#else
static const int32_t *mdt_mtx_intra_arr16[INTRA_MODES] = {
dst7_16, dst7_16, dst7_16, dst7_16, dst7_16, dst7_16, dst7_16,
dst7_16, dst7_16, dst7_16, dst7_16, dst7_16, dst7_16
};
#endif // CONFIG_LGT
#endif // MDTX_INTRA_16
#if CONFIG_LGT
static const int32_t *mdt_mtx_inter_arr4[MODE_DEP_INTER_TX_MODES] = {
lgt_klt4_inter,
lgt_klt4_inter,
};
static const int32_t *mdt_mtx_inter_arr8[MODE_DEP_INTER_TX_MODES] = {
lgt_klt8_inter,
lgt_klt8_inter,
};
static const int32_t *mdt_mtx_inter_arr16[MODE_DEP_INTER_TX_MODES] = {
lgt_klt16_inter,
lgt_klt16_inter,
};
#else
static const int32_t *mdt_mtx_inter_arr4[MODE_DEP_INTER_TX_MODES] = {
single_klt4_inter, comp_klt4_inter
};
static const int32_t *mdt_mtx_inter_arr8[MODE_DEP_INTER_TX_MODES] = {
single_klt8_inter, comp_klt8_inter
};
static const int32_t *mdt_mtx_inter_arr16[MODE_DEP_INTER_TX_MODES] = {
single_klt16_inter, comp_klt16_inter
};
#endif // CONFIG_LGT
static INLINE const int32_t *get_mdt_from_mode_4(int mode) {
if (is_intra_mode_dep_txfm_mode(mode)) {
return mdt_mtx_intra_arr4[intra_mode_dep_txfm_mode(mode)];
} else {
return mdt_mtx_inter_arr4[inter_mode_dep_txfm_mode(mode)];
}
}
static INLINE const int32_t *get_mdt_from_mode_8(int mode) {
if (is_intra_mode_dep_txfm_mode(mode)) {
return mdt_mtx_intra_arr8[intra_mode_dep_txfm_mode(mode)];
} else {
return mdt_mtx_inter_arr8[inter_mode_dep_txfm_mode(mode)];
}
}
static INLINE const int32_t *get_mdt_from_mode_16(int mode) {
if (is_intra_mode_dep_txfm_mode(mode)) {
return mdt_mtx_intra_arr16[intra_mode_dep_txfm_mode(mode)];
} else {
return mdt_mtx_inter_arr16[inter_mode_dep_txfm_mode(mode)];
}
}
#ifdef __cplusplus
}
#endif
#endif // MDTX_BASES_H