mostly working ITU H.264 decoder
[nihav.git] / nihav-itu / src / codecs / h264 / cabac_coder.rs
1 use nihav_core::codecs::{DecoderResult, DecoderError};
2 use super::slice::SliceType;
3
4 const NUM_CABAC_CONTEXTS: usize = 1024;
5
6 pub struct CABAC<'a> {
7 pub src: &'a [u8],
8 pub pos: usize,
9 states: [u8; NUM_CABAC_CONTEXTS], // top bit - MPS, the rest is state index
10
11 cod_range: u16,
12 cod_offset: u16,
13 bitbuf: u16,
14 bits: u8,
15 }
16
17
18 impl<'a> CABAC<'a> {
19 fn calc_state(qp: u8, m: i8, n: i8) -> u8 {
20 let pre_ctx_state = (((i16::from(m) * i16::from(qp)) >> 4) + i16::from(n)).max(1).min(126) as u8;
21 if pre_ctx_state < 64 {
22 63 - pre_ctx_state
23 } else {
24 (pre_ctx_state - 64) | 0x80
25 }
26 }
27 fn calc_range(qp: u8, idx: usize, states: &mut [u8], start: usize, end: usize) {
28 for (state, &mn) in states[start..=end].iter_mut().zip(CTX_PARAMS[idx][start..=end].iter()) {
29 *state = Self::calc_state(qp, mn[0], mn[1]);
30 }
31 }
32 pub fn new(src: &'a [u8], slice_type: SliceType, slice_qp: u8, cabac_init_idc: usize) -> DecoderResult<Self> {
33 let mut states = [0; NUM_CABAC_CONTEXTS];
34 let idx = if slice_type.is_intra() { 0 } else { cabac_init_idc + 1 };
35 Self::calc_range(slice_qp, idx, &mut states, 60, 63);
36 Self::calc_range(slice_qp, idx, &mut states, 64, 67);
37 Self::calc_range(slice_qp, idx, &mut states, 68, 68);
38 Self::calc_range(slice_qp, idx, &mut states, 69, 69);
39 Self::calc_range(slice_qp, idx, &mut states, 70, 72);
40 Self::calc_range(slice_qp, idx, &mut states, 73, 76);
41 Self::calc_range(slice_qp, idx, &mut states, 77, 84);
42 Self::calc_range(slice_qp, idx, &mut states, 85, 104);
43 Self::calc_range(slice_qp, idx, &mut states, 105, 165);
44 Self::calc_range(slice_qp, idx, &mut states, 166, 226);
45 Self::calc_range(slice_qp, idx, &mut states, 227, 275);
46 Self::calc_range(slice_qp, idx, &mut states, 277, 337);
47 Self::calc_range(slice_qp, idx, &mut states, 338, 398);
48 Self::calc_range(slice_qp, idx, &mut states, 399, 401);
49 Self::calc_range(slice_qp, idx, &mut states, 402, 416);
50 Self::calc_range(slice_qp, idx, &mut states, 417, 425);
51 Self::calc_range(slice_qp, idx, &mut states, 426, 435);
52 match slice_type {
53 SliceType::I => {
54 Self::calc_range(slice_qp, idx, &mut states, 3, 10);
55 },
56 SliceType::SI => {
57 Self::calc_range(slice_qp, idx, &mut states, 0, 10);
58 },
59 SliceType::P | SliceType::SP => {
60 Self::calc_range(slice_qp, idx, &mut states, 11, 13);
61 Self::calc_range(slice_qp, idx, &mut states, 14, 20);
62 Self::calc_range(slice_qp, idx, &mut states, 21, 23);
63 Self::calc_range(slice_qp, idx, &mut states, 40, 46);
64 Self::calc_range(slice_qp, idx, &mut states, 47, 53);
65 Self::calc_range(slice_qp, idx, &mut states, 54, 59);
66 },
67 SliceType::B => {
68 Self::calc_range(slice_qp, idx, &mut states, 24, 26);
69 Self::calc_range(slice_qp, idx, &mut states, 27, 35);
70 Self::calc_range(slice_qp, idx, &mut states, 36, 39);
71 Self::calc_range(slice_qp, idx, &mut states, 40, 46);
72 Self::calc_range(slice_qp, idx, &mut states, 47, 53);
73 Self::calc_range(slice_qp, idx, &mut states, 54, 59);
74 },
75 }
76
77 let mut ctx = Self {
78 src,
79 pos: 0,
80 states,
81 cod_range: 0,
82 cod_offset: 0,
83 bitbuf: 0,
84 bits: 0,
85 };
86 ctx.reinit()?;
87 Ok(ctx)
88 }
89 pub fn reinit(&mut self) -> DecoderResult<()> {
90 self.bitbuf = 0;
91 self.bits = 0;
92 self.refill();
93 self.refill();
94 self.cod_range = 0x1FE;
95 self.cod_offset = self.bitbuf >> 7;
96 validate!(self.cod_offset < self.cod_range);
97 self.bitbuf <<= 9;
98 self.bits -= 9;
99 Ok(())
100 }
101 pub fn decode_bypass(&mut self) -> bool {
102 if self.bits == 0 {
103 self.refill();
104 }
105 self.cod_offset <<= 1;
106 self.cod_offset |= self.bitbuf >> 15;
107 self.bitbuf <<= 1;
108 self.bits -= 1;
109 if self.cod_offset >= self.cod_range {
110 self.cod_offset -= self.cod_range;
111 true
112 } else {
113 false
114 }
115 }
116 pub fn decode_bypass_bits(&mut self, nbits: u8) -> u32 {
117 let mut val = 0;
118 for _ in 0..nbits {
119 val = (val << 1) | (self.decode_bypass() as u32)
120 }
121 val
122 }
123 pub fn decode_terminate(&mut self) -> bool {
124 self.cod_range -= 2;
125 if self.cod_offset >= self.cod_range {
126 true
127 } else {
128 self.renorm();
129 false
130 }
131 }
132 pub fn decode_bit(&mut self, idx: usize) -> bool {
133 let mut val_mps = (self.states[idx] & 0x80) != 0;
134 let state_idx = (self.states[idx] & 0x7F) as usize;
135 let range_idx = ((self.cod_range >> 6) & 3) as usize;
136 let range_lps = u16::from(RANGE_TBL_LPS[range_idx + state_idx * 4]);
137 self.cod_range -= range_lps;
138 let bit = if self.cod_offset >= self.cod_range {
139 self.cod_offset -= self.cod_range;
140 self.cod_range = range_lps;
141 !val_mps
142 } else {
143 val_mps
144 };
145 self.states[idx] = if bit == val_mps {
146 TRANS_IDX_MPS[state_idx]
147 } else {
148 if state_idx == 0 {
149 val_mps = !val_mps;
150 }
151 TRANS_IDX_LPS[state_idx]
152 } + (if val_mps { 0x80 } else { 0 });
153 self.renorm();
154 bit
155 }
156 pub fn decode_bits(&mut self, mut start: usize, maxidx: usize, len: usize) -> u8 {
157 let mut val = 0;
158 for _ in 0..len {
159 val <<= 1;
160 if self.decode_bit(start) {
161 val |= 1;
162 }
163 if start < maxidx {
164 start += 1;
165 }
166 }
167 val
168 }
169 pub fn decode_012(&mut self, start: usize) -> u8 {
170 if !self.decode_bit(start) {
171 0
172 } else {
173 self.decode_bit(start + 1) as u8 + 1
174 }
175 }
176 fn refill(&mut self) {
177 if self.pos < self.src.len() {
178 self.bitbuf |= u16::from(self.src[self.pos]) << (8 - self.bits);
179 self.pos += 1;
180 }
181 self.bits += 8;
182 }
183 fn renorm(&mut self) {
184 let shift = (self.cod_range.leading_zeros() - 7) as u8;
185 if shift > 0 {
186 if self.bits < shift {
187 self.refill();
188 }
189 self.cod_range <<= shift;
190 self.cod_offset <<= shift;
191 self.cod_offset |= u16::from(self.bitbuf >> (16 - shift));
192 self.bitbuf <<= shift;
193 self.bits -= shift;
194 }
195 }
196 }
197
198 const RANGE_TBL_LPS: [u8; 64 * 4] = [
199 128, 176, 208, 240,
200 128, 167, 197, 227,
201 128, 158, 187, 216,
202 123, 150, 178, 205,
203 116, 142, 169, 195,
204 111, 135, 160, 185,
205 105, 128, 152, 175,
206 100, 122, 144, 166,
207 95, 116, 137, 158,
208 90, 110, 130, 150,
209 85, 104, 123, 142,
210 81, 99, 117, 135,
211 77, 94, 111, 128,
212 73, 89, 105, 122,
213 69, 85, 100, 116,
214 66, 80, 95, 110,
215 62, 76, 90, 104,
216 59, 72, 86, 99,
217 56, 69, 81, 94,
218 53, 65, 77, 89,
219 51, 62, 73, 85,
220 48, 59, 69, 80,
221 46, 56, 66, 76,
222 43, 53, 63, 72,
223 41, 50, 59, 69,
224 39, 48, 56, 65,
225 37, 45, 54, 62,
226 35, 43, 51, 59,
227 33, 41, 48, 56,
228 32, 39, 46, 53,
229 30, 37, 43, 50,
230 29, 35, 41, 48,
231 27, 33, 39, 45,
232 26, 31, 37, 43,
233 24, 30, 35, 41,
234 23, 28, 33, 39,
235 22, 27, 32, 37,
236 21, 26, 30, 35,
237 20, 24, 29, 33,
238 19, 23, 27, 31,
239 18, 22, 26, 30,
240 17, 21, 25, 28,
241 16, 20, 23, 27,
242 15, 19, 22, 25,
243 14, 18, 21, 24,
244 14, 17, 20, 23,
245 13, 16, 19, 22,
246 12, 15, 18, 21,
247 12, 14, 17, 20,
248 11, 14, 16, 19,
249 11, 13, 15, 18,
250 10, 12, 15, 17,
251 10, 12, 14, 16,
252 9, 11, 13, 15,
253 9, 11, 12, 14,
254 8, 10, 12, 14,
255 8, 9, 11, 13,
256 7, 9, 11, 12,
257 7, 9, 10, 12,
258 7, 8, 10, 11,
259 6, 8, 9, 11,
260 6, 7, 9, 10,
261 6, 7, 8, 9,
262 2, 2, 2, 2
263 ];
264 const TRANS_IDX_MPS: [u8; 64] = [
265 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
266 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
267 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
268 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 62, 63
269 ];
270 const TRANS_IDX_LPS: [u8; 64] = [
271 0, 0, 1, 2, 2, 4, 4, 5, 6, 7, 8, 9, 9, 11, 11, 12,
272 13, 13, 15, 15, 16, 16, 18, 18, 19, 19, 21, 21, 22, 22, 23, 24,
273 24, 25, 26, 26, 27, 27, 28, 29, 29, 30, 30, 30, 31, 32, 32, 33,
274 33, 33, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 63
275 ];
276
277 const CTX_PARAMS: [[[i8; 2]; NUM_CABAC_CONTEXTS]; 4] = [
278 [
279 [ 20, -15], [ 2, 54], [ 3, 74], [ 20, -15],
280 [ 2, 54], [ 3, 74], [-28, 127], [-23, 104],
281 [ -6, 53], [ -1, 54], [ 7, 51], [ 0, 0],
282 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
283 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
284 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
285 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
286 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
287 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
288 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
289 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
290 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
291 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
292 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
293 [ 0, 0], [ 0, 0], [ 0, 0], [ 0, 0],
294 [ 0, 41], [ 0, 63], [ 0, 63], [ 0, 63],
295 [ -9, 83], [ 4, 86], [ 0, 97], [ -7, 72],
296 [ 13, 41], [ 3, 62], [ 0, 11], [ 1, 55],
297 [ 0, 69], [-17, 127], [-13, 102], [ 0, 82],
298 [ -7, 74], [-21, 107], [-27, 127], [-31, 127],
299 [-24, 127], [-18, 95], [-27, 127], [-21, 114],
300 [-30, 127], [-17, 123], [-12, 115], [-16, 122],
301 [-11, 115], [-12, 63], [ -2, 68], [-15, 84],
302 [-13, 104], [ -3, 70], [ -8, 93], [-10, 90],
303 [-30, 127], [ -1, 74], [ -6, 97], [ -7, 91],
304 [-20, 127], [ -4, 56], [ -5, 82], [ -7, 76],
305 [-22, 125], [ -7, 93], [-11, 87], [ -3, 77],
306 [ -5, 71], [ -4, 63], [ -4, 68], [-12, 84],
307 [ -7, 62], [ -7, 65], [ 8, 61], [ 5, 56],
308 [ -2, 66], [ 1, 64], [ 0, 61], [ -2, 78],
309 [ 1, 50], [ 7, 52], [ 10, 35], [ 0, 44],
310 [ 11, 38], [ 1, 45], [ 0, 46], [ 5, 44],
311 [ 31, 17], [ 1, 51], [ 7, 50], [ 28, 19],
312 [ 16, 33], [ 14, 62], [-13, 108], [-15, 100],
313 [-13, 101], [-13, 91], [-12, 94], [-10, 88],
314 [-16, 84], [-10, 86], [ -7, 83], [-13, 87],
315 [-19, 94], [ 1, 70], [ 0, 72], [ -5, 74],
316 [ 18, 59], [ -8, 102], [-15, 100], [ 0, 95],
317 [ -4, 75], [ 2, 72], [-11, 75], [ -3, 71],
318 [ 15, 46], [-13, 69], [ 0, 62], [ 0, 65],
319 [ 21, 37], [-15, 72], [ 9, 57], [ 16, 54],
320 [ 0, 62], [ 12, 72], [ 24, 0], [ 15, 9],
321 [ 8, 25], [ 13, 18], [ 15, 9], [ 13, 19],
322 [ 10, 37], [ 12, 18], [ 6, 29], [ 20, 33],
323 [ 15, 30], [ 4, 45], [ 1, 58], [ 0, 62],
324 [ 7, 61], [ 12, 38], [ 11, 45], [ 15, 39],
325 [ 11, 42], [ 13, 44], [ 16, 45], [ 12, 41],
326 [ 10, 49], [ 30, 34], [ 18, 42], [ 10, 55],
327 [ 17, 51], [ 17, 46], [ 0, 89], [ 26, -19],
328 [ 22, -17], [ 26, -17], [ 30, -25], [ 28, -20],
329 [ 33, -23], [ 37, -27], [ 33, -23], [ 40, -28],
330 [ 38, -17], [ 33, -11], [ 40, -15], [ 41, -6],
331 [ 38, 1], [ 41, 17], [ 30, -6], [ 27, 3],
332 [ 26, 22], [ 37, -16], [ 35, -4], [ 38, -8],
333 [ 38, -3], [ 37, 3], [ 38, 5], [ 42, 0],
334 [ 35, 16], [ 39, 22], [ 14, 48], [ 27, 37],
335 [ 21, 60], [ 12, 68], [ 2, 97], [ -3, 71],
336 [ -6, 42], [ -5, 50], [ -3, 54], [ -2, 62],
337 [ 0, 58], [ 1, 63], [ -2, 72], [ -1, 74],
338 [ -9, 91], [ -5, 67], [ -5, 27], [ -3, 39],
339 [ -2, 44], [ 0, 46], [-16, 64], [ -8, 68],
340 [-10, 78], [ -6, 77], [-10, 86], [-12, 92],
341 [-15, 55], [-10, 60], [ -6, 62], [ -4, 65],
342 [-12, 73], [ -8, 76], [ -7, 80], [ -9, 88],
343 [-17, 110], [-11, 97], [-20, 84], [-11, 79],
344 [ -6, 73], [ -4, 74], [-13, 86], [-13, 96],
345 [-11, 97], [-19, 117], [ -8, 78], [ -5, 33],
346 [ -4, 48], [ -2, 53], [ -3, 62], [-13, 71],
347 [-10, 79], [-12, 86], [-13, 90], [-14, 97],
348 [ 0, 0], [ -6, 93], [ -6, 84], [ -8, 79],
349 [ 0, 66], [ -1, 71], [ 0, 62], [ -2, 60],
350 [ -2, 59], [ -5, 75], [ -3, 62], [ -4, 58],
351 [ -9, 66], [ -1, 79], [ 0, 71], [ 3, 68],
352 [ 10, 44], [ -7, 62], [ 15, 36], [ 14, 40],
353 [ 16, 27], [ 12, 29], [ 1, 44], [ 20, 36],
354 [ 18, 32], [ 5, 42], [ 1, 48], [ 10, 62],
355 [ 17, 46], [ 9, 64], [-12, 104], [-11, 97],
356 [-16, 96], [ -7, 88], [ -8, 85], [ -7, 85],
357 [ -9, 85], [-13, 88], [ 4, 66], [ -3, 77],
358 [ -3, 76], [ -6, 76], [ 10, 58], [ -1, 76],
359 [ -1, 83], [ -7, 99], [-14, 95], [ 2, 95],
360 [ 0, 76], [ -5, 74], [ 0, 70], [-11, 75],
361 [ 1, 68], [ 0, 65], [-14, 73], [ 3, 62],
362 [ 4, 62], [ -1, 68], [-13, 75], [ 11, 55],
363 [ 5, 64], [ 12, 70], [ 15, 6], [ 6, 19],
364 [ 7, 16], [ 12, 14], [ 18, 13], [ 13, 11],
365 [ 13, 15], [ 15, 16], [ 12, 23], [ 13, 23],
366 [ 15, 20], [ 14, 26], [ 14, 44], [ 17, 40],
367 [ 17, 47], [ 24, 17], [ 21, 21], [ 25, 22],
368 [ 31, 27], [ 22, 29], [ 19, 35], [ 14, 50],
369 [ 10, 57], [ 7, 63], [ -2, 77], [ -4, 82],
370 [ -3, 94], [ 9, 69], [-12, 109], [ 36, -35],
371 [ 36, -34], [ 32, -26], [ 37, -30], [ 44, -32],
372 [ 34, -18], [ 34, -15], [ 40, -15], [ 33, -7],
373 [ 35, -5], [ 33, 0], [ 38, 2], [ 33, 13],
374 [ 23, 35], [ 13, 58], [ 29, -3], [ 26, 0],
375 [ 22, 30], [ 31, -7], [ 35, -15], [ 34, -3],
376 [ 34, 3], [ 36, -1], [ 34, 5], [ 32, 11],
377 [ 35, 5], [ 34, 12], [ 39, 11], [ 30, 29],
378 [ 34, 26], [ 29, 39], [ 19, 66], [ 31, 21],
379 [ 31, 31], [ 25, 50], [-17, 120], [-20, 112],
380 [-18, 114], [-11, 85], [-15, 92], [-14, 89],
381 [-26, 71], [-15, 81], [-14, 80], [ 0, 68],
382 [-14, 70], [-24, 56], [-23, 68], [-24, 50],
383 [-11, 74], [ 23, -13], [ 26, -13], [ 40, -15],
384 [ 49, -14], [ 44, 3], [ 45, 6], [ 44, 34],
385 [ 33, 54], [ 19, 82], [ -3, 75], [ -1, 23],
386 [ 1, 34], [ 1, 43], [ 0, 54], [ -2, 55],
387 [ 0, 61], [ 1, 64], [ 0, 68], [ -9, 92],
388 [-14, 106], [-13, 97], [-15, 90], [-12, 90],
389 [-18, 88], [-10, 73], [ -9, 79], [-14, 86],
390 [-10, 73], [-10, 70], [-10, 69], [ -5, 66],
391 [ -9, 64], [ -5, 58], [ 2, 59], [ 21, -10],
392 [ 24, -11], [ 28, -8], [ 28, -1], [ 29, 3],
393 [ 29, 9], [ 35, 20], [ 29, 36], [ 14, 67],
394 [-17, 123], [-12, 115], [-16, 122], [-11, 115],
395 [-12, 63], [ -2, 68], [-15, 84], [-13, 104],
396 [ -3, 70], [ -8, 93], [-10, 90], [-30, 127],
397 [-17, 123], [-12, 115], [-16, 122], [-11, 115],
398 [-12, 63], [ -2, 68], [-15, 84], [-13, 104],
399 [ -3, 70], [ -8, 93], [-10, 90], [-30, 127],
400 [ -7, 93], [-11, 87], [ -3, 77], [ -5, 71],
401 [ -4, 63], [ -4, 68], [-12, 84], [ -7, 62],
402 [ -7, 65], [ 8, 61], [ 5, 56], [ -2, 66],
403 [ 1, 64], [ 0, 61], [ -2, 78], [ 1, 50],
404 [ 7, 52], [ 10, 35], [ 0, 44], [ 11, 38],
405 [ 1, 45], [ 0, 46], [ 5, 44], [ 31, 17],
406 [ 1, 51], [ 7, 50], [ 28, 19], [ 16, 33],
407 [ 14, 62], [-13, 108], [-15, 100], [-13, 101],
408 [-13, 91], [-12, 94], [-10, 88], [-16, 84],
409 [-10, 86], [ -7, 83], [-13, 87], [-19, 94],
410 [ 1, 70], [ 0, 72], [ -5, 74], [ 18, 59],
411 [ -7, 93], [-11, 87], [ -3, 77], [ -5, 71],
412 [ -4, 63], [ -4, 68], [-12, 84], [ -7, 62],
413 [ -7, 65], [ 8, 61], [ 5, 56], [ -2, 66],
414 [ 1, 64], [ 0, 61], [ -2, 78], [ 1, 50],
415 [ 7, 52], [ 10, 35], [ 0, 44], [ 11, 38],
416 [ 1, 45], [ 0, 46], [ 5, 44], [ 31, 17],
417 [ 1, 51], [ 7, 50], [ 28, 19], [ 16, 33],
418 [ 14, 62], [-13, 108], [-15, 100], [-13, 101],
419 [-13, 91], [-12, 94], [-10, 88], [-16, 84],
420 [-10, 86], [ -7, 83], [-13, 87], [-19, 94],
421 [ 1, 70], [ 0, 72], [ -5, 74], [ 18, 59],
422 [ 24, 0], [ 15, 9], [ 8, 25], [ 13, 18],
423 [ 15, 9], [ 13, 19], [ 10, 37], [ 12, 18],
424 [ 6, 29], [ 20, 33], [ 15, 30], [ 4, 45],
425 [ 1, 58], [ 0, 62], [ 7, 61], [ 12, 38],
426 [ 11, 45], [ 15, 39], [ 11, 42], [ 13, 44],
427 [ 16, 45], [ 12, 41], [ 10, 49], [ 30, 34],
428 [ 18, 42], [ 10, 55], [ 17, 51], [ 17, 46],
429 [ 0, 89], [ 26, -19], [ 22, -17], [ 26, -17],
430 [ 30, -25], [ 28, -20], [ 33, -23], [ 37, -27],
431 [ 33, -23], [ 40, -28], [ 38, -17], [ 33, -11],
432 [ 40, -15], [ 41, -6], [ 38, 1], [ 41, 17],
433 [ 24, 0], [ 15, 9], [ 8, 25], [ 13, 18],
434 [ 15, 9], [ 13, 19], [ 10, 37], [ 12, 18],
435 [ 6, 29], [ 20, 33], [ 15, 30], [ 4, 45],
436 [ 1, 58], [ 0, 62], [ 7, 61], [ 12, 38],
437 [ 11, 45], [ 15, 39], [ 11, 42], [ 13, 44],
438 [ 16, 45], [ 12, 41], [ 10, 49], [ 30, 34],
439 [ 18, 42], [ 10, 55], [ 17, 51], [ 17, 46],
440 [ 0, 89], [ 26, -19], [ 22, -17], [ 26, -17],
441 [ 30, -25], [ 28, -20], [ 33, -23], [ 37, -27],
442 [ 33, -23], [ 40, -28], [ 38, -17], [ 33, -11],
443 [ 40, -15], [ 41, -6], [ 38, 1], [ 41, 17],
444 [-17, 120], [-20, 112], [-18, 114], [-11, 85],
445 [-15, 92], [-14, 89], [-26, 71], [-15, 81],
446 [-14, 80], [ 0, 68], [-14, 70], [-24, 56],
447 [-23, 68], [-24, 50], [-11, 74], [-14, 106],
448 [-13, 97], [-15, 90], [-12, 90], [-18, 88],
449 [-10, 73], [ -9, 79], [-14, 86], [-10, 73],
450 [-10, 70], [-10, 69], [ -5, 66], [ -9, 64],
451 [ -5, 58], [ 2, 59], [ 23, -13], [ 26, -13],
452 [ 40, -15], [ 49, -14], [ 44, 3], [ 45, 6],
453 [ 44, 34], [ 33, 54], [ 19, 82], [ 21, -10],
454 [ 24, -11], [ 28, -8], [ 28, -1], [ 29, 3],
455 [ 29, 9], [ 35, 20], [ 29, 36], [ 14, 67],
456 [ -3, 75], [ -1, 23], [ 1, 34], [ 1, 43],
457 [ 0, 54], [ -2, 55], [ 0, 61], [ 1, 64],
458 [ 0, 68], [ -9, 92], [-17, 120], [-20, 112],
459 [-18, 114], [-11, 85], [-15, 92], [-14, 89],
460 [-26, 71], [-15, 81], [-14, 80], [ 0, 68],
461 [-14, 70], [-24, 56], [-23, 68], [-24, 50],
462 [-11, 74], [-14, 106], [-13, 97], [-15, 90],
463 [-12, 90], [-18, 88], [-10, 73], [ -9, 79],
464 [-14, 86], [-10, 73], [-10, 70], [-10, 69],
465 [ -5, 66], [ -9, 64], [ -5, 58], [ 2, 59],
466 [ 23, -13], [ 26, -13], [ 40, -15], [ 49, -14],
467 [ 44, 3], [ 45, 6], [ 44, 34], [ 33, 54],
468 [ 19, 82], [ 21, -10], [ 24, -11], [ 28, -8],
469 [ 28, -1], [ 29, 3], [ 29, 9], [ 35, 20],
470 [ 29, 36], [ 14, 67], [ -3, 75], [ -1, 23],
471 [ 1, 34], [ 1, 43], [ 0, 54], [ -2, 55],
472 [ 0, 61], [ 1, 64], [ 0, 68], [ -9, 92],
473 [ -6, 93], [ -6, 84], [ -8, 79], [ 0, 66],
474 [ -1, 71], [ 0, 62], [ -2, 60], [ -2, 59],
475 [ -5, 75], [ -3, 62], [ -4, 58], [ -9, 66],
476 [ -1, 79], [ 0, 71], [ 3, 68], [ 10, 44],
477 [ -7, 62], [ 15, 36], [ 14, 40], [ 16, 27],
478 [ 12, 29], [ 1, 44], [ 20, 36], [ 18, 32],
479 [ 5, 42], [ 1, 48], [ 10, 62], [ 17, 46],
480 [ 9, 64], [-12, 104], [-11, 97], [-16, 96],
481 [ -7, 88], [ -8, 85], [ -7, 85], [ -9, 85],
482 [-13, 88], [ 4, 66], [ -3, 77], [ -3, 76],
483 [ -6, 76], [ 10, 58], [ -1, 76], [ -1, 83],
484 [ -6, 93], [ -6, 84], [ -8, 79], [ 0, 66],
485 [ -1, 71], [ 0, 62], [ -2, 60], [ -2, 59],
486 [ -5, 75], [ -3, 62], [ -4, 58], [ -9, 66],
487 [ -1, 79], [ 0, 71], [ 3, 68], [ 10, 44],
488 [ -7, 62], [ 15, 36], [ 14, 40], [ 16, 27],
489 [ 12, 29], [ 1, 44], [ 20, 36], [ 18, 32],
490 [ 5, 42], [ 1, 48], [ 10, 62], [ 17, 46],
491 [ 9, 64], [-12, 104], [-11, 97], [-16, 96],
492 [ -7, 88], [ -8, 85], [ -7, 85], [ -9, 85],
493 [-13, 88], [ 4, 66], [ -3, 77], [ -3, 76],
494 [ -6, 76], [ 10, 58], [ -1, 76], [ -1, 83],
495 [ 15, 6], [ 6, 19], [ 7, 16], [ 12, 14],
496 [ 18, 13], [ 13, 11], [ 13, 15], [ 15, 16],
497 [ 12, 23], [ 13, 23], [ 15, 20], [ 14, 26],
498 [ 14, 44], [ 17, 40], [ 17, 47], [ 24, 17],
499 [ 21, 21], [ 25, 22], [ 31, 27], [ 22, 29],
500 [ 19, 35], [ 14, 50], [ 10, 57], [ 7, 63],
501 [ -2, 77], [ -4, 82], [ -3, 94], [ 9, 69],
502 [-12, 109], [ 36, -35], [ 36, -34], [ 32, -26],
503 [ 37, -30], [ 44, -32], [ 34, -18], [ 34, -15],
504 [ 40, -15], [ 33, -7], [ 35, -5], [ 33, 0],
505 [ 38, 2], [ 33, 13], [ 23, 35], [ 13, 58],
506 [ 15, 6], [ 6, 19], [ 7, 16], [ 12, 14],
507 [ 18, 13], [ 13, 11], [ 13, 15], [ 15, 16],
508 [ 12, 23], [ 13, 23], [ 15, 20], [ 14, 26],
509 [ 14, 44], [ 17, 40], [ 17, 47], [ 24, 17],
510 [ 21, 21], [ 25, 22], [ 31, 27], [ 22, 29],
511 [ 19, 35], [ 14, 50], [ 10, 57], [ 7, 63],
512 [ -2, 77], [ -4, 82], [ -3, 94], [ 9, 69],
513 [-12, 109], [ 36, -35], [ 36, -34], [ 32, -26],
514 [ 37, -30], [ 44, -32], [ 34, -18], [ 34, -15],
515 [ 40, -15], [ 33, -7], [ 35, -5], [ 33, 0],
516 [ 38, 2], [ 33, 13], [ 23, 35], [ 13, 58],
517 [ -3, 71], [ -6, 42], [ -5, 50], [ -3, 54],
518 [ -2, 62], [ 0, 58], [ 1, 63], [ -2, 72],
519 [ -1, 74], [ -9, 91], [ -5, 67], [ -5, 27],
520 [ -3, 39], [ -2, 44], [ 0, 46], [-16, 64],
521 [ -8, 68], [-10, 78], [ -6, 77], [-10, 86],
522 [-12, 92], [-15, 55], [-10, 60], [ -6, 62],
523 [ -4, 65], [-12, 73], [ -8, 76], [ -7, 80],
524 [ -9, 88], [-17, 110], [ -3, 71], [ -6, 42],
525 [ -5, 50], [ -3, 54], [ -2, 62], [ 0, 58],
526 [ 1, 63], [ -2, 72], [ -1, 74], [ -9, 91],
527 [ -5, 67], [ -5, 27], [ -3, 39], [ -2, 44],
528 [ 0, 46], [-16, 64], [ -8, 68], [-10, 78],
529 [ -6, 77], [-10, 86], [-12, 92], [-15, 55],
530 [-10, 60], [ -6, 62], [ -4, 65], [-12, 73],
531 [ -8, 76], [ -7, 80], [ -9, 88], [-17, 110],
532 [ -3, 70], [ -8, 93], [-10, 90], [-30, 127],
533 [ -3, 70], [ -8, 93], [-10, 90], [-30, 127],
534 [ -3, 70], [ -8, 93], [-10, 90], [-30, 127]
535 ], [
536 [ 20, -15], [ 2, 54], [ 3, 74], [ 20, -15],
537 [ 2, 54], [ 3, 74], [-28, 127], [-23, 104],
538 [ -6, 53], [ -1, 54], [ 7, 51], [ 23, 33],
539 [ 23, 2], [ 21, 0], [ 1, 9], [ 0, 49],
540 [-37, 118], [ 5, 57], [-13, 78], [-11, 65],
541 [ 1, 62], [ 12, 49], [ -4, 73], [ 17, 50],
542 [ 18, 64], [ 9, 43], [ 29, 0], [ 26, 67],
543 [ 16, 90], [ 9, 104], [-46, 127], [-20, 104],
544 [ 1, 67], [-13, 78], [-11, 65], [ 1, 62],
545 [ -6, 86], [-17, 95], [ -6, 61], [ 9, 45],
546 [ -3, 69], [ -6, 81], [-11, 96], [ 6, 55],
547 [ 7, 67], [ -5, 86], [ 2, 88], [ 0, 58],
548 [ -3, 76], [-10, 94], [ 5, 54], [ 4, 69],
549 [ -3, 81], [ 0, 88], [ -7, 67], [ -5, 74],
550 [ -4, 74], [ -5, 80], [ -7, 72], [ 1, 58],
551 [ 0, 41], [ 0, 63], [ 0, 63], [ 0, 63],
552 [ -9, 83], [ 4, 86], [ 0, 97], [ -7, 72],
553 [ 13, 41], [ 3, 62], [ 0, 45], [ -4, 78],
554 [ -3, 96], [-27, 126], [-28, 98], [-25, 101],
555 [-23, 67], [-28, 82], [-20, 94], [-16, 83],
556 [-22, 110], [-21, 91], [-18, 102], [-13, 93],
557 [-29, 127], [ -7, 92], [ -5, 89], [ -7, 96],
558 [-13, 108], [ -3, 46], [ -1, 65], [ -1, 57],
559 [ -9, 93], [ -3, 74], [ -9, 92], [ -8, 87],
560 [-23, 126], [ 5, 54], [ 6, 60], [ 6, 59],
561 [ 6, 69], [ -1, 48], [ 0, 68], [ -4, 69],
562 [ -8, 88], [ -2, 85], [ -6, 78], [ -1, 75],
563 [ -7, 77], [ 2, 54], [ 5, 50], [ -3, 68],
564 [ 1, 50], [ 6, 42], [ -4, 81], [ 1, 63],
565 [ -4, 70], [ 0, 67], [ 2, 57], [ -2, 76],
566 [ 11, 35], [ 4, 64], [ 1, 61], [ 11, 35],
567 [ 18, 25], [ 12, 24], [ 13, 29], [ 13, 36],
568 [-10, 93], [ -7, 73], [ -2, 73], [ 13, 46],
569 [ 9, 49], [ -7, 100], [ 9, 53], [ 2, 53],
570 [ 5, 53], [ -2, 61], [ 0, 56], [ 0, 56],
571 [-13, 63], [ -5, 60], [ -1, 62], [ 4, 57],
572 [ -6, 69], [ 4, 57], [ 14, 39], [ 4, 51],
573 [ 13, 68], [ 3, 64], [ 1, 61], [ 9, 63],
574 [ 7, 50], [ 16, 39], [ 5, 44], [ 4, 52],
575 [ 11, 48], [ -5, 60], [ -1, 59], [ 0, 59],
576 [ 22, 33], [ 5, 44], [ 14, 43], [ -1, 78],
577 [ 0, 60], [ 9, 69], [ 11, 28], [ 2, 40],
578 [ 3, 44], [ 0, 49], [ 0, 46], [ 2, 44],
579 [ 2, 51], [ 0, 47], [ 4, 39], [ 2, 62],
580 [ 6, 46], [ 0, 54], [ 3, 54], [ 2, 58],
581 [ 4, 63], [ 6, 51], [ 6, 57], [ 7, 53],
582 [ 6, 52], [ 6, 55], [ 11, 45], [ 14, 36],
583 [ 8, 53], [ -1, 82], [ 7, 55], [ -3, 78],
584 [ 15, 46], [ 22, 31], [ -1, 84], [ 25, 7],
585 [ 30, -7], [ 28, 3], [ 28, 4], [ 32, 0],
586 [ 34, -1], [ 30, 6], [ 30, 6], [ 32, 9],
587 [ 31, 19], [ 26, 27], [ 26, 30], [ 37, 20],
588 [ 28, 34], [ 17, 70], [ 1, 67], [ 5, 59],
589 [ 9, 67], [ 16, 30], [ 18, 32], [ 18, 35],
590 [ 22, 29], [ 24, 31], [ 23, 38], [ 18, 43],
591 [ 20, 41], [ 11, 63], [ 9, 59], [ 9, 64],
592 [ -1, 94], [ -2, 89], [ -9, 108], [ -6, 76],
593 [ -2, 44], [ 0, 45], [ 0, 52], [ -3, 64],
594 [ -2, 59], [ -4, 70], [ -4, 75], [ -8, 82],
595 [-17, 102], [ -9, 77], [ 3, 24], [ 0, 42],
596 [ 0, 48], [ 0, 55], [ -6, 59], [ -7, 71],
597 [-12, 83], [-11, 87], [-30, 119], [ 1, 58],
598 [ -3, 29], [ -1, 36], [ 1, 38], [ 2, 43],
599 [ -6, 55], [ 0, 58], [ 0, 64], [ -3, 74],
600 [-10, 90], [ 0, 70], [ -4, 29], [ 5, 31],
601 [ 7, 42], [ 1, 59], [ -2, 58], [ -3, 72],
602 [ -3, 81], [-11, 97], [ 0, 58], [ 8, 5],
603 [ 10, 14], [ 14, 18], [ 13, 27], [ 2, 40],
604 [ 0, 58], [ -3, 70], [ -6, 79], [ -8, 85],
605 [ 0, 0], [-13, 106], [-16, 106], [-10, 87],
606 [-21, 114], [-18, 110], [-14, 98], [-22, 110],
607 [-21, 106], [-18, 103], [-21, 107], [-23, 108],
608 [-26, 112], [-10, 96], [-12, 95], [ -5, 91],
609 [ -9, 93], [-22, 94], [ -5, 86], [ 9, 67],
610 [ -4, 80], [-10, 85], [ -1, 70], [ 7, 60],
611 [ 9, 58], [ 5, 61], [ 12, 50], [ 15, 50],
612 [ 18, 49], [ 17, 54], [ 10, 41], [ 7, 46],
613 [ -1, 51], [ 7, 49], [ 8, 52], [ 9, 41],
614 [ 6, 47], [ 2, 55], [ 13, 41], [ 10, 44],
615 [ 6, 50], [ 5, 53], [ 13, 49], [ 4, 63],
616 [ 6, 64], [ -2, 69], [ -2, 59], [ 6, 70],
617 [ 10, 44], [ 9, 31], [ 12, 43], [ 3, 53],
618 [ 14, 34], [ 10, 38], [ -3, 52], [ 13, 40],
619 [ 17, 32], [ 7, 44], [ 7, 38], [ 13, 50],
620 [ 10, 57], [ 26, 43], [ 14, 11], [ 11, 14],
621 [ 9, 11], [ 18, 11], [ 21, 9], [ 23, -2],
622 [ 32, -15], [ 32, -15], [ 34, -21], [ 39, -23],
623 [ 42, -33], [ 41, -31], [ 46, -28], [ 38, -12],
624 [ 21, 29], [ 45, -24], [ 53, -45], [ 48, -26],
625 [ 65, -43], [ 43, -19], [ 39, -10], [ 30, 9],
626 [ 18, 26], [ 20, 27], [ 0, 57], [-14, 82],
627 [ -5, 75], [-19, 97], [-35, 125], [ 27, 0],
628 [ 28, 0], [ 31, -4], [ 27, 6], [ 34, 8],
629 [ 30, 10], [ 24, 22], [ 33, 19], [ 22, 32],
630 [ 26, 31], [ 21, 41], [ 26, 44], [ 23, 47],
631 [ 16, 65], [ 14, 71], [ 8, 60], [ 6, 63],
632 [ 17, 65], [ 21, 24], [ 23, 20], [ 26, 23],
633 [ 27, 32], [ 28, 23], [ 28, 24], [ 23, 40],
634 [ 24, 32], [ 28, 29], [ 23, 42], [ 19, 57],
635 [ 22, 53], [ 22, 61], [ 11, 86], [ 12, 40],
636 [ 11, 51], [ 14, 59], [ -4, 79], [ -7, 71],
637 [ -5, 69], [ -9, 70], [ -8, 66], [-10, 68],
638 [-19, 73], [-12, 69], [-16, 70], [-15, 67],
639 [-20, 62], [-19, 70], [-16, 66], [-22, 65],
640 [-20, 63], [ 9, -2], [ 26, -9], [ 33, -9],
641 [ 39, -7], [ 41, -2], [ 45, 3], [ 49, 9],
642 [ 45, 27], [ 36, 59], [ -6, 66], [ -7, 35],
643 [ -7, 42], [ -8, 45], [ -5, 48], [-12, 56],
644 [ -6, 60], [ -5, 62], [ -8, 66], [ -8, 76],
645 [ -5, 85], [ -6, 81], [-10, 77], [ -7, 81],
646 [-17, 80], [-18, 73], [ -4, 74], [-10, 83],
647 [ -9, 71], [ -9, 67], [ -1, 61], [ -8, 66],
648 [-14, 66], [ 0, 59], [ 2, 59], [ 21, -13],
649 [ 33, -14], [ 39, -7], [ 46, -2], [ 51, 2],
650 [ 60, 6], [ 61, 17], [ 55, 34], [ 42, 62],
651 [ -7, 92], [ -5, 89], [ -7, 96], [-13, 108],
652 [ -3, 46], [ -1, 65], [ -1, 57], [ -9, 93],
653 [ -3, 74], [ -9, 92], [ -8, 87], [-23, 126],
654 [ -7, 92], [ -5, 89], [ -7, 96], [-13, 108],
655 [ -3, 46], [ -1, 65], [ -1, 57], [ -9, 93],
656 [ -3, 74], [ -9, 92], [ -8, 87], [-23, 126],
657 [ -2, 85], [ -6, 78], [ -1, 75], [ -7, 77],
658 [ 2, 54], [ 5, 50], [ -3, 68], [ 1, 50],
659 [ 6, 42], [ -4, 81], [ 1, 63], [ -4, 70],
660 [ 0, 67], [ 2, 57], [ -2, 76], [ 11, 35],
661 [ 4, 64], [ 1, 61], [ 11, 35], [ 18, 25],
662 [ 12, 24], [ 13, 29], [ 13, 36], [-10, 93],
663 [ -7, 73], [ -2, 73], [ 13, 46], [ 9, 49],
664 [ -7, 100], [ 9, 53], [ 2, 53], [ 5, 53],
665 [ -2, 61], [ 0, 56], [ 0, 56], [-13, 63],
666 [ -5, 60], [ -1, 62], [ 4, 57], [ -6, 69],
667 [ 4, 57], [ 14, 39], [ 4, 51], [ 13, 68],
668 [ -2, 85], [ -6, 78], [ -1, 75], [ -7, 77],
669 [ 2, 54], [ 5, 50], [ -3, 68], [ 1, 50],
670 [ 6, 42], [ -4, 81], [ 1, 63], [ -4, 70],
671 [ 0, 67], [ 2, 57], [ -2, 76], [ 11, 35],
672 [ 4, 64], [ 1, 61], [ 11, 35], [ 18, 25],
673 [ 12, 24], [ 13, 29], [ 13, 36], [-10, 93],
674 [ -7, 73], [ -2, 73], [ 13, 46], [ 9, 49],
675 [ -7, 100], [ 9, 53], [ 2, 53], [ 5, 53],
676 [ -2, 61], [ 0, 56], [ 0, 56], [-13, 63],
677 [ -5, 60], [ -1, 62], [ 4, 57], [ -6, 69],
678 [ 4, 57], [ 14, 39], [ 4, 51], [ 13, 68],
679 [ 11, 28], [ 2, 40], [ 3, 44], [ 0, 49],
680 [ 0, 46], [ 2, 44], [ 2, 51], [ 0, 47],
681 [ 4, 39], [ 2, 62], [ 6, 46], [ 0, 54],
682 [ 3, 54], [ 2, 58], [ 4, 63], [ 6, 51],
683 [ 6, 57], [ 7, 53], [ 6, 52], [ 6, 55],
684 [ 11, 45], [ 14, 36], [ 8, 53], [ -1, 82],
685 [ 7, 55], [ -3, 78], [ 15, 46], [ 22, 31],
686 [ -1, 84], [ 25, 7], [ 30, -7], [ 28, 3],
687 [ 28, 4], [ 32, 0], [ 34, -1], [ 30, 6],
688 [ 30, 6], [ 32, 9], [ 31, 19], [ 26, 27],
689 [ 26, 30], [ 37, 20], [ 28, 34], [ 17, 70],
690 [ 11, 28], [ 2, 40], [ 3, 44], [ 0, 49],
691 [ 0, 46], [ 2, 44], [ 2, 51], [ 0, 47],
692 [ 4, 39], [ 2, 62], [ 6, 46], [ 0, 54],
693 [ 3, 54], [ 2, 58], [ 4, 63], [ 6, 51],
694 [ 6, 57], [ 7, 53], [ 6, 52], [ 6, 55],
695 [ 11, 45], [ 14, 36], [ 8, 53], [ -1, 82],
696 [ 7, 55], [ -3, 78], [ 15, 46], [ 22, 31],
697 [ -1, 84], [ 25, 7], [ 30, -7], [ 28, 3],
698 [ 28, 4], [ 32, 0], [ 34, -1], [ 30, 6],
699 [ 30, 6], [ 32, 9], [ 31, 19], [ 26, 27],
700 [ 26, 30], [ 37, 20], [ 28, 34], [ 17, 70],
701 [ -4, 79], [ -7, 71], [ -5, 69], [ -9, 70],
702 [ -8, 66], [-10, 68], [-19, 73], [-12, 69],
703 [-16, 70], [-15, 67], [-20, 62], [-19, 70],
704 [-16, 66], [-22, 65], [-20, 63], [ -5, 85],
705 [ -6, 81], [-10, 77], [ -7, 81], [-17, 80],
706 [-18, 73], [ -4, 74], [-10, 83], [ -9, 71],
707 [ -9, 67], [ -1, 61], [ -8, 66], [-14, 66],
708 [ 0, 59], [ 2, 59], [ 9, -2], [ 26, -9],
709 [ 33, -9], [ 39, -7], [ 41, -2], [ 45, 3],
710 [ 49, 9], [ 45, 27], [ 36, 59], [ 21, -13],
711 [ 33, -14], [ 39, -7], [ 46, -2], [ 51, 2],
712 [ 60, 6], [ 61, 17], [ 55, 34], [ 42, 62],
713 [ -6, 66], [ -7, 35], [ -7, 42], [ -8, 45],
714 [ -5, 48], [-12, 56], [ -6, 60], [ -5, 62],
715 [ -8, 66], [ -8, 76], [ -4, 79], [ -7, 71],
716 [ -5, 69], [ -9, 70], [ -8, 66], [-10, 68],
717 [-19, 73], [-12, 69], [-16, 70], [-15, 67],
718 [-20, 62], [-19, 70], [-16, 66], [-22, 65],
719 [-20, 63], [ -5, 85], [ -6, 81], [-10, 77],
720 [ -7, 81], [-17, 80], [-18, 73], [ -4, 74],
721 [-10, 83], [ -9, 71], [ -9, 67], [ -1, 61],
722 [ -8, 66], [-14, 66], [ 0, 59], [ 2, 59],
723 [ 9, -2], [ 26, -9], [ 33, -9], [ 39, -7],
724 [ 41, -2], [ 45, 3], [ 49, 9], [ 45, 27],
725 [ 36, 59], [ 21, -13], [ 33, -14], [ 39, -7],
726 [ 46, -2], [ 51, 2], [ 60, 6], [ 61, 17],
727 [ 55, 34], [ 42, 62], [ -6, 66], [ -7, 35],
728 [ -7, 42], [ -8, 45], [ -5, 48], [-12, 56],
729 [ -6, 60], [ -5, 62], [ -8, 66], [ -8, 76],
730 [-13, 106], [-16, 106], [-10, 87], [-21, 114],
731 [-18, 110], [-14, 98], [-22, 110], [-21, 106],
732 [-18, 103], [-21, 107], [-23, 108], [-26, 112],
733 [-10, 96], [-12, 95], [ -5, 91], [ -9, 93],
734 [-22, 94], [ -5, 86], [ 9, 67], [ -4, 80],
735 [-10, 85], [ -1, 70], [ 7, 60], [ 9, 58],
736 [ 5, 61], [ 12, 50], [ 15, 50], [ 18, 49],
737 [ 17, 54], [ 10, 41], [ 7, 46], [ -1, 51],
738 [ 7, 49], [ 8, 52], [ 9, 41], [ 6, 47],
739 [ 2, 55], [ 13, 41], [ 10, 44], [ 6, 50],
740 [ 5, 53], [ 13, 49], [ 4, 63], [ 6, 64],
741 [-13, 106], [-16, 106], [-10, 87], [-21, 114],
742 [-18, 110], [-14, 98], [-22, 110], [-21, 106],
743 [-18, 103], [-21, 107], [-23, 108], [-26, 112],
744 [-10, 96], [-12, 95], [ -5, 91], [ -9, 93],
745 [-22, 94], [ -5, 86], [ 9, 67], [ -4, 80],
746 [-10, 85], [ -1, 70], [ 7, 60], [ 9, 58],
747 [ 5, 61], [ 12, 50], [ 15, 50], [ 18, 49],
748 [ 17, 54], [ 10, 41], [ 7, 46], [ -1, 51],
749 [ 7, 49], [ 8, 52], [ 9, 41], [ 6, 47],
750 [ 2, 55], [ 13, 41], [ 10, 44], [ 6, 50],
751 [ 5, 53], [ 13, 49], [ 4, 63], [ 6, 64],
752 [ 14, 11], [ 11, 14], [ 9, 11], [ 18, 11],
753 [ 21, 9], [ 23, -2], [ 32, -15], [ 32, -15],
754 [ 34, -21], [ 39, -23], [ 42, -33], [ 41, -31],
755 [ 46, -28], [ 38, -12], [ 21, 29], [ 45, -24],
756 [ 53, -45], [ 48, -26], [ 65, -43], [ 43, -19],
757 [ 39, -10], [ 30, 9], [ 18, 26], [ 20, 27],
758 [ 0, 57], [-14, 82], [ -5, 75], [-19, 97],
759 [-35, 125], [ 27, 0], [ 28, 0], [ 31, -4],
760 [ 27, 6], [ 34, 8], [ 30, 10], [ 24, 22],
761 [ 33, 19], [ 22, 32], [ 26, 31], [ 21, 41],
762 [ 26, 44], [ 23, 47], [ 16, 65], [ 14, 71],
763 [ 14, 11], [ 11, 14], [ 9, 11], [ 18, 11],
764 [ 21, 9], [ 23, -2], [ 32, -15], [ 32, -15],
765 [ 34, -21], [ 39, -23], [ 42, -33], [ 41, -31],
766 [ 46, -28], [ 38, -12], [ 21, 29], [ 45, -24],
767 [ 53, -45], [ 48, -26], [ 65, -43], [ 43, -19],
768 [ 39, -10], [ 30, 9], [ 18, 26], [ 20, 27],
769 [ 0, 57], [-14, 82], [ -5, 75], [-19, 97],
770 [-35, 125], [ 27, 0], [ 28, 0], [ 31, -4],
771 [ 27, 6], [ 34, 8], [ 30, 10], [ 24, 22],
772 [ 33, 19], [ 22, 32], [ 26, 31], [ 21, 41],
773 [ 26, 44], [ 23, 47], [ 16, 65], [ 14, 71],
774 [ -6, 76], [ -2, 44], [ 0, 45], [ 0, 52],
775 [ -3, 64], [ -2, 59], [ -4, 70], [ -4, 75],
776 [ -8, 82], [-17, 102], [ -9, 77], [ 3, 24],
777 [ 0, 42], [ 0, 48], [ 0, 55], [ -6, 59],
778 [ -7, 71], [-12, 83], [-11, 87], [-30, 119],
779 [ 1, 58], [ -3, 29], [ -1, 36], [ 1, 38],
780 [ 2, 43], [ -6, 55], [ 0, 58], [ 0, 64],
781 [ -3, 74], [-10, 90], [ -6, 76], [ -2, 44],
782 [ 0, 45], [ 0, 52], [ -3, 64], [ -2, 59],
783 [ -4, 70], [ -4, 75], [ -8, 82], [-17, 102],
784 [ -9, 77], [ 3, 24], [ 0, 42], [ 0, 48],
785 [ 0, 55], [ -6, 59], [ -7, 71], [-12, 83],
786 [-11, 87], [-30, 119], [ 1, 58], [ -3, 29],
787 [ -1, 36], [ 1, 38], [ 2, 43], [ -6, 55],
788 [ 0, 58], [ 0, 64], [ -3, 74], [-10, 90],
789 [ -3, 74], [ -9, 92], [ -8, 87], [-23, 126],
790 [ -3, 74], [ -9, 92], [ -8, 87], [-23, 126],
791 [ -3, 74], [ -9, 92], [ -8, 87], [-23, 126]
792 ], [
793 [ 20, -15], [ 2, 54], [ 3, 74], [ 20, -15],
794 [ 2, 54], [ 3, 74], [-28, 127], [-23, 104],
795 [ -6, 53], [ -1, 54], [ 7, 51], [ 22, 25],
796 [ 34, 0], [ 16, 0], [ -2, 9], [ 4, 41],
797 [-29, 118], [ 2, 65], [ -6, 71], [-13, 79],
798 [ 5, 52], [ 9, 50], [ -3, 70], [ 10, 54],
799 [ 26, 34], [ 19, 22], [ 40, 0], [ 57, 2],
800 [ 41, 36], [ 26, 69], [-45, 127], [-15, 101],
801 [ -4, 76], [ -6, 71], [-13, 79], [ 5, 52],
802 [ 6, 69], [-13, 90], [ 0, 52], [ 8, 43],
803 [ -2, 69], [ -5, 82], [-10, 96], [ 2, 59],
804 [ 2, 75], [ -3, 87], [ -3, 100], [ 1, 56],
805 [ -3, 74], [ -6, 85], [ 0, 59], [ -3, 81],
806 [ -7, 86], [ -5, 95], [ -1, 66], [ -1, 77],
807 [ 1, 70], [ -2, 86], [ -5, 72], [ 0, 61],
808 [ 0, 41], [ 0, 63], [ 0, 63], [ 0, 63],
809 [ -9, 83], [ 4, 86], [ 0, 97], [ -7, 72],
810 [ 13, 41], [ 3, 62], [ 13, 15], [ 7, 51],
811 [ 2, 80], [-39, 127], [-18, 91], [-17, 96],
812 [-26, 81], [-35, 98], [-24, 102], [-23, 97],
813 [-27, 119], [-24, 99], [-21, 110], [-18, 102],
814 [-36, 127], [ 0, 80], [ -5, 89], [ -7, 94],
815 [ -4, 92], [ 0, 39], [ 0, 65], [-15, 84],
816 [-35, 127], [ -2, 73], [-12, 104], [ -9, 91],
817 [-31, 127], [ 3, 55], [ 7, 56], [ 7, 55],
818 [ 8, 61], [ -3, 53], [ 0, 68], [ -7, 74],
819 [ -9, 88], [-13, 103], [-13, 91], [ -9, 89],
820 [-14, 92], [ -8, 76], [-12, 87], [-23, 110],
821 [-24, 105], [-10, 78], [-20, 112], [-17, 99],
822 [-78, 127], [-70, 127], [-50, 127], [-46, 127],
823 [ -4, 66], [ -5, 78], [ -4, 71], [ -8, 72],
824 [ 2, 59], [ -1, 55], [ -7, 70], [ -6, 75],
825 [ -8, 89], [-34, 119], [ -3, 75], [ 32, 20],
826 [ 30, 22], [-44, 127], [ 0, 54], [ -5, 61],
827 [ 0, 58], [ -1, 60], [ -3, 61], [ -8, 67],
828 [-25, 84], [-14, 74], [ -5, 65], [ 5, 52],
829 [ 2, 57], [ 0, 61], [ -9, 69], [-11, 70],
830 [ 18, 55], [ -4, 71], [ 0, 58], [ 7, 61],
831 [ 9, 41], [ 18, 25], [ 9, 32], [ 5, 43],
832 [ 9, 47], [ 0, 44], [ 0, 51], [ 2, 46],
833 [ 19, 38], [ -4, 66], [ 15, 38], [ 12, 42],
834 [ 9, 34], [ 0, 89], [ 4, 45], [ 10, 28],
835 [ 10, 31], [ 33, -11], [ 52, -43], [ 18, 15],
836 [ 28, 0], [ 35, -22], [ 38, -25], [ 34, 0],
837 [ 39, -18], [ 32, -12], [102, -94], [ 0, 0],
838 [ 56, -15], [ 33, -4], [ 29, 10], [ 37, -5],
839 [ 51, -29], [ 39, -9], [ 52, -34], [ 69, -58],
840 [ 67, -63], [ 44, -5], [ 32, 7], [ 55, -29],
841 [ 32, 1], [ 0, 0], [ 27, 36], [ 33, -25],
842 [ 34, -30], [ 36, -28], [ 38, -28], [ 38, -27],
843 [ 34, -18], [ 35, -16], [ 34, -14], [ 32, -8],
844 [ 37, -6], [ 35, 0], [ 30, 10], [ 28, 18],
845 [ 26, 25], [ 29, 41], [ 0, 75], [ 2, 72],
846 [ 8, 77], [ 14, 35], [ 18, 31], [ 17, 35],
847 [ 21, 30], [ 17, 45], [ 20, 42], [ 18, 45],
848 [ 27, 26], [ 16, 54], [ 7, 66], [ 16, 56],
849 [ 11, 73], [ 10, 67], [-10, 116], [-23, 112],
850 [-15, 71], [ -7, 61], [ 0, 53], [ -5, 66],
851 [-11, 77], [ -9, 80], [ -9, 84], [-10, 87],
852 [-34, 127], [-21, 101], [ -3, 39], [ -5, 53],
853 [ -7, 61], [-11, 75], [-15, 77], [-17, 91],
854 [-25, 107], [-25, 111], [-28, 122], [-11, 76],
855 [-10, 44], [-10, 52], [-10, 57], [ -9, 58],
856 [-16, 72], [ -7, 69], [ -4, 69], [ -5, 74],
857 [ -9, 86], [ 2, 66], [ -9, 34], [ 1, 32],
858 [ 11, 31], [ 5, 52], [ -2, 55], [ -2, 67],
859 [ 0, 73], [ -8, 89], [ 3, 52], [ 7, 4],
860 [ 10, 8], [ 17, 8], [ 16, 19], [ 3, 37],
861 [ -1, 61], [ -5, 73], [ -1, 70], [ -4, 78],
862 [ 0, 0], [-21, 126], [-23, 124], [-20, 110],
863 [-26, 126], [-25, 124], [-17, 105], [-27, 121],
864 [-27, 117], [-17, 102], [-26, 117], [-27, 116],
865 [-33, 122], [-10, 95], [-14, 100], [ -8, 95],
866 [-17, 111], [-28, 114], [ -6, 89], [ -2, 80],
867 [ -4, 82], [ -9, 85], [ -8, 81], [ -1, 72],
868 [ 5, 64], [ 1, 67], [ 9, 56], [ 0, 69],
869 [ 1, 69], [ 7, 69], [ -7, 69], [ -6, 67],
870 [-16, 77], [ -2, 64], [ 2, 61], [ -6, 67],
871 [ -3, 64], [ 2, 57], [ -3, 65], [ -3, 66],
872 [ 0, 62], [ 9, 51], [ -1, 66], [ -2, 71],
873 [ -2, 75], [ -1, 70], [ -9, 72], [ 14, 60],
874 [ 16, 37], [ 0, 47], [ 18, 35], [ 11, 37],
875 [ 12, 41], [ 10, 41], [ 2, 48], [ 12, 41],
876 [ 13, 41], [ 0, 59], [ 3, 50], [ 19, 40],
877 [ 3, 66], [ 18, 50], [ 19, -6], [ 18, -6],
878 [ 14, 0], [ 26, -12], [ 31, -16], [ 33, -25],
879 [ 33, -22], [ 37, -28], [ 39, -30], [ 42, -30],
880 [ 47, -42], [ 45, -36], [ 49, -34], [ 41, -17],
881 [ 32, 9], [ 69, -71], [ 63, -63], [ 66, -64],
882 [ 77, -74], [ 54, -39], [ 52, -35], [ 41, -10],
883 [ 36, 0], [ 40, -1], [ 30, 14], [ 28, 26],
884 [ 23, 37], [ 12, 55], [ 11, 65], [ 37, -33],
885 [ 39, -36], [ 40, -37], [ 38, -30], [ 46, -33],
886 [ 42, -30], [ 40, -24], [ 49, -29], [ 38, -12],
887 [ 40, -10], [ 38, -3], [ 46, -5], [ 31, 20],
888 [ 29, 30], [ 25, 44], [ 12, 48], [ 11, 49],
889 [ 26, 45], [ 22, 22], [ 23, 22], [ 27, 21],
890 [ 33, 20], [ 26, 28], [ 30, 24], [ 27, 34],
891 [ 18, 42], [ 25, 39], [ 18, 50], [ 12, 70],
892 [ 21, 54], [ 14, 71], [ 11, 83], [ 25, 32],
893 [ 21, 49], [ 21, 54], [ -5, 85], [ -6, 81],
894 [-10, 77], [ -7, 81], [-17, 80], [-18, 73],
895 [ -4, 74], [-10, 83], [ -9, 71], [ -9, 67],
896 [ -1, 61], [ -8, 66], [-14, 66], [ 0, 59],
897 [ 2, 59], [ 17, -10], [ 32, -13], [ 42, -9],
898 [ 49, -5], [ 53, 0], [ 64, 3], [ 68, 10],
899 [ 66, 27], [ 47, 57], [ -5, 71], [ 0, 24],
900 [ -1, 36], [ -2, 42], [ -2, 52], [ -9, 57],
901 [ -6, 63], [ -4, 65], [ -4, 67], [ -7, 82],
902 [ -3, 81], [ -3, 76], [ -7, 72], [ -6, 78],
903 [-12, 72], [-14, 68], [ -3, 70], [ -6, 76],
904 [ -5, 66], [ -5, 62], [ 0, 57], [ -4, 61],
905 [ -9, 60], [ 1, 54], [ 2, 58], [ 17, -10],
906 [ 32, -13], [ 42, -9], [ 49, -5], [ 53, 0],
907 [ 64, 3], [ 68, 10], [ 66, 27], [ 47, 57],
908 [ 0, 80], [ -5, 89], [ -7, 94], [ -4, 92],
909 [ 0, 39], [ 0, 65], [-15, 84], [-35, 127],
910 [ -2, 73], [-12, 104], [ -9, 91], [-31, 127],
911 [ 0, 80], [ -5, 89], [ -7, 94], [ -4, 92],
912 [ 0, 39], [ 0, 65], [-15, 84], [-35, 127],
913 [ -2, 73], [-12, 104], [ -9, 91], [-31, 127],
914 [-13, 103], [-13, 91], [ -9, 89], [-14, 92],
915 [ -8, 76], [-12, 87], [-23, 110], [-24, 105],
916 [-10, 78], [-20, 112], [-17, 99], [-78, 127],
917 [-70, 127], [-50, 127], [-46, 127], [ -4, 66],
918 [ -5, 78], [ -4, 71], [ -8, 72], [ 2, 59],
919 [ -1, 55], [ -7, 70], [ -6, 75], [ -8, 89],
920 [-34, 119], [ -3, 75], [ 32, 20], [ 30, 22],
921 [-44, 127], [ 0, 54], [ -5, 61], [ 0, 58],
922 [ -1, 60], [ -3, 61], [ -8, 67], [-25, 84],
923 [-14, 74], [ -5, 65], [ 5, 52], [ 2, 57],
924 [ 0, 61], [ -9, 69], [-11, 70], [ 18, 55],
925 [-13, 103], [-13, 91], [ -9, 89], [-14, 92],
926 [ -8, 76], [-12, 87], [-23, 110], [-24, 105],
927 [-10, 78], [-20, 112], [-17, 99], [-78, 127],
928 [-70, 127], [-50, 127], [-46, 127], [ -4, 66],
929 [ -5, 78], [ -4, 71], [ -8, 72], [ 2, 59],
930 [ -1, 55], [ -7, 70], [ -6, 75], [ -8, 89],
931 [-34, 119], [ -3, 75], [ 32, 20], [ 30, 22],
932 [-44, 127], [ 0, 54], [ -5, 61], [ 0, 58],
933 [ -1, 60], [ -3, 61], [ -8, 67], [-25, 84],
934 [-14, 74], [ -5, 65], [ 5, 52], [ 2, 57],
935 [ 0, 61], [ -9, 69], [-11, 70], [ 18, 55],
936 [ 4, 45], [ 10, 28], [ 10, 31], [ 33, -11],
937 [ 52, -43], [ 18, 15], [ 28, 0], [ 35, -22],
938 [ 38, -25], [ 34, 0], [ 39, -18], [ 32, -12],
939 [102, -94], [ 0, 0], [ 56, -15], [ 33, -4],
940 [ 29, 10], [ 37, -5], [ 51, -29], [ 39, -9],
941 [ 52, -34], [ 69, -58], [ 67, -63], [ 44, -5],
942 [ 32, 7], [ 55, -29], [ 32, 1], [ 0, 0],
943 [ 27, 36], [ 33, -25], [ 34, -30], [ 36, -28],
944 [ 38, -28], [ 38, -27], [ 34, -18], [ 35, -16],
945 [ 34, -14], [ 32, -8], [ 37, -6], [ 35, 0],
946 [ 30, 10], [ 28, 18], [ 26, 25], [ 29, 41],
947 [ 4, 45], [ 10, 28], [ 10, 31], [ 33, -11],
948 [ 52, -43], [ 18, 15], [ 28, 0], [ 35, -22],
949 [ 38, -25], [ 34, 0], [ 39, -18], [ 32, -12],
950 [102, -94], [ 0, 0], [ 56, -15], [ 33, -4],
951 [ 29, 10], [ 37, -5], [ 51, -29], [ 39, -9],
952 [ 52, -34], [ 69, -58], [ 67, -63], [ 44, -5],
953 [ 32, 7], [ 55, -29], [ 32, 1], [ 0, 0],
954 [ 27, 36], [ 33, -25], [ 34, -30], [ 36, -28],
955 [ 38, -28], [ 38, -27], [ 34, -18], [ 35, -16],
956 [ 34, -14], [ 32, -8], [ 37, -6], [ 35, 0],
957 [ 30, 10], [ 28, 18], [ 26, 25], [ 29, 41],
958 [ -5, 85], [ -6, 81], [-10, 77], [ -7, 81],
959 [-17, 80], [-18, 73], [ -4, 74], [-10, 83],
960 [ -9, 71], [ -9, 67], [ -1, 61], [ -8, 66],
961 [-14, 66], [ 0, 59], [ 2, 59], [ -3, 81],
962 [ -3, 76], [ -7, 72], [ -6, 78], [-12, 72],
963 [-14, 68], [ -3, 70], [ -6, 76], [ -5, 66],
964 [ -5, 62], [ 0, 57], [ -4, 61], [ -9, 60],
965 [ 1, 54], [ 2, 58], [ 17, -10], [ 32, -13],
966 [ 42, -9], [ 49, -5], [ 53, 0], [ 64, 3],
967 [ 68, 10], [ 66, 27], [ 47, 57], [ 17, -10],
968 [ 32, -13], [ 42, -9], [ 49, -5], [ 53, 0],
969 [ 64, 3], [ 68, 10], [ 66, 27], [ 47, 57],
970 [ -5, 71], [ 0, 24], [ -1, 36], [ -2, 42],
971 [ -2, 52], [ -9, 57], [ -6, 63], [ -4, 65],
972 [ -4, 67], [ -7, 82], [ -5, 85], [ -6, 81],
973 [-10, 77], [ -7, 81], [-17, 80], [-18, 73],
974 [ -4, 74], [-10, 83], [ -9, 71], [ -9, 67],
975 [ -1, 61], [ -8, 66], [-14, 66], [ 0, 59],
976 [ 2, 59], [ -3, 81], [ -3, 76], [ -7, 72],
977 [ -6, 78], [-12, 72], [-14, 68], [ -3, 70],
978 [ -6, 76], [ -5, 66], [ -5, 62], [ 0, 57],
979 [ -4, 61], [ -9, 60], [ 1, 54], [ 2, 58],
980 [ 17, -10], [ 32, -13], [ 42, -9], [ 49, -5],
981 [ 53, 0], [ 64, 3], [ 68, 10], [ 66, 27],
982 [ 47, 57], [ 17, -10], [ 32, -13], [ 42, -9],
983 [ 49, -5], [ 53, 0], [ 64, 3], [ 68, 10],
984 [ 66, 27], [ 47, 57], [ -5, 71], [ 0, 24],
985 [ -1, 36], [ -2, 42], [ -2, 52], [ -9, 57],
986 [ -6, 63], [ -4, 65], [ -4, 67], [ -7, 82],
987 [-21, 126], [-23, 124], [-20, 110], [-26, 126],
988 [-25, 124], [-17, 105], [-27, 121], [-27, 117],
989 [-17, 102], [-26, 117], [-27, 116], [-33, 122],
990 [-10, 95], [-14, 100], [ -8, 95], [-17, 111],
991 [-28, 114], [ -6, 89], [ -2, 80], [ -4, 82],
992 [ -9, 85], [ -8, 81], [ -1, 72], [ 5, 64],
993 [ 1, 67], [ 9, 56], [ 0, 69], [ 1, 69],
994 [ 7, 69], [ -7, 69], [ -6, 67], [-16, 77],
995 [ -2, 64], [ 2, 61], [ -6, 67], [ -3, 64],
996 [ 2, 57], [ -3, 65], [ -3, 66], [ 0, 62],
997 [ 9, 51], [ -1, 66], [ -2, 71], [ -2, 75],
998 [-21, 126], [-23, 124], [-20, 110], [-26, 126],
999 [-25, 124], [-17, 105], [-27, 121], [-27, 117],
1000 [-17, 102], [-26, 117], [-27, 116], [-33, 122],
1001 [-10, 95], [-14, 100], [ -8, 95], [-17, 111],
1002 [-28, 114], [ -6, 89], [ -2, 80], [ -4, 82],
1003 [ -9, 85], [ -8, 81], [ -1, 72], [ 5, 64],
1004 [ 1, 67], [ 9, 56], [ 0, 69], [ 1, 69],
1005 [ 7, 69], [ -7, 69], [ -6, 67], [-16, 77],
1006 [ -2, 64], [ 2, 61], [ -6, 67], [ -3, 64],
1007 [ 2, 57], [ -3, 65], [ -3, 66], [ 0, 62],
1008 [ 9, 51], [ -1, 66], [ -2, 71], [ -2, 75],
1009 [ 19, -6], [ 18, -6], [ 14, 0], [ 26, -12],
1010 [ 31, -16], [ 33, -25], [ 33, -22], [ 37, -28],
1011 [ 39, -30], [ 42, -30], [ 47, -42], [ 45, -36],
1012 [ 49, -34], [ 41, -17], [ 32, 9], [ 69, -71],
1013 [ 63, -63], [ 66, -64], [ 77, -74], [ 54, -39],
1014 [ 52, -35], [ 41, -10], [ 36, 0], [ 40, -1],
1015 [ 30, 14], [ 28, 26], [ 23, 37], [ 12, 55],
1016 [ 11, 65], [ 37, -33], [ 39, -36], [ 40, -37],
1017 [ 38, -30], [ 46, -33], [ 42, -30], [ 40, -24],
1018 [ 49, -29], [ 38, -12], [ 40, -10], [ 38, -3],
1019 [ 46, -5], [ 31, 20], [ 29, 30], [ 25, 44],
1020 [ 19, -6], [ 18, -6], [ 14, 0], [ 26, -12],
1021 [ 31, -16], [ 33, -25], [ 33, -22], [ 37, -28],
1022 [ 39, -30], [ 42, -30], [ 47, -42], [ 45, -36],
1023 [ 49, -34], [ 41, -17], [ 32, 9], [ 69, -71],
1024 [ 63, -63], [ 66, -64], [ 77, -74], [ 54, -39],
1025 [ 52, -35], [ 41, -10], [ 36, 0], [ 40, -1],
1026 [ 30, 14], [ 28, 26], [ 23, 37], [ 12, 55],
1027 [ 11, 65], [ 37, -33], [ 39, -36], [ 40, -37],
1028 [ 38, -30], [ 46, -33], [ 42, -30], [ 40, -24],
1029 [ 49, -29], [ 38, -12], [ 40, -10], [ 38, -3],
1030 [ 46, -5], [ 31, 20], [ 29, 30], [ 25, 44],
1031 [-23, 112], [-15, 71], [ -7, 61], [ 0, 53],
1032 [ -5, 66], [-11, 77], [ -9, 80], [ -9, 84],
1033 [-10, 87], [-34, 127], [-21, 101], [ -3, 39],
1034 [ -5, 53], [ -7, 61], [-11, 75], [-15, 77],
1035 [-17, 91], [-25, 107], [-25, 111], [-28, 122],
1036 [-11, 76], [-10, 44], [-10, 52], [-10, 57],
1037 [ -9, 58], [-16, 72], [ -7, 69], [ -4, 69],
1038 [ -5, 74], [ -9, 86], [-23, 112], [-15, 71],
1039 [ -7, 61], [ 0, 53], [ -5, 66], [-11, 77],
1040 [ -9, 80], [ -9, 84], [-10, 87], [-34, 127],
1041 [-21, 101], [ -3, 39], [ -5, 53], [ -7, 61],
1042 [-11, 75], [-15, 77], [-17, 91], [-25, 107],
1043 [-25, 111], [-28, 122], [-11, 76], [-10, 44],
1044 [-10, 52], [-10, 57], [ -9, 58], [-16, 72],
1045 [ -7, 69], [ -4, 69], [ -5, 74], [ -9, 86],
1046 [ -2, 73], [-12, 104], [ -9, 91], [-31, 127],
1047 [ -2, 73], [-12, 104], [ -9, 91], [-31, 127],
1048 [ -2, 73], [-12, 104], [ -9, 91], [-31, 127]
1049 ], [
1050 [ 20, -15], [ 2, 54], [ 3, 74], [ 20, -15],
1051 [ 2, 54], [ 3, 74], [-28, 127], [-23, 104],
1052 [ -6, 53], [ -1, 54], [ 7, 51], [ 29, 16],
1053 [ 25, 0], [ 14, 0], [-10, 51], [ -3, 62],
1054 [-27, 99], [ 26, 16], [ -4, 85], [-24, 102],
1055 [ 5, 57], [ 6, 57], [-17, 73], [ 14, 57],
1056 [ 20, 40], [ 20, 10], [ 29, 0], [ 54, 0],
1057 [ 37, 42], [ 12, 97], [-32, 127], [-22, 117],
1058 [ -2, 74], [ -4, 85], [-24, 102], [ 5, 57],
1059 [ -6, 93], [-14, 88], [ -6, 44], [ 4, 55],
1060 [-11, 89], [-15, 103], [-21, 116], [ 19, 57],
1061 [ 20, 58], [ 4, 84], [ 6, 96], [ 1, 63],
1062 [ -5, 85], [-13, 106], [ 5, 63], [ 6, 75],
1063 [ -3, 90], [ -1, 101], [ 3, 55], [ -4, 79],
1064 [ -2, 75], [-12, 97], [ -7, 50], [ 1, 60],
1065 [ 0, 41], [ 0, 63], [ 0, 63], [ 0, 63],
1066 [ -9, 83], [ 4, 86], [ 0, 97], [ -7, 72],
1067 [ 13, 41], [ 3, 62], [ 7, 34], [ -9, 88],
1068 [-20, 127], [-36, 127], [-17, 91], [-14, 95],
1069 [-25, 84], [-25, 86], [-12, 89], [-17, 91],
1070 [-31, 127], [-14, 76], [-18, 103], [-13, 90],
1071 [-37, 127], [ 11, 80], [ 5, 76], [ 2, 84],
1072 [ 5, 78], [ -6, 55], [ 4, 61], [-14, 83],
1073 [-37, 127], [ -5, 79], [-11, 104], [-11, 91],
1074 [-30, 127], [ 0, 65], [ -2, 79], [ 0, 72],
1075 [ -4, 92], [ -6, 56], [ 3, 68], [ -8, 71],
1076 [-13, 98], [ -4, 86], [-12, 88], [ -5, 82],
1077 [ -3, 72], [ -4, 67], [ -8, 72], [-16, 89],
1078 [ -9, 69], [ -1, 59], [ 5, 66], [ 4, 57],
1079 [ -4, 71], [ -2, 71], [ 2, 58], [ -1, 74],
1080 [ -4, 44], [ -1, 69], [ 0, 62], [ -7, 51],
1081 [ -4, 47], [ -6, 42], [ -3, 41], [ -6, 53],
1082 [ 8, 76], [ -9, 78], [-11, 83], [ 9, 52],
1083 [ 0, 67], [ -5, 90], [ 1, 67], [-15, 72],
1084 [ -5, 75], [ -8, 80], [-21, 83], [-21, 64],
1085 [-13, 31], [-25, 64], [-29, 94], [ 9, 75],
1086 [ 17, 63], [ -8, 74], [ -5, 35], [ -2, 27],
1087 [ 13, 91], [ 3, 65], [ -7, 69], [ 8, 77],
1088 [-10, 66], [ 3, 62], [ -3, 68], [-20, 81],
1089 [ 0, 30], [ 1, 7], [ -3, 23], [-21, 74],
1090 [ 16, 66], [-23, 124], [ 17, 37], [ 44, -18],
1091 [ 50, -34], [-22, 127], [ 4, 39], [ 0, 42],
1092 [ 7, 34], [ 11, 29], [ 8, 31], [ 6, 37],
1093 [ 7, 42], [ 3, 40], [ 8, 33], [ 13, 43],
1094 [ 13, 36], [ 4, 47], [ 3, 55], [ 2, 58],
1095 [ 6, 60], [ 8, 44], [ 11, 44], [ 14, 42],
1096 [ 7, 48], [ 4, 56], [ 4, 52], [ 13, 37],
1097 [ 9, 49], [ 19, 58], [ 10, 48], [ 12, 45],
1098 [ 0, 69], [ 20, 33], [ 8, 63], [ 35, -18],
1099 [ 33, -25], [ 28, -3], [ 24, 10], [ 27, 0],
1100 [ 34, -14], [ 52, -44], [ 39, -24], [ 19, 17],
1101 [ 31, 25], [ 36, 29], [ 24, 33], [ 34, 15],
1102 [ 30, 20], [ 22, 73], [ 20, 34], [ 19, 31],
1103 [ 27, 44], [ 19, 16], [ 15, 36], [ 15, 36],
1104 [ 21, 28], [ 25, 21], [ 30, 20], [ 31, 12],
1105 [ 27, 16], [ 24, 42], [ 0, 93], [ 14, 56],
1106 [ 15, 57], [ 26, 38], [-24, 127], [-24, 115],
1107 [-22, 82], [ -9, 62], [ 0, 53], [ 0, 59],
1108 [-14, 85], [-13, 89], [-13, 94], [-11, 92],
1109 [-29, 127], [-21, 100], [-14, 57], [-12, 67],
1110 [-11, 71], [-10, 77], [-21, 85], [-16, 88],
1111 [-23, 104], [-15, 98], [-37, 127], [-10, 82],
1112 [ -8, 48], [ -8, 61], [ -8, 66], [ -7, 70],
1113 [-14, 75], [-10, 79], [ -9, 83], [-12, 92],
1114 [-18, 108], [ -4, 79], [-22, 69], [-16, 75],
1115 [ -2, 58], [ 1, 58], [-13, 78], [ -9, 83],
1116 [ -4, 81], [-13, 99], [-13, 81], [ -6, 38],
1117 [-13, 62], [ -6, 58], [ -2, 59], [-16, 73],
1118 [-10, 76], [-13, 86], [ -9, 83], [-10, 87],
1119 [ 0, 0], [-22, 127], [-25, 127], [-25, 120],
1120 [-27, 127], [-19, 114], [-23, 117], [-25, 118],
1121 [-26, 117], [-24, 113], [-28, 118], [-31, 120],
1122 [-37, 124], [-10, 94], [-15, 102], [-10, 99],
1123 [-13, 106], [-50, 127], [ -5, 92], [ 17, 57],
1124 [ -5, 86], [-13, 94], [-12, 91], [ -2, 77],
1125 [ 0, 71], [ -1, 73], [ 4, 64], [ -7, 81],
1126 [ 5, 64], [ 15, 57], [ 1, 67], [ 0, 68],
1127 [-10, 67], [ 1, 68], [ 0, 77], [ 2, 64],
1128 [ 0, 68], [ -5, 78], [ 7, 55], [ 5, 59],
1129 [ 2, 65], [ 14, 54], [ 15, 44], [ 5, 60],
1130 [ 2, 70], [ -2, 76], [-18, 86], [ 12, 70],
1131 [ 5, 64], [-12, 70], [ 11, 55], [ 5, 56],
1132 [ 0, 69], [ 2, 65], [ -6, 74], [ 5, 54],
1133 [ 7, 54], [ -6, 76], [-11, 82], [ -2, 77],
1134 [ -2, 77], [ 25, 42], [ 17, -13], [ 16, -9],
1135 [ 17, -12], [ 27, -21], [ 37, -30], [ 41, -40],
1136 [ 42, -41], [ 48, -47], [ 39, -32], [ 46, -40],
1137 [ 52, -51], [ 46, -41], [ 52, -39], [ 43, -19],
1138 [ 32, 11], [ 61, -55], [ 56, -46], [ 62, -50],
1139 [ 81, -67], [ 45, -20], [ 35, -2], [ 28, 15],
1140 [ 34, 1], [ 39, 1], [ 30, 17], [ 20, 38],
1141 [ 18, 45], [ 15, 54], [ 0, 79], [ 36, -16],
1142 [ 37, -14], [ 37, -17], [ 32, 1], [ 34, 15],
1143 [ 29, 15], [ 24, 25], [ 34, 22], [ 31, 16],
1144 [ 35, 18], [ 31, 28], [ 33, 41], [ 36, 28],
1145 [ 27, 47], [ 21, 62], [ 18, 31], [ 19, 26],
1146 [ 36, 24], [ 24, 23], [ 27, 16], [ 24, 30],
1147 [ 31, 29], [ 22, 41], [ 22, 42], [ 16, 60],
1148 [ 15, 52], [ 14, 60], [ 3, 78], [-16, 123],
1149 [ 21, 53], [ 22, 56], [ 25, 61], [ 21, 33],
1150 [ 19, 50], [ 17, 61], [ -3, 78], [ -8, 74],
1151 [ -9, 72], [-10, 72], [-18, 75], [-12, 71],
1152 [-11, 63], [ -5, 70], [-17, 75], [-14, 72],
1153 [-16, 67], [ -8, 53], [-14, 59], [ -9, 52],
1154 [-11, 68], [ 9, -2], [ 30, -10], [ 31, -4],
1155 [ 33, -1], [ 33, 7], [ 31, 12], [ 37, 23],
1156 [ 31, 38], [ 20, 64], [ -9, 71], [ -7, 37],
1157 [ -8, 44], [-11, 49], [-10, 56], [-12, 59],
1158 [ -8, 63], [ -9, 67], [ -6, 68], [-10, 79],
1159 [ -3, 78], [ -8, 74], [ -9, 72], [-10, 72],
1160 [-18, 75], [-12, 71], [-11, 63], [ -5, 70],
1161 [-17, 75], [-14, 72], [-16, 67], [ -8, 53],
1162 [-14, 59], [ -9, 52], [-11, 68], [ 9, -2],
1163 [ 30, -10], [ 31, -4], [ 33, -1], [ 33, 7],
1164 [ 31, 12], [ 37, 23], [ 31, 38], [ 20, 64],
1165 [ 11, 80], [ 5, 76], [ 2, 84], [ 5, 78],
1166 [ -6, 55], [ 4, 61], [-14, 83], [-37, 127],
1167 [ -5, 79], [-11, 104], [-11, 91], [-30, 127],
1168 [ 11, 80], [ 5, 76], [ 2, 84], [ 5, 78],
1169 [ -6, 55], [ 4, 61], [-14, 83], [-37, 127],
1170 [ -5, 79], [-11, 104], [-11, 91], [-30, 127],
1171 [ -4, 86], [-12, 88], [ -5, 82], [ -3, 72],
1172 [ -4, 67], [ -8, 72], [-16, 89], [ -9, 69],
1173 [ -1, 59], [ 5, 66], [ 4, 57], [ -4, 71],
1174 [ -2, 71], [ 2, 58], [ -1, 74], [ -4, 44],
1175 [ -1, 69], [ 0, 62], [ -7, 51], [ -4, 47],
1176 [ -6, 42], [ -3, 41], [ -6, 53], [ 8, 76],
1177 [ -9, 78], [-11, 83], [ 9, 52], [ 0, 67],
1178 [ -5, 90], [ 1, 67], [-15, 72], [ -5, 75],
1179 [ -8, 80], [-21, 83], [-21, 64], [-13, 31],
1180 [-25, 64], [-29, 94], [ 9, 75], [ 17, 63],
1181 [ -8, 74], [ -5, 35], [ -2, 27], [ 13, 91],
1182 [ -4, 86], [-12, 88], [ -5, 82], [ -3, 72],
1183 [ -4, 67], [ -8, 72], [-16, 89], [ -9, 69],
1184 [ -1, 59], [ 5, 66], [ 4, 57], [ -4, 71],
1185 [ -2, 71], [ 2, 58], [ -1, 74], [ -4, 44],
1186 [ -1, 69], [ 0, 62], [ -7, 51], [ -4, 47],
1187 [ -6, 42], [ -3, 41], [ -6, 53], [ 8, 76],
1188 [ -9, 78], [-11, 83], [ 9, 52], [ 0, 67],
1189 [ -5, 90], [ 1, 67], [-15, 72], [ -5, 75],
1190 [ -8, 80], [-21, 83], [-21, 64], [-13, 31],
1191 [-25, 64], [-29, 94], [ 9, 75], [ 17, 63],
1192 [ -8, 74], [ -5, 35], [ -2, 27], [ 13, 91],
1193 [ 4, 39], [ 0, 42], [ 7, 34], [ 11, 29],
1194 [ 8, 31], [ 6, 37], [ 7, 42], [ 3, 40],
1195 [ 8, 33], [ 13, 43], [ 13, 36], [ 4, 47],
1196 [ 3, 55], [ 2, 58], [ 6, 60], [ 8, 44],
1197 [ 11, 44], [ 14, 42], [ 7, 48], [ 4, 56],
1198 [ 4, 52], [ 13, 37], [ 9, 49], [ 19, 58],
1199 [ 10, 48], [ 12, 45], [ 0, 69], [ 20, 33],
1200 [ 8, 63], [ 35, -18], [ 33, -25], [ 28, -3],
1201 [ 24, 10], [ 27, 0], [ 34, -14], [ 52, -44],
1202 [ 39, -24], [ 19, 17], [ 31, 25], [ 36, 29],
1203 [ 24, 33], [ 34, 15], [ 30, 20], [ 22, 73],
1204 [ 4, 39], [ 0, 42], [ 7, 34], [ 11, 29],
1205 [ 8, 31], [ 6, 37], [ 7, 42], [ 3, 40],
1206 [ 8, 33], [ 13, 43], [ 13, 36], [ 4, 47],
1207 [ 3, 55], [ 2, 58], [ 6, 60], [ 8, 44],
1208 [ 11, 44], [ 14, 42], [ 7, 48], [ 4, 56],
1209 [ 4, 52], [ 13, 37], [ 9, 49], [ 19, 58],
1210 [ 10, 48], [ 12, 45], [ 0, 69], [ 20, 33],
1211 [ 8, 63], [ 35, -18], [ 33, -25], [ 28, -3],
1212 [ 24, 10], [ 27, 0], [ 34, -14], [ 52, -44],
1213 [ 39, -24], [ 19, 17], [ 31, 25], [ 36, 29],
1214 [ 24, 33], [ 34, 15], [ 30, 20], [ 22, 73],
1215 [ -3, 78], [ -8, 74], [ -9, 72], [-10, 72],
1216 [-18, 75], [-12, 71], [-11, 63], [ -5, 70],
1217 [-17, 75], [-14, 72], [-16, 67], [ -8, 53],
1218 [-14, 59], [ -9, 52], [-11, 68], [ -3, 78],
1219 [ -8, 74], [ -9, 72], [-10, 72], [-18, 75],
1220 [-12, 71], [-11, 63], [ -5, 70], [-17, 75],
1221 [-14, 72], [-16, 67], [ -8, 53], [-14, 59],
1222 [ -9, 52], [-11, 68], [ 9, -2], [ 30, -10],
1223 [ 31, -4], [ 33, -1], [ 33, 7], [ 31, 12],
1224 [ 37, 23], [ 31, 38], [ 20, 64], [ 9, -2],
1225 [ 30, -10], [ 31, -4], [ 33, -1], [ 33, 7],
1226 [ 31, 12], [ 37, 23], [ 31, 38], [ 20, 64],
1227 [ -9, 71], [ -7, 37], [ -8, 44], [-11, 49],
1228 [-10, 56], [-12, 59], [ -8, 63], [ -9, 67],
1229 [ -6, 68], [-10, 79], [ -3, 78], [ -8, 74],
1230 [ -9, 72], [-10, 72], [-18, 75], [-12, 71],
1231 [-11, 63], [ -5, 70], [-17, 75], [-14, 72],
1232 [-16, 67], [ -8, 53], [-14, 59], [ -9, 52],
1233 [-11, 68], [ -3, 78], [ -8, 74], [ -9, 72],
1234 [-10, 72], [-18, 75], [-12, 71], [-11, 63],
1235 [ -5, 70], [-17, 75], [-14, 72], [-16, 67],
1236 [ -8, 53], [-14, 59], [ -9, 52], [-11, 68],
1237 [ 9, -2], [ 30, -10], [ 31, -4], [ 33, -1],
1238 [ 33, 7], [ 31, 12], [ 37, 23], [ 31, 38],
1239 [ 20, 64], [ 9, -2], [ 30, -10], [ 31, -4],
1240 [ 33, -1], [ 33, 7], [ 31, 12], [ 37, 23],
1241 [ 31, 38], [ 20, 64], [ -9, 71], [ -7, 37],
1242 [ -8, 44], [-11, 49], [-10, 56], [-12, 59],
1243 [ -8, 63], [ -9, 67], [ -6, 68], [-10, 79],
1244 [-22, 127], [-25, 127], [-25, 120], [-27, 127],
1245 [-19, 114], [-23, 117], [-25, 118], [-26, 117],
1246 [-24, 113], [-28, 118], [-31, 120], [-37, 124],
1247 [-10, 94], [-15, 102], [-10, 99], [-13, 106],
1248 [-50, 127], [ -5, 92], [ 17, 57], [ -5, 86],
1249 [-13, 94], [-12, 91], [ -2, 77], [ 0, 71],
1250 [ -1, 73], [ 4, 64], [ -7, 81], [ 5, 64],
1251 [ 15, 57], [ 1, 67], [ 0, 68], [-10, 67],
1252 [ 1, 68], [ 0, 77], [ 2, 64], [ 0, 68],
1253 [ -5, 78], [ 7, 55], [ 5, 59], [ 2, 65],
1254 [ 14, 54], [ 15, 44], [ 5, 60], [ 2, 70],
1255 [-22, 127], [-25, 127], [-25, 120], [-27, 127],
1256 [-19, 114], [-23, 117], [-25, 118], [-26, 117],
1257 [-24, 113], [-28, 118], [-31, 120], [-37, 124],
1258 [-10, 94], [-15, 102], [-10, 99], [-13, 106],
1259 [-50, 127], [ -5, 92], [ 17, 57], [ -5, 86],
1260 [-13, 94], [-12, 91], [ -2, 77], [ 0, 71],
1261 [ -1, 73], [ 4, 64], [ -7, 81], [ 5, 64],
1262 [ 15, 57], [ 1, 67], [ 0, 68], [-10, 67],
1263 [ 1, 68], [ 0, 77], [ 2, 64], [ 0, 68],
1264 [ -5, 78], [ 7, 55], [ 5, 59], [ 2, 65],
1265 [ 14, 54], [ 15, 44], [ 5, 60], [ 2, 70],
1266 [ 17, -13], [ 16, -9], [ 17, -12], [ 27, -21],
1267 [ 37, -30], [ 41, -40], [ 42, -41], [ 48, -47],
1268 [ 39, -32], [ 46, -40], [ 52, -51], [ 46, -41],
1269 [ 52, -39], [ 43, -19], [ 32, 11], [ 61, -55],
1270 [ 56, -46], [ 62, -50], [ 81, -67], [ 45, -20],
1271 [ 35, -2], [ 28, 15], [ 34, 1], [ 39, 1],
1272 [ 30, 17], [ 20, 38], [ 18, 45], [ 15, 54],
1273 [ 0, 79], [ 36, -16], [ 37, -14], [ 37, -17],
1274 [ 32, 1], [ 34, 15], [ 29, 15], [ 24, 25],
1275 [ 34, 22], [ 31, 16], [ 35, 18], [ 31, 28],
1276 [ 33, 41], [ 36, 28], [ 27, 47], [ 21, 62],
1277 [ 17, -13], [ 16, -9], [ 17, -12], [ 27, -21],
1278 [ 37, -30], [ 41, -40], [ 42, -41], [ 48, -47],
1279 [ 39, -32], [ 46, -40], [ 52, -51], [ 46, -41],
1280 [ 52, -39], [ 43, -19], [ 32, 11], [ 61, -55],
1281 [ 56, -46], [ 62, -50], [ 81, -67], [ 45, -20],
1282 [ 35, -2], [ 28, 15], [ 34, 1], [ 39, 1],
1283 [ 30, 17], [ 20, 38], [ 18, 45], [ 15, 54],
1284 [ 0, 79], [ 36, -16], [ 37, -14], [ 37, -17],
1285 [ 32, 1], [ 34, 15], [ 29, 15], [ 24, 25],
1286 [ 34, 22], [ 31, 16], [ 35, 18], [ 31, 28],
1287 [ 33, 41], [ 36, 28], [ 27, 47], [ 21, 62],
1288 [-24, 115], [-22, 82], [ -9, 62], [ 0, 53],
1289 [ 0, 59], [-14, 85], [-13, 89], [-13, 94],
1290 [-11, 92], [-29, 127], [-21, 100], [-14, 57],
1291 [-12, 67], [-11, 71], [-10, 77], [-21, 85],
1292 [-16, 88], [-23, 104], [-15, 98], [-37, 127],
1293 [-10, 82], [ -8, 48], [ -8, 61], [ -8, 66],
1294 [ -7, 70], [-14, 75], [-10, 79], [ -9, 83],
1295 [-12, 92], [-18, 108], [-24, 115], [-22, 82],
1296 [ -9, 62], [ 0, 53], [ 0, 59], [-14, 85],
1297 [-13, 89], [-13, 94], [-11, 92], [-29, 127],
1298 [-21, 100], [-14, 57], [-12, 67], [-11, 71],
1299 [-10, 77], [-21, 85], [-16, 88], [-23, 104],
1300 [-15, 98], [-37, 127], [-10, 82], [ -8, 48],
1301 [ -8, 61], [ -8, 66], [ -7, 70], [-14, 75],
1302 [-10, 79], [ -9, 83], [-12, 92], [-18, 108],
1303 [ -5, 79], [-11, 104], [-11, 91], [-30, 127],
1304 [ -5, 79], [-11, 104], [-11, 91], [-30, 127],
1305 [ -5, 79], [-11, 104], [-11, 91], [-30, 127]
1306 ]
1307 ];