xref: /netbsd-src/external/gpl3/gcc.old/dist/libgcc/config/libbid/bid_convert_data.c (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1 /* Copyright (C) 2007-2020 Free Software Foundation, Inc.
2 
3 This file is part of GCC.
4 
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 3, or (at your option) any later
8 version.
9 
10 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13 for more details.
14 
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
18 
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
22 <http://www.gnu.org/licenses/>.  */
23 
24 #include "bid_internal.h"
25 
26 // convert_table[j][k][i] = digit i (base 10^8) of k*2^(26+7*j)
27 const UINT32 convert_table[5][128][2] = {
28   {{0, 0}
29    , {67108864, 0}
30    , {34217728, 1}
31    , {1326592, 2}
32    , {68435456, 2}
33    ,
34    {35544320, 3}
35    , {2653184, 4}
36    , {69762048, 4}
37    , {36870912, 5}
38    , {3979776, 6}
39    ,
40    {71088640, 6}
41    , {38197504, 7}
42    , {5306368, 8}
43    , {72415232, 8}
44    , {39524096, 9}
45    ,
46    {6632960, 10}
47    , {73741824, 10}
48    , {40850688, 11}
49    , {7959552, 12}
50    , {75068416, 12}
51    ,
52    {42177280, 13}
53    , {9286144, 14}
54    , {76395008, 14}
55    , {43503872, 15}
56    , {10612736, 16}
57    ,
58    {77721600, 16}
59    , {44830464, 17}
60    , {11939328, 18}
61    , {79048192, 18}
62    , {46157056, 19}
63    ,
64    {13265920, 20}
65    , {80374784, 20}
66    , {47483648, 21}
67    , {14592512, 22}
68    , {81701376, 22}
69    ,
70    {48810240, 23}
71    , {15919104, 24}
72    , {83027968, 24}
73    , {50136832, 25}
74    , {17245696, 26}
75    ,
76    {84354560, 26}
77    , {51463424, 27}
78    , {18572288, 28}
79    , {85681152, 28}
80    , {52790016, 29}
81    ,
82    {19898880, 30}
83    , {87007744, 30}
84    , {54116608, 31}
85    , {21225472, 32}
86    , {88334336, 32}
87    ,
88    {55443200, 33}
89    , {22552064, 34}
90    , {89660928, 34}
91    , {56769792, 35}
92    , {23878656, 36}
93    ,
94    {90987520, 36}
95    , {58096384, 37}
96    , {25205248, 38}
97    , {92314112, 38}
98    , {59422976, 39}
99    ,
100    {26531840, 40}
101    , {93640704, 40}
102    , {60749568, 41}
103    , {27858432, 42}
104    , {94967296, 42}
105    ,
106    {62076160, 43}
107    , {29185024, 44}
108    , {96293888, 44}
109    , {63402752, 45}
110    , {30511616, 46}
111    ,
112    {97620480, 46}
113    , {64729344, 47}
114    , {31838208, 48}
115    , {98947072, 48}
116    , {66055936, 49}
117    ,
118    {33164800, 50}
119    , {273664, 51}
120    , {67382528, 51}
121    , {34491392, 52}
122    , {1600256, 53}
123    ,
124    {68709120, 53}
125    , {35817984, 54}
126    , {2926848, 55}
127    , {70035712, 55}
128    , {37144576, 56}
129    ,
130    {4253440, 57}
131    , {71362304, 57}
132    , {38471168, 58}
133    , {5580032, 59}
134    , {72688896, 59}
135    ,
136    {39797760, 60}
137    , {6906624, 61}
138    , {74015488, 61}
139    , {41124352, 62}
140    , {8233216, 63}
141    ,
142    {75342080, 63}
143    , {42450944, 64}
144    , {9559808, 65}
145    , {76668672, 65}
146    , {43777536, 66}
147    ,
148    {10886400, 67}
149    , {77995264, 67}
150    , {45104128, 68}
151    , {12212992, 69}
152    , {79321856, 69}
153    ,
154    {46430720, 70}
155    , {13539584, 71}
156    , {80648448, 71}
157    , {47757312, 72}
158    , {14866176, 73}
159    ,
160    {81975040, 73}
161    , {49083904, 74}
162    , {16192768, 75}
163    , {83301632, 75}
164    , {50410496, 76}
165    ,
166    {17519360, 77}
167    , {84628224, 77}
168    , {51737088, 78}
169    , {18845952, 79}
170    , {85954816, 79}
171    ,
172    {53063680, 80}
173    , {20172544, 81}
174    , {87281408, 81}
175    , {54390272, 82}
176    , {21499136, 83}
177    ,
178    {88608000, 83}
179    , {55716864, 84}
180    , {22825728, 85}
181    ,
182    }
183   ,
184 
185   {{0, 0}
186    , {89934592, 85}
187    , {79869184, 171}
188    , {69803776, 257}
189    , {59738368, 343}
190    ,
191    {49672960, 429}
192    , {39607552, 515}
193    , {29542144, 601}
194    , {19476736, 687}
195    , {9411328, 773}
196    ,
197    {99345920, 858}
198    , {89280512, 944}
199    , {79215104, 1030}
200    , {69149696, 1116}
201    , {59084288, 1202}
202    ,
203    {49018880, 1288}
204    , {38953472, 1374}
205    , {28888064, 1460}
206    , {18822656, 1546}
207    , {8757248, 1632}
208    ,
209    {98691840, 1717}
210    , {88626432, 1803}
211    , {78561024, 1889}
212    , {68495616, 1975}
213    , {58430208, 2061}
214    ,
215    {48364800, 2147}
216    , {38299392, 2233}
217    , {28233984, 2319}
218    , {18168576, 2405}
219    , {8103168, 2491}
220    ,
221    {98037760, 2576}
222    , {87972352, 2662}
223    , {77906944, 2748}
224    , {67841536, 2834}
225    , {57776128, 2920}
226    ,
227    {47710720, 3006}
228    , {37645312, 3092}
229    , {27579904, 3178}
230    , {17514496, 3264}
231    , {7449088, 3350}
232    ,
233    {97383680, 3435}
234    , {87318272, 3521}
235    , {77252864, 3607}
236    , {67187456, 3693}
237    , {57122048, 3779}
238    ,
239    {47056640, 3865}
240    , {36991232, 3951}
241    , {26925824, 4037}
242    , {16860416, 4123}
243    , {6795008, 4209}
244    ,
245    {96729600, 4294}
246    , {86664192, 4380}
247    , {76598784, 4466}
248    , {66533376, 4552}
249    , {56467968, 4638}
250    ,
251    {46402560, 4724}
252    , {36337152, 4810}
253    , {26271744, 4896}
254    , {16206336, 4982}
255    , {6140928, 5068}
256    ,
257    {96075520, 5153}
258    , {86010112, 5239}
259    , {75944704, 5325}
260    , {65879296, 5411}
261    , {55813888, 5497}
262    ,
263    {45748480, 5583}
264    , {35683072, 5669}
265    , {25617664, 5755}
266    , {15552256, 5841}
267    , {5486848, 5927}
268    ,
269    {95421440, 6012}
270    , {85356032, 6098}
271    , {75290624, 6184}
272    , {65225216, 6270}
273    , {55159808, 6356}
274    ,
275    {45094400, 6442}
276    , {35028992, 6528}
277    , {24963584, 6614}
278    , {14898176, 6700}
279    , {4832768, 6786}
280    ,
281    {94767360, 6871}
282    , {84701952, 6957}
283    , {74636544, 7043}
284    , {64571136, 7129}
285    , {54505728, 7215}
286    ,
287    {44440320, 7301}
288    , {34374912, 7387}
289    , {24309504, 7473}
290    , {14244096, 7559}
291    , {4178688, 7645}
292    ,
293    {94113280, 7730}
294    , {84047872, 7816}
295    , {73982464, 7902}
296    , {63917056, 7988}
297    , {53851648, 8074}
298    ,
299    {43786240, 8160}
300    , {33720832, 8246}
301    , {23655424, 8332}
302    , {13590016, 8418}
303    , {3524608, 8504}
304    ,
305    {93459200, 8589}
306    , {83393792, 8675}
307    , {73328384, 8761}
308    , {63262976, 8847}
309    , {53197568, 8933}
310    ,
311    {43132160, 9019}
312    , {33066752, 9105}
313    , {23001344, 9191}
314    , {12935936, 9277}
315    , {2870528, 9363}
316    ,
317    {92805120, 9448}
318    , {82739712, 9534}
319    , {72674304, 9620}
320    , {62608896, 9706}
321    , {52543488, 9792}
322    ,
323    {42478080, 9878}
324    , {32412672, 9964}
325    , {22347264, 10050}
326    , {12281856, 10136}
327    , {2216448, 10222}
328    ,
329    {92151040, 10307}
330    , {82085632, 10393}
331    , {72020224, 10479}
332    , {61954816, 10565}
333    , {51889408, 10651}
334    ,
335    {41824000, 10737}
336    , {31758592, 10823}
337    , {21693184, 10909}
338    ,
339    }
340   ,
341 
342   {{0, 0}
343    , {11627776, 10995}
344    , {23255552, 21990}
345    , {34883328, 32985}
346    , {46511104, 43980}
347    ,
348    {58138880, 54975}
349    , {69766656, 65970}
350    , {81394432, 76965}
351    , {93022208, 87960}
352    , {4649984, 98956}
353    ,
354    {16277760, 109951}
355    , {27905536, 120946}
356    , {39533312, 131941}
357    , {51161088, 142936}
358    , {62788864, 153931}
359    ,
360    {74416640, 164926}
361    , {86044416, 175921}
362    , {97672192, 186916}
363    , {9299968, 197912}
364    , {20927744, 208907}
365    ,
366    {32555520, 219902}
367    , {44183296, 230897}
368    , {55811072, 241892}
369    , {67438848, 252887}
370    , {79066624, 263882}
371    ,
372    {90694400, 274877}
373    , {2322176, 285873}
374    , {13949952, 296868}
375    , {25577728, 307863}
376    , {37205504, 318858}
377    ,
378    {48833280, 329853}
379    , {60461056, 340848}
380    , {72088832, 351843}
381    , {83716608, 362838}
382    , {95344384, 373833}
383    ,
384    {6972160, 384829}
385    , {18599936, 395824}
386    , {30227712, 406819}
387    , {41855488, 417814}
388    , {53483264, 428809}
389    ,
390    {65111040, 439804}
391    , {76738816, 450799}
392    , {88366592, 461794}
393    , {99994368, 472789}
394    , {11622144, 483785}
395    ,
396    {23249920, 494780}
397    , {34877696, 505775}
398    , {46505472, 516770}
399    , {58133248, 527765}
400    , {69761024, 538760}
401    ,
402    {81388800, 549755}
403    , {93016576, 560750}
404    , {4644352, 571746}
405    , {16272128, 582741}
406    , {27899904, 593736}
407    ,
408    {39527680, 604731}
409    , {51155456, 615726}
410    , {62783232, 626721}
411    , {74411008, 637716}
412    , {86038784, 648711}
413    ,
414    {97666560, 659706}
415    , {9294336, 670702}
416    , {20922112, 681697}
417    , {32549888, 692692}
418    , {44177664, 703687}
419    ,
420    {55805440, 714682}
421    , {67433216, 725677}
422    , {79060992, 736672}
423    , {90688768, 747667}
424    , {2316544, 758663}
425    ,
426    {13944320, 769658}
427    , {25572096, 780653}
428    , {37199872, 791648}
429    , {48827648, 802643}
430    , {60455424, 813638}
431    ,
432    {72083200, 824633}
433    , {83710976, 835628}
434    , {95338752, 846623}
435    , {6966528, 857619}
436    , {18594304, 868614}
437    ,
438    {30222080, 879609}
439    , {41849856, 890604}
440    , {53477632, 901599}
441    , {65105408, 912594}
442    , {76733184, 923589}
443    ,
444    {88360960, 934584}
445    , {99988736, 945579}
446    , {11616512, 956575}
447    , {23244288, 967570}
448    , {34872064, 978565}
449    ,
450    {46499840, 989560}
451    , {58127616, 1000555}
452    , {69755392, 1011550}
453    , {81383168, 1022545}
454    , {93010944, 1033540}
455    ,
456    {4638720, 1044536}
457    , {16266496, 1055531}
458    , {27894272, 1066526}
459    , {39522048, 1077521}
460    , {51149824, 1088516}
461    ,
462    {62777600, 1099511}
463    , {74405376, 1110506}
464    , {86033152, 1121501}
465    , {97660928, 1132496}
466    , {9288704, 1143492}
467    ,
468    {20916480, 1154487}
469    , {32544256, 1165482}
470    , {44172032, 1176477}
471    , {55799808, 1187472}
472    , {67427584, 1198467}
473    ,
474    {79055360, 1209462}
475    , {90683136, 1220457}
476    , {2310912, 1231453}
477    , {13938688, 1242448}
478    , {25566464, 1253443}
479    ,
480    {37194240, 1264438}
481    , {48822016, 1275433}
482    , {60449792, 1286428}
483    , {72077568, 1297423}
484    , {83705344, 1308418}
485    ,
486    {95333120, 1319413}
487    , {6960896, 1330409}
488    , {18588672, 1341404}
489    , {30216448, 1352399}
490    , {41844224, 1363394}
491    ,
492    {53472000, 1374389}
493    , {65099776, 1385384}
494    , {76727552, 1396379}
495    ,
496    }
497   ,
498 
499   {{0, 0}
500    , {88355328, 1407374}
501    , {76710656, 2814749}
502    , {65065984, 4222124}
503    , {53421312, 5629499}
504    ,
505    {41776640, 7036874}
506    , {30131968, 8444249}
507    , {18487296, 9851624}
508    , {6842624, 11258999}
509    , {95197952, 12666373}
510    ,
511    {83553280, 14073748}
512    , {71908608, 15481123}
513    , {60263936, 16888498}
514    , {48619264, 18295873}
515    , {36974592, 19703248}
516    ,
517    {25329920, 21110623}
518    , {13685248, 22517998}
519    , {2040576, 23925373}
520    , {90395904, 25332747}
521    , {78751232, 26740122}
522    ,
523    {67106560, 28147497}
524    , {55461888, 29554872}
525    , {43817216, 30962247}
526    , {32172544, 32369622}
527    , {20527872, 33776997}
528    ,
529    {8883200, 35184372}
530    , {97238528, 36591746}
531    , {85593856, 37999121}
532    , {73949184, 39406496}
533    , {62304512, 40813871}
534    ,
535    {50659840, 42221246}
536    , {39015168, 43628621}
537    , {27370496, 45035996}
538    , {15725824, 46443371}
539    , {4081152, 47850746}
540    ,
541    {92436480, 49258120}
542    , {80791808, 50665495}
543    , {69147136, 52072870}
544    , {57502464, 53480245}
545    , {45857792, 54887620}
546    ,
547    {34213120, 56294995}
548    , {22568448, 57702370}
549    , {10923776, 59109745}
550    , {99279104, 60517119}
551    , {87634432, 61924494}
552    ,
553    {75989760, 63331869}
554    , {64345088, 64739244}
555    , {52700416, 66146619}
556    , {41055744, 67553994}
557    , {29411072, 68961369}
558    ,
559    {17766400, 70368744}
560    , {6121728, 71776119}
561    , {94477056, 73183493}
562    , {82832384, 74590868}
563    , {71187712, 75998243}
564    ,
565    {59543040, 77405618}
566    , {47898368, 78812993}
567    , {36253696, 80220368}
568    , {24609024, 81627743}
569    , {12964352, 83035118}
570    ,
571    {1319680, 84442493}
572    , {89675008, 85849867}
573    , {78030336, 87257242}
574    , {66385664, 88664617}
575    , {54740992, 90071992}
576    ,
577    {43096320, 91479367}
578    , {31451648, 92886742}
579    , {19806976, 94294117}
580    , {8162304, 95701492}
581    , {96517632, 97108866}
582    ,
583    {84872960, 98516241}
584    , {73228288, 99923616}
585    , {61583616, 1330991}
586    , {49938944, 2738366}
587    , {38294272, 4145741}
588    ,
589    {26649600, 5553116}
590    , {15004928, 6960491}
591    , {3360256, 8367866}
592    , {91715584, 9775240}
593    , {80070912, 11182615}
594    ,
595    {68426240, 12589990}
596    , {56781568, 13997365}
597    , {45136896, 15404740}
598    , {33492224, 16812115}
599    , {21847552, 18219490}
600    ,
601    {10202880, 19626865}
602    , {98558208, 21034239}
603    , {86913536, 22441614}
604    , {75268864, 23848989}
605    , {63624192, 25256364}
606    ,
607    {51979520, 26663739}
608    , {40334848, 28071114}
609    , {28690176, 29478489}
610    , {17045504, 30885864}
611    , {5400832, 32293239}
612    ,
613    {93756160, 33700613}
614    , {82111488, 35107988}
615    , {70466816, 36515363}
616    , {58822144, 37922738}
617    , {47177472, 39330113}
618    ,
619    {35532800, 40737488}
620    , {23888128, 42144863}
621    , {12243456, 43552238}
622    , {598784, 44959613}
623    , {88954112, 46366987}
624    ,
625    {77309440, 47774362}
626    , {65664768, 49181737}
627    , {54020096, 50589112}
628    , {42375424, 51996487}
629    , {30730752, 53403862}
630    ,
631    {19086080, 54811237}
632    , {7441408, 56218612}
633    , {95796736, 57625986}
634    , {84152064, 59033361}
635    , {72507392, 60440736}
636    ,
637    {60862720, 61848111}
638    , {49218048, 63255486}
639    , {37573376, 64662861}
640    , {25928704, 66070236}
641    , {14284032, 67477611}
642    ,
643    {2639360, 68884986}
644    , {90994688, 70292360}
645    , {79350016, 71699735}
646    , {67705344, 73107110}
647    , {56060672, 74514485}
648    ,
649    {44416000, 75921860}
650    , {32771328, 77329235}
651    , {21126656, 78736610}
652    ,
653    }
654   ,
655 
656   {{0, 0}
657    , {9481984, 80143985}
658    , {18963968, 60287970}
659    , {28445952, 40431955}
660    , {37927936, 20575940}
661    ,
662    {47409920, 719925}
663    , {56891904, 80863910}
664    , {66373888, 61007895}
665    , {75855872, 41151880}
666    , {85337856, 21295865}
667    ,
668    {94819840, 1439850}
669    , {4301824, 81583836}
670    , {13783808, 61727821}
671    , {23265792, 41871806}
672    , {32747776, 22015791}
673    ,
674    {42229760, 2159776}
675    , {51711744, 82303761}
676    , {61193728, 62447746}
677    , {70675712, 42591731}
678    , {80157696, 22735716}
679    ,
680    {89639680, 2879701}
681    , {99121664, 83023686}
682    , {8603648, 63167672}
683    , {18085632, 43311657}
684    , {27567616, 23455642}
685    ,
686    {37049600, 3599627}
687    , {46531584, 83743612}
688    , {56013568, 63887597}
689    , {65495552, 44031582}
690    , {74977536, 24175567}
691    ,
692    {84459520, 4319552}
693    , {93941504, 84463537}
694    , {3423488, 64607523}
695    , {12905472, 44751508}
696    , {22387456, 24895493}
697    ,
698    {31869440, 5039478}
699    , {41351424, 85183463}
700    , {50833408, 65327448}
701    , {60315392, 45471433}
702    , {69797376, 25615418}
703    ,
704    {79279360, 5759403}
705    , {88761344, 85903388}
706    , {98243328, 66047373}
707    , {7725312, 46191359}
708    , {17207296, 26335344}
709    ,
710    {26689280, 6479329}
711    , {36171264, 86623314}
712    , {45653248, 66767299}
713    , {55135232, 46911284}
714    , {64617216, 27055269}
715    ,
716    {74099200, 7199254}
717    , {83581184, 87343239}
718    , {93063168, 67487224}
719    , {2545152, 47631210}
720    , {12027136, 27775195}
721    ,
722    {21509120, 7919180}
723    , {30991104, 88063165}
724    , {40473088, 68207150}
725    , {49955072, 48351135}
726    , {59437056, 28495120}
727    ,
728    {68919040, 8639105}
729    , {78401024, 88783090}
730    , {87883008, 68927075}
731    , {97364992, 49071060}
732    , {6846976, 29215046}
733    ,
734    {16328960, 9359031}
735    , {25810944, 89503016}
736    , {35292928, 69647001}
737    , {44774912, 49790986}
738    , {54256896, 29934971}
739    ,
740    {63738880, 10078956}
741    , {73220864, 90222941}
742    , {82702848, 70366926}
743    , {92184832, 50510911}
744    , {1666816, 30654897}
745    ,
746    {11148800, 10798882}
747    , {20630784, 90942867}
748    , {30112768, 71086852}
749    , {39594752, 51230837}
750    , {49076736, 31374822}
751    ,
752    {58558720, 11518807}
753    , {68040704, 91662792}
754    , {77522688, 71806777}
755    , {87004672, 51950762}
756    , {96486656, 32094747}
757    ,
758    {5968640, 12238733}
759    , {15450624, 92382718}
760    , {24932608, 72526703}
761    , {34414592, 52670688}
762    , {43896576, 32814673}
763    ,
764    {53378560, 12958658}
765    , {62860544, 93102643}
766    , {72342528, 73246628}
767    , {81824512, 53390613}
768    , {91306496, 33534598}
769    ,
770    {788480, 13678584}
771    , {10270464, 93822569}
772    , {19752448, 73966554}
773    , {29234432, 54110539}
774    , {38716416, 34254524}
775    ,
776    {48198400, 14398509}
777    , {57680384, 94542494}
778    , {67162368, 74686479}
779    , {76644352, 54830464}
780    , {86126336, 34974449}
781    ,
782    {95608320, 15118434}
783    , {5090304, 95262420}
784    , {14572288, 75406405}
785    , {24054272, 55550390}
786    , {33536256, 35694375}
787    ,
788    {43018240, 15838360}
789    , {52500224, 95982345}
790    , {61982208, 76126330}
791    , {71464192, 56270315}
792    , {80946176, 36414300}
793    ,
794    {90428160, 16558285}
795    , {99910144, 96702270}
796    , {9392128, 76846256}
797    , {18874112, 56990241}
798    , {28356096, 37134226}
799    ,
800    {37838080, 17278211}
801    , {47320064, 97422196}
802    , {56802048, 77566181}
803    , {66284032, 57710166}
804    , {75766016, 37854151}
805    ,
806    {85248000, 17998136}
807    , {94729984, 98142121}
808    , {4211968, 78286107}
809    ,
810    }
811   ,
812 };
813 
814 // for j>=min_j[i+1], there is k s.t. convert_table[i][j][k]>0
815 // int min_j[] = { 0, 0, 0, 3 };
816 
817 // for even k, ((packed_10000_zeros[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k
818 const UINT8 packed_10000_zeros[] = {
819 
820   0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
821   0x40, 0x0, 0x1,
822   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
823   0x0, 0x1, 0x4,
824   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
825   0x1, 0x4, 0x10,
826   0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
827   0x4, 0x20, 0x40,
828   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4,
829   0x10, 0x40, 0x0,
830   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
831   0x40, 0x0, 0x1,
832   0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
833   0x0, 0x1, 0x4,
834   0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
835   0x3, 0x4, 0x10,
836   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
837   0x4, 0x10, 0x40,
838   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
839   0x10, 0x40, 0x0,
840   0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
841   0x40, 0x0, 0x2,
842   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
843   0x0, 0x1, 0x4,
844   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0,
845   0x1, 0x4, 0x10,
846   0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
847   0x4, 0x10, 0x40,
848   0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
849   0x20, 0x40, 0x0,
850   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10,
851   0x40, 0x0, 0x1,
852   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
853   0x0, 0x1, 0x4,
854   0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
855   0x1, 0x4, 0x20,
856   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
857   0x4, 0x10, 0x40,
858   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
859   0x10, 0x40, 0x0,
860   0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
861   0x40, 0x0, 0x1,
862   0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
863   0x0, 0x2, 0x4,
864   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
865   0x1, 0x4, 0x10,
866   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1,
867   0x4, 0x10, 0x40,
868   0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
869   0x10, 0x40, 0x0,
870   0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
871   0x40, 0x0, 0x1,
872   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
873   0x0, 0x1, 0x4,
874   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
875   0x1, 0x4, 0x10,
876   0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
877   0x4, 0x20, 0x40,
878   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4,
879   0x10, 0x40, 0x0,
880   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
881   0x40, 0x0, 0x1,
882   0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
883   0x0, 0x1, 0x4,
884   0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
885   0x2, 0x4, 0x10,
886   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
887   0x4, 0x10, 0x40,
888   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
889   0x10, 0x40, 0x0,
890   0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
891   0x40, 0x0, 0x2,
892   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
893   0x0, 0x1, 0x4,
894   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0,
895   0x1, 0x4, 0x10,
896   0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
897   0x4, 0x10, 0x40,
898   0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
899   0x20, 0x40, 0x0,
900   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10,
901   0x40, 0x0, 0x1,
902   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
903   0x0, 0x1, 0x4,
904   0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
905   0x1, 0x4, 0x20,
906   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
907   0x4, 0x10, 0x40,
908   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
909   0x10, 0x40, 0x0,
910   0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
911   0x40, 0x0, 0x1,
912   0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
913   0x0, 0x3, 0x4,
914   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
915   0x1, 0x4, 0x10,
916   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1,
917   0x4, 0x10, 0x40,
918   0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
919   0x10, 0x40, 0x0,
920   0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
921   0x40, 0x0, 0x1,
922   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
923   0x0, 0x1, 0x4,
924   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
925   0x1, 0x4, 0x10,
926   0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
927   0x4, 0x20, 0x40,
928   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4,
929   0x10, 0x40, 0x0,
930   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
931   0x40, 0x0, 0x1,
932   0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
933   0x0, 0x1, 0x4,
934   0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
935   0x2, 0x4, 0x10,
936   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
937   0x4, 0x10, 0x40,
938   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
939   0x10, 0x40, 0x0,
940   0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
941   0x40, 0x0, 0x2,
942   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
943   0x0, 0x1, 0x4,
944   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0,
945   0x1, 0x4, 0x10,
946   0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
947   0x4, 0x10, 0x40,
948   0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
949   0x20, 0x40, 0x0,
950   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10,
951   0x40, 0x0, 0x1,
952   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
953   0x0, 0x1, 0x4,
954   0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
955   0x1, 0x4, 0x20,
956   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
957   0x4, 0x10, 0x40,
958   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
959   0x10, 0x40, 0x0,
960   0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
961   0x40, 0x0, 0x1,
962   0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
963   0x0, 0x2, 0x4,
964   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
965   0x1, 0x4, 0x10,
966   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1,
967   0x4, 0x10, 0x40,
968   0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
969   0x10, 0x40, 0x0,
970   0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
971   0x40, 0x0, 0x1,
972   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
973   0x0, 0x1, 0x4,
974   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
975   0x1, 0x4, 0x10,
976   0x40, 0x0,
977 };
978 
979 
980 const SINT8 factors[1024][2] = {
981   {0, 0}
982   , {1, 0}
983   , {0, 0}
984   , {2, 0}
985   , {0, 1}
986   , {1, 0}
987   , {0, 0}
988   , {3, 0}
989   , {0, 0}
990   , {1, 1}
991   ,
992   {0, 0}
993   , {2, 0}
994   , {0, 0}
995   , {1, 0}
996   , {0, 1}
997   , {4, 0}
998   , {0, 0}
999   , {1, 0}
1000   , {0, 0}
1001   , {2, 1}
1002   ,
1003   {0, 0}
1004   , {1, 0}
1005   , {0, 0}
1006   , {3, 0}
1007   , {0, 2}
1008   , {1, 0}
1009   , {0, 0}
1010   , {2, 0}
1011   , {0, 0}
1012   , {1, 1}
1013   ,
1014   {0, 0}
1015   , {5, 0}
1016   , {0, 0}
1017   , {1, 0}
1018   , {0, 1}
1019   , {2, 0}
1020   , {0, 0}
1021   , {1, 0}
1022   , {0, 0}
1023   , {3, 1}
1024   ,
1025   {0, 0}
1026   , {1, 0}
1027   , {0, 0}
1028   , {2, 0}
1029   , {0, 1}
1030   , {1, 0}
1031   , {0, 0}
1032   , {4, 0}
1033   , {0, 0}
1034   , {1, 2}
1035   ,
1036   {0, 0}
1037   , {2, 0}
1038   , {0, 0}
1039   , {1, 0}
1040   , {0, 1}
1041   , {3, 0}
1042   , {0, 0}
1043   , {1, 0}
1044   , {0, 0}
1045   , {2, 1}
1046   ,
1047   {0, 0}
1048   , {1, 0}
1049   , {0, 0}
1050   , {6, 0}
1051   , {0, 1}
1052   , {1, 0}
1053   , {0, 0}
1054   , {2, 0}
1055   , {0, 0}
1056   , {1, 1}
1057   ,
1058   {0, 0}
1059   , {3, 0}
1060   , {0, 0}
1061   , {1, 0}
1062   , {0, 2}
1063   , {2, 0}
1064   , {0, 0}
1065   , {1, 0}
1066   , {0, 0}
1067   , {4, 1}
1068   ,
1069   {0, 0}
1070   , {1, 0}
1071   , {0, 0}
1072   , {2, 0}
1073   , {0, 1}
1074   , {1, 0}
1075   , {0, 0}
1076   , {3, 0}
1077   , {0, 0}
1078   , {1, 1}
1079   ,
1080   {0, 0}
1081   , {2, 0}
1082   , {0, 0}
1083   , {1, 0}
1084   , {0, 1}
1085   , {5, 0}
1086   , {0, 0}
1087   , {1, 0}
1088   , {0, 0}
1089   , {2, 2}
1090   ,
1091   {0, 0}
1092   , {1, 0}
1093   , {0, 0}
1094   , {3, 0}
1095   , {0, 1}
1096   , {1, 0}
1097   , {0, 0}
1098   , {2, 0}
1099   , {0, 0}
1100   , {1, 1}
1101   ,
1102   {0, 0}
1103   , {4, 0}
1104   , {0, 0}
1105   , {1, 0}
1106   , {0, 1}
1107   , {2, 0}
1108   , {0, 0}
1109   , {1, 0}
1110   , {0, 0}
1111   , {3, 1}
1112   ,
1113   {0, 0}
1114   , {1, 0}
1115   , {0, 0}
1116   , {2, 0}
1117   , {0, 3}
1118   , {1, 0}
1119   , {0, 0}
1120   , {7, 0}
1121   , {0, 0}
1122   , {1, 1}
1123   ,
1124   {0, 0}
1125   , {2, 0}
1126   , {0, 0}
1127   , {1, 0}
1128   , {0, 1}
1129   , {3, 0}
1130   , {0, 0}
1131   , {1, 0}
1132   , {0, 0}
1133   , {2, 1}
1134   ,
1135   {0, 0}
1136   , {1, 0}
1137   , {0, 0}
1138   , {4, 0}
1139   , {0, 1}
1140   , {1, 0}
1141   , {0, 0}
1142   , {2, 0}
1143   , {0, 0}
1144   , {1, 2}
1145   ,
1146   {0, 0}
1147   , {3, 0}
1148   , {0, 0}
1149   , {1, 0}
1150   , {0, 1}
1151   , {2, 0}
1152   , {0, 0}
1153   , {1, 0}
1154   , {0, 0}
1155   , {5, 1}
1156   ,
1157   {0, 0}
1158   , {1, 0}
1159   , {0, 0}
1160   , {2, 0}
1161   , {0, 1}
1162   , {1, 0}
1163   , {0, 0}
1164   , {3, 0}
1165   , {0, 0}
1166   , {1, 1}
1167   ,
1168   {0, 0}
1169   , {2, 0}
1170   , {0, 0}
1171   , {1, 0}
1172   , {0, 2}
1173   , {4, 0}
1174   , {0, 0}
1175   , {1, 0}
1176   , {0, 0}
1177   , {2, 1}
1178   ,
1179   {0, 0}
1180   , {1, 0}
1181   , {0, 0}
1182   , {3, 0}
1183   , {0, 1}
1184   , {1, 0}
1185   , {0, 0}
1186   , {2, 0}
1187   , {0, 0}
1188   , {1, 1}
1189   ,
1190   {0, 0}
1191   , {6, 0}
1192   , {0, 0}
1193   , {1, 0}
1194   , {0, 1}
1195   , {2, 0}
1196   , {0, 0}
1197   , {1, 0}
1198   , {0, 0}
1199   , {3, 2}
1200   ,
1201   {0, 0}
1202   , {1, 0}
1203   , {0, 0}
1204   , {2, 0}
1205   , {0, 1}
1206   , {1, 0}
1207   , {0, 0}
1208   , {4, 0}
1209   , {0, 0}
1210   , {1, 1}
1211   ,
1212   {0, 0}
1213   , {2, 0}
1214   , {0, 0}
1215   , {1, 0}
1216   , {0, 1}
1217   , {3, 0}
1218   , {0, 0}
1219   , {1, 0}
1220   , {0, 0}
1221   , {2, 1}
1222   ,
1223   {0, 0}
1224   , {1, 0}
1225   , {0, 0}
1226   , {5, 0}
1227   , {0, 2}
1228   , {1, 0}
1229   , {0, 0}
1230   , {2, 0}
1231   , {0, 0}
1232   , {1, 1}
1233   ,
1234   {0, 0}
1235   , {3, 0}
1236   , {0, 0}
1237   , {1, 0}
1238   , {0, 1}
1239   , {2, 0}
1240   , {0, 0}
1241   , {1, 0}
1242   , {0, 0}
1243   , {4, 1}
1244   ,
1245   {0, 0}
1246   , {1, 0}
1247   , {0, 0}
1248   , {2, 0}
1249   , {0, 1}
1250   , {1, 0}
1251   , {0, 0}
1252   , {3, 0}
1253   , {0, 0}
1254   , {1, 3}
1255   ,
1256   {0, 0}
1257   , {2, 0}
1258   , {0, 0}
1259   , {1, 0}
1260   , {0, 1}
1261   , {8, 0}
1262   , {0, 0}
1263   , {1, 0}
1264   , {0, 0}
1265   , {2, 1}
1266   ,
1267   {0, 0}
1268   , {1, 0}
1269   , {0, 0}
1270   , {3, 0}
1271   , {0, 1}
1272   , {1, 0}
1273   , {0, 0}
1274   , {2, 0}
1275   , {0, 0}
1276   , {1, 1}
1277   ,
1278   {0, 0}
1279   , {4, 0}
1280   , {0, 0}
1281   , {1, 0}
1282   , {0, 2}
1283   , {2, 0}
1284   , {0, 0}
1285   , {1, 0}
1286   , {0, 0}
1287   , {3, 1}
1288   ,
1289   {0, 0}
1290   , {1, 0}
1291   , {0, 0}
1292   , {2, 0}
1293   , {0, 1}
1294   , {1, 0}
1295   , {0, 0}
1296   , {5, 0}
1297   , {0, 0}
1298   , {1, 1}
1299   ,
1300   {0, 0}
1301   , {2, 0}
1302   , {0, 0}
1303   , {1, 0}
1304   , {0, 1}
1305   , {3, 0}
1306   , {0, 0}
1307   , {1, 0}
1308   , {0, 0}
1309   , {2, 2}
1310   ,
1311   {0, 0}
1312   , {1, 0}
1313   , {0, 0}
1314   , {4, 0}
1315   , {0, 1}
1316   , {1, 0}
1317   , {0, 0}
1318   , {2, 0}
1319   , {0, 0}
1320   , {1, 1}
1321   ,
1322   {0, 0}
1323   , {3, 0}
1324   , {0, 0}
1325   , {1, 0}
1326   , {0, 1}
1327   , {2, 0}
1328   , {0, 0}
1329   , {1, 0}
1330   , {0, 0}
1331   , {6, 1}
1332   ,
1333   {0, 0}
1334   , {1, 0}
1335   , {0, 0}
1336   , {2, 0}
1337   , {0, 2}
1338   , {1, 0}
1339   , {0, 0}
1340   , {3, 0}
1341   , {0, 0}
1342   , {1, 1}
1343   ,
1344   {0, 0}
1345   , {2, 0}
1346   , {0, 0}
1347   , {1, 0}
1348   , {0, 1}
1349   , {4, 0}
1350   , {0, 0}
1351   , {1, 0}
1352   , {0, 0}
1353   , {2, 1}
1354   ,
1355   {0, 0}
1356   , {1, 0}
1357   , {0, 0}
1358   , {3, 0}
1359   , {0, 1}
1360   , {1, 0}
1361   , {0, 0}
1362   , {2, 0}
1363   , {0, 0}
1364   , {1, 2}
1365   ,
1366   {0, 0}
1367   , {5, 0}
1368   , {0, 0}
1369   , {1, 0}
1370   , {0, 1}
1371   , {2, 0}
1372   , {0, 0}
1373   , {1, 0}
1374   , {0, 0}
1375   , {3, 1}
1376   ,
1377   {0, 0}
1378   , {1, 0}
1379   , {0, 0}
1380   , {2, 0}
1381   , {0, 1}
1382   , {1, 0}
1383   , {0, 0}
1384   , {4, 0}
1385   , {0, 0}
1386   , {1, 1}
1387   ,
1388   {0, 0}
1389   , {2, 0}
1390   , {0, 0}
1391   , {1, 0}
1392   , {0, 3}
1393   , {3, 0}
1394   , {0, 0}
1395   , {1, 0}
1396   , {0, 0}
1397   , {2, 1}
1398   ,
1399   {0, 0}
1400   , {1, 0}
1401   , {0, 0}
1402   , {7, 0}
1403   , {0, 1}
1404   , {1, 0}
1405   , {0, 0}
1406   , {2, 0}
1407   , {0, 0}
1408   , {1, 1}
1409   ,
1410   {0, 0}
1411   , {3, 0}
1412   , {0, 0}
1413   , {1, 0}
1414   , {0, 1}
1415   , {2, 0}
1416   , {0, 0}
1417   , {1, 0}
1418   , {0, 0}
1419   , {4, 2}
1420   ,
1421   {0, 0}
1422   , {1, 0}
1423   , {0, 0}
1424   , {2, 0}
1425   , {0, 1}
1426   , {1, 0}
1427   , {0, 0}
1428   , {3, 0}
1429   , {0, 0}
1430   , {1, 1}
1431   ,
1432   {0, 0}
1433   , {2, 0}
1434   , {0, 0}
1435   , {1, 0}
1436   , {0, 1}
1437   , {5, 0}
1438   , {0, 0}
1439   , {1, 0}
1440   , {0, 0}
1441   , {2, 1}
1442   ,
1443   {0, 0}
1444   , {1, 0}
1445   , {0, 0}
1446   , {3, 0}
1447   , {0, 2}
1448   , {1, 0}
1449   , {0, 0}
1450   , {2, 0}
1451   , {0, 0}
1452   , {1, 1}
1453   ,
1454   {0, 0}
1455   , {4, 0}
1456   , {0, 0}
1457   , {1, 0}
1458   , {0, 1}
1459   , {2, 0}
1460   , {0, 0}
1461   , {1, 0}
1462   , {0, 0}
1463   , {3, 1}
1464   ,
1465   {0, 0}
1466   , {1, 0}
1467   , {0, 0}
1468   , {2, 0}
1469   , {0, 1}
1470   , {1, 0}
1471   , {0, 0}
1472   , {6, 0}
1473   , {0, 0}
1474   , {1, 2}
1475   ,
1476   {0, 0}
1477   , {2, 0}
1478   , {0, 0}
1479   , {1, 0}
1480   , {0, 1}
1481   , {3, 0}
1482   , {0, 0}
1483   , {1, 0}
1484   , {0, 0}
1485   , {2, 1}
1486   ,
1487   {0, 0}
1488   , {1, 0}
1489   , {0, 0}
1490   , {4, 0}
1491   , {0, 1}
1492   , {1, 0}
1493   , {0, 0}
1494   , {2, 0}
1495   , {0, 0}
1496   , {1, 1}
1497   ,
1498   {0, 0}
1499   , {3, 0}
1500   , {0, 0}
1501   , {1, 0}
1502   , {0, 2}
1503   , {2, 0}
1504   , {0, 0}
1505   , {1, 0}
1506   , {0, 0}
1507   , {5, 1}
1508   ,
1509   {0, 0}
1510   , {1, 0}
1511   , {0, 0}
1512   , {2, 0}
1513   , {0, 1}
1514   , {1, 0}
1515   , {0, 0}
1516   , {3, 0}
1517   , {0, 0}
1518   , {1, 1}
1519   ,
1520   {0, 0}
1521   , {2, 0}
1522   , {0, 0}
1523   , {1, 0}
1524   , {0, 1}
1525   , {4, 0}
1526   , {0, 0}
1527   , {1, 0}
1528   , {0, 0}
1529   , {2, 3}
1530   ,
1531   {0, 0}
1532   , {1, 0}
1533   , {0, 0}
1534   , {3, 0}
1535   , {0, 1}
1536   , {1, 0}
1537   , {0, 0}
1538   , {2, 0}
1539   , {0, 0}
1540   , {1, 1}
1541   ,
1542   {0, 0}
1543   , {9, 0}
1544   , {0, 0}
1545   , {1, 0}
1546   , {0, 1}
1547   , {2, 0}
1548   , {0, 0}
1549   , {1, 0}
1550   , {0, 0}
1551   , {3, 1}
1552   ,
1553   {0, 0}
1554   , {1, 0}
1555   , {0, 0}
1556   , {2, 0}
1557   , {0, 2}
1558   , {1, 0}
1559   , {0, 0}
1560   , {4, 0}
1561   , {0, 0}
1562   , {1, 1}
1563   ,
1564   {0, 0}
1565   , {2, 0}
1566   , {0, 0}
1567   , {1, 0}
1568   , {0, 1}
1569   , {3, 0}
1570   , {0, 0}
1571   , {1, 0}
1572   , {0, 0}
1573   , {2, 1}
1574   ,
1575   {0, 0}
1576   , {1, 0}
1577   , {0, 0}
1578   , {5, 0}
1579   , {0, 1}
1580   , {1, 0}
1581   , {0, 0}
1582   , {2, 0}
1583   , {0, 0}
1584   , {1, 2}
1585   ,
1586   {0, 0}
1587   , {3, 0}
1588   , {0, 0}
1589   , {1, 0}
1590   , {0, 1}
1591   , {2, 0}
1592   , {0, 0}
1593   , {1, 0}
1594   , {0, 0}
1595   , {4, 1}
1596   ,
1597   {0, 0}
1598   , {1, 0}
1599   , {0, 0}
1600   , {2, 0}
1601   , {0, 1}
1602   , {1, 0}
1603   , {0, 0}
1604   , {3, 0}
1605   , {0, 0}
1606   , {1, 1}
1607   ,
1608   {0, 0}
1609   , {2, 0}
1610   , {0, 0}
1611   , {1, 0}
1612   , {0, 2}
1613   , {6, 0}
1614   , {0, 0}
1615   , {1, 0}
1616   , {0, 0}
1617   , {2, 1}
1618   ,
1619   {0, 0}
1620   , {1, 0}
1621   , {0, 0}
1622   , {3, 0}
1623   , {0, 1}
1624   , {1, 0}
1625   , {0, 0}
1626   , {2, 0}
1627   , {0, 0}
1628   , {1, 1}
1629   ,
1630   {0, 0}
1631   , {4, 0}
1632   , {0, 0}
1633   , {1, 0}
1634   , {0, 1}
1635   , {2, 0}
1636   , {0, 0}
1637   , {1, 0}
1638   , {0, 0}
1639   , {3, 2}
1640   ,
1641   {0, 0}
1642   , {1, 0}
1643   , {0, 0}
1644   , {2, 0}
1645   , {0, 1}
1646   , {1, 0}
1647   , {0, 0}
1648   , {5, 0}
1649   , {0, 0}
1650   , {1, 1}
1651   ,
1652   {0, 0}
1653   , {2, 0}
1654   , {0, 0}
1655   , {1, 0}
1656   , {0, 1}
1657   , {3, 0}
1658   , {0, 0}
1659   , {1, 0}
1660   , {0, 0}
1661   , {2, 1}
1662   ,
1663   {0, 0}
1664   , {1, 0}
1665   , {0, 0}
1666   , {4, 0}
1667   , {0, 4}
1668   , {1, 0}
1669   , {0, 0}
1670   , {2, 0}
1671   , {0, 0}
1672   , {1, 1}
1673   ,
1674   {0, 0}
1675   , {3, 0}
1676   , {0, 0}
1677   , {1, 0}
1678   , {0, 1}
1679   , {2, 0}
1680   , {0, 0}
1681   , {1, 0}
1682   , {0, 0}
1683   , {7, 1}
1684   ,
1685   {0, 0}
1686   , {1, 0}
1687   , {0, 0}
1688   , {2, 0}
1689   , {0, 1}
1690   , {1, 0}
1691   , {0, 0}
1692   , {3, 0}
1693   , {0, 0}
1694   , {1, 2}
1695   ,
1696   {0, 0}
1697   , {2, 0}
1698   , {0, 0}
1699   , {1, 0}
1700   , {0, 1}
1701   , {4, 0}
1702   , {0, 0}
1703   , {1, 0}
1704   , {0, 0}
1705   , {2, 1}
1706   ,
1707   {0, 0}
1708   , {1, 0}
1709   , {0, 0}
1710   , {3, 0}
1711   , {0, 1}
1712   , {1, 0}
1713   , {0, 0}
1714   , {2, 0}
1715   , {0, 0}
1716   , {1, 1}
1717   ,
1718   {0, 0}
1719   , {5, 0}
1720   , {0, 0}
1721   , {1, 0}
1722   , {0, 2}
1723   , {2, 0}
1724   , {0, 0}
1725   , {1, 0}
1726   , {0, 0}
1727   , {3, 1}
1728   ,
1729   {0, 0}
1730   , {1, 0}
1731   , {0, 0}
1732   , {2, 0}
1733   , {0, 1}
1734   , {1, 0}
1735   , {0, 0}
1736   , {4, 0}
1737   , {0, 0}
1738   , {1, 1}
1739   ,
1740   {0, 0}
1741   , {2, 0}
1742   , {0, 0}
1743   , {1, 0}
1744   , {0, 1}
1745   , {3, 0}
1746   , {0, 0}
1747   , {1, 0}
1748   , {0, 0}
1749   , {2, 2}
1750   ,
1751   {0, 0}
1752   , {1, 0}
1753   , {0, 0}
1754   , {6, 0}
1755   , {0, 1}
1756   , {1, 0}
1757   , {0, 0}
1758   , {2, 0}
1759   , {0, 0}
1760   , {1, 1}
1761   ,
1762   {0, 0}
1763   , {3, 0}
1764   , {0, 0}
1765   , {1, 0}
1766   , {0, 1}
1767   , {2, 0}
1768   , {0, 0}
1769   , {1, 0}
1770   , {0, 0}
1771   , {4, 1}
1772   ,
1773   {0, 0}
1774   , {1, 0}
1775   , {0, 0}
1776   , {2, 0}
1777   , {0, 2}
1778   , {1, 0}
1779   , {0, 0}
1780   , {3, 0}
1781   , {0, 0}
1782   , {1, 1}
1783   ,
1784   {0, 0}
1785   , {2, 0}
1786   , {0, 0}
1787   , {1, 0}
1788   , {0, 1}
1789   , {5, 0}
1790   , {0, 0}
1791   , {1, 0}
1792   , {0, 0}
1793   , {2, 1}
1794   ,
1795   {0, 0}
1796   , {1, 0}
1797   , {0, 0}
1798   , {3, 0}
1799   , {0, 1}
1800   , {1, 0}
1801   , {0, 0}
1802   , {2, 0}
1803   , {0, 0}
1804   , {1, 3}
1805   ,
1806   {0, 0}
1807   , {4, 0}
1808   , {0, 0}
1809   , {1, 0}
1810   , {0, 1}
1811   , {2, 0}
1812   , {0, 0}
1813   , {1, 0}
1814   , {0, 0}
1815   , {3, 1}
1816   ,
1817   {0, 0}
1818   , {1, 0}
1819   , {0, 0}
1820   , {2, 0}
1821   , {0, 1}
1822   , {1, 0}
1823   , {0, 0}
1824   , {8, 0}
1825   , {0, 0}
1826   , {1, 1}
1827   ,
1828   {0, 0}
1829   , {2, 0}
1830   , {0, 0}
1831   , {1, 0}
1832   , {0, 2}
1833   , {3, 0}
1834   , {0, 0}
1835   , {1, 0}
1836   , {0, 0}
1837   , {2, 1}
1838   ,
1839   {0, 0}
1840   , {1, 0}
1841   , {0, 0}
1842   , {4, 0}
1843   , {0, 1}
1844   , {1, 0}
1845   , {0, 0}
1846   , {2, 0}
1847   , {0, 0}
1848   , {1, 1}
1849   ,
1850   {0, 0}
1851   , {3, 0}
1852   , {0, 0}
1853   , {1, 0}
1854   , {0, 1}
1855   , {2, 0}
1856   , {0, 0}
1857   , {1, 0}
1858   , {0, 0}
1859   , {5, 2}
1860   ,
1861   {0, 0}
1862   , {1, 0}
1863   , {0, 0}
1864   , {2, 0}
1865   , {0, 1}
1866   , {1, 0}
1867   , {0, 0}
1868   , {3, 0}
1869   , {0, 0}
1870   , {1, 1}
1871   ,
1872   {0, 0}
1873   , {2, 0}
1874   , {0, 0}
1875   , {1, 0}
1876   , {0, 1}
1877   , {4, 0}
1878   , {0, 0}
1879   , {1, 0}
1880   , {0, 0}
1881   , {2, 1}
1882   ,
1883   {0, 0}
1884   , {1, 0}
1885   , {0, 0}
1886   , {3, 0}
1887   , {0, 2}
1888   , {1, 0}
1889   , {0, 0}
1890   , {2, 0}
1891   , {0, 0}
1892   , {1, 1}
1893   ,
1894   {0, 0}
1895   , {6, 0}
1896   , {0, 0}
1897   , {1, 0}
1898   , {0, 1}
1899   , {2, 0}
1900   , {0, 0}
1901   , {1, 0}
1902   , {0, 0}
1903   , {3, 1}
1904   ,
1905   {0, 0}
1906   , {1, 0}
1907   , {0, 0}
1908   , {2, 0}
1909   , {0, 1}
1910   , {1, 0}
1911   , {0, 0}
1912   , {4, 0}
1913   , {0, 0}
1914   , {1, 2}
1915   ,
1916   {0, 0}
1917   , {2, 0}
1918   , {0, 0}
1919   , {1, 0}
1920   , {0, 1}
1921   , {3, 0}
1922   , {0, 0}
1923   , {1, 0}
1924   , {0, 0}
1925   , {2, 1}
1926   ,
1927   {0, 0}
1928   , {1, 0}
1929   , {0, 0}
1930   , {5, 0}
1931   , {0, 1}
1932   , {1, 0}
1933   , {0, 0}
1934   , {2, 0}
1935   , {0, 0}
1936   , {1, 1}
1937   ,
1938   {0, 0}
1939   , {3, 0}
1940   , {0, 0}
1941   , {1, 0}
1942   , {0, 3}
1943   , {2, 0}
1944   , {0, 0}
1945   , {1, 0}
1946   , {0, 0}
1947   , {4, 1}
1948   ,
1949   {0, 0}
1950   , {1, 0}
1951   , {0, 0}
1952   , {2, 0}
1953   , {0, 1}
1954   , {1, 0}
1955   , {0, 0}
1956   , {3, 0}
1957   , {0, 0}
1958   , {1, 1}
1959   ,
1960   {0, 0}
1961   , {2, 0}
1962   , {0, 0}
1963   , {1, 0}
1964   , {0, 1}
1965   , {7, 0}
1966   , {0, 0}
1967   , {1, 0}
1968   , {0, 0}
1969   , {2, 2}
1970   ,
1971   {0, 0}
1972   , {1, 0}
1973   , {0, 0}
1974   , {3, 0}
1975   , {0, 1}
1976   , {1, 0}
1977   , {0, 0}
1978   , {2, 0}
1979   , {0, 0}
1980   , {1, 1}
1981   ,
1982   {0, 0}
1983   , {4, 0}
1984   , {0, 0}
1985   , {1, 0}
1986   , {0, 1}
1987   , {2, 0}
1988   , {0, 0}
1989   , {1, 0}
1990   , {0, 0}
1991   , {3, 1}
1992   ,
1993   {0, 0}
1994   , {1, 0}
1995   , {0, 0}
1996   , {2, 0}
1997   , {0, 2}
1998   , {1, 0}
1999   , {0, 0}
2000   , {5, 0}
2001   , {0, 0}
2002   , {1, 1}
2003   ,
2004   {0, 0}
2005   , {2, 0}
2006   , {0, 0}
2007   , {1, 0}
2008   , {0, 1}
2009   , {3, 0}
2010   , {0, 0}
2011   , {1, 0}
2012   , {0, 0}
2013   , {2, 1}
2014   ,
2015   {0, 0}
2016   , {1, 0}
2017   , {0, 0}
2018   , {4, 0}
2019   , {0, 1}
2020   , {1, 0}
2021   , {0, 0}
2022   , {2, 0}
2023   , {0, 0}
2024   , {1, 2}
2025   ,
2026   {0, 0}
2027   , {3, 0}
2028   , {0, 0}
2029   , {1, 0}
2030   , {0, 1}
2031   , {2, 0}
2032   , {0, 0}
2033   , {1, 0}
2034   , {0, 0}
2035   , {6, 1}
2036   ,
2037   {0, 0}
2038   , {1, 0}
2039   , {0, 0}
2040   , {2, 0}
2041   , {0, 1}
2042   , {1, 0}
2043   , {0, 0}
2044   , {3, 0}
2045   , {0, 0}
2046   , {1, 1}
2047   ,
2048   {0, 0}
2049   , {2, 0}
2050   , {0, 0}
2051   , {1, 0}
2052   , {0, 2}
2053   , {4, 0}
2054   , {0, 0}
2055   , {1, 0}
2056   , {0, 0}
2057   , {2, 1}
2058   ,
2059   {0, 0}
2060   , {1, 0}
2061   , {0, 0}
2062   , {3, 0}
2063   , {0, 1}
2064   , {1, 0}
2065   , {0, 0}
2066   , {2, 0}
2067   , {0, 0}
2068   , {1, 1}
2069   ,
2070   {0, 0}
2071   , {5, 0}
2072   , {0, 0}
2073   , {1, 0}
2074   , {0, 1}
2075   , {2, 0}
2076   , {0, 0}
2077   , {1, 0}
2078   , {0, 0}
2079   , {3, 3}
2080   ,
2081   {0, 0}
2082   , {1, 0}
2083   , {0, 0}
2084   , {2, 0}
2085   , {0, 1}
2086   , {1, 0}
2087   , {0, 0}
2088   , {4, 0}
2089   , {0, 0}
2090   , {1, 1}
2091   ,
2092   {0, 0}
2093   , {2, 0}
2094   , {0, 0}
2095   , {1, 0}
2096   , {0, 1}
2097   , {3, 0}
2098   , {0, 0}
2099   , {1, 0}
2100   , {0, 0}
2101   , {2, 1}
2102   ,
2103   {0, 0}
2104   , {1, 0}
2105   , {0, 0}
2106   , {10, 0}
2107   ,
2108 };
2109