1 /*
2 * Real Audio 1.0 (14.4K)
3 * Copyright (c) 2003 The FFmpeg Project
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22 #include <stdint.h>
27
29 { 541, 956, 768}, { 877, 581, 568}, { 675,1574, 635}, {1248,1464, 668},
30 {1246, 839, 1394}, {2560,1386, 991}, { 925, 687, 608}, {2208, 797, 1144},
31 { 535, 832, 799}, { 762, 605, 1154}, { 832,1122, 1003}, {1180, 687, 1176},
32 {1292, 901, 732}, {1656, 689, 896}, {1750,1248, 848}, {2284, 942, 1022},
33 { 824,1472, 643}, { 517, 765, 512}, { 562,1816, 1522}, { 694,1826, 2700},
34 { 704, 524, 672}, {1442, 757, 2232}, { 884, 551, 1266}, {2232,1007, 1692},
35 { 932, 746, 777}, {1132, 822, 926}, {1226, 771, 611}, {2948,1342, 1008},
36 {1302, 594, 1158}, {1602, 636, 1128}, {3408, 910, 1438}, {1996, 614, 575},
37 { 665, 935, 628}, { 631,1192, 829}, { 644, 926, 1052}, { 879, 988, 1226},
38 { 941,2768, 2772}, { 565,1344, 2304}, { 547, 628, 740}, { 639, 532, 1074},
39 { 955,1208, 598}, {1124,1160, 900}, {1206, 899, 1242}, { 746, 533, 624},
40 {1458,1028, 735}, {1706,1102, 692}, {1898,1018, 1004}, {2176, 988, 735},
41 {1578, 782, 1642}, { 897, 516, 754}, {2068, 702, 1656}, {2344, 818, 1526},
42 { 907, 652, 592}, {1056, 652, 642}, {2124,1416, 780}, {2664,1250, 727},
43 {1894, 727, 1108}, {2196, 657, 981}, {4840, 920, 1704}, {4992,1238, 983},
44 {2420, 909, 1094}, {2760, 935, 1032}, {2800, 612, 853}, {3068, 832, 574},
45 { 523,1796, 923}, { 722,1916, 1382}, {1226,1542, 928}, { 758, 757, 584},
46 { 512,1134, 577}, { 615,1276, 698}, { 574,2568, 2356}, { 993,2728, 3512},
47 { 539, 890, 913}, { 694, 928, 1088}, { 805, 600, 1360}, {2160, 951, 3128},
48 { 816, 950, 590}, { 955, 847, 811}, {1094, 883, 556}, {1304, 888, 604},
49 { 863,1170, 855}, {1023, 997, 1032}, { 932,1228, 1280}, { 627, 564, 573},
50 { 876, 900, 1448}, {1030, 857, 1792}, {1294, 953, 1758}, {1612, 854, 1714},
51 {1090,1166, 631}, {1314,1202, 751}, {1480, 905, 795}, {1682,1016, 568},
52 {1494,1178, 983}, { 878, 613, 526}, {1728,1446, 779}, {2136,1348, 774},
53 { 950, 649, 939}, {1180, 703, 899}, {1236, 527, 1158}, {1450, 647, 972},
54 {1282, 647, 707}, {1460, 663, 644}, {1614, 572, 578}, {3516,1222, 821},
55 {2668, 729, 1682}, {3128, 585, 1502}, {3208, 733, 976}, {6800, 871, 1416},
56 {3480, 743, 1408}, {3764, 899, 1170}, {3772, 632, 875}, {4092, 732, 638},
57 {3112, 753, 2620}, {3372, 945, 1890}, {3768, 969, 2288}, {2016, 559, 854},
58 {1736, 729, 787}, {1940, 686, 547}, {2140, 635, 674}, {4480,1272, 828},
59 {3976, 592, 1666}, {4384, 621, 1388}, {4400, 801, 955}, {4656, 522, 646},
60 {4848, 625, 1636}, {4984, 591, 874}, {5352, 535, 1001}, {11216,938, 1184},
61 { 925,3280, 1476}, { 735,1580, 1088}, {1150,1576, 674}, { 655, 783, 528},
62 { 527,2052, 1354}, { 782,1704, 1880}, { 578, 910, 1026}, { 692, 882, 1468},
63 { 586, 683, 715}, { 739, 609, 717}, { 778, 773, 697}, { 922, 785, 813},
64 { 766, 651, 984}, { 978, 596, 1030}, {1070, 757, 1080}, {1324, 687, 1178},
65 {1108,2144, 979}, { 723, 982, 690}, { 936, 956, 527}, {1180,1002, 547},
66 { 517,1306, 825}, { 832,1184, 974}, {1024, 957, 903}, {1262,1090, 906},
67 {1028, 720, 649}, {1192, 679, 694}, {2468,1480, 979}, {2844,1370, 877},
68 {1310, 835, 848}, {1508, 839, 698}, {1742,1030, 769}, {1910, 852, 573},
69 {1280, 859, 1174}, {1584, 863, 1108}, {1686, 708, 1364}, {1942, 768, 1104},
70 { 891, 536, 690}, {1016, 560, 663}, {2172, 870, 1348}, {2404, 999, 1170},
71 {1890, 966, 889}, {2116, 912, 777}, {2296,1020, 714}, {4872,1844, 932},
72 {2392, 778, 929}, {2604, 772, 744}, {2764, 957, 722}, {5832,1532, 984},
73 {2188, 519, 1264}, {2332, 532, 922}, {5064, 995, 2412}, {2708, 571, 874},
74 {2408, 545, 666}, {5016,1084, 875}, {5376, 983, 1196}, {5536, 979, 730},
75 {5344, 634, 1744}, {5688, 706, 1348}, {5912, 977, 1190}, {6072, 905, 763},
76 {6048, 582, 1526}, {11968,1013,1816}, {12864,937, 1900}, {12560,1086, 998},
77 {1998, 684, 1884}, {2504, 633, 1992}, {1252, 567, 835}, {1478, 571, 973},
78 {2620, 769, 1414}, {2808, 952, 1142}, {2908, 712, 1028}, {2976, 686, 741},
79 {1462, 552, 714}, {3296, 991, 1452}, {1590, 615, 544}, {3480,1150, 824},
80 {3212, 832, 923}, {3276, 839, 531}, {3548, 786, 852}, {3732, 764, 570},
81 {5728, 906, 2616}, {6272, 804, 2252}, {3096, 535, 876}, {3228, 598, 649},
82 {6536, 759, 1436}, {6648, 993, 846}, {6864, 567, 1210},{14016,1012, 1302},
83 {3408, 548, 1098}, {7160,1008, 1742}, {7136,1000, 1182}, {7480,1032, 836},
84 {7448, 612, 1552}, {7744, 614, 816}, {8384, 777, 1438}, {8784, 694, 786},
85 { 882,1508, 1068}, { 597, 837, 766}, {1270, 954, 1408}, { 803, 550, 798},
86 {1398,1308, 798}, {1848,1534, 738}, { 970, 675, 608}, {1264, 706, 684},
87 {1716, 767, 1126}, {2108, 765, 1404}, {2236, 924, 1003}, {2472,1048, 611},
88 { 999, 942, 963}, {1094, 857, 935}, {2936, 926, 1138}, {1934, 746, 551},
89 {3336, 633, 1762}, {3764, 701, 1454}, {1890, 564, 636}, {4096,1126, 793},
90 {3936, 556, 1140}, {3936, 540, 740}, {4216, 764, 874}, {8480,1328, 1014},
91 {2184, 515, 1042}, {4432, 934, 1344}, {4784, 945, 1112}, {5016,1062, 733},
92 {9216,1020, 2028}, {9968, 924, 1188}, {5424, 909, 1206}, {6512, 744, 1086}
93 };
94
96 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14,
97 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13,
98 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13,
99 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13,
100 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12,
101 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12,
102 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13,
103 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14,
104 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
105 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11,
106 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13,
107 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
108 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12,
109 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13,
110 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10,
111 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12
112 };
113
115 {
116 38, -4, 15, -4, 14, -13, 12, -11, -2, -6,
117 -6, -11, -45, -16, -11, -13, -7, 6, -12, 4,
118 -20, 3, -16, 12, -1, 12, 46, 24, 0, 33,
119 -3, 9, -12, -12, -8, -7, 17, -6, 0, -2,
120 }, {
121 60, -16, 3, -22, 10, -32, 0, -28, -17, -18,
122 -3, -25, -37, -23, -10, 3, 2, 3, 0, 3,
123 -14, 0, -14, -1, 0, 2, 32, 9, -1, 25,
124 7, 13, -5, 13, 8, 1, 2, 8, -10, 6,
125 }, {
126 27, -12, 28, -2, 6, -7, 15, 9, -11, 1,
127 -13, -11, -40, 4, -29, -14, -19, -5, -23, -8,
128 -30, -13, -17, 0, -14, 12, 34, 20, -2, 25,
129 2, -16, -4, -12, 15, 16, 29, 7, 24, 10,
130 }, {
131 49, -24, 16, -20, 2, -26, 2, -7, -25, -10,
132 -11, -25, -32, -3, -27, 2, -8, -8, -11, -9,
133 -24, -17, -16, -14, -13, 2, 20, 5, -4, 17,
134 14, -12, 3, 13, 33, 25, 14, 23, 15, 19,
135 }, {
136 46, -6, 21, 8, -2, -16, -5, -8, -11, 4,
137 8, 15, -24, 4, -2, -26, -3, -16, -16, -14,
138 -9, -2, -1, 4, 19, 7, 36, 17, 9, 13,
139 0, 31, -5, -12, 7, -8, 11, -15, -13, -4,
140 }, {
141 68, -18, 9, -9, -6, -35, -18, -25, -26, -7,
142 10, 1, -16, -3, -1, -9, 6, -19, -4, -15,
143 -4, -6, 0, -8, 20, -2, 23, 2, 7, 5,
144 12, 35, 1, 13, 24, 0, -3, 0, -22, 4,
145 }, {
146 35, -14, 34, 10, -10, -10, -1, 12, -20, 12,
147 0, 15, -18, 24, -20, -27, -14, -28, -27, -27,
148 -20, -19, -2, -8, 5, 7, 25, 13, 5, 5,
149 6, 5, 2, -12, 31, 15, 23, -1, 12, 8,
150 }, {
151 57, -26, 22, -7, -14, -28, -14, -3, -35, 0,
152 3, 1, -11, 16, -18, -10, -4, -31, -15, -28,
153 -14, -23, -1, -21, 7, -2, 11, -1, 3, -1,
154 18, 9, 10, 13, 49, 24, 8, 14, 2, 16,
155 }, {
156 25, 15, 22, 11, 18, 4, 15, -22, 8, -2,
157 -17, -9, -48, -20, -30, -17, -16, 11, -1, 16,
158 2, 10, -5, 26, -2, -4, 22, 0, 2, 10,
159 -6, 13, -14, 10, -23, 0, 10, -2, 1, 0,
160 }, {
161 47, 3, 11, -6, 15, -13, 2, -38, -6, -13,
162 -15, -22, -40, -28, -28, 0, -5, 8, 10, 15,
163 7, 7, -4, 13, -1, -14, 9, -14, 0, 2,
164 4, 18, -7, 36, -6, 8, -3, 13, -7, 8,
165 }, {
166 14, 7, 36, 13, 10, 10, 18, 0, 0, 5,
167 -25, -8, -43, 0, -48, -18, -27, 0, -12, 3,
168 -7, -6, -7, 13, -15, -5, 11, -3, 0, 2,
169 0, -12, -6, 10, 0, 23, 22, 11, 26, 12,
170 }, {
171 36, -5, 24, -4, 7, -7, 6, -17, -14, -5,
172 -22, -22, -35, -8, -46, -1, -17, -3, 0, 2,
173 -2, -10, -5, 0, -14, -15, -2, -18, -2, -4,
174 11, -7, 1, 36, 18, 32, 7, 27, 17, 20,
175 }, {
176 33, 13, 29, 24, 1, 1, -2, -18, 0, 9,
177 -3, 17, -27, 0, -21, -30, -12, -11, -5, -2,
178 12, 4, 9, 19, 18, -9, 13, -6, 11, -8,
179 -2, 35, -8, 10, -7, -1, 4, -11, -10, -2,
180 }, {
181 55, 1, 17, 6, -1, -16, -15, -35, -15, -2,
182 0, 4, -19, -8, -20, -13, -1, -14, 7, -3,
183 18, 0, 10, 5, 19, -19, 0, -21, 8, -16,
184 9, 39, 0, 36, 10, 7, -9, 4, -20, 5,
185 }, {
186 22, 5, 42, 26, -6, 8, 1, 2, -9, 17,
187 -10, 18, -21, 19, -39, -31, -23, -23, -16, -15,
188 2, -12, 7, 6, 5, -9, 1, -10, 7, -16,
189 4, 9, 0, 10, 17, 22, 16, 2, 14, 9,
190 }, {
191 44, -6, 30, 8, -9, -10, -11, -14, -23, 5,
192 -8, 4, -14, 12, -37, -14, -12, -26, -4, -16,
193 8, -16, 9, -7, 6, -19, -12, -25, 5, -24,
194 15, 13, 8, 36, 34, 31, 1, 18, 4, 18,
195 }, {
196 -3, -5, -9, -7, 15, -1, 5, 13, 2, 12,
197 5, 2, -21, -23, -2, -16, 0, 5, -6, 13,
198 -23, 3, -32, 10, -15, 8, 44, 28, 9, 37,
199 -2, 13, -9, -15, -12, -27, -7, -12, 0, -11,
200 }, {
201 18, -17, -21, -25, 11, -19, -6, -3, -11, 0,
202 7, -11, -13, -31, -1, 0, 9, 1, 5, 12,
203 -18, 0, -31, -2, -13, -1, 30, 14, 7, 29,
204 9, 18, -1, 10, 4, -18, -22, 3, -10, -2,
205 }, {
206 -13, -13, 3, -5, 7, 4, 9, 34, -5, 20,
207 -2, 3, -16, -3, -20, -17, -11, -7, -17, 0,
208 -34, -13, -33, -2, -28, 8, 32, 24, 5, 29,
209 3, -12, 0, -15, 11, -3, 3, 2, 24, 1,
210 }, {
211 8, -25, -8, -23, 3, -13, -3, 17, -20, 8,
212 0, -10, -8, -11, -18, 0, -1, -10, -5, 0,
213 -28, -17, -32, -15, -26, -1, 19, 9, 3, 21,
214 15, -7, 6, 9, 29, 5, -10, 17, 15, 9,
215 }, {
216 4, -6, -3, 5, -1, -4, -11, 16, -6, 23,
217 19, 29, 0, -3, 6, -30, 3, -17, -10, -5,
218 -13, -2, -17, 3, 5, 3, 35, 21, 17, 17,
219 2, 35, -2, -15, 3, -28, -13, -21, -13, -13,
220 }, {
221 26, -19, -15, -12, -5, -22, -24, 0, -21, 12,
222 21, 15, 8, -11, 7, -12, 14, -20, 2, -6,
223 -7, -6, -16, -9, 6, -5, 21, 7, 15, 10,
224 13, 39, 5, 10, 20, -19, -28, -5, -22, -5,
225 }, {
226 -5, -15, 9, 7, -9, 2, -8, 37, -14, 31,
227 11, 29, 5, 16, -11, -30, -7, -29, -21, -18,
228 -23, -19, -18, -9, -7, 3, 23, 17, 14, 9,
229 8, 9, 6, -15, 27, -4, -2, -6, 12, -1,
230 }, {
231 16, -27, -2, -10, -13, -16, -20, 20, -29, 20,
232 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
233 -17, -23, -17, -22, -6, -6, 9, 2, 12, 2,
234 20, 13, 13, 10, 45, 4, -16, 8, 2, 7,
235 }, {
236 -16, 14, -2, 8, 20, 17, 9, 2, 14, 16,
237 -6, 5, -24, -28, -21, -20, -8, 9, 4, 25,
238 -1, 11, -22, 24, -15, -8, 21, 5, 11, 14,
239 -5, 18, -11, 7, -27, -20, -14, -7, 1, -9,
240 }, {
241 6, 2, -14, -9, 16, -1, -3, -14, 0, 5,
242 -3, -8, -16, -36, -19, -3, 1, 6, 17, 24,
243 4, 7, -21, 11, -14, -18, 7, -9, 9, 7,
244 6, 22, -3, 33, -10, -11, -28, 7, -7, 0,
245 }, {
246 -26, 6, 11, 10, 12, 23, 12, 23, 5, 24,
247 -13, 5, -19, -8, -38, -21, -20, -2, -6, 12,
248 -11, -5, -23, 11, -29, -9, 9, 0, 7, 6,
249 1, -7, -2, 7, -3, 3, -2, 6, 27, 3,
250 }, {
251 -4, -6, 0, -7, 8, 4, 0, 6, -9, 13,
252 -11, -7, -11, -15, -37, -4, -9, -5, 5, 11,
253 -5, -9, -22, -1, -27, -18, -4, -14, 5, 0,
254 12, -3, 4, 32, 14, 12, -17, 22, 17, 11,
255 }, {
256 -8, 12, 3, 21, 3, 14, -8, 5, 4, 28,
257 7, 32, -2, -8, -12, -34, -4, -12, 1, 6,
258 9, 4, -7, 17, 4, -13, 11, -1, 19, -4,
259 0, 39, -4, 7, -11, -21, -20, -16, -10, -11,
260 }, {
261 13, 0, -8, 3, 0, -4, -21, -11, -9, 16,
262 10, 18, 5, -16, -10, -16, 5, -15, 13, 5,
263 15, 1, -6, 4, 6, -23, -2, -16, 17, -12,
264 10, 44, 3, 33, 6, -12, -34, -1, -20, -3,
265 }, {
266 -18, 4, 17, 23, -4, 20, -4, 26, -3, 36,
267 0, 32, 2, 12, -29, -34, -16, -24, -10, -6,
268 0, -12, -8, 4, -8, -13, 0, -6, 16, -12,
269 5, 13, 3, 7, 13, 3, -8, -2, 14, 0,
270 }, {
271 3, -7, 5, 5, -8, 2, -17, 9, -18, 24,
272 2, 19, 10, 4, -28, -17, -5, -28, 2, -7,
273 4, -15, -7, -8, -6, -23, -13, -21, 14, -20,
274 17, 18, 11, 33, 30, 11, -23, 13, 5, 9,
275 }, {
276 60, 10, 7, -1, 9, -8, 6, -13, 2, -15,
277 -1, -10, -13, -11, 15, 0, 6, 9, -1, 0,
278 -13, 1, -11, -3, -13, 21, 13, 26, -7, 31,
279 -10, -7, -16, -33, -31, -10, 22, -8, 1, -2,
280 }, {
281 82, -1, -4, -19, 6, -27, -6, -29, -12, -26,
282 1, -24, -5, -18, 17, 17, 17, 6, 10, 0,
283 -7, -2, -9, -16, -12, 11, 0, 11, -9, 23,
284 0, -3, -8, -8, -13, -1, 8, 7, -7, 6,
285 }, {
286 49, 2, 21, 0, 1, -2, 9, 8, -6, -6,
287 -8, -10, -8, 9, -2, 0, -4, -2, -13, -12,
288 -23, -15, -12, -16, -26, 21, 2, 21, -11, 23,
289 -4, -33, -7, -33, -6, 13, 34, 5, 27, 10,
290 }, {
291 71, -10, 9, -17, -1, -20, -3, -8, -21, -18,
292 -6, -24, 0, 1, 0, 16, 6, -5, 0, -13,
293 -17, -19, -11, -29, -25, 11, -11, 6, -13, 15,
294 7, -29, 0, -8, 11, 22, 20, 21, 17, 18,
295 }, {
296 67, 8, 14, 11, -7, -11, -11, -9, -7, -3,
297 13, 16, 8, 9, 24, -12, 10, -13, -5, -17,
298 -2, -4, 3, -10, 6, 17, 4, 19, 0, 11,
299 -6, 13, -9, -33, -14, -10, 16, -17, -10, -4,
300 }, {
301 90, -3, 2, -6, -10, -29, -24, -26, -21, -15,
302 15, 2, 16, 1, 25, 4, 21, -16, 6, -18,
303 3, -8, 5, -24, 8, 7, -9, 4, -1, 3,
304 5, 18, -1, -7, 2, -1, 2, -1, -19, 3,
305 }, {
306 57, 0, 27, 13, -14, -5, -7, 11, -15, 4,
307 5, 16, 13, 29, 6, -13, 0, -25, -16, -31,
308 -12, -22, 2, -23, -6, 16, -7, 14, -2, 3,
309 0, -12, 0, -33, 9, 13, 28, -3, 14, 7,
310 }, {
311 79, -11, 15, -4, -18, -23, -20, -5, -30, -7,
312 7, 2, 21, 21, 8, 3, 10, -28, -4, -31,
313 -6, -25, 3, -37, -4, 7, -20, 0, -4, -4,
314 11, -7, 6, -8, 27, 22, 14, 12, 5, 16,
315 }, {
316 47, 30, 15, 14, 14, 9, 9, -23, 13, -10,
317 -12, -7, -16, -15, -3, -3, -1, 14, 9, 12,
318 9, 8, 0, 10, -14, 4, -9, 2, -5, 8,
319 -13, -3, -18, -10, -45, -3, 16, -4, 4, 0,
320 }, {
321 69, 17, 3, -3, 10, -8, -3, -40, -1, -21,
322 -10, -21, -8, -23, -1, 13, 8, 11, 21, 11,
323 15, 4, 0, -2, -13, -5, -23, -12, -7, 0,
324 -1, 0, -10, 14, -28, 5, 1, 11, -5, 7,
325 }, {
326 36, 21, 28, 16, 6, 16, 12, -2, 4, -2,
327 -20, -7, -11, 4, -20, -4, -12, 2, -1, 0,
328 0, -8, -2, -2, -27, 4, -21, -2, -9, 0,
329 -6, -29, -9, -10, -21, 21, 28, 10, 29, 11,
330 }, {
331 58, 9, 16, -1, 2, -2, 0, -19, -10, -13,
332 -17, -21, -3, -3, -19, 12, -2, 0, 10, -1,
333 5, -12, 0, -15, -26, -5, -34, -16, -11, -7,
334 4, -25, -2, 14, -3, 29, 13, 25, 20, 20,
335 }, {
336 55, 28, 21, 27, -2, 7, -8, -20, 4, 1,
337 1, 18, 5, 4, 5, -16, 2, -8, 5, -5,
338 19, 2, 14, 3, 6, 0, -18, -4, 2, -11,
339 -8, 18, -11, -10, -29, -3, 10, -13, -8, -3,
340 }, {
341 77, 16, 9, 9, -6, -11, -21, -37, -10, -10,
342 4, 5, 13, -3, 7, 0, 13, -11, 17, -6,
343 25, -1, 15, -9, 7, -9, -32, -19, 0, -18,
344 2, 22, -3, 15, -12, 5, -4, 2, -17, 5,
345 }, {
346 44, 20, 34, 29, -10, 13, -4, 0, -4, 9,
347 -5, 19, 10, 24, -11, -17, -8, -20, -5, -19,
348 9, -14, 12, -9, -6, 0, -30, -9, 0, -19,
349 -2, -7, -2, -10, -5, 20, 21, 1, 17, 9,
350 }, {
351 66, 8, 23, 11, -14, -5, -17, -16, -19, -2,
352 -3, 5, 18, 17, -10, 0, 1, -23, 6, -20,
353 15, -18, 14, -22, -5, -10, -44, -23, -2, -26,
354 9, -3, 4, 14, 12, 29, 7, 16, 7, 18,
355 }, {
356 18, 9, -17, -4, 11, 3, 0, 11, 7, 4,
357 10, 3, 10, -18, 24, -3, 14, 7, 4, 10,
358 -16, 1, -27, -4, -27, 17, 12, 30, 0, 35,
359 -9, -3, -12, -36, -35, -30, -2, -13, 2, -11,
360 }, {
361 40, -2, -29, -22, 7, -14, -12, -5, -7, -7,
362 12, -9, 18, -26, 26, 14, 24, 4, 16, 9,
363 -10, -2, -26, -18, -26, 7, -1, 15, -1, 27,
364 2, 0, -4, -11, -17, -21, -16, 1, -7, -3,
365 }, {
366 8, 1, -3, -2, 3, 10, 3, 32, -1, 12,
367 2, 4, 15, 1, 7, -3, 2, -4, -6, -3,
368 -26, -15, -29, -17, -40, 17, 0, 26, -2, 27,
369 -2, -29, -4, -36, -10, -6, 9, 0, 27, 0,
370 }, {
371 30, -11, -15, -20, 0, -8, -9, 15, -15, 0,
372 5, -9, 23, -6, 8, 13, 13, -7, 5, -3,
373 -20, -19, -27, -31, -39, 7, -13, 11, -4, 19,
374 8, -25, 3, -11, 7, 2, -4, 16, 18, 9,
375 }, {
376 26, 7, -11, 8, -5, 1, -17, 14, -1, 15,
377 24, 30, 32, 1, 33, -16, 18, -14, 0, -8,
378 -6, -4, -12, -12, -6, 13, 2, 23, 8, 15,
379 -4, 17, -5, -36, -18, -30, -8, -22, -10, -14,
380 }, {
381 48, -4, -23, -9, -9, -17, -30, -2, -16, 3,
382 26, 16, 40, -6, 35, 1, 28, -17, 12, -9,
383 0, -8, -11, -25, -5, 3, -10, 8, 6, 7,
384 6, 22, 1, -11, -1, -21, -22, -7, -19, -5,
385 }, {
386 15, 0, 2, 10, -13, 7, -14, 35, -10, 23,
387 16, 31, 37, 21, 16, -17, 6, -26, -10, -21,
388 -16, -21, -13, -25, -19, 13, -8, 19, 5, 7,
389 1, -8, 2, -36, 5, -6, 3, -8, 15, -1,
390 }, {
391 37, -12, -9, -7, -17, -11, -26, 18, -25, 12,
392 19, 17, 45, 14, 17, 0, 17, -30, 1, -22,
393 -10, -25, -12, -38, -18, 3, -22, 4, 3, 0,
394 13, -3, 10, -11, 23, 2, -10, 7, 5, 7,
395 }, {
396 5, 29, -9, 11, 15, 22, 3, 0, 18, 8,
397 -1, 6, 7, -23, 6, -6, 5, 12, 15, 21,
398 5, 8, -17, 9, -28, 0, -11, 6, 2, 12,
399 -11, 0, -14, -13, -49, -22, -8, -9, 4, -9,
400 }, {
401 27, 16, -21, -6, 12, 3, -9, -16, 3, -2,
402 1, -7, 15, -31, 7, 10, 16, 9, 27, 21,
403 11, 5, -16, -3, -26, -9, -24, -7, 0, 4,
404 0, 4, -6, 11, -32, -14, -23, 6, -5, -1,
405 }, {
406 -4, 20, 3, 13, 8, 28, 6, 21, 10, 16,
407 -8, 7, 12, -3, -11, -7, -5, 0, 4, 8,
408 -4, -8, -18, -3, -41, 0, -22, 2, 0, 4,
409 -5, -25, -6, -14, -25, 1, 2, 4, 29, 2,
410 }, {
411 17, 8, -8, -4, 4, 10, -6, 5, -4, 5,
412 -6, -6, 20, -10, -9, 9, 4, -2, 16, 7,
413 1, -12, -17, -16, -39, -9, -36, -12, -2, -3,
414 6, -21, 1, 11, -7, 10, -11, 20, 20, 11,
415 }, {
416 13, 27, -3, 24, -1, 19, -14, 3, 9, 20,
417 12, 33, 29, -3, 15, -20, 9, -9, 11, 3,
418 16, 2, -2, 2, -7, -3, -20, 0, 10, -7,
419 -7, 22, -7, -13, -33, -23, -14, -18, -7, -12,
420 }, {
421 35, 15, -15, 6, -4, 1, -27, -12, -5, 8,
422 15, 19, 37, -11, 16, -2, 20, -12, 23, 2,
423 22, -1, -1, -11, -5, -13, -34, -14, 8, -14,
424 4, 26, 0, 11, -16, -14, -29, -2, -17, -3,
425 }, {
426 3, 19, 9, 26, -8, 26, -10, 24, 0, 28,
427 5, 33, 34, 17, -2, -20, -1, -22, 0, -10,
428 6, -14, -3, -10, -20, -4, -32, -4, 7, -15,
429 0, -3, 0, -13, -9, 0, -3, -4, 17, 0,
430 }, {
431 25, 7, -2, 8, -12, 7, -23, 8, -13, 16,
432 7, 20, 42, 9, 0, -3, 9, -25, 12, -10,
433 12, -18, -2, -24, -19, -13, -46, -19, 5, -22,
434 10, 0, 8, 11, 8, 9, -17, 11, 7, 8,
435 }, {
436 -25, -7, 2, -8, 12, -7, 23, -8, 13, -16,
437 -7, -20, -42, -9, 0, 3, -9, 25, -12, 10,
438 -12, 18, 2, 24, 19, 13, 46, 19, -5, 22,
439 -10, 0, -8, -11, -8, -9, 17, -11, -7, -8,
440 }, {
441 -3, -19, -9, -26, 8, -26, 10, -24, 0, -28,
442 -5, -33, -34, -17, 2, 20, 1, 22, 0, 10,
443 -6, 14, 3, 10, 20, 4, 32, 4, -7, 15,
444 0, 3, 0, 13, 9, 0, 3, 4, -17, 0,
445 }, {
446 -35, -15, 15, -6, 4, -1, 27, 12, 5, -8,
447 -15, -19, -37, 11, -16, 2, -20, 12, -23, -2,
448 -22, 1, 1, 11, 5, 13, 34, 14, -8, 14,
449 -4, -26, 0, -11, 16, 14, 29, 2, 17, 3,
450 }, {
451 -13, -27, 3, -24, 1, -19, 14, -3, -9, -20,
452 -12, -33, -29, 3, -15, 20, -9, 9, -11, -3,
453 -16, -2, 2, -2, 7, 3, 20, 0, -10, 7,
454 7, -22, 7, 13, 33, 23, 14, 18, 7, 12,
455 }, {
456 -17, -8, 8, 4, -4, -10, 6, -5, 4, -5,
457 6, 6, -20, 10, 9, -9, -4, 2, -16, -7,
458 -1, 12, 17, 16, 39, 9, 36, 12, 2, 3,
459 -6, 21, -1, -11, 7, -10, 11, -20, -20, -11,
460 }, {
461 4, -20, -3, -13, -8, -28, -6, -21, -10, -16,
462 8, -7, -12, 3, 11, 7, 5, 0, -4, -8,
463 4, 8, 18, 3, 41, 0, 22, -2, 0, -4,
464 5, 25, 6, 14, 25, -1, -2, -4, -29, -2,
465 }, {
466 -27, -16, 21, 6, -12, -3, 9, 16, -3, 2,
467 -1, 7, -15, 31, -7, -10, -16, -9, -27, -21,
468 -11, -5, 16, 3, 26, 9, 24, 7, 0, -4,
469 0, -4, 6, -11, 32, 14, 23, -6, 5, 1,
470 }, {
471 -5, -29, 9, -11, -15, -22, -3, 0, -18, -8,
472 1, -6, -7, 23, -6, 6, -5, -12, -15, -21,
473 -5, -8, 17, -9, 28, 0, 11, -6, -2, -12,
474 11, 0, 14, 13, 49, 22, 8, 9, -4, 9,
475 }, {
476 -37, 12, 9, 7, 17, 11, 26, -18, 25, -12,
477 -19, -17, -45, -14, -17, 0, -17, 30, -1, 22,
478 10, 25, 12, 38, 18, -3, 22, -4, -3, 0,
479 -13, 3, -10, 11, -23, -2, 10, -7, -5, -7,
480 }, {
481 -15, 0, -2, -10, 13, -7, 14, -35, 10, -23,
482 -16, -31, -37, -21, -16, 17, -6, 26, 10, 21,
483 16, 21, 13, 25, 19, -13, 8, -19, -5, -7,
484 -1, 8, -2, 36, -5, 6, -3, 8, -15, 1,
485 }, {
486 -48, 4, 23, 9, 9, 17, 30, 2, 16, -3,
487 -26, -16, -40, 6, -35, -1, -28, 17, -12, 9,
488 0, 8, 11, 25, 5, -3, 10, -8, -6, -7,
489 -6, -22, -1, 11, 1, 21, 22, 7, 19, 5,
490 }, {
491 -26, -7, 11, -8, 5, -1, 17, -14, 1, -15,
492 -24, -30, -32, -1, -33, 16, -18, 14, 0, 8,
493 6, 4, 12, 12, 6, -13, -2, -23, -8, -15,
494 4, -17, 5, 36, 18, 30, 8, 22, 10, 14,
495 }, {
496 -30, 11, 15, 20, 0, 8, 9, -15, 15, 0,
497 -5, 9, -23, 6, -8, -13, -13, 7, -5, 3,
498 20, 19, 27, 31, 39, -7, 13, -11, 4, -19,
499 -8, 25, -3, 11, -7, -2, 4, -16, -18, -9,
500 }, {
501 -8, -1, 3, 2, -3, -10, -3, -32, 1, -12,
502 -2, -4, -15, -1, -7, 3, -2, 4, 6, 3,
503 26, 15, 29, 17, 40, -17, 0, -26, 2, -27,
504 2, 29, 4, 36, 10, 6, -9, 0, -27, 0,
505 }, {
506 -40, 2, 29, 22, -7, 14, 12, 5, 7, 7,
507 -12, 9, -18, 26, -26, -14, -24, -4, -16, -9,
508 10, 2, 26, 18, 26, -7, 1, -15, 1, -27,
509 -2, 0, 4, 11, 17, 21, 16, -1, 7, 3,
510 }, {
511 -18, -9, 17, 4, -11, -3, 0, -11, -7, -4,
512 -10, -3, -10, 18, -24, 3, -14, -7, -4, -10,
513 16, -1, 27, 4, 27, -17, -12, -30, 0, -35,
514 9, 3, 12, 36, 35, 30, 2, 13, -2, 11,
515 }, {
516 -66, -8, -23, -11, 14, 5, 17, 16, 19, 2,
517 3, -5, -18, -17, 10, 0, -1, 23, -6, 20,
518 -15, 18, -14, 22, 5, 10, 44, 23, 2, 26,
519 -9, 3, -4, -14, -12, -29, -7, -16, -7, -18,
520 }, {
521 -44, -20, -34, -29, 10, -13, 4, 0, 4, -9,
522 5, -19, -10, -24, 11, 17, 8, 20, 5, 19,
523 -9, 14, -12, 9, 6, 0, 30, 9, 0, 19,
524 2, 7, 2, 10, 5, -20, -21, -1, -17, -9,
525 }, {
526 -77, -16, -9, -9, 6, 11, 21, 37, 10, 10,
527 -4, -5, -13, 3, -7, 0, -13, 11, -17, 6,
528 -25, 1, -15, 9, -7, 9, 32, 19, 0, 18,
529 -2, -22, 3, -15, 12, -5, 4, -2, 17, -5,
530 }, {
531 -55, -28, -21, -27, 2, -7, 8, 20, -4, -1,
532 -1, -18, -5, -4, -5, 16, -2, 8, -5, 5,
533 -19, -2, -14, -3, -6, 0, 18, 4, -2, 11,
534 8, -18, 11, 10, 29, 3, -10, 13, 8, 3,
535 }, {
536 -58, -9, -16, 1, -2, 2, 0, 19, 10, 13,
537 17, 21, 3, 3, 19, -12, 2, 0, -10, 1,
538 -5, 12, 0, 15, 26, 5, 34, 16, 11, 7,
539 -4, 25, 2, -14, 3, -29, -13, -25, -20, -20,
540 }, {
541 -36, -21, -28, -16, -6, -16, -12, 2, -4, 2,
542 20, 7, 11, -4, 20, 4, 12, -2, 1, 0,
543 0, 8, 2, 2, 27, -4, 21, 2, 9, 0,
544 6, 29, 9, 10, 21, -21, -28, -10, -29, -11,
545 }, {
546 -69, -17, -3, 3, -10, 8, 3, 40, 1, 21,
547 10, 21, 8, 23, 1, -13, -8, -11, -21, -11,
548 -15, -4, 0, 2, 13, 5, 23, 12, 7, 0,
549 1, 0, 10, -14, 28, -5, -1, -11, 5, -7,
550 }, {
551 -47, -30, -15, -14, -14, -9, -9, 23, -13, 10,
552 12, 7, 16, 15, 3, 3, 1, -14, -9, -12,
553 -9, -8, 0, -10, 14, -4, 9, -2, 5, -8,
554 13, 3, 18, 10, 45, 3, -16, 4, -4, 0,
555 }, {
556 -79, 11, -15, 4, 18, 23, 20, 5, 30, 7,
557 -7, -2, -21, -21, -8, -3, -10, 28, 4, 31,
558 6, 25, -3, 37, 4, -7, 20, 0, 4, 4,
559 -11, 7, -6, 8, -27, -22, -14, -12, -5, -16,
560 }, {
561 -57, 0, -27, -13, 14, 5, 7, -11, 15, -4,
562 -5, -16, -13, -29, -6, 13, 0, 25, 16, 31,
563 12, 22, -2, 23, 6, -16, 7, -14, 2, -3,
564 0, 12, 0, 33, -9, -13, -28, 3, -14, -7,
565 }, {
566 -90, 3, -2, 6, 10, 29, 24, 26, 21, 15,
567 -15, -2, -16, -1, -25, -4, -21, 16, -6, 18,
568 -3, 8, -5, 24, -8, -7, 9, -4, 1, -3,
569 -5, -18, 1, 7, -2, 1, -2, 1, 19, -3,
570 }, {
571 -67, -8, -14, -11, 7, 11, 11, 9, 7, 3,
572 -13, -16, -8, -9, -24, 12, -10, 13, 5, 17,
573 2, 4, -3, 10, -6, -17, -4, -19, 0, -11,
574 6, -13, 9, 33, 14, 10, -16, 17, 10, 4,
575 }, {
576 -71, 10, -9, 17, 1, 20, 3, 8, 21, 18,
577 6, 24, 0, -1, 0, -16, -6, 5, 0, 13,
578 17, 19, 11, 29, 25, -11, 11, -6, 13, -15,
579 -7, 29, 0, 8, -11, -22, -20, -21, -17, -18,
580 }, {
581 -49, -2, -21, 0, -1, 2, -9, -8, 6, 6,
582 8, 10, 8, -9, 2, 0, 4, 2, 13, 12,
583 23, 15, 12, 16, 26, -21, -2, -21, 11, -23,
584 4, 33, 7, 33, 6, -13, -34, -5, -27, -10,
585 }, {
586 -82, 1, 4, 19, -6, 27, 6, 29, 12, 26,
587 -1, 24, 5, 18, -17, -17, -17, -6, -10, 0,
588 7, 2, 9, 16, 12, -11, 0, -11, 9, -23,
589 0, 3, 8, 8, 13, 1, -8, -7, 7, -6,
590 }, {
591 -60, -10, -7, 1, -9, 8, -6, 13, -2, 15,
592 1, 10, 13, 11, -15, 0, -6, -9, 1, 0,
593 13, -1, 11, 3, 13, -21, -13, -26, 7, -31,
594 10, 7, 16, 33, 31, 10, -22, 8, -1, 2,
595 }, {
596 -3, 7, -5, -5, 8, -2, 17, -9, 18, -24,
597 -2, -19, -10, -4, 28, 17, 5, 28, -2, 7,
598 -4, 15, 7, 8, 6, 23, 13, 21, -14, 20,
599 -17, -18, -11, -33, -30, -11, 23, -13, -5, -9,
600 }, {
601 18, -4, -17, -23, 4, -20, 4, -26, 3, -36,
602 0, -32, -2, -12, 29, 34, 16, 24, 10, 6,
603 0, 12, 8, -4, 8, 13, 0, 6, -16, 12,
604 -5, -13, -3, -7, -13, -3, 8, 2, -14, 0,
605 }, {
606 -13, 0, 8, -3, 0, 4, 21, 11, 9, -16,
607 -10, -18, -5, 16, 10, 16, -5, 15, -13, -5,
608 -15, -1, 6, -4, -6, 23, 2, 16, -17, 12,
609 -10, -44, -3, -33, -6, 12, 34, 1, 20, 3,
610 }, {
611 8, -12, -3, -21, -3, -14, 8, -5, -4, -28,
612 -7, -32, 2, 8, 12, 34, 4, 12, -1, -6,
613 -9, -4, 7, -17, -4, 13, -11, 1, -19, 4,
614 0, -39, 4, -7, 11, 21, 20, 16, 10, 11,
615 }, {
616 4, 6, 0, 7, -8, -4, 0, -6, 9, -13,
617 11, 7, 11, 15, 37, 4, 9, 5, -5, -11,
618 5, 9, 22, 1, 27, 18, 4, 14, -5, 0,
619 -12, 3, -4, -32, -14, -12, 17, -22, -17, -11,
620 }, {
621 26, -6, -11, -10, -12, -23, -12, -23, -5, -24,
622 13, -5, 19, 8, 38, 21, 20, 2, 6, -12,
623 11, 5, 23, -11, 29, 9, -9, 0, -7, -6,
624 -1, 7, 2, -7, 3, -3, 2, -6, -27, -3,
625 }, {
626 -6, -2, 14, 9, -16, 1, 3, 14, 0, -5,
627 3, 8, 16, 36, 19, 3, -1, -6, -17, -24,
628 -4, -7, 21, -11, 14, 18, -7, 9, -9, -7,
629 -6, -22, 3, -33, 10, 11, 28, -7, 7, 0,
630 }, {
631 16, -14, 2, -8, -20, -17, -9, -2, -14, -16,
632 6, -5, 24, 28, 21, 20, 8, -9, -4, -25,
633 1, -11, 22, -24, 15, 8, -21, -5, -11, -14,
634 5, -18, 11, -7, 27, 20, 14, 7, -1, 9,
635 }, {
636 -16, 27, 2, 10, 13, 16, 20, -20, 29, -20,
637 -14, -16, -13, -8, 9, 13, -2, 33, 9, 19,
638 17, 23, 17, 22, 6, 6, -9, -2, -12, -2,
639 -20, -13, -13, -10, -45, -4, 16, -8, -2, -7,
640 }, {
641 5, 15, -9, -7, 9, -2, 8, -37, 14, -31,
642 -11, -29, -5, -16, 11, 30, 7, 29, 21, 18,
643 23, 19, 18, 9, 7, -3, -23, -17, -14, -9,
644 -8, -9, -6, 15, -27, 4, 2, 6, -12, 1,
645 }, {
646 -26, 19, 15, 12, 5, 22, 24, 0, 21, -12,
647 -21, -15, -8, 11, -7, 12, -14, 20, -2, 6,
648 7, 6, 16, 9, -6, 5, -21, -7, -15, -10,
649 -13, -39, -5, -10, -20, 19, 28, 5, 22, 5,
650 }, {
651 -4, 6, 3, -5, 1, 4, 11, -16, 6, -23,
652 -19, -29, 0, 3, -6, 30, -3, 17, 10, 5,
653 13, 2, 17, -3, -5, -3, -35, -21, -17, -17,
654 -2, -35, 2, 15, -3, 28, 13, 21, 13, 13,
655 }, {
656 -8, 25, 8, 23, -3, 13, 3, -17, 20, -8,
657 0, 10, 8, 11, 18, 0, 1, 10, 5, 0,
658 28, 17, 32, 15, 26, 1, -19, -9, -3, -21,
659 -15, 7, -6, -9, -29, -5, 10, -17, -15, -9,
660 }, {
661 13, 13, -3, 5, -7, -4, -9, -34, 5, -20,
662 2, -3, 16, 3, 20, 17, 11, 7, 17, 0,
663 34, 13, 33, 2, 28, -8, -32, -24, -5, -29,
664 -3, 12, 0, 15, -11, 3, -3, -2, -24, -1,
665 }, {
666 -18, 17, 21, 25, -11, 19, 6, 3, 11, 0,
667 -7, 11, 13, 31, 1, 0, -9, -1, -5, -12,
668 18, 0, 31, 2, 13, 1, -30, -14, -7, -29,
669 -9, -18, 1, -10, -4, 18, 22, -3, 10, 2,
670 }, {
671 3, 5, 9, 7, -15, 1, -5, -13, -2, -12,
672 -5, -2, 21, 23, 2, 16, 0, -5, 6, -13,
673 23, -3, 32, -10, 15, -8, -44, -28, -9, -37,
674 2, -13, 9, 15, 12, 27, 7, 12, 0, 11,
675 }, {
676 -44, 6, -30, -8, 9, 10, 11, 14, 23, -5,
677 8, -4, 14, -12, 37, 14, 12, 26, 4, 16,
678 -8, 16, -9, 7, -6, 19, 12, 25, -5, 24,
679 -15, -13, -8, -36, -34, -31, -1, -18, -4, -18,
680 }, {
681 -22, -5, -42, -26, 6, -8, -1, -2, 9, -17,
682 10, -18, 21, -19, 39, 31, 23, 23, 16, 15,
683 -2, 12, -7, -6, -5, 9, -1, 10, -7, 16,
684 -4, -9, 0, -10, -17, -22, -16, -2, -14, -9,
685 }, {
686 -55, -1, -17, -6, 1, 16, 15, 35, 15, 2,
687 0, -4, 19, 8, 20, 13, 1, 14, -7, 3,
688 -18, 0, -10, -5, -19, 19, 0, 21, -8, 16,
689 -9, -39, 0, -36, -10, -7, 9, -4, 20, -5,
690 }, {
691 -33, -13, -29, -24, -1, -1, 2, 18, 0, -9,
692 3, -17, 27, 0, 21, 30, 12, 11, 5, 2,
693 -12, -4, -9, -19, -18, 9, -13, 6, -11, 8,
694 2, -35, 8, -10, 7, 1, -4, 11, 10, 2,
695 }, {
696 -36, 5, -24, 4, -7, 7, -6, 17, 14, 5,
697 22, 22, 35, 8, 46, 1, 17, 3, 0, -2,
698 2, 10, 5, 0, 14, 15, 2, 18, 2, 4,
699 -11, 7, -1, -36, -18, -32, -7, -27, -17, -20,
700 }, {
701 -14, -7, -36, -13, -10, -10, -18, 0, 0, -5,
702 25, 8, 43, 0, 48, 18, 27, 0, 12, -3,
703 7, 6, 7, -13, 15, 5, -11, 3, 0, -2,
704 0, 12, 6, -10, 0, -23, -22, -11, -26, -12,
705 }, {
706 -47, -3, -11, 6, -15, 13, -2, 38, 6, 13,
707 15, 22, 40, 28, 28, 0, 5, -8, -10, -15,
708 -7, -7, 4, -13, 1, 14, -9, 14, 0, -2,
709 -4, -18, 7, -36, 6, -8, 3, -13, 7, -8,
710 }, {
711 -25, -15, -22, -11, -18, -4, -15, 22, -8, 2,
712 17, 9, 48, 20, 30, 17, 16, -11, 1, -16,
713 -2, -10, 5, -26, 2, 4, -22, 0, -2, -10,
714 6, -13, 14, -10, 23, 0, -10, 2, -1, 0,
715 }, {
716 -57, 26, -22, 7, 14, 28, 14, 3, 35, 0,
717 -3, -1, 11, -16, 18, 10, 4, 31, 15, 28,
718 14, 23, 1, 21, -7, 2, -11, 1, -3, 1,
719 -18, -9, -10, -13, -49, -24, -8, -14, -2, -16,
720 }, {
721 -35, 14, -34, -10, 10, 10, 1, -12, 20, -12,
722 0, -15, 18, -24, 20, 27, 14, 28, 27, 27,
723 20, 19, 2, 8, -5, -7, -25, -13, -5, -5,
724 -6, -5, -2, 12, -31, -15, -23, 1, -12, -8,
725 }, {
726 -68, 18, -9, 9, 6, 35, 18, 25, 26, 7,
727 -10, -1, 16, 3, 1, 9, -6, 19, 4, 15,
728 4, 6, 0, 8, -20, 2, -23, -2, -7, -5,
729 -12, -35, -1, -13, -24, 0, 3, 0, 22, -4,
730 }, {
731 -46, 6, -21, -8, 2, 16, 5, 8, 11, -4,
732 -8, -15, 24, -4, 2, 26, 3, 16, 16, 14,
733 9, 2, 1, -4, -19, -7, -36, -17, -9, -13,
734 0, -31, 5, 12, -7, 8, -11, 15, 13, 4,
735 }, {
736 -49, 24, -16, 20, -2, 26, -2, 7, 25, 10,
737 11, 25, 32, 3, 27, -2, 8, 8, 11, 9,
738 24, 17, 16, 14, 13, -2, -20, -5, 4, -17,
739 -14, 12, -3, -13, -33, -25, -14, -23, -15, -19,
740 }, {
741 -27, 12, -28, 2, -6, 7, -15, -9, 11, -1,
742 13, 11, 40, -4, 29, 14, 19, 5, 23, 8,
743 30, 13, 17, 0, 14, -12, -34, -20, 2, -25,
744 -2, 16, 4, 12, -15, -16, -29, -7, -24, -10,
745 }, {
746 -60, 16, -3, 22, -10, 32, 0, 28, 17, 18,
747 3, 25, 37, 23, 10, -3, -2, -3, 0, -3,
748 14, 0, 14, 1, 0, -2, -32, -9, 1, -25,
749 -7, -13, 5, -13, -8, -1, -2, -8, 10, -6,
750 }, {
751 -38, 4, -15, 4, -14, 13, -12, 11, 2, 6,
752 6, 11, 45, 16, 11, 13, 7, -6, 12, -4,
753 20, -3, 16, -12, 1, -12, -46, -24, 0, -33,
754 3, -9, 12, 12, 8, 7, -17, 6, 0, 2
755 }
756 };
757
759 {
760 73, -32, -60, -15, -26, 59, 2, -33, 30, -10,
761 -3, -17, 8, 30, -1, -26, -4, -22, 10, 16,
762 -36, -5, -11, 56, 37, 6, -10, -5, -13, -3,
763 6, -5, 11, 4, -19, -5, -16, 41, 24, 13,
764 }, {
765 4, -11, -37, 23, -5, 46, -2, -29, -5, -39,
766 -21, -9, 0, 49, 12, -9, -16, -26, 22, 15,
767 -45, -20, -5, 40, 22, 17, -26, 31, -14, 2,
768 -14, 10, 30, 20, -27, -9, -39, 39, 18, 5,
769 }, {
770 34, -25, -48, -28, -11, 34, -2, -41, 9, -7,
771 -17, 21, 20, 24, -17, -33, 0, -24, 10, 42,
772 3, -5, 10, 42, 11, 8, -3, 3, 16, 9,
773 22, -2, 0, -33, -10, 18, 7, 58, 10, 28,
774 }, {
775 -34, -4, -25, 10, 9, 21, -7, -36, -26, -36,
776 -35, 28, 12, 42, -3, -16, -12, -28, 21, 42,
777 -5, -21, 16, 26, -4, 19, -19, 39, 15, 15,
778 1, 13, 19, -17, -17, 14, -15, 55, 4, 19,
779 }, {
780 28, -20, -51, -14, -6, 7, 0, -26, 27, -4,
781 18, -40, -6, 16, -1, -15, 0, -55, -5, -16,
782 -19, 14, -3, 49, 14, 1, -22, -30, -12, 0,
783 24, 15, 9, -17, -45, -29, 4, 28, 51, 35,
784 }, {
785 -40, 0, -28, 24, 14, -5, -4, -21, -7, -33,
786 0, -32, -15, 35, 12, 1, -11, -58, 5, -16,
787 -28, 0, 1, 33, 0, 11, -39, 5, -14, 6,
788 3, 31, 28, -1, -53, -33, -19, 25, 46, 26,
789 }, {
790 -11, -14, -39, -27, 9, -17, -4, -33, 6, 0,
791 4, -1, 5, 10, -17, -22, 5, -57, -5, 9,
792 20, 13, 18, 35, -11, 3, -16, -22, 17, 13,
793 40, 19, -1, -55, -35, -5, 27, 44, 37, 49,
794 }, {
795 -80, 6, -16, 11, 30, -30, -9, -28, -28, -29,
796 -13, 6, -2, 28, -3, -5, -7, -60, 5, 9,
797 11, -1, 24, 19, -27, 13, -32, 13, 15, 19,
798 19, 35, 17, -39, -43, -9, 4, 42, 32, 41,
799 }, {
800 78, -21, -43, 4, -38, 17, 17, -5, 55, 24,
801 -15, -36, 14, 4, 24, -24, 12, 5, 17, 31,
802 -54, -5, -2, 27, 43, -12, 2, 9, -9, -15,
803 22, -3, 28, 21, -20, 3, 20, 28, 9, -5,
804 }, {
805 9, -1, -20, 43, -17, 3, 12, 0, 20, -4,
806 -33, -29, 6, 22, 38, -7, 0, 1, 29, 30,
807 -63, -21, 3, 11, 27, -1, -14, 45, -10, -9,
808 1, 12, 47, 37, -28, 0, -2, 26, 4, -13,
809 }, {
810 39, -14, -30, -8, -22, -8, 12, -12, 34, 27,
811 -29, 2, 26, -2, 8, -31, 16, 3, 17, 57,
812 -14, -6, 19, 13, 16, -10, 8, 17, 20, -2,
813 38, 0, 17, -16, -11, 27, 44, 45, -4, 8,
814 }, {
815 -29, 5, -7, 30, -1, -21, 7, -7, 0, 0,
816 -47, 9, 18, 15, 22, -14, 4, 0, 28, 57,
817 -23, -21, 25, -2, 1, 0, -7, 53, 19, 3,
818 17, 15, 36, 0, -19, 24, 21, 43, -9, 0,
819 }, {
820 33, -10, -34, 5, -17, -35, 15, 1, 53, 30,
821 6, -59, 0, -10, 24, -13, 17, -27, 1, -1,
822 -37, 13, 4, 20, 20, -18, -10, -16, -8, -11,
823 39, 18, 26, 0, -46, -20, 41, 15, 37, 15,
824 }, {
825 -35, 10, -11, 44, 3, -48, 10, 6, 17, 2,
826 -11, -51, -8, 8, 38, 3, 4, -31, 12, -2,
827 -46, -1, 10, 4, 5, -7, -26, 19, -10, -5,
828 18, 34, 45, 15, -54, -24, 18, 13, 31, 7,
829 }, {
830 -5, -3, -21, -7, -2, -60, 10, -5, 32, 34,
831 -7, -20, 11, -16, 8, -20, 21, -29, 1, 24,
832 2, 13, 27, 6, -5, -15, -3, -8, 21, 1,
833 55, 21, 15, -38, -37, 3, 65, 32, 23, 30,
834 }, {
835 -74, 17, 0, 31, 18, -73, 5, 0, -3, 5,
836 -25, -12, 3, 1, 22, -3, 9, -33, 12, 24,
837 -6, -2, 33, -9, -21, -5, -20, 27, 19, 7,
838 34, 37, 34, -22, -44, 0, 41, 29, 17, 21,
839 }, {
840 76, -35, -31, -28, -49, 43, -40, 0, 29, -14,
841 8, 5, 10, 18, -26, -46, 0, 7, 6, 3,
842 -25, -7, -2, 40, 28, 14, 18, -3, -27, -28,
843 -8, -45, -13, 34, -13, -27, -15, 31, 12, 3,
844 }, {
845 7, -15, -9, 9, -28, 29, -45, 5, -6, -43,
846 -9, 12, 2, 36, -12, -30, -11, 3, 17, 3,
847 -34, -22, 3, 24, 12, 24, 2, 32, -28, -22,
848 -29, -29, 5, 50, -21, -31, -38, 29, 7, -5,
849 }, {
850 36, -29, -19, -41, -34, 18, -45, -6, 8, -10,
851 -5, 43, 23, 11, -42, -53, 5, 5, 6, 30,
852 14, -8, 20, 26, 1, 16, 25, 4, 3, -15,
853 7, -41, -23, -3, -4, -3, 8, 48, -1, 17,
854 }, {
855 -32, -8, 3, -2, -13, 4, -50, -1, -27, -39,
856 -23, 51, 15, 30, -27, -37, -7, 1, 17, 29,
857 5, -23, 25, 10, -14, 26, 8, 41, 1, -9,
858 -13, -26, -5, 12, -12, -7, -14, 45, -6, 9,
859 }, {
860 31, -24, -23, -27, -29, -9, -43, 8, 26, -7,
861 30, -17, -4, 3, -26, -35, 5, -24, -10, -28,
862 -9, 12, 5, 33, 5, 8, 5, -29, -26, -24,
863 9, -23, -14, 12, -39, -52, 5, 18, 39, 24,
864 }, {
865 -37, -3, 0, 10, -7, -22, -48, 12, -8, -36,
866 12, -9, -12, 22, -12, -19, -6, -28, 0, -29,
867 -18, -3, 11, 17, -10, 18, -10, 7, -27, -18,
868 -11, -7, 3, 28, -47, -55, -18, 15, 34, 16,
869 }, {
870 -8, -17, -10, -40, -13, -34, -47, 0, 5, -4,
871 16, 21, 8, -2, -42, -43, 10, -26, -10, -2,
872 31, 11, 27, 19, -21, 10, 12, -20, 3, -11,
873 25, -20, -25, -25, -29, -28, 28, 34, 25, 38,
874 }, {
875 -77, 2, 11, -1, 7, -47, -52, 5, -29, -33,
876 -1, 28, 0, 15, -28, -26, -2, -30, 0, -2,
877 22, -4, 33, 3, -36, 21, -3, 15, 2, -5,
878 4, -4, -6, -9, -37, -31, 5, 32, 20, 30,
879 }, {
880 81, -25, -14, -8, -61, 0, -25, 28, 54, 20,
881 -3, -14, 17, -8, 0, -44, 16, 35, 13, 18,
882 -43, -7, 6, 11, 33, -4, 30, 11, -22, -40,
883 6, -43, 3, 50, -14, -18, 22, 18, -1, -16,
884 }, {
885 12, -4, 8, 29, -39, -12, -30, 33, 19, -8,
886 -21, -6, 8, 9, 13, -28, 4, 31, 24, 18,
887 -52, -23, 12, -4, 18, 5, 14, 47, -24, -34,
888 -14, -27, 22, 66, -22, -22, -1, 16, -6, -24,
889 }, {
890 41, -18, -2, -21, -45, -24, -30, 21, 33, 24,
891 -17, 24, 29, -15, -16, -51, 21, 33, 13, 45,
892 -3, -8, 28, -2, 7, -2, 37, 19, 7, -27,
893 22, -39, -7, 12, -5, 5, 45, 35, -15, -1,
894 }, {
895 -27, 1, 20, 17, -24, -38, -35, 26, -1, -4,
896 -35, 32, 21, 3, -2, -35, 8, 29, 24, 44,
897 -12, -24, 34, -18, -8, 7, 21, 55, 5, -21,
898 2, -23, 11, 28, -13, 1, 22, 33, -21, -10,
899 }, {
900 36, -13, -5, -7, -40, -51, -28, 36, 52, 27,
901 18, -36, 2, -22, 0, -33, 21, 2, -3, -13,
902 -26, 11, 14, 4, 10, -10, 18, -14, -22, -36,
903 24, -21, 1, 28, -40, -42, 42, 5, 25, 5,
904 }, {
905 -32, 6, 17, 31, -19, -65, -33, 41, 16, -1,
906 0, -29, -6, -4, 13, -17, 9, -1, 8, -14,
907 -35, -3, 19, -11, -4, 0, 1, 21, -23, -30,
908 3, -5, 20, 44, -48, -46, 19, 3, 20, -3,
909 }, {
910 -3, -7, 6, -20, -25, -77, -32, 29, 31, 30,
911 4, 2, 14, -29, -16, -40, 26, 0, -3, 12,
912 13, 10, 36, -9, -15, -8, 24, -6, 7, -22,
913 40, -17, -8, -9, -31, -18, 66, 22, 11, 19,
914 }, {
915 -72, 13, 29, 18, -4, -90, -37, 34, -4, 1,
916 -13, 9, 6, -11, -2, -24, 13, -3, 7, 11,
917 4, -4, 42, -25, -31, 1, 8, 29, 6, -17,
918 19, -2, 10, 6, -38, -22, 42, 19, 6, 11,
919 }, {
920 116, -20, -68, -30, -28, 83, 28, -18, 32, -22,
921 -13, -21, 5, 28, 5, -7, -24, -8, -22, 17,
922 -23, 30, -25, 45, 15, -9, -11, -18, 22, -10,
923 4, -2, 19, -12, 23, 3, -43, 2, 12, -4,
924 }, {
925 47, 0, -45, 7, -7, 69, 23, -13, -2, -51,
926 -32, -14, -3, 47, 19, 8, -37, -11, -10, 16,
927 -32, 15, -19, 29, 0, 1, -28, 18, 20, -4,
928 -16, 13, 38, 3, 15, 0, -66, 0, 7, -13,
929 }, {
930 77, -13, -56, -43, -13, 57, 23, -26, 11, -19,
931 -27, 16, 17, 22, -10, -15, -19, -10, -22, 43,
932 16, 30, -2, 31, -11, -6, -5, -9, 52, 2,
933 20, 0, 8, -50, 33, 27, -19, 19, -1, 9,
934 }, {
935 8, 6, -33, -4, 7, 44, 18, -21, -23, -48,
936 -46, 24, 9, 40, 3, 1, -32, -13, -11, 43,
937 7, 14, 3, 15, -26, 3, -21, 26, 50, 8,
938 0, 16, 27, -34, 25, 23, -43, 17, -6, 1,
939 }, {
940 71, -9, -59, -29, -8, 30, 26, -11, 30, -16,
941 8, -44, -9, 14, 5, 2, -19, -40, -38, -15,
942 -7, 50, -17, 38, -7, -14, -24, -43, 22, -6,
943 22, 19, 17, -34, -2, -20, -23, -10, 39, 16,
944 }, {
945 2, 11, -36, 9, 13, 17, 21, -6, -5, -45,
946 -10, -36, -18, 33, 19, 19, -31, -44, -27, -15,
947 -16, 34, -11, 22, -22, -4, -40, -7, 21, 0,
948 1, 35, 36, -18, -10, -24, -46, -12, 34, 8,
949 }, {
950 32, -2, -47, -42, 7, 5, 21, -18, 9, -12,
951 -5, -5, 2, 8, -10, -4, -14, -42, -38, 10,
952 33, 49, 5, 24, -33, -12, -17, -35, 52, 6,
953 38, 22, 7, -72, 7, 3, 0, 6, 25, 30,
954 }, {
955 -36, 18, -24, -3, 28, -7, 16, -13, -26, -41,
956 -24, 1, -5, 26, 3, 12, -27, -46, -27, 10,
957 24, 34, 10, 8, -49, -2, -34, 0, 51, 12,
958 17, 38, 25, -56, 0, 0, -22, 3, 20, 22,
959 }, {
960 121, -9, -50, -10, -40, 40, 43, 9, 58, 12,
961 -25, -41, 11, 2, 31, -5, -8, 19, -15, 32,
962 -41, 30, -16, 16, 20, -28, 0, -3, 26, -22,
963 19, 0, 36, 4, 22, 12, -6, -9, -1, -24,
964 }, {
965 52, 10, -27, 27, -18, 26, 38, 14, 23, -16,
966 -44, -33, 3, 20, 45, 10, -20, 15, -3, 31,
967 -50, 14, -10, 0, 5, -17, -15, 32, 24, -16,
968 -1, 15, 55, 20, 14, 8, -29, -12, -7, -32,
969 }, {
970 82, -3, -38, -23, -24, 15, 38, 2, 37, 15,
971 -39, -2, 23, -4, 15, -12, -3, 17, -15, 58,
972 -1, 29, 6, 2, -5, -26, 7, 4, 56, -9,
973 35, 3, 25, -33, 32, 36, 17, 7, -15, -9,
974 }, {
975 13, 17, -15, 15, -3, 1, 33, 7, 1, -12,
976 -58, 5, 15, 13, 29, 3, -16, 13, -4, 57,
977 -10, 13, 11, -13, -21, -15, -9, 40, 55, -3,
978 14, 19, 44, -17, 24, 32, -5, 4, -21, -18,
979 }, {
980 76, 1, -41, -9, -19, -12, 41, 17, 55, 18,
981 -3, -63, -3, -12, 30, 5, -3, -12, -31, 0,
982 -24, 49, -8, 9, -1, -33, -12, -29, 27, -18,
983 37, 21, 34, -17, -3, -11, 14, -23, 25, -2,
984 }, {
985 7, 22, -18, 29, 1, -25, 36, 21, 20, -9,
986 -22, -56, -11, 6, 45, 21, -15, -16, -20, -1,
987 -33, 34, -2, -6, -17, -23, -28, 6, 25, -12,
988 16, 37, 53, -1, -11, -15, -8, -25, 20, -11,
989 }, {
990 37, 8, -29, -22, -4, -37, 36, 9, 34, 22,
991 -17, -24, 8, -18, 15, -2, 1, -14, -31, 25,
992 15, 48, 13, -4, -28, -31, -5, -21, 57, -4,
993 53, 24, 23, -55, 6, 12, 37, -6, 11, 11,
994 }, {
995 -31, 28, -6, 16, 16, -50, 31, 14, 0, -6,
996 -36, -17, 0, 0, 29, 14, -11, -18, -20, 25,
997 6, 33, 19, -20, -43, -21, -21, 14, 55, 0,
998 32, 40, 42, -39, -1, 8, 14, -8, 6, 3,
999 }, {
1000 119, -24, -39, -44, -51, 66, -14, 15, 31, -26,
1001 -1, 0, 7, 16, -19, -28, -19, 22, -26, 4,
1002 -13, 28, -16, 29, 5, -1, 16, -16, 8, -35,
1003 -10, -42, -4, 17, 29, -19, -42, -7, 0, -15,
1004 }, {
1005 50, -3, -16, -5, -30, 53, -19, 20, -3, -55,
1006 -19, 8, 0, 34, -5, -11, -32, 18, -15, 4,
1007 -22, 13, -10, 13, -9, 8, 0, 19, 7, -29,
1008 -31, -26, 13, 33, 21, -22, -65, -9, -4, -23,
1009 }, {
1010 79, -17, -27, -56, -36, 41, -19, 8, 10, -22,
1011 -15, 39, 20, 9, -35, -35, -15, 20, -26, 31,
1012 26, 27, 6, 15, -20, 0, 23, -8, 38, -22,
1013 5, -38, -15, -20, 39, 4, -18, 9, -13, -1,
1014 }, {
1015 10, 3, -4, -18, -15, 27, -24, 13, -24, -51,
1016 -34, 47, 12, 28, -21, -19, -27, 16, -15, 30,
1017 17, 12, 12, 0, -36, 10, 7, 27, 37, -16,
1018 -15, -22, 3, -4, 31, 1, -42, 7, -18, -9,
1019 }, {
1020 74, -12, -30, -42, -30, 14, -16, 23, 29, -19,
1021 20, -21, -7, 1, -19, -17, -14, -10, -43, -27,
1022 3, 48, -8, 22, -16, -7, 4, -42, 9, -31,
1023 6, -20, -6, -4, 3, -43, -22, -20, 28, 5,
1024 }, {
1025 5, 7, -7, -4, -9, 0, -21, 28, -6, -48,
1026 2, -14, -15, 20, -5, 0, -27, -14, -32, -28,
1027 -5, 32, -2, 6, -32, 3, -12, -5, 8, -25,
1028 -14, -4, 12, 11, -4, -47, -45, -22, 22, -2,
1029 }, {
1030 34, -6, -18, -55, -15, -11, -21, 16, 8, -16,
1031 6, 16, 5, -4, -35, -24, -10, -12, -43, -1,
1032 43, 47, 14, 8, -43, -5, 10, -34, 39, -18,
1033 22, -16, -17, -42, 13, -19, 1, -3, 14, 20,
1034 }, {
1035 -34, 14, 4, -17, 5, -24, -26, 20, -27, -45,
1036 -12, 24, -2, 13, -21, -8, -22, -16, -32, -2,
1037 34, 31, 20, -7, -58, 5, -5, 2, 38, -12,
1038 2, -1, 1, -26, 5, -23, -21, -6, 8, 11,
1039 }, {
1040 124, -13, -21, -23, -62, 23, 0, 43, 57, 8,
1041 -13, -18, 14, -10, 6, -26, -3, 49, -19, 19,
1042 -31, 27, -7, 0, 11, -20, 29, -1, 12, -47,
1043 4, -39, 11, 34, 28, -9, -5, -19, -13, -34,
1044 }, {
1045 55, 6, 1, 14, -41, 10, -4, 48, 22, -20,
1046 -31, -10, 5, 7, 20, -9, -16, 45, -8, 19,
1047 -40, 12, -1, -15, -4, -10, 12, 34, 11, -41,
1048 -16, -24, 30, 49, 20, -13, -28, -22, -18, -43,
1049 }, {
1050 84, -6, -9, -36, -47, -1, -4, 36, 36, 12,
1051 -27, 20, 26, -17, -9, -33, 1, 47, -19, 46,
1052 9, 27, 15, -13, -15, -18, 35, 6, 42, -33,
1053 20, -36, 1, -4, 38, 14, 18, -2, -27, -20,
1054 }, {
1055 15, 13, 13, 1, -26, -14, -9, 41, 1, -16,
1056 -46, 27, 18, 1, 4, -16, -11, 43, -8, 45,
1057 0, 11, 21, -29, -30, -8, 19, 42, 41, -28,
1058 0, -20, 20, 11, 30, 10, -4, -5, -32, -28,
1059 }, {
1060 79, -2, -12, -22, -42, -28, -1, 51, 54, 15,
1061 8, -41, 0, -24, 6, -15, 1, 17, -36, -12,
1062 -14, 47, 0, -6, -11, -26, 16, -27, 13, -43,
1063 22, -18, 10, 12, 2, -34, 15, -33, 13, -13,
1064 }, {
1065 10, 18, 10, 15, -21, -41, -6, 56, 19, -13,
1066 -9, -33, -9, -6, 20, 1, -11, 13, -24, -13,
1067 -23, 32, 6, -22, -26, -15, 0, 8, 12, -37,
1068 1, -2, 28, 27, -5, -37, -7, -35, 8, -21,
1069 }, {
1070 39, 4, 0, -35, -27, -53, -6, 44, 33, 18,
1071 -5, -2, 11, -31, -9, -22, 6, 15, -36, 13,
1072 25, 46, 23, -20, -37, -24, 23, -19, 43, -29,
1073 38, -14, 0, -26, 12, -10, 38, -16, 0, 0,
1074 }, {
1075 -29, 25, 22, 2, -6, -67, -11, 49, -1, -10,
1076 -24, 5, 3, -13, 4, -5, -6, 11, -25, 12,
1077 16, 31, 28, -36, -53, -13, 6, 16, 42, -24,
1078 17, 1, 18, -10, 4, -13, 15, -18, -5, -7,
1079 }, {
1080 29, -25, -22, -2, 6, 67, 11, -49, 1, 10,
1081 24, -5, -3, 13, -4, 5, 6, -11, 25, -12,
1082 -16, -31, -28, 36, 53, 13, -6, -16, -42, 24,
1083 -17, -1, -18, 10, -4, 13, -15, 18, 5, 7,
1084 }, {
1085 -39, -4, 0, 35, 27, 53, 6, -44, -33, -18,
1086 5, 2, -11, 31, 9, 22, -6, -15, 36, -13,
1087 -25, -46, -23, 20, 37, 24, -23, 19, -43, 29,
1088 -38, 14, 0, 26, -12, 10, -38, 16, 0, 0,
1089 }, {
1090 -10, -18, -10, -15, 21, 41, 6, -56, -19, 13,
1091 9, 33, 9, 6, -20, -1, 11, -13, 24, 13,
1092 23, -32, -6, 22, 26, 15, 0, -8, -12, 37,
1093 -1, 2, -28, -27, 5, 37, 7, 35, -8, 21,
1094 }, {
1095 -79, 2, 12, 22, 42, 28, 1, -51, -54, -15,
1096 -8, 41, 0, 24, -6, 15, -1, -17, 36, 12,
1097 14, -47, 0, 6, 11, 26, -16, 27, -13, 43,
1098 -22, 18, -10, -12, -2, 34, -15, 33, -13, 13,
1099 }, {
1100 -15, -13, -13, -1, 26, 14, 9, -41, -1, 16,
1101 46, -27, -18, -1, -4, 16, 11, -43, 8, -45,
1102 0, -11, -21, 29, 30, 8, -19, -42, -41, 28,
1103 0, 20, -20, -11, -30, -10, 4, 5, 32, 28,
1104 }, {
1105 -84, 6, 9, 36, 47, 1, 4, -36, -36, -12,
1106 27, -20, -26, 17, 9, 33, -1, -47, 19, -46,
1107 -9, -27, -15, 13, 15, 18, -35, -6, -42, 33,
1108 -20, 36, -1, 4, -38, -14, -18, 2, 27, 20,
1109 }, {
1110 -55, -6, -1, -14, 41, -10, 4, -48, -22, 20,
1111 31, 10, -5, -7, -20, 9, 16, -45, 8, -19,
1112 40, -12, 1, 15, 4, 10, -12, -34, -11, 41,
1113 16, 24, -30, -49, -20, 13, 28, 22, 18, 43,
1114 }, {
1115 -124, 13, 21, 23, 62, -23, 0, -43, -57, -8,
1116 13, 18, -14, 10, -6, 26, 3, -49, 19, -19,
1117 31, -27, 7, 0, -11, 20, -29, 1, -12, 47,
1118 -4, 39, -11, -34, -28, 9, 5, 19, 13, 34,
1119 }, {
1120 34, -14, -4, 17, -5, 24, 26, -20, 27, 45,
1121 12, -24, 2, -13, 21, 8, 22, 16, 32, 2,
1122 -34, -31, -20, 7, 58, -5, 5, -2, -38, 12,
1123 -2, 1, -1, 26, -5, 23, 21, 6, -8, -11,
1124 }, {
1125 -34, 6, 18, 55, 15, 11, 21, -16, -8, 16,
1126 -6, -16, -5, 4, 35, 24, 10, 12, 43, 1,
1127 -43, -47, -14, -8, 43, 5, -10, 34, -39, 18,
1128 -22, 16, 17, 42, -13, 19, -1, 3, -14, -20,
1129 }, {
1130 -5, -7, 7, 4, 9, 0, 21, -28, 6, 48,
1131 -2, 14, 15, -20, 5, 0, 27, 14, 32, 28,
1132 5, -32, 2, -6, 32, -3, 12, 5, -8, 25,
1133 14, 4, -12, -11, 4, 47, 45, 22, -22, 2,
1134 }, {
1135 -74, 12, 30, 42, 30, -14, 16, -23, -29, 19,
1136 -20, 21, 7, -1, 19, 17, 14, 10, 43, 27,
1137 -3, -48, 8, -22, 16, 7, -4, 42, -9, 31,
1138 -6, 20, 6, 4, -3, 43, 22, 20, -28, -5,
1139 }, {
1140 -10, -3, 4, 18, 15, -27, 24, -13, 24, 51,
1141 34, -47, -12, -28, 21, 19, 27, -16, 15, -30,
1142 -17, -12, -12, 0, 36, -10, -7, -27, -37, 16,
1143 15, 22, -3, 4, -31, -1, 42, -7, 18, 9,
1144 }, {
1145 -79, 17, 27, 56, 36, -41, 19, -8, -10, 22,
1146 15, -39, -20, -9, 35, 35, 15, -20, 26, -31,
1147 -26, -27, -6, -15, 20, 0, -23, 8, -38, 22,
1148 -5, 38, 15, 20, -39, -4, 18, -9, 13, 1,
1149 }, {
1150 -50, 3, 16, 5, 30, -53, 19, -20, 3, 55,
1151 19, -8, 0, -34, 5, 11, 32, -18, 15, -4,
1152 22, -13, 10, -13, 9, -8, 0, -19, -7, 29,
1153 31, 26, -13, -33, -21, 22, 65, 9, 4, 23,
1154 }, {
1155 -119, 24, 39, 44, 51, -66, 14, -15, -31, 26,
1156 1, 0, -7, -16, 19, 28, 19, -22, 26, -4,
1157 13, -28, 16, -29, -5, 1, -16, 16, -8, 35,
1158 10, 42, 4, -17, -29, 19, 42, 7, 0, 15,
1159 }, {
1160 31, -28, 6, -16, -16, 50, -31, -14, 0, 6,
1161 36, 17, 0, 0, -29, -14, 11, 18, 20, -25,
1162 -6, -33, -19, 20, 43, 21, 21, -14, -55, 0,
1163 -32, -40, -42, 39, 1, -8, -14, 8, -6, -3,
1164 }, {
1165 -37, -8, 29, 22, 4, 37, -36, -9, -34, -22,
1166 17, 24, -8, 18, -15, 2, -1, 14, 31, -25,
1167 -15, -48, -13, 4, 28, 31, 5, 21, -57, 4,
1168 -53, -24, -23, 55, -6, -12, -37, 6, -11, -11,
1169 }, {
1170 -7, -22, 18, -29, -1, 25, -36, -21, -20, 9,
1171 22, 56, 11, -6, -45, -21, 15, 16, 20, 1,
1172 33, -34, 2, 6, 17, 23, 28, -6, -25, 12,
1173 -16, -37, -53, 1, 11, 15, 8, 25, -20, 11,
1174 }, {
1175 -76, -1, 41, 9, 19, 12, -41, -17, -55, -18,
1176 3, 63, 3, 12, -30, -5, 3, 12, 31, 0,
1177 24, -49, 8, -9, 1, 33, 12, 29, -27, 18,
1178 -37, -21, -34, 17, 3, 11, -14, 23, -25, 2,
1179 }, {
1180 -13, -17, 15, -15, 3, -1, -33, -7, -1, 12,
1181 58, -5, -15, -13, -29, -3, 16, -13, 4, -57,
1182 10, -13, -11, 13, 21, 15, 9, -40, -55, 3,
1183 -14, -19, -44, 17, -24, -32, 5, -4, 21, 18,
1184 }, {
1185 -82, 3, 38, 23, 24, -15, -38, -2, -37, -15,
1186 39, 2, -23, 4, -15, 12, 3, -17, 15, -58,
1187 1, -29, -6, -2, 5, 26, -7, -4, -56, 9,
1188 -35, -3, -25, 33, -32, -36, -17, -7, 15, 9,
1189 }, {
1190 -52, -10, 27, -27, 18, -26, -38, -14, -23, 16,
1191 44, 33, -3, -20, -45, -10, 20, -15, 3, -31,
1192 50, -14, 10, 0, -5, 17, 15, -32, -24, 16,
1193 1, -15, -55, -20, -14, -8, 29, 12, 7, 32,
1194 }, {
1195 -121, 9, 50, 10, 40, -40, -43, -9, -58, -12,
1196 25, 41, -11, -2, -31, 5, 8, -19, 15, -32,
1197 41, -30, 16, -16, -20, 28, 0, 3, -26, 22,
1198 -19, 0, -36, -4, -22, -12, 6, 9, 1, 24,
1199 }, {
1200 36, -18, 24, 3, -28, 7, -16, 13, 26, 41,
1201 24, -1, 5, -26, -3, -12, 27, 46, 27, -10,
1202 -24, -34, -10, -8, 49, 2, 34, 0, -51, -12,
1203 -17, -38, -25, 56, 0, 0, 22, -3, -20, -22,
1204 }, {
1205 -32, 2, 47, 42, -7, -5, -21, 18, -9, 12,
1206 5, 5, -2, -8, 10, 4, 14, 42, 38, -10,
1207 -33, -49, -5, -24, 33, 12, 17, 35, -52, -6,
1208 -38, -22, -7, 72, -7, -3, 0, -6, -25, -30,
1209 }, {
1210 -2, -11, 36, -9, -13, -17, -21, 6, 5, 45,
1211 10, 36, 18, -33, -19, -19, 31, 44, 27, 15,
1212 16, -34, 11, -22, 22, 4, 40, 7, -21, 0,
1213 -1, -35, -36, 18, 10, 24, 46, 12, -34, -8,
1214 }, {
1215 -71, 9, 59, 29, 8, -30, -26, 11, -30, 16,
1216 -8, 44, 9, -14, -5, -2, 19, 40, 38, 15,
1217 7, -50, 17, -38, 7, 14, 24, 43, -22, 6,
1218 -22, -19, -17, 34, 2, 20, 23, 10, -39, -16,
1219 }, {
1220 -8, -6, 33, 4, -7, -44, -18, 21, 23, 48,
1221 46, -24, -9, -40, -3, -1, 32, 13, 11, -43,
1222 -7, -14, -3, -15, 26, -3, 21, -26, -50, -8,
1223 0, -16, -27, 34, -25, -23, 43, -17, 6, -1,
1224 }, {
1225 -77, 13, 56, 43, 13, -57, -23, 26, -11, 19,
1226 27, -16, -17, -22, 10, 15, 19, 10, 22, -43,
1227 -16, -30, 2, -31, 11, 6, 5, 9, -52, -2,
1228 -20, 0, -8, 50, -33, -27, 19, -19, 1, -9,
1229 }, {
1230 -47, 0, 45, -7, 7, -69, -23, 13, 2, 51,
1231 32, 14, 3, -47, -19, -8, 37, 11, 10, -16,
1232 32, -15, 19, -29, 0, -1, 28, -18, -20, 4,
1233 16, -13, -38, -3, -15, 0, 66, 0, -7, 13,
1234 }, {
1235 -116, 20, 68, 30, 28, -83, -28, 18, -32, 22,
1236 13, 21, -5, -28, -5, 7, 24, 8, 22, -17,
1237 23, -30, 25, -45, -15, 9, 11, 18, -22, 10,
1238 -4, 2, -19, 12, -23, -3, 43, -2, -12, 4,
1239 }, {
1240 72, -13, -29, -18, 4, 90, 37, -34, 4, -1,
1241 13, -9, -6, 11, 2, 24, -13, 3, -7, -11,
1242 -4, 4, -42, 25, 31, -1, -8, -29, -6, 17,
1243 -19, 2, -10, -6, 38, 22, -42, -19, -6, -11,
1244 }, {
1245 3, 7, -6, 20, 25, 77, 32, -29, -31, -30,
1246 -4, -2, -14, 29, 16, 40, -26, 0, 3, -12,
1247 -13, -10, -36, 9, 15, 8, -24, 6, -7, 22,
1248 -40, 17, 8, 9, 31, 18, -66, -22, -11, -19,
1249 }, {
1250 32, -6, -17, -31, 19, 65, 33, -41, -16, 1,
1251 0, 29, 6, 4, -13, 17, -9, 1, -8, 14,
1252 35, 3, -19, 11, 4, 0, -1, -21, 23, 30,
1253 -3, 5, -20, -44, 48, 46, -19, -3, -20, 3,
1254 }, {
1255 -36, 13, 5, 7, 40, 51, 28, -36, -52, -27,
1256 -18, 36, -2, 22, 0, 33, -21, -2, 3, 13,
1257 26, -11, -14, -4, -10, 10, -18, 14, 22, 36,
1258 -24, 21, -1, -28, 40, 42, -42, -5, -25, -5,
1259 }, {
1260 27, -1, -20, -17, 24, 38, 35, -26, 1, 4,
1261 35, -32, -21, -3, 2, 35, -8, -29, -24, -44,
1262 12, 24, -34, 18, 8, -7, -21, -55, -5, 21,
1263 -2, 23, -11, -28, 13, -1, -22, -33, 21, 10,
1264 }, {
1265 -41, 18, 2, 21, 45, 24, 30, -21, -33, -24,
1266 17, -24, -29, 15, 16, 51, -21, -33, -13, -45,
1267 3, 8, -28, 2, -7, 2, -37, -19, -7, 27,
1268 -22, 39, 7, -12, 5, -5, -45, -35, 15, 1,
1269 }, {
1270 -12, 4, -8, -29, 39, 12, 30, -33, -19, 8,
1271 21, 6, -8, -9, -13, 28, -4, -31, -24, -18,
1272 52, 23, -12, 4, -18, -5, -14, -47, 24, 34,
1273 14, 27, -22, -66, 22, 22, 1, -16, 6, 24,
1274 }, {
1275 -81, 25, 14, 8, 61, 0, 25, -28, -54, -20,
1276 3, 14, -17, 8, 0, 44, -16, -35, -13, -18,
1277 43, 7, -6, -11, -33, 4, -30, -11, 22, 40,
1278 -6, 43, -3, -50, 14, 18, -22, -18, 1, 16,
1279 }, {
1280 77, -2, -11, 1, -7, 47, 52, -5, 29, 33,
1281 1, -28, 0, -15, 28, 26, 2, 30, 0, 2,
1282 -22, 4, -33, -3, 36, -21, 3, -15, -2, 5,
1283 -4, 4, 6, 9, 37, 31, -5, -32, -20, -30,
1284 }, {
1285 8, 17, 10, 40, 13, 34, 47, 0, -5, 4,
1286 -16, -21, -8, 2, 42, 43, -10, 26, 10, 2,
1287 -31, -11, -27, -19, 21, -10, -12, 20, -3, 11,
1288 -25, 20, 25, 25, 29, 28, -28, -34, -25, -38,
1289 }, {
1290 37, 3, 0, -10, 7, 22, 48, -12, 8, 36,
1291 -12, 9, 12, -22, 12, 19, 6, 28, 0, 29,
1292 18, 3, -11, -17, 10, -18, 10, -7, 27, 18,
1293 11, 7, -3, -28, 47, 55, 18, -15, -34, -16,
1294 }, {
1295 -31, 24, 23, 27, 29, 9, 43, -8, -26, 7,
1296 -30, 17, 4, -3, 26, 35, -5, 24, 10, 28,
1297 9, -12, -5, -33, -5, -8, -5, 29, 26, 24,
1298 -9, 23, 14, -12, 39, 52, -5, -18, -39, -24,
1299 }, {
1300 32, 8, -3, 2, 13, -4, 50, 1, 27, 39,
1301 23, -51, -15, -30, 27, 37, 7, -1, -17, -29,
1302 -5, 23, -25, -10, 14, -26, -8, -41, -1, 9,
1303 13, 26, 5, -12, 12, 7, 14, -45, 6, -9,
1304 }, {
1305 -36, 29, 19, 41, 34, -18, 45, 6, -8, 10,
1306 5, -43, -23, -11, 42, 53, -5, -5, -6, -30,
1307 -14, 8, -20, -26, -1, -16, -25, -4, -3, 15,
1308 -7, 41, 23, 3, 4, 3, -8, -48, 1, -17,
1309 }, {
1310 -7, 15, 9, -9, 28, -29, 45, -5, 6, 43,
1311 9, -12, -2, -36, 12, 30, 11, -3, -17, -3,
1312 34, 22, -3, -24, -12, -24, -2, -32, 28, 22,
1313 29, 29, -5, -50, 21, 31, 38, -29, -7, 5,
1314 }, {
1315 -76, 35, 31, 28, 49, -43, 40, 0, -29, 14,
1316 -8, -5, -10, -18, 26, 46, 0, -7, -6, -3,
1317 25, 7, 2, -40, -28, -14, -18, 3, 27, 28,
1318 8, 45, 13, -34, 13, 27, 15, -31, -12, -3,
1319 }, {
1320 74, -17, 0, -31, -18, 73, -5, 0, 3, -5,
1321 25, 12, -3, -1, -22, 3, -9, 33, -12, -24,
1322 6, 2, -33, 9, 21, 5, 20, -27, -19, -7,
1323 -34, -37, -34, 22, 44, 0, -41, -29, -17, -21,
1324 }, {
1325 5, 3, 21, 7, 2, 60, -10, 5, -32, -34,
1326 7, 20, -11, 16, -8, 20, -21, 29, -1, -24,
1327 -2, -13, -27, -6, 5, 15, 3, 8, -21, -1,
1328 -55, -21, -15, 38, 37, -3, -65, -32, -23, -30,
1329 }, {
1330 35, -10, 11, -44, -3, 48, -10, -6, -17, -2,
1331 11, 51, 8, -8, -38, -3, -4, 31, -12, 2,
1332 46, 1, -10, -4, -5, 7, 26, -19, 10, 5,
1333 -18, -34, -45, -15, 54, 24, -18, -13, -31, -7,
1334 }, {
1335 -33, 10, 34, -5, 17, 35, -15, -1, -53, -30,
1336 -6, 59, 0, 10, -24, 13, -17, 27, -1, 1,
1337 37, -13, -4, -20, -20, 18, 10, 16, 8, 11,
1338 -39, -18, -26, 0, 46, 20, -41, -15, -37, -15,
1339 }, {
1340 29, -5, 7, -30, 1, 21, -7, 7, 0, 0,
1341 47, -9, -18, -15, -22, 14, -4, 0, -28, -57,
1342 23, 21, -25, 2, -1, 0, 7, -53, -19, -3,
1343 -17, -15, -36, 0, 19, -24, -21, -43, 9, 0,
1344 }, {
1345 -39, 14, 30, 8, 22, 8, -12, 12, -34, -27,
1346 29, -2, -26, 2, -8, 31, -16, -3, -17, -57,
1347 14, 6, -19, -13, -16, 10, -8, -17, -20, 2,
1348 -38, 0, -17, 16, 11, -27, -44, -45, 4, -8,
1349 }, {
1350 -9, 1, 20, -43, 17, -3, -12, 0, -20, 4,
1351 33, 29, -6, -22, -38, 7, 0, -1, -29, -30,
1352 63, 21, -3, -11, -27, 1, 14, -45, 10, 9,
1353 -1, -12, -47, -37, 28, 0, 2, -26, -4, 13,
1354 }, {
1355 -78, 21, 43, -4, 38, -17, -17, 5, -55, -24,
1356 15, 36, -14, -4, -24, 24, -12, -5, -17, -31,
1357 54, 5, 2, -27, -43, 12, -2, -9, 9, 15,
1358 -22, 3, -28, -21, 20, -3, -20, -28, -9, 5,
1359 }, {
1360 80, -6, 16, -11, -30, 30, 9, 28, 28, 29,
1361 13, -6, 2, -28, 3, 5, 7, 60, -5, -9,
1362 -11, 1, -24, -19, 27, -13, 32, -13, -15, -19,
1363 -19, -35, -17, 39, 43, 9, -4, -42, -32, -41,
1364 }, {
1365 11, 14, 39, 27, -9, 17, 4, 33, -6, 0,
1366 -4, 1, -5, -10, 17, 22, -5, 57, 5, -9,
1367 -20, -13, -18, -35, 11, -3, 16, 22, -17, -13,
1368 -40, -19, 1, 55, 35, 5, -27, -44, -37, -49,
1369 }, {
1370 40, 0, 28, -24, -14, 5, 4, 21, 7, 33,
1371 0, 32, 15, -35, -12, -1, 11, 58, -5, 16,
1372 28, 0, -1, -33, 0, -11, 39, -5, 14, -6,
1373 -3, -31, -28, 1, 53, 33, 19, -25, -46, -26,
1374 }, {
1375 -28, 20, 51, 14, 6, -7, 0, 26, -27, 4,
1376 -18, 40, 6, -16, 1, 15, 0, 55, 5, 16,
1377 19, -14, 3, -49, -14, -1, 22, 30, 12, 0,
1378 -24, -15, -9, 17, 45, 29, -4, -28, -51, -35,
1379 }, {
1380 34, 4, 25, -10, -9, -21, 7, 36, 26, 36,
1381 35, -28, -12, -42, 3, 16, 12, 28, -21, -42,
1382 5, 21, -16, -26, 4, -19, 19, -39, -15, -15,
1383 -1, -13, -19, 17, 17, -14, 15, -55, -4, -19,
1384 }, {
1385 -34, 25, 48, 28, 11, -34, 2, 41, -9, 7,
1386 17, -21, -20, -24, 17, 33, 0, 24, -10, -42,
1387 -3, 5, -10, -42, -11, -8, 3, -3, -16, -9,
1388 -22, 2, 0, 33, 10, -18, -7, -58, -10, -28,
1389 }, {
1390 -4, 11, 37, -23, 5, -46, 2, 29, 5, 39,
1391 21, 9, 0, -49, -12, 9, 16, 26, -22, -15,
1392 45, 20, 5, -40, -22, -17, 26, -31, 14, -2,
1393 14, -10, -30, -20, 27, 9, 39, -39, -18, -5,
1394 }, {
1395 -73, 32, 60, 15, 26, -59, -2, 33, -30, 10,
1396 3, 17, -8, -30, 1, 26, 4, 22, -10, -16,
1397 36, 5, 11, -56, -37, -6, 10, 5, 13, 3,
1398 -6, 5, -11, -4, 19, 5, 16, -41, -24, -13
1399 }
1400 };
1401
1403 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
1404 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
1405 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
1406 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
1407 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
1408 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
1409 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
1410 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
1411 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
1412 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
1413 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
1414 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
1415 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
1416 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
1417 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
1418 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
1419 };
1420
1422 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
1423 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
1424 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
1425 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
1426 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
1427 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
1428 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
1429 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
1430 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
1431 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
1432 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
1433 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
1434 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
1435 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
1436 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
1437 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
1438 };
1439
1441 0, 16, 20, 25, 32, 41, 51, 65,
1442 81, 103, 129, 163, 205, 259, 326, 410,
1443 516, 650, 819, 1031, 1298, 1634, 2057, 2590,
1444 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345
1445 };
1446
1448 -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879,
1449 -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631,
1450 -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268,
1451 -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676,
1452 -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660,
1453 -1508, -1348, -1185, -994, -798, -600, -374, -110,
1454 152, 447, 720, 982, 1229, 1456, 1682, 1916,
1455 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814
1456 };
1457
1459 -3091, -2386, -1871, -1425, -1021, -649, -316, -20,
1460 267, 544, 810, 1065, 1305, 1534, 1756, 1970,
1461 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263,
1462 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020
1463 };
1464
1466 -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149,
1467 -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876,
1468 -721, -561, -394, -228, -54, 119, 296, 484,
1469 683, 895, 1123, 1373, 1651, 1965, 2360, 2854
1470 };
1471
1473 -1845, -1057, -522, -77, 301, 647, 975, 1285,
1474 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569
1475 };
1476
1478 -2691, -2187, -1788, -1435, -1118, -837, -571, -316,
1479 -59, 201, 470, 759, 1077, 1457, 1908, 2495
1480 };
1481
1483 -1372, -474, 133, 632, 1100, 1571, 2075, 2672
1484 };
1485
1487 -2389, -1787, -1231, -717, -239, 234, 770, 1474
1488 };
1489
1491 -1569, -864, -296, 200, 670, 1151, 1709, 2385
1492 };
1493
1495 -2200, -1608, -1062, -569, -120, 338, 863, 1621
1496 };
1497
1499 -617, 190, 802, 1483
1500 };
1501
1505 };
1506
1507 static void add_wav(int16_t *dest,
int n,
int skip_first,
int *
m,
1508 const int16_t *
s1,
const int8_t *
s2,
const int8_t *
s3)
1509 {
1510 int i;
1512
1513 v[0] = 0;
1514 for (i=!skip_first; i<3; i++)
1516
1517 if (v[0]) {
1519 dest[i] = (s1[i]*v[0] + s2[i]*v[1] + s3[i]*v[2]) >> 12;
1520 } else {
1522 dest[i] = ( s2[i]*v[1] + s3[i]*v[2]) >> 12;
1523 }
1524 }
1525
1526 /**
1527 * Copy the last offset values of *source to *target. If those values are not
1528 * enough to fill the target buffer, fill it with another copy of those values.
1529 */
1531 {
1533
1534 memcpy(target, source,
FFMIN(
BLOCKSIZE, offset)*
sizeof(*target));
1536 memcpy(target + offset, source, (
BLOCKSIZE - offset)*
sizeof(*target));
1537 }
1538
1539 /**
1540 * Evaluate the reflection coefficients from the filter coefficients.
1541 *
1542 * @return 1 if one of the reflection coefficients is greater than
1543 * 4095, 0 if not.
1544 */
1546 {
1550 int *bp1 = buffer1;
1551 int *bp2 = buffer2;
1552
1554 buffer2[i] = coefs[i];
1555
1556 refl[LPC_ORDER-1] = bp2[LPC_ORDER-1];
1557
1558 if ((unsigned) bp2[LPC_ORDER-1] + 0x1000 > 0x1fff) {
1560 return 1;
1561 }
1562
1563 for (i = LPC_ORDER-2; i >= 0; i--) {
1564 b = 0x1000-((bp2[i+1] * bp2[i+1]) >> 12);
1565
1566 if (!b)
1567 b = -2;
1568
1570 for (j=0; j <= i; j++) {
1571 #if CONFIG_FTRAPV
1572 int a = bp2[j] - ((refl[i+1] * bp2[i-j]) >> 12);
1573 if((int)(a*(unsigned)b) != a*(int64_t)b)
1574 return 1;
1575 #endif
1576 bp1[j] = ((bp2[j] - ((refl[i+1] * bp2[i-j]) >> 12)) * b) >> 12;
1577 }
1578
1579 if ((unsigned) bp1[i] + 0x1000 > 0x1fff)
1580 return 1;
1581
1582 refl[i] = bp1[i];
1583
1585 }
1586 return 0;
1587 }
1588
1589 /**
1590 * Evaluate the LPC filter coefficients from the reflection coefficients.
1591 * Does the inverse of the ff_eval_refl() function.
1592 */
1594 {
1597 int *b2 = coefs;
1598 int i, j;
1599
1601 b1[i] = refl[i] << 4;
1602
1603 for (j=0; j < i; j++)
1604 b1[j] = ((refl[i] * b2[i-j-1]) >> 12) + b2[j];
1605
1607 }
1608
1610 coefs[i] >>= 4;
1611 }
1612
1614 {
1615 int i;
1616
1618 *out++ = *inp++;
1619 }
1620
1621 /**
1622 * Evaluate sqrt(x << 24). x must fit in 20 bits. This value is evaluated in an
1623 * odd way to make the output identical to the binary decoder.
1624 */
1626 {
1628 while (x > 0xfff) {
1629 s++;
1630 x >>= 2;
1631 }
1632
1634 }
1635
1637 {
1638 int i;
1639 unsigned int res = 0x10000;
1641
1643 res = (((0x1000000 - data[i]*data[i]) >> 12) * res) >> 12;
1644
1645 if (res == 0)
1646 return 0;
1647
1648 while (res <= 0x3fff) {
1649 b++;
1650 res <<= 2;
1651 }
1652 }
1653
1655 }
1656
1658 {
1661 int i;
1662
1663 // Interpolate block coefficients from the this frame's forth block and
1664 // last frame's forth block.
1667
1669 // The interpolated coefficients are unstable, copy either new or old
1670 // coefficients.
1673 } else {
1675 }
1676 }
1677
1679 {
1680 return (rms * energy) >> 10;
1681 }
1682
1683 /** inverse root mean square */
1685 {
1687
1688 if (sum == 0)
1689 return 0; /* OOPS - division by zero */
1690
1691 return 0x20000000 / (
ff_t_sqrt(sum) >> 8);
1692 }
1693
1695 int cba_idx, int cb1_idx, int cb2_idx,
1696 int gval, int gain)
1697 {
1700
1701 if (cba_idx) {
1705 } else {
1706 m[0] = 0;
1707 }
1712
1714
1717
1720
1722 block, BLOCKSIZE,
LPC_ORDER, 1, 0, 0xfff))
1724 }
int32_t(* scalarproduct_int16)(const int16_t *v1, const int16_t *v2, int len)
Calculate scalar product of two vectors.
int ff_t_sqrt(unsigned int x)
Evaluate sqrt(x << 24).
const int16_t *const ff_lpc_refl_cb[10]
ptrdiff_t const GLvoid * data
static const int16_t lpc_refl_cb7[8]
int ff_celp_lp_synthesis_filter(int16_t *out, const int16_t *filter_coeffs, const int16_t *in, int buffer_length, int filter_length, int stop_on_overflow, int shift, int rounder)
LP synthesis filter.
int16_t adapt_cb[146+2]
Adaptive codebook, its size is two units bigger to avoid a buffer overflow.
#define NBLOCKS
number of subblocks within a block
static const int16_t lpc_refl_cb10[4]
unsigned int lpc_refl_rms[2]
unsigned int ff_rms(const int *data)
const uint16_t ff_cb2_base[128]
void ff_subblock_synthesis(RA144Context *ractx, const int16_t *lpc_coefs, int cba_idx, int cb1_idx, int cb2_idx, int gval, int gain)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
unsigned int * lpc_coef[2]
LPC coefficients: lpc_coef[0] is the coefficients of the current frame and lpc_coef[1] of the previou...
const int8_t ff_cb1_vects[128][40]
static const uint8_t offset[127][2]
Libavcodec external API header.
static const int16_t lpc_refl_cb8[8]
static const int16_t lpc_refl_cb1[64]
int ff_interp(RA144Context *ractx, int16_t *out, int a, int copyold, int energy)
void ff_copy_and_dup(int16_t *target, const int16_t *source, int offset)
Copy the last offset values of *source to *target.
void ff_int_to_int16(int16_t *out, const int *inp)
const int16_t ff_gain_val_tab[256][3]
static const int16_t lpc_refl_cb5[16]
static const int16_t lpc_refl_cb6[8]
#define BLOCKSIZE
subblock size in 16-bit words
void ff_eval_coefs(int *coefs, const int *refl)
Evaluate the LPC filter coefficients from the reflection coefficients.
main external API structure.
static const int16_t lpc_refl_cb9[8]
static const int16_t lpc_refl_cb2[32]
int16_t buffer_a[FFALIGN(BLOCKSIZE, 16)]
int ff_eval_refl(int *refl, const int16_t *coefs, AVCodecContext *avctx)
Evaluate the reflection coefficients from the filter coefficients.
#define BUFFERSIZE
the size of the adaptive codebook
unsigned int ff_rescale_rms(unsigned int rms, unsigned int energy)
const int8_t ff_cb2_vects[128][40]
const int16_t ff_energy_tab[32]
static const int16_t lpc_refl_cb3[32]
const uint8_t ff_gain_exp_tab[256]
int16_t curr_sblock[50]
The current subblock padded by the last 10 values of the previous one.
static void add_wav(int16_t *dest, int n, int skip_first, int *m, const int16_t *s1, const int8_t *s2, const int8_t *s3)
static const int16_t lpc_refl_cb4[16]
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(constuint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(constuint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(constint16_t *) pi >>8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(constint16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(constint16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(constint32_t *) pi >>24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(constint32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(constint32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(constfloat *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(constfloat *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(constfloat *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(constdouble *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(constdouble *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(constdouble *) pi *(1U<< 31))))#defineSET_CONV_FUNC_GROUP(ofmt, ifmt) staticvoidset_generic_function(AudioConvert *ac){}voidff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enumAVSampleFormatout_fmt, enumAVSampleFormatin_fmt, intchannels, intsample_rate, intapply_map){AudioConvert *ac;intin_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) returnNULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt)>2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);returnNULL;}returnac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}elseif(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;elseac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);returnac;}intff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){intuse_generic=1;intlen=in->nb_samples;intp;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%dsamples-audio_convert:%sto%s(dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));returnff_convert_dither(ac-> out
const uint16_t ff_cb1_base[128]
#define FFSWAP(type, a, b)
int ff_irms(AudioDSPContext *adsp, const int16_t *data)
inverse root mean square