diff options
Diffstat (limited to 'polly/lib/External/isl/imath/tests/mod.t')
-rw-r--r-- | polly/lib/External/isl/imath/tests/mod.t | 754 |
1 files changed, 754 insertions, 0 deletions
diff --git a/polly/lib/External/isl/imath/tests/mod.t b/polly/lib/External/isl/imath/tests/mod.t new file mode 100644 index 00000000000..7ca2635d1e9 --- /dev/null +++ b/polly/lib/External/isl/imath/tests/mod.t @@ -0,0 +1,754 @@ +# Modulo (remainder) tests + +mod:-52,67,0:15 +mod:-54090198,1,=1:0 +mod:-76,427,0:351 +mod:-84,576007732,=2:576007648 +mod:0,9268611,=2:0 +mod:0,807,0:0 +mod:8268,487413,0:8268 +mod:1146574,836443419,=1:1146574 +mod:68387,38,0:25 +mod:822,3971,0:822 +mod:6236,52183125,0:6236 +mod:3339,8463,0:3339 +mod:-6911,492807317,0:492800406 +mod:38291,7924,0:6595 +mod:768,7974,0:768 +mod:-753573,5272420932,0:5271667359 +mod:422,509441099,0:422 +mod:930,3648323446,0:930 +mod:2427,67,0:15 +mod:88,9301062895,0:88 +mod:7238405237,35596,0:29829 +mod:791480,518904571,0:791480 +mod:451304532,47,0:4 +mod:92202398,405459259,0:92202398 +mod:349,6205,0:349 +mod:-4,9246262,0:9246258 +mod:-5200,499,0:289 +mod:605,411571,0:605 +mod:343980431,136,=2:119 +mod:-5765,7596,0:1831 +mod:43599271968,8373850989,0:1730017023 +mod:41585052,17623,0:12395 +mod:-2409446,38,0:20 +mod:181096791,3565,0:1921 +mod:424266851,9078599,0:6651297 +mod:8187966,773,0:350 +mod:2,628566175,0:2 +mod:5095350857,5051807279,0:43543578 +mod:-93,65,0:37 +mod:2833717,10804793,=1:2833717 +mod:3929,893,=1:357 +mod:-8433693,960816587,0:952382894 +mod:79150,8266,0:4756 +mod:8999807,39604219825,0:8999807 +mod:71019,11742958502,0:71019 +mod:62049796028,8668788,0:7280312 +mod:663,501536125446,0:663 +mod:9405339512,4946,0:1182 +mod:8398326144,695282,=1:14866 +mod:2040205440,4831,0:1675 +mod:80471943965,888059767,=1:546564935 +mod:69485028101,554070,0:217541 +mod:673,944658680,0:673 +mod:670561,90183207,0:670561 +mod:87072012,7500022,0:4571770 +mod:910888567055,779049027843,=2:131839539212 +mod:963684578354,34003127,0:1956047 +mod:909044,302,0:24 +mod:5117486344,275346901,0:161242126 +mod:946663509903,66919981611,0:9783767349 +mod:80280109,35551,0:5951 +mod:92755422,4885132452638,0:92755422 +mod:404434561,300368787584,0:404434561 +mod:7641992913,2639,=2:464 +mod:4268,10435873,0:4268 +mod:-16867245244,3938443,0:1106125 +mod:7471011989,656899,0:99662 +mod:10540460484,86682087637,=2:10540460484 +mod:284094,8671306,0:284094 +mod:9452633,5574,0:4703 +mod:87858,294942647,0:87858 +mod:-6925741,254505734568,0:254498808827 +mod:5567849,8785,0:6944 +mod:5715920872437,47382,0:30681 +mod:-7228582013,17846758280596,0:17839529698583 +mod:-4825967237258,629489737727,0:209950664558 +mod:-97364920350289,7307271,0:982130 +mod:-5267574,1302960,0:1247226 +mod:36680428,6651498734,0:36680428 +mod:80778366511135,18049323,0:11222506 +mod:5246691699374,70706752,0:38580718 +mod:-76528261247430,881359,0:586489 +mod:2510155,9882180356,0:2510155 +mod:205710633,89629157572,0:205710633 +mod:38304,635189,0:38304 +mod:61339988670,8789855847549,0:61339988670 +mod:-95895,39680647996348,0:39680647900453 +mod:3783159,35551417,0:3783159 +mod:434657,27849425,0:434657 +mod:-922645,2692809,0:1770164 +mod:9973857,61929174655,0:9973857 +mod:491931072,76925934085,0:491931072 +mod:36870777851,79112622642,0:36870777851 +mod:38419240,600490113,0:38419240 +mod:4286489,4746879,0:4286489 +mod:-5967532,617005,0:202518 +mod:-50370862538738,6877482182,0:6694444412 +mod:948978223,306059033,0:30801124 +mod:1939139989,7192751179579,0:1939139989 +mod:871928,56723606527336,0:871928 +mod:5777442393,771454160,0:377263273 +mod:-2052133016,7833337,0:201278 +mod:200227,787554274823,0:200227 +mod:3616468166,851332729232285,0:3616468166 +mod:-48554766181,2252075,0:2222894 +mod:2085689725679,557651117,0:74548099 +mod:2079714930,6441707850091,0:2079714930 +mod:-464256354428,40650020675934,0:40185764321506 +mod:-209095689322770,332963733020,0:5535013790 +mod:92840725060170,4953669615741,0:3674671976832 +mod:6233198674119,5752924138093,0:480274536026 +mod:-94439733,73783193078726,0:73783098638993 +mod:524856,25938632,0:524856 +mod:-3642534,51609507988,0:51605865454 +mod:556443616571,195489997,0:79085109 +mod:747271697917685,801669727071100,0:747271697917685 +mod:4017563378374,1995926813097,0:25709752180 +mod:-13638096565,3048867,0:2534393 +mod:304947884525,888510602,0:188748039 +mod:5378877455085643,43074731164862996,0:5378877455085643 +mod:89177886913,4817647675701342,0:89177886913 +mod:-865014493293680,219168754644,0:44581286188 +mod:6321573844,258781732494,0:6321573844 +mod:1400577334033142,14009914614715892,0:1400577334033142 +mod:-337804687,158388274759,0:158050470072 +mod:-3733377356597,469670806,0:35880297 +mod:51974564129148100,903237315049451,0:490037171329393 +mod:56996153270005410,2396515,0:7985 +mod:-67091637443329,19220071611,0:5632550672 +mod:9064750093935233,171857609,0:35046324 +mod:-71156951211655456,39266481994,0:466181614 +mod:4362072502442,7301990213272,0:4362072502442 +mod:-86003145010044,116261682333982,0:30258537323938 +mod:56216118551114756,455637223,0:305042665 +mod:262802582,8458718157713811,0:262802582 +mod:364016243349347,542092606375782,0:364016243349347 +mod:519321257779118,727275719430783,0:519321257779118 +mod:350650081861106,54037636428,0:53896716242 +mod:-342917424075566,19042847036414481,0:18699929612338915 +mod:3486471961809,6003086967,0:4681520949 +mod:693821889,68575560399616,0:693821889 +mod:3401139672999,693846027567975612,0:3401139672999 +mod:676404815653530286,614916221034390945,0:61488594619139341 +mod:4874055499517062,6434678789,0:5095928388 +mod:-9967718379562,6518969637,0:6305165048 +mod:10248458540,38512788750888978,0:10248458540 +mod:934811913,2221199202368,0:934811913 +mod:-6684245035389913,2828258378747,0:1757771967995 +mod:970708744192,5063581816300,0:970708744192 +mod:8778023537730,865180741691,0:126216120820 +mod:651572737854772745,819932061443536802,0:651572737854772745 +mod:31675213895884,13227242908836,0:5220728078212 +mod:-977172760207173,171558790519620575,0:170581617759413402 +mod:-45853408229656454,238503345091356,0:177737372975254 +mod:24097409593,335638746639,0:24097409593 +mod:13695822253044092,1732994051411821,0:1564863893161345 +mod:33933477593,3772615655961401,0:33933477593 +mod:1359484164716016,16485762808614,0:7651614409668 +mod:6194976547,9790288403118,0:6194976547 +mod:35165676304962247,326491511837,0:255039534488 +mod:50698603380253,837874905080656658,0:50698603380253 +mod:-6677472401203205,206803331886510165,0:200125859485306960 +mod:-2753237124185,71096000432140,0:68342763307955 +mod:1652954342334,4660678399996257311,0:1652954342334 +mod:762003770264,58114453785466092291,0:762003770264 +mod:83319117929825,29022700876993701,0:83319117929825 +mod:-437222911638931,2017017077397633602,0:2016579854485994671 +mod:50533577363426220,29452376981671,0:22750839860455 +mod:9775773078526862,883620114446,0:283752410764 +mod:86103820030464773010,9526822249,0:7814958303 +mod:472571956027154222,812207565469535,0:679360489354387 +mod:383374451459403337,4477129646684214,0:2818431491245147 +mod:7081720213022716854,503311092329338,0:133143948931194 +mod:4630128377779,800171178832441,0:4630128377779 +mod:54693593051710401,980996545405933,0:738783054384086 +mod:150482763687955095,749819481017,0:742223172348 +mod:593450696047000,13586015736,0:13528698520 +mod:-730500097181725110,728537309580,0:620447592990 +mod:-767181280549335,8336534436990434,0:7569353156441099 +mod:42981969692069,6887667892543850584,0:42981969692069 +mod:-28591748475152,101365562837426064,0:101336971088950912 +mod:-7968036669154,98303283928623932,0:98295315891954778 +mod:494411386598,8574532520081676103,0:494411386598 +mod:68913463428,37113484763365761,0:68913463428 +mod:79048317647131571,4246788999212,0:2834004798615 +mod:-7998703715314196040,603932675107699279,0:456353736193593866 +mod:37189110674330836953,371484075669789573,0:40703107351879653 +mod:4919085789477,6627653096140609,0:4919085789477 +mod:1124829404566321352,1113121353192745,0:576837841648902 +mod:73970998780022288,690593097938779270,0:73970998780022288 +mod:406559451598,291528733390141,0:406559451598 +mod:8337041054557098684,144564322413327450,0:96874676997434034 +mod:33602045710930,3944255323850,0:2048003120130 +mod:36881013741727574167,2358692215512,0:2217232253623 +mod:6055783116809477,665900361366484113746,0:6055783116809477 +mod:6874334379769379421,7685349776541,0:4194447198069 +mod:4114973877055494,6202439146871230,0:4114973877055494 +mod:3926099959854080246,275452944727,0:275423967496 +mod:4029793101439201031,660396995221451032884,0:4029793101439201031 +mod:301872874428635697,54874102367289078,0:27502362592190307 +mod:5569303592565,237882890299906,0:5569303592565 +mod:-5030250164815763124,20652997723024,0:14613601685340 +mod:228359514067103,297994781044164,0:228359514067103 +mod:-424197230384775822561,35518873718705666052,0:2029254239692170063 +mod:264447937587468968,14314680638460766,0:6783686095175180 +mod:6394566749820905145,9683844165303,0:4880613879246 +mod:-8688948887808654898,734279103507671775,0:122400354283406402 +mod:-626916205862869883,94382847154774,0:69047786293799 +mod:1626914326860229332,7062310571812316625,0:1626914326860229332 +mod:54001071080896262095,42490007593568841,0:38761437063834025 +mod:24728563187886295882350,709499139923539295422,0:605592430485959838002 +mod:-1107994585324963758433,26155793492434894341,0:16704534849736698230 +mod:654008549965770,51389913007264,0:37329593878602 +mod:-519456375679038,4624572350871880932563,0:4624571831415505253525 +mod:-82236922719413533430,72103334739677626,0:32982218558637836 +mod:-323874523758275336,8012542519209926,0:4639719529331630 +mod:28055503703579420,59306141019480998333,0:28055503703579420 +mod:331202177649495634,20031374822914022410,0:331202177649495634 +mod:-130081790443955,81911619024148257,0:81781537233704302 +mod:12392000130570253028635,427646582276340386,0:85115948737663513 +mod:-3408044901060955810,3826012386295493550,0:417967485234537740 +mod:-2520566214354390679555,7522956445489849326,0:7147151330198693981 +mod:1980291342375366442,2779172585704919,0:1520461353464114 +mod:81051547602981,72198401841564,0:8853145761417 +mod:-92876397580264953214156,67027595927289169530,0:23850374957835754424 +mod:5011749939685736607,233831869913631792,0:101280671499468975 +mod:-809134913749137460747114,775995673975034727,0:431478675099304148 +mod:643341365602570,69924772710009984856,0:643341365602570 +mod:27791967964909927,59009798124981438889038,0:27791967964909927 +mod:-113914260724456,4611599197279102,0:4497684936554646 +mod:363308545066340586,9662463842692591834,0:363308545066340586 +mod:27756526116505105,3891223619279919535107,0:27756526116505105 +mod:704802873683670599667791,7264024574741209,0:546567259370500 +mod:787136088375328,120969078621542,0:61321616646076 +mod:7670850065383883511434,877940228500467933,0:286288975295180813 +mod:702943840459603392464,184873925058119829752751,0:702943840459603392464 +mod:346820606266075751,258033318226999763369665,0:346820606266075751 +mod:-19738877253014425,881986541366353479688437,0:881986521627476226674012 +mod:43236561155260520835698,38481338895759451581,0:22017575322656710235 +mod:482681206446127491983,75672199144043749590770,0:482681206446127491983 +mod:-9003595768210252773151956,24542596402501089193,0:2977625686803835252 +mod:500595090938893533,22068045096454773348,0:500595090938893533 +mod:2380288714663108486927735,564958976857884405,0:163611608764475305 +mod:-61794208268134898961577,163988560200473972889023,0:102194351932339073927446 +mod:-801112647021780575,5997315269791230838613,0:5996514157144209058038 +mod:3375858304586431,650460337591609485545992,0:3375858304586431 +mod:8320311342983951,42251663165732904527,0:8320311342983951 +mod:7459256407267723209637006,417970890631288166,0:349337361754478408 +mod:848180762170013347,7469835660313775,0:4089332554556772 +mod:8089787096351751904254417,50129556268942208341,0:29694338665148808860 +mod:-34903538093781704569582,183184852451752183835379,0:148281314357970479265797 +mod:48619014890072452,80354799021914778903,0:48619014890072452 +mod:-815988375058446388,8738660656145657284,0:7922672281087210896 +mod:31813448306518054090072,207434655868203321566266,0:31813448306518054090072 +mod:-8633600698002819419017,586048397265776638134,0:157125260983830152993 +mod:-857216833834708698,9172367193130972108680,0:9171509976297137399982 +mod:5504547056103565303478,13822143042666022,0:2988649206036176 +mod:9870113591998328200,40859674965133754765576,0:9870113591998328200 +mod:5384435851045720977148,202201600690593374,0:9426255910020902 +mod:-2551078867778519184089893,60228847348701786402454201,0:57677768480923267218364308 +mod:91679210346975867109461657,9997426629350491363488423,0:1702370682821444838065850 +mod:2292649799687862201,546378248247723870,0:107136806696966721 +mod:588814820029030818332181,8113490218013508525654874,0:588814820029030818332181 +mod:65454498830100158031,780288548110175467735,0:65454498830100158031 +mod:4709646238170145522365,55608341104804744,0:9004980917338773 +mod:-225535148248500667,8159132039306813709871312,0:8159131813771665461370645 +mod:76763315297183633054184,85934198951388076635,0:24075633594080619129 +mod:1133129576897649900,54644763452092731277,0:1133129576897649900 +mod:-67382808234452914542138,8955363760101370992534,0:4260101846358053398134 +mod:-90953375293336830190945,6853448055620747690936,0:4994897485353637482159 +mod:443616999780543985329,602650474818987637619854235,0:443616999780543985329 +mod:-32726760956482080293262442,7257539124551086281136,0:4740495243318834660918 +mod:8064248346280114405840575,2215292120106396321855736,0:1418371985960925440273367 +mod:-7028166529953061572415,793014187917784076,0:318217562258693173 +mod:-24801752752631583807972,746849063653448560403834425,0:746824261900695928820026453 +mod:866033908626319182842,6382377566902718089,0:4412937094452240827 +mod:-5696109440363786526866,467357847433239609373,0:379542576268328394983 +mod:-10407234425686004311,628564472015312749963777,0:628554064780887063959466 +mod:209459609329564838657,2486115412259790740945969,0:209459609329564838657 +mod:83211005582689134709,427365949717166750,0:302011337558785209 +mod:522043226813009221,84636707853907370269,0:522043226813009221 +mod:505480107359090528100756,628892849069663750,0:562098008522737006 +mod:-310708269201043467381433563,29010904881853615009335053,0:8411684499346297721252020 +mod:945016205353589874668951,176007434590298672,0:79677746280043975 +mod:3611093895058265247,4523612444279050027926505809,0:3611093895058265247 +mod:2248073915672967969228420426,417993946449832515848531,0:102471665768698995020708 +mod:75483556005338850007382,767992806236118220580991044,0:75483556005338850007382 +mod:349175730044864846750,194542620085155145157549,0:349175730044864846750 +mod:5214057366956683393,6766485378347583109969578772,0:5214057366956683393 +mod:42801122269815033051372,76491121430284940146293642,0:42801122269815033051372 +mod:1504356843590479398148441,98825538637920229212984,0:21973764021675959953681 +mod:1422956549105294508549700,73999528905391695937,0:19607783517587377127 +mod:199912292615681783148398065,5625251527460055267035,0:2103832806339068508235 +mod:8738762075990650132321428,8066858358673855106257,0:2354473546865052245097 +mod:8744971293400903575143822441,2181608008778482293077393,0:1086394216746544489631297 +mod:63912100585682096593583,11361184476808394745245,0:7106178201640122867358 +mod:64684262754316464701,22376578863907224393672,0:64684262754316464701 +mod:13792618112420611117,792966702790880958054,0:13792618112420611117 +mod:1114011944265093423883128,24116689971306070038294352,0:1114011944265093423883128 +mod:39678469855084024947237050,42142535719623301934525721,0:39678469855084024947237050 +mod:83034763665077760046967629,82778559778204667638,0:4244359548962628019 +mod:2396471122363838882513850900,59747356384740003525,0:57225475716145829475 +mod:864549729107840811638,74264623502102569648,0:47638870584712545510 +mod:293471055432367196531,95629011563915920942031898043,0:293471055432367196531 +mod:805770771235800281066969751,444417493982143896834,0:79401739074580625355 +mod:99254856446162105637797829350,101981775402621358245361,0:73717806842511917782490 +mod:22541739862903307325,418383569773975023302632076,0:22541739862903307325 +mod:13599043000903587396023017,686395340986063801303,0:178505287691364607981 +mod:-921575422288638694625782546,2041485695291750177603,0:216222744337548474126 +mod:-489269754337315502376167081,501875735917569336224,0:368721212244829894711 +mod:-80044798953445460081243,6139390882382293287544714,0:6059346083428847827463471 +mod:1697244421022884241204,9839911566031781174211,0:1697244421022884241204 +mod:940445668109981090346872,1166998590007295684475234,0:940445668109981090346872 +mod:399066130721328784362180646,2466979168009327704701836,0:1882484671827023905185050 +mod:-48110448286951664808938217,6924833390360325487794,0:3294109271876680254495 +mod:8202438083226798875527459,2712253233103808901251657,0:65678383915372171772488 +mod:5450714727456153005642027367,100450439174668838374882,0:72996960272497744180283 +mod:409375235483978782700540,154442023996251499419641,0:100491187491475783861258 +mod:75895449457418931569869638,96657756211092917375958176,0:75895449457418931569869638 +mod:-337896716384821901508,136332254359196503233175760151,0:136332254021299786848353858643 +mod:286597911534314020993735125,8939960441559894748118849,0:519177404397389053931957 +mod:-3629523279922780081559669,47176221977787068435634953,0:43546698697864288354075284 +mod:721006898368058427667864053628,560134433649198454347279482,0:113882261540016922915360294 +mod:5816434052384442045783498,8295493150888286278058,0:1293353611753364864840 +mod:609810757121108447302938155,91911350135942492551802190,0:58342656305453491992125015 +mod:-19105264771397651242810,62812840189408438467870,0:43707575418010787225060 +mod:-3384023484275449303514510512,36865912947085723132571998682,0:33481889462810273829057488170 +mod:794103148636604290205719396698,60830693353207800202838586376,0:3304135044902887568817773810 +mod:-872647162068256604091329081711,7171269767341809905452128,0:3142110266217873424018225 +mod:1741864928041849080630509776343,4019228270224295025021,0:3953212345502485484813 +mod:46472481719179435494357769,7926074597166240368807886225357,0:46472481719179435494357769 +mod:-8260893021299279875407235,8110427213374126288611,0:3632309128954812687374 +mod:-12778559515327410738082,60133073412668338924778,0:47354513897340928186696 +mod:-33979239742647553347892336,6474568036342863013409,0:5767880116134609491505 +mod:983404512267124852163233,80477942869108029021719,0:17669197837828503902605 +mod:3832523396251835150772,9395631266939763227204675100039,0:3832523396251835150772 +mod:88670226724007548654482766,32452353295811216769641,0:10397519851304439823554 +mod:96278532026543994019519712307,129820052877663606606885,0:86210882333451655589757 +mod:-5810653163494420168043,36986477497409060096423733207,0:36986471686755896602003565164 +mod:3126207974581460571577891,32180478067769596422373325424,0:3126207974581460571577891 +mod:51956357441149158122167659,1003490769172375032993217,0:778328213358031439513592 +mod:-561702379847624714751550,53922991187327968536105231702,0:53922429484948120911390480152 +mod:446077868534077880774451137,67277848506923282427435882416,0:446077868534077880774451137 +mod:1575047464232207678249043,70194506692490651832280909556,0:1575047464232207678249043 +mod:814270662793297992963934,403564259479336969832400620632,0:814270662793297992963934 +mod:790699201198504136904045859970,68724106656555736601709440224634,0:790699201198504136904045859970 +mod:8110552276797224689344660171,3909333328494414590072213560549,0:8110552276797224689344660171 +mod:-65870994230220283146814283,3379239242265180710762324,0:1713790615083331068432197 +mod:4019795295333902960419848174,50295832366163431551511941,0:46424538406991867850404835 +mod:11568598680110024328705699675,22452048595187151195492,0:1025051083178018882739 +mod:387522780739724474268318533074,9155092309434144095404353111490,0:387522780739724474268318533074 +mod:2391972635448121089016589,39976990962848470908868,0:33330168640061305393377 +mod:866848655025962221176014879,40996252765546194841051793,0:5927346949492129513927226 +mod:9039212181347754641685676061753,1413755859430626067769418378148,0:556677024763998235069165792865 +mod:62309693047935174482238300219097,1448468173515469111051509167,0:937627820239732135530382258 +mod:10235771277419233732197767436,47759815237747782490291,0:30955110842232226071189 +mod:4510445237186840834301611,9536931548375816882114508,0:4510445237186840834301611 +mod:32374689605351221312665153746,773865694054081649089543,0:18294598715523004122341 +mod:58121462593501432960291,544699189690679924713807,0:58121462593501432960291 +mod:487815493709763477417262324977,100467558757425018298664228901,0:85945258680063404222605409373 +mod:98070875983658870659113425694,60099405211091721761658040174,0:37971470772567148897455385520 +mod:918364128985502035087214237,2299858822935844817555228747,0:918364128985502035087214237 +mod:98947035094409552251212724,2825141475757917666304644602636,0:98947035094409552251212724 +mod:1526039375858118801195007,9842198071310595711976222424051,0:1526039375858118801195007 +mod:956310510459469197042596,12660491958158211655462388289,0:956310510459469197042596 +mod:712022876493637494246773,6907620845496782089063213,0:712022876493637494246773 +mod:-127487606866501768951687217731413,97214150491566835275008318146,0:57358578433918929123695676139 +mod:6751815551565439795678949,31071725936607844864896266530950,0:6751815551565439795678949 +mod:207247716655973517840426399106,8676153294057052584605417,0:442920832702751956803227 +mod:-966202956730918757628959,506872112425906694585759,0:47541268120894631542559 +mod:-68170698773654086579499859368,5144430238993385147152349982479,0:5076259540219731060572850123111 +mod:183149199419924949681672,26683244363440548441986070029128,0:183149199419924949681672 +mod:-9975221264569424411536101126696,74192946761934634594295284416,0:40826548291751258693762269464 +mod:225922343593361728051942267585750,5683400149678094053656150,0:3825868296308226483712150 +mod:1590802748651151308839006,37444237944901366482969738035104,0:1590802748651151308839006 +mod:9067619839451785696827107956190777,87355497973165371903530913,0:84293482668838694674156358 +mod:-86293581881377444715621610358507,7692884519189179893063221146996,0:6021032348892714001137043405445 +mod:797270639908743442539388404065,246054564304506055627938724988881,0:797270639908743442539388404065 +mod:205038144424990428525674376,85234961390603945529096075,0:34568221643782537467482226 +mod:35844939430843764162712556,653126866666115633914185924567756,0:35844939430843764162712556 +mod:4259287602245499035603599602,50729589724528668468977995092499,0:4259287602245499035603599602 +mod:2261834480876028227185763,424795020529636248111781917,0:2261834480876028227185763 +mod:39152906040428126999262088,4297272364540702463008576,0:477454759561804832184904 +mod:-5930922183829543621704345694286,197786250025515478569975835009,0:2665316935920735394929355984 +mod:13648638091639720241268467,60685727322075123781463007100346,0:13648638091639720241268467 +mod:-668319624482464990058154959802,710719216881033542598449292474287,0:710050897256551077608391137514485 +mod:642021199249584712913865808325586,543227057645582873078752689,0:152765287910622645761540601 +mod:-2656447484733675418860019290432,205011691602629984379183426293586,0:202355244117896308960323407003154 +mod:-76116380282907702927282762504,936328544643249459199496754,0:662560377838752727075971324 +mod:8093358695607350358964677676389573,829984096904096704239626252,0:340210087590552445135735881 +mod:-9278168173113556399784725246186,4280082896252256282175389133291,0:3562080515643212446741442153687 +mod:2802211761443428677828547316,747494545678197065832762122247199,0:2802211761443428677828547316 +mod:23492204756311184079845536545,337250910922702955980510700463272,0:23492204756311184079845536545 +mod:64710301838085669236316870323,868170439410850659865082898,0:465689321682720406300735871 +mod:2741127245480801383259770751238076,74176417788834011756636699109536,0:70776205082776960020849583294780 +mod:415065500982033616775933433,28746890219519286864975018117944504,0:415065500982033616775933433 +mod:-89217744891275021874139963535100059,3290121624016777142908239971,0:2829430817460639915155471175 +mod:-9317836992515247957659739610258,361276376419354526411745198556357,0:351958539426839278454085458946099 +mod:298421168958661320791582460540,9311321600116774390269301187799304,0:298421168958661320791582460540 +mod:5274155275590071857725575099101060,98122204238639783506999069,0:57734636536655754953174064 +mod:865783349805109330441131327,162630826994678660982290958,0:52629214831716025529676537 +mod:708516761779855069848378277411149,35904666994288818268923584882788350,0:708516761779855069848378277411149 +mod:6609496417442545300703371471487286,5902561608289411469926303,0:3737357682418540243913209 +mod:206488861625670348490519145948,55768433595490812270050489117,0:39183560839197911680367678597 +mod:235462255567476370046316727231771335,90122239517029363511961434219818206,0:55217776533417643022393858792134923 +mod:7378753800396502033389928296562,22504168678875184770299793837483,0:7378753800396502033389928296562 +mod:2757925654768646392546972258732,66265998215956320290751023811589600,0:2757925654768646392546972258732 +mod:-4495627928966379121510140686227227,4292233509252118764895120750881,0:2632788729841344099945860696061 +mod:60075078241755197289597987901298258,85793760621445664196834659007562403,0:60075078241755197289597987901298258 +mod:640202717640040770302982685361,1043941556622236018146973420441,0:640202717640040770302982685361 +mod:981675333306953772484178502284,14989243876208586685329510289358317,0:981675333306953772484178502284 +mod:87715989707184594635823373687043380,2924631585179762875239333452363500,0:2901673736971471253882703568501880 +mod:-323249437311463874466227132752562758,54630285509683054247993598313342182,0:4532275746634451021734457127490334 +mod:-14647356048136737851231147317,175677379713875589633642881,0:109543847828811677994854687 +mod:-6268327123157272100193046712,31032884392623150618360081127,0:24764557269465878518167034415 +mod:8830187989453831993186309990340663,959494270231543012302622845163608617,0:8830187989453831993186309990340663 +mod:2102106468815389931443009975417,244048361348982984508269787947,0:149719578023526055376851671841 +mod:767756521870180222085097228863,5629352943535035124861550483062,0:767756521870180222085097228863 +mod:852449392775158289272424932198,564809949353895492950864832457,0:287639443421262796321560099741 +mod:-94075133584459673485423491471,7078005136840583876255761330997303,0:7077911061706999416582275907505832 +mod:94026202014853579487205142874162,363228855132321701963096787271215,0:94026202014853579487205142874162 +mod:78501236594767796495670623879783,7018641410498793931533837751986,0:1296181079281063248798408607937 +mod:-83121914354650984352606847805013,52556446964608987755585827141661,0:21990979574566991158564806478309 +mod:554612894627846154817277112226378,90600992903463982226644139632,0:44217065743119607988333538906 +mod:525293194961196331029028416806301039,736093318498847487453110088942,0:72734093290490277635805244173 +mod:157610281371549009553406136918536,976813980235355373377808309891,0:343230553656794439578999026085 +mod:-266509790805154856208324746487,7013639425300014015101241233380,0:6747129634494859158892916486893 +mod:59653129021803829007632144466094,6178618914324116986866641510962341019,0:59653129021803829007632144466094 +mod:-1025495993097568795964701500702,857271481493597231020277064636,0:689046969889625666075852628570 +mod:481051936536536822112378933191985353,9466673918671293738127743696345889772,0:481051936536536822112378933191985353 +mod:848825342321881584621547504882,5509051479604448499464250938005578,0:848825342321881584621547504882 +mod:-26930177732304779325732093789608,5553144086178691095750038113040,0:835542698588676153018096775592 +mod:-930412667133937228253381813097,66449017645940693043271729675,0:66322597555173167395694132028 +mod:393034277242496542604957925805,4799386565947366109662393955284617,0:393034277242496542604957925805 +mod:86603638626688955985063356610183,1769014799372327392140745286156481,0:86603638626688955985063356610183 +mod:40877446922338785512028664714,3627227112486512731974346137499409882,0:40877446922338785512028664714 +mod:951744546236842962508833599628258421,802365455425080101863813995676143,0:139116102697961698350200756352823 +mod:30829284319654404192904595052,1296652777164452508914199335388219666,0:30829284319654404192904595052 +mod:73660971721825840324689412056336,5684533154366812172288342524757974326,0:73660971721825840324689412056336 +mod:8127358843185844147904557106702570660,3688282607387577967901654384422862,0:2072259111009884617212497819005674 +mod:36532892525294324678919117123848496713,92715061891153280227822277460692,0:5828075633057629393846902185185 +mod:-8597748351805543505111910190253821104,9557218184864474744270904051127420194,0:959469833058931239158993860873599090 +mod:774575051270128492444548860406,78181627397979349461399043516039569227,0:774575051270128492444548860406 +mod:71412172829277670593171097931971081,734737459512775442295997263661678,0:142639256538452690459363356788315 +mod:6184659289209085822436564762850,90249969123878877878427941364168671,0:6184659289209085822436564762850 +mod:188404876454609678788443725411,6011866633368206495263558549515721,0:188404876454609678788443725411 +mod:81043932065078534018074416730418,8372433471866735006229336375535354,0:81043932065078534018074416730418 +mod:6912342702093810814710065121185782090,79053815437751598622884440565862252,0:34660759009421734519118791955766166 +mod:-3169060990465931351414443670,3481005717923100913496633725151171,0:3481002548862110447565282310707501 +mod:-3677873239878011216446421508552,39945867794076672579972752013115,0:36267994554198661363526330504563 +mod:-88408316452809240011823526997216147179,430749395485673956071441817182,0:247080945638127516958667217647 +mod:-7006029462687996724256881439538686,5752004602477767685988190527369919519,0:5744998573015079689263933645930380833 +mod:172663755283332370937921725543,6631081406973798665639408060368,0:172663755283332370937921725543 +mod:877725872115390827864622867155990409562,3246622975450958412670313198657575,0:1350702224220999203693898915008312 +mod:1162325904966484479085618134964501604,9810351533284785336335637682672874,0:4704424038879809398012888409102472 +mod:-67246779579026319613494857580231,4479147727625713736723230094972,0:4419584062985100174076823939321 +mod:-83311824891620553984522523676903100800,570821292295355560082171193531,0:517563010884629547920243561062 +mod:25686998142667809989182628560877290,2025104174001151569408893055981534120,0:25686998142667809989182628560877290 +mod:-6182593212766128996183974088677690094,21672462542175162551645329360574,0:18538952890500736647244660057756 +mod:-294700116350712193407358863563690,47602175104818483716891162778987,0:38515109383017192610879275889219 +mod:99318338781646049264027201614,31132733056517268309209622249797280421,0:99318338781646049264027201614 +mod:-2566422039368713945896870934278082067,3422938407926845108634793366952796,0:781766576419885579224090936514933 +mod:1798229479312127271076623168674216,146420794203382070378885907918865097585,0:1798229479312127271076623168674216 +mod:-10575907960389417493180423047371,548554000428335526399148116041,0:395172048177293034802539273449 +mod:-41585237394069668771815671048852049750,6620785900949628605472441451228089,0:6539635695898127762206147762805348 +mod:1375415227799292140480888477226023092,123029527135707896415325486765764221416,0:1375415227799292140480888477226023092 +mod:-2079331025811185903148784604677,95045957198248711390742316452607286039,0:95045955118917685579556413303822681362 +mod:-212508186835656490444057415261195182,4829012565342247873891632422752490038715,0:4828800057155412217401188365337228843533 +mod:-560425113540022327972433105315966740,96209074671864129929198408439658600,0:16829334491162451602757345321984860 +mod:878336664644268081456398188824415429,932061958650634766658892044044056328852,0:878336664644268081456398188824415429 +mod:28882941735745195429234419733039022447,64140280097846201870647655651438569,0:19815691714404587442974689891666397 +mod:88232952784596907289907603989240788,93349243418019298106177761581992320992,0:88232952784596907289907603989240788 +mod:792301762499682540474009585487691810,421120400044388668787389960907,0:367290969121964719876967770219 +mod:76111941484805465095241888868932546,2831856059624821529741336978732478,0:2483683934560105321967127421888118 +mod:-5427708288474184011690247672955482270191,671682251167994228841481066017358827,0:155983214377351577760821530794410796 +mod:-8530853102666682143315062468746465,213498385560089813626810097876341271155,0:213489854706987146944666782813872524690 +mod:968866609367366454712369109246988,628634209852159542629660518990065356620,0:968866609367366454712369109246988 +mod:96097393485358514676281731274665078,3957833123075932141830397414925844074923,0:96097393485358514676281731274665078 +mod:-81978182783653208012914682683646556932,972774031969126613105009607688574,0:403212480999053283791985092639770 +mod:313104324214756365552882262334038,5945062360867852334605007338592823936,0:313104324214756365552882262334038 +mod:2735884017629695152167391129737071822780,3290205739029218948898407572995748,0:2270894901924122540569416928458576 +mod:-97466756197931651810599360815010262,3315237020945784440159312220994155,0:1990354430441881394180005814814388 +mod:4287211941100891093508540048565501812,594177978658290517920278334613052052,0:127966090492857468066591706274137448 +mod:5617959241381925678540184778777695094011,4078448937249847013764977403503471090,0:1935054788886340585810894153415403081 +mod:-3548112469563645005797230889810299281193,34963401912331074261420878238937,0:23794960044874975729481854354116 +mod:4922552264219521070158559671565380834,5646798983979557962421505933015709,0:4190349173326084889428003908698295 +mod:32565692680193961073474123363666015,878047053403499712307729237883224199,0:32565692680193961073474123363666015 +mod:768830069274599347793505224871406391916,49256101034975375638954310064864965,0:40844320703684820706353378994018196 +mod:642199331170025417801554157178084,71675957995271890601200242650759107386,0:642199331170025417801554157178084 +mod:42268335126087027949341092958250555849,386269043855800901191675132738936,0:72464078302734639658208027006177 +mod:61951474950542877141809186776499309394,1575592140257546405587708780583660678216,0:61951474950542877141809186776499309394 +mod:-50372525688338317312158892618403161,479484240404243987384900356318490043390,0:479433867878555649067588197425871640229 +mod:44683217172537023841274434066246364,58011321282881808274541027575827116208550,0:44683217172537023841274434066246364 +mod:114588115678254964728743791898564,4589417972133701399012552730584485633,0:114588115678254964728743791898564 +mod:787749081823153927726813864184041,31678364830089024747329753309219782268,0:787749081823153927726813864184041 +mod:-4210686607729439615194829247147791999288,202013476656713406344999304149677576978377,0:197802790048983966729804474902529784979089 +mod:-201317765219861856053478772267939948214725,28008182775029748896931627041800444,0:11094152473662864315215654119177355 +mod:-232349757997193586311539481768342879244,86500898319812757120814118782924774,0:78155788143292072088055401375988494 +mod:3459368213898794108935715830804259,645307545853931027509103766501511211,0:3459368213898794108935715830804259 +mod:-28214486245399572630623366879671715,4787018465719437691521185074756254,0:507624548917053518503743568865809 +mod:3106180109929449357402363559818380895066,469482281886594475593365429169214,0:356674718833276575481292181443332 +mod:770130766600035002140959295669804,926634653367571574740533619678875292928275,0:770130766600035002140959295669804 +mod:-6708203696875914373713983952300480,1838061152155611054471652207874138,0:644040911746529844172624879196072 +mod:-7022023536539325666545120950542389888,61599165978198027775591136704700507491129,0:61592143954661488449924591583749965101241 +mod:-3443533443745355681222242435436421990276,114311172439204299235358268154904366,0:90625985673833242925392730072035474 +mod:110440434921544638432764637319049273043,85855605443431360697149818939494456029,0:24584829478113277735614818379554817014 +mod:46258128333769427123848668553344812866281,2571328063101410768335059965106947440246,0:2545551261045444062152649146526706382099 +mod:363228842811153324360949224721752071886096,519776907108357809938962249484450996075,0:424561649519573023553574581605276625746 +mod:-7481133759236874924421451125199442,918037057467449661018383366170845,0:781199757970172024743999170338163 +mod:150233345756076313394229291485865,5605171356421762519368513553022673456091977,0:150233345756076313394229291485865 +mod:3185172342747413751304414848146001953,6651506504167945767766564692832116791091,0:3185172342747413751304414848146001953 +mod:605932275764163370707058593099297764806358,14520707105209378213724439334671383,0:12284018060727065660013089171020638 +mod:-47981623369556624178550389594061247212904,9181422689232628129475009481374015950,0:491604373090426086009955599360141796 +mod:874599738760971500384056236606682756504,44920344543206332304195675515171507,0:630504744210421366434326293515214 +mod:-5100339758640008895519382671699671,18538376885121966053582708191078256,0:13438037126481957158063325519378585 +mod:965966374431724388594710850103760963,51329769618720367882036219795372158,0:42030521294757766718058893787062119 +mod:55365396231165487163722749393764963,742461596124505780223115709313334341,0:55365396231165487163722749393764963 +mod:6538244814994833769942887762335568415335737,235589470700074178427678879883234150432018,0:177329106092830952395558005488246353671251 +mod:-19650261899708426741119367893002798,8812987996700889285483125610332533544693,0:8812968346438989577056384490964640541895 +mod:97698921976137171810654806439140172,2150746254976033978038152730412247,0:915340502215642798937933570589057 +mod:89923455582480950213180680168369292947024,990694177649308076053947944961089214039,0:760979594043223368325365121871263683514 +mod:723635984996285778841783493422287881642264,32276235065854550279733766315134173,0:19063611098078828395533076621443386 +mod:-5037258901456714281661245286129845002,306535320966797925963773461282861033272807,0:306530283707896469249491800037574903427805 +mod:166532365585666920632121582151238444,4667090491545163201419847209865957,0:3184198381586208582426929805929949 +mod:911936886147819373421198830106569057199,5615756921004609557346343726386068926525410,0:911936886147819373421198830106569057199 +mod:86811484072885033355160274493374615256,37068107901315780002032584004147872592,0:12675268270253473351095106485078870072 +mod:900473503013044141279558739534891246414484,563077317551901922040540262359036981493665,0:337396185461142219239018477175854264920819 +mod:296206604339420484011101863526048420,6943888401750337638037748772448658766,0:296206604339420484011101863526048420 +mod:76766227336308707540545234943801585701916947,862719523018962547718304126230369079803,0:581458558401082022815487697114611966204 +mod:82054010479033741262889658973891816396202551,74207348922359582189434798229625162234441019,0:7846661556674159073454860744266654161761532 +mod:5755949428068825531208655649279932079247416,534856249135883824768051408128323875,0:303149412971297936011710552241756791 +mod:-4452928490319786360637181545589562421706,303160457106458311370564160984723696,0:195464116979775085035415115043948838 +mod:-33234789698150515963593845391683006297003,247588244673392242851888266520387546,0:218325582291755629376064681215940307 +mod:45977596818262545665224859936336489390180665,27112842992285248552330285939262767,0:7978970070244814382475981419198853 +mod:19746632039239597257084558812475187,78543233940000315537304287419172400279725,0:19746632039239597257084558812475187 +mod:5238660120000018347305860723869512579464,9519590072642166905656304842744016323,0:2885580046826549194893060360303601814 +mod:421929309968572623211165422203258159204,6170672461209605966222290081308608002126042,0:421929309968572623211165422203258159204 +mod:97091659698518128542501333936202976578952,9041846719954776582047878587371155342936,0:6673192498970362722022548062491423149592 +mod:23139165317306380078171479574331055567930602,3235715510499720116696692085743763585,0:687224054572373129244754482756731812 +mod:7726755134733624542969321051092429534,137447273592584087361585543516012636379,0:7726755134733624542969321051092429534 +mod:-8035318446247202234206121089089275957949,1797181404653889821209194311109353672704806,0:1789146086207642618974988190020264396746857 +mod:44241982166867606755367641125284961693,185309069767665166238795112362391081,0:138423562163297190534404383035884415 +mod:-65785436012415799791107145824395590258329666,325370594025067544378522706736314963998472679,0:259585158012651744587415560911919373740143013 +mod:821027673057722511274869415993294010068508911,57940761411167592399099541246011867856,0:15088585564533356226393273829101110479 +mod:-897376592880832081463108433977538716243727,63994684847881571668961590693909662872,0:20872741011198050739952323156486210329 +mod:191486322813809144772467638907874658537,8919158359079954072103703171632009622394,0:191486322813809144772467638907874658537 +mod:163217130341378273663281863598861624,6240813543901974803730523328640195566309,0:163217130341378273663281863598861624 +mod:642113355959693728339535203311987630159829,323941666913544410706066077917137340119619,0:318171689046149317633469125394850290040210 +mod:90922298984492607133074207595203967287,4174997092394433838709995127446401945171627,0:90922298984492607133074207595203967287 +mod:-56138446847378331284150081036618044197,841578896703894278645078028402014609956835,0:841522758257046900313793878320977991912638 +mod:160326346782265576182652967313761281,561264601142183384980166754221561305236177968,0:160326346782265576182652967313761281 +mod:62576995621135938138768719119421725807,52496992618170687901372956534626144856655,0:62576995621135938138768719119421725807 +mod:-810322268830690053691854099385548648,520427764614796522518452921164896518986058,0:520426954292527691828399229310797133437410 +mod:-7946357739653867559456965124148378449835470,5327876492137615168373368729394652862957684,0:2709395244621362777289772334640927276079898 +mod:51331569935780141651744430445423490878343,752393011036235424760251760776480444081267,0:51331569935780141651744430445423490878343 +mod:6390091523604851953175389451017692789149570,538026068781142884378652825927355725561390604,0:6390091523604851953175389451017692789149570 +mod:50795967128946679209456313061694178754547719,2799907523414076596435050064346492259123881,0:397631707493300473625411903457318090317861 +mod:931794725698638185508827954509566305382537413,188887874108390274677254477767965547955941480,0:176243229265077086799810043437704113558771493 +mod:45956761520600045904065879294257993751858393,2754559558487710326209328606488100503,0:1112021195932856302477743058115163232 +mod:86998056199797702223316805148045842457568,853454763663288996214888780372138920872593497,0:86998056199797702223316805148045842457568 +mod:-20704801388339426733036642845379116124827,1435867681437150310057862989648368134,0:410577984280737997741465350352367453 +mod:2856130129221222388492861978859662650626462,3415046666744379998032348811600467386135912906,0:2856130129221222388492861978859662650626462 +mod:9174094790970904280083488936332437588,80223089031357892324412497824961233579,0:9174094790970904280083488936332437588 +mod:4534642237573685930694951916760916917,1687939078118830937441972536472082033553313,0:4534642237573685930694951916760916917 +mod:4953285485878049171718509399492969344,8438715605646215951383851878799856179,0:4953285485878049171718509399492969344 +mod:-5473561371563615410812461706913472604,214334897451541211570930222077036158481210,0:214329423890169647955519409615329245008606 +mod:32314040316433349581573558346471215798,854672171304077635036322002646520921344854,0:32314040316433349581573558346471215798 +mod:984601652834979681176881179524440398165232732,6010771562748020948016078628902359752985473102,0:984601652834979681176881179524440398165232732 +mod:698822785190474223385164957713213782961023671,150442537951079536547656264208689393334480936,0:97052633386156077194539900878456209623099927 +mod:-832138567182782528876254228044578514024849,377042837783032738781722401918006460405664,0:298989946166315687468912977709440867192143 +mod:-271707131793885697341132963275474633346,74513535025253601112542022792779088685,0:26347008307128707109035127895641721394 +mod:44640484386299773856766873434498216561663,5213123770976745902224829213477542076627816299,0:44640484386299773856766873434498216561663 +mod:-8174713099269176537506457338358109028363056209,7202185449263765965193807505095247595858978029,0:6229657799258355392881157671832386163354899849 +mod:12355340492830472409960851629397705304982,6132966232951258768476406645904988676022226517,0:12355340492830472409960851629397705304982 +mod:740672577198687499703984527131597058855628260,62988497968425244096425380714180031243,0:25908678444459756553419138341753752738 +mod:319004336538265669049369604224595570722530952,61211042298242370348907837021107959589032437,0:12949125047053817304830419119055772777368767 +mod:4806439359677487573544166219831820280885,5343125957234791643541038079815655996180160,0:4806439359677487573544166219831820280885 +mod:323024441762812965484474248139147756931591832,5765121910212312442407559411924073985538984,0:177614790923468709650921071399613741408728 +mod:4723337975870144045814369863570042890658212,89287300568064096399722912162338068807417604,0:4723337975870144045814369863570042890658212 +mod:4046612007916961296580001696582058791225882326,5729739966517853346267035412515108513431626770,0:4046612007916961296580001696582058791225882326 +mod:540533121775179300141141525507624112998,4914658151314087364162157813143111418270829,0:540533121775179300141141525507624112998 +mod:66280283111826907749579181590044353153733,204172771634272898466853823821147342141093,0:66280283111826907749579181590044353153733 +mod:925538924182292886302889784301398233703,1123951844806914762874832168405952076336884530,0:925538924182292886302889784301398233703 +mod:-9277230270610927782719268661989105709153,55678956296429757152650874683611007657644,0:46401726025818829369931606021621901948491 +mod:50293591559684931942237588278999569425818428,141131236033928957276244084171780508793074,0:50871531606223151894694313845708295484084 +mod:227536874010521150326799753293426594405370122100,5663713263329817356263170887251834777947840,0:2857369509067856283126068971384036093597940 +mod:-159636069245107191231315124801771805922519,5376563717710166640876235141463100221226553282,0:5376404081640921533685003826338298449420630763 +mod:296211412518831858845632004066852419532092957,9193193936667373505606545836126920558776593,0:2029206545475906666222537310790961651241981 +mod:86602967441811929071383589926953279497600400,29113787967675780279817029258848956369351891,0:28375391506460368511749531409255366758896618 +mod:935808235992985547250049168223094462501588,823359169504337998748976932597778859831206424,0:935808235992985547250049168223094462501588 +mod:1241588731631743791569571581848113730164929826,171962803446046629060145060037355991426961,0:17290751287129755324248378403472062271406 +mod:-74403542912395173151108580799350125207208,117394870062241902513223079179473780570881,0:42991327149846729362114498380123655363673 +mod:-97438192951192117314716964768364222640372905637,8024586066648229541713894611454280576509407,0:4355656117334010314857498525106400180823564 +mod:-737958699044282011354135601107494488027530,158340104707707507507946829328121909848911613226,0:158339366749008463225935475192520802354423585696 +mod:7238206747053249220557962252149262130217519,26583927802751023597693302694515406325578,0:7378384704970801985383919241071609660303 +mod:-76298303799498407827228786401180081621564,305509547184311996384274460275527665616703456,0:305433248880512497976447231489126485535081892 +mod:8484126595409899812717896552747684329372,304175476902105667248597679191320877778921077,0:8484126595409899812717896552747684329372 +mod:16618292546225677123057630920609252345178704453,1759703193372771615772702336566528721798637962,0:780963805870732581103309891510493848990962795 +mod:-86688490323412015602068918712338617474038884337,68055712910244091518751770267361236110795,0:60113101985245418861232982916749058457123 +mod:-2147105590126324395866565651207583306108779,8080551616254563514320925568870382437821720942,0:8078404510664437189925059003219174854515612163 +mod:8351518777266745029929974668820179263529631715443,175331741086869721483946575985451578498971069791,0:110926946183868120184485597503955074077991435266 +mod:-1795087841202144142663615322625965929380012985,35306979241856773462781084288773766694122468,0:5568100132551303938219976101496172020232883 +mod:1223266620160352395848150839920704951768,4664479506170256011858225502160377500533300400637,0:1223266620160352395848150839920704951768 +mod:39982725086518866718673198942063749137891,461771175994919359694841662569213792123219861,0:39982725086518866718673198942063749137891 +mod:357581778914196308302086292874528466152700626874,3109407409714291140644239657248083936467914372416,0:357581778914196308302086292874528466152700626874 +mod:149499532166554918559602886813953835372516,4116995844742979208794059184185312557100182485,0:149499532166554918559602886813953835372516 +mod:30162948061054933954336062823716515388316534139,210277285976133726432524140550436988594139754,0:93296166467811074485110725004026019354549317 +mod:52810485653680320320369005564031524621022350,82825120387123890672981225414839234585635496,0:52810485653680320320369005564031524621022350 +mod:7208022814700388108567430430861339898438,2633586073486065955736662183793128252475,0:1940850667728256197094106063275083393488 +mod:1133096693748508212236566391854344691508408508,2601250202595579849376374699877144432325855432,0:1133096693748508212236566391854344691508408508 +mod:24110493767768334678283829225780182918079966113,62617472892345734441670381366941494160023,0:11535407963705925298902727562240728070101 +mod:2029154393292042830677214368668639182381808222081,82610125404955917046846600049858255083588,0:65547351731225346301018769765882024339145 +mod:950870388742015370309491008506921827067333129594,9135792372038219712944984119888962386493530278645,0:950870388742015370309491008506921827067333129594 +mod:646334826846693204541658068926128186360010,54407099890316510058892785158311428336873182,0:646334826846693204541658068926128186360010 +mod:428552882985823327962705708694562616508577,141639571156330467462518777812629657176255,0:3634169516831925575149375256673644979812 +mod:21509351141318679646739001694607822320768,21896381149810489046647085552887947819439418684,0:21509351141318679646739001694607822320768 +mod:632728454831941197355087764542806015137812368262,222724285350635099362081058306677746403035965,0:191484436137515166777558951841215353190227662 +mod:29001858864232179857863618818997005925607,263069727005942155120496500688512817218817,0:29001858864232179857863618818997005925607 +mod:2833859942689944963761411216780529093075213667,24836085579076290404924895501933094503621863,0:2546186675247857599973129560156319662321285 +mod:87503819229335363919830481339117453040132756753,7265931585748836565776184592881080221565467,0:205142162125158187890287050603931819837672 +mod:3785119298527941754940929232952910144091163,384452066294060303214343786012747535262261,0:325050701881399026011835158838182326730814 +mod:38179577399511020742387225982022507255362,265561978107157383888631215376392729015255,0:38179577399511020742387225982022507255362 +mod:-42541955629872910052396184385091366868620,7073377596138431111003761711368230096543870670658,0:7073377553596475481130851658972045711452503802038 +mod:962822498059104139629105773638997541722777,291785910412123339651738662863457030701079,0:87464766822734120673889785048626449619540 +mod:-610694008008712552303733816313602703956727091,10013831675645158459604313031569589122775,0:9530562183081513694818229700258284829059 +mod:25840001817997722382069756182552718470600133,8684986931293242801082346374758755111010579020,0:25840001817997722382069756182552718470600133 +mod:65515204463103763906150928285942229386532511441,6904523147545678419356084749116545717835399,0:5088839190367063300396186324443615710245729 +mod:88029876839939054322959996030895683781141381988805,87155086119890274408175255450625302996948,0:42833542489532412926993261659835596440801 +mod:-140728222219088662551331451181555518857060,85465120005353614253381442147197316880331584686,0:85464979277131395164718890815746135324812727626 +mod:9386187660146534186830943256786039971200765327416,587965300048494341491681576852042742249853,0:156828577987386328282882864848506418512778 +mod:8015087164840320324802166753130112000577091656,6127305412955855242353538605784472950012242,0:571684694061667803738256764021381961079120 +mod:200585481998602232012071307195117379072828517,688377212094972591154108498471394888446887,0:267713278965207986225734139941466534784400 +mod:-2500594129935211199120603938323647766148423982331,1361156037555715012439087715972060812276689,0:599374805963096380934653500844754016423148 +mod:117111132825449273925221124600613715199470024967190,6687987114639191794225780163327374060501630866595,0:3415351876583013423382861824048356170942300235075 +mod:17302923664832474983271296805121649995183106066,41453082247135300103242413890739246798747574758,0:17302923664832474983271296805121649995183106066 +mod:804590820827842054650903665300245592864154,31922670356859924926370586627082780796917147,0:804590820827842054650903665300245592864154 +mod:1419527821402660938221344683778268760948333788257,28865159616287527805126478593002688908873146865,0:5135000204572075770147232721137004413549591872 +mod:-6349296345256358340236015836865079291052256775642,178072362342080585886203440168430935242413913,0:51806412867030122454025780494135951253706286 +mod:83483775554984848270591505226690350944356856326,500899723948831224438405152518791040164077250979465,0:83483775554984848270591505226690350944356856326 +mod:-5202440839318488047646864687648754749799822,423723177170085295356066936482198199652980649761,0:423717974729245976868019289617510550898230849939 +mod:525675600985546172797713152878987836214364203032,52969787195069967379407272322490869598290122,0:3432861671816524475382350588446320933032304 +mod:37858860128097787570803474618858008892810909590,5748777360917412753508983838083899279156995949,0:3366195962593311049749571590354613217868933896 +mod:45957868400560169903622579655897442394944091417163,62063277048172505864034466895124800993363976911,0:31043384912515564237074153505089659854748503023 +mod:18051383988929839561139635711444280609605686,829384533321617231836740782712342923300954,0:634308789175877692568079274485079220285652 +mod:2455769442319397759077734120262920951648644195950,902538521133892788023206849882232725042383975,0:864664835209375654611488583247939533359783950 +mod:4589658345087491870839566381729330015793440,513428177661658876831707141329481947688426657,0:4589658345087491870839566381729330015793440 +mod:-3573981672918561820060475190255839052046119,6138097283471921734295336167784166932835047133,0:6134523301799003172475275692593911093783001014 +mod:651620293244411254456830208908605775265324147,49737728886554678175954115600491082303192404,0:5029817719200438169426706102221705323822895 +mod:-16650974859063823766693159687850998551426028,945869854077417138401154817030148430752804974724,0:945853203102558074577388123870460579754253548696 +mod:-965598273519770488416791785443027019154228220991,58147062667685853263523283369280759917430291182,0:22901791830889017063104031834745899442086729103 +mod:28701469969197750610229907539580754650086642,3909053247766771922418857228732717683752395675,0:28701469969197750610229907539580754650086642 +mod:-8748391241949190130773015442145843092096091103,42809713885017092071880308569574525272117288,0:27600104479313743962447814616934588687952937 +mod:-6130419437464601359973583052365059560631450,2868142672962642021474985766046232299028848,0:2474008581423324704451374245773637336455094 +mod:95640797562953613006161464063899219827371659541,19819192346118145486800692560690336691790893,0:13194492933561032348122458568345289480600816 +mod:-5004080847919147880779643424152795003888630787668,21840420756428944369875564516044464145680642454,0:19215926059509324291736414537431749617916976752 +mod:2939482810778921033958889604777113454839240320170,566855177384622843277537161088088916192047616362,0:105206923855806817571203799336668873879002238360 +mod:291726867119014526479710686475643665173438062,202885774177743860764627132154911476520592335058005,0:291726867119014526479710686475643665173438062 +mod:8683025332039408014362977905935333328608348,78614799730964514801510410033797138266803757860,0:8683025332039408014362977905935333328608348 +mod:869468342614628804595566251564864548106595266,73624620788538462644074114115939464475401814111645,0:869468342614628804595566251564864548106595266 +mod:4728910553503250598863512353801889257516953314,648895113009231703768170210292430028966664779037,0:4728910553503250598863512353801889257516953314 +mod:760566451760297307988377549048192013905533937,2697105353808446098263423690773776969485171497,0:760566451760297307988377549048192013905533937 +mod:918153477317716353524438631647119722202588746160,40888243303074949046907063669422917592190788906358,0:918153477317716353524438631647119722202588746160 +mod:-1473776558819659703245310105293049377337981709,31054248040311137303584740614306271791161270545,0:29580471481491477600339430509013222413823288836 +mod:905086443229432348861962052611640110347186013855,16319880347082113262021644716353623982591699522702,0:905086443229432348861962052611640110347186013855 +mod:-3948357993060778828570152166999624499401960763170,77670033625089877508398637915359376482388910,0:75836304290184446800990065584763456761865590 +mod:-784992783303820924306757780883007042021257440780615,463574560419641941889185992215306604381633902571284,0:142156337535462959471614203547606166742010364361953 +mod:3823677606013902933129598925384688189274201201551,99529942495899622221328610053601822241548249,0:35805148927146252817712955466984220642119718 +mod:12254504447986771204864826285146960991558427605699,6125051499311360686388425114933437945893268599,0:4401449364049832087976055280085099771890407699 +mod:-2580894945525990910646902811077109168493411986,572510241156643657546678509117136144990147708808871,0:572507660261698131555767862214325067880979215396885 +mod:343089829587091844514156149817937152291781907,43377295017128784286263228943698366029281236815,0:343089829587091844514156149817937152291781907 +mod:7853011116124010483217978861490662971029642862525,552677408447001109928623269020934228695696472,0:17819500571712242170831972208515492491691877 +mod:887815431705947711841094597810602130602260715,8486574430538892118817816797303238023509341587403,0:887815431705947711841094597810602130602260715 +mod:67620759311796073899200379294956624554814285201520,87303800600842937580229698689028406709310049288843035,0:67620759311796073899200379294956624554814285201520 +mod:-38490591886267408374352863050032614782701178357,66475506278603268018635318767149490286581760362179844,0:66475467788011381751226944414286440253966977661001487 +mod:-544395011810833021655729041737889469872310533646777,731611503205277837707380015577043727374026342728599368,0:731067108193467004685724286535305837904154032194952591 +mod:8890962095194591840604729292735591304316116728,517571143480065164208802281191733497859755993101179949,0:8890962095194591840604729292735591304316116728 +mod:40588319468481766273347382652716318465741545598763,1536971037850601936767123301111618687777305090,0:1525271960920929137957640261803777606250087133 +mod:48235707095020151632145028961335649832134676937,794868261145529770762797624857872107306805378170,0:48235707095020151632145028961335649832134676937 +mod:-9523841594085891512065672092684699107288546273626439,473487777070786775175577792880772873295554421457750,0:419401724400630766621461557811531231918096576986311 +mod:90074633895471637214960779532906651648038212359500386,820079595762158387084577717033680869242497989232,0:371415339208611139101404795279693919203214214434 +mod:502553209306579947121167024397370721577297298727046100,52494082558436951205873151813775449908847817944715,0:27356974663013227343342084098339599897137542289405 +mod:5790702792462693399581381818523043045468711777,48910417508813857701976328940621637734412004053009,0:5790702792462693399581381818523043045468711777 +mod:8115756631582685507536476067391256503367264361488762,84450889017264877905314659939101106548473815858544561,0:8115756631582685507536476067391256503367264361488762 +mod:8194219075070331821784044970434313099982993771,652282608320462546135364960046755034411967968039334154,0:8194219075070331821784044970434313099982993771 +mod:75033785162139990322256697516355737268216190660,50448201882288504062521017516515948614320857837,0:24585583279851486259735679999839788653895332823 +mod:-310420971441772166248782136661913235149811988,52251157147894938842540415683732209931823110303,0:51940736176453166676291633547070296696673298315 +mod:-465851374976907401549861928175506333511972756050,404205507663774789620852323466440811463681452434704718,0:404205041812399812713450773604512635957347940461948668 +mod:86727934051201027780798621123886995870064920795,2623457841745489387377116124239592088889194223622807,0:86727934051201027780798621123886995870064920795 +mod:-2164209564341937597697994551840383739114494141322,5822096741927098565898057075974774660691292113200355,0:5819932532362756628300359081422934276952177619059033 +mod:-21572594290097356729450557279398987661535311983806,95173892429181732470545230031265828462190645462413613,0:95152319834891635113815779473986429474529110150429807 +mod:896154498632105428944035878874928031422856104434543133,2920373159440158169043176499665564441266475422,0:603088578315357918226288933626857244348602913 +mod:-28106796449976334513237948147051254770072052831429,8250476728385872623793527898989079209376092358,0:2577763634333516026601404804538096272293832277 +mod:-5910781525258418818015395848760618489911223430349957,51598547888760073234245679451691550056130732598,0:38529590602611260383715148455335218776511681335 +mod:7727963353453460964292856120418469526804141877435331,9692488255114907303703797109203796514048948603078,0:3050214126879843240929824383043705107129840782165 +mod:937009697498591315869575189938875974899784631458,9231715369857992569685209191243252034527233388658,0:937009697498591315869575189938875974899784631458 +mod:190934454146310086697642361797951041146551500749,10448518118997830258656577725632025806308987954,0:2861128004349142041823962736574576632989717577 +mod:716842295935464600709869948911248187992875653195892447,401547841844896246538515909881184133363330747247974,0:79398242324800638619049773334509939330269358258857 +mod:-538446228722400194015060345964154302722009578079,57520540642458327434814547831209263785958735384,0:36759177702183080333085132347938335137577775761 +mod:96967488061013453069137268213397106742518252838974707,4323900098433218426906897807465481156203036443592813,0:1841685895482647677185516449156521306051451079932821 +mod:4248753403571933538992485400308861658493364877663,939067422305299585909602271217318347813010825877,0:492483714350735195354076315439588267241321574155 +mod:-107460187565073890428227205420824162161759055432,282612401032124761876915123928433707969500860981828349,0:282612293571937196803024695701228287145338699222772917 +mod:6649481706449462881752315195565911763474357952858741,659725471155847914828668487679599556025560898493899721,0:6649481706449462881752315195565911763474357952858741 +mod:6305756385410127441079092163742836866873755879,9919320027008577000539126363765101039097548804251,0:6305756385410127441079092163742836866873755879 +mod:-38180683008697554526126494541279186939566773312,4697678019691033242250502480954454444789783096,0:4098419168521744654128027787310903063541274552 +mod:627353070533528810361133250533207881585454632738,247981734193053924842956535127898645616700024063945,0:627353070533528810361133250533207881585454632738 +mod:-977100235060594126432793245647088458561713536019153,711683384963018548537977961275571093400571875056194861,0:710706284727957954411545168029924004942010161520175708 +mod:1498139275498305618541952433970427820083740864078175,3957896946470021688374936335906211866428578229500974,0:1498139275498305618541952433970427820083740864078175 +mod:597201805617750253952058296204205724608800648357149,4978798146323419820714075023507404888549551451,0:4925562548693297046425284539523037059050912601 +mod:-56676822442119009829407208281675487240867001784809049878,6406684614200209335872193933373288202798878241606,0:2690987740863316857560626374071228113763853811606 +mod:8685426845950882129513316465433060160017749608742,5862536885517747336130664930278619887073507404339873116,0:8685426845950882129513316465433060160017749608742 +mod:-758552875949625615550950682460830448030408807239369540,6928982530621565423313581311775944174511467885237190,0:3635202418746581013543261834523411165852660136721360 +mod:165930319304414878413873653644927162776703980852674518,70941371417197323006528137030561117730233179743191461,0:24047576470020232400817379583804927316237621366291596 +mod:-30974844728461949004845422334486602888821195017,323336199778314705263073710488111629703644763021,0:292361355049852756258228288153625026814823568004 +mod:6133073724222023714159452874993644151837626947339205812,7463402457118308536507525382128605388905979122243374,0:5620306927892405686774536266059127545818087977395758 +mod:45342828302867171033162078210088228770176829233725,826633934789479436275857854693648185626420538347806062,0:45342828302867171033162078210088228770176829233725 +mod:-26272751936716551812042161754718676251990474722,3726791277147420607688434457942745910700285747248,0:3700518525210704055876392296188027234448295272526 +mod:-39318997476790646356737814318350583742657677501,1994697821466452959618065249537163794020403205602,0:1955378823989662313261327435218813210277745528101 +mod:8027107780836872755806128697397537471698261298622,1333439935985760787392296885353944866764267524928758610,0:8027107780836872755806128697397537471698261298622 +mod:-55936499409386931117510358618192060334282485918550322,398438202364094320499957997907168092925880758462,0:239820508270537478744707995268231581913761929858 +mod:4986596463362462090356441596215520136635434728102133698,904796510225702345660178949801987674355175932951442952042,0:4986596463362462090356441596215520136635434728102133698 +mod:206550560537111820336709370332003111271041434735753,8863245846520291116010486302557366093750491313639489405,0:206550560537111820336709370332003111271041434735753 +mod:576258003770289338613512178842212632031473801519,112928562274312812079466249863533328301249309332,0:11615192398725278216180929524545990525227254859 +mod:5044250943493799862304047991036206572453520324334513,35881021726135630824830413448736592392545545812443121,0:5044250943493799862304047991036206572453520324334513 +mod:905588871665990684975164361624636275705950128546215874,53243625735815790460446478875365074647441813141773592808,0:905588871665990684975164361624636275705950128546215874 +mod:5991116388159027989458739990542641030328044128925695503,721278676327052740788584942208715418345142864101,0:431868180450652741834416094047706629629986812960 +mod:-3474677351996973979038623915159768162722810109611432906,763685814389121867002329466465821059768201256128129,0:93103473530515821975157259717659222505605771554044 +mod:8460371705356400367952890710394988728910116421931757,6311797752969747892862660456068082967585770509045488820,0:8460371705356400367952890710394988728910116421931757 +mod:-264756559717037431451787362436705748418817738411460,7816554223015299624827224356467518163226383802462318164,0:7816289466455582587395772569105081457477964984723906704 +mod:84752881980947180661815959615676455311403364453605403063,52250068596287507582088091160391730925462299132305704,0:3270717768843363669075753521067750303515261005551175 +mod:64938454622435247872445936607970411171632403906819,964092617858022639258083183616152671542900110410,0:344249225947731042154363305688182178258096509349 +mod:40144089093980612505699952982513757457937212093962271,10902061466143734099157856887908326325446558980281568,0:7437904695549410208226382318788778481597535153117567 +mod:107130104935801948815478025681375166396055326914961974,6641641026382469722494881921027536542476581953333157,0:863848513682433255559914944934581716430015661631462 +mod:375770000201081420238670197853908213239792155799109438568,741847952379716980656595421052880669705080727039,0:186232142856874724410035514392651753500883140216 +mod:314494472877016149904621158951181139298853721401432703777,2289213676835383723493513562354885152593212937649884,0:8739694298587358772241304662150445534814153989973 +mod:491754906560818931573946605055051948215890543148276100,5346198427406770324055146743032112633140429155293,0:882811089383626706097337472163994367588586115374 +mod:831402402931313770942586028473722467913682852291371107996,249203176454681279672468752353764682559981472637056324863,0:83792873567269931925179771412428420233738434380202133407 +mod:-927301671513394245404756806010463865731294755475136031104,128994162476254345599482066271274174336327781183511925567,0:104651628296640519391099724159729528959327493992959373432 +mod:49063903583376380376914162724558461583861450724317254,941774744692403469242853096809411489238020290379296849870,0:49063903583376380376914162724558461583861450724317254 +mod:95814446741364664911508702682923954900446789248313,2444989997188453542574239416826458624894367967952,0:459836851014976751113365426692068529566438498185 +mod:96634339550441353817958772505469549255037435683448,78081012036785909772650615373227006202901241216144834,0:96634339550441353817958772505469549255037435683448 +mod:930319417728873563211760140268194907413484971952354004,89121326206650943149280333205573781193492882117302434,0:39106155662364131718956808212457095478556150779329664 +mod:296149508458734377319788304412051836966914377456545014105,5775874526745986573435749392656102466476051398568,0:3756015598637200337676470424188468229410269716225 +mod:42844020401978935822457442747009223068912783208882,70773879393663215011878508613578824050038059978191899,0:42844020401978935822457442747009223068912783208882 +mod:-90593635206751701986722625420716592016545661236480979772,6587808211180976790034063002169935351319078136248018,0:1903313409090829825808985124358934794301293201763764 +mod:5733125812846132405536083211632006878958607745362254467,12605191511011498307650361584364883404677231252914573,0:10368866846912173862819052330349813235144756539038325 +mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,0:35334176700018152414903708698661724515806296523250 +mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,=1:35334176700018152414903708698661724515806296523250 +mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,=2:35334176700018152414903708698661724515806296523250 +mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,101:35334176700018152414903708698661724515806296523250 +mod:-76855972323011457703707050993748256077521513979037807,1910956865546821689289334552684591792222791353473,0:801852416163817820695380673341213886931466292780 +mod:-9872019059197505082121902831056682448354872822219660550903,908082149115602660075723278246449391327542696231965833,0:650065987327038221360650038715334158171371214271985473 +mod:595855064966654171339977100486303810714342893653637711,594549781214651234933649045428169123584477791281395609,0:1305283752002936406328055058134687129865102372242102 |