binomial_lookup.F90 Source File


Contents

Source Code


Source Code

module binomial_lookup
    use constants, only: int64
#ifdef GFORTRAN_
    use constants, only: int128
#endif
    implicit none
    private
    public :: factorial, binomial_lookup_table_i64
#ifdef GFORTRAN_
    public :: binomial_lookup_table_i128
#endif
    ! Already binomial(67, 30) cannot be stored in a signed int64 anymore.
    ! => create a lookup table for all binomials up to binomial(66, k).

    ! If we have the following pascal triangle

    !                     1
    !                  1     1
    !               1     2     1
    !            1     3     3     1
    !         1     4     6     4     1
    !      1     5    10    10     5     1
    !   1     6    15    20    15     6     1

    ! We can exclude all values which are trivially to compute or
    !   redundant because of symmetry.
    ! Only these values will be stored in a linear vector.

    !                     *
    !                  *     *
    !               *     *     *
    !            *     *     *     *
    !         *     *     6     *     *
    !      *     *    10     *     *     *
    !   *     *    15    20     *     *     *

    ! The storage order is then "row-major" for binomial(n, k) by going through all non-redundant k
    !    for a given n:
    !                     *
    !                  *     *
    !               *     *     *
    !            *     *     *     *
    !         *     *     1     *     *
    !      *     *     2     *     *     *
    !   *     *     3     4     *     *     *


    !
    !
    ! The following python code was used to create the table:
    !
    !  # DO NOT USE scipy.special.binom
    !  # since it uses floats, it is slightly off for larger values.
    !
    !  def f(n, k):
    !     t = k
    !     (n, k, previous_x) = (n - k + 1, 1, 1)
    !     for _i in range(1, t + 1):
    !         x = n * previous_x // k
    !         (n, k, previous_x) = (n + 1, k + 1, x)
    !     return previous_x   ! f = lambda n, k: int(round(scipy.special.binom(n, k)))
    !
    ! largest = 2**63 - 1
    ! n, found = 0, False
    ! while not found :
    !     n += 1
    !     for k in range(2, n // 2 + 1):
    !         if f(n, k) > largest:
    !             found = True
    !             break
    !
    !
    ! N = n - 1
    ! lookup = [f(n, k) for n in range(4, N + 1) for k in range(2, n // 2 + 1)]
    !
    integer(int64), parameter :: binomial_lookup_table_i64(1024) = [ &
            6_int64, 10_int64, 15_int64, 20_int64, &
            21_int64, 35_int64, 28_int64, 56_int64, 70_int64, &
            36_int64, 84_int64, 126_int64, 45_int64, 120_int64, &
            210_int64, 252_int64, 55_int64, 165_int64, 330_int64, &
            462_int64, 66_int64, 220_int64, 495_int64, 792_int64, &
            924_int64, 78_int64, 286_int64, 715_int64, 1287_int64, &
            1716_int64, 91_int64, 364_int64, 1001_int64, 2002_int64, &
            3003_int64, 3432_int64, 105_int64, 455_int64, 1365_int64, &
            3003_int64, 5005_int64, 6435_int64, 120_int64, 560_int64, &
            1820_int64, 4368_int64, 8008_int64, 11440_int64, 12870_int64, &
            136_int64, 680_int64, 2380_int64, 6188_int64, 12376_int64, &
            19448_int64, 24310_int64, 153_int64, 816_int64, 3060_int64, &
            8568_int64, 18564_int64, 31824_int64, 43758_int64, 48620_int64, &
            171_int64, 969_int64, 3876_int64, 11628_int64, 27132_int64, &
            50388_int64, 75582_int64, 92378_int64, 190_int64, 1140_int64, &
            4845_int64, 15504_int64, 38760_int64, 77520_int64, 125970_int64, &
            167960_int64, 184756_int64, 210_int64, 1330_int64, 5985_int64, &
            20349_int64, 54264_int64, 116280_int64, 203490_int64, 293930_int64, &
            352716_int64, 231_int64, 1540_int64, 7315_int64, 26334_int64, &
            74613_int64, 170544_int64, 319770_int64, 497420_int64, 646646_int64, &
            705432_int64, 253_int64, 1771_int64, 8855_int64, 33649_int64, &
            100947_int64, 245157_int64, 490314_int64, 817190_int64, 1144066_int64, &
            1352078_int64, 276_int64, 2024_int64, 10626_int64, 42504_int64, &
            134596_int64, 346104_int64, 735471_int64, 1307504_int64, 1961256_int64, &
            2496144_int64, 2704156_int64, 300_int64, 2300_int64, 12650_int64, &
            53130_int64, 177100_int64, 480700_int64, 1081575_int64, 2042975_int64, &
            3268760_int64, 4457400_int64, 5200300_int64, 325_int64, 2600_int64, &
            14950_int64, 65780_int64, 230230_int64, 657800_int64, 1562275_int64, &
            3124550_int64, 5311735_int64, 7726160_int64, 9657700_int64, 10400600_int64, &
            351_int64, 2925_int64, 17550_int64, 80730_int64, 296010_int64, &
            888030_int64, 2220075_int64, 4686825_int64, 8436285_int64, 13037895_int64, &
            17383860_int64, 20058300_int64, 378_int64, 3276_int64, 20475_int64, &
            98280_int64, 376740_int64, 1184040_int64, 3108105_int64, 6906900_int64, &
            13123110_int64, 21474180_int64, 30421755_int64, 37442160_int64, 40116600_int64, &
            406_int64, 3654_int64, 23751_int64, 118755_int64, 475020_int64, &
            1560780_int64, 4292145_int64, 10015005_int64, 20030010_int64, 34597290_int64, &
            51895935_int64, 67863915_int64, 77558760_int64, 435_int64, 4060_int64, &
            27405_int64, 142506_int64, 593775_int64, 2035800_int64, 5852925_int64, &
            14307150_int64, 30045015_int64, 54627300_int64, 86493225_int64, 119759850_int64, &
            145422675_int64, 155117520_int64, 465_int64, 4495_int64, 31465_int64, &
            169911_int64, 736281_int64, 2629575_int64, 7888725_int64, 20160075_int64, &
            44352165_int64, 84672315_int64, 141120525_int64, 206253075_int64, 265182525_int64, &
            300540195_int64, 496_int64, 4960_int64, 35960_int64, 201376_int64, &
            906192_int64, 3365856_int64, 10518300_int64, 28048800_int64, 64512240_int64, &
            129024480_int64, 225792840_int64, 347373600_int64, 471435600_int64, 565722720_int64, &
            601080390_int64, 528_int64, 5456_int64, 40920_int64, 237336_int64, &
            1107568_int64, 4272048_int64, 13884156_int64, 38567100_int64, 92561040_int64, &
            193536720_int64, 354817320_int64, 573166440_int64, 818809200_int64, 1037158320_int64, &
            1166803110_int64, 561_int64, 5984_int64, 46376_int64, 278256_int64, &
            1344904_int64, 5379616_int64, 18156204_int64, 52451256_int64, 131128140_int64, &
            286097760_int64, 548354040_int64, 927983760_int64, 1391975640_int64, 1855967520_int64, &
            2203961430_int64, 2333606220_int64, 595_int64, 6545_int64, 52360_int64, &
            324632_int64, 1623160_int64, 6724520_int64, 23535820_int64, 70607460_int64, &
            183579396_int64, 417225900_int64, 834451800_int64, 1476337800_int64, 2319959400_int64, &
            3247943160_int64, 4059928950_int64, 4537567650_int64, 630_int64, 7140_int64, &
            58905_int64, 376992_int64, 1947792_int64, 8347680_int64, 30260340_int64, &
            94143280_int64, 254186856_int64, 600805296_int64, 1251677700_int64, 2310789600_int64, &
            3796297200_int64, 5567902560_int64, 7307872110_int64, 8597496600_int64, 9075135300_int64, &
            666_int64, 7770_int64, 66045_int64, 435897_int64, 2324784_int64, &
            10295472_int64, 38608020_int64, 124403620_int64, 348330136_int64, 854992152_int64, &
            1852482996_int64, 3562467300_int64, 6107086800_int64, 9364199760_int64, 12875774670_int64, &
            15905368710_int64, 17672631900_int64, 703_int64, 8436_int64, 73815_int64, &
            501942_int64, 2760681_int64, 12620256_int64, 48903492_int64, 163011640_int64, &
            472733756_int64, 1203322288_int64, 2707475148_int64, 5414950296_int64, 9669554100_int64, &
            15471286560_int64, 22239974430_int64, 28781143380_int64, 33578000610_int64, 35345263800_int64, &
            741_int64, 9139_int64, 82251_int64, 575757_int64, 3262623_int64, &
            15380937_int64, 61523748_int64, 211915132_int64, 635745396_int64, 1676056044_int64, &
            3910797436_int64, 8122425444_int64, 15084504396_int64, 25140840660_int64, 37711260990_int64, &
            51021117810_int64, 62359143990_int64, 68923264410_int64, 780_int64, 9880_int64, &
            91390_int64, 658008_int64, 3838380_int64, 18643560_int64, 76904685_int64, &
            273438880_int64, 847660528_int64, 2311801440_int64, 5586853480_int64, 12033222880_int64, &
            23206929840_int64, 40225345056_int64, 62852101650_int64, 88732378800_int64, 113380261800_int64, &
            131282408400_int64, 137846528820_int64, 820_int64, 10660_int64, 101270_int64, &
            749398_int64, 4496388_int64, 22481940_int64, 95548245_int64, 350343565_int64, &
            1121099408_int64, 3159461968_int64, 7898654920_int64, 17620076360_int64, 35240152720_int64, &
            63432274896_int64, 103077446706_int64, 151584480450_int64, 202112640600_int64, 244662670200_int64, &
            269128937220_int64, 861_int64, 11480_int64, 111930_int64, 850668_int64, &
            5245786_int64, 26978328_int64, 118030185_int64, 445891810_int64, 1471442973_int64, &
            4280561376_int64, 11058116888_int64, 25518731280_int64, 52860229080_int64, 98672427616_int64, &
            166509721602_int64, 254661927156_int64, 353697121050_int64, 446775310800_int64, 513791607420_int64, &
            538257874440_int64, 903_int64, 12341_int64, 123410_int64, 962598_int64, &
            6096454_int64, 32224114_int64, 145008513_int64, 563921995_int64, 1917334783_int64, &
            5752004349_int64, 15338678264_int64, 36576848168_int64, 78378960360_int64, 151532656696_int64, &
            265182149218_int64, 421171648758_int64, 608359048206_int64, 800472431850_int64, 960566918220_int64, &
            1052049481860_int64, 946_int64, 13244_int64, 135751_int64, 1086008_int64, &
            7059052_int64, 38320568_int64, 177232627_int64, 708930508_int64, 2481256778_int64, &
            7669339132_int64, 21090682613_int64, 51915526432_int64, 114955808528_int64, 229911617056_int64, &
            416714805914_int64, 686353797976_int64, 1029530696964_int64, 1408831480056_int64, 1761039350070_int64, &
            2012616400080_int64, 2104098963720_int64, 990_int64, 14190_int64, 148995_int64, &
            1221759_int64, 8145060_int64, 45379620_int64, 215553195_int64, 886163135_int64, &
            3190187286_int64, 10150595910_int64, 28760021745_int64, 73006209045_int64, 166871334960_int64, &
            344867425584_int64, 646626422970_int64, 1103068603890_int64, 1715884494940_int64, 2438362177020_int64, &
            3169870830126_int64, 3773655750150_int64, 4116715363800_int64, 1035_int64, 15180_int64, &
            163185_int64, 1370754_int64, 9366819_int64, 53524680_int64, 260932815_int64, &
            1101716330_int64, 4076350421_int64, 13340783196_int64, 38910617655_int64, 101766230790_int64, &
            239877544005_int64, 511738760544_int64, 991493848554_int64, 1749695026860_int64, 2818953098830_int64, &
            4154246671960_int64, 5608233007146_int64, 6943526580276_int64, 7890371113950_int64, 8233430727600_int64, &
            1081_int64, 16215_int64, 178365_int64, 1533939_int64, 10737573_int64, &
            62891499_int64, 314457495_int64, 1362649145_int64, 5178066751_int64, 17417133617_int64, &
            52251400851_int64, 140676848445_int64, 341643774795_int64, 751616304549_int64, 1503232609098_int64, &
            2741188875414_int64, 4568648125690_int64, 6973199770790_int64, 9762479679106_int64, 12551759587422_int64, &
            14833897694226_int64, 16123801841550_int64, 1128_int64, 17296_int64, 194580_int64, &
            1712304_int64, 12271512_int64, 73629072_int64, 377348994_int64, 1677106640_int64, &
            6540715896_int64, 22595200368_int64, 69668534468_int64, 192928249296_int64, 482320623240_int64, &
            1093260079344_int64, 2254848913647_int64, 4244421484512_int64, 7309837001104_int64, 11541847896480_int64, &
            16735679449896_int64, 22314239266528_int64, 27385657281648_int64, 30957699535776_int64, 32247603683100_int64, &
            1176_int64, 18424_int64, 211876_int64, 1906884_int64, 13983816_int64, &
            85900584_int64, 450978066_int64, 2054455634_int64, 8217822536_int64, 29135916264_int64, &
            92263734836_int64, 262596783764_int64, 675248872536_int64, 1575580702584_int64, 3348108992991_int64, &
            6499270398159_int64, 11554258485616_int64, 18851684897584_int64, 28277527346376_int64, 39049918716424_int64, &
            49699896548176_int64, 58343356817424_int64, 63205303218876_int64, 1225_int64, 19600_int64, &
            230300_int64, 2118760_int64, 15890700_int64, 99884400_int64, 536878650_int64, &
            2505433700_int64, 10272278170_int64, 37353738800_int64, 121399651100_int64, 354860518600_int64, &
            937845656300_int64, 2250829575120_int64, 4923689695575_int64, 9847379391150_int64, 18053528883775_int64, &
            30405943383200_int64, 47129212243960_int64, 67327446062800_int64, 88749815264600_int64, 108043253365600_int64, &
            121548660036300_int64, 126410606437752_int64, 1275_int64, 20825_int64, 249900_int64, &
            2349060_int64, 18009460_int64, 115775100_int64, 636763050_int64, 3042312350_int64, &
            12777711870_int64, 47626016970_int64, 158753389900_int64, 476260169700_int64, 1292706174900_int64, &
            3188675231420_int64, 7174519270695_int64, 14771069086725_int64, 27900908274925_int64, 48459472266975_int64, &
            77535155627160_int64, 114456658306760_int64, 156077261327400_int64, 196793068630200_int64, 229591913401900_int64, &
            247959266474052_int64, 1326_int64, 22100_int64, 270725_int64, 2598960_int64, &
            20358520_int64, 133784560_int64, 752538150_int64, 3679075400_int64, 15820024220_int64, &
            60403728840_int64, 206379406870_int64, 635013559600_int64, 1768966344600_int64, 4481381406320_int64, &
            10363194502115_int64, 21945588357420_int64, 42671977361650_int64, 76360380541900_int64, 125994627894135_int64, &
            191991813933920_int64, 270533919634160_int64, 352870329957600_int64, 426384982032100_int64, 477551179875952_int64, &
            495918532948104_int64, 1378_int64, 23426_int64, 292825_int64, 2869685_int64, &
            22957480_int64, 154143080_int64, 886322710_int64, 4431613550_int64, 19499099620_int64, &
            76223753060_int64, 266783135710_int64, 841392966470_int64, 2403979904200_int64, 6250347750920_int64, &
            14844575908435_int64, 32308782859535_int64, 64617565719070_int64, 119032357903550_int64, 202355008436035_int64, &
            317986441828055_int64, 462525733568080_int64, 623404249591760_int64, 779255311989700_int64, 903936161908052_int64, &
            973469712824056_int64, 1431_int64, 24804_int64, 316251_int64, 3162510_int64, &
            25827165_int64, 177100560_int64, 1040465790_int64, 5317936260_int64, 23930713170_int64, &
            95722852680_int64, 343006888770_int64, 1108176102180_int64, 3245372870670_int64, 8654327655120_int64, &
            21094923659355_int64, 47153358767970_int64, 96926348578605_int64, 183649923622620_int64, 321387366339585_int64, &
            520341450264090_int64, 780512175396135_int64, 1085929983159840_int64, 1402659561581460_int64, 1683191473897752_int64, &
            1877405874732108_int64, 1946939425648112_int64, 1485_int64, 26235_int64, 341055_int64, &
            3478761_int64, 28989675_int64, 202927725_int64, 1217566350_int64, 6358402050_int64, &
            29248649430_int64, 119653565850_int64, 438729741450_int64, 1451182990950_int64, 4353548972850_int64, &
            11899700525790_int64, 29749251314475_int64, 68248282427325_int64, 144079707346575_int64, 280576272201225_int64, &
            505037289962205_int64, 841728816603675_int64, 1300853625660225_int64, 1866442158555975_int64, 2488589544741300_int64, &
            3085851035479212_int64, 3560597348629860_int64, 3824345300380220_int64, 1540_int64, 27720_int64, &
            367290_int64, 3819816_int64, 32468436_int64, 231917400_int64, 1420494075_int64, &
            7575968400_int64, 35607051480_int64, 148902215280_int64, 558383307300_int64, 1889912732400_int64, &
            5804731963800_int64, 16253249498640_int64, 41648951840265_int64, 97997533741800_int64, 212327989773900_int64, &
            424655979547800_int64, 785613562163430_int64, 1346766106565880_int64, 2142582442263900_int64, 3167295784216200_int64, &
            4355031703297275_int64, 5574440580220512_int64, 6646448384109072_int64, 7384942649010080_int64, 7648690600760440_int64, &
            1596_int64, 29260_int64, 395010_int64, 4187106_int64, 36288252_int64, &
            264385836_int64, 1652411475_int64, 8996462475_int64, 43183019880_int64, 184509266760_int64, &
            707285522580_int64, 2448296039700_int64, 7694644696200_int64, 22057981462440_int64, 57902201338905_int64, &
            139646485582065_int64, 310325523515700_int64, 636983969321700_int64, 1210269541711230_int64, 2132379668729310_int64, &
            3489348548829780_int64, 5309878226480100_int64, 7522327487513475_int64, 9929472283517787_int64, 12220888964329584_int64, &
            14031391033119152_int64, 15033633249770520_int64, 1653_int64, 30856_int64, 424270_int64, &
            4582116_int64, 40475358_int64, 300674088_int64, 1916797311_int64, 10648873950_int64, &
            52179482355_int64, 227692286640_int64, 891794789340_int64, 3155581562280_int64, 10142940735900_int64, &
            29752626158640_int64, 79960182801345_int64, 197548686920970_int64, 449972009097765_int64, 947309492837400_int64, &
            1847253511032930_int64, 3342649210440540_int64, 5621728217559090_int64, 8799226775309880_int64, 12832205713993575_int64, &
            17451799771031262_int64, 22150361247847371_int64, 26252279997448736_int64, 29065024282889672_int64, 30067266499541040_int64, &
            1711_int64, 32509_int64, 455126_int64, 5006386_int64, 45057474_int64, &
            341149446_int64, 2217471399_int64, 12565671261_int64, 62828356305_int64, 279871768995_int64, &
            1119487075980_int64, 4047376351620_int64, 13298522298180_int64, 39895566894540_int64, 109712808959985_int64, &
            277508869722315_int64, 647520696018735_int64, 1397281501935165_int64, 2794563003870330_int64, 5189902721473470_int64, &
            8964377427999630_int64, 14420954992868970_int64, 21631432489303455_int64, 30284005485024837_int64, 39602161018878633_int64, &
            48402641245296107_int64, 55317304280338408_int64, 59132290782430712_int64, 1770_int64, 34220_int64, &
            487635_int64, 5461512_int64, 50063860_int64, 386206920_int64, 2558620845_int64, &
            14783142660_int64, 75394027566_int64, 342700125300_int64, 1399358844975_int64, 5166863427600_int64, &
            17345898649800_int64, 53194089192720_int64, 149608375854525_int64, 387221678682300_int64, 925029565741050_int64, &
            2044802197953900_int64, 4191844505805495_int64, 7984465725343800_int64, 14154280149473100_int64, 23385332420868600_int64, &
            36052387482172425_int64, 51915437974328292_int64, 69886166503903470_int64, 88004802264174740_int64, 103719945525634515_int64, &
            114449595062769120_int64, 118264581564861424_int64, 1830_int64, 35990_int64, 521855_int64, &
            5949147_int64, 55525372_int64, 436270780_int64, 2944827765_int64, 17341763505_int64, &
            90177170226_int64, 418094152866_int64, 1742058970275_int64, 6566222272575_int64, 22512762077400_int64, &
            70539987842520_int64, 202802465047245_int64, 536830054536825_int64, 1312251244423350_int64, 2969831763694950_int64, &
            6236646703759395_int64, 12176310231149295_int64, 22138745874816900_int64, 37539612570341700_int64, 59437719903041025_int64, &
            87967825456500717_int64, 121801604478231762_int64, 157890968768078210_int64, 191724747789809255_int64, 218169540588403635_int64, &
            232714176627630544_int64, 1891_int64, 37820_int64, 557845_int64, 6471002_int64, &
            61474519_int64, 491796152_int64, 3381098545_int64, 20286591270_int64, 107518933731_int64, &
            508271323092_int64, 2160153123141_int64, 8308281242850_int64, 29078984349975_int64, 93052749919920_int64, &
            273342452889765_int64, 739632519584070_int64, 1849081298960175_int64, 4282083008118300_int64, 9206478467454345_int64, &
            18412956934908690_int64, 34315056105966195_int64, 59678358445158600_int64, 96977332473382725_int64, 147405545359541742_int64, &
            209769429934732479_int64, 279692573246309972_int64, 349615716557887465_int64, 409894288378212890_int64, 450883717216034179_int64, &
            465428353255261088_int64, 1953_int64, 39711_int64, 595665_int64, 7028847_int64, &
            67945521_int64, 553270671_int64, 3872894697_int64, 23667689815_int64, 127805525001_int64, &
            615790256823_int64, 2668424446233_int64, 10468434365991_int64, 37387265592825_int64, 122131734269895_int64, &
            366395202809685_int64, 1012974972473835_int64, 2588713818544245_int64, 6131164307078475_int64, 13488561475572645_int64, &
            27619435402363035_int64, 52728013040874885_int64, 93993414551124795_int64, 156655690918541325_int64, 244382877832924467_int64, &
            357174975294274221_int64, 489462003181042451_int64, 629308289804197437_int64, 759510004936100355_int64, 860778005594247069_int64, &
            916312070471295267_int64, 2016_int64, 41664_int64, 635376_int64, 7624512_int64, &
            74974368_int64, 621216192_int64, 4426165368_int64, 27540584512_int64, 151473214816_int64, &
            743595781824_int64, 3284214703056_int64, 13136858812224_int64, 47855699958816_int64, 159518999862720_int64, &
            488526937079580_int64, 1379370175283520_int64, 3601688791018080_int64, 8719878125622720_int64, 19619725782651120_int64, &
            41107996877935680_int64, 80347448443237920_int64, 146721427591999680_int64, 250649105469666120_int64, 401038568751465792_int64, &
            601557853127198688_int64, 846636978475316672_int64, 1118770292985239888_int64, 1388818294740297792_int64, 1620288010530347424_int64, &
            1777090076065542336_int64, 1832624140942590534_int64, 2080_int64, 43680_int64, 677040_int64, &
            8259888_int64, 82598880_int64, 696190560_int64, 5047381560_int64, 31966749880_int64, &
            179013799328_int64, 895068996640_int64, 4027810484880_int64, 16421073515280_int64, 60992558771040_int64, &
            207374699821536_int64, 648045936942300_int64, 1867897112363100_int64, 4981058966301600_int64, 12321566916640800_int64, &
            28339603908273840_int64, 60727722660586800_int64, 121455445321173600_int64, 227068876035237600_int64, 397370533061665800_int64, &
            651687674221131912_int64, 1002596421878664480_int64, 1448194831602515360_int64, 1965407271460556560_int64, 2507588587725537680_int64, &
            3009106305270645216_int64, 3397378086595889760_int64, 3609714217008132870_int64, 2145_int64, 45760_int64, &
            720720_int64, 8936928_int64, 90858768_int64, 778789440_int64, 5743572120_int64, &
            37014131440_int64, 210980549208_int64, 1074082795968_int64, 4922879481520_int64, 20448884000160_int64, &
            77413632286320_int64, 268367258592576_int64, 855420636763836_int64, 2515943049305400_int64, 6848956078664700_int64, &
            17302625882942400_int64, 40661170824914640_int64, 89067326568860640_int64, 182183167981760400_int64, 348524321356411200_int64, &
            624439409096903400_int64, 1049058207282797712_int64, 1654284096099796392_int64, 2450791253481179840_int64, 3413602103063071920_int64, &
            4472995859186094240_int64, 5516694892996182896_int64, 6406484391866534976_int64, 7007092303604022630_int64, 7219428434016265740_int64 &
    ]

    ! factorial(33) is the largest number that is contained in a signed int128
    ! This is one of the rare occasions where the Fortran Array Access syntax is helpful
    ! since the user can use this array, as if it was a function.
    !
    ! Generated with the followingp python code:
    !     largest = 2**127 - 1
    !     n, found = 0, False
    !     while not found :
    !         n += 1
    !         if faculty(n) > largest:
    !             print(n)
    !             found = True
    !             break
    !     lookup = [faculty(i) for i in range(n)]
    integer(int64), parameter :: factorial(0:20) = [1_int64, 1_int64, 2_int64, &
        6_int64, 24_int64, &
        120_int64, 720_int64, &
        5040_int64, 40320_int64, &
        362880_int64, 3628800_int64, &
        39916800_int64, 479001600_int64, &
        6227020800_int64, 87178291200_int64, &
        1307674368000_int64, 20922789888000_int64, &
        355687428096000_int64, 6402373705728000_int64, &
        121645100408832000_int64, 2432902008176640000_int64]

#ifdef GFORTRAN_
    ! Lookup the logic at int64 table
    integer(int128), parameter :: binomial_lookup_table_i128(4096) = [6_int128, &
        10_int128, 15_int128, &
        20_int128, 21_int128, &
        35_int128, 28_int128, &
        56_int128, 70_int128, &
        36_int128, 84_int128, &
        126_int128, 45_int128, &
        120_int128, 210_int128, &
        252_int128, 55_int128, &
        165_int128, 330_int128, &
        462_int128, 66_int128, &
        220_int128, 495_int128, &
        792_int128, 924_int128, &
        78_int128, 286_int128, &
        715_int128, 1287_int128, &
        1716_int128, 91_int128, &
        364_int128, 1001_int128, &
        2002_int128, 3003_int128, &
        3432_int128, 105_int128, &
        455_int128, 1365_int128, &
        3003_int128, 5005_int128, &
        6435_int128, 120_int128, &
        560_int128, 1820_int128, &
        4368_int128, 8008_int128, &
        11440_int128, 12870_int128, &
        136_int128, 680_int128, &
        2380_int128, 6188_int128, &
        12376_int128, 19448_int128, &
        24310_int128, 153_int128, &
        816_int128, 3060_int128, &
        8568_int128, 18564_int128, &
        31824_int128, 43758_int128, &
        48620_int128, 171_int128, &
        969_int128, 3876_int128, &
        11628_int128, 27132_int128, &
        50388_int128, 75582_int128, &
        92378_int128, 190_int128, &
        1140_int128, 4845_int128, &
        15504_int128, 38760_int128, &
        77520_int128, 125970_int128, &
        167960_int128, 184756_int128, &
        210_int128, 1330_int128, &
        5985_int128, 20349_int128, &
        54264_int128, 116280_int128, &
        203490_int128, 293930_int128, &
        352716_int128, 231_int128, &
        1540_int128, 7315_int128, &
        26334_int128, 74613_int128, &
        170544_int128, 319770_int128, &
        497420_int128, 646646_int128, &
        705432_int128, 253_int128, &
        1771_int128, 8855_int128, &
        33649_int128, 100947_int128, &
        245157_int128, 490314_int128, &
        817190_int128, 1144066_int128, &
        1352078_int128, 276_int128, &
        2024_int128, 10626_int128, &
        42504_int128, 134596_int128, &
        346104_int128, 735471_int128, &
        1307504_int128, 1961256_int128, &
        2496144_int128, 2704156_int128, &
        300_int128, 2300_int128, &
        12650_int128, 53130_int128, &
        177100_int128, 480700_int128, &
        1081575_int128, 2042975_int128, &
        3268760_int128, 4457400_int128, &
        5200300_int128, 325_int128, &
        2600_int128, 14950_int128, &
        65780_int128, 230230_int128, &
        657800_int128, 1562275_int128, &
        3124550_int128, 5311735_int128, &
        7726160_int128, 9657700_int128, &
        10400600_int128, 351_int128, &
        2925_int128, 17550_int128, &
        80730_int128, 296010_int128, &
        888030_int128, 2220075_int128, &
        4686825_int128, 8436285_int128, &
        13037895_int128, 17383860_int128, &
        20058300_int128, 378_int128, &
        3276_int128, 20475_int128, &
        98280_int128, 376740_int128, &
        1184040_int128, 3108105_int128, &
        6906900_int128, 13123110_int128, &
        21474180_int128, 30421755_int128, &
        37442160_int128, 40116600_int128, &
        406_int128, 3654_int128, &
        23751_int128, 118755_int128, &
        475020_int128, 1560780_int128, &
        4292145_int128, 10015005_int128, &
        20030010_int128, 34597290_int128, &
        51895935_int128, 67863915_int128, &
        77558760_int128, 435_int128, &
        4060_int128, 27405_int128, &
        142506_int128, 593775_int128, &
        2035800_int128, 5852925_int128, &
        14307150_int128, 30045015_int128, &
        54627300_int128, 86493225_int128, &
        119759850_int128, 145422675_int128, &
        155117520_int128, 465_int128, &
        4495_int128, 31465_int128, &
        169911_int128, 736281_int128, &
        2629575_int128, 7888725_int128, &
        20160075_int128, 44352165_int128, &
        84672315_int128, 141120525_int128, &
        206253075_int128, 265182525_int128, &
        300540195_int128, 496_int128, &
        4960_int128, 35960_int128, &
        201376_int128, 906192_int128, &
        3365856_int128, 10518300_int128, &
        28048800_int128, 64512240_int128, &
        129024480_int128, 225792840_int128, &
        347373600_int128, 471435600_int128, &
        565722720_int128, 601080390_int128, &
        528_int128, 5456_int128, &
        40920_int128, 237336_int128, &
        1107568_int128, 4272048_int128, &
        13884156_int128, 38567100_int128, &
        92561040_int128, 193536720_int128, &
        354817320_int128, 573166440_int128, &
        818809200_int128, 1037158320_int128, &
        1166803110_int128, 561_int128, &
        5984_int128, 46376_int128, &
        278256_int128, 1344904_int128, &
        5379616_int128, 18156204_int128, &
        52451256_int128, 131128140_int128, &
        286097760_int128, 548354040_int128, &
        927983760_int128, 1391975640_int128, &
        1855967520_int128, 2203961430_int128, &
        2333606220_int128, 595_int128, &
        6545_int128, 52360_int128, &
        324632_int128, 1623160_int128, &
        6724520_int128, 23535820_int128, &
        70607460_int128, 183579396_int128, &
        417225900_int128, 834451800_int128, &
        1476337800_int128, 2319959400_int128, &
        3247943160_int128, 4059928950_int128, &
        4537567650_int128, 630_int128, &
        7140_int128, 58905_int128, &
        376992_int128, 1947792_int128, &
        8347680_int128, 30260340_int128, &
        94143280_int128, 254186856_int128, &
        600805296_int128, 1251677700_int128, &
        2310789600_int128, 3796297200_int128, &
        5567902560_int128, 7307872110_int128, &
        8597496600_int128, 9075135300_int128, &
        666_int128, 7770_int128, &
        66045_int128, 435897_int128, &
        2324784_int128, 10295472_int128, &
        38608020_int128, 124403620_int128, &
        348330136_int128, 854992152_int128, &
        1852482996_int128, 3562467300_int128, &
        6107086800_int128, 9364199760_int128, &
        12875774670_int128, 15905368710_int128, &
        17672631900_int128, 703_int128, &
        8436_int128, 73815_int128, &
        501942_int128, 2760681_int128, &
        12620256_int128, 48903492_int128, &
        163011640_int128, 472733756_int128, &
        1203322288_int128, 2707475148_int128, &
        5414950296_int128, 9669554100_int128, &
        15471286560_int128, 22239974430_int128, &
        28781143380_int128, 33578000610_int128, &
        35345263800_int128, 741_int128, &
        9139_int128, 82251_int128, &
        575757_int128, 3262623_int128, &
        15380937_int128, 61523748_int128, &
        211915132_int128, 635745396_int128, &
        1676056044_int128, 3910797436_int128, &
        8122425444_int128, 15084504396_int128, &
        25140840660_int128, 37711260990_int128, &
        51021117810_int128, 62359143990_int128, &
        68923264410_int128, 780_int128, &
        9880_int128, 91390_int128, &
        658008_int128, 3838380_int128, &
        18643560_int128, 76904685_int128, &
        273438880_int128, 847660528_int128, &
        2311801440_int128, 5586853480_int128, &
        12033222880_int128, 23206929840_int128, &
        40225345056_int128, 62852101650_int128, &
        88732378800_int128, 113380261800_int128, &
        131282408400_int128, 137846528820_int128, &
        820_int128, 10660_int128, &
        101270_int128, 749398_int128, &
        4496388_int128, 22481940_int128, &
        95548245_int128, 350343565_int128, &
        1121099408_int128, 3159461968_int128, &
        7898654920_int128, 17620076360_int128, &
        35240152720_int128, 63432274896_int128, &
        103077446706_int128, 151584480450_int128, &
        202112640600_int128, 244662670200_int128, &
        269128937220_int128, 861_int128, &
        11480_int128, 111930_int128, &
        850668_int128, 5245786_int128, &
        26978328_int128, 118030185_int128, &
        445891810_int128, 1471442973_int128, &
        4280561376_int128, 11058116888_int128, &
        25518731280_int128, 52860229080_int128, &
        98672427616_int128, 166509721602_int128, &
        254661927156_int128, 353697121050_int128, &
        446775310800_int128, 513791607420_int128, &
        538257874440_int128, 903_int128, &
        12341_int128, 123410_int128, &
        962598_int128, 6096454_int128, &
        32224114_int128, 145008513_int128, &
        563921995_int128, 1917334783_int128, &
        5752004349_int128, 15338678264_int128, &
        36576848168_int128, 78378960360_int128, &
        151532656696_int128, 265182149218_int128, &
        421171648758_int128, 608359048206_int128, &
        800472431850_int128, 960566918220_int128, &
        1052049481860_int128, 946_int128, &
        13244_int128, 135751_int128, &
        1086008_int128, 7059052_int128, &
        38320568_int128, 177232627_int128, &
        708930508_int128, 2481256778_int128, &
        7669339132_int128, 21090682613_int128, &
        51915526432_int128, 114955808528_int128, &
        229911617056_int128, 416714805914_int128, &
        686353797976_int128, 1029530696964_int128, &
        1408831480056_int128, 1761039350070_int128, &
        2012616400080_int128, 2104098963720_int128, &
        990_int128, 14190_int128, &
        148995_int128, 1221759_int128, &
        8145060_int128, 45379620_int128, &
        215553195_int128, 886163135_int128, &
        3190187286_int128, 10150595910_int128, &
        28760021745_int128, 73006209045_int128, &
        166871334960_int128, 344867425584_int128, &
        646626422970_int128, 1103068603890_int128, &
        1715884494940_int128, 2438362177020_int128, &
        3169870830126_int128, 3773655750150_int128, &
        4116715363800_int128, 1035_int128, &
        15180_int128, 163185_int128, &
        1370754_int128, 9366819_int128, &
        53524680_int128, 260932815_int128, &
        1101716330_int128, 4076350421_int128, &
        13340783196_int128, 38910617655_int128, &
        101766230790_int128, 239877544005_int128, &
        511738760544_int128, 991493848554_int128, &
        1749695026860_int128, 2818953098830_int128, &
        4154246671960_int128, 5608233007146_int128, &
        6943526580276_int128, 7890371113950_int128, &
        8233430727600_int128, 1081_int128, &
        16215_int128, 178365_int128, &
        1533939_int128, 10737573_int128, &
        62891499_int128, 314457495_int128, &
        1362649145_int128, 5178066751_int128, &
        17417133617_int128, 52251400851_int128, &
        140676848445_int128, 341643774795_int128, &
        751616304549_int128, 1503232609098_int128, &
        2741188875414_int128, 4568648125690_int128, &
        6973199770790_int128, 9762479679106_int128, &
        12551759587422_int128, 14833897694226_int128, &
        16123801841550_int128, 1128_int128, &
        17296_int128, 194580_int128, &
        1712304_int128, 12271512_int128, &
        73629072_int128, 377348994_int128, &
        1677106640_int128, 6540715896_int128, &
        22595200368_int128, 69668534468_int128, &
        192928249296_int128, 482320623240_int128, &
        1093260079344_int128, 2254848913647_int128, &
        4244421484512_int128, 7309837001104_int128, &
        11541847896480_int128, 16735679449896_int128, &
        22314239266528_int128, 27385657281648_int128, &
        30957699535776_int128, 32247603683100_int128, &
        1176_int128, 18424_int128, &
        211876_int128, 1906884_int128, &
        13983816_int128, 85900584_int128, &
        450978066_int128, 2054455634_int128, &
        8217822536_int128, 29135916264_int128, &
        92263734836_int128, 262596783764_int128, &
        675248872536_int128, 1575580702584_int128, &
        3348108992991_int128, 6499270398159_int128, &
        11554258485616_int128, 18851684897584_int128, &
        28277527346376_int128, 39049918716424_int128, &
        49699896548176_int128, 58343356817424_int128, &
        63205303218876_int128, 1225_int128, &
        19600_int128, 230300_int128, &
        2118760_int128, 15890700_int128, &
        99884400_int128, 536878650_int128, &
        2505433700_int128, 10272278170_int128, &
        37353738800_int128, 121399651100_int128, &
        354860518600_int128, 937845656300_int128, &
        2250829575120_int128, 4923689695575_int128, &
        9847379391150_int128, 18053528883775_int128, &
        30405943383200_int128, 47129212243960_int128, &
        67327446062800_int128, 88749815264600_int128, &
        108043253365600_int128, 121548660036300_int128, &
        126410606437752_int128, 1275_int128, &
        20825_int128, 249900_int128, &
        2349060_int128, 18009460_int128, &
        115775100_int128, 636763050_int128, &
        3042312350_int128, 12777711870_int128, &
        47626016970_int128, 158753389900_int128, &
        476260169700_int128, 1292706174900_int128, &
        3188675231420_int128, 7174519270695_int128, &
        14771069086725_int128, 27900908274925_int128, &
        48459472266975_int128, 77535155627160_int128, &
        114456658306760_int128, 156077261327400_int128, &
        196793068630200_int128, 229591913401900_int128, &
        247959266474052_int128, 1326_int128, &
        22100_int128, 270725_int128, &
        2598960_int128, 20358520_int128, &
        133784560_int128, 752538150_int128, &
        3679075400_int128, 15820024220_int128, &
        60403728840_int128, 206379406870_int128, &
        635013559600_int128, 1768966344600_int128, &
        4481381406320_int128, 10363194502115_int128, &
        21945588357420_int128, 42671977361650_int128, &
        76360380541900_int128, 125994627894135_int128, &
        191991813933920_int128, 270533919634160_int128, &
        352870329957600_int128, 426384982032100_int128, &
        477551179875952_int128, 495918532948104_int128, &
        1378_int128, 23426_int128, &
        292825_int128, 2869685_int128, &
        22957480_int128, 154143080_int128, &
        886322710_int128, 4431613550_int128, &
        19499099620_int128, 76223753060_int128, &
        266783135710_int128, 841392966470_int128, &
        2403979904200_int128, 6250347750920_int128, &
        14844575908435_int128, 32308782859535_int128, &
        64617565719070_int128, 119032357903550_int128, &
        202355008436035_int128, 317986441828055_int128, &
        462525733568080_int128, 623404249591760_int128, &
        779255311989700_int128, 903936161908052_int128, &
        973469712824056_int128, 1431_int128, &
        24804_int128, 316251_int128, &
        3162510_int128, 25827165_int128, &
        177100560_int128, 1040465790_int128, &
        5317936260_int128, 23930713170_int128, &
        95722852680_int128, 343006888770_int128, &
        1108176102180_int128, 3245372870670_int128, &
        8654327655120_int128, 21094923659355_int128, &
        47153358767970_int128, 96926348578605_int128, &
        183649923622620_int128, 321387366339585_int128, &
        520341450264090_int128, 780512175396135_int128, &
        1085929983159840_int128, 1402659561581460_int128, &
        1683191473897752_int128, 1877405874732108_int128, &
        1946939425648112_int128, 1485_int128, &
        26235_int128, 341055_int128, &
        3478761_int128, 28989675_int128, &
        202927725_int128, 1217566350_int128, &
        6358402050_int128, 29248649430_int128, &
        119653565850_int128, 438729741450_int128, &
        1451182990950_int128, 4353548972850_int128, &
        11899700525790_int128, 29749251314475_int128, &
        68248282427325_int128, 144079707346575_int128, &
        280576272201225_int128, 505037289962205_int128, &
        841728816603675_int128, 1300853625660225_int128, &
        1866442158555975_int128, 2488589544741300_int128, &
        3085851035479212_int128, 3560597348629860_int128, &
        3824345300380220_int128, 1540_int128, &
        27720_int128, 367290_int128, &
        3819816_int128, 32468436_int128, &
        231917400_int128, 1420494075_int128, &
        7575968400_int128, 35607051480_int128, &
        148902215280_int128, 558383307300_int128, &
        1889912732400_int128, 5804731963800_int128, &
        16253249498640_int128, 41648951840265_int128, &
        97997533741800_int128, 212327989773900_int128, &
        424655979547800_int128, 785613562163430_int128, &
        1346766106565880_int128, 2142582442263900_int128, &
        3167295784216200_int128, 4355031703297275_int128, &
        5574440580220512_int128, 6646448384109072_int128, &
        7384942649010080_int128, 7648690600760440_int128, &
        1596_int128, 29260_int128, &
        395010_int128, 4187106_int128, &
        36288252_int128, 264385836_int128, &
        1652411475_int128, 8996462475_int128, &
        43183019880_int128, 184509266760_int128, &
        707285522580_int128, 2448296039700_int128, &
        7694644696200_int128, 22057981462440_int128, &
        57902201338905_int128, 139646485582065_int128, &
        310325523515700_int128, 636983969321700_int128, &
        1210269541711230_int128, 2132379668729310_int128, &
        3489348548829780_int128, 5309878226480100_int128, &
        7522327487513475_int128, 9929472283517787_int128, &
        12220888964329584_int128, 14031391033119152_int128, &
        15033633249770520_int128, 1653_int128, &
        30856_int128, 424270_int128, &
        4582116_int128, 40475358_int128, &
        300674088_int128, 1916797311_int128, &
        10648873950_int128, 52179482355_int128, &
        227692286640_int128, 891794789340_int128, &
        3155581562280_int128, 10142940735900_int128, &
        29752626158640_int128, 79960182801345_int128, &
        197548686920970_int128, 449972009097765_int128, &
        947309492837400_int128, 1847253511032930_int128, &
        3342649210440540_int128, 5621728217559090_int128, &
        8799226775309880_int128, 12832205713993575_int128, &
        17451799771031262_int128, 22150361247847371_int128, &
        26252279997448736_int128, 29065024282889672_int128, &
        30067266499541040_int128, 1711_int128, &
        32509_int128, 455126_int128, &
        5006386_int128, 45057474_int128, &
        341149446_int128, 2217471399_int128, &
        12565671261_int128, 62828356305_int128, &
        279871768995_int128, 1119487075980_int128, &
        4047376351620_int128, 13298522298180_int128, &
        39895566894540_int128, 109712808959985_int128, &
        277508869722315_int128, 647520696018735_int128, &
        1397281501935165_int128, 2794563003870330_int128, &
        5189902721473470_int128, 8964377427999630_int128, &
        14420954992868970_int128, 21631432489303455_int128, &
        30284005485024837_int128, 39602161018878633_int128, &
        48402641245296107_int128, 55317304280338408_int128, &
        59132290782430712_int128, 1770_int128, &
        34220_int128, 487635_int128, &
        5461512_int128, 50063860_int128, &
        386206920_int128, 2558620845_int128, &
        14783142660_int128, 75394027566_int128, &
        342700125300_int128, 1399358844975_int128, &
        5166863427600_int128, 17345898649800_int128, &
        53194089192720_int128, 149608375854525_int128, &
        387221678682300_int128, 925029565741050_int128, &
        2044802197953900_int128, 4191844505805495_int128, &
        7984465725343800_int128, 14154280149473100_int128, &
        23385332420868600_int128, 36052387482172425_int128, &
        51915437974328292_int128, 69886166503903470_int128, &
        88004802264174740_int128, 103719945525634515_int128, &
        114449595062769120_int128, 118264581564861424_int128, &
        1830_int128, 35990_int128, &
        521855_int128, 5949147_int128, &
        55525372_int128, 436270780_int128, &
        2944827765_int128, 17341763505_int128, &
        90177170226_int128, 418094152866_int128, &
        1742058970275_int128, 6566222272575_int128, &
        22512762077400_int128, 70539987842520_int128, &
        202802465047245_int128, 536830054536825_int128, &
        1312251244423350_int128, 2969831763694950_int128, &
        6236646703759395_int128, 12176310231149295_int128, &
        22138745874816900_int128, 37539612570341700_int128, &
        59437719903041025_int128, 87967825456500717_int128, &
        121801604478231762_int128, 157890968768078210_int128, &
        191724747789809255_int128, 218169540588403635_int128, &
        232714176627630544_int128, 1891_int128, &
        37820_int128, 557845_int128, &
        6471002_int128, 61474519_int128, &
        491796152_int128, 3381098545_int128, &
        20286591270_int128, 107518933731_int128, &
        508271323092_int128, 2160153123141_int128, &
        8308281242850_int128, 29078984349975_int128, &
        93052749919920_int128, 273342452889765_int128, &
        739632519584070_int128, 1849081298960175_int128, &
        4282083008118300_int128, 9206478467454345_int128, &
        18412956934908690_int128, 34315056105966195_int128, &
        59678358445158600_int128, 96977332473382725_int128, &
        147405545359541742_int128, 209769429934732479_int128, &
        279692573246309972_int128, 349615716557887465_int128, &
        409894288378212890_int128, 450883717216034179_int128, &
        465428353255261088_int128, 1953_int128, &
        39711_int128, 595665_int128, &
        7028847_int128, 67945521_int128, &
        553270671_int128, 3872894697_int128, &
        23667689815_int128, 127805525001_int128, &
        615790256823_int128, 2668424446233_int128, &
        10468434365991_int128, 37387265592825_int128, &
        122131734269895_int128, 366395202809685_int128, &
        1012974972473835_int128, 2588713818544245_int128, &
        6131164307078475_int128, 13488561475572645_int128, &
        27619435402363035_int128, 52728013040874885_int128, &
        93993414551124795_int128, 156655690918541325_int128, &
        244382877832924467_int128, 357174975294274221_int128, &
        489462003181042451_int128, 629308289804197437_int128, &
        759510004936100355_int128, 860778005594247069_int128, &
        916312070471295267_int128, 2016_int128, &
        41664_int128, 635376_int128, &
        7624512_int128, 74974368_int128, &
        621216192_int128, 4426165368_int128, &
        27540584512_int128, 151473214816_int128, &
        743595781824_int128, 3284214703056_int128, &
        13136858812224_int128, 47855699958816_int128, &
        159518999862720_int128, 488526937079580_int128, &
        1379370175283520_int128, 3601688791018080_int128, &
        8719878125622720_int128, 19619725782651120_int128, &
        41107996877935680_int128, 80347448443237920_int128, &
        146721427591999680_int128, 250649105469666120_int128, &
        401038568751465792_int128, 601557853127198688_int128, &
        846636978475316672_int128, 1118770292985239888_int128, &
        1388818294740297792_int128, 1620288010530347424_int128, &
        1777090076065542336_int128, 1832624140942590534_int128, &
        2080_int128, 43680_int128, &
        677040_int128, 8259888_int128, &
        82598880_int128, 696190560_int128, &
        5047381560_int128, 31966749880_int128, &
        179013799328_int128, 895068996640_int128, &
        4027810484880_int128, 16421073515280_int128, &
        60992558771040_int128, 207374699821536_int128, &
        648045936942300_int128, 1867897112363100_int128, &
        4981058966301600_int128, 12321566916640800_int128, &
        28339603908273840_int128, 60727722660586800_int128, &
        121455445321173600_int128, 227068876035237600_int128, &
        397370533061665800_int128, 651687674221131912_int128, &
        1002596421878664480_int128, 1448194831602515360_int128, &
        1965407271460556560_int128, 2507588587725537680_int128, &
        3009106305270645216_int128, 3397378086595889760_int128, &
        3609714217008132870_int128, 2145_int128, &
        45760_int128, 720720_int128, &
        8936928_int128, 90858768_int128, &
        778789440_int128, 5743572120_int128, &
        37014131440_int128, 210980549208_int128, &
        1074082795968_int128, 4922879481520_int128, &
        20448884000160_int128, 77413632286320_int128, &
        268367258592576_int128, 855420636763836_int128, &
        2515943049305400_int128, 6848956078664700_int128, &
        17302625882942400_int128, 40661170824914640_int128, &
        89067326568860640_int128, 182183167981760400_int128, &
        348524321356411200_int128, 624439409096903400_int128, &
        1049058207282797712_int128, 1654284096099796392_int128, &
        2450791253481179840_int128, 3413602103063071920_int128, &
        4472995859186094240_int128, 5516694892996182896_int128, &
        6406484391866534976_int128, 7007092303604022630_int128, &
        7219428434016265740_int128, 2211_int128, &
        47905_int128, 766480_int128, &
        9657648_int128, 99795696_int128, &
        869648208_int128, 6522361560_int128, &
        42757703560_int128, 247994680648_int128, &
        1285063345176_int128, 5996962277488_int128, &
        25371763481680_int128, 97862516286480_int128, &
        345780890878896_int128, 1123787895356412_int128, &
        3371363686069236_int128, 9364899127970100_int128, &
        24151581961607100_int128, 57963796707857040_int128, &
        129728497393775280_int128, 271250494550621040_int128, &
        530707489338171600_int128, 972963730453314600_int128, &
        1673497616379701112_int128, 2703342303382594104_int128, &
        4105075349580976232_int128, 5864393356544251760_int128, &
        7886597962249166160_int128, 9989690752182277136_int128, &
        11923179284862717872_int128, 13413576695470557606_int128, &
        14226520737620288370_int128, 2278_int128, &
        50116_int128, 814385_int128, &
        10424128_int128, 109453344_int128, &
        969443904_int128, 7392009768_int128, &
        49280065120_int128, 290752384208_int128, &
        1533058025824_int128, 7282025622664_int128, &
        31368725759168_int128, 123234279768160_int128, &
        443643407165376_int128, 1469568786235308_int128, &
        4495151581425648_int128, 12736262814039336_int128, &
        33516481089577200_int128, 82115378669464140_int128, &
        187692294101632320_int128, 400978991944396320_int128, &
        801957983888792640_int128, 1503671219791486200_int128, &
        2646461346833015712_int128, 4376839919762295216_int128, &
        6808417652963570336_int128, 9969468706125227992_int128, &
        13750991318793417920_int128, 17876288714431443296_int128, &
        21912870037044995008_int128, 25336755980333275478_int128, &
        27640097433090845976_int128, 28453041475240576740_int128, &
        2346_int128, 52394_int128, &
        864501_int128, 11238513_int128, &
        119877472_int128, 1078897248_int128, &
        8361453672_int128, 56672074888_int128, &
        340032449328_int128, 1823810410032_int128, &
        8815083648488_int128, 38650751381832_int128, &
        154603005527328_int128, 566877686933536_int128, &
        1913212193400684_int128, 5964720367660956_int128, &
        17231414395464984_int128, 46252743903616536_int128, &
        115631859759041340_int128, 269807672771096460_int128, &
        588671286046028640_int128, 1202936975833188960_int128, &
        2305629203680278840_int128, 4150132566624501912_int128, &
        7023301266595310928_int128, 11185257572725865552_int128, &
        16777886359088798328_int128, 23720460024918645912_int128, &
        31627280033224861216_int128, 39789158751476438304_int128, &
        47249626017378270486_int128, 52976853413424121454_int128, &
        56093138908331422716_int128, 2415_int128, &
        54740_int128, 916895_int128, &
        12103014_int128, 131115985_int128, &
        1198774720_int128, 9440350920_int128, &
        65033528560_int128, 396704524216_int128, &
        2163842859360_int128, 10638894058520_int128, &
        47465835030320_int128, 193253756909160_int128, &
        721480692460864_int128, 2480089880334220_int128, &
        7877932561061640_int128, 23196134763125940_int128, &
        63484158299081520_int128, 161884603662657876_int128, &
        385439532530137800_int128, 858478958817125100_int128, &
        1791608261879217600_int128, 3508566179513467800_int128, &
        6455761770304780752_int128, 11173433833219812840_int128, &
        18208558839321176480_int128, 27963143931814663880_int128, &
        40498346384007444240_int128, 55347740058143507128_int128, &
        71416438784701299520_int128, 87038784768854708790_int128, &
        100226479430802391940_int128, 109069992321755544170_int128, &
        112186277816662845432_int128, 2485_int128, &
        57155_int128, 971635_int128, &
        13019909_int128, 143218999_int128, &
        1329890705_int128, 10639125640_int128, &
        74473879480_int128, 461738052776_int128, &
        2560547383576_int128, 12802736917880_int128, &
        58104729088840_int128, 240719591939480_int128, &
        914734449370024_int128, 3201570572795084_int128, &
        10358022441395860_int128, 31074067324187580_int128, &
        86680293062207460_int128, 225368761961739396_int128, &
        547324136192795676_int128, 1243918491347262900_int128, &
        2650087220696342700_int128, 5300174441392685400_int128, &
        9964327949818248552_int128, 17629195603524593592_int128, &
        29381992672540989320_int128, 46171702771135840360_int128, &
        68461490315822108120_int128, 95846086442150951368_int128, &
        126764178842844806648_int128, 158455223553556008310_int128, &
        187265264199657100730_int128, 209296471752557936110_int128, &
        221256270138418389602_int128, 2556_int128, &
        59640_int128, 1028790_int128, &
        13991544_int128, 156238908_int128, &
        1473109704_int128, 11969016345_int128, &
        85113005120_int128, 536211932256_int128, &
        3022285436352_int128, 15363284301456_int128, &
        70907466006720_int128, 298824321028320_int128, &
        1155454041309504_int128, 4116305022165108_int128, &
        13559593014190944_int128, 41432089765583440_int128, &
        117754360386395040_int128, 312049055023946856_int128, &
        772692898154535072_int128, 1791242627540058576_int128, &
        3894005712043605600_int128, 7950261662089028100_int128, &
        15264502391210933952_int128, 27593523553342842144_int128, &
        47011188276065582912_int128, 75553695443676829680_int128, &
        114633193086957948480_int128, 164307576757973059488_int128, &
        222610265284995758016_int128, 285219402396400814958_int128, &
        345720487753213109040_int128, 396561735952215036840_int128, &
        430552741890976325712_int128, 442512540276836779204_int128, &
        2628_int128, 62196_int128, &
        1088430_int128, 15020334_int128, &
        170230452_int128, 1629348612_int128, &
        13442126049_int128, 97082021465_int128, &
        621324937376_int128, 3558497368608_int128, &
        18385569737808_int128, 86270750308176_int128, &
        369731787035040_int128, 1454278362337824_int128, &
        5271759063474612_int128, 17675898036356052_int128, &
        54991682779774384_int128, 159186450151978480_int128, &
        429803415410341896_int128, 1084741953178481928_int128, &
        2563935525694593648_int128, 5685248339583664176_int128, &
        11844267374132633700_int128, 23214764053299962052_int128, &
        42858025944553776096_int128, 74604711829408425056_int128, &
        122564883719742412592_int128, 190186888530634778160_int128, &
        278940769844931007968_int128, 386917842042968817504_int128, &
        507829667681396572974_int128, 630939890149613923998_int128, &
        742282223705428145880_int128, 827114477843191362552_int128, &
        873065282167813104916_int128, 2701_int128, &
        64824_int128, 1150626_int128, &
        16108764_int128, 185250786_int128, &
        1799579064_int128, 15071474661_int128, &
        110524147514_int128, 718406958841_int128, &
        4179822305984_int128, 21944067106416_int128, &
        104656320045984_int128, 456002537343216_int128, &
        1824010149372864_int128, 6726037425812436_int128, &
        22947657099830664_int128, 72667580816130436_int128, &
        214178132931752864_int128, 588989865562320376_int128, &
        1514545368588823824_int128, 3648677478873075576_int128, &
        8249183865278257824_int128, 17529515713716297876_int128, &
        35059031427432595752_int128, 66072789997853738148_int128, &
        117462737773962201152_int128, 197169595549150837648_int128, &
        312751772250377190752_int128, 469127658375565786128_int128, &
        665858611887899825472_int128, 894747509724365390478_int128, &
        1138769557831010496972_int128, 1373222113855042069878_int128, &
        1569396701548619508432_int128, 1700179760011004467468_int128, &
        1746130564335626209832_int128, 2775_int128, &
        67525_int128, 1215450_int128, &
        17259390_int128, 201359550_int128, &
        1984829850_int128, 16871053725_int128, &
        125595622175_int128, 828931106355_int128, &
        4898229264825_int128, 26123889412400_int128, &
        126600387152400_int128, 560658857389200_int128, &
        2280012686716080_int128, 8550047575185300_int128, &
        29673694525643100_int128, 95615237915961100_int128, &
        286845713747883300_int128, 803167998494073240_int128, &
        2103535234151144200_int128, 5163222847461899400_int128, &
        11897861344151333400_int128, 25778699578994555700_int128, &
        52588547141148893628_int128, 101131821425286333900_int128, &
        183535527771815939300_int128, 314632333323113038800_int128, &
        509921367799528028400_int128, 781879430625942976880_int128, &
        1134986270263465611600_int128, 1560606121612265215950_int128, &
        2033517067555375887450_int128, 2511991671686052566850_int128, &
        2942618815403661578310_int128, 3269576461559623975900_int128, &
        3446310324346630677300_int128, 2850_int128, &
        70300_int128, 1282975_int128, &
        18474840_int128, 218618940_int128, &
        2186189400_int128, 18855883575_int128, &
        142466675900_int128, 954526728530_int128, &
        5727160371180_int128, 31022118677225_int128, &
        152724276564800_int128, 687259244541600_int128, &
        2840671544105280_int128, 10830060261901380_int128, &
        38223742100828400_int128, 125288932441604200_int128, &
        382460951663844400_int128, 1090013712241956540_int128, &
        2906703232645217440_int128, 7266758081613043600_int128, &
        17061084191613232800_int128, 37676560923145889100_int128, &
        78367246720143449328_int128, 153720368566435227528_int128, &
        284667349197102273200_int128, 498167861094928978100_int128, &
        824553701122641067200_int128, 1291800798425471005280_int128, &
        1916865700889408588480_int128, 2695592391875730827550_int128, &
        3594123189167641103400_int128, 4545508739241428454300_int128, &
        5454610487089714145160_int128, 6212195276963285554210_int128, &
        6715886785906254653200_int128, 6892620648693261354600_int128, &
        2926_int128, 73150_int128, &
        1353275_int128, 19757815_int128, &
        237093780_int128, 2404808340_int128, &
        21042072975_int128, 161322559475_int128, &
        1096993404430_int128, 6681687099710_int128, &
        36749279048405_int128, 183746395242025_int128, &
        839983521106400_int128, 3527930788646880_int128, &
        13670731806006660_int128, 49053802362729780_int128, &
        163512674542432600_int128, 507749884105448600_int128, &
        1472474663905800940_int128, 3996716944887173980_int128, &
        10173461314258261040_int128, 24327842273226276400_int128, &
        54737645114759121900_int128, 116043807643289338428_int128, &
        232087615286578676856_int128, 438387717763537500728_int128, &
        782835210292031251300_int128, 1322721562217570045300_int128, &
        2116354499548112072480_int128, 3208666499314879593760_int128, &
        4612458092765139416030_int128, 6289715581043371930950_int128, &
        8139631928409069557700_int128, 10000119226331142599460_int128, &
        11666805764052999699370_int128, 12928082062869540207410_int128, &
        13608507434599516007800_int128, 3003_int128, &
        76076_int128, 1426425_int128, &
        21111090_int128, 256851595_int128, &
        2641902120_int128, 23446881315_int128, &
        182364632450_int128, 1258315963905_int128, &
        7778680504140_int128, 43430966148115_int128, &
        220495674290430_int128, 1023729916348425_int128, &
        4367914309753280_int128, 17198662594653540_int128, &
        62724534168736440_int128, 212566476905162380_int128, &
        671262558647881200_int128, 1980224548011249540_int128, &
        5469191608792974920_int128, 14170178259145435020_int128, &
        34501303587484537440_int128, 79065487387985398300_int128, &
        170781452758048460328_int128, 348131422929868015284_int128, &
        670475333050116177584_int128, 1221222928055568752028_int128, &
        2105556772509601296600_int128, 3439076061765682117780_int128, &
        5325020998862991666240_int128, 7821124592080019009790_int128, &
        10902173673808511346980_int128, 14429347509452441488650_int128, &
        18139751154740212157160_int128, 21666924990384142298830_int128, &
        24594887826922539906780_int128, 26536589497469056215210_int128, &
        27217014869199032015600_int128, 3081_int128, &
        79079_int128, 1502501_int128, &
        22537515_int128, 277962685_int128, &
        2898753715_int128, 26088783435_int128, &
        205811513765_int128, 1440680596355_int128, &
        9036996468045_int128, 51209646652255_int128, &
        263926640438545_int128, 1244225590638855_int128, &
        5391644226101705_int128, 21566576904406820_int128, &
        79923196763389980_int128, 275291011073898820_int128, &
        883829035553043580_int128, 2651487106659130740_int128, &
        7449416156804224460_int128, 19639369867938409940_int128, &
        48671481846629972460_int128, 113566790975469935740_int128, &
        249846940146033858628_int128, 518912875687916475612_int128, &
        1018606755979984192868_int128, 1891698261105684929612_int128, &
        3326779700565170048628_int128, 5544632834275283414380_int128, &
        8764097060628673784020_int128, 13146145590943010676030_int128, &
        18723298265888530356770_int128, 25331521183260952835630_int128, &
        32569098664192653645810_int128, 39806676145124354455990_int128, &
        46261812817306682205610_int128, 51131477324391596121990_int128, &
        53753604366668088230810_int128, 3160_int128, &
        82160_int128, 1581580_int128, &
        24040016_int128, 300500200_int128, &
        3176716400_int128, 28987537150_int128, &
        231900297200_int128, 1646492110120_int128, &
        10477677064400_int128, 60246643120300_int128, &
        315136287090800_int128, 1508152231077400_int128, &
        6635869816740560_int128, 26958221130508525_int128, &
        101489773667796800_int128, 355214207837288800_int128, &
        1159120046626942400_int128, 3535316142212174320_int128, &
        10100903263463355200_int128, 27088786024742634400_int128, &
        68310851714568382400_int128, 162238272822099908200_int128, &
        363413731121503794368_int128, 768759815833950334240_int128, &
        1537519631667900668480_int128, 2910305017085669122480_int128, &
        5218477961670854978240_int128, 8871412534840453463008_int128, &
        14308729894903957198400_int128, 21910242651571684460050_int128, &
        31869443856831541032800_int128, 44054819449149483192400_int128, &
        57900619847453606481440_int128, 72375774809317008101800_int128, &
        86068488962431036661600_int128, 97393290141698278327600_int128, &
        104885081691059684352800_int128, 107507208733336176461620_int128, &
        3240_int128, 85320_int128, &
        1663740_int128, 25621596_int128, &
        324540216_int128, 3477216600_int128, &
        32164253550_int128, 260887834350_int128, &
        1878392407320_int128, 12124169174520_int128, &
        70724320184700_int128, 375382930211100_int128, &
        1823288518168200_int128, 8144022047817960_int128, &
        33594090947249085_int128, 128447994798305325_int128, &
        456703981505085600_int128, 1514334254464231200_int128, &
        4694436188839116720_int128, 13636219405675529520_int128, &
        37189689288205989600_int128, 95399637739311016800_int128, &
        230549124536668290600_int128, 525652003943603702568_int128, &
        1132173546955454128608_int128, 2306279447501851002720_int128, &
        4447824648753569790960_int128, 8128782978756524100720_int128, &
        14089890496511308441248_int128, 23180142429744410661408_int128, &
        36218972546475641658450_int128, 53779686508403225492850_int128, &
        75924263305981024225200_int128, 101955439296603089673840_int128, &
        130276394656770614583240_int128, 158444263771748044763400_int128, &
        183461779104129314989200_int128, 202278371832757962680400_int128, &
        212392290424395860814420_int128, 3321_int128, &
        88560_int128, 1749060_int128, &
        27285336_int128, 350161812_int128, &
        3801756816_int128, 35641470150_int128, &
        293052087900_int128, 2139280241670_int128, &
        14002561581840_int128, 82848489359220_int128, &
        446107250395800_int128, 2198671448379300_int128, &
        9967310565986160_int128, 41738112995067045_int128, &
        162042085745554410_int128, 585151976303390925_int128, &
        1971038235969316800_int128, 6208770443303347920_int128, &
        18330655594514646240_int128, 50825908693881519120_int128, &
        132589327027517006400_int128, 325948762275979307400_int128, &
        756201128480271993168_int128, 1657825550899057831176_int128, &
        3438452994457305131328_int128, 6754104096255420793680_int128, &
        12576607627510093891680_int128, 22218673475267832541968_int128, &
        37270032926255719102656_int128, 59399114976220052319858_int128, &
        89998659054878867151300_int128, 129703949814384249718050_int128, &
        177879702602584113899040_int128, 232231833953373704257080_int128, &
        288720658428518659346640_int128, 341906042875877359752600_int128, &
        385740150936887277669600_int128, 414670662257153823494820_int128, &
        424784580848791721628840_int128, 3403_int128, &
        91881_int128, 1837620_int128, &
        29034396_int128, 377447148_int128, &
        4151918628_int128, 39443226966_int128, &
        328693558050_int128, 2432332329570_int128, &
        16141841823510_int128, 96851050941060_int128, &
        528955739755020_int128, 2644778698775100_int128, &
        12165982014365460_int128, 51705423561053205_int128, &
        203780198740621455_int128, 747194062048945335_int128, &
        2556190212272707725_int128, 8179808679272664720_int128, &
        24539426037817994160_int128, 69156564288396165360_int128, &
        183415235721398525520_int128, 458538089303496313800_int128, &
        1082149890756251300568_int128, 2414026679379329824344_int128, &
        5096278545356362962504_int128, 10192557090712725925008_int128, &
        19330711723765514685360_int128, 34795281102777926433648_int128, &
        59488706401523551644624_int128, 96669147902475771422514_int128, &
        149397774031098919471158_int128, 219702608869263116869350_int128, &
        307583652416968363617090_int128, 410111536555957818156120_int128, &
        520952492381892363603720_int128, 630626701304396019099240_int128, &
        727646193812764637422200_int128, 800410813194041101164420_int128, &
        839455243105945545123660_int128, 3486_int128, &
        95284_int128, 1929501_int128, &
        30872016_int128, 406481544_int128, &
        4529365776_int128, 43595145594_int128, &
        368136785016_int128, 2761025887620_int128, &
        18574174153080_int128, 112992892764570_int128, &
        625806790696080_int128, 3173734438530120_int128, &
        14810760713140560_int128, 63871405575418665_int128, &
        255485622301674660_int128, 950974260789566790_int128, &
        3303384274321653060_int128, 10735998891545372445_int128, &
        32719234717090658880_int128, 93695990326214159520_int128, &
        252571800009794690880_int128, 641953325024894839320_int128, &
        1540687980059747614368_int128, 3496176570135581124912_int128, &
        7510305224735692786848_int128, 15288835636069088887512_int128, &
        29523268814478240610368_int128, 54125992826543441119008_int128, &
        94283987504301478078272_int128, 156157854303999323067138_int128, &
        246066921933574690893672_int128, 369100382900362036340508_int128, &
        527286261286231480486440_int128, 717695188972926181773210_int128, &
        931064028937850181759840_int128, 1151579193686288382702960_int128, &
        1358272895117160656521440_int128, 1528057007006805738586620_int128, &
        1639866056299986646288080_int128, 1678910486211891090247320_int128, &
        3570_int128, 98770_int128, &
        2024785_int128, 32801517_int128, &
        437353560_int128, 4935847320_int128, &
        48124511370_int128, 411731930610_int128, &
        3129162672636_int128, 21335200040700_int128, &
        131567066917650_int128, 738799683460650_int128, &
        3799541229226200_int128, 17984495151670680_int128, &
        78682166288559225_int128, 319357027877093325_int128, &
        1206459883091241450_int128, 4254358535111219850_int128, &
        14039383165867025505_int128, 43455233608636031325_int128, &
        126415225043304818400_int128, 346267790336008850400_int128, &
        894525125034689530200_int128, 2182641305084642453688_int128, &
        5036864550195328739280_int128, 11006481794871273911760_int128, &
        22799140860804781674360_int128, 44812104450547329497880_int128, &
        83649261641021681729376_int128, 148409980330844919197280_int128, &
        250441841808300801145410_int128, 402224776237574013960810_int128, &
        615167304833936727234180_int128, 896386644186593516826948_int128, &
        1244981450259157662259650_int128, 1648759217910776363533050_int128, &
        2082643222624138564462800_int128, 2509852088803449039224400_int128, &
        2886329902123966395108060_int128, 3167923063306792384874700_int128, &
        3318776542511877736535400_int128, 3655_int128, &
        102340_int128, 2123555_int128, &
        34826302_int128, 470155077_int128, &
        5373200880_int128, 53060358690_int128, &
        459856441980_int128, 3540894603246_int128, &
        24464362713336_int128, 152902266958350_int128, &
        870366750378300_int128, 4538340912686850_int128, &
        21784036380896880_int128, 96666661440229905_int128, &
        398039194165652550_int128, 1525816910968334775_int128, &
        5460818418202461300_int128, 18293741700978245355_int128, &
        57494616774503056830_int128, 169870458651940849725_int128, &
        472683015379313668800_int128, 1240792915370698380600_int128, &
        3077166430119331983888_int128, 7219505855279971192968_int128, &
        16043346345066602651040_int128, 33805622655676055586120_int128, &
        67611245311352111172240_int128, 128461366091569011227256_int128, &
        232059241971866600926656_int128, 398851822139145720342690_int128, &
        652666618045874815106220_int128, 1017392081071510741194990_int128, &
        1511553949020530244061128_int128, 2141368094445751179086598_int128, &
        2893740668169934025792700_int128, 3731402440534914927995850_int128, &
        4592495311427587603687200_int128, 5396181990927415434332460_int128, &
        6054252965430758779982760_int128, 6486699605818670121410100_int128, &
        6637553085023755473070800_int128, 3741_int128, &
        105995_int128, 2225895_int128, &
        36949857_int128, 504981379_int128, &
        5843355957_int128, 58433559570_int128, &
        512916800670_int128, 4000751045226_int128, &
        28005257316582_int128, 177366629671686_int128, &
        1023269017336650_int128, 5408707663065150_int128, &
        26322377293583730_int128, 118450697821126785_int128, &
        494705855605882455_int128, 1923856105133987325_int128, &
        6986635329170796075_int128, 23754560119180706655_int128, &
        75788358475481302185_int128, 227365075426443906555_int128, &
        642553474031254518525_int128, 1713475930750012049400_int128, &
        4317959345490030364488_int128, 10296672285399303176856_int128, &
        23262852200346573844008_int128, 49848969000742658237160_int128, &
        101416867967028166758360_int128, 196072611402921122399496_int128, &
        360520608063435612153912_int128, 630911064111012321269346_int128, &
        1051518440185020535448910_int128, 1670058699117385556301210_int128, &
        2528946030092040985256118_int128, 3652922043466281423147726_int128, &
        5035108762615685204879298_int128, 6625143108704848953788550_int128, &
        8323897751962502531683050_int128, 9988677302355003038019660_int128, &
        11450434956358174214315220_int128, 12540952571249428901392860_int128, &
        13124252690842425594480900_int128, 3828_int128, &
        109736_int128, 2331890_int128, &
        39175752_int128, 541931236_int128, &
        6348337336_int128, 64276915527_int128, &
        571350360240_int128, 4513667845896_int128, &
        32006008361808_int128, 205371886988268_int128, &
        1200635647008336_int128, 6431976680401800_int128, &
        31731084956648880_int128, 144773075114710515_int128, &
        613156553427009240_int128, 2418561960739869780_int128, &
        8910491434304783400_int128, 30741195448351502730_int128, &
        99542918594662008840_int128, 303153433901925208740_int128, &
        869918549457698425080_int128, 2356029404781266567925_int128, &
        6031435276240042413888_int128, 14614631630889333541344_int128, &
        33559524485745877020864_int128, 73111821201089232081168_int128, &
        151265836967770824995520_int128, 297489479369949289157856_int128, &
        556593219466356734553408_int128, 991431672174447933423258_int128, &
        1682429504296032856718256_int128, 2721577139302406091750120_int128, &
        4199004729209426541557328_int128, 6181868073558322408403844_int128, &
        8688030806081966628027024_int128, 11660251871320534158667848_int128, &
        14949040860667351485471600_int128, 18312575054317505569702710_int128, &
        21439112258713177252334880_int128, 23991387527607603115708080_int128, &
        25665205262091854495873760_int128, 26248505381684851188961800_int128, &
        3916_int128, 113564_int128, &
        2441626_int128, 41507642_int128, &
        581106988_int128, 6890268572_int128, &
        70625252863_int128, 635627275767_int128, &
        5085018206136_int128, 36519676207704_int128, &
        237377895350076_int128, 1406007533996604_int128, &
        7632612327410136_int128, 38163061637050680_int128, &
        176504160071359395_int128, 757929628541719755_int128, &
        3031718514166879020_int128, 11329053395044653180_int128, &
        39651686882656286130_int128, 130284114043013511570_int128, &
        402696352496587217580_int128, 1173071983359623633820_int128, &
        3225947954238964993005_int128, 8387464681021308981813_int128, &
        20646066907129375955232_int128, 48174156116635210562208_int128, &
        106671345686835109102032_int128, 224377658168860057076688_int128, &
        448755316337720114153376_int128, 854082698836306023711264_int128, &
        1548024891640804667976666_int128, 2673861176470480790141514_int128, &
        4404006643598438948468376_int128, 6920581868511832633307448_int128, &
        10380872802767748949961172_int128, 14869898879640289036430868_int128, &
        20348282677402500786694872_int128, 26609292731987885644139448_int128, &
        33261615914984857055174310_int128, 39751687313030682822037590_int128, &
        45430499786320780368042960_int128, 49656592789699457611581840_int128, &
        51913710643776705684835560_int128, 4005_int128, &
        117480_int128, 2555190_int128, &
        43949268_int128, 622614630_int128, &
        7471375560_int128, 77515521435_int128, &
        706252528630_int128, 5720645481903_int128, &
        41604694413840_int128, 273897571557780_int128, &
        1643385429346680_int128, 9038619861406740_int128, &
        45795673964460816_int128, 214667221708410075_int128, &
        934433788613079150_int128, 3789648142708598775_int128, &
        14360771909211532200_int128, 50980740277700939310_int128, &
        169935800925669797700_int128, 532980466539600729150_int128, &
        1575768335856210851400_int128, 4399019937598588626825_int128, &
        11613412635260273974818_int128, 29033531588150684937045_int128, &
        68820223023764586517440_int128, 154845501803470319664240_int128, &
        331049003855695166178720_int128, 673132974506580171230064_int128, &
        1302838015174026137864640_int128, 2402107590477110691687930_int128, &
        4221886068111285458118180_int128, 7077867820068919738609890_int128, &
        11324588512110271581775824_int128, 17301454671279581583268620_int128, &
        25250771682408037986392040_int128, 35218181557042789823125740_int128, &
        46957575409390386430834320_int128, 59870908646972742699313758_int128, &
        73013303228015539877211900_int128, 85182187099351463190080550_int128, &
        95087092576020237979624800_int128, 101570303433476163296417400_int128, &
        103827421287553411369671120_int128, 4095_int128, &
        121485_int128, 2672670_int128, &
        46504458_int128, 666563898_int128, &
        8093990190_int128, 84986896995_int128, &
        783768050065_int128, 6426898010533_int128, &
        47325339895743_int128, 315502265971620_int128, &
        1917283000904460_int128, 10682005290753420_int128, &
        54834293825867556_int128, 260462895672870891_int128, &
        1149101010321489225_int128, 4724081931321677925_int128, &
        18150420051920130975_int128, 65341512186912471510_int128, &
        220916541203370737010_int128, 702916267465270526850_int128, &
        2108748802395811580550_int128, 5974788273454799478225_int128, &
        16012432572858862601643_int128, 40646944223410958911863_int128, &
        97853754611915271454485_int128, 223665724827234906181680_int128, &
        485894505659165485842960_int128, 1004181978362275337408784_int128, &
        1975970989680606309094704_int128, 3704945605651136829552570_int128, &
        6623993658588396149806110_int128, 11299753888180205196728070_int128, &
        18402456332179191320385714_int128, 28626043183389853165044444_int128, &
        42552226353687619569660660_int128, 60468953239450827809517780_int128, &
        82175756966433176253960060_int128, 106828484056363129130148078_int128, &
        132884211874988282576525658_int128, 158195490327367003067292450_int128, &
        180269279675371701169705350_int128, 196657396009496401276042200_int128, &
        205397724721029574666088520_int128, 4186_int128, &
        125580_int128, 2794155_int128, &
        49177128_int128, 713068356_int128, &
        8760554088_int128, 93080887185_int128, &
        868754947060_int128, 7210666060598_int128, &
        53752237906276_int128, 362827605867363_int128, &
        2232785266876080_int128, 12599288291657880_int128, &
        65516299116620976_int128, 315297189498738447_int128, &
        1409563905994360116_int128, 5873182941643167150_int128, &
        22874501983241808900_int128, 83491932238832602485_int128, &
        286258053390283208520_int128, 923832808668641263860_int128, &
        2811665069861082107400_int128, 8083537075850611058775_int128, &
        21987220846313662079868_int128, 56659376796269821513506_int128, &
        138500698835326230366348_int128, 321519479439150177636165_int128, &
        709560230486400392024640_int128, 1490076484021440823251744_int128, &
        2980152968042881646503488_int128, 5680916595331743138647274_int128, &
        10328939264239532979358680_int128, 17923747546768601346534180_int128, &
        29702210220359396517113784_int128, 47028499515569044485430158_int128, &
        71178269537077472734705104_int128, 103021179593138447379178440_int128, &
        142644710205884004063477840_int128, 189004241022796305384108138_int128, &
        239712695931351411706673736_int128, 291079702202355285643818108_int128, &
        338464770002738704236997800_int128, 376926675684868102445747550_int128, &
        402055120730525975942130720_int128, 410795449442059149332177040_int128, &
        4278_int128, 129766_int128, &
        2919735_int128, 51971283_int128, &
        762245484_int128, 9473622444_int128, &
        101841441273_int128, 961835834245_int128, &
        8079421007658_int128, 60962903966874_int128, &
        416579843773639_int128, 2595612872743443_int128, &
        14832073558533960_int128, 78115587408278856_int128, &
        380813488615359423_int128, 1724861095493098563_int128, &
        7282746847637527266_int128, 28747684924884976050_int128, &
        106366434222074411385_int128, 369749985629115811005_int128, &
        1210090862058924472380_int128, 3735497878529723371260_int128, &
        10895202145711693166175_int128, 30070757922164273138643_int128, &
        78646597642583483593374_int128, 195160075631596051879854_int128, &
        460020178274476408002513_int128, 1031079709925550569660805_int128, &
        2199636714507841215276384_int128, 4470229452064322469755232_int128, &
        8661069563374624785150762_int128, 16009855859571276118005954_int128, &
        28252686811008134325892860_int128, 47625957767127997863647964_int128, &
        76730709735928441002543942_int128, 118206769052646517220135262_int128, &
        174199449130215920113883544_int128, 245665889799022451442656280_int128, &
        331648951228680309447585978_int128, 428716936954147717090781874_int128, &
        530792398133706697350491844_int128, 629544472205093989880815908_int128, &
        715391445687606806682745350_int128, 778981796415394078387878270_int128, &
        812850570172585125274307760_int128, 4371_int128, &
        134044_int128, 3049501_int128, &
        54891018_int128, 814216767_int128, &
        10235867928_int128, 111315063717_int128, &
        1063677275518_int128, 9041256841903_int128, &
        69042324974532_int128, 477542747740513_int128, &
        3012192716517082_int128, 17427686431277403_int128, &
        92947660966812816_int128, 458929076023638279_int128, &
        2105674584108457986_int128, 9007607943130625829_int128, &
        36030431772522503316_int128, 135114119146959387435_int128, &
        476116419851190222390_int128, 1579840847688040283385_int128, &
        4945588740588647843640_int128, 14630700024241416537435_int128, &
        40965960067875966304818_int128, 108717355564747756732017_int128, &
        273806673274179535473228_int128, 655180253906072459882367_int128, &
        1491099888200026977663318_int128, 3230716424433391784937189_int128, &
        6669866166572163685031616_int128, 13131299015438947254905994_int128, &
        24670925422945900903156716_int128, 44262542670579410443898814_int128, &
        75878644578136132189540824_int128, 124356667503056438866191906_int128, &
        194937478788574958222679204_int128, 292406218182862437334018806_int128, &
        419865338929238371556539824_int128, 577314841027702760890242258_int128, &
        760365888182828026538367852_int128, 959509335087854414441273718_int128, &
        1160336870338800687231307752_int128, 1344935917892700796563561258_int128, &
        1494373242103000885070623620_int128, 1591832366587979203662186030_int128, &
        1625701140345170250548615520_int128, 4465_int128, &
        138415_int128, 3183545_int128, &
        57940519_int128, 869107785_int128, &
        11050084695_int128, 121550931645_int128, &
        1174992339235_int128, 10104934117421_int128, &
        78083581816435_int128, 546585072715045_int128, &
        3489735464257595_int128, 20439879147794485_int128, &
        110375347398090219_int128, 551876736990451095_int128, &
        2564603660132096265_int128, 11113282527239083815_int128, &
        45038039715653129145_int128, 171144550919481890751_int128, &
        611230538998149609825_int128, 2055957267539230505775_int128, &
        6525429588276688127025_int128, 19576288764830064381075_int128, &
        55596660092117382842253_int128, 149683315632623723036835_int128, &
        382524028838927292205245_int128, 928986927180251995355595_int128, &
        2146280142106099437545685_int128, 4721816312633418762600507_int128, &
        9900582591005555469968805_int128, 19801165182011110939937610_int128, &
        37802224438384848158062710_int128, 68933468093525311347055530_int128, &
        120141187248715542633439638_int128, 200235312081192571055732730_int128, &
        319294146291631397088871110_int128, 487343696971437395556698010_int128, &
        712271557112100808890558630_int128, 997180179956941132446782082_int128, &
        1337680729210530787428610110_int128, 1719875223270682440979641570_int128, &
        2119846205426655101672581470_int128, 2505272788231501483794869010_int128, &
        2839309159995701681634184878_int128, 3086205608690980088732809650_int128, &
        3217533506933149454210801550_int128, 4560_int128, &
        142880_int128, 3321960_int128, &
        61124064_int128, 927048304_int128, &
        11919192480_int128, 132601016340_int128, &
        1296543270880_int128, 11279926456656_int128, &
        88188515933856_int128, 624668654531480_int128, &
        4036320536972640_int128, 23929614612052080_int128, &
        130815226545884704_int128, 662252084388541314_int128, &
        3116480397122547360_int128, 13677886187371180080_int128, &
        56151322242892212960_int128, 216182590635135019896_int128, &
        782375089917631500576_int128, 2667187806537380115600_int128, &
        8581386855815918632800_int128, 26101718353106752508100_int128, &
        75172948856947447223328_int128, 205279975724741105879088_int128, &
        532207344471551015242080_int128, 1311510956019179287560840_int128, &
        3075267069286351432901280_int128, 6868096454739518200146192_int128, &
        14622398903638974232569312_int128, 29701747773016666409906415_int128, &
        57603389620395959098000320_int128, 106735692531910159505118240_int128, &
        189074655342240853980495168_int128, 320376499329908113689172368_int128, &
        519529458372823968144603840_int128, 806637843263068792645569120_int128, &
        1199615254083538204447256640_int128, 1709451737069041941337340712_int128, &
        2334860909167471919875392192_int128, 3057555952481213228408251680_int128, &
        3839721428697337542652223040_int128, 4625118993658156585467450480_int128, &
        5344581948227203165429053888_int128, 5925514768686681770366994528_int128, &
        6303739115624129542943611200_int128, 6435067013866298908421603100_int128, &
        4656_int128, 147440_int128, &
        3464840_int128, 64446024_int128, &
        988172368_int128, 12846240784_int128, &
        144520208820_int128, 1429144287220_int128, &
        12576469727536_int128, 99468442390512_int128, &
        712857170465336_int128, 4660989191504120_int128, &
        27965935149024720_int128, 154744841157936784_int128, &
        793067310934426018_int128, 3778732481511088674_int128, &
        16794366584493727440_int128, 69829208430263393040_int128, &
        272333912878027232856_int128, 998557680552766520472_int128, &
        3449562896455011616176_int128, 11248574662353298748400_int128, &
        34683105208922671140900_int128, 101274667210054199731428_int128, &
        280452924581688553102416_int128, 737487320196292121121168_int128, &
        1843718300490730302802920_int128, 4386778025305530720462120_int128, &
        9943363524025869633047472_int128, 21490495358378492432715504_int128, &
        44324146676655640642475727_int128, 87305137393412625507906735_int128, &
        164339082152306118603118560_int128, 295810347874151013485613408_int128, &
        509451154672148967669667536_int128, 839905957702732081833776208_int128, &
        1326167301635892760790172960_int128, 2006253097346606997092825760_int128, &
        2909066991152580145784597352_int128, 4044312646236513861212732904_int128, &
        5392416861648685148283643872_int128, 6897277381178550771060474720_int128, &
        8464840422355494128119673520_int128, 9969700941885359750896504368_int128, &
        11270096716913884935796048416_int128, 12229253884310811313310605728_int128, &
        12738806129490428451365214300_int128, 4753_int128, &
        152096_int128, 3612280_int128, &
        67910864_int128, 1052618392_int128, &
        13834413152_int128, 157366449604_int128, &
        1573664496040_int128, 14005614014756_int128, &
        112044912118048_int128, 812325612855848_int128, &
        5373846361969456_int128, 32626924340528840_int128, &
        182710776306961504_int128, 947812152092362802_int128, &
        4571799792445514692_int128, 20573099066004816114_int128, &
        86623575014757120480_int128, 342163121308290625896_int128, &
        1270891593430793753328_int128, 4448120577007778136648_int128, &
        14698137558808310364576_int128, 45931679871275969889300_int128, &
        135957772418976870872328_int128, 381727591791742752833844_int128, &
        1017940244777980674223584_int128, 2581205620687022423924088_int128, &
        6230496325796261023265040_int128, 14330141549331400353509592_int128, &
        31433858882404362065762976_int128, 65814642035034133075191231_int128, &
        131629284070068266150382462_int128, 251644219545718744111025295_int128, &
        460149430026457132088731968_int128, 805261502546299981155280944_int128, &
        1349357112374881049503443744_int128, 2166073259338624842623949168_int128, &
        3332420398982499757882998720_int128, 4915320088499187142877423112_int128, &
        6953379637389094006997330256_int128, 9436729507885199009496376776_int128, &
        12289694242827235919344118592_int128, 15362117803534044899180148240_int128, &
        18434541364240853879016177888_int128, 21239797658799244686692552784_int128, &
        23499350601224696249106654144_int128, 24968060013801239764675820028_int128, &
        25477612258980856902730428600_int128, 4851_int128, &
        156849_int128, 3764376_int128, &
        71523144_int128, 1120529256_int128, &
        14887031544_int128, 171200862756_int128, &
        1731030945644_int128, 15579278510796_int128, &
        126050526132804_int128, 924370524973896_int128, &
        6186171974825304_int128, 38000770702498296_int128, &
        215337700647490344_int128, 1130522928399324306_int128, &
        5519611944537877494_int128, 25144898858450330806_int128, &
        107196674080761936594_int128, 428786696323047746376_int128, &
        1613054714739084379224_int128, 5719012170438571889976_int128, &
        19146258135816088501224_int128, 60629817430084280253876_int128, &
        181889452290252840761628_int128, 517685364210719623706172_int128, &
        1399667836569723427057428_int128, 3599145865465003098147672_int128, &
        8811701946483283447189128_int128, 20560637875127661376774632_int128, &
        45764000431735762419272568_int128, 97248500917438495140954207_int128, &
        197443926105102399225573693_int128, 383273503615787010261407757_int128, &
        711793649572175876199757263_int128, 1265410932572757113244012912_int128, &
        2154618614921181030658724688_int128, 3515430371713505892127392912_int128, &
        5498493658321124600506947888_int128, 8247740487481686900760421832_int128, &
        11868699725888281149874753368_int128, 16390109145274293016493707032_int128, &
        21726423750712434928840495368_int128, 27651812046361280818524266832_int128, &
        33796659167774898778196326128_int128, 39674339023040098565708730672_int128, &
        44739148260023940935799206928_int128, 48467410615025936013782474172_int128, &
        50445672272782096667406248628_int128, 4950_int128, &
        161700_int128, 3921225_int128, &
        75287520_int128, 1192052400_int128, &
        16007560800_int128, 186087894300_int128, &
        1902231808400_int128, 17310309456440_int128, &
        141629804643600_int128, 1050421051106700_int128, &
        7110542499799200_int128, 44186942677323600_int128, &
        253338471349988640_int128, 1345860629046814650_int128, &
        6650134872937201800_int128, 30664510802988208300_int128, &
        132341572939212267400_int128, 535983370403809682970_int128, &
        2041841411062132125600_int128, 7332066885177656269200_int128, &
        24865270306254660391200_int128, 79776075565900368755100_int128, &
        242519269720337121015504_int128, 699574816500972464467800_int128, &
        1917353200780443050763600_int128, 4998813702034726525205100_int128, &
        12410847811948286545336800_int128, 29372339821610944823963760_int128, &
        66324638306863423796047200_int128, 143012501349174257560226775_int128, &
        294692427022540894366527900_int128, 580717429720889409486981450_int128, &
        1095067153187962886461165020_int128, 1977204582144932989443770175_int128, &
        3420029547493938143902737600_int128, 5670048986634686922786117600_int128, &
        9013924030034630492634340800_int128, 13746234145802811501267369720_int128, &
        20116440213369968050635175200_int128, 28258808871162574166368460400_int128, &
        38116532895986727945334202400_int128, 49378235797073715747364762200_int128, &
        61448471214136179596720592960_int128, 73470998190814997343905056800_int128, &
        84413487283064039501507937600_int128, 93206558875049876949581681100_int128, &
        98913082887808032681188722800_int128, 100891344545564193334812497256_int128, &
        5050_int128, 166650_int128, &
        4082925_int128, 79208745_int128, &
        1267339920_int128, 17199613200_int128, &
        202095455100_int128, 2088319702700_int128, &
        19212541264840_int128, 158940114100040_int128, &
        1192050855750300_int128, 8160963550905900_int128, &
        51297485177122800_int128, 297525414027312240_int128, &
        1599199100396803290_int128, 7995995501984016450_int128, &
        37314645675925410100_int128, 163006083742200475700_int128, &
        668324943343021950370_int128, 2577824781465941808570_int128, &
        9373908296239788394800_int128, 32197337191432316660400_int128, &
        104641345872155029146300_int128, 322295345286237489770604_int128, &
        942094086221309585483304_int128, 2616928017281415515231400_int128, &
        6916166902815169575968700_int128, 17409661513983013070541900_int128, &
        41783187633559231369300560_int128, 95696978128474368620010960_int128, &
        209337139656037681356273975_int128, 437704928371715151926754675_int128, &
        875409856743430303853509350_int128, 1675784582908852295948146470_int128, &
        3072271735332895875904935195_int128, 5397234129638871133346507775_int128, &
        9090078534128625066688855200_int128, 14683973016669317415420458400_int128, &
        22760158175837441993901710520_int128, 33862674359172779551902544920_int128, &
        48375249084532542217003635600_int128, 66375341767149302111702662800_int128, &
        87494768693060443692698964600_int128, 110826707011209895344085355160_int128, &
        134919469404951176940625649760_int128, 157884485473879036845412994400_int128, &
        177620046158113916451089618700_int128, 192119641762857909630770403900_int128, &
        199804427433372226016001220056_int128, 5151_int128, &
        171700_int128, 4249575_int128, &
        83291670_int128, 1346548665_int128, &
        18466953120_int128, 219295068300_int128, &
        2290415157800_int128, 21300860967540_int128, &
        178152655364880_int128, 1350990969850340_int128, &
        9353014406656200_int128, 59458448728028700_int128, &
        348822899204435040_int128, 1896724514424115530_int128, &
        9595194602380819740_int128, 45310641177909426550_int128, &
        200320729418125885800_int128, 831331027085222426070_int128, &
        3246149724808963758940_int128, 11951733077705730203370_int128, &
        41571245487672105055200_int128, 136838683063587345806700_int128, &
        426936691158392518916904_int128, 1264389431507547075253908_int128, &
        3559022103502725100714704_int128, 9533094920096585091200100_int128, &
        24325828416798182646510600_int128, 59192849147542244439842460_int128, &
        137480165762033599989311520_int128, 305034117784512049976284935_int128, &
        647042068027752833283028650_int128, 1313114785115145455780264025_int128, &
        2551194439652282599801655820_int128, 4748056318241748171853081665_int128, &
        8469505864971767009251442970_int128, 14487312663767496200035362975_int128, &
        23774051550797942482109313600_int128, 37444131192506759409322168920_int128, &
        56622832535010221545804255440_int128, 82237923443705321768906180520_int128, &
        114750590851681844328706298400_int128, 153870110460209745804401627400_int128, &
        198321475704270339036784319760_int128, 245746176416161072284711004920_int128, &
        292803954878830213786038644160_int128, 335504531631992953296502613100_int128, &
        369739687920971826081860022600_int128, 391924069196230135646771623956_int128, &
        399608854866744452032002440112_int128, 5253_int128, &
        176851_int128, 4421275_int128, &
        87541245_int128, 1429840335_int128, &
        19813501785_int128, 237762021420_int128, &
        2509710226100_int128, 23591276125340_int128, &
        199453516332420_int128, 1529143625215220_int128, &
        10704005376506540_int128, 68811463134684900_int128, &
        408281347932463740_int128, 2245547413628550570_int128, &
        11491919116804935270_int128, 54905835780290246290_int128, &
        245631370596035312350_int128, 1031651756503348311870_int128, &
        4077480751894186185010_int128, 15197882802514693962310_int128, &
        53522978565377835258570_int128, 178409928551259450861900_int128, &
        563775374221979864723604_int128, 1691326122665939594170812_int128, &
        4823411535010272175968612_int128, 13092117023599310191914804_int128, &
        33858923336894767737710700_int128, 83518677564340427086353060_int128, &
        196673014909575844429153980_int128, 442514283546545649965596455_int128, &
        952076185812264883259313585_int128, 1960156853142898289063292675_int128, &
        3864309224767428055581919845_int128, 7299250757894030771654737485_int128, &
        13217562183213515181104524635_int128, 22956818528739263209286805945_int128, &
        38261364214565438682144676575_int128, 61218182743304701891431482520_int128, &
        94066963727516980955126424360_int128, 138860755978715543314710435960_int128, &
        196988514295387166097612478920_int128, 268620701311891590133107925800_int128, &
        352191586164480084841185947160_int128, 444067652120431411321495324680_int128, &
        538550131294991286070749649080_int128, 628308486510823167082541257260_int128, &
        705244219552964779378362635700_int128, 761663757117201961728631646556_int128, &
        791532924062974587678774064068_int128, 5356_int128, &
        182104_int128, 4598126_int128, &
        91962520_int128, 1517381580_int128, &
        21243342120_int128, 257575523205_int128, &
        2747472247520_int128, 26100986351440_int128, &
        223044792457760_int128, 1728597141547640_int128, &
        12233149001721760_int128, 79515468511191440_int128, &
        477092811067148640_int128, 2653828761561014310_int128, &
        13737466530433485840_int128, 66397754897095181560_int128, &
        300537206376325558640_int128, 1277283127099383624220_int128, &
        5109132508397534496880_int128, 19275363554408880147320_int128, &
        68720861367892529220880_int128, 231932907116637286120470_int128, &
        742185302773239315585504_int128, 2255101496887919458894416_int128, &
        6514737657676211770139424_int128, 17915528558609582367883416_int128, &
        46951040360494077929625504_int128, 117377600901235194824063760_int128, &
        280191692473916271515507040_int128, 639187298456121494394750435_int128, &
        1394590469358810533224910040_int128, 2912233038955163172322606260_int128, &
        5824466077910326344645212520_int128, 11163559982661458827236657330_int128, &
        20516812941107545952759262120_int128, 36174380711952778390391330580_int128, &
        61218182743304701891431482520_int128, 99479546957870140573576159095_int128, &
        155285146470821682846557906880_int128, 232927719706232524269836860320_int128, &
        335849270274102709412322914880_int128, 465609215607278756230720404720_int128, &
        620812287476371674974293872960_int128, 796259238284911496162681271840_int128, &
        982617783415422697392244973760_int128, 1166858617805814453153290906340_int128, &
        1333552706063787946460903892960_int128, 1466907976670166741106994282256_int128, &
        1553196681180176549407405710624_int128, 1583065848125949175357548128136_int128, &
        5460_int128, 187460_int128, &
        4780230_int128, 96560646_int128, &
        1609344100_int128, 22760723700_int128, &
        278818865325_int128, 3005047770725_int128, &
        28848458598960_int128, 249145778809200_int128, &
        1951641934005400_int128, 13961746143269400_int128, &
        91748617512913200_int128, 556608279578340080_int128, &
        3130921572628162950_int128, 16391295291994500150_int128, &
        80135221427528667400_int128, 366934961273420740200_int128, &
        1577820333475709182860_int128, 6386415635496918121100_int128, &
        24384496062806414644200_int128, 87996224922301409368200_int128, &
        300653768484529815341350_int128, 974118209889876601705974_int128, &
        2997286799661158774479920_int128, 8769839154564131229033840_int128, &
        24430266216285794138022840_int128, 64866568919103660297508920_int128, &
        164328641261729272753689264_int128, 397569293375151466339570800_int128, &
        919378990930037765910257475_int128, 2033777767814932027619660475_int128, &
        4306823508313973705547516300_int128, 8736699116865489516967818780_int128, &
        16988026060571785171881869850_int128, 31680372923769004779995919450_int128, &
        56691193653060324343150592700_int128, 97392563455257480281822813100_int128, &
        160697729701174842465007641615_int128, 254764693428691823420134065975_int128, &
        388212866177054207116394767200_int128, 568776989980335233682159775200_int128, &
        801458485881381465643043319600_int128, 1086421503083650431205014277680_int128, &
        1417071525761283171136975144800_int128, 1778877021700334193554926245600_int128, &
        2149476401221237150545535880100_int128, 2500411323869602399614194799300_int128, &
        2800460682733954687567898175216_int128, 3020104657850343290514399992880_int128, &
        3136262529306125724764953838760_int128, 5565_int128, &
        192920_int128, 4967690_int128, &
        101340876_int128, 1705904746_int128, &
        24370067800_int128, 301579589025_int128, &
        3283866636050_int128, 31853506369685_int128, &
        277994237408160_int128, 2200787712814600_int128, &
        15913388077274800_int128, 105710363656182600_int128, &
        648356897091253280_int128, 3687529852206503030_int128, &
        19522216864622663100_int128, 96526516719523167550_int128, &
        447070182700949407600_int128, 1944755294749129923060_int128, &
        7964235968972627303960_int128, 30770911698303332765300_int128, &
        112380720985107824012400_int128, 388649993406831224709550_int128, &
        1274771978374406417047324_int128, 3971405009551035376185894_int128, &
        11767125954225290003513760_int128, 33200105370849925367056680_int128, &
        89296835135389454435531760_int128, 229195210180832933051198184_int128, &
        561897934636880739093260064_int128, 1316948284305189232249828275_int128, &
        2953156758744969793529917950_int128, 6340601276128905733167176775_int128, &
        13043522625179463222515335080_int128, 25724725177437274688849688630_int128, &
        48668398984340789951877789300_int128, 88371566576829329123146512150_int128, &
        154083757108317804624973405800_int128, 258090293156432322746830454715_int128, &
        415462423129866665885141707590_int128, 642977559605746030536528833175_int128, &
        956989856157389440798554542400_int128, 1370235475861716699325203094800_int128, &
        1887879988965031896848057597280_int128, 2503493028844933602341989422480_int128, &
        3195948547461617364691901390400_int128, 3928353422921571344100462125700_int128, &
        4649887725090839550159730679400_int128, 5300872006603557087182092974516_int128, &
        5820565340584297978082298168096_int128, 6156367187156469015279353831640_int128, &
        6272525058612251449529907677520_int128, 5671_int128, &
        198485_int128, 5160610_int128, &
        106308566_int128, 1807245622_int128, &
        26075972546_int128, 325949656825_int128, &
        3585446225075_int128, 35137373005735_int128, &
        309847743777845_int128, 2478781950222760_int128, &
        18114175790089400_int128, 121623751733457400_int128, &
        754067260747435880_int128, 4335886749297756310_int128, &
        23209746716829166130_int128, 116048733584145830650_int128, &
        543596699420472575150_int128, 2391825477450079330660_int128, &
        9908991263721757227020_int128, 38735147667275960069260_int128, &
        143151632683411156777700_int128, 501030714391939048721950_int128, &
        1663421971781237641756874_int128, 5246176987925441793233218_int128, &
        15738530963776325379699654_int128, 44967231325075215370570440_int128, &
        122496940506239379802588440_int128, 318492045316222387486729944_int128, &
        791093144817713672144458248_int128, 1878846218942069971343088339_int128, &
        4270105043050159025779746225_int128, 9293758034873875526697094725_int128, &
        19384123901308368955682511855_int128, 38768247802616737911365023710_int128, &
        74393124161778064640727477930_int128, 137039965561170119075024301450_int128, &
        242455323685147133748119917950_int128, 412174050264750127371803860515_int128, &
        673552716286298988631972162305_int128, 1058439982735612696421670540765_int128, &
        1599967415763135471335083375575_int128, 2327225332019106140123757637200_int128, &
        3258115464826748596173260692080_int128, 4391373017809965499190047019760_int128, &
        5699441576306550967033890812880_int128, 7124301970383188708792363516100_int128, &
        8578241148012410894260192805100_int128, 9950759731694396637341823653916_int128, &
        11121437347187855065264391142612_int128, 11976932527740766993361651999736_int128, &
        12428892245768720464809261509160_int128, 5778_int128, &
        204156_int128, 5359095_int128, &
        111469176_int128, 1913554188_int128, &
        27883218168_int128, 352025629371_int128, &
        3911395881900_int128, 38722819230810_int128, &
        344985116783580_int128, 2788629694000605_int128, &
        20592957740312160_int128, 139737927523546800_int128, &
        875691012480893280_int128, 5089954010045192190_int128, &
        27545633466126922440_int128, 139258480300974996780_int128, &
        659645433004618405800_int128, 2935422176870551905810_int128, &
        12300816741171836557680_int128, 48644138930997717296280_int128, &
        181886780350687116846960_int128, 644182347075350205499650_int128, &
        2164452686173176690478824_int128, 6909598959706679434990092_int128, &
        20984707951701767172932872_int128, 60705762288851540750270094_int128, &
        167464171831314595173158880_int128, 440988985822461767289318384_int128, &
        1109585190133936059631188192_int128, 2669939363759783643487546587_int128, &
        6148951261992228997122834564_int128, 13563863077924034552476840950_int128, &
        28677881936182244482379606580_int128, 58152371703925106867047535565_int128, &
        113161371964394802552092501640_int128, 211433089722948183715751779380_int128, &
        379495289246317252823144219400_int128, 654629373949897261119923778465_int128, &
        1085726766551049116003776022820_int128, 1731992699021911685053642703070_int128, &
        2658407398498748167756753916340_int128, 3927192747782241611458841012775_int128, &
        5585340796845854736297018329280_int128, 7649488482636714095363307711840_int128, &
        10090814594116516466223937832640_int128, 12823743546689739675826254328980_int128, &
        15702543118395599603052556321200_int128, 18529000879706807531602016459016_int128, &
        21072197078882251702606214796528_int128, 23098369874928622058626043142348_int128, &
        24405824773509487458170913508896_int128, 24857784491537440929618523018320_int128, &
        5886_int128, 209934_int128, &
        5563251_int128, 116828271_int128, &
        2025023364_int128, 29796772356_int128, &
        379908847539_int128, 4263421511271_int128, &
        42634215112710_int128, 383707936014390_int128, &
        3133614810784185_int128, 23381587434312765_int128, &
        160330885263858960_int128, 1015428940004440080_int128, &
        5965645022526085470_int128, 32635587476172114630_int128, &
        166804113767101919220_int128, 798903913305593402580_int128, &
        3595067609875170311610_int128, 15236238918042388463490_int128, &
        60944955672169553853960_int128, 230530919281684834143240_int128, &
        826069127426037322346610_int128, 2808635033248526895978474_int128, &
        9074051645879856125468916_int128, 27894306911408446607922964_int128, &
        81690470240553307923202966_int128, 228169934120166135923428974_int128, &
        608453157653776362462477264_int128, 1550574175956397826920506576_int128, &
        3779524553893719703118734779_int128, 8818890625752012640610381151_int128, &
        19712814339916263549599675514_int128, 42241745014106279034856447530_int128, &
        86830253640107351349427142145_int128, 171313743668319909419140037205_int128, &
        324594461687342986267844281020_int128, 590928378969265436538895998780_int128, &
        1034124663196214513943067997865_int128, 1740356140500946377123699801285_int128, &
        2817719465572960801057418725890_int128, 4390400097520659852810396619410_int128, &
        6585600146280989779215594929115_int128, 9512533544628096347755859342055_int128, &
        13234829279482568831660326041120_int128, 17740303076753230561587245544480_int128, &
        22914558140806256142050192161620_int128, 28526286665085339278878810650180_int128, &
        34231543998102407134654572780216_int128, 39601197958589059234208231255544_int128, &
        44170566953810873761232257938876_int128, 47504194648438109516796956651244_int128, &
        49263609265046928387789436527216_int128, 5995_int128, &
        215820_int128, 5773185_int128, &
        122391522_int128, 2141851635_int128, &
        31821795720_int128, 409705619895_int128, &
        4643330358810_int128, 46897636623981_int128, &
        426342151127100_int128, 3517322746798575_int128, &
        26515202245096950_int128, 183712472698171725_int128, &
        1175759825268299040_int128, 6981073962530525550_int128, &
        38601232498698200100_int128, 199439701243274033850_int128, &
        965708027072695321800_int128, 4393971523180763714190_int128, &
        18831306527917558775100_int128, 76181194590211942317450_int128, &
        291475874953854387997200_int128, 1056600046707722156489850_int128, &
        3634704160674564218325084_int128, 11882686679128383021447390_int128, &
        36968358557288302733391880_int128, 109584777151961754531125930_int128, &
        309860404360719443846631940_int128, 836623091773942498385906238_int128, &
        2159027333610174189382983840_int128, 5330098729850117530039241355_int128, &
        12598415179645732343729115930_int128, 28531704965668276190210056665_int128, &
        61954559354022542584456123044_int128, 129071998654213630384283589675_int128, &
        258143997308427260768567179350_int128, 495908205355662895686984318225_int128, &
        915522840656608422806740279800_int128, 1625053042165479950481963996645_int128, &
        2774480803697160891066767799150_int128, 4558075606073907178181118527175_int128, &
        7208119563093620653867815345300_int128, 10976000243801649632025991548525_int128, &
        16098133690909086126971454271170_int128, 22747362824110665179416185383175_int128, &
        30975132356235799393247571585600_int128, 40654861217559486703637437706100_int128, &
        51440844805891595420929002811800_int128, 62757830663187746413533383430396_int128, &
        73832741956691466368862804035760_int128, 83771764912399932995440489194420_int128, &
        91674761602248983278029214590120_int128, 96767803913485037904586393178460_int128, &
        98527218530093856775578873054432_int128, 6105_int128, &
        221815_int128, 5989005_int128, &
        128164707_int128, 2264243157_int128, &
        33963647355_int128, 441527415615_int128, &
        5053035978705_int128, 51540966982791_int128, &
        473239787751081_int128, 3943664897925675_int128, &
        30032524991895525_int128, 210227674943268675_int128, &
        1359472297966470765_int128, 8156833787798824590_int128, &
        45582306461228725650_int128, 238040933741972233950_int128, &
        1165147728315969355650_int128, 5359679550253459035990_int128, &
        23225278051098322489290_int128, 95012501118129501092550_int128, &
        367657069544066330314650_int128, 1348075921661576544487050_int128, &
        4691304207382286374814934_int128, 15517390839802947239772474_int128, &
        48851045236416685754839270_int128, 146553135709250057264517810_int128, &
        419445181512681198377757870_int128, 1146483496134661942232538178_int128, &
        2995650425384116687768890078_int128, 7489126063460291719422225195_int128, &
        17928513909495849873768357285_int128, 41130120145314008533939172595_int128, &
        90486264319690818774666179709_int128, 191026558008236172968739712719_int128, &
        387215995962640891152850769025_int128, 754052202664090156455551497575_int128, &
        1411431046012271318493724598025_int128, 2540575882822088373288704276445_int128, &
        4399533845862640841548731795795_int128, 7332556409771068069247886326325_int128, &
        11766195169167527832048933872475_int128, 18184119806895270285893806893825_int128, &
        27074133934710735758997445819695_int128, 38845496515019751306387639654345_int128, &
        53722495180346464572663756968775_int128, 71629993573795286096885009291700_int128, &
        92095706023451082124566440517900_int128, 114198675469079341834462386242196_int128, &
        136590572619879212782396187466156_int128, 157604506869091399364303293230180_int128, &
        175446526514648916273469703784540_int128, 188442565515734021182615607768580_int128, &
        195295022443578894680165266232892_int128, 6216_int128, &
        227920_int128, 6210820_int128, &
        134153712_int128, 2392407864_int128, &
        36227890512_int128, 475491062970_int128, &
        5494563394320_int128, 56594002961496_int128, &
        524780754733872_int128, 4416904685676756_int128, &
        33976189889821200_int128, 240260199935164200_int128, &
        1569699972909739440_int128, 9516306085765295355_int128, &
        53739140249027550240_int128, 283623240203200959600_int128, &
        1403188662057941589600_int128, 6524827278569428391640_int128, &
        28584957601351781525280_int128, 118237779169227823581840_int128, &
        462669570662195831407200_int128, 1715732991205642874801700_int128, &
        6039380129043862919301984_int128, 20208695047185233614587408_int128, &
        64368436076219632994611744_int128, 195404180945666743019357080_int128, &
        565998317221931255642275680_int128, 1565928677647343140610296048_int128, &
        4142133921518778630001428256_int128, 10484776488844408407191115273_int128, &
        25417639972956141593190582480_int128, 59058634054809858407707529880_int128, &
        131616384465004827308605352304_int128, 281512822327926991743405892428_int128, &
        578242553970877064121590481744_int128, 1141268198626731047608402266600_int128, &
        2165483248676361474949276095600_int128, 3952006928834359691782428874470_int128, &
        6940109728684729214837436072240_int128, 11732090255633708910796618122120_int128, &
        19098751578938595901296820198800_int128, 29950314976062798117942740766300_int128, &
        45258253741606006044891252713520_int128, 65919630449730487065385085474040_int128, &
        92567991695366215879051396623120_int128, 125352488754141750669548766260475_int128, &
        163725699597246368221451449809600_int128, 206294381492530423959028826760096_int128, &
        250789248088958554616858573708352_int128, 294195079488970612146699480696336_int128, &
        333051033383740315637772997014720_int128, 363889092030382937456085311553120_int128, &
        383737587959312915862780874001472_int128, 390590044887157789360330532465784_int128, &
        6328_int128, 234136_int128, &
        6438740_int128, 140364532_int128, &
        2526561576_int128, 38620298376_int128, &
        511718953482_int128, 5970054457290_int128, &
        62088566355816_int128, 581374757695368_int128, &
        4941685440410628_int128, 38393094575497956_int128, &
        274236389824985400_int128, 1809960172844903640_int128, &
        11086006058675034795_int128, 63255446334792845595_int128, &
        337362380452228509840_int128, 1686811902261142549200_int128, &
        7928015940627369981240_int128, 35109784879921209916920_int128, &
        146822736770579605107120_int128, 580907349831423654989040_int128, &
        2178402561867838706208900_int128, 7755113120249505794103684_int128, &
        26248075176229096533889392_int128, 84577131123404866609199152_int128, &
        259772617021886376013968824_int128, 761402498167597998661632760_int128, &
        2131926994869274396252571728_int128, 5708062599166121770611724304_int128, &
        14626910410363187037192543529_int128, 35902416461800550000381697753_int128, &
        84476274027766000000898112360_int128, 190675018519814685716312882184_int128, &
        413129206792931819052011244732_int128, 859755376298804055864996374172_int128, &
        1719510752597608111729992748344_int128, 3306751447303092522557678362200_int128, &
        6117490177510721166731704970070_int128, 10892116657519088906619864946710_int128, &
        18672199984318438125634054194360_int128, 30830841834572304812093438320920_int128, &
        49049066555001394019239560965100_int128, 75208568717668804162833993479820_int128, &
        111177884191336493110276338187560_int128, 158487622145096702944436482097160_int128, &
        217920480449507966548600162883595_int128, 289078188351388118891000216070075_int128, &
        370020081089776792180480276569696_int128, 457083629581488978575887400468448_int128, &
        544984327577929166763558054404688_int128, 627246112872710927784472477711056_int128, &
        696940125414123253093858308567840_int128, 747626679989695853318866185554592_int128, &
        774327632846470705223111406467256_int128, 6441_int128, &
        240464_int128, 6672876_int128, &
        146803272_int128, 2666926108_int128, &
        41146859952_int128, 550339251858_int128, &
        6481773410772_int128, 68058620813106_int128, &
        643463324051184_int128, 5523060198105996_int128, &
        43334780015908584_int128, 312629484400483356_int128, &
        2084196562669889040_int128, 12895966231519938435_int128, &
        74341452393467880390_int128, 400617826787021355435_int128, &
        2024174282713371059040_int128, 9614827842888512530440_int128, &
        43037800820548579898160_int128, 181932521650500815024040_int128, &
        727730086602003260096160_int128, 2759309911699262361197940_int128, &
        9933515682117344500312584_int128, 34003188296478602327993076_int128, &
        110825206299633963143088544_int128, 344349748145291242623167976_int128, &
        1021175115189484374675601584_int128, 2893329493036872394914204488_int128, &
        7839989594035396166864296032_int128, 20334973009529308807804267833_int128, &
        50529326872163737037574241282_int128, 120378690489566550001279810113_int128, &
        275151292547580685717210994544_int128, 603804225312746504768324126916_int128, &
        1272884583091735874917007618904_int128, 2579266128896412167594989122516_int128, &
        5026262199900700634287671110544_int128, 9424241624813813689289383332270_int128, &
        17009606835029810073351569916780_int128, 29564316641837527032253919141070_int128, &
        49503041818890742937727492515280_int128, 79879908389573698831332999286020_int128, &
        124257635272670198182073554444920_int128, 186386452909005297273110331667380_int128, &
        269665506336433196054712820284720_int128, 376408102594604669493036644980755_int128, &
        506998668800896085439600378953670_int128, 659098269441164911071480492639771_int128, &
        827103710671265770756367677038144_int128, 1002067957159418145339445454873136_int128, &
        1172230440450640094548030532115744_int128, 1324186238286834180878330786278896_int128, &
        1444566805403819106412724494122432_int128, 1521954312836166558541977592021848_int128, &
        1548655265692941410446222812934512_int128, 6555_int128, &
        246905_int128, 6913340_int128, &
        153476148_int128, 2813729380_int128, &
        43813786060_int128, 591486111810_int128, &
        7032112662630_int128, 74540394223878_int128, &
        711521944864290_int128, 6166523522157180_int128, &
        48857840214014580_int128, 355964264416391940_int128, &
        2396826047070372396_int128, 14980162794189827475_int128, &
        87237418624987818825_int128, 474959279180489235825_int128, &
        2424792109500392414475_int128, 11639002125601883589480_int128, &
        52652628663437092428600_int128, 224970322471049394922200_int128, &
        909662608252504075120200_int128, 3487039998301265621294100_int128, &
        12692825593816606861510524_int128, 43936703978595946828305660_int128, &
        144828394596112565471081620_int128, 455174954444925205766256520_int128, &
        1365524863334775617298769560_int128, 3914504608226356769589806072_int128, &
        10733319087072268561778500520_int128, 28174962603564704974668563865_int128, &
        70864299881693045845378509115_int128, 170908017361730287038854051395_int128, &
        395529983037147235718490804657_int128, 878955517860327190485535121460_int128, &
        1876688808404482379685331745820_int128, 3852150711988148042511996741420_int128, &
        7605528328797112801882660233060_int128, 14450503824714514323577054442814_int128, &
        26433848459843623762640953249050_int128, 46573923476867337105605489057850_int128, &
        79067358460728269969981411656350_int128, 129382950208464441769060491801300_int128, &
        204137543662243897013406553730940_int128, 310644088181675495455183886112300_int128, &
        456051959245438493327823151952100_int128, 646073608931037865547749465265475_int128, &
        883406771395500754932637023934425_int128, 1166096938242060996511080871593441_int128, &
        1486201980112430681827848169677915_int128, 1829171667830683916095813131911280_int128, &
        2174298397610058239887475986988880_int128, 2496416678737474275426361318394640_int128, &
        2768753043690653287291055280401328_int128, 2966521118239985664954702086144280_int128, &
        3070609578529107968988200404956360_int128, 6670_int128, &
        253460_int128, 7160245_int128, &
        160389488_int128, 2967205528_int128, &
        46627515440_int128, 635299897870_int128, &
        7623598774440_int128, 81572506886508_int128, &
        786062339088168_int128, 6878045467021470_int128, &
        55024363736171760_int128, 404822104630406520_int128, &
        2752790311486764336_int128, 17376988841260199871_int128, &
        102217581419177646300_int128, 562196697805477054650_int128, &
        2899751388680881650300_int128, 14063794235102276003955_int128, &
        64291630789038976018080_int128, 277622951134486487350800_int128, &
        1134632930723553470042400_int128, 4396702606553769696414300_int128, &
        16179865592117872482804624_int128, 56629529572412553689816184_int128, &
        188765098574708512299387280_int128, 600003349041037771237338140_int128, &
        1820699817779700823065026080_int128, 5280029471561132386888575632_int128, &
        14647823695298625331368306592_int128, 38908281690636973536447064385_int128, &
        99039262485257750820047072980_int128, 241772317243423332884232560510_int128, &
        566438000398877522757344856052_int128, 1274485500897474426204025926117_int128, &
        2755644326264809570170866867280_int128, 5728839520392630422197328487240_int128, &
        11457679040785260844394656974480_int128, 22056032153511627125459714675874_int128, &
        40884352284558138086218007691864_int128, 73007771936710960868246442306900_int128, &
        125641281937595607075586900714200_int128, 208450308669192711739041903457650_int128, &
        333520493870708338782467045532240_int128, 514781631843919392468590439843240_int128, &
        766696047427113988783007038064400_int128, 1102125568176476358875572617217575_int128, &
        1529480380326538620480386489199900_int128, 2049503709637561751443717895527866_int128, &
        2652298918354491678338929041271356_int128, 3315373647943114597923661301589195_int128, &
        4003470065440742155983289118900160_int128, 4670715076347532515313837305383520_int128, &
        5265169722428127562717416598795968_int128, 5735274161930638952245757366545608_int128, &
        6037130696769093633942902491100640_int128, 6141219157058215937976400809912720_int128, &
        6786_int128, 260130_int128, &
        7413705_int128, 167549733_int128, &
        3127595016_int128, 49594720968_int128, &
        681927413310_int128, 8258898672310_int128, &
        89196105660948_int128, 867634845974676_int128, &
        7664107806109638_int128, 61902409203193230_int128, &
        459846468366578280_int128, 3157612416117170856_int128, &
        20129779152746964207_int128, 119594570260437846171_int128, &
        664414279224654700950_int128, 3461948086486358704950_int128, &
        16963545623783157654255_int128, 78355425024141252022035_int128, &
        341914581923525463368880_int128, 1412255881858039957393200_int128, &
        5531335537277323166456700_int128, 20576568198671642179218924_int128, &
        72809395164530426172620808_int128, 245394628147121065989203464_int128, &
        788768447615746283536725420_int128, 2420703166820738594302364220_int128, &
        7100729289340833209953601712_int128, 19927853166859757718256882224_int128, &
        53556105385935598867815370977_int128, 137947544175894724356494137365_int128, &
        340811579728681083704279633490_int128, 808210317642300855641577416562_int128, &
        1840923501296351948961370782169_int128, 4030129827162283996374892793397_int128, &
        8484483846657439992368195354520_int128, 17186518561177891266591985461720_int128, &
        33513711194296887969854371650354_int128, 62940384438069765211677722367738_int128, &
        113892124221269098954464449998764_int128, 198649053874306567943833343021100_int128, &
        334091590606788318814628804171850_int128, 541970802539901050521508948989890_int128, &
        848302125714627731251057485375480_int128, 1281477679271033381251597477907640_int128, &
        1868821615603590347658579655281975_int128, 2631605948503014979355959106417475_int128, &
        3578984089964100371924104384727766_int128, 4701802627992053429782646936799222_int128, &
        5967672566297606276262590342860551_int128, 7318843713383856753906950420489355_int128, &
        8674185141788274671297126424283680_int128, 9935884798775660078031253904179488_int128, &
        11000443884358766514963173965341576_int128, 11772404858699732586188659857646248_int128, &
        12178349853827309571919303301013360_int128, 6903_int128, &
        266916_int128, 7673835_int128, &
        174963438_int128, 3295144749_int128, &
        52722315984_int128, 731522134278_int128, &
        8940826085620_int128, 97455004333258_int128, &
        956830951635624_int128, 8531742652084314_int128, &
        69566517009302868_int128, 521748877569771510_int128, &
        3617458884483749136_int128, 23287391568864135063_int128, &
        139724349413184810378_int128, 784008849485092547121_int128, &
        4126362365711013405900_int128, 20425493710269516359205_int128, &
        95318970647924409676290_int128, 420270006947666715390915_int128, &
        1754170463781565420762080_int128, 6943591419135363123849900_int128, &
        26107903735948965345675624_int128, 93385963363202068351839732_int128, &
        318204023311651492161824272_int128, 1034163075762867349525928884_int128, &
        3209471614436484877839089640_int128, 9521432456161571804255965932_int128, &
        27028582456200590928210483936_int128, 73483958552795356586072253201_int128, &
        191503649561830323224309508342_int128, 478759123904575808060773770855_int128, &
        1149021897370981939345857050052_int128, 2649133818938652804602948198731_int128, &
        5871053328458635945336263575566_int128, 12514613673819723988743088147917_int128, &
        25671002407835331258960180816240_int128, 50700229755474779236446357112074_int128, &
        96454095632366653181532094018092_int128, 176832508659338864166142172366502_int128, &
        312541178095575666898297793019864_int128, 532740644481094886758462147192950_int128, &
        876062393146689369336137753161740_int128, 1390272928254528781772566434365370_int128, &
        2129779804985661112502654963283120_int128, 3150299294874623728910177133189615_int128, &
        4500427564106605327014538761699450_int128, 6210590038467115351280063491145241_int128, &
        8280786717956153801706751321526988_int128, 10669475194289659706045237279659773_int128, &
        13286516279681463030169540763349906_int128, 15993028855172131425204076844773035_int128, &
        18610069940563934749328380328463168_int128, 20936328683134426592994427869521064_int128, &
        22772848743058499101151833822987824_int128, 23950754712527042158107963158659608_int128, &
        24356699707654619143838606602026720_int128, 7021_int128, &
        273819_int128, 7940751_int128, &
        182637273_int128, 3470108187_int128, &
        56017460733_int128, 784244450262_int128, &
        9672348219898_int128, 106395830418878_int128, &
        1054285955968882_int128, 9488573603719938_int128, &
        78098259661387182_int128, 591315394579074378_int128, &
        4139207762053520646_int128, 26904850453347884199_int128, &
        163011740982048945441_int128, 923733198898277357499_int128, &
        4910371215196105953021_int128, 24551856075980529765105_int128, &
        115744464358193926035495_int128, 515588977595591125067205_int128, &
        2174440470729232136152995_int128, 8697761882916928544611980_int128, &
        33051495155084328469525524_int128, 119493867099151033697515356_int128, &
        411589986674853560513664004_int128, 1352367099074518841687753156_int128, &
        4243634690199352227365018524_int128, 12730904070598056682095055572_int128, &
        36550014912362162732466449868_int128, 100512541008995947514282737137_int128, &
        264987608114625679810381761543_int128, 670262773466406131285083279197_int128, &
        1627781021275557747406630820907_int128, 3798155716309634743948805248783_int128, &
        8520187147397288749939211774297_int128, 18385667002278359934079351723483_int128, &
        38185616081655055247703268964157_int128, 76371232163310110495406537928314_int128, &
        147154325387841432417978451130166_int128, 273286604291705517347674266384594_int128, &
        489373686754914531064439965386366_int128, 845281822576670553656759940212814_int128, &
        1408803037627784256094599900354690_int128, 2266335321401218151108704187527110_int128, &
        3520052733240189894275221397648490_int128, 5280079099860284841412832096472735_int128, &
        7650726858981229055924715894889065_int128, 10711017602573720678294602252844691_int128, &
        14491376756423269152986814812672229_int128, 18950261912245813507751988601186761_int128, &
        23955991473971122736214778043009679_int128, 29279545134853594455373617608122941_int128, &
        34603098795736066174532457173236203_int128, 39546398623698361342322808197984232_int128, &
        43709177426192925694146261692508888_int128, 46723603455585541259259796981647432_int128, &
        48307454420181661301946569760686328_int128, 7140_int128, &
        280840_int128, 8214570_int128, &
        190578024_int128, 3652745460_int128, &
        59487568920_int128, 840261910995_int128, &
        10456592670160_int128, 116068178638776_int128, &
        1160681786387760_int128, 10542859559688820_int128, &
        87586833265107120_int128, 669413654240461560_int128, &
        4730523156632595024_int128, 31044058215401404845_int128, &
        189916591435396829640_int128, 1086744939880326302940_int128, &
        5834104414094383310520_int128, 29462227291176635718126_int128, &
        140296320434174455800600_int128, 631333441953785051102700_int128, &
        2690029448324823261220200_int128, 10872202353646160680764975_int128, &
        41749257038001257014137504_int128, 152545362254235362167040880_int128, &
        531083853774004594211179360_int128, 1763957085749372402201417160_int128, &
        5596001789273871069052771680_int128, 16974538760797408909460074096_int128, &
        49280918982960219414561505440_int128, 137062555921358110246749187005_int128, &
        365500149123621627324664498680_int128, 935250381581031811095465040740_int128, &
        2298043794741963878691714100104_int128, 5425936737585192491355436069690_int128, &
        12318342863706923493888017023080_int128, 26905854149675648684018563497780_int128, &
        56571283083933415181782620687640_int128, 114556848244965165743109806892471_int128, &
        223525557551151542913384989058480_int128, 420440929679546949765652717514760_int128, &
        762660291046620048412114231770960_int128, 1334655509331585084721199905599180_int128, &
        2254084860204454809751359840567504_int128, 3675138359029002407203304087881800_int128, &
        5786388054641408045383925585175600_int128, 8800131833100474735688053494121225_int128, &
        12930805958841513897337547991361800_int128, 18361744461554949734219318147733756_int128, &
        25202394358996989831281417065516920_int128, 33441638668669082660738803413858990_int128, &
        42906253386216936243966766644196440_int128, 53235536608824717191588395651132620_int128, &
        63882643930589660629906074781359144_int128, 74149497419434427516855265371220435_int128, &
        83255576049891287036469069890493120_int128, 90432780881778466953406058674156320_int128, &
        95031057875767202561206366742333760_int128, 96614908840363322603893139521372656_int128, &
        7260_int128, 287980_int128, &
        8495410_int128, 198792594_int128, &
        3843323484_int128, 63140314380_int128, &
        899749479915_int128, 11296854581155_int128, &
        126524771308936_int128, 1276749965026536_int128, &
        11703541346076580_int128, 98129692824795940_int128, &
        757000487505568680_int128, 5399936810873056584_int128, &
        35774581372033999869_int128, 220960649650798234485_int128, &
        1276661531315723132580_int128, 6920849353974709613460_int128, &
        35296331705271019028646_int128, 169758547725351091518726_int128, &
        771629762387959506903300_int128, 3321362890278608312322900_int128, &
        13562231801970983941985175_int128, 52621459391647417694902479_int128, &
        194294619292236619181178384_int128, 683629216028239956378220240_int128, &
        2295040939523376996412596520_int128, 7359958875023243471254188840_int128, &
        22570540550071279978512845776_int128, 66255457743757628324021579536_int128, &
        186343474904318329661310692445_int128, 502562705044979737571413685685_int128, &
        1300750530704653438420129539420_int128, 3233294176322995689787179140844_int128, &
        7723980532327156370047150169794_int128, 17744279601292115985243453092770_int128, &
        39224197013382572177906580520860_int128, 83477137233609063865801184185420_int128, &
        171128131328898580924892427580111_int128, 338082405796116708656494795950951_int128, &
        643966487230698492679037706573240_int128, 1183101220726166998177766949285720_int128, &
        2097315800378205133133314137370140_int128, 3588740369536039894472559746166684_int128, &
        5929223219233457216954663928449304_int128, 9461526413670410452587229673057400_int128, &
        14586519887741882781071979079296825_int128, 21730937791941988633025601485483025_int128, &
        31292550420396463631556866139095556_int128, 43564138820551939565500735213250676_int128, &
        58644033027666072492020220479375910_int128, 76347892054886018904705570058055430_int128, &
        96141789995041653435555162295329060_int128, 117118180539414377821494470432491764_int128, &
        138032141350024088146761340152579579_int128, 157405073469325714553324335261713555_int128, &
        173688356931669753989875128564649440_int128, 185463838757545669514612425416490080_int128, &
        191645966716130525165099506263706416_int128, 7381_int128, &
        295240_int128, 8783390_int128, &
        207288004_int128, 4042116078_int128, &
        66983637864_int128, 962889794295_int128, &
        12196604061070_int128, 137821625890091_int128, &
        1403274736335472_int128, 12980291311103116_int128, &
        109833234170872520_int128, 855130180330364620_int128, &
        6156937298378625264_int128, 41174518182907056453_int128, &
        256735231022832234354_int128, 1497622180966521367065_int128, &
        8197510885290432746040_int128, 42217181059245728642106_int128, &
        205054879430622110547372_int128, 941388310113310598422026_int128, &
        4092992652666567819226200_int128, 16883594692249592254308075_int128, &
        66183691193618401636887654_int128, 246916078683884036876080863_int128, &
        877923835320476575559398624_int128, 2978670155551616952790816760_int128, &
        9654999814546620467666785360_int128, 29930499425094523449767034616_int128, &
        88825998293828908302534425312_int128, 252598932648075957985332271981_int128, &
        688906179949298067232724378130_int128, 1803313235749633175991543225105_int128, &
        4534044707027649128207308680264_int128, 10957274708650152059834329310638_int128, &
        25468260133619272355290603262564_int128, 56968476614674688163150033613630_int128, &
        122701334246991636043707764706280_int128, 254605268562507644790693611765531_int128, &
        509210537125015289581387223531062_int128, 982048893026815201335532502524191_int128, &
        1827067707956865490856804655858960_int128, 3280417021104372131311081086655860_int128, &
        5686056169914245027605873883536824_int128, 9517963588769497111427223674615988_int128, &
        15390749632903867669541893601506704_int128, 24048046301412293233659208752354225_int128, &
        36317457679683871414097580564779850_int128, 53023488212338452264582467624578581_int128, &
        74856689240948403197057601352346232_int128, 102208171848218012057520955692626586_int128, &
        134991925082552091396725790537431340_int128, 172489682049927672340260732353384490_int128, &
        213259970534456031257049632727820824_int128, 255150321889438465968255810585071343_int128, &
        295437214819349802700085675414293134_int128, 331093430400995468543199463826362995_int128, &
        359152195689215423504487553981139520_int128, 377109805473676194679711931680196496_int128, &
        383291933432261050330199012527412832_int128, 7503_int128, &
        302621_int128, 9078630_int128, &
        216071394_int128, 4249404082_int128, &
        71025753942_int128, 1029873432159_int128, &
        13159493855365_int128, 150018229951161_int128, &
        1541096362225563_int128, 14383566047438588_int128, &
        122813525481975636_int128, 964963414501237140_int128, &
        7012067478708989884_int128, 47331455481285681717_int128, &
        297909749205739290807_int128, 1754357411989353601419_int128, &
        9695133066256954113105_int128, 50414691944536161388146_int128, &
        247272060489867839189478_int128, 1146443189543932708969398_int128, &
        5034380962779878417648226_int128, 20976587344916160073534275_int128, &
        83067285885867993891195729_int128, 313099769877502438512968517_int128, &
        1124839914004360612435479487_int128, 3856593990872093528350215384_int128, &
        12633669970098237420457602120_int128, 39585499239641143917433819976_int128, &
        118756497718923431752301459928_int128, 341424930941904866287866697293_int128, &
        941505112597374025218056650111_int128, 2492219415698931243224267603235_int128, &
        6337357942777282304198851905369_int128, 15491319415677801188041637990902_int128, &
        36425534842269424415124932573202_int128, 82436736748293960518440636876194_int128, &
        179669810861666324206857798319910_int128, 377306602809499280834401376471811_int128, &
        763815805687522934372080835296593_int128, 1491259430151830490916919726055253_int128, &
        2809116600983680692192337158383151_int128, 5107484729061237622167885742514820_int128, &
        8966473191018617158916954970192684_int128, 15204019758683742139033097558152812_int128, &
        24908713221673364780969117276122692_int128, 39438795934316160903201102353860929_int128, &
        60365503981096164647756789317134075_int128, 89340945892022323678680048189358431_int128, &
        127880177453286855461640068976924813_int128, 177064861089166415254578557044972818_int128, &
        237200096930770103454246746230057926_int128, 307481607132479763736986522890815830_int128, &
        385749652584383703597310365081205314_int128, 468410292423894497225305443312892167_int128, &
        550587536708788268668341485999364477_int128, 626530645220345271243285139240656129_int128, &
        690245626090210892047687017807502515_int128, 736262001162891618184199485661336016_int128, &
        760401738905937245009910944207609328_int128, 7626_int128, &
        310124_int128, 9381251_int128, &
        225150024_int128, 4465475476_int128, &
        75275158024_int128, 1100899186101_int128, &
        14189367287524_int128, 163177723806526_int128, &
        1691114592176724_int128, 15924662409664151_int128, &
        137197091529414224_int128, 1087776939983212776_int128, &
        7977030893210227024_int128, 54343522959994671601_int128, &
        345241204687024972524_int128, 2052267161195092892226_int128, &
        11449490478246307714524_int128, 60109825010793115501251_int128, &
        297686752434404000577624_int128, 1393715250033800548158876_int128, &
        6180824152323811126617624_int128, 26010968307696038491182501_int128, &
        104043873230784153964730004_int128, 396167055763370432404164246_int128, &
        1437939683881863050948448004_int128, 4981433904876454140785694871_int128, &
        16490263960970330948807817504_int128, 52219169209739381337891422096_int128, &
        158341996958564575669735279904_int128, 460181428660828298040168157221_int128, &
        1282930043539278891505923347404_int128, 3433724528296305268442324253346_int128, &
        8829577358476213547423119508604_int128, 21828677358455083492240489896271_int128, &
        51916854257947225603166570564104_int128, 118862271590563384933565569449396_int128, &
        262106547609960284725298435196104_int128, 556976413671165605041259174791721_int128, &
        1141122408497022215206482211768404_int128, 2255075235839353425289000561351846_int128, &
        4300376031135511183109256884438404_int128, 7916601330044918314360222900897971_int128, &
        14073957920079854781084840712707504_int128, 24170492949702359297950052528345496_int128, &
        40112732980357106920002214834275504_int128, 64347509155989525684170219629983621_int128, &
        99804299915412325550957891670995004_int128, 149706449873118488326436837506492506_int128, &
        217221123345309179140320117166283244_int128, 304945038542453270716218626021897631_int128, &
        414264958019936518708825303275030744_int128, 544681704063249867191233269120873756_int128, &
        693231259716863467334296887972021144_int128, 854159945008278200822615808394097481_int128, &
        1018997829132682765893646929312256644_int128, 1177118181929133539911626625240020606_int128, &
        1316776271310556163290972157048158644_int128, 1426507627253102510231886503468838531_int128, &
        1496663740068828863194110429868945344_int128, 1520803477811874490019821888415218656_int128, &
        7750_int128, 317750_int128, &
        9691375_int128, 234531275_int128, &
        4690625500_int128, 79740633500_int128, &
        1176174344125_int128, 15290266473625_int128, &
        177367091094050_int128, 1854292315983250_int128, &
        17615777001840875_int128, 153121753939078375_int128, &
        1224974031512627000_int128, 9064807833193439800_int128, &
        62320553853204898625_int128, 399584727647019644125_int128, &
        2397508365882117864750_int128, 13501757639441400606750_int128, &
        71559315489039423215775_int128, 357796577445197116078875_int128, &
        1691402002468204548736500_int128, 7574539402357611674776500_int128, &
        32191792460019849617800125_int128, 130054841538480192455912505_int128, &
        500210928994154586368894250_int128, 1834106739645233483352612250_int128, &
        6419373588758317191734142875_int128, 21471697865846785089593512375_int128, &
        68709433170709712286699239600_int128, 210561166168303957007626702000_int128, &
        618523425619392873709903437125_int128, 1743111472200107189546091504625_int128, &
        4716654571835584159948247600750_int128, 12263301886772518815865443761950_int128, &
        30658254716931297039663609404875_int128, 73745531616402309095407060460375_int128, &
        170779125848510610536732140013500_int128, 380968819200523669658864004645500_int128, &
        819082961281125889766557609987825_int128, 1698098822168187820247741386560125_int128, &
        3396197644336375640495482773120250_int128, 6555451266974864608398257445790250_int128, &
        12216977361180429497469479785336375_int128, 21990559250124773095445063613605475_int128, &
        38244450869782214079034893241053000_int128, 64283225930059466217952267362621000_int128, &
        104460242136346632604172434464259125_int128, 164151809071401851235128111300978625_int128, &
        249510749788530813877394729177487510_int128, 366927573218427667466756954672775750_int128, &
        522166161887762449856538743188180875_int128, 719209996562389789425043929296928375_int128, &
        958946662083186385900058572395904500_int128, 1237912963780113334525530157092894900_int128, &
        1547391204725141668156912696366118625_int128, 1873157774140960966716262737706354125_int128, &
        2196116011061816305805273554552277250_int128, 2493894453239689703202598782288179250_int128, &
        2743283898563658673522858660516997175_int128, 2923171367321931373425996933337783875_int128, &
        3017467217880703353213932318284164000_int128, 7875_int128, &
        325500_int128, 10009125_int128, &
        244222650_int128, 4925156775_int128, &
        84431259000_int128, 1255914977625_int128, &
        16466440817750_int128, 192657357567675_int128, &
        2031659407077300_int128, 19470069317824125_int128, &
        170737530940919250_int128, 1378095785451705375_int128, &
        10289781864706066800_int128, 71385361686398338425_int128, &
        461905281500224542750_int128, 2797093093529137508875_int128, &
        15899266005323518471500_int128, 85061073128480823822525_int128, &
        429355892934236539294650_int128, 2049198579913401664815375_int128, &
        9265941404825816223513000_int128, 39766331862377461292576625_int128, &
        162246633998500042073712630_int128, 630265770532634778824806755_int128, &
        2334317668639388069721506500_int128, 8253480328403550675086755125_int128, &
        27891071454605102281327655250_int128, 90181131036556497376292751975_int128, &
        279270599339013669294325941600_int128, 829084591787696830717530139125_int128, &
        2361634897819500063255994941750_int128, 6459766044035691349494339105375_int128, &
        16979956458608102975813691362700_int128, 42921556603703815855529053166825_int128, &
        104403786333333606135070669865250_int128, 244524657464912919632139200473875_int128, &
        551747945049034280195596144659000_int128, 1200051780481649559425421614633325_int128, &
        2517181783449313710014298996547950_int128, 5094296466504563460743224159680375_int128, &
        9951648911311240248893740218910500_int128, 18772428628155294105867737231126625_int128, &
        34207536611305202592914543398941850_int128, 60235010119906987174479956854658475_int128, &
        102527676799841680296987160603674000_int128, 168743468066406098822124701826880125_int128, &
        268612051207748483839300545765237750_int128, 413662558859932665112522840478466135_int128, &
        616438323006958481344151683850263260_int128, 889093735106190117323295697860956625_int128, &
        1241376158450152239281582672485109250_int128, 1678156658645576175325102501692832875_int128, &
        2196859625863299720425588729488799400_int128, 2785304168505255002682442853459013525_int128, &
        3420548978866102634873175434072472750_int128, 4069273785202777272521536292258631375_int128, &
        4690010464301506009007872336840456500_int128, 5237178351803348376725457442805176425_int128, &
        5666455265885590046948855593854781050_int128, 5940638585202634726639929251621947875_int128, &
        6034934435761406706427864636568328000_int128, 8001_int128, &
        333375_int128, 10334625_int128, &
        254231775_int128, 5169379425_int128, &
        89356415775_int128, 1340346236625_int128, &
        17722355795375_int128, 209123798385425_int128, &
        2224316764644975_int128, 21501728724901425_int128, &
        190207600258743375_int128, 1548833316392624625_int128, &
        11667877650157772175_int128, 81675143551104405225_int128, &
        533290643186622881175_int128, 3258998375029362051625_int128, &
        18696359098852655980375_int128, 100960339133804342294025_int128, &
        514416966062717363117175_int128, 2478554472847638204110025_int128, &
        11315139984739217888328375_int128, 49032273267203277516089625_int128, &
        202012965860877503366289255_int128, 792512404531134820898519385_int128, &
        2964583439172022848546313255_int128, 10587797997042938744808261625_int128, &
        36144551783008652956414410375_int128, 118072202491161599657620407225_int128, &
        369451730375570166670618693575_int128, 1108355191126710500011856080725_int128, &
        3190719489607196893973525080875_int128, 8821400941855191412750334047125_int128, &
        23439722502643794325308030468075_int128, 59901513062311918831342744529525_int128, &
        147325342937037421990599723032075_int128, 348928443798246525767209870339125_int128, &
        796272602513947199827735345132875_int128, 1751799725530683839621017759292325_int128, &
        3717233563930963269439720611181275_int128, 7611478249953877170757523156228325_int128, &
        15045945377815803709636964378590875_int128, 28724077539466534354761477450037125_int128, &
        52979965239460496698782280630068475_int128, 94442546731212189767394500253600325_int128, &
        162762686919748667471467117458332475_int128, 271271144866247779119111862430554125_int128, &
        437355519274154582661425247592117875_int128, 682274610067681148951823386243703885_int128, &
        1030100881866891146456674524328729395_int128, 1505532058113148598667447381711219885_int128, &
        2130469893556342356604878370346065875_int128, 2919532817095728414606685174177942125_int128, &
        3875016284508875895750691231181632275_int128, 4982163794368554723108031582947812925_int128, &
        6205853147371357637555618287531486275_int128, 7489822764068879907394711726331104125_int128, &
        8759284249504283281529408629099087875_int128, 9927188816104854385733329779645632925_int128, &
        10903633617688938423674313036659957475_int128, 11607093851088224773588784845476728925_int128, &
        11975573020964041433067793888190275875_int128, 8128_int128, &
        341376_int128, 10668000_int128, &
        264566400_int128, 5423611200_int128, &
        94525795200_int128, 1429702652400_int128, &
        19062702032000_int128, 226846154180800_int128, &
        2433440563030400_int128, 23726045489546400_int128, &
        211709328983644800_int128, 1739040916651368000_int128, &
        13216710966550396800_int128, 93343021201262177400_int128, &
        614965786737727286400_int128, 3792289018215984932800_int128, &
        21955357473882018032000_int128, 119656698232656998274400_int128, &
        615377305196521705411200_int128, 2992971438910355567227200_int128, &
        13793694457586856092438400_int128, 60347413251942495404418000_int128, &
        251045239128080780882378880_int128, 994525370392012324264808640_int128, &
        3757095843703157669444832640_int128, 13552381436214961593354574880_int128, &
        46732349780051591701222672000_int128, 154216754274170252614034817600_int128, &
        487523932866731766328239100800_int128, 1477806921502280666682474774300_int128, &
        4299074680733907393985381161600_int128, 12012120431462388306723859128000_int128, &
        32261123444498985738058364515200_int128, 83341235564955713156650774997600_int128, &
        207226855999349340821942467561600_int128, 496253786735283947757809593371200_int128, &
        1145201046312193725594945215472000_int128, 2548072328044631039448753104425200_int128, &
        5469033289461647109060738370473600_int128, 11328711813884840440197243767409600_int128, &
        22657423627769680880394487534819200_int128, 43770022917282338064398441828628000_int128, &
        81704042778927031053543758080105600_int128, 147422511970672686466176780883668800_int128, &
        257205233650960857238861617711932800_int128, 434033831785996446590578979888886600_int128, &
        708626664140402361780537110022672000_int128, 1119630129341835731613248633835821760_int128, &
        1712375491934572295408497910572433280_int128, 2535632939980039745124121906039949280_int128, &
        3636001951669490955272325752057285760_int128, 5050002710652070771211563544524008000_int128, &
        6794549101604604310357376405359574400_int128, 8857180078877430618858722814129445200_int128, &
        11188016941739912360663649870479299200_int128, 13695675911440237544950330013862590400_int128, &
        16249107013573163188924120355430192000_int128, 18686473065609137667262738408744720800_int128, &
        20830822433793792809407642816305590400_int128, 22510727468777163197263097882136686400_int128, &
        23582666872052266206656578733667004800_int128, 23951146041928082866135587776380551750_int128, &
        8256_int128, 349504_int128, &
        11009376_int128, 275234400_int128, &
        5688177600_int128, 99949406400_int128, &
        1524228447600_int128, 20492404684400_int128, &
        245908856212800_int128, 2660286717211200_int128, &
        26159486052576800_int128, 235435374473191200_int128, &
        1950750245635012800_int128, 14955751883201764800_int128, &
        106559732167812574200_int128, 708308807938989463800_int128, &
        4407254804953712219200_int128, 25747646492098002964800_int128, &
        141612055706539016306400_int128, 735034003429178703685600_int128, &
        3608348744106877272638400_int128, 16786665896497211659665600_int128, &
        74141107709529351496856400_int128, 311392652380023276286796880_int128, &
        1245570609520093105147187520_int128, 4751621214095169993709641280_int128, &
        17309477279918119262799407520_int128, 60284731216266553294577246880_int128, &
        200949104054221844315257489600_int128, 641740687140902018942273918400_int128, &
        1965330854369012433010713875100_int128, 5776881602236188060667855935900_int128, &
        16311195112196295700709240289600_int128, 44273243875961374044782223643200_int128, &
        115602359009454698894709139512800_int128, 290568091564305053978593242559200_int128, &
        703480642734633288579752060932800_int128, 1641454833047477673352754808843200_int128, &
        3693273374356824765043698319897200_int128, 8017105617506278148509491474898800_int128, &
        16797745103346487549257982137883200_int128, 33986135441654521320591731302228800_int128, &
        66427446545052018944792929363447200_int128, 125474065696209369117942199908733600_int128, &
        229126554749599717519720538963774400_int128, 404627745621633543705038398595601600_int128, &
        691239065436957303829440597600819400_int128, 1142660495926398808371116089911558600_int128, &
        1828256793482238093393785743858493760_int128, 2832005621276408027021746544408255040_int128, &
        4248008431914612040532619816612382560_int128, 6171634891649530700396447658097235040_int128, &
        8686004662321561726483889296581293760_int128, 11844551812256675081568939949883582400_int128, &
        15651729180482034929216099219489019600_int128, 20045197020617342979522372684608744400_int128, &
        24883692853180149905613979884341889600_int128, 29944782925013400733874450369292782400_int128, &
        34935580079182300856186858764174912800_int128, 39517295499402930476670381225050311200_int128, &
        43341549902570956006670740698442276800_int128, 46093394340829429403919676615803691200_int128, &
        47533812913980349072792166510047556550_int128, 8385_int128, &
        357760_int128, 11358880_int128, &
        286243776_int128, 5963412000_int128, &
        105637584000_int128, 1624177854000_int128, &
        22016633132000_int128, 266401260897200_int128, &
        2906195573424000_int128, 28819772769788000_int128, &
        261594860525768000_int128, 2186185620108204000_int128, &
        16906502128836777600_int128, 121515484051014339000_int128, &
        814868540106802038000_int128, 5115563612892701683000_int128, &
        30154901297051715184000_int128, 167359702198637019271200_int128, &
        876646059135717719992000_int128, 4343382747536055976324000_int128, &
        20395014640604088932304000_int128, 90927773606026563156522000_int128, &
        385533760089552627783653280_int128, 1556963261900116381433984400_int128, &
        5997191823615263098856828800_int128, 22061098494013289256509048800_int128, &
        77594208496184672557376654400_int128, 261233835270488397609834736480_int128, &
        842689791195123863257531408000_int128, 2607071541509914451952987793500_int128, &
        7742212456605200493678569811000_int128, 22088076714432483761377096225500_int128, &
        60584438988157669745491463932800_int128, 159875602885416072939491363156000_int128, &
        406170450573759752873302382072000_int128, 994048734298938342558345303492000_int128, &
        2344935475782110961932506869776000_int128, 5334728207404302438396453128740400_int128, &
        11710378991863102913553189794796000_int128, 24814850720852765697767473612782000_int128, &
        50783880545001008869849713440112000_int128, 100413581986706540265384660665676000_int128, &
        191901512241261388062735129272180800_int128, 354600620445809086637662738872508000_int128, &
        633754300371233261224758937559376000_int128, 1095866811058590847534478996196421000_int128, &
        1833899561363356112200556687512378000_int128, 2970917289408636901764901833770052360_int128, &
        4660262414758646120415532288266748800_int128, 7080014053191020067554366361020637600_int128, &
        10419643323564142740929067474709617600_int128, 14857639553971092426880336954678528800_int128, &
        20530556474578236808052829246464876160_int128, 27496280992738710010785039169372602000_int128, &
        35696926201099377908738471904097764000_int128, 44928889873797492885136352568950634000_int128, &
        54828475778193550639488430253634672000_int128, 64880363004195701590061309133467695200_int128, &
        74452875578585231332857239989225224000_int128, 82858845401973886483341121923492588000_int128, &
        89434944243400385410590417314245968000_int128, 93627207254809778476711843125851247750_int128, &
        95067625827960698145584333020095113100_int128]
#endif
end module