diff --git a/src/fri/tests.cairo b/src/fri/tests.cairo index 553cc68a2..1ae9a8e07 100644 --- a/src/fri/tests.cairo +++ b/src/fri/tests.cairo @@ -1 +1,2 @@ mod test_fri_formula; +mod test_last_layer; diff --git a/src/fri/tests/test_last_layer.cairo b/src/fri/tests/test_last_layer.cairo new file mode 100644 index 000000000..813a46185 --- /dev/null +++ b/src/fri/tests/test_last_layer.cairo @@ -0,0 +1,656 @@ +use core::array::ArrayTrait; +use cairo_verifier::fri::fri_last_layer::verify_last_layer; +use cairo_verifier::fri::fri_layer::FriLayerQuery; + +#[test] +#[available_gas(9999999999)] +fn test_verify_last_layer1() { + let queries = array![ + FriLayerQuery { + index: 0, + y_value: 2079129405561620208087077895401073393365548266683640775208900575472382109824, + x_inv_value: 1025200915594184200313698913014916492712823017977023269060618978800032187220 + }, + FriLayerQuery { + index: 0, + y_value: 3393322956210468285165331333162707202834898699898049190152720955395767718796, + x_inv_value: 1122187072723254225962628178169851337055839455052122783532867692861890824980 + }, + FriLayerQuery { + index: 0, + y_value: 774658394404375667069053053780760505339136849546403700110016309956817889723, + x_inv_value: 3523496338085130181348257946285311374370953078793932160256947210226520443021 + }, + FriLayerQuery { + index: 0, + y_value: 1540595761698447925811667139221348041976282862801600548986133753032241611666, + x_inv_value: 2405254460431699228440085592461078086000237395142668534627506859073068861835 + }, + FriLayerQuery { + index: 0, + y_value: 2375818020905191665174059219621958843578191707263505707808931476471770468721, + x_inv_value: 1586129732899109811846311412740924349890132466584764773677662219972426860210 + }, + FriLayerQuery { + index: 0, + y_value: 427607608639344818356730590175870246773395941237044155986562999884021276776, + x_inv_value: 1640049332764903875546586759150487638050083510098376464536986443432378599707 + }, + FriLayerQuery { + index: 0, + y_value: 2850086244202783478756254096889060252878398514669981939839198213505105677022, + x_inv_value: 734414869129084189608580973230821029766816902559046453978063257349178461650 + }, + FriLayerQuery { + index: 0, + y_value: 1920671448998228135836254663634037531675602477535881837097102450902739293735, + x_inv_value: 3190584962170961049287869885415010412220996646943132110310786111368665853201 + }, + FriLayerQuery { + index: 0, + y_value: 2079129405561620208087077895401073393365548266683640775208900575472382109824, + x_inv_value: 1025200915594184200313698913014916492712823017977023269060618978800032187220 + }, + FriLayerQuery { + index: 0, + y_value: 3393322956210468285165331333162707202834898699898049190152720955395767718796, + x_inv_value: 1122187072723254225962628178169851337055839455052122783532867692861890824980 + }, + FriLayerQuery { + index: 0, + y_value: 774658394404375667069053053780760505339136849546403700110016309956817889723, + x_inv_value: 3523496338085130181348257946285311374370953078793932160256947210226520443021 + }, + FriLayerQuery { + index: 0, + y_value: 1540595761698447925811667139221348041976282862801600548986133753032241611666, + x_inv_value: 2405254460431699228440085592461078086000237395142668534627506859073068861835 + }, + FriLayerQuery { + index: 0, + y_value: 2375818020905191665174059219621958843578191707263505707808931476471770468721, + x_inv_value: 1586129732899109811846311412740924349890132466584764773677662219972426860210 + }, + FriLayerQuery { + index: 0, + y_value: 427607608639344818356730590175870246773395941237044155986562999884021276776, + x_inv_value: 1640049332764903875546586759150487638050083510098376464536986443432378599707 + }, + FriLayerQuery { + index: 0, + y_value: 2850086244202783478756254096889060252878398514669981939839198213505105677022, + x_inv_value: 734414869129084189608580973230821029766816902559046453978063257349178461650 + }, + FriLayerQuery { + index: 0, + y_value: 1920671448998228135836254663634037531675602477535881837097102450902739293735, + x_inv_value: 3190584962170961049287869885415010412220996646943132110310786111368665853201 + } + ]; + let coefficients = array![ + 2392461143815077320697693846111481235203067221193351858024888568343343862087, + 784392009524607857816729347695510970078731534546649545712669767170815932325, + 3168746641018789250002196503058931463036853991579975319087975816109858240309, + 2997124515340217133887649666924355193095935148598960405989458172244750240772, + 2256838578502294604071550394844398858476699681187555240798332849904657961349, + 2100441454387399175759506457421980589777025276192803613687421616499198487087, + 90309800893313593992968850368468911697044383046075018874867043545455291839, + 2980723519508710243207222625595631956174508106180694879961683924462214174087, + 1467230737924187613823077129380895920422321202735301143198077287255415501265, + 1949562520663380243643468923253735443370454282668236414040028240835044926139, + 2278244522082812176533190018813566570919137060795359353399823198613199924401, + 1685428054409712361853066130969019754479314911281215083640082525533311387304, + 981262236064875156195513446841989471757407109803217660217235170540793762100, + 3555412294739506638981185597067995739755549929225903888369646062001884730722, + 2103703391154737997659947664830898835229387514993026413156823944471806748045, + 2996736960304657821227842732347676809204367166265528201598017136385919762750, + 22478277030852384415455263869155917591575790012869536721308064792442255926, + 2488482979818923449170636965824869033760704129208651715585265176767411289727, + 88446472683913130918497998962351925093009256826963180161264071986332267046, + 1309062932890077830176816659124888770141403227013736526409686038924619824688, + 2067891375250240116290855501869912459503035923650894589509015541515580063249, + 3417964157940318346029326854457551386698154918628660536488616037592690951763, + 475659378307779665193842970746908308816715656609194558481172786910773251979, + 698633389569762053756632588269743603762123411346891754397879290642309061021, + 1829561657510074437477776531817529159548373285828037788023682284224066717907, + 2208482197578393584417647498116811359451086224302236706916379789566171985916, + 1476814762705073937869070166395100588506098950588596112712893557317587045337, + 3356348992758108388087875249396728439355196762386185334393732596908371779760, + 3277427931709527600444863657051281245325828400006753070860411115422624866681, + 141046663742952098480209058671338685620080001574807359127826806145978423127, + 1433431353251140444676482237883205125764274218400160764298687817276656713017, + 3279665538402462082209229212866760747258793677161083813939201388081852264371, + 3362381697767982579711627977011247010147066558123776540799771348077051759574, + 729570215316447614050900194659246479398948824282224587030279101697413230312, + 804519572967767376555515603262029065711113911660558597095488402848213692548, + 1263067001187434041212270910593043812805420509808359690523946904428825808853, + 1513126208894012512829825226158939013556679361403209411089454591093935014635, + 2022994639317234694623423148772115669219465498632321168429134056278090410713, + 1106121543058216731932678666576175280610396390878769620202174715914211252526, + 1357387457005024454258399739732799174902698557881165718700198977210242022888, + 1647497474321056070214111708144056870933837301544146866998947532665485325362, + 3538120495114609814303648328537268878373906565820428377711514212918870837034, + 1501473333538573484499525260624649042315502706844282172575790845082689154804, + 129861036017135518685330585557086878530694976637845920584554909821072030071, + 1179181045520509850222127418862355566031563390660703108885108977143496522817, + 1208425813637766131525276750631623347299227264131099567798939455424718869528, + 1030552440694948682212735494936923546436611910739272061824877842259775766989, + 2608254133585618991771219894467091168927253787609858206490327064917003288996, + 1705388347927946337578401233132557866870561234959890530973989878629510521776, + 1033356576879224307726001222309686355636428790067401081329459646581464394920, + 1528458430964219335306390308812145741394156980266800381485374742629165160554, + 304659623379444472574771947958404692536333940772068168558966538112219785560, + 2999455936544146875266441803768358949442521625110628146963251404851064734225, + 1843253973957773981977251009502517645313009808535069785668007226987328151671, + 2372650174980057021152940146096345020969937874410609985029419963956463761821, + 3604855222568696643606379263274387061980620010426299713438106537325459715844, + 1785273095475268904862046923217893918964362520175068357041169095840018795833, + 3177155878992488537713410736995098106680697326384179556373594287894038383159, + 3171386059349932144871830927932040009432186420897936049165086871821671561157, + 2166799643216309630956555884263981782494366553360736970619704551039816088872, + 690773977199207793680903911661714213288195088351034615875501359702844324928, + 2538557067052612164201023888278181968647205976067113733791200147576098728206, + 564612669301225419807449437133056754401372857593003898188171984350133780779, + 3522475948536402420514230082222875104646478616404384619375622859023235263462, + 1783711786942135104695971747877073093672924504855239718433738150261783351887, + 2145778662434152346143877671800992953138374099355555265318919059618252428443, + 3555078412927530123877556770667890486916017227614199690346982815110292767746, + 650567982175500331093374067628131979069335425594694211078126225504443154010, + 2814121860779719572746779164812593305824026294385656285072741193502585821143, + 3430470382489149242928594925791126079852609612501106248695110939914765211726, + 2451402400712734408502340772196909984728849592100277972121638796157761264903, + 144822547383835119759800797371325816927384973248883942510678054459139722242, + 2257583813540244917540033948978553166756572414407804229220389457721692233933, + 3547944866631259598709383847689748359066066756557551766078585806617587254488, + 2478516376318173464955788002632084130448243113421606928204613632037347842734, + 669790521168028275986744746429732277004989392659084584000743009388579576605, + 3607606376948579460960081562567811390949195203128409968508851906875537085037, + 370000449089695166095710743740197253392217973279939520152662997412357222873, + 3195543422659824838757571773825552481725577926715664410159589064806193535204, + 3397169530683551502310046123309169618540290192273690262005628561885413126412, + 2381556335713148716957565083258063000105970735561392479442926344496617230091, + 3488073762699272252396891803020620307088294673728905578251530016269876817384, + 3388153087516953227328620540665823853457419289739829669759823566034220335556, + 1088552068508855977393893751155157955678474795861402714840982931565799000845, + 1527295699623796729993444736938202055455614858707960083888314931038082921947, + 2818374410004213552520223671664008290826708834836015938935420104484982860419, + 994190335132439066150294601518305862134005850632190467985121355679421794645, + 2237066343784986085668182075159792280188959605682305723364725527162679161367, + 3232611626861149441844877561433016171144725278039678619911018099134758421283, + 1328224929677784018502706160523719490925625036443772810076369800738821920734, + 3118975896295146314405862201130726168824709109817013491888026031562373863041, + 1411459085556064583684589772537128007568463894180041035951657318169688962026, + 1192897673217984435319866389478973004100085689601391371533642411134911334429, + 2438981059418137295961265954947456289489446224421228169443973812996110872895, + 2137018509213931179611233183020937650792847466431948225826561076212072890264, + 3351898479968096667605949287370891866950026313029391383525577902763919713705, + 3543026592654554180936676690906814945251976268909750830211916784189903280874, + 2396566495770805509481246837645100986657782959842868571019203876404054898520, + 1671570630339737496625134847620621833756176963886573137480474821276034984889, + 622453481736769588187985406149276510130764088821045892432824816426931327540, + 156609269257963468734140667472162762946832057320548049703873428520197860647, + 536467187458591531688465689128651789954897504613183324110364072836891416819, + 1905414712501991912488990637678663059012630142133877894304569449031552887267, + 1626401525983843916244368162816625382312435090383181940517416207937144258420, + 2988371029266055049650026783987426354595888622925379570430165122024729113854, + 1467438687309928342005502668874977832988638975670917359819506623800286183057, + 2987265628257210332402974341614356700214670421064573249705407325673972490093, + 2884236104531109001076608495514437425136020227603016109208839128500825838924, + 2813815126622130066420580010172925375493182467831940575775357324666179592455, + 2096761004881152489625749598242983358260146405091272189244957439355177332107, + 1884723079694950643650279707403654483956445752038318415340029532300993880262, + 2421903994850697320171204478715303872929988228469378756056356822145252176334, + 2360776848845560468909284917218566633468165809785697515165947555399388743318, + 2652340065930789753689543337604797851654371483341936505143631938387987928041, + 3035979586598477181778688090169479800516400962178125740280920479894144703251, + 3115532564708013997916422328574816139556316501603023649438172990478291454112, + 1766343547115717658948820917427363240599869385281026027634366078197613845831, + 2468738856558624099108403683036519657767528652782935563133677212367495445702, + 3009548420929041713176225573122357526338389909329043716179271458535258397111, + 2161169342069393251410691785298668473603335271359745688876775772152073008933, + 2565832767706636051490315619194957819330600658484876636761787522259631463371, + 3154351606468569998801231969052975210665068721749004664665921811608485751942, + 1546649997731731815271363236521774914988129933835049133360093484961388110443, + 2744328610375345472396018534844328934870381158820088183781572781971555959268, + 1722445640025035987026925926960665944171253695368738833057142685885530910485, + 148035619135347691010485437423691126336888940476520405258499988316713477330, + 2034584518404021609816941970521076374442520399138637703889443453715759967669, + 1919544532462204818355587664143735420673503811973521316734479633498445703861, + 3522533211454357787492208462844781988821867461164228947135581567948821226106, + 47081234212684725314434881555029982273134454651722778188454136816599273752, + 548075678279611524632754144371268597508980050645619009831407614046208418647, + 1151144665060618688463204684576493308825925743833808162224968722083729470744, + 306530449937824764767897242255702056544962631870830021498099007994044236708, + 2191526672707611271332253169273995249521613960886080126381302433408550852202, + 247262871241497444041579252318708169146661662039041568677758494201143268531, + 3475852579432530263709856161715469216787108297873830804498576925583058180847, + 2259513115249610651347251275769260458632823538359295376046765629168600340796, + 26039256838786652418885563231790544858458967702663786588929061691035202988, + 1630330983335205557691441939497441573835395417173233677642026952825135703750, + 3615391124765563544451014418587774264029553631470274140893555721935363278784, + 2671690402033545197118979558922821356600994761554817021137195484270496228648, + 52279850394575256146027674616547956574787101227542189547999141698127299003, + 257840318738710997305121161024240231293297110539714528215864564191057174795, + 592611663236450052183985297826510626379172629470771846679548568436701187441, + 12858494134738705209049157639156887290812292556421899591437768907707338926, + 3146693810354497823337402256973787118474484733209066947470123270431989980807, + 1538933337397979441756299599431124984707805240126260690702113855832250375934, + 414323751287804332023864659007048558870724832641587007179651932360963984977, + 2552081696921574807138727603343654172739735717292990938194623937705272963105, + 2265024862552608245030711616560421515655883252305797004311137936701006979722, + 2170161591930473264731630484153288943319267203878430953679829232656088769071, + 2307985959043905313227969338772812892412362538121308593983485823490610905141, + 1147869997773384778349034398317924820161490402641398253159082074109603198062, + 1907043595771761687718094361026446274181028657396009372926520277218951945094, + 674998636004702329086662072098366638548138407671680358034941305188795669135, + 1568106171499809080205748380831021132984193297953930582935437689111524203886, + 3278999124569632042604379453594392248322115533001165040428756141669071227392, + 2740034905090941923754126747919731475286607893868282106219154401925595344711, + 2549978538740621008311059662339622962211708624494930426282609196621035084228, + 2665853181238657357571656639400224328825494066903714777517175136078287138216, + 1673900724116840155721905048754407583070213186172126928993568316874249088518, + 750975350735172207174133385517795508637359646406199389687823269422919513063, + 1693810092522319429509622484005740456490313183952453821511423075257454701056, + 3501431480577128167325060720586271552714653084831466516375671599518508686148, + 1553596711544045097153429420022781900210465313502389221408923020706377248112, + 3542803383805687782689960498846031088052214035645184579408887674047609428130, + 3063274475986673605006311773847406570190701160606583696238290695527684443214, + 2834823365085461017694361483443601352593023077241361091485845783497833817120, + 2465186665793948647296317148203491190080194416877059867660418858468628862353, + 2053557874012251887857568930771609266087648377530674892142341639287661926914, + 1951658748156793371697250421224464539981037226952513173253024880071823168723, + 1844400637395511815936906861855917698403102975793286177134778451552705154192, + 2335633487115723946433692827545583371842729986473528619135917421002778056060, + 3026230615605413208035668809828387761954600729450384092344106378557583727373, + 3610638454355908184742338225001318605493996546002622201707027668438929038361, + 1521940942170705649826971093048582294213505984982244893464044870068610595900, + 1876773609432146712424720225748196680850939597295032441388526180373999574191, + 2593382058182437069452769162263034493665737894075981402115466952415042863081, + 1853036071891115449242823909629877338248255970702609014052860708894985355844, + 3278929517363101596127151780175948893415674455860019299276082847359127314387, + 3256410818943923827741405739931636826988641730878666112867296531302396700087, + 801078395980902786731463812807668196955469415888778509688206624656541665852, + 2301488670988272666475618465769550300013464551778596584448381454420649394699, + 1959029098420360025902010962585522008566821918596812236672461955045525081270, + 2288313712925234626044569746464880064440336621023653467115517370901371509406, + 627176279938106727827870168706215389885846085625106561812839033669736138385, + 1428640878860361823324568932446551711031776544841330484325941238987786304771, + 2570161707942145513026884429744883655501651136513093632037657151521268189736, + 1175423917661307441369270774389747244169211245186187606861797545587951782205, + 1458462253423156979987880423613319494005346721789508489488154924968202450479, + 164657593901416579735998968232840523226583298239967284583069397214088563427, + 1342132818191904076533006056789082304460757048468085728323173907074357256787, + 1107072954029994015887790068150305394345498587687731620647771043818571399523, + 2353463082751710579162777806687866722529397193830706015903329139867605526842, + 1745782652446130169039861018950057557068794707082482239382995047333481585578, + 2497374171361474809272561349294572604909756028992491760514602211286349400932, + 2359748131052970999921016292886969978601615217498678596298211688355648856153, + 2083939956286063954119099510885056976034015762114481947659198557018361214407, + 313787886922389983781730961354724992149148261192097323595808278617302065244, + 1935749472928824721020762529695785689053948552113778050233824151403322452246, + 2734908967603184243400942844783411399699526844325360348371371804275976611705, + 2366353112892143209556023268707951007693098317560121241666138654868236281429, + 188394736908349540176126184846549228585884042416922306172700869186207154000, + 1758472328327227538230969822956091278767696843188472958822582638940007887230, + 76149940974020364844896731463003864655439763119208584536219372257272973702, + 2735805992380220619408719438797734156314194632723469386467739938043831117002, + 2331362706328781334957371839739893506195996877898869633134156508305308708518, + 1455665639486532147284174915154359779433169449405320445424557626911228033779, + 2347682682435125964470328207695792897673868738435686946243462062578425068460, + 1675433797519718606473603849770578263501309736124045686780842085441121145032, + 1871165968318898488944314708216193154531208856325529335550528617342173863754, + 57554343049851127486291884374855752785698885129517430225914083386487019003, + 2896706797988118188529344804022257222458109811568366439055707303489485457253, + 2995768073565314551074110905896534142610302621545112037735459656071688275634, + 3305605349225587714508577774409742534345648527541587842890993562804500888382, + 3026034211718636557295383533220837097343659629686131086169933326394606290383, + 489955259445109412326894216281880413278092766916405578478970825705998210259, + 906725161519107072159883677711429680707884659218937179204213117881623856607, + 2340656787754172147965323944302056005050957621301891273693073235697530007511, + 1769069892635208820016916883784582521447776930613191629914094767698207305203, + 882486344429996270776716057144121318306669834056424452803709879040816837412, + 1831380929974959962776086039112541255127153547491455870391293137044996390617, + 431030631155477082788954716795001748054712053097413682247442656296243997316, + 2715661608515434343474163371782274930139611731182671460526837170519698977558, + 1651249283227317674214804913601514843156003788725319546161176585045408502642, + 475811979652116540968464139875853548695934097778344752169405362111017387021, + 2593947009000492455566258698710784281375453479504887615637541730873440832901, + 88840326922904836856817268809990630008051530454118774072904226609093391206, + 1516177993701102679686884120858625954403924756766320470463789216641880132146, + 1526074521999617450383895552503426389845907745075404202509449937027253406631, + 2697576158762092275285397322237838504850427567343632346889427821050972231423, + 519589989729543653499716832245101006403311708310864570555531651374891391483, + 1090178760286433627796084941408061817631874013834573127489253195916136737245, + 1646079497961091498126522168056654064734692780013069363322594261900992636669, + 952983182971225109145489571658770606434221720682780944762770070602895001140, + 447774812079341587267211820423096915904443422733981754976106963710868525062, + 2486674226075264328965058892094182858036066251322647870272357619909983978062, + 608879970730470188664450958507771859754396173186372443615893483307719822060, + 288957473259857722939717526242005223813969242144038984280826365142995690557, + 1239042315558343564414631050765437932574552532064080375299676339225775525032, + 1447270481654648608121671134074809496523841577686052157097557908499235890479, + 1827298398941081347356158444107177615783328691208139768933673183403111685102, + 2979535605424555540126484705703290180448222020431914639674704500184774517813, + 2710028213720233019761356221616354067891102326715057629593113435316967234588, + 3062536585683358613482927975039382866374096445302331514984316952550129877553, + 1810509690491145622558609311268076568779637007752474224006171600704035746381, + 2746148528102114739815720896355730957765080869129769194415865043622823478307, + 954587750515914175246374698370465585670684114100698466457404698905117757508, + 3156535495179250351459089847606158911375212809607368259040193414889157337025, + 1551313049232537311113908525871843709378665605725293926927340516198250429043, + 3561980109785417103601412546377151856079919629047812372374994282614848621437, + 1328689129489960321700932143121349020001937971591795762042449985817583633499, + 1373986494651822153370271094873500681762649025140914795849798157911646870213, + 1738371563205679072642066133691189728281960601898948284519761121629425710832, + 821149419388664457210039727183868832647539893624021908488509826452956715624, + 3039275610411515805655267711065095119968040147613881706651796604857471126655 + ]; + verify_last_layer(queries.span(), coefficients.span()); +} + +#[test] +#[should_panic] +#[available_gas(9999999999)] +fn test_verify_last_layer2() { + let queries = array![ + FriLayerQuery { + index: 0, + y_value: 658321961196538499071727543513760083690111269972877446426634252344691191289, + x_inv_value: 2163238211795908974316003271296609453501829793986314085333708297507343998630 + }, + FriLayerQuery { + index: 0, + y_value: 227508471404491932488808905754064674914767635770123391447879022920950166178, + x_inv_value: 1281170383120882780545268551400979581414525883711243043891591303817233324914 + }, + FriLayerQuery { + index: 0, + y_value: 202713457923558393769620871486818880763979782942581765233088844520839863907, + x_inv_value: 3528796316240649018153502613187355479453371358645062568865026278899999672386 + }, + FriLayerQuery { + index: 0, + y_value: 1098312266638356860362970394040927545462785198670297622592615162109213638726, + x_inv_value: 1774619121576985850595401212321651873158516895845864952256073950753219318265 + }, + FriLayerQuery { + index: 0, + y_value: 3401308477101229818178277544291567307104991785356208476361126944320377543827, + x_inv_value: 3364081184805240783239076870401210349211407701849066501056404933343422520465 + }, + FriLayerQuery { + index: 0, + y_value: 953533918560692514651698075891680377446500019173942833049503983352319209671, + x_inv_value: 1198257737377526939694785697696602706177609035475062236517198505472728121254 + }, + FriLayerQuery { + index: 0, + y_value: 3376680096977705594293323916903343600436602652586611494763517586751811350613, + x_inv_value: 1289065457262991290708803547491156734832123912153446472771774926514030335120 + }, + FriLayerQuery { + index: 0, + y_value: 218730271760308617273014223453978552249369546455721401640834240789998201580, + x_inv_value: 289419604979857442071093777562000605116085366573463463573115235909034257695 + } + ]; + let coefficients = array![ + 172899125269878760298391979702400523264587808452545341271505234947901375038, + 3350634106031085936830353769071135584595900986687883318439998610164238376843, + 2400936724985037126564670702365840488803444778908910724427329416221741030961, + 635192040927323068491253334226544498781829833411114123984496527946111967398, + 87758663111118685889813045794876462105380647015738497869226623616950274647, + 2978864150705734811583882757595071048663360652130306270460684880128302044166, + 3485939982491478748472981326241000016280203863943917680219782737183188877473, + 836805962306288195736677266341533899640129882529125421810136886197921215576, + 3413036231598145889450138472873357075241664355001910994747866813987610892580, + 2506946892984863598675678903114427147576767646201713340789330839412609507268, + 2476745451535638279427420366036488690617708433832451796106232785289735480340, + 912350852875579501725008622908282466257427457047691576924188556742262543486, + 3361620140726952731845910028888646916756125852599959747033820662606302330838, + 305772069167448799494663222883579113712647586889589583682765468985341668819, + 3133795939616064257433820167007814473576979417901597786125307833766554688785, + 3232836692322280622557738564793320633044433610666643285763013846933126988393, + 1968987808463695765486858971092418967209917024286197763480585804013213811519, + 1660172255797827511554792421826393320522537324167591614207989974032289156290, + 244336998724889913310148002009162240024241511396552207896763238387485129923, + 699257078739143393391231505795997204693082066727804831164160259649960811300, + 1998200634994994013615873740809909505416327592977759689029410272247382912509, + 2905488937521028861917827384137070990330892842369136802704151762549075225151, + 643925186834043057576161465719187181026267566646994174560747619409759135164, + 458371602823134880891382945307298403005113294643680522760252962792296676070, + 1642968561712455100295582955242551553571776330659071284302738383930163306972, + 1722386801332888663126953669446712613137948711943861318290059677254303104360, + 1062586208191938446476166124681167439772436048341332681543064327481282142361, + 616223280979509295031949802238560494344621785054634932185688474324708651770, + 2875594040929440296924103094101915591483410781066735067493478517716748253851, + 406097607882643894570167597539096884508876728783505215187052633791373010539, + 1166929363527460210094421691191132962158757377722223995656827616770149077190, + 1006251410732872229385524815837753307422625657566110360032029500964539196027, + 210076340391707461168022986723524940689943724876780773049655939865719618919, + 50948953922568812990340535344671877550613562489480858588016182545896426917, + 3484463807079417914091893255153768462467372065255355567728716085589907026944, + 3436302951262452693300917554026182982250580268441578744200433413975908378885, + 2007315458853760996963313353865864625050008071303473637642200598484983917707, + 254156771117394779348843353836944808693145128811086232435755870926867153401, + 1239740199799683406577102630987138109573359094350993723676154962299005017985, + 258580688545867277635518560904741273952141332391036776913437792810597320803, + 1444657423970432030592707299144027110023719613968808051876026926240358058507, + 2367707006564185269263722474756660665557083364293475150813141346557101600042, + 2259543740959719907579610510026804401755194199608118509985132541785476937453, + 2159740301863650343355005459918743753523743345955456183790051049430489052016, + 2289517288971308344366428759052544594965350611381579526925519239697949997449, + 412783658325461248362095372545054152605889313547022152474002730696950628662, + 698494682807080614614510515628307704900589830942554131137279427175741763921, + 2698288446873557130106031325804394729262125302382420991355795348964761796671, + 352564570797599549670145857866325481291872383030361089500023678456481666154, + 785105842970958989970769388066367276625684942620743799275288890145381275498, + 3033992666499815261952028575172460017313796137447634596223269261538568350995, + 638857758169361390885013232516585103604473651781447458193400858684580877004, + 3494844191404971367624125956857782787530596419977234564545789119898907409772, + 1028547067976030668593475841943847699458624811468028149815128683074231537162, + 1327230683327641745530046918388764648951419225079531133535445503248844467668, + 454368626226171922428397271042446861729183402958051824615595627760527954207, + 946545580161101829266381947955751108779961267677454616646280680265533387751, + 2242097043846794805300929794199894663591189336184136385145099631113499174772, + 1386190096710546565463775070894284841637061467614004478240046716292821277696, + 2816874966377679501973737603936032540176708457485082336607370929612778089136, + 1478752622159543028211509150528093194034004312967359248182132430869818376336, + 3094690077264770665712892769331994678614769801107405900992789113305717410807, + 2556882057482318054270972776642508778233001279498839396867344822153826688012, + 2900121489403016707340855807566856198720058598038213131863868675535522403887, + 1073234234664905531811846691342685080930664936516225603161661094671678870815, + 1461226934604604866049769114719746564759883992929957544966480638933340287983, + 2702327468700227285978504914080938264140216891996890749465211774204450706647, + 2254736724319845643552194415243345921832668421370830806557800441682065030139, + 307523160297428780257977976491786906885850405622504065339306336048146099304, + 422159138206799602982820123448013268011982795766168707433310101309347447729, + 1879416164403286717204965632777931526119484245534871287892219973989494830794, + 713373375624412264028950925259572728325077111554426294138251774609135282381, + 564379673688277702835078004838672312789138812029648029074443487134350226833, + 1902209758606586399649428877053138849433654205067840993182841357992785940872, + 3048489349522331596112004605363507661564438561431884106102834832513881795732, + 3572406443172630622088701640863740255307743452693839609671564971609836595811, + 2289737826612346853183415773439077852569472652025838606585005707967089861260, + 993023199285981054941489031107931403028879947648558620443171875476117867435, + 3142463185489089828976244234856898105118735391221594231503006154805806148182, + 1169586780474428689507773529732330327731650910162423831533302680567835366961, + 3021558742045087425819531409847068787382713203411378652199060469430776350939, + 2878922626504605244555456671052486619427079144437462960590015140573295479764, + 1848132057457818496747916148451071034888363886849777734731437598979340137820, + 3046601294796517026903132427073883042157926876785463206312164163310789387587, + 3408537833025166968092152150240545745538524910189066469505538616471936842233, + 1034217701490475721774660515864269037343365735401730585591990662876696373225, + 2103537537340208362483662214271510340595702639477797735783725655964704136319, + 654310605680934863857450467617995866738906809773178399963931756303053976934, + 615598798296654873690785950864460044585753557362683195016108375820670801987, + 166817591382939709321381203246709645587167866326062029119837797500029165674, + 1860502055751523027078118224145752798815926782125567290022414982505845070555, + 1313293764698269996243959981676607343263304058633138510656269318850261077879, + 1707782333270327443969893569439168617667241623918425665418131694624484372111, + 670434148642834192556868733921856866793639458597560698867767756776587890736, + 188242989941728250966477903155726996125706593992200192215515746608031486747, + 718718409907380131086657892295942899618277866802106233874319197501329413311, + 710798329677363171436661699451329193410540207406138221006134261680570846412, + 1363513353361360989726222830986944279827119089726550556815487083187802128348, + 1633832794352508356428566539430807594311214188144380822932898322613701291664, + 1230150166548439665353874015119898248515956515968152170043892516855682596389, + 3539960684505379522176888401747891087612008839035294268345909141471830513090, + 3034264781001074513931349575491139119335776603637210242802558569287406699086, + 1962970594120493685364126245476583814377309928023489518895211083824292898067, + 66257002606391580215697568789962651022188977136915196770748696544788950601, + 1136092261952763398242781328017419384269118810686033506695865103547039325175, + 1321949754831082148957286240494392725112809972605433623114681037202699669159, + 3533600789431368418754466363696601128572042027837635371715527425652239503575, + 557084783001737153136723550807345866052698019311542999464649161153609646654, + 2192131584737432417949265381265430905344354922087571541076185033804105810365, + 2470150128530019869862053003991954172540370381601214946332908987440922890330, + 3374214861147789270979671083664488617000845974529874885490268061788993187605, + 2568318632302494048816657285466646103872820327803956338440258664024639093891, + 3437223361861585497437547848067230010567845882355933931536114149154060120665, + 2233297882390323756596883051372198983026140745352753569854625180831721236764, + 765892200008500178277842615606057855423019678664144825554595299510351184635, + 2326172403945615731982891803850129929261618680254146076838135121224413594990, + 970439399130880949564918989881697860952637624795537621397940144495676201583, + 3053089687189756628117664386448674176807822911573351172739954172703052712319, + 997441537995696564967709214291142970832277595585604304042044384463573336954, + 2182579188307520396706194714450722433298507349045044569005268928790642140831, + 1325476512345098396614341148479092129898584087997384813973188469789766443041, + 2411763194192548449468293150975453052774409469417732497026086239992441602628, + 1690771537735943150487624172876967216658397462582033751745837480841486560673, + 2342101350761245017655473493907861461405770116307618905322303929637183915603, + 230358809061963231401958775352193238777783082038557497169495409042531718191, + 1561107809968565617060099350319044149367719931037700431996894111813108449592, + 2558448114696620908410954691835115002255978906560904643065519848434134221519, + 1521249993337632366746192976901818549835490621316263499162651387520944167614, + 108633509189940646464027260408196695484331736308564932682316655881000370534, + 1514293734544071862670121307119151092737094252090375409732477635036964906876, + 1937264647903184969157657251865843300184869664672143640487039722327750153308, + 332033886025004419117857743702450455721426131844867630044262876436233021295, + 73340798692851351533939196278412171751337608832923189728849090004144303440, + 2203766556007431492982485418046507610979308146497976955899456817381598804802, + 2652235548391664852722592294163278194914206509780379859794068131229400933196, + 1305885346129649061938201764261574196506967065829688302066133731226438909656, + 3583403442760551239493538854826859270773086092140714914633709421722270573940, + 293410215994225935432787644965938405179872799977665320442540251604508911891, + 587058786190033130884653734672206204939724636459011462929023794635187083100, + 2150407520184546282987817223879811837701867796319658479173135531950682036584, + 2471338144488254111587190895918209293333896705234302825090389208606953807110, + 2594655757900265732690503218916851016547156215924817993614362731285197430050, + 2303718040973810105246527940333501766398527493580772048197238330525586572451, + 1811286124402587670900176414833802010066713266712333043421251274337855375411, + 999584655563485780656192567084217050135896965220771251357731089535973116303, + 1943800266122350747899924198170917953231394259093776867953009689735528718918, + 2847532554769094055506272986614630230794338162695020439057020610472063292363, + 2075229886729513571118617154643159728083581632580354029730750605453255558984, + 2346202529270524216704020236878563230116876348504511621997426335850224657885, + 2658661829294768150719084132401493415001461155551831628579412540940086437800, + 1464956643321079088566305731511406350911024525668204422249859418741379747918, + 1602039619026516795796432071811491263684535866487946755268542208855359145626, + 1095888452062249163109276452875053820208104076153099956561523707394112967313, + 3434210686143637450703059954914110840567929825381744984690514827017055677062, + 1006325254473693469236597071921346926080327502422586121519735776013447920225, + 827159557092058469120638115858948697333972264860090532973382688649169795460, + 301921821497968166198395338745536534666171779060147231752200174179201877272, + 1475735166407801880848934771653830575706713827001089038317321506089352392407, + 750253251796062152934185469599347093841646961605318864072192489993825047586, + 2516003277884236049875114558560239687915854160032491569235600049995795338533, + 882056314624010496254654062786056063260785682632634889217244866762699430233, + 1218302028230099660968808853824309726386145904562772667387103324937649240030, + 47410441678019385179680692273883000968396468472446464714671401275022077331, + 3507704123131005254379611582046185150886432486056826978517862124419227922336, + 3083201329980269665652440240511996677165604977154234276386465436679255473001, + 3536560974148870550060087089226193864923123700375639572060050172620641217211, + 864024911575408198976271672656137231030452800857497155257979679773171247764, + 678234274894813463011468754202776267439357125900410547880645613359683683011, + 904352154545810606255833411550292241908128196747568748267946808289231852823, + 529063883579889460199724594562518676982188098307303006128438931095871407454, + 169492493515015112360193213920703353379644584760064066129621414297807458466, + 1642198729697454597989493354198431533788084465357271568492922091292061255360, + 746975804785436625451775059536161434437159239635129865696680040039055644047, + 2137920974942687073519947196935766367848539731821606292678922707832548177739, + 2586234449530276766976459318600061691246735074161267293071559906130664582951, + 2839005011034331389013320728910413926062215155213111515770037403032406003009, + 1971465039015895709022403825629042804352824946569549395953116581659513370708, + 3006138323649353267827332258497531510804249476917111851155708018939579570409, + 2442095697868483564914996847176974894647146088980699463352528368218218170008, + 469647599172146712177827089995981964705440477759397106450968380889435069914, + 3032852495736164739889792712199502303166643379218011726069615626405739435868, + 3544545631445127837211638802435426220193351340816642825277438748044680411924, + 2570745165138696516016541531659900787331203110438474704633300605321321997369, + 1290081573964307542372121738468010286763375699287809321445165051560050574388, + 2847969567506181096652080073556266970138948635315014788991605611422168512348, + 2547101439733322682049508793411643627382324919698377673613751833387295061383, + 3447634605771980051801147445082455907013341658055810836558291999518362544418, + 1258009981626009823520960281183667502181809826868994016821662884337984092560, + 2760954768550921764497194228393330477017584820185248732778295496241376149439, + 523169225193455123114452921159961094219199498077390196191320179361246991520, + 1294596883396776203060941054363429032088557477437155960403585221412687287182, + 288800468688278864896470050765671639129700086955108504054020768116052707090, + 2468978336071725302848658679400789864465811780780728557977456906685888788877, + 3317024347708092036476239032248803309774338814275541910856206800771571503112, + 2780085434370427249308344692653920464750631354967346805479909800210463937206, + 486026077041799563185429314965670971298614486069533188522289730577568951657, + 2970951898577375164617494450094923626475817534856401390346445489341187510652, + 2147246402335260204351966111452001438912001217103644504354162011215547281389, + 3105358873598779688136269890148610063243460168642951565500614657107261301155, + 1597845195336670304375995901527160786140234425066429241920337046365622634383, + 79158809849126032453909331890585247935997148192097869824350567345309087442, + 1089853365138175072990678408013823356881932386038708461016708403459299112358, + 1828730528862225994575045470435311572832603679535003009201956241379545595908, + 2423122771446695210338915299514531096260510040117280315549154218032840196954, + 2042362543768565837424487924749480326247814715537793357448525524129472651807, + 1241088350685107046926140119828729070131646609606115344136301427749148538936, + 526853293679232049622062050203329866924700206348643482413957577843535846603, + 16904833609592933878519785550117878618285498162435789619575308844196414105, + 2595985460780321632500145099405204679692603086780827773753306548261044099403, + 3343052391865166912379279489580278591777254875619981911966424379312846835404, + 844269780887986730080164860819518091750658423040990097905701442931092846612, + 2210428610068070737940561358130031752057024621537978119418458198889815264724, + 3289823310007963315400699386831226779385028915192239950443884290820684431266, + 1456524018669269927356774584176032722919391117248068741711388803536812069214, + 1062302182823756748536903298901432905808157008923021738870879386332742721265, + 2620924264708634446836813808133803064590036120583265521038797933501396422112, + 1283804179030223827121559392708417905149303000718015706569871342604416864168, + 3253588522586053070559956711843914262406207113989826302099046619494523438403, + 3290480612754761306548955172865740112872178547552558020890688662383125084768, + 1533332531630466167352699922672288212852248610629117741378329648447938745772, + 1947096354423020739624303585222396741145953378167789653032080404174154427446, + 1658313302134441307025235957407244624123766921618947615066847654466370582441, + 3048956323510244596210586066398807852908152327567141462962017156527808807855, + 1609460951786842039880973475728635027441935418429390426285163637814243450758, + 271294684213433231433201144509536601188147812087397475203706166338925472031, + 3517293987817830543135889807460362211024217384284220990520901209950409375714, + 1130382079332166849201608015745457085070899781987806571831063234763802986037, + 2451378486632308351747834573561461020229773908553120693423142311093697249958, + 2801306157054196285613455484004268515056206279180046386351332939812847402215, + 761966980109770963059284556206631099404840865484422764230671820803410568253, + 1415832235751652985068862965539557276462800915107460865143067462748428437462, + 1230205903081981106307527935788097792715801761939337416289860980321291932719, + 779063135519097382416659381010727001113002814074703007031749972296267870097, + 2771578477105867799518735035412425951793966189480503130096112275835239671145, + 747166523398871957058823380709301608891389458651053874391265076826672645072, + 2009302245367057041339612549391577132819405419649993552068743377026381329381, + 297648642788530450181074284758935572509177032195479842989657894085594643698, + 1844741628168105483086731205606776328241869199734782481149141770423849922642, + 2294724932662546198762557370644890433609184347461828260732537113468881203576, + 3083250685656704566419498045532557696273844944350520447383434278833899719352, + 1191636465954155060827876251749615917768182312580213555566515324056753534455, + 2324604955732769741785520239635529530416426122946914934495064533683067725578, + 1163503616080812514505809482223548187688141254885935976223361692117901243991, + 1610730230301103413758336771030429455409670251592805061259232855775647026663, + 3085508393947463058452423066106900398549735498745486676782599323500520667122, + 2285188801711740880446401178565166053849951495141877937215895091136495374780, + 1848411173302705561038319501302068754972800232497302807920279065074086321972, + 1250984099040930707876880131382857048738532014182887515658005429433082113532, + 721900092220495471731473133237517561817004316409844743934354901709604340533, + 1079980865741637903126235489052730574535979418630602440296244386786152496182, + 2230898128352923696703791400754489060212021615073090874029859730143129537041, + 2857413068228132386494715115171770743640669310207302251107296167462110756239, + 1504789471693524462611439894370612072128624422967184627911276899833974141739, + 816511396673062660268968292929183740444295323937538885450187927777061459087, + 2082441976691688352350310436004624009406143617909030079046806193850777238428, + 2167140723175373200170628228500397714678264688514353023411309431377754202099 + ]; + verify_last_layer(queries.span(), coefficients.span()); +}