forked from andrewpalumbo/dudestar
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathimbe7200x4400_const.h
executable file
·899 lines (840 loc) · 48.1 KB
/
imbe7200x4400_const.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
/*
* Copyright (C) 2010 mbelib Author
* GPG Key ID: 0xEA5EFE2C (9E7A 5527 9CDC EBF7 BF1B D772 4F98 E863 EA5E FE2C)
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _IMBE7200X4400_CONST_H
#define _IMBE7200X4400_CONST_H
/*
* Quantizer step size for higher order DCT coefficients
*/
const float quantstep[11] = {
1.2, 0.85, 0.65, 0.40, 0.28, 0.15, 0.08, 0.04, 0.02, 0.01
};
/*
* Standard Dev. for higer order DCT coefficients
*/
const float standdev[9] = {
0.307, 0.241, 0.207, 0.190, 0.179, 0.173, 0.165, 0.170, 0.170
};
/*
*
*/
const float B2[64] = {
-2.842205, -2.694235, -2.558260, -2.382850,
-2.221042, -2.095574, -1.980845, -1.836058,
-1.645556, -1.417658, -1.261301, -1.125631,
-0.958207, -0.781591, -0.555837, -0.346976,
-0.147249, 0.027755, 0.211495, 0.388380,
0.552873, 0.737223, 0.932197, 1.139032,
1.320955, 1.483433, 1.648297, 1.801447,
1.942731, 2.118613, 2.321486, 2.504443,
2.653909, 2.780654, 2.925355, 3.076390,
3.220825, 3.402869, 3.585096, 3.784606,
3.955521, 4.155636, 4.314009, 4.444150,
4.577542, 4.735552, 4.909493, 5.085264,
5.254767, 5.411894, 5.568094, 5.738523,
5.919215, 6.087701, 6.280685, 6.464201,
6.647736, 6.834672, 7.022583, 7.211777,
7.471016, 7.738948, 8.124863, 8.695827
};
/*
* bit allocation and step size for transformed gain vector
*/
const float ba[48][5][2] = {
// L=9
{{10, 0.003100}, {9, 0.004020}, {9, 0.003360}, {9, 0.002900}, {9, 0.002640}},
// L=10
{{9, 0.006200}, {9, 0.004020}, {8, 0.006720}, {8, 0.005800}, {8, 0.005280}},
// L=11
{{8, 0.012400}, {8, 0.008040}, {8, 0.006720}, {7, 0.011600}, {7, 0.010560}},
// L=12
{{8, 0.012400}, {7, 0.016080}, {7, 0.013440}, {7, 0.011600}, {7, 0.010560}},
// L=13
{{7, 0.024800}, {7, 0.016080}, {7, 0.013440}, {6, 0.021750}, {6, 0.019800}},
// L=14
{{7, 0.024800}, {6, 0.030150}, {6, 0.025200}, {6, 0.021750}, {6, 0.019800}},
// L=15
{{7, 0.024800}, {6, 0.030150}, {6, 0.025200}, {6, 0.021750}, {5, 0.036960}},
// L=16
{{6, 0.046500}, {6, 0.030150}, {6, 0.025200}, {5, 0.040600}, {5, 0.036960}},
// L=17
{{6, 0.046500}, {6, 0.030150}, {5, 0.047040}, {5, 0.040600}, {5, 0.036960}},
// L=18
{{6, 0.046500}, {5, 0.056280}, {5, 0.047040}, {5, 0.040600}, {5, 0.036960}},
// L=19
{{6, 0.046500}, {5, 0.056280}, {5, 0.047040}, {4, 0.058000}, {4, 0.052800}},
// L=20
{{6, 0.046500}, {5, 0.056280}, {5, 0.047040}, {4, 0.058000}, {4, 0.052800}},
// L=21
{{5, 0.086800}, {5, 0.056280}, {5, 0.047040}, {4, 0.058000}, {4, 0.052800}},
// L=22
{{5, 0.086800}, {5, 0.056280}, {4, 0.067200}, {4, 0.058000}, {4, 0.052800}},
// L=23
{{5, 0.086800}, {4, 0.080400}, {4, 0.067200}, {4, 0.068000}, {4, 0.052800}},
// L=24
{{5, 0.086800}, {4, 0.080400}, {4, 0.067200}, {4, 0.058000}, {4, 0.052800}},
// L=25
{{5, 0.086800}, {4, 0.080400}, {4, 0.067200}, {4, 0.058000}, {3, 0.085800}},
// L=26
{{5, 0.086800}, {4, 0.080400}, {4, 0.067200}, {3, 0.094250}, {3, 0.085800}},
// L=27
{{5, 0.086800}, {4, 0.080400}, {4, 0.067200}, {3, 0.094250}, {3, 0.085800}},
// L=28
{{4, 0.124000}, {4, 0.080400}, {4, 0.067200}, {3, 0.094250}, {3, 0.085800}},
// L=29
{{4, 0.124000}, {4, 0.080400}, {4, 0.067200}, {3, 0.094250}, {3, 0.085800}},
// L=30
{{4, 0.124000}, {4, 0.080400}, {4, 0.067200}, {3, 0.094250}, {3, 0.085800}},
// L=31
{{4, 0.124000}, {4, 0.080400}, {3, 0.109200}, {3, 0.094250}, {3, 0.085800}},
// L=32
{{4, 0.124000}, {4, 0.080400}, {3, 0.109200}, {3, 0.094250}, {3, 0.085800}},
// L=33
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {3, 0.085800}},
// L=34
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {3, 0.085800}},
// L=35
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {3, 0.085800}},
// L=36
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {3, 0.085800}},
// L=37
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {2, 0.112200}},
// L=38
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {2, 0.112200}},
// L=39
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {2, 0.112200}},
// L=40
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {3, 0.094250}, {2, 0.112200}},
// L=41
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=42
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=43
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=44
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=45
{{4, 0.124000}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=46
{{3, 0.201500}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=47
{{3, 0.201500}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=48
{{3, 0.201500}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=49
{{3, 0.201500}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=50
{{3, 0.201500}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=51
{{3, 0.201500}, {3, 0.130650}, {3, 0.109200}, {2, 0.123250}, {2, 0.112200}},
// L=52
{{3, 0.201500}, {3, 0.130650}, {2, 0.142800}, {2, 0.123250}, {2, 0.112200}},
// L=53
{{3, 0.201500}, {3, 0.130650}, {2, 0.142800}, {2, 0.123250}, {2, 0.112200}},
// L=54
{{3, 0.201500}, {3, 0.130650}, {2, 0.142800}, {2, 0.123250}, {2, 0.112200}},
// L=55
{{3, 0.201500}, {3, 0.130650}, {2, 0.142800}, {2, 0.123250}, {2, 0.112200}},
// L=56
{{3, 0.201500}, {3, 0.130650}, {2, 0.142800}, {2, 0.123250}, {2, 0.112200}}
};
/*
* Bit allocation for higher Order DCT Coefficients
*/
const int hoba[48][50] = {
// L=9
{9, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=10
{9, 7, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=11
{9, 7, 6, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=12
{8, 7, 6, 5, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=13
{7, 7, 6, 5, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=14
{7, 7, 5, 4, 4, 3, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=15
{6, 7, 5, 4, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=16
{6, 6, 5, 4, 4, 3, 3, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=17
{5, 5, 5, 4, 4, 4, 3, 3, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=18
{5, 4, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=19
{5, 4, 5, 4, 4, 3, 3, 3, 3, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=20
{5, 4, 5, 4, 4, 3, 3, 2, 3, 2, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=21
{4, 4, 5, 4, 4, 3, 3, 2, 2, 3, 2, 1, 3, 2, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=22
{4, 4, 4, 4, 4, 3, 2, 3, 2, 2, 3, 2, 1, 2, 2, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=23
{4, 3, 4, 4, 3, 4, 3, 2, 3, 2, 2, 2, 2, 1, 2, 2, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=24
{4, 3, 3, 4, 3, 3, 3, 3, 2, 3, 2, 1, 2, 2, 1, 2, 2, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=25
{4, 3, 3, 4, 3, 3, 3, 3, 2, 3, 2, 1, 2, 2, 1, 2, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=26
{4, 3, 3, 4, 3, 3, 3, 2, 2, 3, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=27
{4, 3, 2, 4, 3, 2, 3, 2, 2, 3, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=28
{4, 3, 2, 4, 3, 2, 3, 2, 2, 2, 3, 2, 1, 1, 2, 2, 1, 1, 2, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=29
{3, 3, 2, 4, 3, 2, 2, 3, 2, 2, 2, 3, 2, 1, 1, 2, 1, 1, 1, 2,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=30
{3, 3, 2, 2, 3, 3, 2, 2, 3, 2, 2, 1, 3, 2, 1, 1, 2, 1, 1, 1,
2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=31
{3, 3, 2, 2, 3, 3, 2, 2, 3, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1,
2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=32
{3, 3, 2, 2, 3, 3, 2, 2, 3, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1,
1, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=33
{3, 3, 2, 2, 3, 3, 2, 2, 3, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1,
1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=34
{3, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1,
1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=35
{3, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2,
1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=36
{3, 2, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 1, 1, 2, 2, 1, 1, 1,
2, 1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=37
{3, 2, 2, 2, 1, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 1, 1, 1, 1,
2, 1, 1, 1, 0, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=38
{3, 2, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 1, 1, 2, 1, 1, 1, 1,
2, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=39
{3, 2, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 1, 1, 2, 2, 1, 1, 1,
0, 2, 1, 1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=40
{3, 2, 2, 2, 1, 3, 2, 2, 1, 1, 3, 2, 1, 1, 1, 1, 2, 2, 1, 1,
1, 0, 2, 1, 1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=41
{3, 2, 2, 1, 1, 3, 2, 2, 2, 1, 1, 3, 2, 1, 1, 1, 1, 2, 2, 1,
1, 1, 0, 2, 1, 1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=42
{3, 2, 2, 2, 1, 1, 3, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2,
1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=43
{3, 2, 2, 2, 1, 1, 3, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1,
1, 1, 1, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=44
{3, 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1,
1, 1, 1, 0, 2, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=45
{3, 2, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2,
1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=46
{3, 2, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2,
2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=47
{3, 2, 2, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1,
2, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=48
{3, 2, 2, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
1, 2, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=49
{3, 2, 2, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
0, 2, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=50
{3, 2, 2, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
0, 2, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
// L=51
{3, 2, 2, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
0, 2, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
// L=52
{3, 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
1, 0, 2, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
// L=53
{3, 2, 1, 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
1, 1, 0, 2, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0, 2,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
// L=54
{3, 2, 2, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 1, 1, 0, 2, 2, 1, 1,
1, 1, 1, 0, 2, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0,
2, 1, 1, 1, 0, 0, 0, 0, 0, 0},
// L=55
{3, 2, 2, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 1, 1, 0, 2, 2, 1, 1,
1, 1, 1, 0, 2, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0,
2, 1, 1, 1, 1, 0, 0, 0, 0, 0},
// L=56
{3, 2, 2, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 1, 1, 0, 2, 2, 1, 1,
1, 1, 1, 0, 2, 2, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 1, 0, 0, 0,
0, 2, 1, 1, 1, 0, 0, 0, 0, 0}
};
/*
* bit order for reading data out of imbe data
*/
// L=9
const int bo[48][79][2] = {
{{2, 5}, {2, 4}, {2, 3}, {3, 9}, {3, 8}, {4, 8},
{5, 8}, {6, 8}, {7, 8}, {8, 8}, {3, 7}, {4, 7}, {5, 7}, {6, 7}, {7, 7}, {8, 7}, {9, 7}, {3, 6},
{4, 6}, {5, 6}, {6, 6}, {7, 6}, {8, 6}, {9, 6}, {10, 6}, {3, 5}, {4, 5}, {5, 5}, {6, 5}, {7, 5},
{8, 5}, {9, 5}, {10, 5}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4}, {10, 4}, {3, 3},
{1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3},
{10, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {3, 1}, {4, 1},
{5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {2, 0} },
// L=10
{{2, 5}, {2, 4}, {2, 3}, {3, 8}, {4, 8}, {8, 8},
{3, 7}, {4, 7}, {5, 7}, {6, 7}, {7, 7}, {8, 7}, {3, 6}, {4, 6}, {5, 6}, {6, 6}, {7, 6}, {8, 6},
{9, 6}, {3, 5}, {4, 5}, {5, 5}, {6, 5}, {7, 5}, {8, 5}, {9, 5}, {10, 5}, {3, 4}, {4, 4}, {5, 4},
{6, 4}, {7, 4}, {8, 4}, {9, 4}, {10, 4}, {11, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3},
{1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {9, 3}, {10, 3}, {11, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1},
{7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0},
{9, 0}, {10, 0}, {11, 0}, {2, 0} },
// L=11
{{2, 5}, {2, 4}, {2, 3}, {8, 8}, {3, 7}, {4, 7},
{5, 7}, {8, 7}, {3, 6}, {4, 6}, {5, 6}, {6, 6}, {7, 6}, {8, 6}, {9, 6}, {3, 5}, {4, 5}, {5, 5},
{6, 5}, {7, 5}, {8, 5}, {9, 5}, {10, 5}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4},
{10, 4}, {11, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3},
{1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2},
{8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1},
{9, 1}, {10, 1}, {11, 1}, {12, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{10, 0}, {11, 0}, {12, 0}, {2, 0}},
// L=12
{{2, 5}, {2, 4}, {2, 3}, {3, 7}, {8, 7}, {3, 6},
{4, 6}, {5, 6}, {6, 6}, {7, 6}, {8, 6}, {9, 6}, {3, 5}, {4, 5}, {5, 5}, {6, 5}, {7, 5}, {8, 5},
{9, 5}, {10, 5}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4}, {10, 4}, {11, 4}, {3, 3},
{4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2}, {4, 2}, {5, 2},
{1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2},
{11, 2}, {12, 2}, {13, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1},
{11, 1}, {12, 1}, {13, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0},
{11, 0}, {12, 0}, {13, 0}, {2, 0}},
// L=13
{{2, 5}, {2, 4}, {2, 3}, {3, 6}, {4, 6}, {5, 6},
{8, 6}, {9, 6}, {3, 5}, {4, 5}, {5, 5}, {6, 5}, {7, 5}, {8, 5}, {9, 5}, {10, 5}, {3, 4}, {4, 4},
{5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4}, {10, 4}, {11, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3},
{8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2},
{1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {10, 2}, {11, 2}, {12, 2}, {13, 2},
{14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1},
{13, 1}, {14, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0},
{12, 0}, {13, 0}, {14, 0}, {2, 0}},
// L=14
{{2, 5}, {2, 4}, {2, 3}, {3, 6}, {8, 6}, {9, 6},
{3, 5}, {4, 5}, {5, 5}, {6, 5}, {7, 5}, {8, 5}, {9, 5}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4},
{8, 4}, {9, 4}, {10, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3},
{12, 3}, {14, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2},
{1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {13, 2}, {14, 2}, {15, 2}, {3, 1},
{4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1},
{15, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0},
{13, 0}, {14, 0}, {15, 0}, {2, 0}},
// L=15
{{2, 5}, {2, 4}, {2, 3}, {3, 6}, {9, 6}, {3, 5},
{4, 5}, {5, 5}, {6, 5}, {8, 5}, {9, 5}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4},
{10, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2},
{4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2}, {14, 2}, {15, 2},
{1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {16, 2}, {3, 1}, {4, 1}, {5, 1},
{6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1},
{3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0},
{14, 0}, {15, 0}, {16, 0}, {2, 0}},
// L=16
{{2, 5}, {2, 4}, {2, 3}, {3, 5}, {4, 5}, {5, 5},
{8, 5}, {9, 5}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4}, {10, 4}, {3, 3}, {4, 3},
{5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2},
{7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2}, {14, 2}, {15, 2}, {16, 2}, {3, 1}, {4, 1},
{1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {5, 1}, {6, 1}, {7, 1},
{8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {3, 0},
{4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0},
{15, 0}, {16, 0}, {17, 0}, {2, 0}},
// L=17
{{2, 5}, {2, 4}, {2, 3}, {3, 5}, {4, 5}, {3, 4},
{4, 4}, {5, 4}, {6, 4}, {7, 4}, {8, 4}, {9, 4}, {10, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3},
{8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {13, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2},
{9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2}, {14, 2}, {15, 2}, {17, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1},
{1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {7, 1}, {8, 1}, {9, 1},
{10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {3, 0}, {4, 0},
{5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0},
{16, 0}, {17, 0}, {18, 0}, {2, 0}},
// L=18
{{2, 5}, {2, 4}, {2, 3}, {3, 5}, {3, 4}, {4, 4},
{5, 4}, {6, 4}, {7, 4}, {8, 4}, {10, 4}, {11, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3},
{9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2},
{11, 2}, {12, 2}, {13, 2}, {14, 2}, {15, 2}, {16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1},
{1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {9, 1}, {10, 1}, {11, 1},
{12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {19, 1}, {3, 0}, {4, 0}, {5, 0},
{6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0},
{17, 0}, {18, 0}, {19, 0}, {2, 0}},
// L=19
{{2, 5}, {2, 4}, {2, 3}, {3, 5}, {3, 4}, {4, 4},
{5, 4}, {8, 4}, {10, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3},
{12, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2},
{14, 2}, {15, 2}, {16, 2}, {18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1},
{1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {11, 1}, {12, 1},
{13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {19, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0},
{7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0},
{18, 0}, {19, 0}, {20, 0}, {2, 0}},
// L=20
{{2, 5}, {2, 4}, {2, 3}, {3, 5}, {3, 4}, {4, 4},
{5, 4}, {8, 4}, {10, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3},
{12, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2},
{14, 2}, {16, 2}, {19, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1},
{1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {12, 1}, {13, 1},
{14, 1}, {15, 1}, {16, 1}, {17, 1}, {19, 1}, {20, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0},
{19, 0}, {20, 0}, {21, 0}, {2, 0}},
// L=21
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {4, 4}, {5, 4},
{10, 4}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2},
{4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2}, {14, 2}, {17, 2},
{20, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1},
{1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {14, 1}, {15, 1},
{16, 1}, {17, 1}, {18, 1}, {20, 1}, {21, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0},
{9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0},
{20, 0}, {21, 0}, {22, 0}, {2, 0}},
// L=22
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {4, 4}, {3, 3},
{4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3}, {9, 3}, {10, 3}, {11, 3}, {12, 3}, {3, 2}, {4, 2}, {5, 2},
{6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2}, {15, 2}, {18, 2}, {3, 1}, {4, 1},
{5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1},
{1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {17, 1},
{18, 1}, {19, 1}, {21, 1}, {22, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0},
{21, 0}, {22, 0}, {23, 0}, {2, 0}},
// L=23
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {3, 3}, {4, 3},
{5, 3}, {6, 3}, {7, 3}, {8, 3}, {10, 3}, {11, 3}, {13, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2},
{8, 2}, {9, 2}, {10, 2}, {11, 2}, {12, 2}, {13, 2}, {14, 2}, {16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1},
{7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1},
{1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {19, 1},
{20, 1}, {22, 1}, {23, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0},
{11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{22, 0}, {23, 0}, {24, 0}, {2, 0}},
// L=24
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {3, 3}, {4, 3},
{5, 3}, {6, 3}, {7, 3}, {8, 3}, {11, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2},
{10, 2}, {11, 2}, {12, 2}, {13, 2}, {14, 2}, {15, 2}, {17, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1},
{8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {20, 1},
{1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1}, {21, 1},
{23, 1}, {24, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0},
{12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0},
{23, 0}, {24, 0}, {25, 0}, {2, 0}},
// L=25
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {3, 3}, {4, 3},
{5, 3}, {6, 3}, {8, 3}, {11, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2},
{11, 2}, {12, 2}, {13, 2}, {14, 2}, {15, 2}, {17, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1},
{9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {20, 1}, {21, 1},
{1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1},
{23, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0},
{13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0},
{24, 0}, {25, 0}, {26, 0}, {2, 0}},
// L=26
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {3, 3}, {4, 3},
{5, 3}, {8, 3}, {11, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {10, 2}, {11, 2},
{12, 2}, {13, 2}, {14, 2}, {17, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1},
{11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {20, 1}, {21, 1}, {24, 1}, {25, 1},
{1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1},
{3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0},
{14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0},
{25, 0}, {26, 0}, {27, 0}, {2, 0}},
// L=27
{{2, 5}, {2, 4}, {2, 3}, {3, 4}, {3, 3}, {4, 3},
{5, 3}, {8, 3}, {11, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {11, 2}, {12, 2},
{14, 2}, {17, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1},
{13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {19, 1}, {21, 1}, {22, 1}, {25, 1}, {26, 1}, {3, 0},
{1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2}, {2, 1},
{4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0},
{15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0},
{26, 0}, {27, 0}, {28, 0}, {2, 0}},
// L=28
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {4, 3}, {5, 3},
{8, 3}, {11, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {11, 2}, {12, 2}, {14, 2},
{18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1},
{14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {19, 1}, {22, 1}, {23, 1}, {26, 1}, {3, 0}, {4, 0}, {5, 0},
{1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2},
{2, 1}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0},
{16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0},
{27, 0}, {28, 0}, {29, 0}, {2, 0}},
// L=29
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {4, 3}, {5, 3},
{11, 3}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {11, 2}, {12, 2}, {15, 2}, {19, 2},
{3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1},
{15, 1}, {16, 1}, {17, 1}, {18, 1}, {19, 1}, {20, 1}, {23, 1}, {27, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0},
{1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2},
{2, 1}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0},
{17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0},
{28, 0}, {29, 0}, {30, 0}, {2, 0}},
// L=30
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {4, 3}, {5, 3},
{3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {12, 2}, {13, 2}, {16, 2}, {20, 2}, {3, 1},
{4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1},
{16, 1}, {17, 1}, {18, 1}, {20, 1}, {21, 1}, {24, 1}, {28, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0}, {2, 2},
{2, 1}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0},
{18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0},
{29, 0}, {30, 0}, {31, 0}, {2, 0}},
// L=31
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {4, 3}, {3, 2},
{4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {12, 2}, {13, 2}, {16, 2}, {3, 1}, {4, 1}, {5, 1},
{6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1},
{18, 1}, {20, 1}, {21, 1}, {24, 1}, {28, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0},
{2, 2}, {2, 1}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0},
{19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0},
{30, 0}, {31, 0}, {32, 0}, {2, 0}},
// L=32
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {4, 3}, {3, 2},
{4, 2}, {5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {12, 2}, {13, 2}, {16, 2}, {3, 1}, {4, 1}, {5, 1},
{6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1},
{18, 1}, {20, 1}, {21, 1}, {24, 1}, {29, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0},
{2, 2}, {2, 1}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0},
{19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0},
{30, 0}, {31, 0}, {32, 0}, {2, 0}},
// L=33
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {7, 2}, {8, 2}, {9, 2}, {12, 2}, {13, 2}, {16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1},
{7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {20, 1},
{21, 1}, {25, 1}, {30, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0},
{1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1}, {1, 0},
{2, 2}, {2, 1}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0},
{21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {31, 0},
{32, 0}, {33, 0}, {34, 0}, {2, 0}},
// L=34
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {7, 2}, {8, 2}, {12, 2}, {16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1},
{9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {21, 1}, {22, 1},
{26, 1}, {31, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0},
{21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {31, 0},
{32, 0}, {33, 0}, {34, 0}, {2, 0}},
// L=35
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {7, 2}, {8, 2}, {12, 2}, {17, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1},
{9, 1}, {10, 1}, {11, 1}, {12, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {22, 1}, {23, 1},
{27, 1}, {32, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0},
{21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {32, 0},
{33, 0}, {34, 0}, {35, 0}, {2, 0}},
// L=36
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {7, 2}, {8, 2}, {13, 2}, {18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1},
{9, 1}, {10, 1}, {11, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {18, 1}, {19, 1}, {23, 1}, {24, 1}, {28, 1},
{33, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {31, 0}, {33, 0},
{34, 0}, {35, 0}, {36, 0}, {2, 0}},
// L=37
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {8, 2}, {13, 2}, {18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1},
{10, 1}, {11, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {17, 1}, {18, 1}, {19, 1}, {23, 1}, {28, 1}, {33, 1},
{3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0},
{23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {31, 0}, {33, 0}, {34, 0},
{35, 0}, {36, 0}, {37, 0}, {2, 0}},
// L=38
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {8, 2}, {13, 2}, {18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1},
{10, 1}, {11, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {18, 1}, {19, 1}, {23, 1}, {28, 1}, {34, 1}, {3, 0},
{4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0},
{24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {31, 0}, {32, 0}, {34, 0}, {35, 0},
{36, 0}, {37, 0}, {38, 0}, {2, 0}},
// L=39
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {8, 2}, {13, 2}, {18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1},
{10, 1}, {11, 1}, {13, 1}, {14, 1}, {15, 1}, {16, 1}, {18, 1}, {19, 1}, {23, 1}, {24, 1}, {29, 1}, {35, 1},
{3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0},
{23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {29, 0}, {30, 0}, {31, 0}, {32, 0}, {33, 0}, {35, 0},
{36, 0}, {37, 0}, {38, 0}, {2, 0}},
// L=40
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {6, 2}, {8, 2}, {13, 2}, {18, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1},
{10, 1}, {11, 1}, {13, 1}, {14, 1}, {15, 1}, {18, 1}, {19, 1}, {24, 1}, {25, 1}, {30, 1}, {36, 1}, {3, 0},
{4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0},
{24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {30, 0}, {31, 0}, {32, 0}, {33, 0}, {34, 0}, {36, 0},
{37, 0}, {38, 0}, {39, 0}, {2, 0}},
// L=41
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {8, 2}, {13, 2}, {19, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1},
{13, 1}, {14, 1}, {15, 1}, {16, 1}, {19, 1}, {20, 1}, {25, 1}, {26, 1}, {31, 1}, {37, 1}, {3, 0}, {4, 0},
{5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0},
{25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {31, 0}, {32, 0}, {33, 0}, {34, 0}, {35, 0}, {37, 0},
{38, 0}, {39, 0}, {40, 0}, {2, 0}},
// L=42
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {8, 2}, {14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1},
{14, 1}, {15, 1}, {16, 1}, {17, 1}, {20, 1}, {21, 1}, {26, 1}, {27, 1}, {32, 1}, {38, 1}, {3, 0}, {4, 0},
{5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0},
{25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {32, 0}, {33, 0}, {34, 0}, {35, 0}, {38, 0},
{39, 0}, {40, 0}, {41, 0}, {2, 0}},
// L=43
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {8, 2}, {14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1},
{14, 1}, {15, 1}, {16, 1}, {17, 1}, {20, 1}, {21, 1}, {26, 1}, {32, 1}, {38, 1}, {3, 0}, {4, 0}, {5, 0},
{6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0},
{26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {32, 0}, {33, 0}, {34, 0}, {35, 0}, {38, 0}, {39, 0},
{40, 0}, {41, 0}, {42, 0}, {2, 0}},
// L=44
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {8, 2}, {14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {14, 1},
{15, 1}, {16, 1}, {17, 1}, {20, 1}, {21, 1}, {26, 1}, {32, 1}, {39, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0},
{7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0},
{27, 0}, {28, 0}, {29, 0}, {30, 0}, {32, 0}, {33, 0}, {34, 0}, {35, 0}, {36, 0}, {39, 0}, {40, 0},
{41, 0}, {42, 0}, {43, 0}, {2, 0}},
// L=45
{{2, 5}, {2, 4}, {2, 3}, {3, 3}, {3, 2}, {4, 2},
{5, 2}, {8, 2}, {14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {14, 1},
{15, 1}, {16, 1}, {20, 1}, {21, 1}, {26, 1}, {27, 1}, {33, 1}, {40, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0},
{7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0},
{27, 0}, {28, 0}, {29, 0}, {30, 0}, {33, 0}, {34, 0}, {35, 0}, {36, 0}, {37, 0}, {40, 0}, {41, 0},
{42, 0}, {43, 0}, {44, 0}, {2, 0}},
// L=46
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {5, 2},
{8, 2}, {14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {14, 1}, {15, 1},
{16, 1}, {20, 1}, {21, 1}, {27, 1}, {28, 1}, {34, 1}, {41, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0},
{28, 0}, {29, 0}, {30, 0}, {31, 0}, {34, 0}, {35, 0}, {36, 0}, {37, 0}, {38, 0}, {41, 0}, {42, 0},
{43, 0}, {44, 0}, {45, 0}, {2, 0}},
// L=47
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {5, 2},
{8, 2}, {14, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {14, 1}, {15, 1},
{16, 1}, {21, 1}, {22, 1}, {28, 1}, {29, 1}, {35, 1}, {42, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0},
{28, 0}, {29, 0}, {30, 0}, {31, 0}, {32, 0}, {35, 0}, {36, 0}, {37, 0}, {38, 0}, {39, 0}, {42, 0},
{43, 0}, {44, 0}, {45, 0}, {2, 0}},
// L=48
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {5, 2},
{8, 2}, {15, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {15, 1}, {16, 1},
{17, 1}, {22, 1}, {23, 1}, {29, 1}, {30, 1}, {36, 1}, {43, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0},
{28, 0}, {29, 0}, {30, 0}, {31, 0}, {32, 0}, {33, 0}, {36, 0}, {37, 0}, {38, 0}, {39, 0}, {43, 0},
{44, 0}, {45, 0}, {46, 0}, {2, 0}},
// L=49
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {5, 2},
{8, 2}, {15, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {15, 1}, {16, 1},
{17, 1}, {22, 1}, {23, 1}, {29, 1}, {30, 1}, {36, 1}, {43, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0},
{29, 0}, {30, 0}, {31, 0}, {32, 0}, {33, 0}, {36, 0}, {37, 0}, {38, 0}, {39, 0}, {43, 0}, {44, 0},
{45, 0}, {46, 0}, {47, 0}, {2, 0}},
// L=50
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {5, 2},
{8, 2}, {15, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {15, 1}, {16, 1},
{17, 1}, {22, 1}, {23, 1}, {29, 1}, {30, 1}, {36, 1}, {44, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0},
{8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0},
{29, 0}, {30, 0}, {31, 0}, {32, 0}, {33, 0}, {36, 0}, {37, 0}, {38, 0}, {39, 0}, {40, 0}, {44, 0},
{45, 0}, {46, 0}, {47, 0}, {2, 0}},
// L=51
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {5, 2},
{8, 2}, {15, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {15, 1}, {16, 1},
{22, 1}, {23, 1}, {29, 1}, {30, 1}, {37, 1}, {45, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0},
{9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {29, 0},
{30, 0}, {31, 0}, {32, 0}, {33, 0}, {37, 0}, {38, 0}, {39, 0}, {40, 0}, {41, 0}, {45, 0}, {46, 0},
{47, 0}, {48, 0}, {49, 0}, {2, 0}},
// L=52
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {8, 2},
{15, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {15, 1}, {16, 1}, {17, 1}, {22, 1},
{23, 1}, {30, 1}, {31, 1}, {38, 1}, {46, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {30, 0},
{31, 0}, {32, 0}, {33, 0}, {34, 0}, {38, 0}, {39, 0}, {40, 0}, {41, 0}, {42, 0}, {46, 0}, {47, 0},
{48, 0}, {49, 0}, {50, 0}, {2, 0}},
// L=53
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {8, 2},
{15, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {15, 1}, {16, 1}, {17, 1}, {23, 1},
{24, 1}, {31, 1}, {32, 1}, {39, 1}, {47, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0},
{10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0},
{31, 0}, {32, 0}, {33, 0}, {34, 0}, {35, 0}, {39, 0}, {40, 0}, {41, 0}, {42, 0}, {43, 0}, {47, 0},
{48, 0}, {49, 0}, {50, 0}, {2, 0}},
// L=54
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {8, 2},
{16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {16, 1}, {17, 1}, {18, 1},
{24, 1}, {25, 1}, {32, 1}, {33, 1}, {40, 1}, {48, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0},
{9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {22, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0},
{32, 0}, {33, 0}, {34, 0}, {35, 0}, {36, 0}, {40, 0}, {41, 0}, {42, 0}, {43, 0}, {44, 0}, {48, 0},
{49, 0}, {50, 0}, {51, 0}, {2, 0}},
// L=55
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {8, 2},
{16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {16, 1}, {17, 1}, {18, 1},
{24, 1}, {25, 1}, {32, 1}, {33, 1}, {40, 1}, {48, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0},
{9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {22, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0},
{32, 0}, {33, 0}, {34, 0}, {35, 0}, {36, 0}, {40, 0}, {41, 0}, {42, 0}, {43, 0}, {48, 0}, {49, 0},
{50, 0}, {51, 0}, {52, 0}, {2, 0}},
// L=56
{{2, 5}, {2, 4}, {2, 3}, {3, 2}, {4, 2}, {8, 2},
{16, 2}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {16, 1}, {17, 1}, {18, 1},
{24, 1}, {25, 1}, {32, 1}, {33, 1}, {40, 1}, {49, 1}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0},
{9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0},
{1, 11}, {1, 10}, {1, 9}, {1, 8}, {1, 7}, {1, 6}, {1, 5}, {1, 4}, {1, 3}, {1, 2}, {1, 1},
{1, 0}, {2, 2}, {2, 1}, {22, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0},
{32, 0}, {33, 0}, {34, 0}, {35, 0}, {36, 0}, {40, 0}, {41, 0}, {42, 0}, {43, 0}, {44, 0}, {49, 0},
{50, 0}, {51, 0}, {52, 0}, {2, 0}}
};
/*
* log magnitude residual block lengths
*/
const int ImbeJi[48][6] = {
{1, 1, 1, 2, 2, 2},
{1, 1, 2, 2, 2, 2},
{1, 2, 2, 2, 2, 2},
{2, 2, 2, 2, 2, 2},
{2, 2, 2, 2, 2, 3},
{2, 2, 2, 2, 3, 3},
{2, 2, 2, 3, 3, 3},
{2, 2, 3, 3, 3, 3},
{2, 3, 3, 3, 3, 3},
{3, 3, 3, 3, 3, 3},
{3, 3, 3, 3, 3, 4},
{3, 3, 3, 3, 4, 4},
{3, 3, 3, 4, 4, 4},
{3, 3, 4, 4, 4, 4},
{3, 4, 4, 4, 4, 4},
{4, 4, 4, 4, 4, 4},
{4, 4, 4, 4, 4, 5},
{4, 4, 4, 4, 5, 5},
{4, 4, 4, 5, 5, 5},
{4, 4, 5, 5, 5, 5},
{4, 5, 5, 5, 5, 5},
{5, 5, 5, 5, 5, 5},
{5, 5, 5, 5, 5, 6},
{5, 5, 5, 5, 6, 6},
{5, 5, 5, 6, 6, 6},
{5, 5, 6, 6, 6, 6},
{5, 6, 6, 6, 6, 6},
{6, 6, 6, 6, 6, 6},
{6, 6, 6, 6, 6, 7},
{6, 6, 6, 6, 7, 7},
{6, 6, 6, 7, 7, 7},
{6, 6, 7, 7, 7, 7},
{6, 7, 7, 7, 7, 7},
{7, 7, 7, 7, 7, 7},
{7, 7, 7, 7, 7, 8},
{7, 7, 7, 7, 8, 8},
{7, 7, 7, 8, 8, 8},
{7, 7, 8, 8, 8, 8},
{7, 8, 8, 8, 8, 8},
{8, 8, 8, 8, 8, 8},
{8, 8, 8, 8, 8, 9},
{8, 8, 8, 8, 9, 9},
{8, 8, 8, 9, 9, 9},
{8, 8, 9, 9, 9, 9},
{8, 9, 9, 9, 9, 9},
{9, 9, 9, 9, 9, 9},
{9, 9, 9, 9, 9, 10},
{9, 9, 9, 9, 10, 10}
};
#endif