(root)/
gcc-13.2.0/
libgcc/
config/
libbid/
bid_convert_data.c
       1  /* Copyright (C) 2007-2023 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  };