fixes 32 bit failure

This commit is contained in:
andri lim 2019-09-09 18:09:09 +07:00
parent 3454ff7b9b
commit a2536e31b3
No known key found for this signature in database
GPG Key ID: 31702AE10541E6B9
3 changed files with 420 additions and 420 deletions

View File

@ -22,416 +22,416 @@
const
data_sizes* = [
1073739904'u, 1082130304'u, 1090514816'u, 1098906752'u, 1107293056'u,
1115684224'u, 1124070016'u, 1132461952'u, 1140849536'u, 1149232768'u,
1157627776'u, 1166013824'u, 1174404736'u, 1182786944'u, 1191180416'u,
1199568512'u, 1207958912'u, 1216345216'u, 1224732032'u, 1233124736'u,
1241513344'u, 1249902464'u, 1258290304'u, 1266673792'u, 1275067264'u,
1283453312'u, 1291844992'u, 1300234112'u, 1308619904'u, 1317010048'u,
1325397376'u, 1333787776'u, 1342176128'u, 1350561664'u, 1358954368'u,
1367339392'u, 1375731584'u, 1384118144'u, 1392507008'u, 1400897408'u,
1409284736'u, 1417673344'u, 1426062464'u, 1434451072'u, 1442839168'u,
1451229056'u, 1459615616'u, 1468006016'u, 1476394112'u, 1484782976'u,
1493171584'u, 1501559168'u, 1509948032'u, 1518337664'u, 1526726528'u,
1535114624'u, 1543503488'u, 1551892096'u, 1560278656'u, 1568669056'u,
1577056384'u, 1585446272'u, 1593831296'u, 1602219392'u, 1610610304'u,
1619000192'u, 1627386752'u, 1635773824'u, 1644164224'u, 1652555648'u,
1660943488'u, 1669332608'u, 1677721216'u, 1686109312'u, 1694497664'u,
1702886272'u, 1711274624'u, 1719661184'u, 1728047744'u, 1736434816'u,
1744829056'u, 1753218944'u, 1761606272'u, 1769995904'u, 1778382464'u,
1786772864'u, 1795157888'u, 1803550592'u, 1811937664'u, 1820327552'u,
1828711552'u, 1837102976'u, 1845488768'u, 1853879936'u, 1862269312'u,
1870656896'u, 1879048064'u, 1887431552'u, 1895825024'u, 1904212096'u,
1912601216'u, 1920988544'u, 1929379456'u, 1937765504'u, 1946156672'u,
1954543232'u, 1962932096'u, 1971321728'u, 1979707264'u, 1988093056'u,
1996487552'u, 2004874624'u, 2013262208'u, 2021653888'u, 2030039936'u,
2038430848'u, 2046819968'u, 2055208576'u, 2063596672'u, 2071981952'u,
2080373632'u, 2088762752'u, 2097149056'u, 2105539712'u, 2113928576'u,
2122315136'u, 2130700672'u, 2139092608'u, 2147483264'u, 2155872128'u,
2164257664'u, 2172642176'u, 2181035392'u, 2189426048'u, 2197814912'u,
2206203008'u, 2214587264'u, 2222979712'u, 2231367808'u, 2239758208'u,
2248145024'u, 2256527744'u, 2264922752'u, 2273312128'u, 2281701248'u,
2290086272'u, 2298476672'u, 2306867072'u, 2315251072'u, 2323639168'u,
2332032128'u, 2340420224'u, 2348808064'u, 2357196416'u, 2365580416'u,
2373966976'u, 2382363008'u, 2390748544'u, 2399139968'u, 2407530368'u,
2415918976'u, 2424307328'u, 2432695424'u, 2441084288'u, 2449472384'u,
2457861248'u, 2466247808'u, 2474637184'u, 2483026816'u, 2491414144'u,
2499803776'u, 2508191872'u, 2516582272'u, 2524970368'u, 2533359232'u,
2541743488'u, 2550134144'u, 2558525056'u, 2566913408'u, 2575301504'u,
2583686528'u, 2592073856'u, 2600467328'u, 2608856192'u, 2617240448'u,
2625631616'u, 2634022016'u, 2642407552'u, 2650796416'u, 2659188352'u,
2667574912'u, 2675965312'u, 2684352896'u, 2692738688'u, 2701130624'u,
2709518464'u, 2717907328'u, 2726293376'u, 2734685056'u, 2743073152'u,
2751462016'u, 2759851648'u, 2768232832'u, 2776625536'u, 2785017728'u,
2793401984'u, 2801794432'u, 2810182016'u, 2818571648'u, 2826959488'u,
2835349376'u, 2843734144'u, 2852121472'u, 2860514432'u, 2868900992'u,
2877286784'u, 2885676928'u, 2894069632'u, 2902451584'u, 2910843008'u,
2919234688'u, 2927622784'u, 2936011648'u, 2944400768'u, 2952789376'u,
2961177728'u, 2969565568'u, 2977951616'u, 2986338944'u, 2994731392'u,
3003120256'u, 3011508352'u, 3019895936'u, 3028287104'u, 3036675968'u,
3045063808'u, 3053452928'u, 3061837696'u, 3070228352'u, 3078615424'u,
3087003776'u, 3095394944'u, 3103782272'u, 3112173184'u, 3120562048'u,
3128944768'u, 3137339264'u, 3145725056'u, 3154109312'u, 3162505088'u,
3170893184'u, 3179280256'u, 3187669376'u, 3196056704'u, 3204445568'u,
3212836736'u, 3221224064'u, 3229612928'u, 3238002304'u, 3246391168'u,
3254778496'u, 3263165824'u, 3271556224'u, 3279944576'u, 3288332416'u,
3296719232'u, 3305110912'u, 3313500032'u, 3321887104'u, 3330273152'u,
3338658944'u, 3347053184'u, 3355440512'u, 3363827072'u, 3372220288'u,
3380608384'u, 3388997504'u, 3397384576'u, 3405774208'u, 3414163072'u,
3422551936'u, 3430937984'u, 3439328384'u, 3447714176'u, 3456104576'u,
3464493952'u, 3472883584'u, 3481268864'u, 3489655168'u, 3498048896'u,
3506434432'u, 3514826368'u, 3523213952'u, 3531603584'u, 3539987072'u,
3548380288'u, 3556763264'u, 3565157248'u, 3573545344'u, 3581934464'u,
3590324096'u, 3598712704'u, 3607098752'u, 3615488384'u, 3623877248'u,
3632265856'u, 3640646528'u, 3649043584'u, 3657430144'u, 3665821568'u,
3674207872'u, 3682597504'u, 3690984832'u, 3699367808'u, 3707764352'u,
3716152448'u, 3724541056'u, 3732925568'u, 3741318016'u, 3749706368'u,
3758091136'u, 3766481536'u, 3774872704'u, 3783260032'u, 3791650432'u,
3800036224'u, 3808427648'u, 3816815488'u, 3825204608'u, 3833592704'u,
3841981568'u, 3850370432'u, 3858755968'u, 3867147904'u, 3875536256'u,
3883920512'u, 3892313728'u, 3900702592'u, 3909087872'u, 3917478784'u,
3925868416'u, 3934256512'u, 3942645376'u, 3951032192'u, 3959422336'u,
3967809152'u, 3976200064'u, 3984588416'u, 3992974976'u, 4001363584'u,
4009751168'u, 4018141312'u, 4026530432'u, 4034911616'u, 4043308928'u,
4051695488'u, 4060084352'u, 4068472448'u, 4076862848'u, 4085249408'u,
4093640576'u, 4102028416'u, 4110413696'u, 4118805632'u, 4127194496'u,
4135583104'u, 4143971968'u, 4152360832'u, 4160746112'u, 4169135744'u,
4177525888'u, 4185912704'u, 4194303616'u, 4202691968'u, 4211076736'u,
4219463552'u, 4227855488'u, 4236246656'u, 4244633728'u, 4253022848'u,
4261412224'u, 4269799808'u, 4278184832'u, 4286578048'u, 4294962304'u,
4303349632'u, 4311743104'u, 4320130432'u, 4328521088'u, 4336909184'u,
4345295488'u, 4353687424'u, 4362073472'u, 4370458496'u, 4378852736'u,
4387238528'u, 4395630208'u, 4404019072'u, 4412407424'u, 4420790656'u,
4429182848'u, 4437571456'u, 4445962112'u, 4454344064'u, 4462738048'u,
4471119232'u, 4479516544'u, 4487904128'u, 4496289664'u, 4504682368'u,
4513068416'u, 4521459584'u, 4529846144'u, 4538232704'u, 4546619776'u,
4555010176'u, 4563402112'u, 4571790208'u, 4580174464'u, 4588567936'u,
4596957056'u, 4605344896'u, 4613734016'u, 4622119808'u, 4630511488'u,
4638898816'u, 4647287936'u, 4655675264'u, 4664065664'u, 4672451968'u,
4680842624'u, 4689231488'u, 4697620352'u, 4706007424'u, 4714397056'u,
4722786176'u, 4731173248'u, 4739562368'u, 4747951744'u, 4756340608'u,
4764727936'u, 4773114496'u, 4781504384'u, 4789894784'u, 4798283648'u,
4806667648'u, 4815059584'u, 4823449472'u, 4831835776'u, 4840226176'u,
4848612224'u, 4857003392'u, 4865391488'u, 4873780096'u, 4882169728'u,
4890557312'u, 4898946944'u, 4907333248'u, 4915722368'u, 4924110976'u,
4932499328'u, 4940889728'u, 4949276032'u, 4957666432'u, 4966054784'u,
4974438016'u, 4982831488'u, 4991221376'u, 4999607168'u, 5007998848'u,
5016386432'u, 5024763776'u, 5033164672'u, 5041544576'u, 5049941888'u,
5058329728'u, 5066717056'u, 5075107456'u, 5083494272'u, 5091883904'u,
5100273536'u, 5108662144'u, 5117048192'u, 5125436032'u, 5133827456'u,
5142215296'u, 5150605184'u, 5158993024'u, 5167382144'u, 5175769472'u,
5184157568'u, 5192543872'u, 5200936064'u, 5209324928'u, 5217711232'u,
5226102656'u, 5234490496'u, 5242877312'u, 5251263872'u, 5259654016'u,
5268040832'u, 5276434304'u, 5284819328'u, 5293209728'u, 5301598592'u,
5309986688'u, 5318374784'u, 5326764416'u, 5335151488'u, 5343542144'u,
5351929472'u, 5360319872'u, 5368706944'u, 5377096576'u, 5385484928'u,
5393871232'u, 5402263424'u, 5410650496'u, 5419040384'u, 5427426944'u,
5435816576'u, 5444205952'u, 5452594816'u, 5460981376'u, 5469367936'u,
5477760896'u, 5486148736'u, 5494536832'u, 5502925952'u, 5511315328'u,
5519703424'u, 5528089984'u, 5536481152'u, 5544869504'u, 5553256064'u,
5561645696'u, 5570032768'u, 5578423936'u, 5586811264'u, 5595193216'u,
5603585408'u, 5611972736'u, 5620366208'u, 5628750464'u, 5637143936'u,
5645528192'u, 5653921408'u, 5662310272'u, 5670694784'u, 5679082624'u,
5687474048'u, 5695864448'u, 5704251008'u, 5712641408'u, 5721030272'u,
5729416832'u, 5737806208'u, 5746194304'u, 5754583936'u, 5762969984'u,
5771358592'u, 5779748224'u, 5788137856'u, 5796527488'u, 5804911232'u,
5813300608'u, 5821692544'u, 5830082176'u, 5838468992'u, 5846855552'u,
5855247488'u, 5863636096'u, 5872024448'u, 5880411008'u, 5888799872'u,
5897186432'u, 5905576832'u, 5913966976'u, 5922352768'u, 5930744704'u,
5939132288'u, 5947522432'u, 5955911296'u, 5964299392'u, 5972688256'u,
5981074304'u, 5989465472'u, 5997851008'u, 6006241408'u, 6014627968'u,
6023015552'u, 6031408256'u, 6039796096'u, 6048185216'u, 6056574848'u,
6064963456'u, 6073351808'u, 6081736064'u, 6090128768'u, 6098517632'u,
6106906496'u, 6115289216'u, 6123680896'u, 6132070016'u, 6140459648'u,
6148849024'u, 6157237376'u, 6165624704'u, 6174009728'u, 6182403712'u,
6190792064'u, 6199176064'u, 6207569792'u, 6215952256'u, 6224345216'u,
6232732544'u, 6241124224'u, 6249510272'u, 6257899136'u, 6266287744'u,
6274676864'u, 6283065728'u, 6291454336'u, 6299843456'u, 6308232064'u,
6316620928'u, 6325006208'u, 6333395584'u, 6341784704'u, 6350174848'u,
6358562176'u, 6366951296'u, 6375337856'u, 6383729536'u, 6392119168'u,
6400504192'u, 6408895616'u, 6417283456'u, 6425673344'u, 6434059136'u,
6442444672'u, 6450837376'u, 6459223424'u, 6467613056'u, 6476004224'u,
6484393088'u, 6492781952'u, 6501170048'u, 6509555072'u, 6517947008'u,
6526336384'u, 6534725504'u, 6543112832'u, 6551500672'u, 6559888768'u,
6568278656'u, 6576662912'u, 6585055616'u, 6593443456'u, 6601834112'u,
6610219648'u, 6618610304'u, 6626999168'u, 6635385472'u, 6643777408'u,
6652164224'u, 6660552832'u, 6668941952'u, 6677330048'u, 6685719424'u,
6694107776'u, 6702493568'u, 6710882176'u, 6719274112'u, 6727662976'u,
6736052096'u, 6744437632'u, 6752825984'u, 6761213824'u, 6769604224'u,
6777993856'u, 6786383488'u, 6794770816'u, 6803158144'u, 6811549312'u,
6819937664'u, 6828326528'u, 6836706176'u, 6845101696'u, 6853491328'u,
6861880448'u, 6870269312'u, 6878655104'u, 6887046272'u, 6895433344'u,
6903822208'u, 6912212864'u, 6920596864'u, 6928988288'u, 6937377152'u,
6945764992'u, 6954149248'u, 6962544256'u, 6970928768'u, 6979317376'u,
6987709312'u, 6996093824'u, 7004487296'u, 7012875392'u, 7021258624'u,
7029652352'u, 7038038912'u, 7046427776'u, 7054818944'u, 7063207808'u,
7071595136'u, 7079980928'u, 7088372608'u, 7096759424'u, 7105149824'u,
7113536896'u, 7121928064'u, 7130315392'u, 7138699648'u, 7147092352'u,
7155479168'u, 7163865728'u, 7172249984'u, 7180648064'u, 7189036672'u,
7197424768'u, 7205810816'u, 7214196608'u, 7222589824'u, 7230975104'u,
7239367552'u, 7247755904'u, 7256145536'u, 7264533376'u, 7272921472'u,
7281308032'u, 7289694848'u, 7298088832'u, 7306471808'u, 7314864512'u,
7323253888'u, 7331643008'u, 7340029568'u, 7348419712'u, 7356808832'u,
7365196672'u, 7373585792'u, 7381973888'u, 7390362752'u, 7398750592'u,
7407138944'u, 7415528576'u, 7423915648'u, 7432302208'u, 7440690304'u,
7449080192'u, 7457472128'u, 7465860992'u, 7474249088'u, 7482635648'u,
7491023744'u, 7499412608'u, 7507803008'u, 7516192384'u, 7524579968'u,
7532967296'u, 7541358464'u, 7549745792'u, 7558134656'u, 7566524032'u,
7574912896'u, 7583300992'u, 7591690112'u, 7600075136'u, 7608466816'u,
7616854912'u, 7625244544'u, 7633629824'u, 7642020992'u, 7650410368'u,
7658794112'u, 7667187328'u, 7675574912'u, 7683961984'u, 7692349568'u,
7700739712'u, 7709130368'u, 7717519232'u, 7725905536'u, 7734295424'u,
7742683264'u, 7751069056'u, 7759457408'u, 7767849088'u, 7776238208'u,
7784626816'u, 7793014912'u, 7801405312'u, 7809792128'u, 7818179968'u,
7826571136'u, 7834957184'u, 7843347328'u, 7851732352'u, 7860124544'u,
7868512384'u, 7876902016'u, 7885287808'u, 7893679744'u, 7902067072'u,
7910455936'u, 7918844288'u, 7927230848'u, 7935622784'u, 7944009344'u,
7952400256'u, 7960786048'u, 7969176704'u, 7977565312'u, 7985953408'u,
7994339968'u, 8002730368'u, 8011119488'u, 8019508096'u, 8027896192'u,
8036285056'u, 8044674688'u, 8053062272'u, 8061448832'u, 8069838464'u,
8078227328'u, 8086616704'u, 8095006592'u, 8103393664'u, 8111783552'u,
8120171392'u, 8128560256'u, 8136949376'u, 8145336704'u, 8153726848'u,
8162114944'u, 8170503296'u, 8178891904'u, 8187280768'u, 8195669632'u,
8204058496'u, 8212444544'u, 8220834176'u, 8229222272'u, 8237612672'u,
8246000768'u, 8254389376'u, 8262775168'u, 8271167104'u, 8279553664'u,
8287944064'u, 8296333184'u, 8304715136'u, 8313108352'u, 8321497984'u,
8329885568'u, 8338274432'u, 8346663296'u, 8355052928'u, 8363441536'u,
8371828352'u, 8380217984'u, 8388606592'u, 8396996224'u, 8405384576'u,
8413772672'u, 8422161536'u, 8430549376'u, 8438939008'u, 8447326592'u,
8455715456'u, 8464104832'u, 8472492928'u, 8480882048'u, 8489270656'u,
8497659776'u, 8506045312'u, 8514434944'u, 8522823808'u, 8531208832'u,
8539602304'u, 8547990656'u, 8556378752'u, 8564768384'u, 8573154176'u,
8581542784'u, 8589933952'u, 8598322816'u, 8606705024'u, 8615099264'u,
8623487872'u, 8631876992'u, 8640264064'u, 8648653952'u, 8657040256'u,
8665430656'u, 8673820544'u, 8682209152'u, 8690592128'u, 8698977152'u,
8707374464'u, 8715763328'u, 8724151424'u, 8732540032'u, 8740928384'u,
8749315712'u, 8757704576'u, 8766089344'u, 8774480768'u, 8782871936'u,
8791260032'u, 8799645824'u, 8808034432'u, 8816426368'u, 8824812928'u,
8833199488'u, 8841591424'u, 8849976448'u, 8858366336'u, 8866757248'u,
8875147136'u, 8883532928'u, 8891923328'u, 8900306816'u, 8908700288'u,
8917088384'u, 8925478784'u, 8933867392'u, 8942250368'u, 8950644608'u,
8959032704'u, 8967420544'u, 8975809664'u, 8984197504'u, 8992584064'u,
9000976256'u, 9009362048'u, 9017752448'u, 9026141312'u, 9034530688'u,
9042917504'u, 9051307904'u, 9059694208'u, 9068084864'u, 9076471424'u,
9084861824'u, 9093250688'u, 9101638528'u, 9110027648'u, 9118416512'u,
9126803584'u, 9135188096'u, 9143581312'u, 9151969664'u, 9160356224'u,
9168747136'u, 9177134464'u, 9185525632'u, 9193910144'u, 9202302848'u,
9210690688'u, 9219079552'u, 9227465344'u, 9235854464'u, 9244244864'u,
9252633472'u, 9261021824'u, 9269411456'u, 9277799296'u, 9286188928'u,
9294574208'u, 9302965888'u, 9311351936'u, 9319740032'u, 9328131968'u,
9336516736'u, 9344907392'u, 9353296768'u, 9361685888'u, 9370074752'u,
9378463616'u, 9386849408'u, 9395239808'u, 9403629184'u, 9412016512'u,
9420405376'u, 9428795008'u, 9437181568'u, 9445570688'u, 9453960832'u,
9462346624'u, 9470738048'u, 9479121536'u, 9487515008'u, 9495903616'u,
9504289664'u, 9512678528'u, 9521067904'u, 9529456256'u, 9537843584'u,
9546233728'u, 9554621312'u, 9563011456'u, 9571398784'u, 9579788672'u,
9588178304'u, 9596567168'u, 9604954496'u, 9613343104'u, 9621732992'u,
9630121856'u, 9638508416'u, 9646898816'u, 9655283584'u, 9663675776'u,
9672061312'u, 9680449664'u, 9688840064'u, 9697230464'u, 9705617536'u,
9714003584'u, 9722393984'u, 9730772608'u, 9739172224'u, 9747561088'u,
9755945344'u, 9764338816'u, 9772726144'u, 9781116544'u, 9789503872'u,
9797892992'u, 9806282624'u, 9814670464'u, 9823056512'u, 9831439232'u,
9839833984'u, 9848224384'u, 9856613504'u, 9865000576'u, 9873391232'u,
9881772416'u, 9890162816'u, 9898556288'u, 9906940544'u, 9915333248'u,
9923721088'u, 9932108672'u, 9940496512'u, 9948888448'u, 9957276544'u,
9965666176'u, 9974048384'u, 9982441088'u, 9990830464'u, 9999219584'u,
10007602816'u, 10015996544'u, 10024385152'u, 10032774016'u, 10041163648'u,
10049548928'u, 10057940096'u, 10066329472'u, 10074717824'u, 10083105152'u,
10091495296'u, 10099878784'u, 10108272256'u, 10116660608'u, 10125049216'u,
10133437312'u, 10141825664'u, 10150213504'u, 10158601088'u, 10166991232'u,
10175378816'u, 10183766144'u, 10192157312'u, 10200545408'u, 10208935552'u,
10217322112'u, 10225712768'u, 10234099328'u, 10242489472'u, 10250876032'u,
10259264896'u, 10267656064'u, 10276042624'u, 10284429184'u, 10292820352'u,
10301209472'u, 10309598848'u, 10317987712'u, 10326375296'u, 10334763392'u,
10343153536'u, 10351541632'u, 10359930752'u, 10368318592'u, 10376707456'u,
10385096576'u, 10393484672'u, 10401867136'u, 10410262144'u, 10418647424'u,
10427039104'u, 10435425664'u, 10443810176'u, 10452203648'u, 10460589952'u,
10468982144'u, 10477369472'u, 10485759104'u, 10494147712'u, 10502533504'u,
10510923392'u, 10519313536'u, 10527702656'u, 10536091264'u, 10544478592'u,
10552867712'u, 10561255808'u, 10569642368'u, 10578032768'u, 10586423168'u,
10594805632'u, 10603200128'u, 10611588992'u, 10619976064'u, 10628361344'u,
10636754048'u, 10645143424'u, 10653531776'u, 10661920384'u, 10670307968'u,
10678696832'u, 10687086464'u, 10695475072'u, 10703863168'u, 10712246144'u,
10720639616'u, 10729026688'u, 10737414784'u, 10745806208'u, 10754190976'u,
10762581376'u, 10770971264'u, 10779356288'u, 10787747456'u, 10796135552'u,
10804525184'u, 10812915584'u, 10821301888'u, 10829692288'u, 10838078336'u,
10846469248'u, 10854858368'u, 10863247232'u, 10871631488'u, 10880023424'u,
10888412032'u, 10896799616'u, 10905188992'u, 10913574016'u, 10921964672'u,
10930352768'u, 10938742912'u, 10947132544'u, 10955518592'u, 10963909504'u,
10972298368'u, 10980687488'u, 10989074816'u, 10997462912'u, 11005851776'u,
11014241152'u, 11022627712'u, 11031017344'u, 11039403904'u, 11047793024'u,
11056184704'u, 11064570752'u, 11072960896'u, 11081343872'u, 11089737856'u,
11098128256'u, 11106514816'u, 11114904448'u, 11123293568'u, 11131680128'u,
11140065152'u, 11148458368'u, 11156845696'u, 11165236864'u, 11173624192'u,
11182013824'u, 11190402688'u, 11198790784'u, 11207179136'u, 11215568768'u,
11223957376'u, 11232345728'u, 11240734592'u, 11249122688'u, 11257511296'u,
11265899648'u, 11274285952'u, 11282675584'u, 11291065472'u, 11299452544'u,
11307842432'u, 11316231296'u, 11324616832'u, 11333009024'u, 11341395584'u,
11349782656'u, 11358172288'u, 11366560384'u, 11374950016'u, 11383339648'u,
11391721856'u, 11400117376'u, 11408504192'u, 11416893568'u, 11425283456'u,
11433671552'u, 11442061184'u, 11450444672'u, 11458837888'u, 11467226752'u,
11475611776'u, 11484003968'u, 11492392064'u, 11500780672'u, 11509169024'u,
11517550976'u, 11525944448'u, 11534335616'u, 11542724224'u, 11551111808'u,
11559500672'u, 11567890304'u, 11576277376'u, 11584667008'u, 11593056128'u,
11601443456'u, 11609830016'u, 11618221952'u, 11626607488'u, 11634995072'u,
11643387776'u, 11651775104'u, 11660161664'u, 11668552576'u, 11676940928'u,
11685330304'u, 11693718656'u, 11702106496'u, 11710496128'u, 11718882688'u,
11727273088'u, 11735660416'u, 11744050048'u, 11752437376'u, 11760824704'u,
11769216128'u, 11777604736'u, 11785991296'u, 11794381952'u, 11802770048'u,
11811157888'u, 11819548544'u, 11827932544'u, 11836324736'u, 11844713344'u,
11853100928'u, 11861486464'u, 11869879936'u, 11878268032'u, 11886656896'u,
11895044992'u, 11903433088'u, 11911822976'u, 11920210816'u, 11928600448'u,
11936987264'u, 11945375872'u, 11953761152'u, 11962151296'u, 11970543488'u,
11978928512'u, 11987320448'u, 11995708288'u, 12004095104'u, 12012486272'u,
12020875136'u, 12029255552'u, 12037652096'u, 12046039168'u, 12054429568'u,
12062813824'u, 12071206528'u, 12079594624'u, 12087983744'u, 12096371072'u,
12104759936'u, 12113147264'u, 12121534592'u, 12129924992'u, 12138314624'u,
12146703232'u, 12155091584'u, 12163481216'u, 12171864704'u, 12180255872'u,
12188643968'u, 12197034112'u, 12205424512'u, 12213811328'u, 12222199424'u,
12230590336'u, 12238977664'u, 12247365248'u, 12255755392'u, 12264143488'u,
12272531584'u, 12280920448'u, 12289309568'u, 12297694592'u, 12306086528'u,
12314475392'u, 12322865024'u, 12331253632'u, 12339640448'u, 12348029312'u,
12356418944'u, 12364805248'u, 12373196672'u, 12381580928'u, 12389969024'u,
12398357632'u, 12406750592'u, 12415138432'u, 12423527552'u, 12431916416'u,
12440304512'u, 12448692352'u, 12457081216'u, 12465467776'u, 12473859968'u,
12482245504'u, 12490636672'u, 12499025536'u, 12507411584'u, 12515801728'u,
12524190592'u, 12532577152'u, 12540966272'u, 12549354368'u, 12557743232'u,
12566129536'u, 12574523264'u, 12582911872'u, 12591299456'u, 12599688064'u,
12608074624'u, 12616463488'u, 12624845696'u, 12633239936'u, 12641631616'u,
12650019968'u, 12658407296'u, 12666795136'u, 12675183232'u, 12683574656'u,
12691960192'u, 12700350592'u, 12708740224'u, 12717128576'u, 12725515904'u,
12733906816'u, 12742295168'u, 12750680192'u, 12759071872'u, 12767460736'u,
12775848832'u, 12784236928'u, 12792626816'u, 12801014656'u, 12809404288'u,
12817789312'u, 12826181504'u, 12834568832'u, 12842954624'u, 12851345792'u,
12859732352'u, 12868122496'u, 12876512128'u, 12884901248'u, 12893289088'u,
12901672832'u, 12910067584'u, 12918455168'u, 12926842496'u, 12935232896'u,
12943620736'u, 12952009856'u, 12960396928'u, 12968786816'u, 12977176192'u,
12985563776'u, 12993951104'u, 13002341504'u, 13010730368'u, 13019115392'u,
13027506304'u, 13035895168'u, 13044272512'u, 13052673152'u, 13061062528'u,
13069446272'u, 13077838976'u, 13086227072'u, 13094613632'u, 13103000192'u,
13111393664'u, 13119782528'u, 13128157568'u, 13136559232'u, 13144945024'u,
13153329536'u, 13161724288'u, 13170111872'u, 13178502784'u, 13186884736'u,
13195279744'u, 13203667072'u, 13212057472'u, 13220445824'u, 13228832128'u,
13237221248'u, 13245610624'u, 13254000512'u, 13262388352'u, 13270777472'u,
13279166336'u, 13287553408'u, 13295943296'u, 13304331904'u, 13312719488'u,
13321108096'u, 13329494656'u, 13337885824'u, 13346274944'u, 13354663808'u,
13363051136'u, 13371439232'u, 13379825024'u, 13388210816'u, 13396605056'u,
13404995456'u, 13413380224'u, 13421771392'u, 13430159744'u, 13438546048'u,
13446937216'u, 13455326848'u, 13463708288'u, 13472103808'u, 13480492672'u,
13488875648'u, 13497269888'u, 13505657728'u, 13514045312'u, 13522435712'u,
13530824576'u, 13539210112'u, 13547599232'u, 13555989376'u, 13564379008'u,
13572766336'u, 13581154432'u, 13589544832'u, 13597932928'u, 13606320512'u,
13614710656'u, 13623097472'u, 13631477632'u, 13639874944'u, 13648264064'u,
13656652928'u, 13665041792'u, 13673430656'u, 13681818496'u, 13690207616'u,
13698595712'u, 13706982272'u, 13715373184'u, 13723762048'u, 13732150144'u,
13740536704'u, 13748926592'u, 13757316224'u, 13765700992'u, 13774090112'u,
13782477952'u, 13790869376'u, 13799259008'u, 13807647872'u, 13816036736'u,
13824425344'u, 13832814208'u, 13841202304'u, 13849591424'u, 13857978752'u,
13866368896'u, 13874754688'u, 13883145344'u, 13891533184'u, 13899919232'u,
13908311168'u, 13916692096'u, 13925085056'u, 13933473152'u, 13941866368'u,
13950253696'u, 13958643584'u, 13967032192'u, 13975417216'u, 13983807616'u,
13992197504'u, 14000582272'u, 14008973696'u, 14017363072'u, 14025752192'u,
14034137984'u, 14042528384'u, 14050918016'u, 14059301504'u, 14067691648'u,
14076083584'u, 14084470144'u, 14092852352'u, 14101249664'u, 14109635968'u,
14118024832'u, 14126407552'u, 14134804352'u, 14143188608'u, 14151577984'u,
14159968384'u, 14168357248'u, 14176741504'u, 14185127296'u, 14193521024'u,
14201911424'u, 14210301824'u, 14218685056'u, 14227067264'u, 14235467392'u,
14243855488'u, 14252243072'u, 14260630144'u, 14269021568'u, 14277409408'u,
14285799296'u, 14294187904'u, 14302571392'u, 14310961792'u, 14319353728'u,
14327738752'u, 14336130944'u, 14344518784'u, 14352906368'u, 14361296512'u,
14369685376'u, 14378071424'u, 14386462592'u, 14394848128'u, 14403230848'u,
14411627392'u, 14420013952'u, 14428402304'u, 14436793472'u, 14445181568'u,
14453569664'u, 14461959808'u, 14470347904'u, 14478737024'u, 14487122816'u,
14495511424'u, 14503901824'u, 14512291712'u, 14520677504'u, 14529064832'u,
14537456768'u, 14545845632'u, 14554234496'u, 14562618496'u, 14571011456'u,
14579398784'u, 14587789184'u, 14596172672'u, 14604564608'u, 14612953984'u,
14621341312'u, 14629724288'u, 14638120832'u, 14646503296'u, 14654897536'u,
14663284864'u, 14671675264'u, 14680061056'u, 14688447616'u, 14696835968'u,
14705228416'u, 14713616768'u, 14722003328'u, 14730392192'u, 14738784128'u,
14747172736'u, 14755561088'u, 14763947648'u, 14772336512'u, 14780725376'u,
14789110144'u, 14797499776'u, 14805892736'u, 14814276992'u, 14822670208'u,
14831056256'u, 14839444352'u, 14847836032'u, 14856222848'u, 14864612992'u,
14872997504'u, 14881388672'u, 14889775744'u, 14898165376'u, 14906553472'u,
14914944896'u, 14923329664'u, 14931721856'u, 14940109696'u, 14948497024'u,
14956887424'u, 14965276544'u, 14973663616'u, 14982053248'u, 14990439808'u,
14998830976'u, 15007216768'u, 15015605888'u, 15023995264'u, 15032385152'u,
15040768384'u, 15049154944'u, 15057549184'u, 15065939072'u, 15074328448'u,
15082715008'u, 15091104128'u, 15099493504'u, 15107879296'u, 15116269184'u,
15124659584'u, 15133042304'u, 15141431936'u, 15149824384'u, 15158214272'u,
15166602368'u, 15174991232'u, 15183378304'u, 15191760512'u, 15200154496'u,
15208542592'u, 15216931712'u, 15225323392'u, 15233708416'u, 15242098048'u,
15250489216'u, 15258875264'u, 15267265408'u, 15275654528'u, 15284043136'u,
15292431488'u, 15300819584'u, 15309208192'u, 15317596544'u, 15325986176'u,
15334374784'u, 15342763648'u, 15351151744'u, 15359540608'u, 15367929728'u,
15376318336'u, 15384706432'u, 15393092992'u, 15401481856'u, 15409869952'u,
15418258816'u, 15426649984'u, 15435037568'u, 15443425664'u, 15451815296'u,
15460203392'u, 15468589184'u, 15476979328'u, 15485369216'u, 15493755776'u,
15502146944'u, 15510534272'u, 15518924416'u, 15527311232'u, 15535699072'u,
15544089472'u, 15552478336'u, 15560866688'u, 15569254528'u, 15577642624'u,
15586031488'u, 15594419072'u, 15602809472'u, 15611199104'u, 15619586432'u,
15627975296'u, 15636364928'u, 15644753792'u, 15653141888'u, 15661529216'u,
15669918848'u, 15678305152'u, 15686696576'u, 15695083136'u, 15703474048'u,
15711861632'u, 15720251264'u, 15728636288'u, 15737027456'u, 15745417088'u,
15753804928'u, 15762194048'u, 15770582656'u, 15778971008'u, 15787358336'u,
15795747712'u, 15804132224'u, 15812523392'u, 15820909696'u, 15829300096'u,
15837691264'u, 15846071936'u, 15854466944'u, 15862855808'u, 15871244672'u,
15879634816'u, 15888020608'u, 15896409728'u, 15904799104'u, 15913185152'u,
15921577088'u, 15929966464'u, 15938354816'u, 15946743424'u, 15955129472'u,
15963519872'u, 15971907968'u, 15980296064'u, 15988684928'u, 15997073024'u,
16005460864'u, 16013851264'u, 16022241152'u, 16030629248'u, 16039012736'u,
16047406976'u, 16055794816'u, 16064181376'u, 16072571264'u, 16080957824'u,
16089346688'u, 16097737856'u, 16106125184'u, 16114514816'u, 16122904192'u,
16131292544'u, 16139678848'u, 16148066944'u, 16156453504'u, 16164839552'u,
16173236096'u, 16181623424'u, 16190012032'u, 16198401152'u, 16206790528'u,
16215177344'u, 16223567744'u, 16231956352'u, 16240344704'u, 16248731008'u,
16257117824'u, 16265504384'u, 16273898624'u, 16282281856'u, 16290668672'u,
16299064192'u, 16307449216'u, 16315842176'u, 16324230016'u, 16332613504'u,
16341006464'u, 16349394304'u, 16357783168'u, 16366172288'u, 16374561664'u,
16382951296'u, 16391337856'u, 16399726208'u, 16408116352'u, 16416505472'u,
16424892032'u, 16433282176'u, 16441668224'u, 16450058624'u, 16458448768'u,
16466836864'u, 16475224448'u, 16483613056'u, 16492001408'u, 16500391808'u,
16508779648'u, 16517166976'u, 16525555328'u, 16533944192'u, 16542330752'u,
16550719616'u, 16559110528'u, 16567497088'u, 16575888512'u, 16584274816'u,
16592665472'u, 16601051008'u, 16609442944'u, 16617832064'u, 16626218624'u,
16634607488'u, 16642996096'u, 16651385728'u, 16659773824'u, 16668163712'u,
16676552576'u, 16684938112'u, 16693328768'u, 16701718144'u, 16710095488'u,
16718492288'u, 16726883968'u, 16735272832'u, 16743661184'u, 16752049792'u,
16760436608'u, 16768827008'u, 16777214336'u, 16785599104'u, 16793992832'u,
16802381696'u, 16810768768'u, 16819151744'u, 16827542656'u, 16835934848'u,
16844323712'u, 16852711552'u, 16861101952'u, 16869489536'u, 16877876864'u,
16886265728'u, 16894653056'u, 16903044736'u, 16911431296'u, 16919821696'u,
16928207488'u, 16936592768'u, 16944987776'u, 16953375616'u, 16961763968'u,
16970152832'u, 16978540928'u, 16986929536'u, 16995319168'u, 17003704448'u,
17012096896'u, 17020481152'u, 17028870784'u, 17037262208'u, 17045649536'u,
17054039936'u, 17062426496'u, 17070814336'u, 17079205504'u, 17087592064'u,
17095978112'u, 17104369024'u, 17112759424'u, 17121147776'u, 17129536384'u,
17137926016'u, 17146314368'u, 17154700928'u, 17163089792'u, 17171480192'u,
17179864192'u, 17188256896'u, 17196644992'u, 17205033856'u, 17213423488'u,
17221811072'u, 17230198912'u, 17238588032'u, 17246976896'u, 17255360384'u,
17263754624'u, 17272143232'u, 17280530048'u, 17288918912'u, 17297309312'u,
17305696384'u, 17314085504'u, 17322475136'u, 17330863744'u, 17339252096'u,
17347640192'u, 17356026496'u, 17364413824'u, 17372796544'u, 17381190016'u,
17389583488'u, 17397972608'u, 17406360704'u, 17414748544'u, 17423135872'u,
17431527296'u, 17439915904'u, 17448303232'u, 17456691584'u, 17465081728'u,
17473468288'u, 17481857408'u, 17490247552'u, 17498635904'u, 17507022464'u,
17515409024'u, 17523801728'u, 17532189824'u, 17540577664'u, 17548966016'u,
17557353344'u, 17565741184'u, 17574131584'u, 17582519168'u, 17590907008'u,
17599296128'u, 17607687808'u, 17616076672'u, 17624455808'u, 17632852352'u,
17641238656'u, 17649630848'u, 17658018944'u, 17666403968'u, 17674794112'u,
17683178368'u, 17691573376'u, 17699962496'u, 17708350592'u, 17716739968'u,
17725126528'u, 17733517184'u, 17741898112'u, 17750293888'u, 17758673024'u,
17767070336'u, 17775458432'u, 17783848832'u, 17792236928'u, 17800625536'u,
17809012352'u, 17817402752'u, 17825785984'u, 17834178944'u, 17842563968'u,
17850955648'u, 17859344512'u, 17867732864'u, 17876119424'u, 17884511872'u,
17892900224'u, 17901287296'u, 17909677696'u, 17918058112'u, 17926451072'u,
17934843776'u, 17943230848'u, 17951609216'u, 17960008576'u, 17968397696'u,
17976784256'u, 17985175424'u, 17993564032'u, 18001952128'u, 18010339712'u,
18018728576'u, 18027116672'u, 18035503232'u, 18043894144'u, 18052283264'u,
18060672128'u, 18069056384'u, 18077449856'u, 18085837184'u, 18094225792'u,
18102613376'u, 18111004544'u, 18119388544'u, 18127781248'u, 18136170368'u,
18144558976'u, 18152947328'u, 18161336192'u, 18169724288'u, 18178108544'u,
18186498944'u, 18194886784'u, 18203275648'u, 18211666048'u, 18220048768'u,
18228444544'u, 18236833408'u, 18245220736'u]
1073739904'u64, 1082130304'u64, 1090514816'u64, 1098906752'u64, 1107293056'u64,
1115684224'u64, 1124070016'u64, 1132461952'u64, 1140849536'u64, 1149232768'u64,
1157627776'u64, 1166013824'u64, 1174404736'u64, 1182786944'u64, 1191180416'u64,
1199568512'u64, 1207958912'u64, 1216345216'u64, 1224732032'u64, 1233124736'u64,
1241513344'u64, 1249902464'u64, 1258290304'u64, 1266673792'u64, 1275067264'u64,
1283453312'u64, 1291844992'u64, 1300234112'u64, 1308619904'u64, 1317010048'u64,
1325397376'u64, 1333787776'u64, 1342176128'u64, 1350561664'u64, 1358954368'u64,
1367339392'u64, 1375731584'u64, 1384118144'u64, 1392507008'u64, 1400897408'u64,
1409284736'u64, 1417673344'u64, 1426062464'u64, 1434451072'u64, 1442839168'u64,
1451229056'u64, 1459615616'u64, 1468006016'u64, 1476394112'u64, 1484782976'u64,
1493171584'u64, 1501559168'u64, 1509948032'u64, 1518337664'u64, 1526726528'u64,
1535114624'u64, 1543503488'u64, 1551892096'u64, 1560278656'u64, 1568669056'u64,
1577056384'u64, 1585446272'u64, 1593831296'u64, 1602219392'u64, 1610610304'u64,
1619000192'u64, 1627386752'u64, 1635773824'u64, 1644164224'u64, 1652555648'u64,
1660943488'u64, 1669332608'u64, 1677721216'u64, 1686109312'u64, 1694497664'u64,
1702886272'u64, 1711274624'u64, 1719661184'u64, 1728047744'u64, 1736434816'u64,
1744829056'u64, 1753218944'u64, 1761606272'u64, 1769995904'u64, 1778382464'u64,
1786772864'u64, 1795157888'u64, 1803550592'u64, 1811937664'u64, 1820327552'u64,
1828711552'u64, 1837102976'u64, 1845488768'u64, 1853879936'u64, 1862269312'u64,
1870656896'u64, 1879048064'u64, 1887431552'u64, 1895825024'u64, 1904212096'u64,
1912601216'u64, 1920988544'u64, 1929379456'u64, 1937765504'u64, 1946156672'u64,
1954543232'u64, 1962932096'u64, 1971321728'u64, 1979707264'u64, 1988093056'u64,
1996487552'u64, 2004874624'u64, 2013262208'u64, 2021653888'u64, 2030039936'u64,
2038430848'u64, 2046819968'u64, 2055208576'u64, 2063596672'u64, 2071981952'u64,
2080373632'u64, 2088762752'u64, 2097149056'u64, 2105539712'u64, 2113928576'u64,
2122315136'u64, 2130700672'u64, 2139092608'u64, 2147483264'u64, 2155872128'u64,
2164257664'u64, 2172642176'u64, 2181035392'u64, 2189426048'u64, 2197814912'u64,
2206203008'u64, 2214587264'u64, 2222979712'u64, 2231367808'u64, 2239758208'u64,
2248145024'u64, 2256527744'u64, 2264922752'u64, 2273312128'u64, 2281701248'u64,
2290086272'u64, 2298476672'u64, 2306867072'u64, 2315251072'u64, 2323639168'u64,
2332032128'u64, 2340420224'u64, 2348808064'u64, 2357196416'u64, 2365580416'u64,
2373966976'u64, 2382363008'u64, 2390748544'u64, 2399139968'u64, 2407530368'u64,
2415918976'u64, 2424307328'u64, 2432695424'u64, 2441084288'u64, 2449472384'u64,
2457861248'u64, 2466247808'u64, 2474637184'u64, 2483026816'u64, 2491414144'u64,
2499803776'u64, 2508191872'u64, 2516582272'u64, 2524970368'u64, 2533359232'u64,
2541743488'u64, 2550134144'u64, 2558525056'u64, 2566913408'u64, 2575301504'u64,
2583686528'u64, 2592073856'u64, 2600467328'u64, 2608856192'u64, 2617240448'u64,
2625631616'u64, 2634022016'u64, 2642407552'u64, 2650796416'u64, 2659188352'u64,
2667574912'u64, 2675965312'u64, 2684352896'u64, 2692738688'u64, 2701130624'u64,
2709518464'u64, 2717907328'u64, 2726293376'u64, 2734685056'u64, 2743073152'u64,
2751462016'u64, 2759851648'u64, 2768232832'u64, 2776625536'u64, 2785017728'u64,
2793401984'u64, 2801794432'u64, 2810182016'u64, 2818571648'u64, 2826959488'u64,
2835349376'u64, 2843734144'u64, 2852121472'u64, 2860514432'u64, 2868900992'u64,
2877286784'u64, 2885676928'u64, 2894069632'u64, 2902451584'u64, 2910843008'u64,
2919234688'u64, 2927622784'u64, 2936011648'u64, 2944400768'u64, 2952789376'u64,
2961177728'u64, 2969565568'u64, 2977951616'u64, 2986338944'u64, 2994731392'u64,
3003120256'u64, 3011508352'u64, 3019895936'u64, 3028287104'u64, 3036675968'u64,
3045063808'u64, 3053452928'u64, 3061837696'u64, 3070228352'u64, 3078615424'u64,
3087003776'u64, 3095394944'u64, 3103782272'u64, 3112173184'u64, 3120562048'u64,
3128944768'u64, 3137339264'u64, 3145725056'u64, 3154109312'u64, 3162505088'u64,
3170893184'u64, 3179280256'u64, 3187669376'u64, 3196056704'u64, 3204445568'u64,
3212836736'u64, 3221224064'u64, 3229612928'u64, 3238002304'u64, 3246391168'u64,
3254778496'u64, 3263165824'u64, 3271556224'u64, 3279944576'u64, 3288332416'u64,
3296719232'u64, 3305110912'u64, 3313500032'u64, 3321887104'u64, 3330273152'u64,
3338658944'u64, 3347053184'u64, 3355440512'u64, 3363827072'u64, 3372220288'u64,
3380608384'u64, 3388997504'u64, 3397384576'u64, 3405774208'u64, 3414163072'u64,
3422551936'u64, 3430937984'u64, 3439328384'u64, 3447714176'u64, 3456104576'u64,
3464493952'u64, 3472883584'u64, 3481268864'u64, 3489655168'u64, 3498048896'u64,
3506434432'u64, 3514826368'u64, 3523213952'u64, 3531603584'u64, 3539987072'u64,
3548380288'u64, 3556763264'u64, 3565157248'u64, 3573545344'u64, 3581934464'u64,
3590324096'u64, 3598712704'u64, 3607098752'u64, 3615488384'u64, 3623877248'u64,
3632265856'u64, 3640646528'u64, 3649043584'u64, 3657430144'u64, 3665821568'u64,
3674207872'u64, 3682597504'u64, 3690984832'u64, 3699367808'u64, 3707764352'u64,
3716152448'u64, 3724541056'u64, 3732925568'u64, 3741318016'u64, 3749706368'u64,
3758091136'u64, 3766481536'u64, 3774872704'u64, 3783260032'u64, 3791650432'u64,
3800036224'u64, 3808427648'u64, 3816815488'u64, 3825204608'u64, 3833592704'u64,
3841981568'u64, 3850370432'u64, 3858755968'u64, 3867147904'u64, 3875536256'u64,
3883920512'u64, 3892313728'u64, 3900702592'u64, 3909087872'u64, 3917478784'u64,
3925868416'u64, 3934256512'u64, 3942645376'u64, 3951032192'u64, 3959422336'u64,
3967809152'u64, 3976200064'u64, 3984588416'u64, 3992974976'u64, 4001363584'u64,
4009751168'u64, 4018141312'u64, 4026530432'u64, 4034911616'u64, 4043308928'u64,
4051695488'u64, 4060084352'u64, 4068472448'u64, 4076862848'u64, 4085249408'u64,
4093640576'u64, 4102028416'u64, 4110413696'u64, 4118805632'u64, 4127194496'u64,
4135583104'u64, 4143971968'u64, 4152360832'u64, 4160746112'u64, 4169135744'u64,
4177525888'u64, 4185912704'u64, 4194303616'u64, 4202691968'u64, 4211076736'u64,
4219463552'u64, 4227855488'u64, 4236246656'u64, 4244633728'u64, 4253022848'u64,
4261412224'u64, 4269799808'u64, 4278184832'u64, 4286578048'u64, 4294962304'u64,
4303349632'u64, 4311743104'u64, 4320130432'u64, 4328521088'u64, 4336909184'u64,
4345295488'u64, 4353687424'u64, 4362073472'u64, 4370458496'u64, 4378852736'u64,
4387238528'u64, 4395630208'u64, 4404019072'u64, 4412407424'u64, 4420790656'u64,
4429182848'u64, 4437571456'u64, 4445962112'u64, 4454344064'u64, 4462738048'u64,
4471119232'u64, 4479516544'u64, 4487904128'u64, 4496289664'u64, 4504682368'u64,
4513068416'u64, 4521459584'u64, 4529846144'u64, 4538232704'u64, 4546619776'u64,
4555010176'u64, 4563402112'u64, 4571790208'u64, 4580174464'u64, 4588567936'u64,
4596957056'u64, 4605344896'u64, 4613734016'u64, 4622119808'u64, 4630511488'u64,
4638898816'u64, 4647287936'u64, 4655675264'u64, 4664065664'u64, 4672451968'u64,
4680842624'u64, 4689231488'u64, 4697620352'u64, 4706007424'u64, 4714397056'u64,
4722786176'u64, 4731173248'u64, 4739562368'u64, 4747951744'u64, 4756340608'u64,
4764727936'u64, 4773114496'u64, 4781504384'u64, 4789894784'u64, 4798283648'u64,
4806667648'u64, 4815059584'u64, 4823449472'u64, 4831835776'u64, 4840226176'u64,
4848612224'u64, 4857003392'u64, 4865391488'u64, 4873780096'u64, 4882169728'u64,
4890557312'u64, 4898946944'u64, 4907333248'u64, 4915722368'u64, 4924110976'u64,
4932499328'u64, 4940889728'u64, 4949276032'u64, 4957666432'u64, 4966054784'u64,
4974438016'u64, 4982831488'u64, 4991221376'u64, 4999607168'u64, 5007998848'u64,
5016386432'u64, 5024763776'u64, 5033164672'u64, 5041544576'u64, 5049941888'u64,
5058329728'u64, 5066717056'u64, 5075107456'u64, 5083494272'u64, 5091883904'u64,
5100273536'u64, 5108662144'u64, 5117048192'u64, 5125436032'u64, 5133827456'u64,
5142215296'u64, 5150605184'u64, 5158993024'u64, 5167382144'u64, 5175769472'u64,
5184157568'u64, 5192543872'u64, 5200936064'u64, 5209324928'u64, 5217711232'u64,
5226102656'u64, 5234490496'u64, 5242877312'u64, 5251263872'u64, 5259654016'u64,
5268040832'u64, 5276434304'u64, 5284819328'u64, 5293209728'u64, 5301598592'u64,
5309986688'u64, 5318374784'u64, 5326764416'u64, 5335151488'u64, 5343542144'u64,
5351929472'u64, 5360319872'u64, 5368706944'u64, 5377096576'u64, 5385484928'u64,
5393871232'u64, 5402263424'u64, 5410650496'u64, 5419040384'u64, 5427426944'u64,
5435816576'u64, 5444205952'u64, 5452594816'u64, 5460981376'u64, 5469367936'u64,
5477760896'u64, 5486148736'u64, 5494536832'u64, 5502925952'u64, 5511315328'u64,
5519703424'u64, 5528089984'u64, 5536481152'u64, 5544869504'u64, 5553256064'u64,
5561645696'u64, 5570032768'u64, 5578423936'u64, 5586811264'u64, 5595193216'u64,
5603585408'u64, 5611972736'u64, 5620366208'u64, 5628750464'u64, 5637143936'u64,
5645528192'u64, 5653921408'u64, 5662310272'u64, 5670694784'u64, 5679082624'u64,
5687474048'u64, 5695864448'u64, 5704251008'u64, 5712641408'u64, 5721030272'u64,
5729416832'u64, 5737806208'u64, 5746194304'u64, 5754583936'u64, 5762969984'u64,
5771358592'u64, 5779748224'u64, 5788137856'u64, 5796527488'u64, 5804911232'u64,
5813300608'u64, 5821692544'u64, 5830082176'u64, 5838468992'u64, 5846855552'u64,
5855247488'u64, 5863636096'u64, 5872024448'u64, 5880411008'u64, 5888799872'u64,
5897186432'u64, 5905576832'u64, 5913966976'u64, 5922352768'u64, 5930744704'u64,
5939132288'u64, 5947522432'u64, 5955911296'u64, 5964299392'u64, 5972688256'u64,
5981074304'u64, 5989465472'u64, 5997851008'u64, 6006241408'u64, 6014627968'u64,
6023015552'u64, 6031408256'u64, 6039796096'u64, 6048185216'u64, 6056574848'u64,
6064963456'u64, 6073351808'u64, 6081736064'u64, 6090128768'u64, 6098517632'u64,
6106906496'u64, 6115289216'u64, 6123680896'u64, 6132070016'u64, 6140459648'u64,
6148849024'u64, 6157237376'u64, 6165624704'u64, 6174009728'u64, 6182403712'u64,
6190792064'u64, 6199176064'u64, 6207569792'u64, 6215952256'u64, 6224345216'u64,
6232732544'u64, 6241124224'u64, 6249510272'u64, 6257899136'u64, 6266287744'u64,
6274676864'u64, 6283065728'u64, 6291454336'u64, 6299843456'u64, 6308232064'u64,
6316620928'u64, 6325006208'u64, 6333395584'u64, 6341784704'u64, 6350174848'u64,
6358562176'u64, 6366951296'u64, 6375337856'u64, 6383729536'u64, 6392119168'u64,
6400504192'u64, 6408895616'u64, 6417283456'u64, 6425673344'u64, 6434059136'u64,
6442444672'u64, 6450837376'u64, 6459223424'u64, 6467613056'u64, 6476004224'u64,
6484393088'u64, 6492781952'u64, 6501170048'u64, 6509555072'u64, 6517947008'u64,
6526336384'u64, 6534725504'u64, 6543112832'u64, 6551500672'u64, 6559888768'u64,
6568278656'u64, 6576662912'u64, 6585055616'u64, 6593443456'u64, 6601834112'u64,
6610219648'u64, 6618610304'u64, 6626999168'u64, 6635385472'u64, 6643777408'u64,
6652164224'u64, 6660552832'u64, 6668941952'u64, 6677330048'u64, 6685719424'u64,
6694107776'u64, 6702493568'u64, 6710882176'u64, 6719274112'u64, 6727662976'u64,
6736052096'u64, 6744437632'u64, 6752825984'u64, 6761213824'u64, 6769604224'u64,
6777993856'u64, 6786383488'u64, 6794770816'u64, 6803158144'u64, 6811549312'u64,
6819937664'u64, 6828326528'u64, 6836706176'u64, 6845101696'u64, 6853491328'u64,
6861880448'u64, 6870269312'u64, 6878655104'u64, 6887046272'u64, 6895433344'u64,
6903822208'u64, 6912212864'u64, 6920596864'u64, 6928988288'u64, 6937377152'u64,
6945764992'u64, 6954149248'u64, 6962544256'u64, 6970928768'u64, 6979317376'u64,
6987709312'u64, 6996093824'u64, 7004487296'u64, 7012875392'u64, 7021258624'u64,
7029652352'u64, 7038038912'u64, 7046427776'u64, 7054818944'u64, 7063207808'u64,
7071595136'u64, 7079980928'u64, 7088372608'u64, 7096759424'u64, 7105149824'u64,
7113536896'u64, 7121928064'u64, 7130315392'u64, 7138699648'u64, 7147092352'u64,
7155479168'u64, 7163865728'u64, 7172249984'u64, 7180648064'u64, 7189036672'u64,
7197424768'u64, 7205810816'u64, 7214196608'u64, 7222589824'u64, 7230975104'u64,
7239367552'u64, 7247755904'u64, 7256145536'u64, 7264533376'u64, 7272921472'u64,
7281308032'u64, 7289694848'u64, 7298088832'u64, 7306471808'u64, 7314864512'u64,
7323253888'u64, 7331643008'u64, 7340029568'u64, 7348419712'u64, 7356808832'u64,
7365196672'u64, 7373585792'u64, 7381973888'u64, 7390362752'u64, 7398750592'u64,
7407138944'u64, 7415528576'u64, 7423915648'u64, 7432302208'u64, 7440690304'u64,
7449080192'u64, 7457472128'u64, 7465860992'u64, 7474249088'u64, 7482635648'u64,
7491023744'u64, 7499412608'u64, 7507803008'u64, 7516192384'u64, 7524579968'u64,
7532967296'u64, 7541358464'u64, 7549745792'u64, 7558134656'u64, 7566524032'u64,
7574912896'u64, 7583300992'u64, 7591690112'u64, 7600075136'u64, 7608466816'u64,
7616854912'u64, 7625244544'u64, 7633629824'u64, 7642020992'u64, 7650410368'u64,
7658794112'u64, 7667187328'u64, 7675574912'u64, 7683961984'u64, 7692349568'u64,
7700739712'u64, 7709130368'u64, 7717519232'u64, 7725905536'u64, 7734295424'u64,
7742683264'u64, 7751069056'u64, 7759457408'u64, 7767849088'u64, 7776238208'u64,
7784626816'u64, 7793014912'u64, 7801405312'u64, 7809792128'u64, 7818179968'u64,
7826571136'u64, 7834957184'u64, 7843347328'u64, 7851732352'u64, 7860124544'u64,
7868512384'u64, 7876902016'u64, 7885287808'u64, 7893679744'u64, 7902067072'u64,
7910455936'u64, 7918844288'u64, 7927230848'u64, 7935622784'u64, 7944009344'u64,
7952400256'u64, 7960786048'u64, 7969176704'u64, 7977565312'u64, 7985953408'u64,
7994339968'u64, 8002730368'u64, 8011119488'u64, 8019508096'u64, 8027896192'u64,
8036285056'u64, 8044674688'u64, 8053062272'u64, 8061448832'u64, 8069838464'u64,
8078227328'u64, 8086616704'u64, 8095006592'u64, 8103393664'u64, 8111783552'u64,
8120171392'u64, 8128560256'u64, 8136949376'u64, 8145336704'u64, 8153726848'u64,
8162114944'u64, 8170503296'u64, 8178891904'u64, 8187280768'u64, 8195669632'u64,
8204058496'u64, 8212444544'u64, 8220834176'u64, 8229222272'u64, 8237612672'u64,
8246000768'u64, 8254389376'u64, 8262775168'u64, 8271167104'u64, 8279553664'u64,
8287944064'u64, 8296333184'u64, 8304715136'u64, 8313108352'u64, 8321497984'u64,
8329885568'u64, 8338274432'u64, 8346663296'u64, 8355052928'u64, 8363441536'u64,
8371828352'u64, 8380217984'u64, 8388606592'u64, 8396996224'u64, 8405384576'u64,
8413772672'u64, 8422161536'u64, 8430549376'u64, 8438939008'u64, 8447326592'u64,
8455715456'u64, 8464104832'u64, 8472492928'u64, 8480882048'u64, 8489270656'u64,
8497659776'u64, 8506045312'u64, 8514434944'u64, 8522823808'u64, 8531208832'u64,
8539602304'u64, 8547990656'u64, 8556378752'u64, 8564768384'u64, 8573154176'u64,
8581542784'u64, 8589933952'u64, 8598322816'u64, 8606705024'u64, 8615099264'u64,
8623487872'u64, 8631876992'u64, 8640264064'u64, 8648653952'u64, 8657040256'u64,
8665430656'u64, 8673820544'u64, 8682209152'u64, 8690592128'u64, 8698977152'u64,
8707374464'u64, 8715763328'u64, 8724151424'u64, 8732540032'u64, 8740928384'u64,
8749315712'u64, 8757704576'u64, 8766089344'u64, 8774480768'u64, 8782871936'u64,
8791260032'u64, 8799645824'u64, 8808034432'u64, 8816426368'u64, 8824812928'u64,
8833199488'u64, 8841591424'u64, 8849976448'u64, 8858366336'u64, 8866757248'u64,
8875147136'u64, 8883532928'u64, 8891923328'u64, 8900306816'u64, 8908700288'u64,
8917088384'u64, 8925478784'u64, 8933867392'u64, 8942250368'u64, 8950644608'u64,
8959032704'u64, 8967420544'u64, 8975809664'u64, 8984197504'u64, 8992584064'u64,
9000976256'u64, 9009362048'u64, 9017752448'u64, 9026141312'u64, 9034530688'u64,
9042917504'u64, 9051307904'u64, 9059694208'u64, 9068084864'u64, 9076471424'u64,
9084861824'u64, 9093250688'u64, 9101638528'u64, 9110027648'u64, 9118416512'u64,
9126803584'u64, 9135188096'u64, 9143581312'u64, 9151969664'u64, 9160356224'u64,
9168747136'u64, 9177134464'u64, 9185525632'u64, 9193910144'u64, 9202302848'u64,
9210690688'u64, 9219079552'u64, 9227465344'u64, 9235854464'u64, 9244244864'u64,
9252633472'u64, 9261021824'u64, 9269411456'u64, 9277799296'u64, 9286188928'u64,
9294574208'u64, 9302965888'u64, 9311351936'u64, 9319740032'u64, 9328131968'u64,
9336516736'u64, 9344907392'u64, 9353296768'u64, 9361685888'u64, 9370074752'u64,
9378463616'u64, 9386849408'u64, 9395239808'u64, 9403629184'u64, 9412016512'u64,
9420405376'u64, 9428795008'u64, 9437181568'u64, 9445570688'u64, 9453960832'u64,
9462346624'u64, 9470738048'u64, 9479121536'u64, 9487515008'u64, 9495903616'u64,
9504289664'u64, 9512678528'u64, 9521067904'u64, 9529456256'u64, 9537843584'u64,
9546233728'u64, 9554621312'u64, 9563011456'u64, 9571398784'u64, 9579788672'u64,
9588178304'u64, 9596567168'u64, 9604954496'u64, 9613343104'u64, 9621732992'u64,
9630121856'u64, 9638508416'u64, 9646898816'u64, 9655283584'u64, 9663675776'u64,
9672061312'u64, 9680449664'u64, 9688840064'u64, 9697230464'u64, 9705617536'u64,
9714003584'u64, 9722393984'u64, 9730772608'u64, 9739172224'u64, 9747561088'u64,
9755945344'u64, 9764338816'u64, 9772726144'u64, 9781116544'u64, 9789503872'u64,
9797892992'u64, 9806282624'u64, 9814670464'u64, 9823056512'u64, 9831439232'u64,
9839833984'u64, 9848224384'u64, 9856613504'u64, 9865000576'u64, 9873391232'u64,
9881772416'u64, 9890162816'u64, 9898556288'u64, 9906940544'u64, 9915333248'u64,
9923721088'u64, 9932108672'u64, 9940496512'u64, 9948888448'u64, 9957276544'u64,
9965666176'u64, 9974048384'u64, 9982441088'u64, 9990830464'u64, 9999219584'u64,
10007602816'u64, 10015996544'u64, 10024385152'u64, 10032774016'u64, 10041163648'u64,
10049548928'u64, 10057940096'u64, 10066329472'u64, 10074717824'u64, 10083105152'u64,
10091495296'u64, 10099878784'u64, 10108272256'u64, 10116660608'u64, 10125049216'u64,
10133437312'u64, 10141825664'u64, 10150213504'u64, 10158601088'u64, 10166991232'u64,
10175378816'u64, 10183766144'u64, 10192157312'u64, 10200545408'u64, 10208935552'u64,
10217322112'u64, 10225712768'u64, 10234099328'u64, 10242489472'u64, 10250876032'u64,
10259264896'u64, 10267656064'u64, 10276042624'u64, 10284429184'u64, 10292820352'u64,
10301209472'u64, 10309598848'u64, 10317987712'u64, 10326375296'u64, 10334763392'u64,
10343153536'u64, 10351541632'u64, 10359930752'u64, 10368318592'u64, 10376707456'u64,
10385096576'u64, 10393484672'u64, 10401867136'u64, 10410262144'u64, 10418647424'u64,
10427039104'u64, 10435425664'u64, 10443810176'u64, 10452203648'u64, 10460589952'u64,
10468982144'u64, 10477369472'u64, 10485759104'u64, 10494147712'u64, 10502533504'u64,
10510923392'u64, 10519313536'u64, 10527702656'u64, 10536091264'u64, 10544478592'u64,
10552867712'u64, 10561255808'u64, 10569642368'u64, 10578032768'u64, 10586423168'u64,
10594805632'u64, 10603200128'u64, 10611588992'u64, 10619976064'u64, 10628361344'u64,
10636754048'u64, 10645143424'u64, 10653531776'u64, 10661920384'u64, 10670307968'u64,
10678696832'u64, 10687086464'u64, 10695475072'u64, 10703863168'u64, 10712246144'u64,
10720639616'u64, 10729026688'u64, 10737414784'u64, 10745806208'u64, 10754190976'u64,
10762581376'u64, 10770971264'u64, 10779356288'u64, 10787747456'u64, 10796135552'u64,
10804525184'u64, 10812915584'u64, 10821301888'u64, 10829692288'u64, 10838078336'u64,
10846469248'u64, 10854858368'u64, 10863247232'u64, 10871631488'u64, 10880023424'u64,
10888412032'u64, 10896799616'u64, 10905188992'u64, 10913574016'u64, 10921964672'u64,
10930352768'u64, 10938742912'u64, 10947132544'u64, 10955518592'u64, 10963909504'u64,
10972298368'u64, 10980687488'u64, 10989074816'u64, 10997462912'u64, 11005851776'u64,
11014241152'u64, 11022627712'u64, 11031017344'u64, 11039403904'u64, 11047793024'u64,
11056184704'u64, 11064570752'u64, 11072960896'u64, 11081343872'u64, 11089737856'u64,
11098128256'u64, 11106514816'u64, 11114904448'u64, 11123293568'u64, 11131680128'u64,
11140065152'u64, 11148458368'u64, 11156845696'u64, 11165236864'u64, 11173624192'u64,
11182013824'u64, 11190402688'u64, 11198790784'u64, 11207179136'u64, 11215568768'u64,
11223957376'u64, 11232345728'u64, 11240734592'u64, 11249122688'u64, 11257511296'u64,
11265899648'u64, 11274285952'u64, 11282675584'u64, 11291065472'u64, 11299452544'u64,
11307842432'u64, 11316231296'u64, 11324616832'u64, 11333009024'u64, 11341395584'u64,
11349782656'u64, 11358172288'u64, 11366560384'u64, 11374950016'u64, 11383339648'u64,
11391721856'u64, 11400117376'u64, 11408504192'u64, 11416893568'u64, 11425283456'u64,
11433671552'u64, 11442061184'u64, 11450444672'u64, 11458837888'u64, 11467226752'u64,
11475611776'u64, 11484003968'u64, 11492392064'u64, 11500780672'u64, 11509169024'u64,
11517550976'u64, 11525944448'u64, 11534335616'u64, 11542724224'u64, 11551111808'u64,
11559500672'u64, 11567890304'u64, 11576277376'u64, 11584667008'u64, 11593056128'u64,
11601443456'u64, 11609830016'u64, 11618221952'u64, 11626607488'u64, 11634995072'u64,
11643387776'u64, 11651775104'u64, 11660161664'u64, 11668552576'u64, 11676940928'u64,
11685330304'u64, 11693718656'u64, 11702106496'u64, 11710496128'u64, 11718882688'u64,
11727273088'u64, 11735660416'u64, 11744050048'u64, 11752437376'u64, 11760824704'u64,
11769216128'u64, 11777604736'u64, 11785991296'u64, 11794381952'u64, 11802770048'u64,
11811157888'u64, 11819548544'u64, 11827932544'u64, 11836324736'u64, 11844713344'u64,
11853100928'u64, 11861486464'u64, 11869879936'u64, 11878268032'u64, 11886656896'u64,
11895044992'u64, 11903433088'u64, 11911822976'u64, 11920210816'u64, 11928600448'u64,
11936987264'u64, 11945375872'u64, 11953761152'u64, 11962151296'u64, 11970543488'u64,
11978928512'u64, 11987320448'u64, 11995708288'u64, 12004095104'u64, 12012486272'u64,
12020875136'u64, 12029255552'u64, 12037652096'u64, 12046039168'u64, 12054429568'u64,
12062813824'u64, 12071206528'u64, 12079594624'u64, 12087983744'u64, 12096371072'u64,
12104759936'u64, 12113147264'u64, 12121534592'u64, 12129924992'u64, 12138314624'u64,
12146703232'u64, 12155091584'u64, 12163481216'u64, 12171864704'u64, 12180255872'u64,
12188643968'u64, 12197034112'u64, 12205424512'u64, 12213811328'u64, 12222199424'u64,
12230590336'u64, 12238977664'u64, 12247365248'u64, 12255755392'u64, 12264143488'u64,
12272531584'u64, 12280920448'u64, 12289309568'u64, 12297694592'u64, 12306086528'u64,
12314475392'u64, 12322865024'u64, 12331253632'u64, 12339640448'u64, 12348029312'u64,
12356418944'u64, 12364805248'u64, 12373196672'u64, 12381580928'u64, 12389969024'u64,
12398357632'u64, 12406750592'u64, 12415138432'u64, 12423527552'u64, 12431916416'u64,
12440304512'u64, 12448692352'u64, 12457081216'u64, 12465467776'u64, 12473859968'u64,
12482245504'u64, 12490636672'u64, 12499025536'u64, 12507411584'u64, 12515801728'u64,
12524190592'u64, 12532577152'u64, 12540966272'u64, 12549354368'u64, 12557743232'u64,
12566129536'u64, 12574523264'u64, 12582911872'u64, 12591299456'u64, 12599688064'u64,
12608074624'u64, 12616463488'u64, 12624845696'u64, 12633239936'u64, 12641631616'u64,
12650019968'u64, 12658407296'u64, 12666795136'u64, 12675183232'u64, 12683574656'u64,
12691960192'u64, 12700350592'u64, 12708740224'u64, 12717128576'u64, 12725515904'u64,
12733906816'u64, 12742295168'u64, 12750680192'u64, 12759071872'u64, 12767460736'u64,
12775848832'u64, 12784236928'u64, 12792626816'u64, 12801014656'u64, 12809404288'u64,
12817789312'u64, 12826181504'u64, 12834568832'u64, 12842954624'u64, 12851345792'u64,
12859732352'u64, 12868122496'u64, 12876512128'u64, 12884901248'u64, 12893289088'u64,
12901672832'u64, 12910067584'u64, 12918455168'u64, 12926842496'u64, 12935232896'u64,
12943620736'u64, 12952009856'u64, 12960396928'u64, 12968786816'u64, 12977176192'u64,
12985563776'u64, 12993951104'u64, 13002341504'u64, 13010730368'u64, 13019115392'u64,
13027506304'u64, 13035895168'u64, 13044272512'u64, 13052673152'u64, 13061062528'u64,
13069446272'u64, 13077838976'u64, 13086227072'u64, 13094613632'u64, 13103000192'u64,
13111393664'u64, 13119782528'u64, 13128157568'u64, 13136559232'u64, 13144945024'u64,
13153329536'u64, 13161724288'u64, 13170111872'u64, 13178502784'u64, 13186884736'u64,
13195279744'u64, 13203667072'u64, 13212057472'u64, 13220445824'u64, 13228832128'u64,
13237221248'u64, 13245610624'u64, 13254000512'u64, 13262388352'u64, 13270777472'u64,
13279166336'u64, 13287553408'u64, 13295943296'u64, 13304331904'u64, 13312719488'u64,
13321108096'u64, 13329494656'u64, 13337885824'u64, 13346274944'u64, 13354663808'u64,
13363051136'u64, 13371439232'u64, 13379825024'u64, 13388210816'u64, 13396605056'u64,
13404995456'u64, 13413380224'u64, 13421771392'u64, 13430159744'u64, 13438546048'u64,
13446937216'u64, 13455326848'u64, 13463708288'u64, 13472103808'u64, 13480492672'u64,
13488875648'u64, 13497269888'u64, 13505657728'u64, 13514045312'u64, 13522435712'u64,
13530824576'u64, 13539210112'u64, 13547599232'u64, 13555989376'u64, 13564379008'u64,
13572766336'u64, 13581154432'u64, 13589544832'u64, 13597932928'u64, 13606320512'u64,
13614710656'u64, 13623097472'u64, 13631477632'u64, 13639874944'u64, 13648264064'u64,
13656652928'u64, 13665041792'u64, 13673430656'u64, 13681818496'u64, 13690207616'u64,
13698595712'u64, 13706982272'u64, 13715373184'u64, 13723762048'u64, 13732150144'u64,
13740536704'u64, 13748926592'u64, 13757316224'u64, 13765700992'u64, 13774090112'u64,
13782477952'u64, 13790869376'u64, 13799259008'u64, 13807647872'u64, 13816036736'u64,
13824425344'u64, 13832814208'u64, 13841202304'u64, 13849591424'u64, 13857978752'u64,
13866368896'u64, 13874754688'u64, 13883145344'u64, 13891533184'u64, 13899919232'u64,
13908311168'u64, 13916692096'u64, 13925085056'u64, 13933473152'u64, 13941866368'u64,
13950253696'u64, 13958643584'u64, 13967032192'u64, 13975417216'u64, 13983807616'u64,
13992197504'u64, 14000582272'u64, 14008973696'u64, 14017363072'u64, 14025752192'u64,
14034137984'u64, 14042528384'u64, 14050918016'u64, 14059301504'u64, 14067691648'u64,
14076083584'u64, 14084470144'u64, 14092852352'u64, 14101249664'u64, 14109635968'u64,
14118024832'u64, 14126407552'u64, 14134804352'u64, 14143188608'u64, 14151577984'u64,
14159968384'u64, 14168357248'u64, 14176741504'u64, 14185127296'u64, 14193521024'u64,
14201911424'u64, 14210301824'u64, 14218685056'u64, 14227067264'u64, 14235467392'u64,
14243855488'u64, 14252243072'u64, 14260630144'u64, 14269021568'u64, 14277409408'u64,
14285799296'u64, 14294187904'u64, 14302571392'u64, 14310961792'u64, 14319353728'u64,
14327738752'u64, 14336130944'u64, 14344518784'u64, 14352906368'u64, 14361296512'u64,
14369685376'u64, 14378071424'u64, 14386462592'u64, 14394848128'u64, 14403230848'u64,
14411627392'u64, 14420013952'u64, 14428402304'u64, 14436793472'u64, 14445181568'u64,
14453569664'u64, 14461959808'u64, 14470347904'u64, 14478737024'u64, 14487122816'u64,
14495511424'u64, 14503901824'u64, 14512291712'u64, 14520677504'u64, 14529064832'u64,
14537456768'u64, 14545845632'u64, 14554234496'u64, 14562618496'u64, 14571011456'u64,
14579398784'u64, 14587789184'u64, 14596172672'u64, 14604564608'u64, 14612953984'u64,
14621341312'u64, 14629724288'u64, 14638120832'u64, 14646503296'u64, 14654897536'u64,
14663284864'u64, 14671675264'u64, 14680061056'u64, 14688447616'u64, 14696835968'u64,
14705228416'u64, 14713616768'u64, 14722003328'u64, 14730392192'u64, 14738784128'u64,
14747172736'u64, 14755561088'u64, 14763947648'u64, 14772336512'u64, 14780725376'u64,
14789110144'u64, 14797499776'u64, 14805892736'u64, 14814276992'u64, 14822670208'u64,
14831056256'u64, 14839444352'u64, 14847836032'u64, 14856222848'u64, 14864612992'u64,
14872997504'u64, 14881388672'u64, 14889775744'u64, 14898165376'u64, 14906553472'u64,
14914944896'u64, 14923329664'u64, 14931721856'u64, 14940109696'u64, 14948497024'u64,
14956887424'u64, 14965276544'u64, 14973663616'u64, 14982053248'u64, 14990439808'u64,
14998830976'u64, 15007216768'u64, 15015605888'u64, 15023995264'u64, 15032385152'u64,
15040768384'u64, 15049154944'u64, 15057549184'u64, 15065939072'u64, 15074328448'u64,
15082715008'u64, 15091104128'u64, 15099493504'u64, 15107879296'u64, 15116269184'u64,
15124659584'u64, 15133042304'u64, 15141431936'u64, 15149824384'u64, 15158214272'u64,
15166602368'u64, 15174991232'u64, 15183378304'u64, 15191760512'u64, 15200154496'u64,
15208542592'u64, 15216931712'u64, 15225323392'u64, 15233708416'u64, 15242098048'u64,
15250489216'u64, 15258875264'u64, 15267265408'u64, 15275654528'u64, 15284043136'u64,
15292431488'u64, 15300819584'u64, 15309208192'u64, 15317596544'u64, 15325986176'u64,
15334374784'u64, 15342763648'u64, 15351151744'u64, 15359540608'u64, 15367929728'u64,
15376318336'u64, 15384706432'u64, 15393092992'u64, 15401481856'u64, 15409869952'u64,
15418258816'u64, 15426649984'u64, 15435037568'u64, 15443425664'u64, 15451815296'u64,
15460203392'u64, 15468589184'u64, 15476979328'u64, 15485369216'u64, 15493755776'u64,
15502146944'u64, 15510534272'u64, 15518924416'u64, 15527311232'u64, 15535699072'u64,
15544089472'u64, 15552478336'u64, 15560866688'u64, 15569254528'u64, 15577642624'u64,
15586031488'u64, 15594419072'u64, 15602809472'u64, 15611199104'u64, 15619586432'u64,
15627975296'u64, 15636364928'u64, 15644753792'u64, 15653141888'u64, 15661529216'u64,
15669918848'u64, 15678305152'u64, 15686696576'u64, 15695083136'u64, 15703474048'u64,
15711861632'u64, 15720251264'u64, 15728636288'u64, 15737027456'u64, 15745417088'u64,
15753804928'u64, 15762194048'u64, 15770582656'u64, 15778971008'u64, 15787358336'u64,
15795747712'u64, 15804132224'u64, 15812523392'u64, 15820909696'u64, 15829300096'u64,
15837691264'u64, 15846071936'u64, 15854466944'u64, 15862855808'u64, 15871244672'u64,
15879634816'u64, 15888020608'u64, 15896409728'u64, 15904799104'u64, 15913185152'u64,
15921577088'u64, 15929966464'u64, 15938354816'u64, 15946743424'u64, 15955129472'u64,
15963519872'u64, 15971907968'u64, 15980296064'u64, 15988684928'u64, 15997073024'u64,
16005460864'u64, 16013851264'u64, 16022241152'u64, 16030629248'u64, 16039012736'u64,
16047406976'u64, 16055794816'u64, 16064181376'u64, 16072571264'u64, 16080957824'u64,
16089346688'u64, 16097737856'u64, 16106125184'u64, 16114514816'u64, 16122904192'u64,
16131292544'u64, 16139678848'u64, 16148066944'u64, 16156453504'u64, 16164839552'u64,
16173236096'u64, 16181623424'u64, 16190012032'u64, 16198401152'u64, 16206790528'u64,
16215177344'u64, 16223567744'u64, 16231956352'u64, 16240344704'u64, 16248731008'u64,
16257117824'u64, 16265504384'u64, 16273898624'u64, 16282281856'u64, 16290668672'u64,
16299064192'u64, 16307449216'u64, 16315842176'u64, 16324230016'u64, 16332613504'u64,
16341006464'u64, 16349394304'u64, 16357783168'u64, 16366172288'u64, 16374561664'u64,
16382951296'u64, 16391337856'u64, 16399726208'u64, 16408116352'u64, 16416505472'u64,
16424892032'u64, 16433282176'u64, 16441668224'u64, 16450058624'u64, 16458448768'u64,
16466836864'u64, 16475224448'u64, 16483613056'u64, 16492001408'u64, 16500391808'u64,
16508779648'u64, 16517166976'u64, 16525555328'u64, 16533944192'u64, 16542330752'u64,
16550719616'u64, 16559110528'u64, 16567497088'u64, 16575888512'u64, 16584274816'u64,
16592665472'u64, 16601051008'u64, 16609442944'u64, 16617832064'u64, 16626218624'u64,
16634607488'u64, 16642996096'u64, 16651385728'u64, 16659773824'u64, 16668163712'u64,
16676552576'u64, 16684938112'u64, 16693328768'u64, 16701718144'u64, 16710095488'u64,
16718492288'u64, 16726883968'u64, 16735272832'u64, 16743661184'u64, 16752049792'u64,
16760436608'u64, 16768827008'u64, 16777214336'u64, 16785599104'u64, 16793992832'u64,
16802381696'u64, 16810768768'u64, 16819151744'u64, 16827542656'u64, 16835934848'u64,
16844323712'u64, 16852711552'u64, 16861101952'u64, 16869489536'u64, 16877876864'u64,
16886265728'u64, 16894653056'u64, 16903044736'u64, 16911431296'u64, 16919821696'u64,
16928207488'u64, 16936592768'u64, 16944987776'u64, 16953375616'u64, 16961763968'u64,
16970152832'u64, 16978540928'u64, 16986929536'u64, 16995319168'u64, 17003704448'u64,
17012096896'u64, 17020481152'u64, 17028870784'u64, 17037262208'u64, 17045649536'u64,
17054039936'u64, 17062426496'u64, 17070814336'u64, 17079205504'u64, 17087592064'u64,
17095978112'u64, 17104369024'u64, 17112759424'u64, 17121147776'u64, 17129536384'u64,
17137926016'u64, 17146314368'u64, 17154700928'u64, 17163089792'u64, 17171480192'u64,
17179864192'u64, 17188256896'u64, 17196644992'u64, 17205033856'u64, 17213423488'u64,
17221811072'u64, 17230198912'u64, 17238588032'u64, 17246976896'u64, 17255360384'u64,
17263754624'u64, 17272143232'u64, 17280530048'u64, 17288918912'u64, 17297309312'u64,
17305696384'u64, 17314085504'u64, 17322475136'u64, 17330863744'u64, 17339252096'u64,
17347640192'u64, 17356026496'u64, 17364413824'u64, 17372796544'u64, 17381190016'u64,
17389583488'u64, 17397972608'u64, 17406360704'u64, 17414748544'u64, 17423135872'u64,
17431527296'u64, 17439915904'u64, 17448303232'u64, 17456691584'u64, 17465081728'u64,
17473468288'u64, 17481857408'u64, 17490247552'u64, 17498635904'u64, 17507022464'u64,
17515409024'u64, 17523801728'u64, 17532189824'u64, 17540577664'u64, 17548966016'u64,
17557353344'u64, 17565741184'u64, 17574131584'u64, 17582519168'u64, 17590907008'u64,
17599296128'u64, 17607687808'u64, 17616076672'u64, 17624455808'u64, 17632852352'u64,
17641238656'u64, 17649630848'u64, 17658018944'u64, 17666403968'u64, 17674794112'u64,
17683178368'u64, 17691573376'u64, 17699962496'u64, 17708350592'u64, 17716739968'u64,
17725126528'u64, 17733517184'u64, 17741898112'u64, 17750293888'u64, 17758673024'u64,
17767070336'u64, 17775458432'u64, 17783848832'u64, 17792236928'u64, 17800625536'u64,
17809012352'u64, 17817402752'u64, 17825785984'u64, 17834178944'u64, 17842563968'u64,
17850955648'u64, 17859344512'u64, 17867732864'u64, 17876119424'u64, 17884511872'u64,
17892900224'u64, 17901287296'u64, 17909677696'u64, 17918058112'u64, 17926451072'u64,
17934843776'u64, 17943230848'u64, 17951609216'u64, 17960008576'u64, 17968397696'u64,
17976784256'u64, 17985175424'u64, 17993564032'u64, 18001952128'u64, 18010339712'u64,
18018728576'u64, 18027116672'u64, 18035503232'u64, 18043894144'u64, 18052283264'u64,
18060672128'u64, 18069056384'u64, 18077449856'u64, 18085837184'u64, 18094225792'u64,
18102613376'u64, 18111004544'u64, 18119388544'u64, 18127781248'u64, 18136170368'u64,
18144558976'u64, 18152947328'u64, 18161336192'u64, 18169724288'u64, 18178108544'u64,
18186498944'u64, 18194886784'u64, 18203275648'u64, 18211666048'u64, 18220048768'u64,
18228444544'u64, 18236833408'u64, 18245220736'u]
## Generated with the following Mathematica Code:
##

View File

@ -13,10 +13,10 @@ export toHex, hexToByteArrayBE, hexToSeqBytesBE, toByteArrayBE # debug functions
const
REVISION* = 23 # Based on spec revision 23
WORD_BYTES = 4 # bytes in word - in Nim we use 64 bits words # TODO check that
DATASET_BYTES_INIT* = 2'u^30 # bytes in dataset at genesis
DATASET_BYTES_GROWTH* = 2'u^23 # dataset growth per epoch
CACHE_BYTES_INIT* = 2'u^24 # bytes in cache at genesis
CACHE_BYTES_GROWTH* = 2'u^17 # cache growth per epoch
DATASET_BYTES_INIT* = 2'u64^30 # bytes in dataset at genesis
DATASET_BYTES_GROWTH* = 2'u64^23 # dataset growth per epoch
CACHE_BYTES_INIT* = 2'u64^24 # bytes in cache at genesis
CACHE_BYTES_GROWTH* = 2'u64^17 # cache growth per epoch
CACHE_MULTIPLIER = 1024 # Size of the DAG relative to the cache
EPOCH_LENGTH* = 30000 # blocks per epoch
MIX_BYTES* = 128 # width of mix
@ -28,7 +28,7 @@ const
# ###############################################################################
# Parameters
proc get_cache_size*(block_number: uint): uint {.noSideEffect.}=
proc get_cache_size*(block_number: uint64): uint64 {.noSideEffect.}=
result = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number div EPOCH_LENGTH)
result -= HASH_BYTES
while (let dm = divmod(result, HASH_BYTES);
@ -37,7 +37,7 @@ proc get_cache_size*(block_number: uint): uint {.noSideEffect.}=
# means checking that remainder == 0 and quotient is prime
result -= 2 * HASH_BYTES
proc get_data_size*(block_number: uint): uint {.noSideEffect.}=
proc get_data_size*(block_number: uint64): uint64 {.noSideEffect.}=
result = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number div EPOCH_LENGTH)
result -= MIX_BYTES
while (let dm = divmod(result, MIX_BYTES);
@ -99,7 +99,7 @@ proc fnv*[T: SomeUnsignedInt or Natural](v1, v2: T): uint32 {.inline, noSideEffe
# So casting to uint32 should do the modulo and masking just fine
(v1.uint32 * FNV_PRIME) xor v2.uint32
v1.uint32 * FNV_PRIME xor v2.uint32
# ###############################################################################
# Full dataset calculation
@ -120,8 +120,8 @@ proc calc_dataset_item*(cache: seq[MDigest[512]], i: Natural): MDigest[512] {.no
# FNV with a lots of random cache nodes based on i
for j in 0'u32 ..< DATASET_PARENTS:
let cache_index = fnv(i.uint32 xor j, mix[j mod r])
mix[] = zipMap(mix[], cache[cache_index.int mod n].as_u32_words, fnv(x, y))
let cacheIndex = fnv(i.uint32 xor j, mix[j mod r])
mix[] = zipMap(mix[], cache[int(cacheIndex mod n.uint32)].as_u32_words, fnv(x, y))
result = keccak512.digest mix[]

View File

@ -3,7 +3,6 @@
import ../src/ethash, unittest, strutils, algorithm, random, sequtils, nimcrypto
suite "Base hashing algorithm":
test "FNV hashing":
# https://github.com/ethereum/ethash/blob/f5f0a8b1962544d2b6f40df8e4b0d9a32faf8f8e/test/c/test.cpp#L104-L116
@ -140,6 +139,7 @@ suite "Seed hash":
check: get_seedhash(i) == expected
expected = keccak_256.digest(expected.data)
suite "Dagger hashimoto computation":
# We can't replicate Python's dynamic typing here
# As Nim expects stack allocated Hash and a string is allocated on the heap