make all codec crates export just register_all functions and document them
[nihav.git] / nihav-realmedia / src / codecs / ra144.rs
1 use nihav_core::formats::*;
2 use nihav_core::frame::*;
3 use nihav_core::codecs::*;
4 use nihav_core::io::bitreader::*;
5
6 const NBLOCKS: usize = 4;
7 const BLOCKSIZE: usize = 40;
8 const LPC_ORDER: usize = 10;
9 const BUFFERSIZE: usize = 146;
10 const FRAME_SIZE: usize = 20;
11
12 struct RA144Decoder {
13 chmap: NAChannelMap,
14 ainfo: NAAudioInfo,
15 info: NACodecInfoRef,
16
17 old_energy: u16,
18 lpc_data: [[i32; LPC_ORDER]; 2],
19 frame_no: usize,
20 lpc_refl_rms: [u32; 2],
21 audio: [i16; BLOCKSIZE + LPC_ORDER],
22 adapt_cb: [i16; BUFFERSIZE + 2],
23 }
24
25 impl RA144Decoder {
26 fn new() -> Self {
27 RA144Decoder {
28 chmap: NAChannelMap::new(),
29 ainfo: NAAudioInfo::new(0, 1, SND_S16_FORMAT, NBLOCKS * BLOCKSIZE),
30 info: NACodecInfo::new_dummy(),
31
32 old_energy: 0,
33 lpc_data: [[0; 10]; 2],
34 frame_no: 0,
35 lpc_refl_rms: [0; 2],
36 audio: [0; BLOCKSIZE + LPC_ORDER],
37 adapt_cb: [0; BUFFERSIZE + 2],
38 }
39 }
40
41 fn evaluate_coeffs(&mut self, lpc_refl: &[i32; LPC_ORDER]) {
42 let mut tmp: [i32; LPC_ORDER] = [0; LPC_ORDER];
43
44 for i in 0..LPC_ORDER {
45 let src;
46 let dst;
47 if (i & 1) == 0 {
48 src = &self.lpc_data[self.frame_no];
49 dst = &mut tmp;
50 } else {
51 src = &tmp;
52 dst = &mut self.lpc_data[self.frame_no];
53 }
54 dst[i] = lpc_refl[i] << 4;
55
56 for j in 0..i {
57 dst[j] = ((lpc_refl[i] * src[i - j - 1]) >> 12) + src[j];
58 }
59 }
60 for i in 0..LPC_ORDER {
61 self.lpc_data[self.frame_no][i] >>= 4;
62 }
63 }
64 fn interpolate(&mut self, coeffs: &mut [i16; LPC_ORDER], scale1: i32, copyold: bool, energy: u16) -> u32 {
65 let scale2 = (NBLOCKS as i32) - scale1;
66 {
67 let src1 = &self.lpc_data[self.frame_no];
68 let src2 = &self.lpc_data[self.frame_no ^ 1];
69 for i in 0..LPC_ORDER {
70 coeffs[i] = ((scale1 * src1[i] + scale2 * src2[i]) >> 2) as i16;
71 }
72 }
73 if let Some(rms) = eval_reflection(coeffs) {
74 rescale_rms(rms, energy)
75 } else {
76 let src = if copyold { &self.lpc_data[self.frame_no ^ 1] } else { &self.lpc_data[self.frame_no] };
77 for i in 0..LPC_ORDER {
78 coeffs[i] = src[i] as i16;
79 }
80 rescale_rms(self.lpc_refl_rms[if copyold { 1 } else { 0 }], energy)
81 }
82 }
83 fn process_subblock(&mut self, br: &mut BitReader, lpc_coeffs: &[i16; LPC_ORDER], rms: u32) -> DecoderResult<()> {
84 let cba_idx = br.read(7)? as usize;
85 let gain = br.read(8)? as usize;
86 let cb1_idx = br.read(7)? as usize;
87 let cb2_idx = br.read(7)? as usize;
88
89 let mut tmp_a: [i16; BLOCKSIZE] = [0; BLOCKSIZE];
90 let mut m: [u32; 3] = [0; 3];
91 if cba_idx != 0 {
92 let len = cba_idx + BLOCKSIZE/2 - 1;
93 let soff = BUFFERSIZE - len;
94 for i in 0..len.min(BLOCKSIZE) {
95 tmp_a[i] = self.adapt_cb[i + soff];
96 }
97 for i in len..BLOCKSIZE {
98 tmp_a[i] = self.adapt_cb[i + soff - len];
99 }
100 m[0] = (calc_irms(&tmp_a) * rms) >> 12;
101 } else {
102 m[0] = 0;
103 }
104 m[1] = ((RA144_CODEBOOK1[cb1_idx] as u32) * rms) >> 8;
105 m[2] = ((RA144_CODEBOOK2[cb2_idx] as u32) * rms) >> 8;
106 for i in 0..3 {
107 m[i] = (m[i] * (RA144_GAIN_VAL_TAB[gain][i] as u32)) >> RA144_GAIN_EXP_TAB[gain];
108 }
109
110 for i in 0..(BUFFERSIZE - BLOCKSIZE) {
111 self.adapt_cb[i] = self.adapt_cb[i + BLOCKSIZE];
112 }
113
114 let doff = BUFFERSIZE - BLOCKSIZE;
115 if m[0] != 0 {
116 for i in 0..BLOCKSIZE {
117 let sum = (m[0] as i32) * (tmp_a[i] as i32)
118 + (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
119 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
120 self.adapt_cb[i + doff] = (sum >> 12) as i16;
121 }
122 } else {
123 for i in 0..BLOCKSIZE {
124 let sum = (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
125 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
126 self.adapt_cb[i + doff] = (sum >> 12) as i16;
127 }
128 }
129
130 for i in 0..LPC_ORDER {
131 self.audio[i] = self.audio[i + BLOCKSIZE];
132 }
133 if celp_synth_filter(&mut self.audio, &self.adapt_cb, lpc_coeffs) {
134 self.audio = [0; BLOCKSIZE + LPC_ORDER];
135 }
136 Ok(())
137 }
138 }
139
140 const CHMAP_MONO: [NAChannelType; 1] = [NAChannelType::C];
141
142 fn celp_synth_filter(dst: &mut [i16], src: &[i16], filt: &[i16; LPC_ORDER]) -> bool { //1,0,0xfff
143 for i in 0..BLOCKSIZE {
144 let mut sum = -0xFFF;
145 for j in 0..LPC_ORDER {
146 sum += (filt[j] as i32) * (dst[LPC_ORDER + i - j - 1] as i32);
147 }
148 let sum1 = (-sum >> 12) + (src[BUFFERSIZE - BLOCKSIZE + i] as i32);
149 if ((sum1 >> 16) != 0) && ((sum1 >> 16) != -1) { // overflow
150 return true;
151 }
152 dst[LPC_ORDER + i] = sum1 as i16;
153 }
154 false
155 }
156
157 fn fixp_sqrt(mut val: u32) -> u32 {
158 let mut shift = 2;
159 while val >= (1 << 12) {
160 val >>= 2;
161 shift += 1;
162 }
163 (SQRT_TABLE[val as usize] as u32) << shift
164 }
165
166 fn calc_rms(coeffs: &[i32; LPC_ORDER]) -> u32 {
167 let mut res = 1 << 16;
168 let mut shift = 10;
169
170 for i in 0..LPC_ORDER {
171 res = ((((1 << 24) - ((coeffs[i] * coeffs[i]) as u32)) >> 12) * res) >> 12;
172 if res == 0 { return 0; }
173 while res < (1 << 14) {
174 res <<= 2;
175 shift += 1;
176 }
177 }
178 fixp_sqrt(res) >> shift
179 }
180
181 fn calc_irms(coeffs: &[i16; BLOCKSIZE]) -> u32 {
182 let mut sum = 0;
183 for i in 0..BLOCKSIZE {
184 sum += ((coeffs[i] as i32) * (coeffs[i] as i32)) as u32;
185 }
186 if sum != 0 {
187 (1 << 29) / (fixp_sqrt(sum) >> 8)
188 } else {
189 0
190 }
191 }
192
193 fn rescale_rms(rms: u32, energy: u16) -> u32 {
194 (rms * (energy as u32)) >> 10
195 }
196
197 fn eval_reflection(coeffs: &[i16; LPC_ORDER]) -> Option<u32> {
198 let mut tmp1: [i32; LPC_ORDER] = [0; LPC_ORDER];
199 let mut tmp2: [i32; LPC_ORDER] = [0; LPC_ORDER];
200 let mut tmp3: [i32; LPC_ORDER] = [0; LPC_ORDER];
201
202 for i in 0..LPC_ORDER {
203 tmp2[i] = coeffs[i] as i32;
204 }
205 tmp3[LPC_ORDER - 1] = tmp2[LPC_ORDER - 1];
206
207 if (tmp2[LPC_ORDER - 1] as u32).wrapping_add(0x1000) > 0x1FFF {
208 return None;
209 }
210
211 for i in (0..(LPC_ORDER - 1)).rev() {
212 let src;
213 let dst;
214 if (i & 1) == 0 {
215 src = &tmp2;
216 dst = &mut tmp1;
217 } else {
218 src = &tmp1;
219 dst = &mut tmp2;
220 }
221 let a = (1 << 12) - ((src[i + 1] * src[i + 1]) >> 12);
222 let scale = if a != 0 { (1 << 24) / a } else { (1 << 24) };
223 for j in 0..=i {
224 let result = (src[j] - ((tmp3[i + 1] * src[i - j]) >> 12)).checked_mul(scale);
225 if let Some(val) = result {
226 dst[j] = val >> 12;
227 } else {
228 return None;
229 }
230 }
231 if (dst[i] as u32).wrapping_add(0x1000) > 0x1FFF {
232 return None;
233 }
234 tmp3[i] = dst[i];
235 }
236
237 Some(calc_rms(&tmp3))
238 }
239
240 fn clip_out(sample: i16) -> i16 {
241 sample.max(-16384 >> 2).min(16383 >> 2)
242 }
243
244 impl NADecoder for RA144Decoder {
245 fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> {
246 if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() {
247 self.chmap.add_channels(&CHMAP_MONO);
248 self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(),
249 1,
250 SND_S16_FORMAT, NBLOCKS * BLOCKSIZE);
251 self.info = info.replace_info(NACodecTypeInfo::Audio(self.ainfo));
252 Ok(())
253 } else {
254 Err(DecoderError::InvalidData)
255 }
256 }
257 fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
258 let info = pkt.get_stream().get_info();
259 validate!(info.get_properties().is_audio());
260 let pktbuf = pkt.get_buffer();
261 let nframes = pktbuf.len() / FRAME_SIZE;
262
263 let duration = NBLOCKS * BLOCKSIZE * nframes;
264
265 let abuf = alloc_audio_buffer(self.ainfo, duration, self.chmap.clone())?;
266 let mut adata = abuf.get_abuf_i16().unwrap();
267 let dst = adata.get_data_mut().unwrap();
268
269 for (input, output) in pktbuf.chunks(FRAME_SIZE).zip(dst.chunks_mut(NBLOCKS * BLOCKSIZE)) {
270 let mut br = BitReader::new(input, BitReaderMode::BE);
271
272 let mut lpc_refl: [i32; LPC_ORDER] = [0; LPC_ORDER];
273 for i in 0..LPC_ORDER {
274 lpc_refl[i] = RA144_LPC_REFL_CODEBOOK[i][br.read(RA144_LPC_SIZES[i])? as usize] as i32;
275 }
276
277 self.evaluate_coeffs(&lpc_refl);
278 self.lpc_refl_rms[0] = calc_rms(&lpc_refl);
279
280 let energy = RA144_ENERGY_TAB[br.read(5)? as usize];
281
282 let mut block_coeffs: [[i16; LPC_ORDER]; NBLOCKS] = [[0; LPC_ORDER]; NBLOCKS];
283 let mut refl_rms: [u32; NBLOCKS] = [0; NBLOCKS];
284
285 let old_energy = self.old_energy;
286 let interp_energy = (fixp_sqrt((energy as u32) * (old_energy as u32)) >> 12) as u16;
287 refl_rms[0] = self.interpolate(&mut block_coeffs[0], 1, true, old_energy);
288 refl_rms[1] = self.interpolate(&mut block_coeffs[1], 2, energy <= old_energy, interp_energy);
289 refl_rms[2] = self.interpolate(&mut block_coeffs[2], 3, false, energy);
290 refl_rms[3] = rescale_rms(self.lpc_refl_rms[0], energy);
291 for i in 0..LPC_ORDER { block_coeffs[3][i] = self.lpc_data[self.frame_no][i] as i16; }
292
293 for (i, block) in output.chunks_mut(BLOCKSIZE).enumerate() {
294
295 self.process_subblock(&mut br, &block_coeffs[i], refl_rms[i])?;
296 for j in 0..BLOCKSIZE {
297 block[j] = clip_out(self.audio[j + LPC_ORDER]) << 2;
298 }
299 }
300
301 self.old_energy = energy;
302 self.lpc_refl_rms[1] = self.lpc_refl_rms[0];
303 self.frame_no ^= 1;
304 }
305
306 let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
307 frm.set_keyframe(true);
308 Ok(frm.into_ref())
309 }
310 fn flush(&mut self) {
311 }
312 }
313
314 pub fn get_decoder() -> Box<dyn NADecoder + Send> {
315 Box::new(RA144Decoder::new())
316 }
317
318 #[cfg(test)]
319 mod test {
320 use nihav_core::codecs::RegisteredDecoders;
321 use nihav_core::demuxers::RegisteredDemuxers;
322 use nihav_core::test::dec_video::*;
323 use crate::realmedia_register_all_codecs;
324 use crate::realmedia_register_all_demuxers;
325 #[test]
326 fn test_ra144() {
327 let mut dmx_reg = RegisteredDemuxers::new();
328 realmedia_register_all_demuxers(&mut dmx_reg);
329 let mut dec_reg = RegisteredDecoders::new();
330 realmedia_register_all_codecs(&mut dec_reg);
331
332 let file = "assets/RV/ra3_in_rm_file.rm";
333 test_decode_audio("realmedia", file, Some(5000), None/*Some("ra14.4")*/, &dmx_reg, &dec_reg);
334 }
335 }
336
337 const RA144_LPC_SIZES: [u8; LPC_ORDER] = [ 6, 5, 5, 4, 4, 3, 3, 3, 3, 2 ];
338 const RA144_LPC_REFL_CODEBOOK: [&[i16]; LPC_ORDER] = [
339 LPC_REFL_CB0, LPC_REFL_CB1, LPC_REFL_CB2, LPC_REFL_CB3, LPC_REFL_CB4,
340 LPC_REFL_CB5, LPC_REFL_CB6, LPC_REFL_CB7, LPC_REFL_CB8, LPC_REFL_CB9,
341 ];
342 const LPC_REFL_CB0: &[i16; 64] = &[
343 -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879,
344 -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631,
345 -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268,
346 -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676,
347 -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660,
348 -1508, -1348, -1185, -994, -798, -600, -374, -110,
349 152, 447, 720, 982, 1229, 1456, 1682, 1916,
350 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814
351 ];
352 const LPC_REFL_CB1: &[i16; 32] = &[
353 -3091, -2386, -1871, -1425, -1021, -649, -316, -20,
354 267, 544, 810, 1065, 1305, 1534, 1756, 1970,
355 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263,
356 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020
357 ];
358 const LPC_REFL_CB2: &[i16; 32] = &[
359 -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149,
360 -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876,
361 -721, -561, -394, -228, -54, 119, 296, 484,
362 683, 895, 1123, 1373, 1651, 1965, 2360, 2854
363 ];
364 const LPC_REFL_CB3: &[i16; 16] = &[
365 -1845, -1057, -522, -77, 301, 647, 975, 1285,
366 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569
367 ];
368 const LPC_REFL_CB4: &[i16; 16] = &[
369 -2691, -2187, -1788, -1435, -1118, -837, -571, -316,
370 -59, 201, 470, 759, 1077, 1457, 1908, 2495
371 ];
372 const LPC_REFL_CB5: &[i16; 8] = &[
373 -1372, -474, 133, 632, 1100, 1571, 2075, 2672
374 ];
375 const LPC_REFL_CB6: &[i16; 8] = &[
376 -2389, -1787, -1231, -717, -239, 234, 770, 1474
377 ];
378 const LPC_REFL_CB7: &[i16; 8] = &[
379 -1569, -864, -296, 200, 670, 1151, 1709, 2385
380 ];
381 const LPC_REFL_CB8: &[i16; 8] = &[
382 -2200, -1608, -1062, -569, -120, 338, 863, 1621
383 ];
384 const LPC_REFL_CB9: &[i16; 4] = &[
385 -617, 190, 802, 1483
386 ];
387
388 const RA144_ENERGY_TAB: [u16; 32] = [
389 0, 16, 20, 25, 32, 41, 51, 65,
390 81, 103, 129, 163, 205, 259, 326, 410,
391 516, 650, 819, 1031, 1298, 1634, 2057, 2590,
392 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345
393 ];
394
395 const SQRT_TABLE: [u16; 4096] = [
396 0x0000,0x0400,0x05a8,0x06ed,0x0800,0x08f1,0x09cc,0x0a95,
397 0x0b50,0x0c00,0x0ca6,0x0d44,0x0ddb,0x0e6c,0x0ef7,0x0f7d,
398 0x1000,0x107e,0x10f8,0x116f,0x11e3,0x1254,0x12c2,0x132e,
399 0x1398,0x1400,0x1465,0x14c8,0x152a,0x158a,0x15e8,0x1645,
400 0x16a0,0x16fa,0x1752,0x17aa,0x1800,0x1854,0x18a8,0x18fa,
401 0x194c,0x199c,0x19ec,0x1a3a,0x1a88,0x1ad5,0x1b21,0x1b6c,
402 0x1bb6,0x1c00,0x1c48,0x1c90,0x1cd8,0x1d1e,0x1d64,0x1daa,
403 0x1dee,0x1e33,0x1e76,0x1eb9,0x1efb,0x1f3d,0x1f7e,0x1fbf,
404 0x2000,0x203f,0x207f,0x20bd,0x20fc,0x2139,0x2177,0x21b4,
405 0x21f0,0x222d,0x2268,0x22a4,0x22df,0x2319,0x2353,0x238d,
406 0x23c6,0x2400,0x2438,0x2471,0x24a9,0x24e0,0x2518,0x254f,
407 0x2585,0x25bc,0x25f2,0x2628,0x265d,0x2693,0x26c8,0x26fc,
408 0x2731,0x2765,0x2799,0x27cc,0x2800,0x2833,0x2865,0x2898,
409 0x28ca,0x28fc,0x292e,0x2960,0x2991,0x29c2,0x29f3,0x2a24,
410 0x2a54,0x2a85,0x2ab5,0x2ae5,0x2b14,0x2b44,0x2b73,0x2ba2,
411 0x2bd1,0x2c00,0x2c2e,0x2c5c,0x2c8a,0x2cb8,0x2ce6,0x2d13,
412 0x2d41,0x2d6e,0x2d9b,0x2dc8,0x2df4,0x2e21,0x2e4d,0x2e79,
413 0x2ea5,0x2ed1,0x2efd,0x2f28,0x2f54,0x2f7f,0x2faa,0x2fd5,
414 0x3000,0x302a,0x3055,0x307f,0x30a9,0x30d3,0x30fd,0x3127,
415 0x3150,0x317a,0x31a3,0x31cc,0x31f5,0x321e,0x3247,0x3270,
416 0x3298,0x32c1,0x32e9,0x3311,0x3339,0x3361,0x3389,0x33b0,
417 0x33d8,0x3400,0x3427,0x344e,0x3475,0x349c,0x34c3,0x34ea,
418 0x3510,0x3537,0x355d,0x3584,0x35aa,0x35d0,0x35f6,0x361c,
419 0x3642,0x3667,0x368d,0x36b2,0x36d8,0x36fd,0x3722,0x3747,
420 0x376c,0x3791,0x37b6,0x37db,0x3800,0x3824,0x3848,0x386d,
421 0x3891,0x38b5,0x38d9,0x38fd,0x3921,0x3945,0x3969,0x398c,
422 0x39b0,0x39d3,0x39f7,0x3a1a,0x3a3d,0x3a60,0x3a83,0x3aa6,
423 0x3ac9,0x3aec,0x3b0f,0x3b31,0x3b54,0x3b76,0x3b99,0x3bbb,
424 0x3bdd,0x3c00,0x3c22,0x3c44,0x3c66,0x3c87,0x3ca9,0x3ccb,
425 0x3ced,0x3d0e,0x3d30,0x3d51,0x3d72,0x3d94,0x3db5,0x3dd6,
426 0x3df7,0x3e18,0x3e39,0x3e5a,0x3e7b,0x3e9c,0x3ebc,0x3edd,
427 0x3efd,0x3f1e,0x3f3e,0x3f5f,0x3f7f,0x3f9f,0x3fbf,0x3fdf,
428 0x4000,0x401f,0x403f,0x405f,0x407f,0x409f,0x40be,0x40de,
429 0x40fe,0x411d,0x413c,0x415c,0x417b,0x419a,0x41ba,0x41d9,
430 0x41f8,0x4217,0x4236,0x4255,0x4273,0x4292,0x42b1,0x42d0,
431 0x42ee,0x430d,0x432b,0x434a,0x4368,0x4387,0x43a5,0x43c3,
432 0x43e1,0x4400,0x441e,0x443c,0x445a,0x4478,0x4495,0x44b3,
433 0x44d1,0x44ef,0x450c,0x452a,0x4548,0x4565,0x4583,0x45a0,
434 0x45be,0x45db,0x45f8,0x4615,0x4633,0x4650,0x466d,0x468a,
435 0x46a7,0x46c4,0x46e1,0x46fe,0x471b,0x4737,0x4754,0x4771,
436 0x478d,0x47aa,0x47c7,0x47e3,0x4800,0x481c,0x4838,0x4855,
437 0x4871,0x488d,0x48a9,0x48c6,0x48e2,0x48fe,0x491a,0x4936,
438 0x4952,0x496e,0x498a,0x49a5,0x49c1,0x49dd,0x49f9,0x4a14,
439 0x4a30,0x4a4b,0x4a67,0x4a83,0x4a9e,0x4ab9,0x4ad5,0x4af0,
440 0x4b0b,0x4b27,0x4b42,0x4b5d,0x4b78,0x4b93,0x4bae,0x4bca,
441 0x4be5,0x4c00,0x4c1a,0x4c35,0x4c50,0x4c6b,0x4c86,0x4ca1,
442 0x4cbb,0x4cd6,0x4cf1,0x4d0b,0x4d26,0x4d40,0x4d5b,0x4d75,
443 0x4d90,0x4daa,0x4dc4,0x4ddf,0x4df9,0x4e13,0x4e2d,0x4e48,
444 0x4e62,0x4e7c,0x4e96,0x4eb0,0x4eca,0x4ee4,0x4efe,0x4f18,
445 0x4f32,0x4f4c,0x4f65,0x4f7f,0x4f99,0x4fb3,0x4fcc,0x4fe6,
446 0x5000,0x5019,0x5033,0x504c,0x5066,0x507f,0x5099,0x50b2,
447 0x50cb,0x50e5,0x50fe,0x5117,0x5130,0x514a,0x5163,0x517c,
448 0x5195,0x51ae,0x51c7,0x51e0,0x51f9,0x5212,0x522b,0x5244,
449 0x525d,0x5276,0x528f,0x52a7,0x52c0,0x52d9,0x52f2,0x530a,
450 0x5323,0x533c,0x5354,0x536d,0x5385,0x539e,0x53b6,0x53cf,
451 0x53e7,0x5400,0x5418,0x5430,0x5449,0x5461,0x5479,0x5491,
452 0x54a9,0x54c2,0x54da,0x54f2,0x550a,0x5522,0x553a,0x5552,
453 0x556a,0x5582,0x559a,0x55b2,0x55ca,0x55e2,0x55fa,0x5611,
454 0x5629,0x5641,0x5659,0x5670,0x5688,0x56a0,0x56b7,0x56cf,
455 0x56e6,0x56fe,0x5716,0x572d,0x5745,0x575c,0x5773,0x578b,
456 0x57a2,0x57ba,0x57d1,0x57e8,0x5800,0x5817,0x582e,0x5845,
457 0x585c,0x5874,0x588b,0x58a2,0x58b9,0x58d0,0x58e7,0x58fe,
458 0x5915,0x592c,0x5943,0x595a,0x5971,0x5988,0x599f,0x59b5,
459 0x59cc,0x59e3,0x59fa,0x5a11,0x5a27,0x5a3e,0x5a55,0x5a6b,
460 0x5a82,0x5a99,0x5aaf,0x5ac6,0x5adc,0x5af3,0x5b09,0x5b20,
461 0x5b36,0x5b4d,0x5b63,0x5b7a,0x5b90,0x5ba6,0x5bbd,0x5bd3,
462 0x5be9,0x5c00,0x5c16,0x5c2c,0x5c42,0x5c58,0x5c6f,0x5c85,
463 0x5c9b,0x5cb1,0x5cc7,0x5cdd,0x5cf3,0x5d09,0x5d1f,0x5d35,
464 0x5d4b,0x5d61,0x5d77,0x5d8d,0x5da3,0x5db9,0x5dce,0x5de4,
465 0x5dfa,0x5e10,0x5e26,0x5e3b,0x5e51,0x5e67,0x5e7c,0x5e92,
466 0x5ea8,0x5ebd,0x5ed3,0x5ee9,0x5efe,0x5f14,0x5f29,0x5f3f,
467 0x5f54,0x5f6a,0x5f7f,0x5f95,0x5faa,0x5fbf,0x5fd5,0x5fea,
468 0x6000,0x6015,0x602a,0x603f,0x6055,0x606a,0x607f,0x6094,
469 0x60aa,0x60bf,0x60d4,0x60e9,0x60fe,0x6113,0x6128,0x613d,
470 0x6152,0x6168,0x617d,0x6192,0x61a7,0x61bb,0x61d0,0x61e5,
471 0x61fa,0x620f,0x6224,0x6239,0x624e,0x6263,0x6277,0x628c,
472 0x62a1,0x62b6,0x62ca,0x62df,0x62f4,0x6309,0x631d,0x6332,
473 0x6347,0x635b,0x6370,0x6384,0x6399,0x63ad,0x63c2,0x63d7,
474 0x63eb,0x6400,0x6414,0x6428,0x643d,0x6451,0x6466,0x647a,
475 0x648e,0x64a3,0x64b7,0x64cb,0x64e0,0x64f4,0x6508,0x651d,
476 0x6531,0x6545,0x6559,0x656e,0x6582,0x6596,0x65aa,0x65be,
477 0x65d2,0x65e6,0x65fa,0x660f,0x6623,0x6637,0x664b,0x665f,
478 0x6673,0x6687,0x669b,0x66af,0x66c3,0x66d6,0x66ea,0x66fe,
479 0x6712,0x6726,0x673a,0x674e,0x6761,0x6775,0x6789,0x679d,
480 0x67b1,0x67c4,0x67d8,0x67ec,0x6800,0x6813,0x6827,0x683b,
481 0x684e,0x6862,0x6875,0x6889,0x689d,0x68b0,0x68c4,0x68d7,
482 0x68eb,0x68fe,0x6912,0x6925,0x6939,0x694c,0x6960,0x6973,
483 0x6986,0x699a,0x69ad,0x69c1,0x69d4,0x69e7,0x69fb,0x6a0e,
484 0x6a21,0x6a35,0x6a48,0x6a5b,0x6a6e,0x6a82,0x6a95,0x6aa8,
485 0x6abb,0x6ace,0x6ae2,0x6af5,0x6b08,0x6b1b,0x6b2e,0x6b41,
486 0x6b54,0x6b67,0x6b7a,0x6b8d,0x6ba1,0x6bb4,0x6bc7,0x6bda,
487 0x6bed,0x6c00,0x6c12,0x6c25,0x6c38,0x6c4b,0x6c5e,0x6c71,
488 0x6c84,0x6c97,0x6caa,0x6cbc,0x6ccf,0x6ce2,0x6cf5,0x6d08,
489 0x6d1a,0x6d2d,0x6d40,0x6d53,0x6d65,0x6d78,0x6d8b,0x6d9e,
490 0x6db0,0x6dc3,0x6dd6,0x6de8,0x6dfb,0x6e0d,0x6e20,0x6e33,
491 0x6e45,0x6e58,0x6e6a,0x6e7d,0x6e8f,0x6ea2,0x6eb4,0x6ec7,
492 0x6ed9,0x6eec,0x6efe,0x6f11,0x6f23,0x6f36,0x6f48,0x6f5a,
493 0x6f6d,0x6f7f,0x6f92,0x6fa4,0x6fb6,0x6fc9,0x6fdb,0x6fed,
494 0x7000,0x7012,0x7024,0x7036,0x7049,0x705b,0x706d,0x707f,
495 0x7091,0x70a4,0x70b6,0x70c8,0x70da,0x70ec,0x70fe,0x7110,
496 0x7123,0x7135,0x7147,0x7159,0x716b,0x717d,0x718f,0x71a1,
497 0x71b3,0x71c5,0x71d7,0x71e9,0x71fb,0x720d,0x721f,0x7231,
498 0x7243,0x7255,0x7267,0x7279,0x728a,0x729c,0x72ae,0x72c0,
499 0x72d2,0x72e4,0x72f5,0x7307,0x7319,0x732b,0x733d,0x734e,
500 0x7360,0x7372,0x7384,0x7395,0x73a7,0x73b9,0x73ca,0x73dc,
501 0x73ee,0x7400,0x7411,0x7423,0x7434,0x7446,0x7458,0x7469,
502 0x747b,0x748c,0x749e,0x74b0,0x74c1,0x74d3,0x74e4,0x74f6,
503 0x7507,0x7519,0x752a,0x753c,0x754d,0x755f,0x7570,0x7581,
504 0x7593,0x75a4,0x75b6,0x75c7,0x75d8,0x75ea,0x75fb,0x760d,
505 0x761e,0x762f,0x7641,0x7652,0x7663,0x7674,0x7686,0x7697,
506 0x76a8,0x76ba,0x76cb,0x76dc,0x76ed,0x76fe,0x7710,0x7721,
507 0x7732,0x7743,0x7754,0x7766,0x7777,0x7788,0x7799,0x77aa,
508 0x77bb,0x77cc,0x77dd,0x77ee,0x7800,0x7811,0x7822,0x7833,
509 0x7844,0x7855,0x7866,0x7877,0x7888,0x7899,0x78aa,0x78bb,
510 0x78cc,0x78dd,0x78ee,0x78fe,0x790f,0x7920,0x7931,0x7942,
511 0x7953,0x7964,0x7975,0x7986,0x7996,0x79a7,0x79b8,0x79c9,
512 0x79da,0x79eb,0x79fb,0x7a0c,0x7a1d,0x7a2e,0x7a3e,0x7a4f,
513 0x7a60,0x7a71,0x7a81,0x7a92,0x7aa3,0x7ab3,0x7ac4,0x7ad5,
514 0x7ae5,0x7af6,0x7b07,0x7b17,0x7b28,0x7b39,0x7b49,0x7b5a,
515 0x7b6b,0x7b7b,0x7b8c,0x7b9c,0x7bad,0x7bbd,0x7bce,0x7bde,
516 0x7bef,0x7c00,0x7c10,0x7c21,0x7c31,0x7c41,0x7c52,0x7c62,
517 0x7c73,0x7c83,0x7c94,0x7ca4,0x7cb5,0x7cc5,0x7cd5,0x7ce6,
518 0x7cf6,0x7d07,0x7d17,0x7d27,0x7d38,0x7d48,0x7d58,0x7d69,
519 0x7d79,0x7d89,0x7d9a,0x7daa,0x7dba,0x7dcb,0x7ddb,0x7deb,
520 0x7dfb,0x7e0c,0x7e1c,0x7e2c,0x7e3c,0x7e4d,0x7e5d,0x7e6d,
521 0x7e7d,0x7e8d,0x7e9e,0x7eae,0x7ebe,0x7ece,0x7ede,0x7eee,
522 0x7efe,0x7f0f,0x7f1f,0x7f2f,0x7f3f,0x7f4f,0x7f5f,0x7f6f,
523 0x7f7f,0x7f8f,0x7f9f,0x7faf,0x7fbf,0x7fcf,0x7fdf,0x7fef,
524 0x8000,0x800f,0x801f,0x802f,0x803f,0x804f,0x805f,0x806f,
525 0x807f,0x808f,0x809f,0x80af,0x80bf,0x80cf,0x80df,0x80ef,
526 0x80ff,0x810e,0x811e,0x812e,0x813e,0x814e,0x815e,0x816d,
527 0x817d,0x818d,0x819d,0x81ad,0x81bc,0x81cc,0x81dc,0x81ec,
528 0x81fc,0x820b,0x821b,0x822b,0x823b,0x824a,0x825a,0x826a,
529 0x8279,0x8289,0x8299,0x82a8,0x82b8,0x82c8,0x82d7,0x82e7,
530 0x82f7,0x8306,0x8316,0x8326,0x8335,0x8345,0x8354,0x8364,
531 0x8374,0x8383,0x8393,0x83a2,0x83b2,0x83c1,0x83d1,0x83e0,
532 0x83f0,0x8400,0x840f,0x841f,0x842e,0x843e,0x844d,0x845c,
533 0x846c,0x847b,0x848b,0x849a,0x84aa,0x84b9,0x84c9,0x84d8,
534 0x84e7,0x84f7,0x8506,0x8516,0x8525,0x8534,0x8544,0x8553,
535 0x8562,0x8572,0x8581,0x8591,0x85a0,0x85af,0x85be,0x85ce,
536 0x85dd,0x85ec,0x85fc,0x860b,0x861a,0x862a,0x8639,0x8648,
537 0x8657,0x8667,0x8676,0x8685,0x8694,0x86a3,0x86b3,0x86c2,
538 0x86d1,0x86e0,0x86ef,0x86ff,0x870e,0x871d,0x872c,0x873b,
539 0x874a,0x8759,0x8769,0x8778,0x8787,0x8796,0x87a5,0x87b4,
540 0x87c3,0x87d2,0x87e1,0x87f0,0x8800,0x880f,0x881e,0x882d,
541 0x883c,0x884b,0x885a,0x8869,0x8878,0x8887,0x8896,0x88a5,
542 0x88b4,0x88c3,0x88d2,0x88e1,0x88f0,0x88ff,0x890e,0x891c,
543 0x892b,0x893a,0x8949,0x8958,0x8967,0x8976,0x8985,0x8994,
544 0x89a3,0x89b2,0x89c0,0x89cf,0x89de,0x89ed,0x89fc,0x8a0b,
545 0x8a19,0x8a28,0x8a37,0x8a46,0x8a55,0x8a64,0x8a72,0x8a81,
546 0x8a90,0x8a9f,0x8aad,0x8abc,0x8acb,0x8ada,0x8ae8,0x8af7,
547 0x8b06,0x8b15,0x8b23,0x8b32,0x8b41,0x8b50,0x8b5e,0x8b6d,
548 0x8b7c,0x8b8a,0x8b99,0x8ba8,0x8bb6,0x8bc5,0x8bd4,0x8be2,
549 0x8bf1,0x8c00,0x8c0e,0x8c1d,0x8c2b,0x8c3a,0x8c49,0x8c57,
550 0x8c66,0x8c74,0x8c83,0x8c91,0x8ca0,0x8caf,0x8cbd,0x8ccc,
551 0x8cda,0x8ce9,0x8cf7,0x8d06,0x8d14,0x8d23,0x8d31,0x8d40,
552 0x8d4e,0x8d5d,0x8d6b,0x8d7a,0x8d88,0x8d97,0x8da5,0x8db4,
553 0x8dc2,0x8dd1,0x8ddf,0x8ded,0x8dfc,0x8e0a,0x8e19,0x8e27,
554 0x8e36,0x8e44,0x8e52,0x8e61,0x8e6f,0x8e7d,0x8e8c,0x8e9a,
555 0x8ea9,0x8eb7,0x8ec5,0x8ed4,0x8ee2,0x8ef0,0x8eff,0x8f0d,
556 0x8f1b,0x8f2a,0x8f38,0x8f46,0x8f54,0x8f63,0x8f71,0x8f7f,
557 0x8f8e,0x8f9c,0x8faa,0x8fb8,0x8fc7,0x8fd5,0x8fe3,0x8ff1,
558 0x9000,0x900e,0x901c,0x902a,0x9038,0x9047,0x9055,0x9063,
559 0x9071,0x907f,0x908d,0x909c,0x90aa,0x90b8,0x90c6,0x90d4,
560 0x90e2,0x90f0,0x90ff,0x910d,0x911b,0x9129,0x9137,0x9145,
561 0x9153,0x9161,0x916f,0x917e,0x918c,0x919a,0x91a8,0x91b6,
562 0x91c4,0x91d2,0x91e0,0x91ee,0x91fc,0x920a,0x9218,0x9226,
563 0x9234,0x9242,0x9250,0x925e,0x926c,0x927a,0x9288,0x9296,
564 0x92a4,0x92b2,0x92c0,0x92ce,0x92dc,0x92ea,0x92f8,0x9306,
565 0x9314,0x9321,0x932f,0x933d,0x934b,0x9359,0x9367,0x9375,
566 0x9383,0x9391,0x939f,0x93ac,0x93ba,0x93c8,0x93d6,0x93e4,
567 0x93f2,0x9400,0x940d,0x941b,0x9429,0x9437,0x9445,0x9452,
568 0x9460,0x946e,0x947c,0x948a,0x9497,0x94a5,0x94b3,0x94c1,
569 0x94cf,0x94dc,0x94ea,0x94f8,0x9506,0x9513,0x9521,0x952f,
570 0x953c,0x954a,0x9558,0x9566,0x9573,0x9581,0x958f,0x959c,
571 0x95aa,0x95b8,0x95c5,0x95d3,0x95e1,0x95ee,0x95fc,0x960a,
572 0x9617,0x9625,0x9633,0x9640,0x964e,0x965c,0x9669,0x9677,
573 0x9684,0x9692,0x96a0,0x96ad,0x96bb,0x96c8,0x96d6,0x96e4,
574 0x96f1,0x96ff,0x970c,0x971a,0x9727,0x9735,0x9742,0x9750,
575 0x975d,0x976b,0x9779,0x9786,0x9794,0x97a1,0x97af,0x97bc,
576 0x97ca,0x97d7,0x97e5,0x97f2,0x9800,0x980d,0x981a,0x9828,
577 0x9835,0x9843,0x9850,0x985e,0x986b,0x9879,0x9886,0x9893,
578 0x98a1,0x98ae,0x98bc,0x98c9,0x98d6,0x98e4,0x98f1,0x98ff,
579 0x990c,0x9919,0x9927,0x9934,0x9942,0x994f,0x995c,0x996a,
580 0x9977,0x9984,0x9992,0x999f,0x99ac,0x99ba,0x99c7,0x99d4,
581 0x99e2,0x99ef,0x99fc,0x9a09,0x9a17,0x9a24,0x9a31,0x9a3f,
582 0x9a4c,0x9a59,0x9a66,0x9a74,0x9a81,0x9a8e,0x9a9b,0x9aa9,
583 0x9ab6,0x9ac3,0x9ad0,0x9ade,0x9aeb,0x9af8,0x9b05,0x9b12,
584 0x9b20,0x9b2d,0x9b3a,0x9b47,0x9b54,0x9b62,0x9b6f,0x9b7c,
585 0x9b89,0x9b96,0x9ba3,0x9bb1,0x9bbe,0x9bcb,0x9bd8,0x9be5,
586 0x9bf2,0x9c00,0x9c0d,0x9c1a,0x9c27,0x9c34,0x9c41,0x9c4e,
587 0x9c5b,0x9c68,0x9c75,0x9c83,0x9c90,0x9c9d,0x9caa,0x9cb7,
588 0x9cc4,0x9cd1,0x9cde,0x9ceb,0x9cf8,0x9d05,0x9d12,0x9d1f,
589 0x9d2c,0x9d39,0x9d46,0x9d53,0x9d60,0x9d6d,0x9d7a,0x9d87,
590 0x9d94,0x9da1,0x9dae,0x9dbb,0x9dc8,0x9dd5,0x9de2,0x9def,
591 0x9dfc,0x9e09,0x9e16,0x9e23,0x9e30,0x9e3d,0x9e4a,0x9e57,
592 0x9e64,0x9e71,0x9e7e,0x9e8b,0x9e98,0x9ea4,0x9eb1,0x9ebe,
593 0x9ecb,0x9ed8,0x9ee5,0x9ef2,0x9eff,0x9f0c,0x9f18,0x9f25,
594 0x9f32,0x9f3f,0x9f4c,0x9f59,0x9f66,0x9f72,0x9f7f,0x9f8c,
595 0x9f99,0x9fa6,0x9fb3,0x9fbf,0x9fcc,0x9fd9,0x9fe6,0x9ff3,
596 0xa000,0xa00c,0xa019,0xa026,0xa033,0xa03f,0xa04c,0xa059,
597 0xa066,0xa073,0xa07f,0xa08c,0xa099,0xa0a6,0xa0b2,0xa0bf,
598 0xa0cc,0xa0d9,0xa0e5,0xa0f2,0xa0ff,0xa10b,0xa118,0xa125,
599 0xa132,0xa13e,0xa14b,0xa158,0xa164,0xa171,0xa17e,0xa18a,
600 0xa197,0xa1a4,0xa1b0,0xa1bd,0xa1ca,0xa1d6,0xa1e3,0xa1f0,
601 0xa1fc,0xa209,0xa216,0xa222,0xa22f,0xa23c,0xa248,0xa255,
602 0xa261,0xa26e,0xa27b,0xa287,0xa294,0xa2a0,0xa2ad,0xa2ba,
603 0xa2c6,0xa2d3,0xa2df,0xa2ec,0xa2f8,0xa305,0xa312,0xa31e,
604 0xa32b,0xa337,0xa344,0xa350,0xa35d,0xa369,0xa376,0xa382,
605 0xa38f,0xa39b,0xa3a8,0xa3b5,0xa3c1,0xa3ce,0xa3da,0xa3e7,
606 0xa3f3,0xa400,0xa40c,0xa418,0xa425,0xa431,0xa43e,0xa44a,
607 0xa457,0xa463,0xa470,0xa47c,0xa489,0xa495,0xa4a2,0xa4ae,
608 0xa4ba,0xa4c7,0xa4d3,0xa4e0,0xa4ec,0xa4f9,0xa505,0xa511,
609 0xa51e,0xa52a,0xa537,0xa543,0xa54f,0xa55c,0xa568,0xa574,
610 0xa581,0xa58d,0xa59a,0xa5a6,0xa5b2,0xa5bf,0xa5cb,0xa5d7,
611 0xa5e4,0xa5f0,0xa5fc,0xa609,0xa615,0xa621,0xa62e,0xa63a,
612 0xa646,0xa653,0xa65f,0xa66b,0xa678,0xa684,0xa690,0xa69d,
613 0xa6a9,0xa6b5,0xa6c1,0xa6ce,0xa6da,0xa6e6,0xa6f2,0xa6ff,
614 0xa70b,0xa717,0xa724,0xa730,0xa73c,0xa748,0xa754,0xa761,
615 0xa76d,0xa779,0xa785,0xa792,0xa79e,0xa7aa,0xa7b6,0xa7c3,
616 0xa7cf,0xa7db,0xa7e7,0xa7f3,0xa800,0xa80c,0xa818,0xa824,
617 0xa830,0xa83c,0xa849,0xa855,0xa861,0xa86d,0xa879,0xa885,
618 0xa892,0xa89e,0xa8aa,0xa8b6,0xa8c2,0xa8ce,0xa8da,0xa8e6,
619 0xa8f3,0xa8ff,0xa90b,0xa917,0xa923,0xa92f,0xa93b,0xa947,
620 0xa953,0xa960,0xa96c,0xa978,0xa984,0xa990,0xa99c,0xa9a8,
621 0xa9b4,0xa9c0,0xa9cc,0xa9d8,0xa9e4,0xa9f0,0xa9fc,0xaa09,
622 0xaa15,0xaa21,0xaa2d,0xaa39,0xaa45,0xaa51,0xaa5d,0xaa69,
623 0xaa75,0xaa81,0xaa8d,0xaa99,0xaaa5,0xaab1,0xaabd,0xaac9,
624 0xaad5,0xaae1,0xaaed,0xaaf9,0xab05,0xab11,0xab1d,0xab29,
625 0xab35,0xab41,0xab4d,0xab58,0xab64,0xab70,0xab7c,0xab88,
626 0xab94,0xaba0,0xabac,0xabb8,0xabc4,0xabd0,0xabdc,0xabe8,
627 0xabf4,0xac00,0xac0b,0xac17,0xac23,0xac2f,0xac3b,0xac47,
628 0xac53,0xac5f,0xac6b,0xac76,0xac82,0xac8e,0xac9a,0xaca6,
629 0xacb2,0xacbe,0xacc9,0xacd5,0xace1,0xaced,0xacf9,0xad05,
630 0xad11,0xad1c,0xad28,0xad34,0xad40,0xad4c,0xad57,0xad63,
631 0xad6f,0xad7b,0xad87,0xad92,0xad9e,0xadaa,0xadb6,0xadc2,
632 0xadcd,0xadd9,0xade5,0xadf1,0xadfd,0xae08,0xae14,0xae20,
633 0xae2c,0xae37,0xae43,0xae4f,0xae5b,0xae66,0xae72,0xae7e,
634 0xae8a,0xae95,0xaea1,0xaead,0xaeb8,0xaec4,0xaed0,0xaedc,
635 0xaee7,0xaef3,0xaeff,0xaf0a,0xaf16,0xaf22,0xaf2e,0xaf39,
636 0xaf45,0xaf51,0xaf5c,0xaf68,0xaf74,0xaf7f,0xaf8b,0xaf97,
637 0xafa2,0xafae,0xafba,0xafc5,0xafd1,0xafdd,0xafe8,0xaff4,
638 0xb000,0xb00b,0xb017,0xb022,0xb02e,0xb03a,0xb045,0xb051,
639 0xb05c,0xb068,0xb074,0xb07f,0xb08b,0xb097,0xb0a2,0xb0ae,
640 0xb0b9,0xb0c5,0xb0d0,0xb0dc,0xb0e8,0xb0f3,0xb0ff,0xb10a,
641 0xb116,0xb121,0xb12d,0xb139,0xb144,0xb150,0xb15b,0xb167,
642 0xb172,0xb17e,0xb189,0xb195,0xb1a0,0xb1ac,0xb1b8,0xb1c3,
643 0xb1cf,0xb1da,0xb1e6,0xb1f1,0xb1fd,0xb208,0xb214,0xb21f,
644 0xb22b,0xb236,0xb242,0xb24d,0xb259,0xb264,0xb270,0xb27b,
645 0xb286,0xb292,0xb29d,0xb2a9,0xb2b4,0xb2c0,0xb2cb,0xb2d7,
646 0xb2e2,0xb2ee,0xb2f9,0xb305,0xb310,0xb31b,0xb327,0xb332,
647 0xb33e,0xb349,0xb355,0xb360,0xb36b,0xb377,0xb382,0xb38e,
648 0xb399,0xb3a4,0xb3b0,0xb3bb,0xb3c7,0xb3d2,0xb3dd,0xb3e9,
649 0xb3f4,0xb400,0xb40b,0xb416,0xb422,0xb42d,0xb438,0xb444,
650 0xb44f,0xb45a,0xb466,0xb471,0xb47c,0xb488,0xb493,0xb49f,
651 0xb4aa,0xb4b5,0xb4c1,0xb4cc,0xb4d7,0xb4e2,0xb4ee,0xb4f9,
652 0xb504,0xb510,0xb51b,0xb526,0xb532,0xb53d,0xb548,0xb554,
653 0xb55f,0xb56a,0xb575,0xb581,0xb58c,0xb597,0xb5a3,0xb5ae,
654 0xb5b9,0xb5c4,0xb5d0,0xb5db,0xb5e6,0xb5f1,0xb5fd,0xb608,
655 0xb613,0xb61e,0xb62a,0xb635,0xb640,0xb64b,0xb657,0xb662,
656 0xb66d,0xb678,0xb684,0xb68f,0xb69a,0xb6a5,0xb6b0,0xb6bc,
657 0xb6c7,0xb6d2,0xb6dd,0xb6e8,0xb6f4,0xb6ff,0xb70a,0xb715,
658 0xb720,0xb72c,0xb737,0xb742,0xb74d,0xb758,0xb763,0xb76f,
659 0xb77a,0xb785,0xb790,0xb79b,0xb7a6,0xb7b2,0xb7bd,0xb7c8,
660 0xb7d3,0xb7de,0xb7e9,0xb7f4,0xb800,0xb80b,0xb816,0xb821,
661 0xb82c,0xb837,0xb842,0xb84d,0xb858,0xb864,0xb86f,0xb87a,
662 0xb885,0xb890,0xb89b,0xb8a6,0xb8b1,0xb8bc,0xb8c7,0xb8d3,
663 0xb8de,0xb8e9,0xb8f4,0xb8ff,0xb90a,0xb915,0xb920,0xb92b,
664 0xb936,0xb941,0xb94c,0xb957,0xb962,0xb96d,0xb978,0xb983,
665 0xb98f,0xb99a,0xb9a5,0xb9b0,0xb9bb,0xb9c6,0xb9d1,0xb9dc,
666 0xb9e7,0xb9f2,0xb9fd,0xba08,0xba13,0xba1e,0xba29,0xba34,
667 0xba3f,0xba4a,0xba55,0xba60,0xba6b,0xba76,0xba81,0xba8c,
668 0xba97,0xbaa2,0xbaad,0xbab8,0xbac3,0xbace,0xbad8,0xbae3,
669 0xbaee,0xbaf9,0xbb04,0xbb0f,0xbb1a,0xbb25,0xbb30,0xbb3b,
670 0xbb46,0xbb51,0xbb5c,0xbb67,0xbb72,0xbb7d,0xbb88,0xbb92,
671 0xbb9d,0xbba8,0xbbb3,0xbbbe,0xbbc9,0xbbd4,0xbbdf,0xbbea,
672 0xbbf5,0xbc00,0xbc0a,0xbc15,0xbc20,0xbc2b,0xbc36,0xbc41,
673 0xbc4c,0xbc57,0xbc61,0xbc6c,0xbc77,0xbc82,0xbc8d,0xbc98,
674 0xbca3,0xbcad,0xbcb8,0xbcc3,0xbcce,0xbcd9,0xbce4,0xbcef,
675 0xbcf9,0xbd04,0xbd0f,0xbd1a,0xbd25,0xbd30,0xbd3a,0xbd45,
676 0xbd50,0xbd5b,0xbd66,0xbd70,0xbd7b,0xbd86,0xbd91,0xbd9c,
677 0xbda6,0xbdb1,0xbdbc,0xbdc7,0xbdd2,0xbddc,0xbde7,0xbdf2,
678 0xbdfd,0xbe08,0xbe12,0xbe1d,0xbe28,0xbe33,0xbe3d,0xbe48,
679 0xbe53,0xbe5e,0xbe68,0xbe73,0xbe7e,0xbe89,0xbe93,0xbe9e,
680 0xbea9,0xbeb4,0xbebe,0xbec9,0xbed4,0xbedf,0xbee9,0xbef4,
681 0xbeff,0xbf0a,0xbf14,0xbf1f,0xbf2a,0xbf34,0xbf3f,0xbf4a,
682 0xbf55,0xbf5f,0xbf6a,0xbf75,0xbf7f,0xbf8a,0xbf95,0xbf9f,
683 0xbfaa,0xbfb5,0xbfbf,0xbfca,0xbfd5,0xbfdf,0xbfea,0xbff5,
684 0xc000,0xc00a,0xc015,0xc01f,0xc02a,0xc035,0xc03f,0xc04a,
685 0xc055,0xc05f,0xc06a,0xc075,0xc07f,0xc08a,0xc095,0xc09f,
686 0xc0aa,0xc0b5,0xc0bf,0xc0ca,0xc0d4,0xc0df,0xc0ea,0xc0f4,
687 0xc0ff,0xc109,0xc114,0xc11f,0xc129,0xc134,0xc13e,0xc149,
688 0xc154,0xc15e,0xc169,0xc173,0xc17e,0xc189,0xc193,0xc19e,
689 0xc1a8,0xc1b3,0xc1bd,0xc1c8,0xc1d3,0xc1dd,0xc1e8,0xc1f2,
690 0xc1fd,0xc207,0xc212,0xc21d,0xc227,0xc232,0xc23c,0xc247,
691 0xc251,0xc25c,0xc266,0xc271,0xc27b,0xc286,0xc290,0xc29b,
692 0xc2a5,0xc2b0,0xc2bb,0xc2c5,0xc2d0,0xc2da,0xc2e5,0xc2ef,
693 0xc2fa,0xc304,0xc30f,0xc319,0xc324,0xc32e,0xc339,0xc343,
694 0xc34e,0xc358,0xc363,0xc36d,0xc377,0xc382,0xc38c,0xc397,
695 0xc3a1,0xc3ac,0xc3b6,0xc3c1,0xc3cb,0xc3d6,0xc3e0,0xc3eb,
696 0xc3f5,0xc400,0xc40a,0xc414,0xc41f,0xc429,0xc434,0xc43e,
697 0xc449,0xc453,0xc45d,0xc468,0xc472,0xc47d,0xc487,0xc492,
698 0xc49c,0xc4a6,0xc4b1,0xc4bb,0xc4c6,0xc4d0,0xc4da,0xc4e5,
699 0xc4ef,0xc4fa,0xc504,0xc50e,0xc519,0xc523,0xc52e,0xc538,
700 0xc542,0xc54d,0xc557,0xc562,0xc56c,0xc576,0xc581,0xc58b,
701 0xc595,0xc5a0,0xc5aa,0xc5b4,0xc5bf,0xc5c9,0xc5d4,0xc5de,
702 0xc5e8,0xc5f3,0xc5fd,0xc607,0xc612,0xc61c,0xc626,0xc631,
703 0xc63b,0xc645,0xc650,0xc65a,0xc664,0xc66f,0xc679,0xc683,
704 0xc68e,0xc698,0xc6a2,0xc6ac,0xc6b7,0xc6c1,0xc6cb,0xc6d6,
705 0xc6e0,0xc6ea,0xc6f5,0xc6ff,0xc709,0xc713,0xc71e,0xc728,
706 0xc732,0xc73d,0xc747,0xc751,0xc75b,0xc766,0xc770,0xc77a,
707 0xc784,0xc78f,0xc799,0xc7a3,0xc7ae,0xc7b8,0xc7c2,0xc7cc,
708 0xc7d7,0xc7e1,0xc7eb,0xc7f5,0xc800,0xc80a,0xc814,0xc81e,
709 0xc828,0xc833,0xc83d,0xc847,0xc851,0xc85c,0xc866,0xc870,
710 0xc87a,0xc884,0xc88f,0xc899,0xc8a3,0xc8ad,0xc8b7,0xc8c2,
711 0xc8cc,0xc8d6,0xc8e0,0xc8ea,0xc8f5,0xc8ff,0xc909,0xc913,
712 0xc91d,0xc928,0xc932,0xc93c,0xc946,0xc950,0xc95a,0xc965,
713 0xc96f,0xc979,0xc983,0xc98d,0xc997,0xc9a2,0xc9ac,0xc9b6,
714 0xc9c0,0xc9ca,0xc9d4,0xc9df,0xc9e9,0xc9f3,0xc9fd,0xca07,
715 0xca11,0xca1b,0xca26,0xca30,0xca3a,0xca44,0xca4e,0xca58,
716 0xca62,0xca6c,0xca76,0xca81,0xca8b,0xca95,0xca9f,0xcaa9,
717 0xcab3,0xcabd,0xcac7,0xcad1,0xcadc,0xcae6,0xcaf0,0xcafa,
718 0xcb04,0xcb0e,0xcb18,0xcb22,0xcb2c,0xcb36,0xcb40,0xcb4a,
719 0xcb55,0xcb5f,0xcb69,0xcb73,0xcb7d,0xcb87,0xcb91,0xcb9b,
720 0xcba5,0xcbaf,0xcbb9,0xcbc3,0xcbcd,0xcbd7,0xcbe1,0xcbeb,
721 0xcbf5,0xcc00,0xcc0a,0xcc14,0xcc1e,0xcc28,0xcc32,0xcc3c,
722 0xcc46,0xcc50,0xcc5a,0xcc64,0xcc6e,0xcc78,0xcc82,0xcc8c,
723 0xcc96,0xcca0,0xccaa,0xccb4,0xccbe,0xccc8,0xccd2,0xccdc,
724 0xcce6,0xccf0,0xccfa,0xcd04,0xcd0e,0xcd18,0xcd22,0xcd2c,
725 0xcd36,0xcd40,0xcd4a,0xcd54,0xcd5e,0xcd68,0xcd72,0xcd7c,
726 0xcd86,0xcd90,0xcd99,0xcda3,0xcdad,0xcdb7,0xcdc1,0xcdcb,
727 0xcdd5,0xcddf,0xcde9,0xcdf3,0xcdfd,0xce07,0xce11,0xce1b,
728 0xce25,0xce2f,0xce39,0xce43,0xce4c,0xce56,0xce60,0xce6a,
729 0xce74,0xce7e,0xce88,0xce92,0xce9c,0xcea6,0xceb0,0xceba,
730 0xcec3,0xcecd,0xced7,0xcee1,0xceeb,0xcef5,0xceff,0xcf09,
731 0xcf13,0xcf1d,0xcf26,0xcf30,0xcf3a,0xcf44,0xcf4e,0xcf58,
732 0xcf62,0xcf6c,0xcf75,0xcf7f,0xcf89,0xcf93,0xcf9d,0xcfa7,
733 0xcfb1,0xcfbb,0xcfc4,0xcfce,0xcfd8,0xcfe2,0xcfec,0xcff6,
734 0xd000,0xd009,0xd013,0xd01d,0xd027,0xd031,0xd03b,0xd044,
735 0xd04e,0xd058,0xd062,0xd06c,0xd076,0xd07f,0xd089,0xd093,
736 0xd09d,0xd0a7,0xd0b0,0xd0ba,0xd0c4,0xd0ce,0xd0d8,0xd0e1,
737 0xd0eb,0xd0f5,0xd0ff,0xd109,0xd112,0xd11c,0xd126,0xd130,
738 0xd13a,0xd143,0xd14d,0xd157,0xd161,0xd16b,0xd174,0xd17e,
739 0xd188,0xd192,0xd19b,0xd1a5,0xd1af,0xd1b9,0xd1c3,0xd1cc,
740 0xd1d6,0xd1e0,0xd1ea,0xd1f3,0xd1fd,0xd207,0xd211,0xd21a,
741 0xd224,0xd22e,0xd238,0xd241,0xd24b,0xd255,0xd25f,0xd268,
742 0xd272,0xd27c,0xd285,0xd28f,0xd299,0xd2a3,0xd2ac,0xd2b6,
743 0xd2c0,0xd2c9,0xd2d3,0xd2dd,0xd2e7,0xd2f0,0xd2fa,0xd304,
744 0xd30d,0xd317,0xd321,0xd32b,0xd334,0xd33e,0xd348,0xd351,
745 0xd35b,0xd365,0xd36e,0xd378,0xd382,0xd38b,0xd395,0xd39f,
746 0xd3a8,0xd3b2,0xd3bc,0xd3c6,0xd3cf,0xd3d9,0xd3e3,0xd3ec,
747 0xd3f6,0xd400,0xd409,0xd413,0xd41c,0xd426,0xd430,0xd439,
748 0xd443,0xd44d,0xd456,0xd460,0xd46a,0xd473,0xd47d,0xd487,
749 0xd490,0xd49a,0xd4a3,0xd4ad,0xd4b7,0xd4c0,0xd4ca,0xd4d4,
750 0xd4dd,0xd4e7,0xd4f0,0xd4fa,0xd504,0xd50d,0xd517,0xd521,
751 0xd52a,0xd534,0xd53d,0xd547,0xd551,0xd55a,0xd564,0xd56d,
752 0xd577,0xd581,0xd58a,0xd594,0xd59d,0xd5a7,0xd5b0,0xd5ba,
753 0xd5c4,0xd5cd,0xd5d7,0xd5e0,0xd5ea,0xd5f4,0xd5fd,0xd607,
754 0xd610,0xd61a,0xd623,0xd62d,0xd637,0xd640,0xd64a,0xd653,
755 0xd65d,0xd666,0xd670,0xd679,0xd683,0xd68c,0xd696,0xd6a0,
756 0xd6a9,0xd6b3,0xd6bc,0xd6c6,0xd6cf,0xd6d9,0xd6e2,0xd6ec,
757 0xd6f5,0xd6ff,0xd708,0xd712,0xd71b,0xd725,0xd72f,0xd738,
758 0xd742,0xd74b,0xd755,0xd75e,0xd768,0xd771,0xd77b,0xd784,
759 0xd78e,0xd797,0xd7a1,0xd7aa,0xd7b4,0xd7bd,0xd7c7,0xd7d0,
760 0xd7da,0xd7e3,0xd7ed,0xd7f6,0xd800,0xd809,0xd812,0xd81c,
761 0xd825,0xd82f,0xd838,0xd842,0xd84b,0xd855,0xd85e,0xd868,
762 0xd871,0xd87b,0xd884,0xd88e,0xd897,0xd8a0,0xd8aa,0xd8b3,
763 0xd8bd,0xd8c6,0xd8d0,0xd8d9,0xd8e3,0xd8ec,0xd8f5,0xd8ff,
764 0xd908,0xd912,0xd91b,0xd925,0xd92e,0xd938,0xd941,0xd94a,
765 0xd954,0xd95d,0xd967,0xd970,0xd979,0xd983,0xd98c,0xd996,
766 0xd99f,0xd9a9,0xd9b2,0xd9bb,0xd9c5,0xd9ce,0xd9d8,0xd9e1,
767 0xd9ea,0xd9f4,0xd9fd,0xda07,0xda10,0xda19,0xda23,0xda2c,
768 0xda35,0xda3f,0xda48,0xda52,0xda5b,0xda64,0xda6e,0xda77,
769 0xda81,0xda8a,0xda93,0xda9d,0xdaa6,0xdaaf,0xdab9,0xdac2,
770 0xdacb,0xdad5,0xdade,0xdae8,0xdaf1,0xdafa,0xdb04,0xdb0d,
771 0xdb16,0xdb20,0xdb29,0xdb32,0xdb3c,0xdb45,0xdb4e,0xdb58,
772 0xdb61,0xdb6a,0xdb74,0xdb7d,0xdb86,0xdb90,0xdb99,0xdba2,
773 0xdbac,0xdbb5,0xdbbe,0xdbc8,0xdbd1,0xdbda,0xdbe4,0xdbed,
774 0xdbf6,0xdc00,0xdc09,0xdc12,0xdc1b,0xdc25,0xdc2e,0xdc37,
775 0xdc41,0xdc4a,0xdc53,0xdc5d,0xdc66,0xdc6f,0xdc78,0xdc82,
776 0xdc8b,0xdc94,0xdc9e,0xdca7,0xdcb0,0xdcb9,0xdcc3,0xdccc,
777 0xdcd5,0xdcde,0xdce8,0xdcf1,0xdcfa,0xdd04,0xdd0d,0xdd16,
778 0xdd1f,0xdd29,0xdd32,0xdd3b,0xdd44,0xdd4e,0xdd57,0xdd60,
779 0xdd69,0xdd73,0xdd7c,0xdd85,0xdd8e,0xdd98,0xdda1,0xddaa,
780 0xddb3,0xddbd,0xddc6,0xddcf,0xddd8,0xdde2,0xddeb,0xddf4,
781 0xddfd,0xde06,0xde10,0xde19,0xde22,0xde2b,0xde35,0xde3e,
782 0xde47,0xde50,0xde59,0xde63,0xde6c,0xde75,0xde7e,0xde87,
783 0xde91,0xde9a,0xdea3,0xdeac,0xdeb5,0xdebf,0xdec8,0xded1,
784 0xdeda,0xdee3,0xdeed,0xdef6,0xdeff,0xdf08,0xdf11,0xdf1a,
785 0xdf24,0xdf2d,0xdf36,0xdf3f,0xdf48,0xdf52,0xdf5b,0xdf64,
786 0xdf6d,0xdf76,0xdf7f,0xdf89,0xdf92,0xdf9b,0xdfa4,0xdfad,
787 0xdfb6,0xdfbf,0xdfc9,0xdfd2,0xdfdb,0xdfe4,0xdfed,0xdff6,
788 0xe000,0xe009,0xe012,0xe01b,0xe024,0xe02d,0xe036,0xe03f,
789 0xe049,0xe052,0xe05b,0xe064,0xe06d,0xe076,0xe07f,0xe088,
790 0xe092,0xe09b,0xe0a4,0xe0ad,0xe0b6,0xe0bf,0xe0c8,0xe0d1,
791 0xe0db,0xe0e4,0xe0ed,0xe0f6,0xe0ff,0xe108,0xe111,0xe11a,
792 0xe123,0xe12c,0xe136,0xe13f,0xe148,0xe151,0xe15a,0xe163,
793 0xe16c,0xe175,0xe17e,0xe187,0xe190,0xe199,0xe1a3,0xe1ac,
794 0xe1b5,0xe1be,0xe1c7,0xe1d0,0xe1d9,0xe1e2,0xe1eb,0xe1f4,
795 0xe1fd,0xe206,0xe20f,0xe218,0xe221,0xe22b,0xe234,0xe23d,
796 0xe246,0xe24f,0xe258,0xe261,0xe26a,0xe273,0xe27c,0xe285,
797 0xe28e,0xe297,0xe2a0,0xe2a9,0xe2b2,0xe2bb,0xe2c4,0xe2cd,
798 0xe2d6,0xe2df,0xe2e8,0xe2f1,0xe2fa,0xe303,0xe30c,0xe315,
799 0xe31f,0xe328,0xe331,0xe33a,0xe343,0xe34c,0xe355,0xe35e,
800 0xe367,0xe370,0xe379,0xe382,0xe38b,0xe394,0xe39d,0xe3a6,
801 0xe3af,0xe3b8,0xe3c1,0xe3ca,0xe3d3,0xe3dc,0xe3e5,0xe3ee,
802 0xe3f7,0xe400,0xe408,0xe411,0xe41a,0xe423,0xe42c,0xe435,
803 0xe43e,0xe447,0xe450,0xe459,0xe462,0xe46b,0xe474,0xe47d,
804 0xe486,0xe48f,0xe498,0xe4a1,0xe4aa,0xe4b3,0xe4bc,0xe4c5,
805 0xe4ce,0xe4d7,0xe4e0,0xe4e9,0xe4f2,0xe4fa,0xe503,0xe50c,
806 0xe515,0xe51e,0xe527,0xe530,0xe539,0xe542,0xe54b,0xe554,
807 0xe55d,0xe566,0xe56f,0xe578,0xe580,0xe589,0xe592,0xe59b,
808 0xe5a4,0xe5ad,0xe5b6,0xe5bf,0xe5c8,0xe5d1,0xe5da,0xe5e3,
809 0xe5eb,0xe5f4,0xe5fd,0xe606,0xe60f,0xe618,0xe621,0xe62a,
810 0xe633,0xe63c,0xe644,0xe64d,0xe656,0xe65f,0xe668,0xe671,
811 0xe67a,0xe683,0xe68c,0xe694,0xe69d,0xe6a6,0xe6af,0xe6b8,
812 0xe6c1,0xe6ca,0xe6d3,0xe6db,0xe6e4,0xe6ed,0xe6f6,0xe6ff,
813 0xe708,0xe711,0xe71a,0xe722,0xe72b,0xe734,0xe73d,0xe746,
814 0xe74f,0xe758,0xe760,0xe769,0xe772,0xe77b,0xe784,0xe78d,
815 0xe795,0xe79e,0xe7a7,0xe7b0,0xe7b9,0xe7c2,0xe7cb,0xe7d3,
816 0xe7dc,0xe7e5,0xe7ee,0xe7f7,0xe800,0xe808,0xe811,0xe81a,
817 0xe823,0xe82c,0xe834,0xe83d,0xe846,0xe84f,0xe858,0xe861,
818 0xe869,0xe872,0xe87b,0xe884,0xe88d,0xe895,0xe89e,0xe8a7,
819 0xe8b0,0xe8b9,0xe8c1,0xe8ca,0xe8d3,0xe8dc,0xe8e5,0xe8ed,
820 0xe8f6,0xe8ff,0xe908,0xe911,0xe919,0xe922,0xe92b,0xe934,
821 0xe93c,0xe945,0xe94e,0xe957,0xe960,0xe968,0xe971,0xe97a,
822 0xe983,0xe98b,0xe994,0xe99d,0xe9a6,0xe9ae,0xe9b7,0xe9c0,
823 0xe9c9,0xe9d2,0xe9da,0xe9e3,0xe9ec,0xe9f5,0xe9fd,0xea06,
824 0xea0f,0xea18,0xea20,0xea29,0xea32,0xea3b,0xea43,0xea4c,
825 0xea55,0xea5e,0xea66,0xea6f,0xea78,0xea80,0xea89,0xea92,
826 0xea9b,0xeaa3,0xeaac,0xeab5,0xeabe,0xeac6,0xeacf,0xead8,
827 0xeae0,0xeae9,0xeaf2,0xeafb,0xeb03,0xeb0c,0xeb15,0xeb1d,
828 0xeb26,0xeb2f,0xeb38,0xeb40,0xeb49,0xeb52,0xeb5a,0xeb63,
829 0xeb6c,0xeb74,0xeb7d,0xeb86,0xeb8f,0xeb97,0xeba0,0xeba9,
830 0xebb1,0xebba,0xebc3,0xebcb,0xebd4,0xebdd,0xebe5,0xebee,
831 0xebf7,0xec00,0xec08,0xec11,0xec1a,0xec22,0xec2b,0xec34,
832 0xec3c,0xec45,0xec4e,0xec56,0xec5f,0xec68,0xec70,0xec79,
833 0xec82,0xec8a,0xec93,0xec9c,0xeca4,0xecad,0xecb5,0xecbe,
834 0xecc7,0xeccf,0xecd8,0xece1,0xece9,0xecf2,0xecfb,0xed03,
835 0xed0c,0xed15,0xed1d,0xed26,0xed2e,0xed37,0xed40,0xed48,
836 0xed51,0xed5a,0xed62,0xed6b,0xed74,0xed7c,0xed85,0xed8d,
837 0xed96,0xed9f,0xeda7,0xedb0,0xedb8,0xedc1,0xedca,0xedd2,
838 0xeddb,0xede4,0xedec,0xedf5,0xedfd,0xee06,0xee0f,0xee17,
839 0xee20,0xee28,0xee31,0xee3a,0xee42,0xee4b,0xee53,0xee5c,
840 0xee65,0xee6d,0xee76,0xee7e,0xee87,0xee8f,0xee98,0xeea1,
841 0xeea9,0xeeb2,0xeeba,0xeec3,0xeecc,0xeed4,0xeedd,0xeee5,
842 0xeeee,0xeef6,0xeeff,0xef08,0xef10,0xef19,0xef21,0xef2a,
843 0xef32,0xef3b,0xef43,0xef4c,0xef55,0xef5d,0xef66,0xef6e,
844 0xef77,0xef7f,0xef88,0xef90,0xef99,0xefa2,0xefaa,0xefb3,
845 0xefbb,0xefc4,0xefcc,0xefd5,0xefdd,0xefe6,0xefee,0xeff7,
846 0xf000,0xf008,0xf011,0xf019,0xf022,0xf02a,0xf033,0xf03b,
847 0xf044,0xf04c,0xf055,0xf05d,0xf066,0xf06e,0xf077,0xf07f,
848 0xf088,0xf090,0xf099,0xf0a1,0xf0aa,0xf0b2,0xf0bb,0xf0c3,
849 0xf0cc,0xf0d4,0xf0dd,0xf0e5,0xf0ee,0xf0f6,0xf0ff,0xf107,
850 0xf110,0xf118,0xf121,0xf129,0xf132,0xf13a,0xf143,0xf14b,
851 0xf154,0xf15c,0xf165,0xf16d,0xf176,0xf17e,0xf187,0xf18f,
852 0xf198,0xf1a0,0xf1a9,0xf1b1,0xf1ba,0xf1c2,0xf1cb,0xf1d3,
853 0xf1dc,0xf1e4,0xf1ec,0xf1f5,0xf1fd,0xf206,0xf20e,0xf217,
854 0xf21f,0xf228,0xf230,0xf239,0xf241,0xf24a,0xf252,0xf25a,
855 0xf263,0xf26b,0xf274,0xf27c,0xf285,0xf28d,0xf296,0xf29e,
856 0xf2a6,0xf2af,0xf2b7,0xf2c0,0xf2c8,0xf2d1,0xf2d9,0xf2e1,
857 0xf2ea,0xf2f2,0xf2fb,0xf303,0xf30c,0xf314,0xf31c,0xf325,
858 0xf32d,0xf336,0xf33e,0xf347,0xf34f,0xf357,0xf360,0xf368,
859 0xf371,0xf379,0xf381,0xf38a,0xf392,0xf39b,0xf3a3,0xf3ac,
860 0xf3b4,0xf3bc,0xf3c5,0xf3cd,0xf3d6,0xf3de,0xf3e6,0xf3ef,
861 0xf3f7,0xf400,0xf408,0xf410,0xf419,0xf421,0xf429,0xf432,
862 0xf43a,0xf443,0xf44b,0xf453,0xf45c,0xf464,0xf46d,0xf475,
863 0xf47d,0xf486,0xf48e,0xf496,0xf49f,0xf4a7,0xf4b0,0xf4b8,
864 0xf4c0,0xf4c9,0xf4d1,0xf4d9,0xf4e2,0xf4ea,0xf4f2,0xf4fb,
865 0xf503,0xf50c,0xf514,0xf51c,0xf525,0xf52d,0xf535,0xf53e,
866 0xf546,0xf54e,0xf557,0xf55f,0xf567,0xf570,0xf578,0xf580,
867 0xf589,0xf591,0xf599,0xf5a2,0xf5aa,0xf5b2,0xf5bb,0xf5c3,
868 0xf5cb,0xf5d4,0xf5dc,0xf5e4,0xf5ed,0xf5f5,0xf5fd,0xf606,
869 0xf60e,0xf616,0xf61f,0xf627,0xf62f,0xf638,0xf640,0xf648,
870 0xf651,0xf659,0xf661,0xf66a,0xf672,0xf67a,0xf682,0xf68b,
871 0xf693,0xf69b,0xf6a4,0xf6ac,0xf6b4,0xf6bd,0xf6c5,0xf6cd,
872 0xf6d6,0xf6de,0xf6e6,0xf6ee,0xf6f7,0xf6ff,0xf707,0xf710,
873 0xf718,0xf720,0xf728,0xf731,0xf739,0xf741,0xf74a,0xf752,
874 0xf75a,0xf762,0xf76b,0xf773,0xf77b,0xf784,0xf78c,0xf794,
875 0xf79c,0xf7a5,0xf7ad,0xf7b5,0xf7bd,0xf7c6,0xf7ce,0xf7d6,
876 0xf7de,0xf7e7,0xf7ef,0xf7f7,0xf800,0xf808,0xf810,0xf818,
877 0xf821,0xf829,0xf831,0xf839,0xf842,0xf84a,0xf852,0xf85a,
878 0xf863,0xf86b,0xf873,0xf87b,0xf883,0xf88c,0xf894,0xf89c,
879 0xf8a4,0xf8ad,0xf8b5,0xf8bd,0xf8c5,0xf8ce,0xf8d6,0xf8de,
880 0xf8e6,0xf8ef,0xf8f7,0xf8ff,0xf907,0xf90f,0xf918,0xf920,
881 0xf928,0xf930,0xf939,0xf941,0xf949,0xf951,0xf959,0xf962,
882 0xf96a,0xf972,0xf97a,0xf982,0xf98b,0xf993,0xf99b,0xf9a3,
883 0xf9ab,0xf9b4,0xf9bc,0xf9c4,0xf9cc,0xf9d4,0xf9dd,0xf9e5,
884 0xf9ed,0xf9f5,0xf9fd,0xfa06,0xfa0e,0xfa16,0xfa1e,0xfa26,
885 0xfa2f,0xfa37,0xfa3f,0xfa47,0xfa4f,0xfa58,0xfa60,0xfa68,
886 0xfa70,0xfa78,0xfa80,0xfa89,0xfa91,0xfa99,0xfaa1,0xfaa9,
887 0xfab1,0xfaba,0xfac2,0xfaca,0xfad2,0xfada,0xfae2,0xfaeb,
888 0xfaf3,0xfafb,0xfb03,0xfb0b,0xfb13,0xfb1c,0xfb24,0xfb2c,
889 0xfb34,0xfb3c,0xfb44,0xfb4c,0xfb55,0xfb5d,0xfb65,0xfb6d,
890 0xfb75,0xfb7d,0xfb85,0xfb8e,0xfb96,0xfb9e,0xfba6,0xfbae,
891 0xfbb6,0xfbbe,0xfbc7,0xfbcf,0xfbd7,0xfbdf,0xfbe7,0xfbef,
892 0xfbf7,0xfc00,0xfc08,0xfc10,0xfc18,0xfc20,0xfc28,0xfc30,
893 0xfc38,0xfc40,0xfc49,0xfc51,0xfc59,0xfc61,0xfc69,0xfc71,
894 0xfc79,0xfc81,0xfc8a,0xfc92,0xfc9a,0xfca2,0xfcaa,0xfcb2,
895 0xfcba,0xfcc2,0xfcca,0xfcd2,0xfcdb,0xfce3,0xfceb,0xfcf3,
896 0xfcfb,0xfd03,0xfd0b,0xfd13,0xfd1b,0xfd23,0xfd2c,0xfd34,
897 0xfd3c,0xfd44,0xfd4c,0xfd54,0xfd5c,0xfd64,0xfd6c,0xfd74,
898 0xfd7c,0xfd84,0xfd8d,0xfd95,0xfd9d,0xfda5,0xfdad,0xfdb5,
899 0xfdbd,0xfdc5,0xfdcd,0xfdd5,0xfddd,0xfde5,0xfded,0xfdf5,
900 0xfdfd,0xfe06,0xfe0e,0xfe16,0xfe1e,0xfe26,0xfe2e,0xfe36,
901 0xfe3e,0xfe46,0xfe4e,0xfe56,0xfe5e,0xfe66,0xfe6e,0xfe76,
902 0xfe7e,0xfe86,0xfe8e,0xfe97,0xfe9f,0xfea7,0xfeaf,0xfeb7,
903 0xfebf,0xfec7,0xfecf,0xfed7,0xfedf,0xfee7,0xfeef,0xfef7,
904 0xfeff,0xff07,0xff0f,0xff17,0xff1f,0xff27,0xff2f,0xff37,
905 0xff3f,0xff47,0xff4f,0xff57,0xff5f,0xff67,0xff6f,0xff77,
906 0xff7f,0xff87,0xff8f,0xff97,0xff9f,0xffa7,0xffaf,0xffb7,
907 0xffbf,0xffc7,0xffcf,0xffd7,0xffdf,0xffe7,0xffef,0xfff7
908 ];
909
910 const RA144_CODEBOOK1: [u16; 128] = [
911 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
912 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
913 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
914 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
915 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
916 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
917 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
918 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
919 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
920 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
921 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
922 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
923 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
924 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
925 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
926 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
927 ];
928 const RA144_VECTORS1: [[i8; BLOCKSIZE]; 128] = [
929 [
930 38, -4, 15, -4, 14, -13, 12, -11, -2, -6,
931 -6, -11, -45, -16, -11, -13, -7, 6, -12, 4,
932 -20, 3, -16, 12, -1, 12, 46, 24, 0, 33,
933 -3, 9, -12, -12, -8, -7, 17, -6, 0, -2,
934 ], [
935 60, -16, 3, -22, 10, -32, 0, -28, -17, -18,
936 -3, -25, -37, -23, -10, 3, 2, 3, 0, 3,
937 -14, 0, -14, -1, 0, 2, 32, 9, -1, 25,
938 7, 13, -5, 13, 8, 1, 2, 8, -10, 6,
939 ], [
940 27, -12, 28, -2, 6, -7, 15, 9, -11, 1,
941 -13, -11, -40, 4, -29, -14, -19, -5, -23, -8,
942 -30, -13, -17, 0, -14, 12, 34, 20, -2, 25,
943 2, -16, -4, -12, 15, 16, 29, 7, 24, 10,
944 ], [
945 49, -24, 16, -20, 2, -26, 2, -7, -25, -10,
946 -11, -25, -32, -3, -27, 2, -8, -8, -11, -9,
947 -24, -17, -16, -14, -13, 2, 20, 5, -4, 17,
948 14, -12, 3, 13, 33, 25, 14, 23, 15, 19,
949 ], [
950 46, -6, 21, 8, -2, -16, -5, -8, -11, 4,
951 8, 15, -24, 4, -2, -26, -3, -16, -16, -14,
952 -9, -2, -1, 4, 19, 7, 36, 17, 9, 13,
953 0, 31, -5, -12, 7, -8, 11, -15, -13, -4,
954 ], [
955 68, -18, 9, -9, -6, -35, -18, -25, -26, -7,
956 10, 1, -16, -3, -1, -9, 6, -19, -4, -15,
957 -4, -6, 0, -8, 20, -2, 23, 2, 7, 5,
958 12, 35, 1, 13, 24, 0, -3, 0, -22, 4,
959 ], [
960 35, -14, 34, 10, -10, -10, -1, 12, -20, 12,
961 0, 15, -18, 24, -20, -27, -14, -28, -27, -27,
962 -20, -19, -2, -8, 5, 7, 25, 13, 5, 5,
963 6, 5, 2, -12, 31, 15, 23, -1, 12, 8,
964 ], [
965 57, -26, 22, -7, -14, -28, -14, -3, -35, 0,
966 3, 1, -11, 16, -18, -10, -4, -31, -15, -28,
967 -14, -23, -1, -21, 7, -2, 11, -1, 3, -1,
968 18, 9, 10, 13, 49, 24, 8, 14, 2, 16,
969 ], [
970 25, 15, 22, 11, 18, 4, 15, -22, 8, -2,
971 -17, -9, -48, -20, -30, -17, -16, 11, -1, 16,
972 2, 10, -5, 26, -2, -4, 22, 0, 2, 10,
973 -6, 13, -14, 10, -23, 0, 10, -2, 1, 0,
974 ], [
975 47, 3, 11, -6, 15, -13, 2, -38, -6, -13,
976 -15, -22, -40, -28, -28, 0, -5, 8, 10, 15,
977 7, 7, -4, 13, -1, -14, 9, -14, 0, 2,
978 4, 18, -7, 36, -6, 8, -3, 13, -7, 8,
979 ], [
980 14, 7, 36, 13, 10, 10, 18, 0, 0, 5,
981 -25, -8, -43, 0, -48, -18, -27, 0, -12, 3,
982 -7, -6, -7, 13, -15, -5, 11, -3, 0, 2,
983 0, -12, -6, 10, 0, 23, 22, 11, 26, 12,
984 ], [
985 36, -5, 24, -4, 7, -7, 6, -17, -14, -5,
986 -22, -22, -35, -8, -46, -1, -17, -3, 0, 2,
987 -2, -10, -5, 0, -14, -15, -2, -18, -2, -4,
988 11, -7, 1, 36, 18, 32, 7, 27, 17, 20,
989 ], [
990 33, 13, 29, 24, 1, 1, -2, -18, 0, 9,
991 -3, 17, -27, 0, -21, -30, -12, -11, -5, -2,
992 12, 4, 9, 19, 18, -9, 13, -6, 11, -8,
993 -2, 35, -8, 10, -7, -1, 4, -11, -10, -2,
994 ], [
995 55, 1, 17, 6, -1, -16, -15, -35, -15, -2,
996 0, 4, -19, -8, -20, -13, -1, -14, 7, -3,
997 18, 0, 10, 5, 19, -19, 0, -21, 8, -16,
998 9, 39, 0, 36, 10, 7, -9, 4, -20, 5,
999 ], [
1000 22, 5, 42, 26, -6, 8, 1, 2, -9, 17,
1001 -10, 18, -21, 19, -39, -31, -23, -23, -16, -15,
1002 2, -12, 7, 6, 5, -9, 1, -10, 7, -16,
1003 4, 9, 0, 10, 17, 22, 16, 2, 14, 9,
1004 ], [
1005 44, -6, 30, 8, -9, -10, -11, -14, -23, 5,
1006 -8, 4, -14, 12, -37, -14, -12, -26, -4, -16,
1007 8, -16, 9, -7, 6, -19, -12, -25, 5, -24,
1008 15, 13, 8, 36, 34, 31, 1, 18, 4, 18,
1009 ], [
1010 -3, -5, -9, -7, 15, -1, 5, 13, 2, 12,
1011 5, 2, -21, -23, -2, -16, 0, 5, -6, 13,
1012 -23, 3, -32, 10, -15, 8, 44, 28, 9, 37,
1013 -2, 13, -9, -15, -12, -27, -7, -12, 0, -11,
1014 ], [
1015 18, -17, -21, -25, 11, -19, -6, -3, -11, 0,
1016 7, -11, -13, -31, -1, 0, 9, 1, 5, 12,
1017 -18, 0, -31, -2, -13, -1, 30, 14, 7, 29,
1018 9, 18, -1, 10, 4, -18, -22, 3, -10, -2,
1019 ], [
1020 -13, -13, 3, -5, 7, 4, 9, 34, -5, 20,
1021 -2, 3, -16, -3, -20, -17, -11, -7, -17, 0,
1022 -34, -13, -33, -2, -28, 8, 32, 24, 5, 29,
1023 3, -12, 0, -15, 11, -3, 3, 2, 24, 1,
1024 ], [
1025 8, -25, -8, -23, 3, -13, -3, 17, -20, 8,
1026 0, -10, -8, -11, -18, 0, -1, -10, -5, 0,
1027 -28, -17, -32, -15, -26, -1, 19, 9, 3, 21,
1028 15, -7, 6, 9, 29, 5, -10, 17, 15, 9,
1029 ], [
1030 4, -6, -3, 5, -1, -4, -11, 16, -6, 23,
1031 19, 29, 0, -3, 6, -30, 3, -17, -10, -5,
1032 -13, -2, -17, 3, 5, 3, 35, 21, 17, 17,
1033 2, 35, -2, -15, 3, -28, -13, -21, -13, -13,
1034 ], [
1035 26, -19, -15, -12, -5, -22, -24, 0, -21, 12,
1036 21, 15, 8, -11, 7, -12, 14, -20, 2, -6,
1037 -7, -6, -16, -9, 6, -5, 21, 7, 15, 10,
1038 13, 39, 5, 10, 20, -19, -28, -5, -22, -5,
1039 ], [
1040 -5, -15, 9, 7, -9, 2, -8, 37, -14, 31,
1041 11, 29, 5, 16, -11, -30, -7, -29, -21, -18,
1042 -23, -19, -18, -9, -7, 3, 23, 17, 14, 9,
1043 8, 9, 6, -15, 27, -4, -2, -6, 12, -1,
1044 ], [
1045 16, -27, -2, -10, -13, -16, -20, 20, -29, 20,
1046 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
1047 -17, -23, -17, -22, -6, -6, 9, 2, 12, 2,
1048 20, 13, 13, 10, 45, 4, -16, 8, 2, 7,
1049 ], [
1050 -16, 14, -2, 8, 20, 17, 9, 2, 14, 16,
1051 -6, 5, -24, -28, -21, -20, -8, 9, 4, 25,
1052 -1, 11, -22, 24, -15, -8, 21, 5, 11, 14,
1053 -5, 18, -11, 7, -27, -20, -14, -7, 1, -9,
1054 ], [
1055 6, 2, -14, -9, 16, -1, -3, -14, 0, 5,
1056 -3, -8, -16, -36, -19, -3, 1, 6, 17, 24,
1057 4, 7, -21, 11, -14, -18, 7, -9, 9, 7,
1058 6, 22, -3, 33, -10, -11, -28, 7, -7, 0,
1059 ], [
1060 -26, 6, 11, 10, 12, 23, 12, 23, 5, 24,
1061 -13, 5, -19, -8, -38, -21, -20, -2, -6, 12,
1062 -11, -5, -23, 11, -29, -9, 9, 0, 7, 6,
1063 1, -7, -2, 7, -3, 3, -2, 6, 27, 3,
1064 ], [
1065 -4, -6, 0, -7, 8, 4, 0, 6, -9, 13,
1066 -11, -7, -11, -15, -37, -4, -9, -5, 5, 11,
1067 -5, -9, -22, -1, -27, -18, -4, -14, 5, 0,
1068 12, -3, 4, 32, 14, 12, -17, 22, 17, 11,
1069 ], [
1070 -8, 12, 3, 21, 3, 14, -8, 5, 4, 28,
1071 7, 32, -2, -8, -12, -34, -4, -12, 1, 6,
1072 9, 4, -7, 17, 4, -13, 11, -1, 19, -4,
1073 0, 39, -4, 7, -11, -21, -20, -16, -10, -11,
1074 ], [
1075 13, 0, -8, 3, 0, -4, -21, -11, -9, 16,
1076 10, 18, 5, -16, -10, -16, 5, -15, 13, 5,
1077 15, 1, -6, 4, 6, -23, -2, -16, 17, -12,
1078 10, 44, 3, 33, 6, -12, -34, -1, -20, -3,
1079 ], [
1080 -18, 4, 17, 23, -4, 20, -4, 26, -3, 36,
1081 0, 32, 2, 12, -29, -34, -16, -24, -10, -6,
1082 0, -12, -8, 4, -8, -13, 0, -6, 16, -12,
1083 5, 13, 3, 7, 13, 3, -8, -2, 14, 0,
1084 ], [
1085 3, -7, 5, 5, -8, 2, -17, 9, -18, 24,
1086 2, 19, 10, 4, -28, -17, -5, -28, 2, -7,
1087 4, -15, -7, -8, -6, -23, -13, -21, 14, -20,
1088 17, 18, 11, 33, 30, 11, -23, 13, 5, 9,
1089 ], [
1090 60, 10, 7, -1, 9, -8, 6, -13, 2, -15,
1091 -1, -10, -13, -11, 15, 0, 6, 9, -1, 0,
1092 -13, 1, -11, -3, -13, 21, 13, 26, -7, 31,
1093 -10, -7, -16, -33, -31, -10, 22, -8, 1, -2,
1094 ], [
1095 82, -1, -4, -19, 6, -27, -6, -29, -12, -26,
1096 1, -24, -5, -18, 17, 17, 17, 6, 10, 0,
1097 -7, -2, -9, -16, -12, 11, 0, 11, -9, 23,
1098 0, -3, -8, -8, -13, -1, 8, 7, -7, 6,
1099 ], [
1100 49, 2, 21, 0, 1, -2, 9, 8, -6, -6,
1101 -8, -10, -8, 9, -2, 0, -4, -2, -13, -12,
1102 -23, -15, -12, -16, -26, 21, 2, 21, -11, 23,
1103 -4, -33, -7, -33, -6, 13, 34, 5, 27, 10,
1104 ], [
1105 71, -10, 9, -17, -1, -20, -3, -8, -21, -18,
1106 -6, -24, 0, 1, 0, 16, 6, -5, 0, -13,
1107 -17, -19, -11, -29, -25, 11, -11, 6, -13, 15,
1108 7, -29, 0, -8, 11, 22, 20, 21, 17, 18,
1109 ], [
1110 67, 8, 14, 11, -7, -11, -11, -9, -7, -3,
1111 13, 16, 8, 9, 24, -12, 10, -13, -5, -17,
1112 -2, -4, 3, -10, 6, 17, 4, 19, 0, 11,
1113 -6, 13, -9, -33, -14, -10, 16, -17, -10, -4,
1114 ], [
1115 90, -3, 2, -6, -10, -29, -24, -26, -21, -15,
1116 15, 2, 16, 1, 25, 4, 21, -16, 6, -18,
1117 3, -8, 5, -24, 8, 7, -9, 4, -1, 3,
1118 5, 18, -1, -7, 2, -1, 2, -1, -19, 3,
1119 ], [
1120 57, 0, 27, 13, -14, -5, -7, 11, -15, 4,
1121 5, 16, 13, 29, 6, -13, 0, -25, -16, -31,
1122 -12, -22, 2, -23, -6, 16, -7, 14, -2, 3,
1123 0, -12, 0, -33, 9, 13, 28, -3, 14, 7,
1124 ], [
1125 79, -11, 15, -4, -18, -23, -20, -5, -30, -7,
1126 7, 2, 21, 21, 8, 3, 10, -28, -4, -31,
1127 -6, -25, 3, -37, -4, 7, -20, 0, -4, -4,
1128 11, -7, 6, -8, 27, 22, 14, 12, 5, 16,
1129 ], [
1130 47, 30, 15, 14, 14, 9, 9, -23, 13, -10,
1131 -12, -7, -16, -15, -3, -3, -1, 14, 9, 12,
1132 9, 8, 0, 10, -14, 4, -9, 2, -5, 8,
1133 -13, -3, -18, -10, -45, -3, 16, -4, 4, 0,
1134 ], [
1135 69, 17, 3, -3, 10, -8, -3, -40, -1, -21,
1136 -10, -21, -8, -23, -1, 13, 8, 11, 21, 11,
1137 15, 4, 0, -2, -13, -5, -23, -12, -7, 0,
1138 -1, 0, -10, 14, -28, 5, 1, 11, -5, 7,
1139 ], [
1140 36, 21, 28, 16, 6, 16, 12, -2, 4, -2,
1141 -20, -7, -11, 4, -20, -4, -12, 2, -1, 0,
1142 0, -8, -2, -2, -27, 4, -21, -2, -9, 0,
1143 -6, -29, -9, -10, -21, 21, 28, 10, 29, 11,
1144 ], [
1145 58, 9, 16, -1, 2, -2, 0, -19, -10, -13,
1146 -17, -21, -3, -3, -19, 12, -2, 0, 10, -1,
1147 5, -12, 0, -15, -26, -5, -34, -16, -11, -7,
1148 4, -25, -2, 14, -3, 29, 13, 25, 20, 20,
1149 ], [
1150 55, 28, 21, 27, -2, 7, -8, -20, 4, 1,
1151 1, 18, 5, 4, 5, -16, 2, -8, 5, -5,
1152 19, 2, 14, 3, 6, 0, -18, -4, 2, -11,
1153 -8, 18, -11, -10, -29, -3, 10, -13, -8, -3,
1154 ], [
1155 77, 16, 9, 9, -6, -11, -21, -37, -10, -10,
1156 4, 5, 13, -3, 7, 0, 13, -11, 17, -6,
1157 25, -1, 15, -9, 7, -9, -32, -19, 0, -18,
1158 2, 22, -3, 15, -12, 5, -4, 2, -17, 5,
1159 ], [
1160 44, 20, 34, 29, -10, 13, -4, 0, -4, 9,
1161 -5, 19, 10, 24, -11, -17, -8, -20, -5, -19,
1162 9, -14, 12, -9, -6, 0, -30, -9, 0, -19,
1163 -2, -7, -2, -10, -5, 20, 21, 1, 17, 9,
1164 ], [
1165 66, 8, 23, 11, -14, -5, -17, -16, -19, -2,
1166 -3, 5, 18, 17, -10, 0, 1, -23, 6, -20,
1167 15, -18, 14, -22, -5, -10, -44, -23, -2, -26,
1168 9, -3, 4, 14, 12, 29, 7, 16, 7, 18,
1169 ], [
1170 18, 9, -17, -4, 11, 3, 0, 11, 7, 4,
1171 10, 3, 10, -18, 24, -3, 14, 7, 4, 10,
1172 -16, 1, -27, -4, -27, 17, 12, 30, 0, 35,
1173 -9, -3, -12, -36, -35, -30, -2, -13, 2, -11,
1174 ], [
1175 40, -2, -29, -22, 7, -14, -12, -5, -7, -7,
1176 12, -9, 18, -26, 26, 14, 24, 4, 16, 9,
1177 -10, -2, -26, -18, -26, 7, -1, 15, -1, 27,
1178 2, 0, -4, -11, -17, -21, -16, 1, -7, -3,
1179 ], [
1180 8, 1, -3, -2, 3, 10, 3, 32, -1, 12,
1181 2, 4, 15, 1, 7, -3, 2, -4, -6, -3,
1182 -26, -15, -29, -17, -40, 17, 0, 26, -2, 27,
1183 -2, -29, -4, -36, -10, -6, 9, 0, 27, 0,
1184 ], [
1185 30, -11, -15, -20, 0, -8, -9, 15, -15, 0,
1186 5, -9, 23, -6, 8, 13, 13, -7, 5, -3,
1187 -20, -19, -27, -31, -39, 7, -13, 11, -4, 19,
1188 8, -25, 3, -11, 7, 2, -4, 16, 18, 9,
1189 ], [
1190 26, 7, -11, 8, -5, 1, -17, 14, -1, 15,
1191 24, 30, 32, 1, 33, -16, 18, -14, 0, -8,
1192 -6, -4, -12, -12, -6, 13, 2, 23, 8, 15,
1193 -4, 17, -5, -36, -18, -30, -8, -22, -10, -14,
1194 ], [
1195 48, -4, -23, -9, -9, -17, -30, -2, -16, 3,
1196 26, 16, 40, -6, 35, 1, 28, -17, 12, -9,
1197 0, -8, -11, -25, -5, 3, -10, 8, 6, 7,
1198 6, 22, 1, -11, -1, -21, -22, -7, -19, -5,
1199 ], [
1200 15, 0, 2, 10, -13, 7, -14, 35, -10, 23,
1201 16, 31, 37, 21, 16, -17, 6, -26, -10, -21,
1202 -16, -21, -13, -25, -19, 13, -8, 19, 5, 7,
1203 1, -8, 2, -36, 5, -6, 3, -8, 15, -1,
1204 ], [
1205 37, -12, -9, -7, -17, -11, -26, 18, -25, 12,
1206 19, 17, 45, 14, 17, 0, 17, -30, 1, -22,
1207 -10, -25, -12, -38, -18, 3, -22, 4, 3, 0,
1208 13, -3, 10, -11, 23, 2, -10, 7, 5, 7,
1209 ], [
1210 5, 29, -9, 11, 15, 22, 3, 0, 18, 8,
1211 -1, 6, 7, -23, 6, -6, 5, 12, 15, 21,
1212 5, 8, -17, 9, -28, 0, -11, 6, 2, 12,
1213 -11, 0, -14, -13, -49, -22, -8, -9, 4, -9,
1214 ], [
1215 27, 16, -21, -6, 12, 3, -9, -16, 3, -2,
1216 1, -7, 15, -31, 7, 10, 16, 9, 27, 21,
1217 11, 5, -16, -3, -26, -9, -24, -7, 0, 4,
1218 0, 4, -6, 11, -32, -14, -23, 6, -5, -1,
1219 ], [
1220 -4, 20, 3, 13, 8, 28, 6, 21, 10, 16,
1221 -8, 7, 12, -3, -11, -7, -5, 0, 4, 8,
1222 -4, -8, -18, -3, -41, 0, -22, 2, 0, 4,
1223 -5, -25, -6, -14, -25, 1, 2, 4, 29, 2,
1224 ], [
1225 17, 8, -8, -4, 4, 10, -6, 5, -4, 5,
1226 -6, -6, 20, -10, -9, 9, 4, -2, 16, 7,
1227 1, -12, -17, -16, -39, -9, -36, -12, -2, -3,
1228 6, -21, 1, 11, -7, 10, -11, 20, 20, 11,
1229 ], [
1230 13, 27, -3, 24, -1, 19, -14, 3, 9, 20,
1231 12, 33, 29, -3, 15, -20, 9, -9, 11, 3,
1232 16, 2, -2, 2, -7, -3, -20, 0, 10, -7,
1233 -7, 22, -7, -13, -33, -23, -14, -18, -7, -12,
1234 ], [
1235 35, 15, -15, 6, -4, 1, -27, -12, -5, 8,
1236 15, 19, 37, -11, 16, -2, 20, -12, 23, 2,
1237 22, -1, -1, -11, -5, -13, -34, -14, 8, -14,
1238 4, 26, 0, 11, -16, -14, -29, -2, -17, -3,
1239 ], [
1240 3, 19, 9, 26, -8, 26, -10, 24, 0, 28,
1241 5, 33, 34, 17, -2, -20, -1, -22, 0, -10,
1242 6, -14, -3, -10, -20, -4, -32, -4, 7, -15,
1243 0, -3, 0, -13, -9, 0, -3, -4, 17, 0,
1244 ], [
1245 25, 7, -2, 8, -12, 7, -23, 8, -13, 16,
1246 7, 20, 42, 9, 0, -3, 9, -25, 12, -10,
1247 12, -18, -2, -24, -19, -13, -46, -19, 5, -22,
1248 10, 0, 8, 11, 8, 9, -17, 11, 7, 8,
1249 ], [
1250 -25, -7, 2, -8, 12, -7, 23, -8, 13, -16,
1251 -7, -20, -42, -9, 0, 3, -9, 25, -12, 10,
1252 -12, 18, 2, 24, 19, 13, 46, 19, -5, 22,
1253 -10, 0, -8, -11, -8, -9, 17, -11, -7, -8,
1254 ], [
1255 -3, -19, -9, -26, 8, -26, 10, -24, 0, -28,
1256 -5, -33, -34, -17, 2, 20, 1, 22, 0, 10,
1257 -6, 14, 3, 10, 20, 4, 32, 4, -7, 15,
1258 0, 3, 0, 13, 9, 0, 3, 4, -17, 0,
1259 ], [
1260 -35, -15, 15, -6, 4, -1, 27, 12, 5, -8,
1261 -15, -19, -37, 11, -16, 2, -20, 12, -23, -2,
1262 -22, 1, 1, 11, 5, 13, 34, 14, -8, 14,
1263 -4, -26, 0, -11, 16, 14, 29, 2, 17, 3,
1264 ], [
1265 -13, -27, 3, -24, 1, -19, 14, -3, -9, -20,
1266 -12, -33, -29, 3, -15, 20, -9, 9, -11, -3,
1267 -16, -2, 2, -2, 7, 3, 20, 0, -10, 7,
1268 7, -22, 7, 13, 33, 23, 14, 18, 7, 12,
1269 ], [
1270 -17, -8, 8, 4, -4, -10, 6, -5, 4, -5,
1271 6, 6, -20, 10, 9, -9, -4, 2, -16, -7,
1272 -1, 12, 17, 16, 39, 9, 36, 12, 2, 3,
1273 -6, 21, -1, -11, 7, -10, 11, -20, -20, -11,
1274 ], [
1275 4, -20, -3, -13, -8, -28, -6, -21, -10, -16,
1276 8, -7, -12, 3, 11, 7, 5, 0, -4, -8,
1277 4, 8, 18, 3, 41, 0, 22, -2, 0, -4,
1278 5, 25, 6, 14, 25, -1, -2, -4, -29, -2,
1279 ], [
1280 -27, -16, 21, 6, -12, -3, 9, 16, -3, 2,
1281 -1, 7, -15, 31, -7, -10, -16, -9, -27, -21,
1282 -11, -5, 16, 3, 26, 9, 24, 7, 0, -4,
1283 0, -4, 6, -11, 32, 14, 23, -6, 5, 1,
1284 ], [
1285 -5, -29, 9, -11, -15, -22, -3, 0, -18, -8,
1286 1, -6, -7, 23, -6, 6, -5, -12, -15, -21,
1287 -5, -8, 17, -9, 28, 0, 11, -6, -2, -12,
1288 11, 0, 14, 13, 49, 22, 8, 9, -4, 9,
1289 ], [
1290 -37, 12, 9, 7, 17, 11, 26, -18, 25, -12,
1291 -19, -17, -45, -14, -17, 0, -17, 30, -1, 22,
1292 10, 25, 12, 38, 18, -3, 22, -4, -3, 0,
1293 -13, 3, -10, 11, -23, -2, 10, -7, -5, -7,
1294 ], [
1295 -15, 0, -2, -10, 13, -7, 14, -35, 10, -23,
1296 -16, -31, -37, -21, -16, 17, -6, 26, 10, 21,
1297 16, 21, 13, 25, 19, -13, 8, -19, -5, -7,
1298 -1, 8, -2, 36, -5, 6, -3, 8, -15, 1,
1299 ], [
1300 -48, 4, 23, 9, 9, 17, 30, 2, 16, -3,
1301 -26, -16, -40, 6, -35, -1, -28, 17, -12, 9,
1302 0, 8, 11, 25, 5, -3, 10, -8, -6, -7,
1303 -6, -22, -1, 11, 1, 21, 22, 7, 19, 5,
1304 ], [
1305 -26, -7, 11, -8, 5, -1, 17, -14, 1, -15,
1306 -24, -30, -32, -1, -33, 16, -18, 14, 0, 8,
1307 6, 4, 12, 12, 6, -13, -2, -23, -8, -15,
1308 4, -17, 5, 36, 18, 30, 8, 22, 10, 14,
1309 ], [
1310 -30, 11, 15, 20, 0, 8, 9, -15, 15, 0,
1311 -5, 9, -23, 6, -8, -13, -13, 7, -5, 3,
1312 20, 19, 27, 31, 39, -7, 13, -11, 4, -19,
1313 -8, 25, -3, 11, -7, -2, 4, -16, -18, -9,
1314 ], [
1315 -8, -1, 3, 2, -3, -10, -3, -32, 1, -12,
1316 -2, -4, -15, -1, -7, 3, -2, 4, 6, 3,
1317 26, 15, 29, 17, 40, -17, 0, -26, 2, -27,
1318 2, 29, 4, 36, 10, 6, -9, 0, -27, 0,
1319 ], [
1320 -40, 2, 29, 22, -7, 14, 12, 5, 7, 7,
1321 -12, 9, -18, 26, -26, -14, -24, -4, -16, -9,
1322 10, 2, 26, 18, 26, -7, 1, -15, 1, -27,
1323 -2, 0, 4, 11, 17, 21, 16, -1, 7, 3,
1324 ], [
1325 -18, -9, 17, 4, -11, -3, 0, -11, -7, -4,
1326 -10, -3, -10, 18, -24, 3, -14, -7, -4, -10,
1327 16, -1, 27, 4, 27, -17, -12, -30, 0, -35,
1328 9, 3, 12, 36, 35, 30, 2, 13, -2, 11,
1329 ], [
1330 -66, -8, -23, -11, 14, 5, 17, 16, 19, 2,
1331 3, -5, -18, -17, 10, 0, -1, 23, -6, 20,
1332 -15, 18, -14, 22, 5, 10, 44, 23, 2, 26,
1333 -9, 3, -4, -14, -12, -29, -7, -16, -7, -18,
1334 ], [
1335 -44, -20, -34, -29, 10, -13, 4, 0, 4, -9,
1336 5, -19, -10, -24, 11, 17, 8, 20, 5, 19,
1337 -9, 14, -12, 9, 6, 0, 30, 9, 0, 19,
1338 2, 7, 2, 10, 5, -20, -21, -1, -17, -9,
1339 ], [
1340 -77, -16, -9, -9, 6, 11, 21, 37, 10, 10,
1341 -4, -5, -13, 3, -7, 0, -13, 11, -17, 6,
1342 -25, 1, -15, 9, -7, 9, 32, 19, 0, 18,
1343 -2, -22, 3, -15, 12, -5, 4, -2, 17, -5,
1344 ], [
1345 -55, -28, -21, -27, 2, -7, 8, 20, -4, -1,
1346 -1, -18, -5, -4, -5, 16, -2, 8, -5, 5,
1347 -19, -2, -14, -3, -6, 0, 18, 4, -2, 11,
1348 8, -18, 11, 10, 29, 3, -10, 13, 8, 3,
1349 ], [
1350 -58, -9, -16, 1, -2, 2, 0, 19, 10, 13,
1351 17, 21, 3, 3, 19, -12, 2, 0, -10, 1,
1352 -5, 12, 0, 15, 26, 5, 34, 16, 11, 7,
1353 -4, 25, 2, -14, 3, -29, -13, -25, -20, -20,
1354 ], [
1355 -36, -21, -28, -16, -6, -16, -12, 2, -4, 2,
1356 20, 7, 11, -4, 20, 4, 12, -2, 1, 0,
1357 0, 8, 2, 2, 27, -4, 21, 2, 9, 0,
1358 6, 29, 9, 10, 21, -21, -28, -10, -29, -11,
1359 ], [
1360 -69, -17, -3, 3, -10, 8, 3, 40, 1, 21,
1361 10, 21, 8, 23, 1, -13, -8, -11, -21, -11,
1362 -15, -4, 0, 2, 13, 5, 23, 12, 7, 0,
1363 1, 0, 10, -14, 28, -5, -1, -11, 5, -7,
1364 ], [
1365 -47, -30, -15, -14, -14, -9, -9, 23, -13, 10,
1366 12, 7, 16, 15, 3, 3, 1, -14, -9, -12,
1367 -9, -8, 0, -10, 14, -4, 9, -2, 5, -8,
1368 13, 3, 18, 10, 45, 3, -16, 4, -4, 0,
1369 ], [
1370 -79, 11, -15, 4, 18, 23, 20, 5, 30, 7,
1371 -7, -2, -21, -21, -8, -3, -10, 28, 4, 31,
1372 6, 25, -3, 37, 4, -7, 20, 0, 4, 4,
1373 -11, 7, -6, 8, -27, -22, -14, -12, -5, -16,
1374 ], [
1375 -57, 0, -27, -13, 14, 5, 7, -11, 15, -4,
1376 -5, -16, -13, -29, -6, 13, 0, 25, 16, 31,
1377 12, 22, -2, 23, 6, -16, 7, -14, 2, -3,
1378 0, 12, 0, 33, -9, -13, -28, 3, -14, -7,
1379 ], [
1380 -90, 3, -2, 6, 10, 29, 24, 26, 21, 15,
1381 -15, -2, -16, -1, -25, -4, -21, 16, -6, 18,
1382 -3, 8, -5, 24, -8, -7, 9, -4, 1, -3,
1383 -5, -18, 1, 7, -2, 1, -2, 1, 19, -3,
1384 ], [
1385 -67, -8, -14, -11, 7, 11, 11, 9, 7, 3,
1386 -13, -16, -8, -9, -24, 12, -10, 13, 5, 17,
1387 2, 4, -3, 10, -6, -17, -4, -19, 0, -11,
1388 6, -13, 9, 33, 14, 10, -16, 17, 10, 4,
1389 ], [
1390 -71, 10, -9, 17, 1, 20, 3, 8, 21, 18,
1391 6, 24, 0, -1, 0, -16, -6, 5, 0, 13,
1392 17, 19, 11, 29, 25, -11, 11, -6, 13, -15,
1393 -7, 29, 0, 8, -11, -22, -20, -21, -17, -18,
1394 ], [
1395 -49, -2, -21, 0, -1, 2, -9, -8, 6, 6,
1396 8, 10, 8, -9, 2, 0, 4, 2, 13, 12,
1397 23, 15, 12, 16, 26, -21, -2, -21, 11, -23,
1398 4, 33, 7, 33, 6, -13, -34, -5, -27, -10,
1399 ], [
1400 -82, 1, 4, 19, -6, 27, 6, 29, 12, 26,
1401 -1, 24, 5, 18, -17, -17, -17, -6, -10, 0,
1402 7, 2, 9, 16, 12, -11, 0, -11, 9, -23,
1403 0, 3, 8, 8, 13, 1, -8, -7, 7, -6,
1404 ], [
1405 -60, -10, -7, 1, -9, 8, -6, 13, -2, 15,
1406 1, 10, 13, 11, -15, 0, -6, -9, 1, 0,
1407 13, -1, 11, 3, 13, -21, -13, -26, 7, -31,
1408 10, 7, 16, 33, 31, 10, -22, 8, -1, 2,
1409 ], [
1410 -3, 7, -5, -5, 8, -2, 17, -9, 18, -24,
1411 -2, -19, -10, -4, 28, 17, 5, 28, -2, 7,
1412 -4, 15, 7, 8, 6, 23, 13, 21, -14, 20,
1413 -17, -18, -11, -33, -30, -11, 23, -13, -5, -9,
1414 ], [
1415 18, -4, -17, -23, 4, -20, 4, -26, 3, -36,
1416 0, -32, -2, -12, 29, 34, 16, 24, 10, 6,
1417 0, 12, 8, -4, 8, 13, 0, 6, -16, 12,
1418 -5, -13, -3, -7, -13, -3, 8, 2, -14, 0,
1419 ], [
1420 -13, 0, 8, -3, 0, 4, 21, 11, 9, -16,
1421 -10, -18, -5, 16, 10, 16, -5, 15, -13, -5,
1422 -15, -1, 6, -4, -6, 23, 2, 16, -17, 12,
1423 -10, -44, -3, -33, -6, 12, 34, 1, 20, 3,
1424 ], [
1425 8, -12, -3, -21, -3, -14, 8, -5, -4, -28,
1426 -7, -32, 2, 8, 12, 34, 4, 12, -1, -6,
1427 -9, -4, 7, -17, -4, 13, -11, 1, -19, 4,
1428 0, -39, 4, -7, 11, 21, 20, 16, 10, 11,
1429 ], [
1430 4, 6, 0, 7, -8, -4, 0, -6, 9, -13,
1431 11, 7, 11, 15, 37, 4, 9, 5, -5, -11,
1432 5, 9, 22, 1, 27, 18, 4, 14, -5, 0,
1433 -12, 3, -4, -32, -14, -12, 17, -22, -17, -11,
1434 ], [
1435 26, -6, -11, -10, -12, -23, -12, -23, -5, -24,
1436 13, -5, 19, 8, 38, 21, 20, 2, 6, -12,
1437 11, 5, 23, -11, 29, 9, -9, 0, -7, -6,
1438 -1, 7, 2, -7, 3, -3, 2, -6, -27, -3,
1439 ], [
1440 -6, -2, 14, 9, -16, 1, 3, 14, 0, -5,
1441 3, 8, 16, 36, 19, 3, -1, -6, -17, -24,
1442 -4, -7, 21, -11, 14, 18, -7, 9, -9, -7,
1443 -6, -22, 3, -33, 10, 11, 28, -7, 7, 0,
1444 ], [
1445 16, -14, 2, -8, -20, -17, -9, -2, -14, -16,
1446 6, -5, 24, 28, 21, 20, 8, -9, -4, -25,
1447 1, -11, 22, -24, 15, 8, -21, -5, -11, -14,
1448 5, -18, 11, -7, 27, 20, 14, 7, -1, 9,
1449 ], [
1450 -16, 27, 2, 10, 13, 16, 20, -20, 29, -20,
1451 -14, -16, -13, -8, 9, 13, -2, 33, 9, 19,
1452 17, 23, 17, 22, 6, 6, -9, -2, -12, -2,
1453 -20, -13, -13, -10, -45, -4, 16, -8, -2, -7,
1454 ], [
1455 5, 15, -9, -7, 9, -2, 8, -37, 14, -31,
1456 -11, -29, -5, -16, 11, 30, 7, 29, 21, 18,
1457 23, 19, 18, 9, 7, -3, -23, -17, -14, -9,
1458 -8, -9, -6, 15, -27, 4, 2, 6, -12, 1,
1459 ], [
1460 -26, 19, 15, 12, 5, 22, 24, 0, 21, -12,
1461 -21, -15, -8, 11, -7, 12, -14, 20, -2, 6,
1462 7, 6, 16, 9, -6, 5, -21, -7, -15, -10,
1463 -13, -39, -5, -10, -20, 19, 28, 5, 22, 5,
1464 ], [
1465 -4, 6, 3, -5, 1, 4, 11, -16, 6, -23,
1466 -19, -29, 0, 3, -6, 30, -3, 17, 10, 5,
1467 13, 2, 17, -3, -5, -3, -35, -21, -17, -17,
1468 -2, -35, 2, 15, -3, 28, 13, 21, 13, 13,
1469 ], [
1470 -8, 25, 8, 23, -3, 13, 3, -17, 20, -8,
1471 0, 10, 8, 11, 18, 0, 1, 10, 5, 0,
1472 28, 17, 32, 15, 26, 1, -19, -9, -3, -21,
1473 -15, 7, -6, -9, -29, -5, 10, -17, -15, -9,
1474 ], [
1475 13, 13, -3, 5, -7, -4, -9, -34, 5, -20,
1476 2, -3, 16, 3, 20, 17, 11, 7, 17, 0,
1477 34, 13, 33, 2, 28, -8, -32, -24, -5, -29,
1478 -3, 12, 0, 15, -11, 3, -3, -2, -24, -1,
1479 ], [
1480 -18, 17, 21, 25, -11, 19, 6, 3, 11, 0,
1481 -7, 11, 13, 31, 1, 0, -9, -1, -5, -12,
1482 18, 0, 31, 2, 13, 1, -30, -14, -7, -29,
1483 -9, -18, 1, -10, -4, 18, 22, -3, 10, 2,
1484 ], [
1485 3, 5, 9, 7, -15, 1, -5, -13, -2, -12,
1486 -5, -2, 21, 23, 2, 16, 0, -5, 6, -13,
1487 23, -3, 32, -10, 15, -8, -44, -28, -9, -37,
1488 2, -13, 9, 15, 12, 27, 7, 12, 0, 11,
1489 ], [
1490 -44, 6, -30, -8, 9, 10, 11, 14, 23, -5,
1491 8, -4, 14, -12, 37, 14, 12, 26, 4, 16,
1492 -8, 16, -9, 7, -6, 19, 12, 25, -5, 24,
1493 -15, -13, -8, -36, -34, -31, -1, -18, -4, -18,
1494 ], [
1495 -22, -5, -42, -26, 6, -8, -1, -2, 9, -17,
1496 10, -18, 21, -19, 39, 31, 23, 23, 16, 15,
1497 -2, 12, -7, -6, -5, 9, -1, 10, -7, 16,
1498 -4, -9, 0, -10, -17, -22, -16, -2, -14, -9,
1499 ], [
1500 -55, -1, -17, -6, 1, 16, 15, 35, 15, 2,
1501 0, -4, 19, 8, 20, 13, 1, 14, -7, 3,
1502 -18, 0, -10, -5, -19, 19, 0, 21, -8, 16,
1503 -9, -39, 0, -36, -10, -7, 9, -4, 20, -5,
1504 ], [
1505 -33, -13, -29, -24, -1, -1, 2, 18, 0, -9,
1506 3, -17, 27, 0, 21, 30, 12, 11, 5, 2,
1507 -12, -4, -9, -19, -18, 9, -13, 6, -11, 8,
1508 2, -35, 8, -10, 7, 1, -4, 11, 10, 2,
1509 ], [
1510 -36, 5, -24, 4, -7, 7, -6, 17, 14, 5,
1511 22, 22, 35, 8, 46, 1, 17, 3, 0, -2,
1512 2, 10, 5, 0, 14, 15, 2, 18, 2, 4,
1513 -11, 7, -1, -36, -18, -32, -7, -27, -17, -20,
1514 ], [
1515 -14, -7, -36, -13, -10, -10, -18, 0, 0, -5,
1516 25, 8, 43, 0, 48, 18, 27, 0, 12, -3,
1517 7, 6, 7, -13, 15, 5, -11, 3, 0, -2,
1518 0, 12, 6, -10, 0, -23, -22, -11, -26, -12,
1519 ], [
1520 -47, -3, -11, 6, -15, 13, -2, 38, 6, 13,
1521 15, 22, 40, 28, 28, 0, 5, -8, -10, -15,
1522 -7, -7, 4, -13, 1, 14, -9, 14, 0, -2,
1523 -4, -18, 7, -36, 6, -8, 3, -13, 7, -8,
1524 ], [
1525 -25, -15, -22, -11, -18, -4, -15, 22, -8, 2,
1526 17, 9, 48, 20, 30, 17, 16, -11, 1, -16,
1527 -2, -10, 5, -26, 2, 4, -22, 0, -2, -10,
1528 6, -13, 14, -10, 23, 0, -10, 2, -1, 0,
1529 ], [
1530 -57, 26, -22, 7, 14, 28, 14, 3, 35, 0,
1531 -3, -1, 11, -16, 18, 10, 4, 31, 15, 28,
1532 14, 23, 1, 21, -7, 2, -11, 1, -3, 1,
1533 -18, -9, -10, -13, -49, -24, -8, -14, -2, -16,
1534 ], [
1535 -35, 14, -34, -10, 10, 10, 1, -12, 20, -12,
1536 0, -15, 18, -24, 20, 27, 14, 28, 27, 27,
1537 20, 19, 2, 8, -5, -7, -25, -13, -5, -5,
1538 -6, -5, -2, 12, -31, -15, -23, 1, -12, -8,
1539 ], [
1540 -68, 18, -9, 9, 6, 35, 18, 25, 26, 7,
1541 -10, -1, 16, 3, 1, 9, -6, 19, 4, 15,
1542 4, 6, 0, 8, -20, 2, -23, -2, -7, -5,
1543 -12, -35, -1, -13, -24, 0, 3, 0, 22, -4,
1544 ], [
1545 -46, 6, -21, -8, 2, 16, 5, 8, 11, -4,
1546 -8, -15, 24, -4, 2, 26, 3, 16, 16, 14,
1547 9, 2, 1, -4, -19, -7, -36, -17, -9, -13,
1548 0, -31, 5, 12, -7, 8, -11, 15, 13, 4,
1549 ], [
1550 -49, 24, -16, 20, -2, 26, -2, 7, 25, 10,
1551 11, 25, 32, 3, 27, -2, 8, 8, 11, 9,
1552 24, 17, 16, 14, 13, -2, -20, -5, 4, -17,
1553 -14, 12, -3, -13, -33, -25, -14, -23, -15, -19,
1554 ], [
1555 -27, 12, -28, 2, -6, 7, -15, -9, 11, -1,
1556 13, 11, 40, -4, 29, 14, 19, 5, 23, 8,
1557 30, 13, 17, 0, 14, -12, -34, -20, 2, -25,
1558 -2, 16, 4, 12, -15, -16, -29, -7, -24, -10,
1559 ], [
1560 -60, 16, -3, 22, -10, 32, 0, 28, 17, 18,
1561 3, 25, 37, 23, 10, -3, -2, -3, 0, -3,
1562 14, 0, 14, 1, 0, -2, -32, -9, 1, -25,
1563 -7, -13, 5, -13, -8, -1, -2, -8, 10, -6,
1564 ], [
1565 -38, 4, -15, 4, -14, 13, -12, 11, 2, 6,
1566 6, 11, 45, 16, 11, 13, 7, -6, 12, -4,
1567 20, -3, 16, -12, 1, -12, -46, -24, 0, -33,
1568 3, -9, 12, 12, 8, 7, -17, 6, 0, 2
1569 ]
1570 ];
1571 const RA144_CODEBOOK2: [u16; 128] = [
1572 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
1573 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
1574 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
1575 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
1576 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
1577 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
1578 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
1579 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
1580 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
1581 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
1582 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
1583 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
1584 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
1585 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
1586 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
1587 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
1588 ];
1589 const RA144_VECTORS2: [[i8; BLOCKSIZE]; 128] = [
1590 [
1591 73, -32, -60, -15, -26, 59, 2, -33, 30, -10,
1592 -3, -17, 8, 30, -1, -26, -4, -22, 10, 16,
1593 -36, -5, -11, 56, 37, 6, -10, -5, -13, -3,
1594 6, -5, 11, 4, -19, -5, -16, 41, 24, 13,
1595 ], [
1596 4, -11, -37, 23, -5, 46, -2, -29, -5, -39,
1597 -21, -9, 0, 49, 12, -9, -16, -26, 22, 15,
1598 -45, -20, -5, 40, 22, 17, -26, 31, -14, 2,
1599 -14, 10, 30, 20, -27, -9, -39, 39, 18, 5,
1600 ], [
1601 34, -25, -48, -28, -11, 34, -2, -41, 9, -7,
1602 -17, 21, 20, 24, -17, -33, 0, -24, 10, 42,
1603 3, -5, 10, 42, 11, 8, -3, 3, 16, 9,
1604 22, -2, 0, -33, -10, 18, 7, 58, 10, 28,
1605 ], [
1606 -34, -4, -25, 10, 9, 21, -7, -36, -26, -36,
1607 -35, 28, 12, 42, -3, -16, -12, -28, 21, 42,
1608 -5, -21, 16, 26, -4, 19, -19, 39, 15, 15,
1609 1, 13, 19, -17, -17, 14, -15, 55, 4, 19,
1610 ], [
1611 28, -20, -51, -14, -6, 7, 0, -26, 27, -4,
1612 18, -40, -6, 16, -1, -15, 0, -55, -5, -16,
1613 -19, 14, -3, 49, 14, 1, -22, -30, -12, 0,
1614 24, 15, 9, -17, -45, -29, 4, 28, 51, 35,
1615 ], [
1616 -40, 0, -28, 24, 14, -5, -4, -21, -7, -33,
1617 0, -32, -15, 35, 12, 1, -11, -58, 5, -16,
1618 -28, 0, 1, 33, 0, 11, -39, 5, -14, 6,
1619 3, 31, 28, -1, -53, -33, -19, 25, 46, 26,
1620 ], [
1621 -11, -14, -39, -27, 9, -17, -4, -33, 6, 0,
1622 4, -1, 5, 10, -17, -22, 5, -57, -5, 9,
1623 20, 13, 18, 35, -11, 3, -16, -22, 17, 13,
1624 40, 19, -1, -55, -35, -5, 27, 44, 37, 49,
1625 ], [
1626 -80, 6, -16, 11, 30, -30, -9, -28, -28, -29,
1627 -13, 6, -2, 28, -3, -5, -7, -60, 5, 9,
1628 11, -1, 24, 19, -27, 13, -32, 13, 15, 19,
1629 19, 35, 17, -39, -43, -9, 4, 42, 32, 41,
1630 ], [
1631 78, -21, -43, 4, -38, 17, 17, -5, 55, 24,
1632 -15, -36, 14, 4, 24, -24, 12, 5, 17, 31,
1633 -54, -5, -2, 27, 43, -12, 2, 9, -9, -15,
1634 22, -3, 28, 21, -20, 3, 20, 28, 9, -5,
1635 ], [
1636 9, -1, -20, 43, -17, 3, 12, 0, 20, -4,
1637 -33, -29, 6, 22, 38, -7, 0, 1, 29, 30,
1638 -63, -21, 3, 11, 27, -1, -14, 45, -10, -9,
1639 1, 12, 47, 37, -28, 0, -2, 26, 4, -13,
1640 ], [
1641 39, -14, -30, -8, -22, -8, 12, -12, 34, 27,
1642 -29, 2, 26, -2, 8, -31, 16, 3, 17, 57,
1643 -14, -6, 19, 13, 16, -10, 8, 17, 20, -2,
1644 38, 0, 17, -16, -11, 27, 44, 45, -4, 8,
1645 ], [
1646 -29, 5, -7, 30, -1, -21, 7, -7, 0, 0,
1647 -47, 9, 18, 15, 22, -14, 4, 0, 28, 57,
1648 -23, -21, 25, -2, 1, 0, -7, 53, 19, 3,
1649 17, 15, 36, 0, -19, 24, 21, 43, -9, 0,
1650 ], [
1651 33, -10, -34, 5, -17, -35, 15, 1, 53, 30,
1652 6, -59, 0, -10, 24, -13, 17, -27, 1, -1,
1653 -37, 13, 4, 20, 20, -18, -10, -16, -8, -11,
1654 39, 18, 26, 0, -46, -20, 41, 15, 37, 15,
1655 ], [
1656 -35, 10, -11, 44, 3, -48, 10, 6, 17, 2,
1657 -11, -51, -8, 8, 38, 3, 4, -31, 12, -2,
1658 -46, -1, 10, 4, 5, -7, -26, 19, -10, -5,
1659 18, 34, 45, 15, -54, -24, 18, 13, 31, 7,
1660 ], [
1661 -5, -3, -21, -7, -2, -60, 10, -5, 32, 34,
1662 -7, -20, 11, -16, 8, -20, 21, -29, 1, 24,
1663 2, 13, 27, 6, -5, -15, -3, -8, 21, 1,
1664 55, 21, 15, -38, -37, 3, 65, 32, 23, 30,
1665 ], [
1666 -74, 17, 0, 31, 18, -73, 5, 0, -3, 5,
1667 -25, -12, 3, 1, 22, -3, 9, -33, 12, 24,
1668 -6, -2, 33, -9, -21, -5, -20, 27, 19, 7,
1669 34, 37, 34, -22, -44, 0, 41, 29, 17, 21,
1670 ], [
1671 76, -35, -31, -28, -49, 43, -40, 0, 29, -14,
1672 8, 5, 10, 18, -26, -46, 0, 7, 6, 3,
1673 -25, -7, -2, 40, 28, 14, 18, -3, -27, -28,
1674 -8, -45, -13, 34, -13, -27, -15, 31, 12, 3,
1675 ], [
1676 7, -15, -9, 9, -28, 29, -45, 5, -6, -43,
1677 -9, 12, 2, 36, -12, -30, -11, 3, 17, 3,
1678 -34, -22, 3, 24, 12, 24, 2, 32, -28, -22,
1679 -29, -29, 5, 50, -21, -31, -38, 29, 7, -5,
1680 ], [
1681 36, -29, -19, -41, -34, 18, -45, -6, 8, -10,
1682 -5, 43, 23, 11, -42, -53, 5, 5, 6, 30,
1683 14, -8, 20, 26, 1, 16, 25, 4, 3, -15,
1684 7, -41, -23, -3, -4, -3, 8, 48, -1, 17,
1685 ], [
1686 -32, -8, 3, -2, -13, 4, -50, -1, -27, -39,
1687 -23, 51, 15, 30, -27, -37, -7, 1, 17, 29,
1688 5, -23, 25, 10, -14, 26, 8, 41, 1, -9,
1689 -13, -26, -5, 12, -12, -7, -14, 45, -6, 9,
1690 ], [
1691 31, -24, -23, -27, -29, -9, -43, 8, 26, -7,
1692 30, -17, -4, 3, -26, -35, 5, -24, -10, -28,
1693 -9, 12, 5, 33, 5, 8, 5, -29, -26, -24,
1694 9, -23, -14, 12, -39, -52, 5, 18, 39, 24,
1695 ], [
1696 -37, -3, 0, 10, -7, -22, -48, 12, -8, -36,
1697 12, -9, -12, 22, -12, -19, -6, -28, 0, -29,
1698 -18, -3, 11, 17, -10, 18, -10, 7, -27, -18,
1699 -11, -7, 3, 28, -47, -55, -18, 15, 34, 16,
1700 ], [
1701 -8, -17, -10, -40, -13, -34, -47, 0, 5, -4,
1702 16, 21, 8, -2, -42, -43, 10, -26, -10, -2,
1703 31, 11, 27, 19, -21, 10, 12, -20, 3, -11,
1704 25, -20, -25, -25, -29, -28, 28, 34, 25, 38,
1705 ], [
1706 -77, 2, 11, -1, 7, -47, -52, 5, -29, -33,
1707 -1, 28, 0, 15, -28, -26, -2, -30, 0, -2,
1708 22, -4, 33, 3, -36, 21, -3, 15, 2, -5,
1709 4, -4, -6, -9, -37, -31, 5, 32, 20, 30,
1710 ], [
1711 81, -25, -14, -8, -61, 0, -25, 28, 54, 20,
1712 -3, -14, 17, -8, 0, -44, 16, 35, 13, 18,
1713 -43, -7, 6, 11, 33, -4, 30, 11, -22, -40,
1714 6, -43, 3, 50, -14, -18, 22, 18, -1, -16,
1715 ], [
1716 12, -4, 8, 29, -39, -12, -30, 33, 19, -8,
1717 -21, -6, 8, 9, 13, -28, 4, 31, 24, 18,
1718 -52, -23, 12, -4, 18, 5, 14, 47, -24, -34,
1719 -14, -27, 22, 66, -22, -22, -1, 16, -6, -24,
1720 ], [
1721 41, -18, -2, -21, -45, -24, -30, 21, 33, 24,
1722 -17, 24, 29, -15, -16, -51, 21, 33, 13, 45,
1723 -3, -8, 28, -2, 7, -2, 37, 19, 7, -27,
1724 22, -39, -7, 12, -5, 5, 45, 35, -15, -1,
1725 ], [
1726 -27, 1, 20, 17, -24, -38, -35, 26, -1, -4,
1727 -35, 32, 21, 3, -2, -35, 8, 29, 24, 44,
1728 -12, -24, 34, -18, -8, 7, 21, 55, 5, -21,
1729 2, -23, 11, 28, -13, 1, 22, 33, -21, -10,
1730 ], [
1731 36, -13, -5, -7, -40, -51, -28, 36, 52, 27,
1732 18, -36, 2, -22, 0, -33, 21, 2, -3, -13,
1733 -26, 11, 14, 4, 10, -10, 18, -14, -22, -36,
1734 24, -21, 1, 28, -40, -42, 42, 5, 25, 5,
1735 ], [
1736 -32, 6, 17, 31, -19, -65, -33, 41, 16, -1,
1737 0, -29, -6, -4, 13, -17, 9, -1, 8, -14,
1738 -35, -3, 19, -11, -4, 0, 1, 21, -23, -30,
1739 3, -5, 20, 44, -48, -46, 19, 3, 20, -3,
1740 ], [
1741 -3, -7, 6, -20, -25, -77, -32, 29, 31, 30,
1742 4, 2, 14, -29, -16, -40, 26, 0, -3, 12,
1743 13, 10, 36, -9, -15, -8, 24, -6, 7, -22,
1744 40, -17, -8, -9, -31, -18, 66, 22, 11, 19,
1745 ], [
1746 -72, 13, 29, 18, -4, -90, -37, 34, -4, 1,
1747 -13, 9, 6, -11, -2, -24, 13, -3, 7, 11,
1748 4, -4, 42, -25, -31, 1, 8, 29, 6, -17,
1749 19, -2, 10, 6, -38, -22, 42, 19, 6, 11,
1750 ], [
1751 116, -20, -68, -30, -28, 83, 28, -18, 32, -22,
1752 -13, -21, 5, 28, 5, -7, -24, -8, -22, 17,
1753 -23, 30, -25, 45, 15, -9, -11, -18, 22, -10,
1754 4, -2, 19, -12, 23, 3, -43, 2, 12, -4,
1755 ], [
1756 47, 0, -45, 7, -7, 69, 23, -13, -2, -51,
1757 -32, -14, -3, 47, 19, 8, -37, -11, -10, 16,
1758 -32, 15, -19, 29, 0, 1, -28, 18, 20, -4,
1759 -16, 13, 38, 3, 15, 0, -66, 0, 7, -13,
1760 ], [
1761 77, -13, -56, -43, -13, 57, 23, -26, 11, -19,
1762 -27, 16, 17, 22, -10, -15, -19, -10, -22, 43,
1763 16, 30, -2, 31, -11, -6, -5, -9, 52, 2,
1764 20, 0, 8, -50, 33, 27, -19, 19, -1, 9,
1765 ], [
1766 8, 6, -33, -4, 7, 44, 18, -21, -23, -48,
1767 -46, 24, 9, 40, 3, 1, -32, -13, -11, 43,
1768 7, 14, 3, 15, -26, 3, -21, 26, 50, 8,
1769 0, 16, 27, -34, 25, 23, -43, 17, -6, 1,
1770 ], [
1771 71, -9, -59, -29, -8, 30, 26, -11, 30, -16,
1772 8, -44, -9, 14, 5, 2, -19, -40, -38, -15,
1773 -7, 50, -17, 38, -7, -14, -24, -43, 22, -6,
1774 22, 19, 17, -34, -2, -20, -23, -10, 39, 16,
1775 ], [
1776 2, 11, -36, 9, 13, 17, 21, -6, -5, -45,
1777 -10, -36, -18, 33, 19, 19, -31, -44, -27, -15,
1778 -16, 34, -11, 22, -22, -4, -40, -7, 21, 0,
1779 1, 35, 36, -18, -10, -24, -46, -12, 34, 8,
1780 ], [
1781 32, -2, -47, -42, 7, 5, 21, -18, 9, -12,
1782 -5, -5, 2, 8, -10, -4, -14, -42, -38, 10,
1783 33, 49, 5, 24, -33, -12, -17, -35, 52, 6,
1784 38, 22, 7, -72, 7, 3, 0, 6, 25, 30,
1785 ], [
1786 -36, 18, -24, -3, 28, -7, 16, -13, -26, -41,
1787 -24, 1, -5, 26, 3, 12, -27, -46, -27, 10,
1788 24, 34, 10, 8, -49, -2, -34, 0, 51, 12,
1789 17, 38, 25, -56, 0, 0, -22, 3, 20, 22,
1790 ], [
1791 121, -9, -50, -10, -40, 40, 43, 9, 58, 12,
1792 -25, -41, 11, 2, 31, -5, -8, 19, -15, 32,
1793 -41, 30, -16, 16, 20, -28, 0, -3, 26, -22,
1794 19, 0, 36, 4, 22, 12, -6, -9, -1, -24,
1795 ], [
1796 52, 10, -27, 27, -18, 26, 38, 14, 23, -16,
1797 -44, -33, 3, 20, 45, 10, -20, 15, -3, 31,
1798 -50, 14, -10, 0, 5, -17, -15, 32, 24, -16,
1799 -1, 15, 55, 20, 14, 8, -29, -12, -7, -32,
1800 ], [
1801 82, -3, -38, -23, -24, 15, 38, 2, 37, 15,
1802 -39, -2, 23, -4, 15, -12, -3, 17, -15, 58,
1803 -1, 29, 6, 2, -5, -26, 7, 4, 56, -9,
1804 35, 3, 25, -33, 32, 36, 17, 7, -15, -9,
1805 ], [
1806 13, 17, -15, 15, -3, 1, 33, 7, 1, -12,
1807 -58, 5, 15, 13, 29, 3, -16, 13, -4, 57,
1808 -10, 13, 11, -13, -21, -15, -9, 40, 55, -3,
1809 14, 19, 44, -17, 24, 32, -5, 4, -21, -18,
1810 ], [
1811 76, 1, -41, -9, -19, -12, 41, 17, 55, 18,
1812 -3, -63, -3, -12, 30, 5, -3, -12, -31, 0,
1813 -24, 49, -8, 9, -1, -33, -12, -29, 27, -18,
1814 37, 21, 34, -17, -3, -11, 14, -23, 25, -2,
1815 ], [
1816 7, 22, -18, 29, 1, -25, 36, 21, 20, -9,
1817 -22, -56, -11, 6, 45, 21, -15, -16, -20, -1,
1818 -33, 34, -2, -6, -17, -23, -28, 6, 25, -12,
1819 16, 37, 53, -1, -11, -15, -8, -25, 20, -11,
1820 ], [
1821 37, 8, -29, -22, -4, -37, 36, 9, 34, 22,
1822 -17, -24, 8, -18, 15, -2, 1, -14, -31, 25,
1823 15, 48, 13, -4, -28, -31, -5, -21, 57, -4,
1824 53, 24, 23, -55, 6, 12, 37, -6, 11, 11,
1825 ], [
1826 -31, 28, -6, 16, 16, -50, 31, 14, 0, -6,
1827 -36, -17, 0, 0, 29, 14, -11, -18, -20, 25,
1828 6, 33, 19, -20, -43, -21, -21, 14, 55, 0,
1829 32, 40, 42, -39, -1, 8, 14, -8, 6, 3,
1830 ], [
1831 119, -24, -39, -44, -51, 66, -14, 15, 31, -26,
1832 -1, 0, 7, 16, -19, -28, -19, 22, -26, 4,
1833 -13, 28, -16, 29, 5, -1, 16, -16, 8, -35,
1834 -10, -42, -4, 17, 29, -19, -42, -7, 0, -15,
1835 ], [
1836 50, -3, -16, -5, -30, 53, -19, 20, -3, -55,
1837 -19, 8, 0, 34, -5, -11, -32, 18, -15, 4,
1838 -22, 13, -10, 13, -9, 8, 0, 19, 7, -29,
1839 -31, -26, 13, 33, 21, -22, -65, -9, -4, -23,
1840 ], [
1841 79, -17, -27, -56, -36, 41, -19, 8, 10, -22,
1842 -15, 39, 20, 9, -35, -35, -15, 20, -26, 31,
1843 26, 27, 6, 15, -20, 0, 23, -8, 38, -22,
1844 5, -38, -15, -20, 39, 4, -18, 9, -13, -1,
1845 ], [
1846 10, 3, -4, -18, -15, 27, -24, 13, -24, -51,
1847 -34, 47, 12, 28, -21, -19, -27, 16, -15, 30,
1848 17, 12, 12, 0, -36, 10, 7, 27, 37, -16,
1849 -15, -22, 3, -4, 31, 1, -42, 7, -18, -9,
1850 ], [
1851 74, -12, -30, -42, -30, 14, -16, 23, 29, -19,
1852 20, -21, -7, 1, -19, -17, -14, -10, -43, -27,
1853 3, 48, -8, 22, -16, -7, 4, -42, 9, -31,
1854 6, -20, -6, -4, 3, -43, -22, -20, 28, 5,
1855 ], [
1856 5, 7, -7, -4, -9, 0, -21, 28, -6, -48,
1857 2, -14, -15, 20, -5, 0, -27, -14, -32, -28,
1858 -5, 32, -2, 6, -32, 3, -12, -5, 8, -25,
1859 -14, -4, 12, 11, -4, -47, -45, -22, 22, -2,
1860 ], [
1861 34, -6, -18, -55, -15, -11, -21, 16, 8, -16,
1862 6, 16, 5, -4, -35, -24, -10, -12, -43, -1,
1863 43, 47, 14, 8, -43, -5, 10, -34, 39, -18,
1864 22, -16, -17, -42, 13, -19, 1, -3, 14, 20,
1865 ], [
1866 -34, 14, 4, -17, 5, -24, -26, 20, -27, -45,
1867 -12, 24, -2, 13, -21, -8, -22, -16, -32, -2,
1868 34, 31, 20, -7, -58, 5, -5, 2, 38, -12,
1869 2, -1, 1, -26, 5, -23, -21, -6, 8, 11,
1870 ], [
1871 124, -13, -21, -23, -62, 23, 0, 43, 57, 8,
1872 -13, -18, 14, -10, 6, -26, -3, 49, -19, 19,
1873 -31, 27, -7, 0, 11, -20, 29, -1, 12, -47,
1874 4, -39, 11, 34, 28, -9, -5, -19, -13, -34,
1875 ], [
1876 55, 6, 1, 14, -41, 10, -4, 48, 22, -20,
1877 -31, -10, 5, 7, 20, -9, -16, 45, -8, 19,
1878 -40, 12, -1, -15, -4, -10, 12, 34, 11, -41,
1879 -16, -24, 30, 49, 20, -13, -28, -22, -18, -43,
1880 ], [
1881 84, -6, -9, -36, -47, -1, -4, 36, 36, 12,
1882 -27, 20, 26, -17, -9, -33, 1, 47, -19, 46,
1883 9, 27, 15, -13, -15, -18, 35, 6, 42, -33,
1884 20, -36, 1, -4, 38, 14, 18, -2, -27, -20,
1885 ], [
1886 15, 13, 13, 1, -26, -14, -9, 41, 1, -16,
1887 -46, 27, 18, 1, 4, -16, -11, 43, -8, 45,
1888 0, 11, 21, -29, -30, -8, 19, 42, 41, -28,
1889 0, -20, 20, 11, 30, 10, -4, -5, -32, -28,
1890 ], [
1891 79, -2, -12, -22, -42, -28, -1, 51, 54, 15,
1892 8, -41, 0, -24, 6, -15, 1, 17, -36, -12,
1893 -14, 47, 0, -6, -11, -26, 16, -27, 13, -43,
1894 22, -18, 10, 12, 2, -34, 15, -33, 13, -13,
1895 ], [
1896 10, 18, 10, 15, -21, -41, -6, 56, 19, -13,
1897 -9, -33, -9, -6, 20, 1, -11, 13, -24, -13,
1898 -23, 32, 6, -22, -26, -15, 0, 8, 12, -37,
1899 1, -2, 28, 27, -5, -37, -7, -35, 8, -21,
1900 ], [
1901 39, 4, 0, -35, -27, -53, -6, 44, 33, 18,
1902 -5, -2, 11, -31, -9, -22, 6, 15, -36, 13,
1903 25, 46, 23, -20, -37, -24, 23, -19, 43, -29,
1904 38, -14, 0, -26, 12, -10, 38, -16, 0, 0,
1905 ], [
1906 -29, 25, 22, 2, -6, -67, -11, 49, -1, -10,
1907 -24, 5, 3, -13, 4, -5, -6, 11, -25, 12,
1908 16, 31, 28, -36, -53, -13, 6, 16, 42, -24,
1909 17, 1, 18, -10, 4, -13, 15, -18, -5, -7,
1910 ], [
1911 29, -25, -22, -2, 6, 67, 11, -49, 1, 10,
1912 24, -5, -3, 13, -4, 5, 6, -11, 25, -12,
1913 -16, -31, -28, 36, 53, 13, -6, -16, -42, 24,
1914 -17, -1, -18, 10, -4, 13, -15, 18, 5, 7,
1915 ], [
1916 -39, -4, 0, 35, 27, 53, 6, -44, -33, -18,
1917 5, 2, -11, 31, 9, 22, -6, -15, 36, -13,
1918 -25, -46, -23, 20, 37, 24, -23, 19, -43, 29,
1919 -38, 14, 0, 26, -12, 10, -38, 16, 0, 0,
1920 ], [
1921 -10, -18, -10, -15, 21, 41, 6, -56, -19, 13,
1922 9, 33, 9, 6, -20, -1, 11, -13, 24, 13,
1923 23, -32, -6, 22, 26, 15, 0, -8, -12, 37,
1924 -1, 2, -28, -27, 5, 37, 7, 35, -8, 21,
1925 ], [
1926 -79, 2, 12, 22, 42, 28, 1, -51, -54, -15,
1927 -8, 41, 0, 24, -6, 15, -1, -17, 36, 12,
1928 14, -47, 0, 6, 11, 26, -16, 27, -13, 43,
1929 -22, 18, -10, -12, -2, 34, -15, 33, -13, 13,
1930 ], [
1931 -15, -13, -13, -1, 26, 14, 9, -41, -1, 16,
1932 46, -27, -18, -1, -4, 16, 11, -43, 8, -45,
1933 0, -11, -21, 29, 30, 8, -19, -42, -41, 28,
1934 0, 20, -20, -11, -30, -10, 4, 5, 32, 28,
1935 ], [
1936 -84, 6, 9, 36, 47, 1, 4, -36, -36, -12,
1937 27, -20, -26, 17, 9, 33, -1, -47, 19, -46,
1938 -9, -27, -15, 13, 15, 18, -35, -6, -42, 33,
1939 -20, 36, -1, 4, -38, -14, -18, 2, 27, 20,
1940 ], [
1941 -55, -6, -1, -14, 41, -10, 4, -48, -22, 20,
1942 31, 10, -5, -7, -20, 9, 16, -45, 8, -19,
1943 40, -12, 1, 15, 4, 10, -12, -34, -11, 41,
1944 16, 24, -30, -49, -20, 13, 28, 22, 18, 43,
1945 ], [
1946 -124, 13, 21, 23, 62, -23, 0, -43, -57, -8,
1947 13, 18, -14, 10, -6, 26, 3, -49, 19, -19,
1948 31, -27, 7, 0, -11, 20, -29, 1, -12, 47,
1949 -4, 39, -11, -34, -28, 9, 5, 19, 13, 34,
1950 ], [
1951 34, -14, -4, 17, -5, 24, 26, -20, 27, 45,
1952 12, -24, 2, -13, 21, 8, 22, 16, 32, 2,
1953 -34, -31, -20, 7, 58, -5, 5, -2, -38, 12,
1954 -2, 1, -1, 26, -5, 23, 21, 6, -8, -11,
1955 ], [
1956 -34, 6, 18, 55, 15, 11, 21, -16, -8, 16,
1957 -6, -16, -5, 4, 35, 24, 10, 12, 43, 1,
1958 -43, -47, -14, -8, 43, 5, -10, 34, -39, 18,
1959 -22, 16, 17, 42, -13, 19, -1, 3, -14, -20,
1960 ], [
1961 -5, -7, 7, 4, 9, 0, 21, -28, 6, 48,
1962 -2, 14, 15, -20, 5, 0, 27, 14, 32, 28,
1963 5, -32, 2, -6, 32, -3, 12, 5, -8, 25,
1964 14, 4, -12, -11, 4, 47, 45, 22, -22, 2,
1965 ], [
1966 -74, 12, 30, 42, 30, -14, 16, -23, -29, 19,
1967 -20, 21, 7, -1, 19, 17, 14, 10, 43, 27,
1968 -3, -48, 8, -22, 16, 7, -4, 42, -9, 31,
1969 -6, 20, 6, 4, -3, 43, 22, 20, -28, -5,
1970 ], [
1971 -10, -3, 4, 18, 15, -27, 24, -13, 24, 51,
1972 34, -47, -12, -28, 21, 19, 27, -16, 15, -30,
1973 -17, -12, -12, 0, 36, -10, -7, -27, -37, 16,
1974 15, 22, -3, 4, -31, -1, 42, -7, 18, 9,
1975 ], [
1976 -79, 17, 27, 56, 36, -41, 19, -8, -10, 22,
1977 15, -39, -20, -9, 35, 35, 15, -20, 26, -31,
1978 -26, -27, -6, -15, 20, 0, -23, 8, -38, 22,
1979 -5, 38, 15, 20, -39, -4, 18, -9, 13, 1,
1980 ], [
1981 -50, 3, 16, 5, 30, -53, 19, -20, 3, 55,
1982 19, -8, 0, -34, 5, 11, 32, -18, 15, -4,
1983 22, -13, 10, -13, 9, -8, 0, -19, -7, 29,
1984 31, 26, -13, -33, -21, 22, 65, 9, 4, 23,
1985 ], [
1986 -119, 24, 39, 44, 51, -66, 14, -15, -31, 26,
1987 1, 0, -7, -16, 19, 28, 19, -22, 26, -4,
1988 13, -28, 16, -29, -5, 1, -16, 16, -8, 35,
1989 10, 42, 4, -17, -29, 19, 42, 7, 0, 15,
1990 ], [
1991 31, -28, 6, -16, -16, 50, -31, -14, 0, 6,
1992 36, 17, 0, 0, -29, -14, 11, 18, 20, -25,
1993 -6, -33, -19, 20, 43, 21, 21, -14, -55, 0,
1994 -32, -40, -42, 39, 1, -8, -14, 8, -6, -3,
1995 ], [
1996 -37, -8, 29, 22, 4, 37, -36, -9, -34, -22,
1997 17, 24, -8, 18, -15, 2, -1, 14, 31, -25,
1998 -15, -48, -13, 4, 28, 31, 5, 21, -57, 4,
1999 -53, -24, -23, 55, -6, -12, -37, 6, -11, -11,
2000 ], [
2001 -7, -22, 18, -29, -1, 25, -36, -21, -20, 9,
2002 22, 56, 11, -6, -45, -21, 15, 16, 20, 1,
2003 33, -34, 2, 6, 17, 23, 28, -6, -25, 12,
2004 -16, -37, -53, 1, 11, 15, 8, 25, -20, 11,
2005 ], [
2006 -76, -1, 41, 9, 19, 12, -41, -17, -55, -18,
2007 3, 63, 3, 12, -30, -5, 3, 12, 31, 0,
2008 24, -49, 8, -9, 1, 33, 12, 29, -27, 18,
2009 -37, -21, -34, 17, 3, 11, -14, 23, -25, 2,
2010 ], [
2011 -13, -17, 15, -15, 3, -1, -33, -7, -1, 12,
2012 58, -5, -15, -13, -29, -3, 16, -13, 4, -57,
2013 10, -13, -11, 13, 21, 15, 9, -40, -55, 3,
2014 -14, -19, -44, 17, -24, -32, 5, -4, 21, 18,
2015 ], [
2016 -82, 3, 38, 23, 24, -15, -38, -2, -37, -15,
2017 39, 2, -23, 4, -15, 12, 3, -17, 15, -58,
2018 1, -29, -6, -2, 5, 26, -7, -4, -56, 9,
2019 -35, -3, -25, 33, -32, -36, -17, -7, 15, 9,
2020 ], [
2021 -52, -10, 27, -27, 18, -26, -38, -14, -23, 16,
2022 44, 33, -3, -20, -45, -10, 20, -15, 3, -31,
2023 50, -14, 10, 0, -5, 17, 15, -32, -24, 16,
2024 1, -15, -55, -20, -14, -8, 29, 12, 7, 32,
2025 ], [
2026 -121, 9, 50, 10, 40, -40, -43, -9, -58, -12,
2027 25, 41, -11, -2, -31, 5, 8, -19, 15, -32,
2028 41, -30, 16, -16, -20, 28, 0, 3, -26, 22,
2029 -19, 0, -36, -4, -22, -12, 6, 9, 1, 24,
2030 ], [
2031 36, -18, 24, 3, -28, 7, -16, 13, 26, 41,
2032 24, -1, 5, -26, -3, -12, 27, 46, 27, -10,
2033 -24, -34, -10, -8, 49, 2, 34, 0, -51, -12,
2034 -17, -38, -25, 56, 0, 0, 22, -3, -20, -22,
2035 ], [
2036 -32, 2, 47, 42, -7, -5, -21, 18, -9, 12,
2037 5, 5, -2, -8, 10, 4, 14, 42, 38, -10,
2038 -33, -49, -5, -24, 33, 12, 17, 35, -52, -6,
2039 -38, -22, -7, 72, -7, -3, 0, -6, -25, -30,
2040 ], [
2041 -2, -11, 36, -9, -13, -17, -21, 6, 5, 45,
2042 10, 36, 18, -33, -19, -19, 31, 44, 27, 15,
2043 16, -34, 11, -22, 22, 4, 40, 7, -21, 0,
2044 -1, -35, -36, 18, 10, 24, 46, 12, -34, -8,
2045 ], [
2046 -71, 9, 59, 29, 8, -30, -26, 11, -30, 16,
2047 -8, 44, 9, -14, -5, -2, 19, 40, 38, 15,
2048 7, -50, 17, -38, 7, 14, 24, 43, -22, 6,
2049 -22, -19, -17, 34, 2, 20, 23, 10, -39, -16,
2050 ], [
2051 -8, -6, 33, 4, -7, -44, -18, 21, 23, 48,
2052 46, -24, -9, -40, -3, -1, 32, 13, 11, -43,
2053 -7, -14, -3, -15, 26, -3, 21, -26, -50, -8,
2054 0, -16, -27, 34, -25, -23, 43, -17, 6, -1,
2055 ], [
2056 -77, 13, 56, 43, 13, -57, -23, 26, -11, 19,
2057 27, -16, -17, -22, 10, 15, 19, 10, 22, -43,
2058 -16, -30, 2, -31, 11, 6, 5, 9, -52, -2,
2059 -20, 0, -8, 50, -33, -27, 19, -19, 1, -9,
2060 ], [
2061 -47, 0, 45, -7, 7, -69, -23, 13, 2, 51,
2062 32, 14, 3, -47, -19, -8, 37, 11, 10, -16,
2063 32, -15, 19, -29, 0, -1, 28, -18, -20, 4,
2064 16, -13, -38, -3, -15, 0, 66, 0, -7, 13,
2065 ], [
2066 -116, 20, 68, 30, 28, -83, -28, 18, -32, 22,
2067 13, 21, -5, -28, -5, 7, 24, 8, 22, -17,
2068 23, -30, 25, -45, -15, 9, 11, 18, -22, 10,
2069 -4, 2, -19, 12, -23, -3, 43, -2, -12, 4,
2070 ], [
2071 72, -13, -29, -18, 4, 90, 37, -34, 4, -1,
2072 13, -9, -6, 11, 2, 24, -13, 3, -7, -11,
2073 -4, 4, -42, 25, 31, -1, -8, -29, -6, 17,
2074 -19, 2, -10, -6, 38, 22, -42, -19, -6, -11,
2075 ], [
2076 3, 7, -6, 20, 25, 77, 32, -29, -31, -30,
2077 -4, -2, -14, 29, 16, 40, -26, 0, 3, -12,
2078 -13, -10, -36, 9, 15, 8, -24, 6, -7, 22,
2079 -40, 17, 8, 9, 31, 18, -66, -22, -11, -19,
2080 ], [
2081 32, -6, -17, -31, 19, 65, 33, -41, -16, 1,
2082 0, 29, 6, 4, -13, 17, -9, 1, -8, 14,
2083 35, 3, -19, 11, 4, 0, -1, -21, 23, 30,
2084 -3, 5, -20, -44, 48, 46, -19, -3, -20, 3,
2085 ], [
2086 -36, 13, 5, 7, 40, 51, 28, -36, -52, -27,
2087 -18, 36, -2, 22, 0, 33, -21, -2, 3, 13,
2088 26, -11, -14, -4, -10, 10, -18, 14, 22, 36,
2089 -24, 21, -1, -28, 40, 42, -42, -5, -25, -5,
2090 ], [
2091 27, -1, -20, -17, 24, 38, 35, -26, 1, 4,
2092 35, -32, -21, -3, 2, 35, -8, -29, -24, -44,
2093 12, 24, -34, 18, 8, -7, -21, -55, -5, 21,
2094 -2, 23, -11, -28, 13, -1, -22, -33, 21, 10,
2095 ], [
2096 -41, 18, 2, 21, 45, 24, 30, -21, -33, -24,
2097 17, -24, -29, 15, 16, 51, -21, -33, -13, -45,
2098 3, 8, -28, 2, -7, 2, -37, -19, -7, 27,
2099 -22, 39, 7, -12, 5, -5, -45, -35, 15, 1,
2100 ], [
2101 -12, 4, -8, -29, 39, 12, 30, -33, -19, 8,
2102 21, 6, -8, -9, -13, 28, -4, -31, -24, -18,
2103 52, 23, -12, 4, -18, -5, -14, -47, 24, 34,
2104 14, 27, -22, -66, 22, 22, 1, -16, 6, 24,
2105 ], [
2106 -81, 25, 14, 8, 61, 0, 25, -28, -54, -20,
2107 3, 14, -17, 8, 0, 44, -16, -35, -13, -18,
2108 43, 7, -6, -11, -33, 4, -30, -11, 22, 40,
2109 -6, 43, -3, -50, 14, 18, -22, -18, 1, 16,
2110 ], [
2111 77, -2, -11, 1, -7, 47, 52, -5, 29, 33,
2112 1, -28, 0, -15, 28, 26, 2, 30, 0, 2,
2113 -22, 4, -33, -3, 36, -21, 3, -15, -2, 5,
2114 -4, 4, 6, 9, 37, 31, -5, -32, -20, -30,
2115 ], [
2116 8, 17, 10, 40, 13, 34, 47, 0, -5, 4,
2117 -16, -21, -8, 2, 42, 43, -10, 26, 10, 2,
2118 -31, -11, -27, -19, 21, -10, -12, 20, -3, 11,
2119 -25, 20, 25, 25, 29, 28, -28, -34, -25, -38,
2120 ], [
2121 37, 3, 0, -10, 7, 22, 48, -12, 8, 36,
2122 -12, 9, 12, -22, 12, 19, 6, 28, 0, 29,
2123 18, 3, -11, -17, 10, -18, 10, -7, 27, 18,
2124 11, 7, -3, -28, 47, 55, 18, -15, -34, -16,
2125 ], [
2126 -31, 24, 23, 27, 29, 9, 43, -8, -26, 7,
2127 -30, 17, 4, -3, 26, 35, -5, 24, 10, 28,
2128 9, -12, -5, -33, -5, -8, -5, 29, 26, 24,
2129 -9, 23, 14, -12, 39, 52, -5, -18, -39, -24,
2130 ], [
2131 32, 8, -3, 2, 13, -4, 50, 1, 27, 39,
2132 23, -51, -15, -30, 27, 37, 7, -1, -17, -29,
2133 -5, 23, -25, -10, 14, -26, -8, -41, -1, 9,
2134 13, 26, 5, -12, 12, 7, 14, -45, 6, -9,
2135 ], [
2136 -36, 29, 19, 41, 34, -18, 45, 6, -8, 10,
2137 5, -43, -23, -11, 42, 53, -5, -5, -6, -30,
2138 -14, 8, -20, -26, -1, -16, -25, -4, -3, 15,
2139 -7, 41, 23, 3, 4, 3, -8, -48, 1, -17,
2140 ], [
2141 -7, 15, 9, -9, 28, -29, 45, -5, 6, 43,
2142 9, -12, -2, -36, 12, 30, 11, -3, -17, -3,
2143 34, 22, -3, -24, -12, -24, -2, -32, 28, 22,
2144 29, 29, -5, -50, 21, 31, 38, -29, -7, 5,
2145 ], [
2146 -76, 35, 31, 28, 49, -43, 40, 0, -29, 14,
2147 -8, -5, -10, -18, 26, 46, 0, -7, -6, -3,
2148 25, 7, 2, -40, -28, -14, -18, 3, 27, 28,
2149 8, 45, 13, -34, 13, 27, 15, -31, -12, -3,
2150 ], [
2151 74, -17, 0, -31, -18, 73, -5, 0, 3, -5,
2152 25, 12, -3, -1, -22, 3, -9, 33, -12, -24,
2153 6, 2, -33, 9, 21, 5, 20, -27, -19, -7,
2154 -34, -37, -34, 22, 44, 0, -41, -29, -17, -21,
2155 ], [
2156 5, 3, 21, 7, 2, 60, -10, 5, -32, -34,
2157 7, 20, -11, 16, -8, 20, -21, 29, -1, -24,
2158 -2, -13, -27, -6, 5, 15, 3, 8, -21, -1,
2159 -55, -21, -15, 38, 37, -3, -65, -32, -23, -30,
2160 ], [
2161 35, -10, 11, -44, -3, 48, -10, -6, -17, -2,
2162 11, 51, 8, -8, -38, -3, -4, 31, -12, 2,
2163 46, 1, -10, -4, -5, 7, 26, -19, 10, 5,
2164 -18, -34, -45, -15, 54, 24, -18, -13, -31, -7,
2165 ], [
2166 -33, 10, 34, -5, 17, 35, -15, -1, -53, -30,
2167 -6, 59, 0, 10, -24, 13, -17, 27, -1, 1,
2168 37, -13, -4, -20, -20, 18, 10, 16, 8, 11,
2169 -39, -18, -26, 0, 46, 20, -41, -15, -37, -15,
2170 ], [
2171 29, -5, 7, -30, 1, 21, -7, 7, 0, 0,
2172 47, -9, -18, -15, -22, 14, -4, 0, -28, -57,
2173 23, 21, -25, 2, -1, 0, 7, -53, -19, -3,
2174 -17, -15, -36, 0, 19, -24, -21, -43, 9, 0,
2175 ], [
2176 -39, 14, 30, 8, 22, 8, -12, 12, -34, -27,
2177 29, -2, -26, 2, -8, 31, -16, -3, -17, -57,
2178 14, 6, -19, -13, -16, 10, -8, -17, -20, 2,
2179 -38, 0, -17, 16, 11, -27, -44, -45, 4, -8,
2180 ], [
2181 -9, 1, 20, -43, 17, -3, -12, 0, -20, 4,
2182 33, 29, -6, -22, -38, 7, 0, -1, -29, -30,
2183 63, 21, -3, -11, -27, 1, 14, -45, 10, 9,
2184 -1, -12, -47, -37, 28, 0, 2, -26, -4, 13,
2185 ], [
2186 -78, 21, 43, -4, 38, -17, -17, 5, -55, -24,
2187 15, 36, -14, -4, -24, 24, -12, -5, -17, -31,
2188 54, 5, 2, -27, -43, 12, -2, -9, 9, 15,
2189 -22, 3, -28, -21, 20, -3, -20, -28, -9, 5,
2190 ], [
2191 80, -6, 16, -11, -30, 30, 9, 28, 28, 29,
2192 13, -6, 2, -28, 3, 5, 7, 60, -5, -9,
2193 -11, 1, -24, -19, 27, -13, 32, -13, -15, -19,
2194 -19, -35, -17, 39, 43, 9, -4, -42, -32, -41,
2195 ], [
2196 11, 14, 39, 27, -9, 17, 4, 33, -6, 0,
2197 -4, 1, -5, -10, 17, 22, -5, 57, 5, -9,
2198 -20, -13, -18, -35, 11, -3, 16, 22, -17, -13,
2199 -40, -19, 1, 55, 35, 5, -27, -44, -37, -49,
2200 ], [
2201 40, 0, 28, -24, -14, 5, 4, 21, 7, 33,
2202 0, 32, 15, -35, -12, -1, 11, 58, -5, 16,
2203 28, 0, -1, -33, 0, -11, 39, -5, 14, -6,
2204 -3, -31, -28, 1, 53, 33, 19, -25, -46, -26,
2205 ], [
2206 -28, 20, 51, 14, 6, -7, 0, 26, -27, 4,
2207 -18, 40, 6, -16, 1, 15, 0, 55, 5, 16,
2208 19, -14, 3, -49, -14, -1, 22, 30, 12, 0,
2209 -24, -15, -9, 17, 45, 29, -4, -28, -51, -35,
2210 ], [
2211 34, 4, 25, -10, -9, -21, 7, 36, 26, 36,
2212 35, -28, -12, -42, 3, 16, 12, 28, -21, -42,
2213 5, 21, -16, -26, 4, -19, 19, -39, -15, -15,
2214 -1, -13, -19, 17, 17, -14, 15, -55, -4, -19,
2215 ], [
2216 -34, 25, 48, 28, 11, -34, 2, 41, -9, 7,
2217 17, -21, -20, -24, 17, 33, 0, 24, -10, -42,
2218 -3, 5, -10, -42, -11, -8, 3, -3, -16, -9,
2219 -22, 2, 0, 33, 10, -18, -7, -58, -10, -28,
2220 ], [
2221 -4, 11, 37, -23, 5, -46, 2, 29, 5, 39,
2222 21, 9, 0, -49, -12, 9, 16, 26, -22, -15,
2223 45, 20, 5, -40, -22, -17, 26, -31, 14, -2,
2224 14, -10, -30, -20, 27, 9, 39, -39, -18, -5,
2225 ], [
2226 -73, 32, 60, 15, 26, -59, -2, 33, -30, 10,
2227 3, 17, -8, -30, 1, 26, 4, 22, -10, -16,
2228 36, 5, 11, -56, -37, -6, 10, 5, 13, 3,
2229 -6, 5, -11, -4, 19, 5, 16, -41, -24, -13
2230 ]
2231 ];
2232
2233 const RA144_GAIN_VAL_TAB: [[u16; 3]; 256] = [
2234 [ 541, 956, 768], [ 877, 581, 568], [ 675,1574, 635], [1248,1464, 668],
2235 [1246, 839, 1394], [2560,1386, 991], [ 925, 687, 608], [2208, 797, 1144],
2236 [ 535, 832, 799], [ 762, 605, 1154], [ 832,1122, 1003], [1180, 687, 1176],
2237 [1292, 901, 732], [1656, 689, 896], [1750,1248, 848], [2284, 942, 1022],
2238 [ 824,1472, 643], [ 517, 765, 512], [ 562,1816, 1522], [ 694,1826, 2700],
2239 [ 704, 524, 672], [1442, 757, 2232], [ 884, 551, 1266], [2232,1007, 1692],
2240 [ 932, 746, 777], [1132, 822, 926], [1226, 771, 611], [2948,1342, 1008],
2241 [1302, 594, 1158], [1602, 636, 1128], [3408, 910, 1438], [1996, 614, 575],
2242 [ 665, 935, 628], [ 631,1192, 829], [ 644, 926, 1052], [ 879, 988, 1226],
2243 [ 941,2768, 2772], [ 565,1344, 2304], [ 547, 628, 740], [ 639, 532, 1074],
2244 [ 955,1208, 598], [1124,1160, 900], [1206, 899, 1242], [ 746, 533, 624],
2245 [1458,1028, 735], [1706,1102, 692], [1898,1018, 1004], [2176, 988, 735],
2246 [1578, 782, 1642], [ 897, 516, 754], [2068, 702, 1656], [2344, 818, 1526],
2247 [ 907, 652, 592], [1056, 652, 642], [2124,1416, 780], [2664,1250, 727],
2248 [1894, 727, 1108], [2196, 657, 981], [4840, 920, 1704], [4992,1238, 983],
2249 [2420, 909, 1094], [2760, 935, 1032], [2800, 612, 853], [3068, 832, 574],
2250 [ 523,1796, 923], [ 722,1916, 1382], [1226,1542, 928], [ 758, 757, 584],
2251 [ 512,1134, 577], [ 615,1276, 698], [ 574,2568, 2356], [ 993,2728, 3512],
2252 [ 539, 890, 913], [ 694, 928, 1088], [ 805, 600, 1360], [2160, 951, 3128],
2253 [ 816, 950, 590], [ 955, 847, 811], [1094, 883, 556], [1304, 888, 604],
2254 [ 863,1170, 855], [1023, 997, 1032], [ 932,1228, 1280], [ 627, 564, 573],
2255 [ 876, 900, 1448], [1030, 857, 1792], [1294, 953, 1758], [1612, 854, 1714],
2256 [1090,1166, 631], [1314,1202, 751], [1480, 905, 795], [1682,1016, 568],
2257 [1494,1178, 983], [ 878, 613, 526], [1728,1446, 779], [2136,1348, 774],
2258 [ 950, 649, 939], [1180, 703, 899], [1236, 527, 1158], [1450, 647, 972],
2259 [1282, 647, 707], [1460, 663, 644], [1614, 572, 578], [3516,1222, 821],
2260 [2668, 729, 1682], [3128, 585, 1502], [3208, 733, 976], [6800, 871, 1416],
2261 [3480, 743, 1408], [3764, 899, 1170], [3772, 632, 875], [4092, 732, 638],
2262 [3112, 753, 2620], [3372, 945, 1890], [3768, 969, 2288], [2016, 559, 854],
2263 [1736, 729, 787], [1940, 686, 547], [2140, 635, 674], [4480,1272, 828],
2264 [3976, 592, 1666], [4384, 621, 1388], [4400, 801, 955], [4656, 522, 646],
2265 [4848, 625, 1636], [4984, 591, 874], [5352, 535, 1001], [11216,938, 1184],
2266 [ 925,3280, 1476], [ 735,1580, 1088], [1150,1576, 674], [ 655, 783, 528],
2267 [ 527,2052, 1354], [ 782,1704, 1880], [ 578, 910, 1026], [ 692, 882, 1468],
2268 [ 586, 683, 715], [ 739, 609, 717], [ 778, 773, 697], [ 922, 785, 813],
2269 [ 766, 651, 984], [ 978, 596, 1030], [1070, 757, 1080], [1324, 687, 1178],
2270 [1108,2144, 979], [ 723, 982, 690], [ 936, 956, 527], [1180,1002, 547],
2271 [ 517,1306, 825], [ 832,1184, 974], [1024, 957, 903], [1262,1090, 906],
2272 [1028, 720, 649], [1192, 679, 694], [2468,1480, 979], [2844,1370, 877],
2273 [1310, 835, 848], [1508, 839, 698], [1742,1030, 769], [1910, 852, 573],
2274 [1280, 859, 1174], [1584, 863, 1108], [1686, 708, 1364], [1942, 768, 1104],
2275 [ 891, 536, 690], [1016, 560, 663], [2172, 870, 1348], [2404, 999, 1170],
2276 [1890, 966, 889], [2116, 912, 777], [2296,1020, 714], [4872,1844, 932],
2277 [2392, 778, 929], [2604, 772, 744], [2764, 957, 722], [5832,1532, 984],
2278 [2188, 519, 1264], [2332, 532, 922], [5064, 995, 2412], [2708, 571, 874],
2279 [2408, 545, 666], [5016,1084, 875], [5376, 983, 1196], [5536, 979, 730],
2280 [5344, 634, 1744], [5688, 706, 1348], [5912, 977, 1190], [6072, 905, 763],
2281 [6048, 582, 1526], [11968,1013,1816], [12864,937, 1900], [12560,1086, 998],
2282 [1998, 684, 1884], [2504, 633, 1992], [1252, 567, 835], [1478, 571, 973],
2283 [2620, 769, 1414], [2808, 952, 1142], [2908, 712, 1028], [2976, 686, 741],
2284 [1462, 552, 714], [3296, 991, 1452], [1590, 615, 544], [3480,1150, 824],
2285 [3212, 832, 923], [3276, 839, 531], [3548, 786, 852], [3732, 764, 570],
2286 [5728, 906, 2616], [6272, 804, 2252], [3096, 535, 876], [3228, 598, 649],
2287 [6536, 759, 1436], [6648, 993, 846], [6864, 567, 1210],[14016,1012, 1302],
2288 [3408, 548, 1098], [7160,1008, 1742], [7136,1000, 1182], [7480,1032, 836],
2289 [7448, 612, 1552], [7744, 614, 816], [8384, 777, 1438], [8784, 694, 786],
2290 [ 882,1508, 1068], [ 597, 837, 766], [1270, 954, 1408], [ 803, 550, 798],
2291 [1398,1308, 798], [1848,1534, 738], [ 970, 675, 608], [1264, 706, 684],
2292 [1716, 767, 1126], [2108, 765, 1404], [2236, 924, 1003], [2472,1048, 611],
2293 [ 999, 942, 963], [1094, 857, 935], [2936, 926, 1138], [1934, 746, 551],
2294 [3336, 633, 1762], [3764, 701, 1454], [1890, 564, 636], [4096,1126, 793],
2295 [3936, 556, 1140], [3936, 540, 740], [4216, 764, 874], [8480,1328, 1014],
2296 [2184, 515, 1042], [4432, 934, 1344], [4784, 945, 1112], [5016,1062, 733],
2297 [9216,1020, 2028], [9968, 924, 1188], [5424, 909, 1206], [6512, 744, 1086]
2298 ];
2299 const RA144_GAIN_EXP_TAB: [u8; 256] = [
2300 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14,
2301 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13,
2302 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13,
2303 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13,
2304 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12,
2305 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12,
2306 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13,
2307 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14,
2308 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2309 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11,
2310 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13,
2311 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
2312 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12,
2313 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13,
2314 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10,
2315 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12
2316 ];