
// Make newform 45.22.a.g in Magma, downloaded from the LMFDB on 21 January 2026.
// To make the character of type GrpDrchElt, type "MakeCharacter_45_a();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_45_22_a_g();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_45_22_a_g();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [2321089280000, 363520480, -3512166, -1, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0, 0], [0, 1, 0, 0], [-1756122, 154, 1, 0], [-978048758, -2080768, 711, 1]];
    Rf_basisdens := [1, 1, 1, 22];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_45_a();"
function MakeCharacter_45_a()
    N := 45;
    order := 1;
    char_gens := [11, 37];
    v := [1, 1];
    // chi(gens[i]) = zeta^v[i]
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    F := CyclotomicField(order);
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),[F|F.1^e:e in v]);
    return MinimalBaseRingCharacter(chi);
end function;

function MakeCharacter_45_a_Hecke( : Kf := Kf)
    return MakeCharacter_45_a();
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..prec]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 22;
    raw_aps := [[224, 1, 0, 0], [0, 0, 0, 0], [-9765625, 0, 0, 0], [-58725955, 325419, -908, -11], [-7871225222, -7011318, -83816, -1866], [-6737720767, -66729643, 346764, -18293], [736408091421, 455906569, -6564036, 192599], [-6067027920693, -2258407055, -16202852, 586223], [-2610725494423, 92175566591, 197897380, -612447], [-1182705744959522, 1898891144724, 625646384, 37260652], [-273325562694319, -1623434513977, -1748479612, 26406105], [1200633118476989, 10933054426897, 29887727132, 55639375], [-72427728003826084, -20760794179510, -80957187432, 406366070], [112764228896582544, 34884316682196, -112886973904, -131528276], [-203516376578266145, 182144480961105, 69373023772, -4433365233], [-174491566098976528, 688343826113050, 417497193816, 2662901670], [-1655565323647249994, -627652253829106, -446448193528, -114174962638], [1847524106133744840, 782225835745974, -8613861731992, -46220774006], [-6049840901189733572, 11173717991431312, -1487324599872, -49933885584], [9343082988558115056, 17989364733802776, -16701469383520, -216435933208], [-9315520352840265320, 8400701500746658, -8085803378120, -280208264930], [-27443877015009336657, 24237494373585689, 22366462515452, 1889866705991], [37234470999090804552, 85676302259279148, -29749749737520, 2040266248020], [-139618675996364292048, -27461469126211482, 74274018438312, 2577327858138], [-59131594661689334106, 280914628682512252, -533330659339120, 6938741707524], [-866483024789995186218, -292468964081329292, -497712803638864, -13281372443636], [1009544181946613444505, -610386962224127745, -666878050649436, -30929168178271], [-894612756573461938714, -1125059083844290506, -394194558665880, 34642057101322], [2094899223993444248662, -1030322823899266296, 1465064720842464, 33665541715960], [-229979346028707701783, 633233064443752797, -1372296683316884, -81226446942333], [3544466305177137095861, 4775472321558680971, -9141904994586380, -135304526565483], [1991553059374590863900, -15887708652583820096, -1417138513601536, 97381081709120], [4357020042015444522011, -11191165915801419901, 1439910399086356, 324435203287965], [-4408029597792302978439, -5552508561847959829, 14710541823908212, 299861668729909], [11553195411185157616966, 48277151175231458868, -13156882890653008, 527554392249676], [74343414378297948576757, -18285987146740835749, 6511848260665524, -674847864324667], [89176900270923752680991, 53614822105579954711, -91651305136634812, 1525866128912521], [187608482394275828781504, 28507367728697763580, 144215844370628240, -2636680288695420], [28489835772777827844097, 13576747888987015431, -5806255822605948, 3513615971009177], [-71152376170879079471514, -45930409676074899044, 87876186989876240, -2949406435776284], [89506963906563598822612, 275334113468372427848, -296712706348328224, -4714321590949960], [312532567594102850039238, -31015107096086268768, -107294938086429312, 3313334600199008], [-156552585410368869759752, 101274047025625532504, 53583286522464672, 10074758334116520], [432962477624750022169152, 359553138221448993874, -805837727183943304, -13147297416146322], [106688690756354468984644, -494537945093009678634, -1184148846193100568, 6317275993657706], [-89371571320428702673043, 232849233791645555459, 637848897290006292, 9195626716208669], [1200967410395358277398633, -377337783102805843565, 681715780261609940, -28267471390854003], [1186239865135494275757559, 167787977404928980969, 2520271608354441404, -57581172109444489], [-1871647305356765939632284, 373149167085418459184, -3104788489527499968, -30498675530353712], [-2976324431084290985167080, -351696813508074689714, -1375189931035655160, 18336507715269106], [-2466941200364594856024553, 1755214167796423897127, -8949809312041775612, -147645494145031047], [837340443278361675507018, -470849432540811551306, 11169605336422008168, 159000286049532554], [7168839696653740721246090, 3447261721005613686632, -1343592690742380192, 184562540148934552], [-15706229798179610276285320, -4366577699135569670132, -1780923154924548784, 69027454357849460], [12498874294658687162645785, 804445350357255827549, -3534185966226317972, -219064373087874941], [3195380470574059274807803, 16124365570530868420621, 26056805364468101548, -18690334909029421], [-8392028065588483597084978, -6246788284917845748844, -45482346109817476816, -117121393992741908], [23271403373456342401001201, -4184872324457724230281, -7036254454681166652, 116978873827070761], [-14809888138684275676677849, 3046810189957703687335, 25670316307454732292, -745184066115460103], [-47750636404817875576761068, -32978482325337704867870, 33053316123572409656, -593049673230667554], [-10221870673434566169625296, -21382035601015241399260, 22421459362419266288, 455391231462074204], [19181842794560718490671924, -27000428183420034108890, -5374753337176521304, -423498278113257446], [-5547574641496289233076338, -17755271683478943749698, 13847278728185676360, 3508914297532435330], [25847694471236498817953226, 52460847101784029595646, -58093512396776693944, 175672790789841730], [-34131864676163451381280772, 108229495769583648255150, -64269813863740952952, -339718225633214318], [124165135998009490671038968, 20714400817028238828522, -22400691246466690024, 204256767812813782], [74051603399749926162198725, -36614801194677556535249, 207340555991207001060, 7218988928764813937], [158949821163246861251196592, 173610064636649820885202, 245083765100320590712, -4654888362416262674], [-35570288427953915969705766, -6183940466602973721550, 220554319350830966264, -9525392424991392114], [205126243288111992579986164, -277574706821966092335638, 27360149536542069784, 4832177340018747862], [-31298848726538473244189845, 150554820645986143173947, -340605249766045680332, -1321277897268559131], [-352116141947634318990598472, -181650370829820439481408, 275840277563172915968, 9541397921624196672], [36529271164687003781565531, -414518210974414909216859, -934101682417319288244, -2649608824461616325], [-446696103613015976468535925, 180856290702925596880451, -728495947953742963692, 18049343970403214557], [-56873619093134385654315441, -1025517773291769229856811, 404450396561197534604, -17931413059395649781], [-525604202915307753311507393, 573054810930049245244209, 1122641838390889915548, 27386577808360316975], [-530517768587094380405529270, -490561122880231007571232, 379804602363233527936, -37393119387379105504], [82154251862325641513502933, 1226102290898846331464289, -859424139850853741860, 23786640356067906559], [1352976877596700801347451114, -671210688788780279906652, 361738588980402805488, 52046620152177401564], [-376138603118736788487792934, -1956582590738598223287136, -1482725010469453659776, -1773428151503173792], [-1155716491163430724209699332, 467869152333456829043568, -652027754070290988736, -8312700230747149424], [-1509210483259627888211918912, 2067934253867771325555590, -800769939333464021976, -27694911515281741126], [-972074569181899397997804664, 2012336964541655919594840, 3013718429516572445088, -12245127497135898200], [3339393398224544456617963232, 2022390880881215872230114, 755622241391646725432, -53590635456766717474], [2617463687297423440604051721, -1167882553727016907376265, 400675311696199914692, 202479502159897110313], [-4878345535772424812733383788, 2100152099016063283768824, -1445736208919044197600, 66971034891306929416], [-1145577723086764183963987558, 331285373294841401952196, -4022007565004855143824, 123859366147057865148], [662008778245203279379483022, 7318927373795052066690684, -2465875088608819207024, 69988801719237492740], [7410144128795176238748042274, -563275416792823901353920, 3795200271970759994112, -117490380433200503872], [6073933465878396059644487357, 3831321399104533367538947, -10058579126674282089964, -51909032377978089699], [5407550114643298891796787870, 2592115016400353570267446, -8136525747698883128984, 253143063156211462410], [7882210827669252294101186112, 3038606576472325584059200, 8638641659414631628544, 35220535769700757696], [-9395885817573536828692482065, 4085131100582355790130185, -12099041531349086242756, -256469247432951364009], [2556510049866223462592140234, 6622407151090825564877530, -10330215631881228901544, 300211252613964599270], [-13993332286551361317427998767, -5632173546056619299555141, -10331977402083301756364, 133978974619337349733], [9668160151940231047219402459, -7058081794832951613515491, 14876074772765767017324, -494546407648637411133], [10204049386804779801077856018, 8428105977031568746823264, -27395850277271076168064, 242330133420895885728], [-10462872765122460333421330254, -1474105770564714491075580, 18228848774713842155888, 823909949276340557180], [-11835533212571415840700046210, 4026529445975680994233014, -46045587650283097392280, 432369235986233595786], [40760661085193395746735430918, 25282493945915016608316776, 13075615605824909581664, -32375311218492504680], [-8018952855271067381960391708, 6227314732969789477955912, 25771304275360679214048, 1263922419818455074744], [19788538696432362627041661834, -14086754800021593694510120, 40845591689368696568224, 905026232767456466216], [-18276428515582754902956540394, 4935711537766493248049454, -13762392205142497736568, 248884999659446536210], [33494489786858036777613330662, 5739689330311285142489088, 28148771571798259709952, 1667454073007963435008], [-34504309575162900570131887311, -20783384990901114806395117, 14934128457342522991060, -318475324877090624243], [-8592772251256660109392562966, 74536965057713542196187992, 39490180626986252594080, 810646308194275497384], [29679392445885921673106530378, -72890170464019418194016910, -110980763207727953899272, -829269417780994976434], [-32587731407351882528684604955, -65504059251204852459682463, -63269508910957768889636, -779414840656484399873], [-3579481088081573765461291496, -416410706104068462384816, 32719518478722312911552, -3068998192794319210832], [52147739885074102037017812114, -87540062595611306084310488, -4740813251350509683104, -1073123355762782456616], [-916439035123017113247752957, -59307304062339888382318195, -61571028331442192242260, 702933219891710195795], [100507214150435747288677345709, -8785472578418692997194495, 37954423089594260595804, 5251137102952206632287], [24856380984219209960989245751, -52675459724235183373097849, 187623609647626719445124, 4023174286360531137561], [170447131495517959894590248361, -6944840650517093000955269, 19923320563990411797812, 50141196822937465509], [147280590989127579787571597591, -61426801153973445031121431, -143838097045744061913156, 861966033587008367479], [195692140862460180410820875812, 94355100797883893576044746, 23701432881249411653784, 473125017991759132406], [91312255608071166387656308188, -81838932566247090206319136, -128042100328931054733184, 152593397632705172000], [-89639384257395171760868245811, -39638266853074391655619461, 5686359406346276736820, -2670959705673480832347], [-311390570967631927297395836630, 23460848952556769625610168, -329265816718392425569760, -4159463956704251512504], [150402054381990334343506527426, -21917907238724350143683670, -35253658947080590986728, 2077471226082351534358], [202734217435027210020593799668, -176240323107574206105411870, -71446090342927176416968, -678329961524035481122], [-38701537683226019595687294236, -307706903984448391506175506, -13316644967947714247288, -9022809523880882692270], [-93798210040976357433291452590, -33994112459419592076192296, -78574165944072397378144, -981765098654715560152], [318284347003421656799505729506, -93488407604287595216866358, 801637371010650839302808, 7626010434366214611446], [-148291084797269349696058382151, 158863509279235841892454915, 232896670177401061027348, 15442828774676300911133], [394334546886042605307942633830, -497745138490682233705785844, -406319285351267673156528, -1740869558877946360204], [123547796423129777157875121276, 100116420556742677569024298, -743744296217344563251432, 14320835617925360520854], [-37101455409713534735344061042, -355558738081940716396474702, 756790810592827739326456, -1789384856458101594098], [-154667034122627801734583931165, -80648232506235011088119227, 1160110876744011514205644, -3739715293141006199141], [-251878769343710008303719633677, 2534151146347116924587875, 1108216485837590752498580, 13175720872895353896893], [5479530182657257158324285133, 152822950879189283999128623, -177783384925083381116956, -4284427099651575813519], [-560037450330425661724792900259, 369127102721428889573155643, -638719075606244443162060, -28766422025692336545307], [537075455779306230059876630841, -475151656380379732404574737, 1605849488491935177372644, 8710828273294870510513], [-346815788656121611880875417957, 767974862672077977477312883, 44245411938760422451540, -2861695515678997341267], [76085045039709127035533179106, 1088675531018839136492233380, 25161818204545998795504, -39043631473946008960292], [-125384916886641787451754843706, -1032743837362020816950330852, -1396471004242200552349168, 33090770927088223291492], [-1368148288258088783251198592864, 619351328855973411018429210, 795855873178508043882840, 31862880071225485110950], [-2352482664681325862234800539706, -391513804251424173295702074, -1259409819119343167071960, -4622576244253988895622], [1029375751195196890796006327262, 2088505524355893040763693140, -1732612852327267901937104, 6657385035291770669868], [-215611388199182096698782388684, 339004440253723917815459506, -3413886139315795003539464, 1596590894293232648206], [1406957456728752992356750825025, 733106883251326329620472403, -1543486953918106808044332, 16049080296263740066253], [-191305605104968988311024934390, 1494600850342850442772680688, 2879727285498022977733184, -19781136222522053135856], [-3628892511029206175846098124419, 917763658238349691687781227, 423955645563079671916916, 29622753561300295872949], [3358780717063036964446164845120, 1260654261212906485606128540, 1721242269778245681960976, 35260203566330925318884], [3628057069699399398571909602638, -1750699617805334295900265312, 566902833441321217931648, 86316708187683995158368], [313039417432984317477790999236, 525932368625264449550710996, 4165630623331076309621296, -99792240056990297936724], [1899396760522145983086708097793, 1004631868417280666302045629, 51119791430148633145324, 155422470189150286555939], [-335767873518849066524472050387, -1684572427019047630554857359, -1214174466399111862672228, -14812717465876654567441], [791881208067617949281954745195, 797312225298985424491586841, -2983233664224052643062276, -33689998218418396588217], [-4360568363678304038067363350463, -2640976920561946292174176449, -3719620899417595266036316, 110170934410786114302305], [4801342073016114848615597162391, 2117952490105939118223157679, -1537387141570373447739676, 23180597723127327345137], [661666535669492336635269774380, -7396341123383805954902924270, -793863110544290199249288, -12252506504376574124370], [-1925259396583354234136479455292, -689572436687119846599609720, 2562950043729615701564640, 29107288934249641264248], [2756456318142822496801048832917, -2532082258920651329254684381, -5251982669881906957061228, -253930103004151667647235], [-9277605131873598647550292253230, 1003352649404074148282717906, 9641693133835314478215032, 148226467123890916706286], [12643190028692317739473980096918, -5682947707386906672421780486, 3520587240500302855612376, 312812243685857933301702], [-1790570322548885492879313102855, 5986306987462398100975508487, -8171470164513624445133692, -54176425755594147809639], [-10499181310770962526446964255418, 3804835948472526874859866136, -11210841294141728198987616, -56487165044006520964888], [7387041487088791980752031601786, 631193267453837840822701744, 284104437392628142924608, 156692560035066650439504], [5662328733507925464175661321998, 4404133423123568658139598484, 1423673385796944118196528, -256108013578069577294612], [1985296071570746659909330215934, -2806099793603058044356567274, 17592205901703201160722920, -524683898433618187529430], [-6990027716563074548110309505197, -13209470442296485169158019493, 5826250925273175651196084, 70221242534448173604293], [5806947398708511673002333809555, 6007176857883275222580404805, -8812796423655913323943476, -267202960201251372813669], [6540604312071009478007550639196, -2048344813660412071057813544, -4413041863520533619998048, 754312359355789646279208], [-16773307038800306226959379457155, 4330216635655220081273098921, -14298418186764152547519300, 170625490903633167394487], [-1536055537731145933345928436619, -3485543290148658525921197741, 1444426081414443786152660, 524993864697615235308749], [-29370064715004630421112773260181, -20063347494886235334985821635, 2573835715695512894946284, 53886316196831283238051], [-14223209128846094642051368045533, -22925764244939202104357852613, 8257024969198474477147444, -266762870819173122448923], [1295230997082129915418992803466, -10383976825743447955689168216, 25095733481588567822349408, 205205231083282236623960], [27847183427264873780084141075926, -13248479462292320922769045020, -707701247700210460835344, -4180654953153201559652], [1101125074162552362814397290986, 9059859884397610897379053850, -21630358119709282482754472, 563315769206050727760806], [-17132707854106306737163478441306, -12282526523680942299482393240, 17864947517224996934059360, -960164226059293811354216], [-18016293875257996500356058020700, -4475329755605452981713040860, 55117208072405689700831472, 198585837667062341556060], [-35026118656089694424005732298460, -7417017870033551391688556426, 33938881793013647669292648, 409377648390088126925770], [34997000137171364729396962944883, 20118840875317939414965842261, 8976538940955186290272908, -29020546710733175410549], [-7336001984326906539326358116740, 7846117936420329454147610810, -1999760034737978254292264, 562118162038508263172358], [15665787079065383946502170288387, 9788079556566382561204326065, 25256481323801689416853148, -768019472523689320026961], [-29417882424468516273963936440486, 4796439619611006338860778896, -20814067764571581442520128, 86309791321291455552624], [-11184221470788250273741359085653, -43472467156521570857859177379, -44240070152508731331070868, 876441333311520361632643], [4312831587470140050853847188966, 36565467435522599108346244600, 1203903757661586516481312, 755556864603601801506568], [14515520493813720889578919190421, 27335451345303862462039813259, 93016320921629251103385844, -564567784711343207928683], [-29678916999235488851784420779282, 33543276079660619738863017470, -56678981239601035297122744, 795837624415632995699778], [11840277543405836516007978908335, 24912351316904467526808905071, -64872795086772756050117660, 1025955408134847386386993], [-41684053406430327053469734306007, 17553005590283172348766426757, 44869180927762667721453516, -1672005366745120776985253], [46956812528640674465009367186107, 49593011027613632409861145125, 13197461371870308268289100, -451466568432798754851653], [15393998766388246906087427939614, 28865214942779261911400281724, 52185888254809171941417104, 357174594198229287869444], [35092905612508549127557815745825, -25411271578976686594358495131, 15127627043258827459815500, -105869880450746004757637], [-11702099566914335737099267716106, -17982693403365684353944028874, 30070262605750733103975272, -3160675842263345844800758], [3828192524633535413973191545130, 21387868092340348326066328160, 41032566461612690341368448, -303558887364556698826336], [-85174846479854794212732437902108, 47993382181633851323193642860, -52333628612896628100411184, -1590339125837685301045484], [22708870801621612023119940676584, 12402093734472659550206987594, 203103791288815420805449368, 750126780112519741575798], [231365854457122127847661973409742, -12121406829955358523448609090, 22495181423555609566578248, -26227944586666999253374], [-25291756385299404389020333793119, 36224312863716185370145792315, 37367528259713449598377524, 3183477698483148111552485], [-5568269432631243088660402675202, 83596698018364326012843645588, -125892259687645422987702992, -334647304515193221561108], [-71353516160087366425741107403948, 59557469020966432333956463136, 152948048607199318733916544, 2181838680188941508679648], [73995553874999051795458697363785, -59884671482529187199482404667, -107201221964871968812128564, 2231748584539364209834779], [-117457526706576391568231669794366, -89721316323412763107600224656, -6112844761614966089011136, -3492988738142320255689840], [18041943307933047042997646140873, 134973719360967049896363680061, -134644390572291360189371924, 5214647991433582308208547], [27876885264652225812522182181189, 56253290964698633840215332177, 116842230450850462506149148, -3886415111022656646017265], [-184551664290413634165804461877699, -88731092435849833459871797701, -27879389747555543342567884, 4605967530070437195232997], [-172885225507112217711325868933114, -60226982364517888717124290244, -137075145772347705384497776, -3731058801485545561534140], [-52084102116226404089493568477965, 2672986066687899857021536581, 273711713963981621296241356, 1254586622696592058378395], [51282234571508811651150447307157, 51432500283599090580570646089, -29650485294385099031743940, -5115836762590271942983913], [-55898558852530134991853259451290, -107933195147567934837391387748, -47884689371932552694006768, -2643445673884597368148252], [-293963612578368746227757613495144, 146590354432200698747815752140, 138822719102564487456066640, 5271504691855239140755892], [-185606018021749821702704953504264, 100139942541190360823020109834, -189693202034236406667009128, -698459427573815914313802], [284484780983907817866131145134333, 135544873340827332752272701131, -240764439399445959153699596, -398829053056874752891051], [239950572568103915398710801016842, -211203851166663839920519086678, -210977403258266081801210600, -889507386418259788574186], [657689353692801588205181909521768, -142926415436425487982039242754, -31196941759199928596461752, 686427463196060565605186], [-318778547303099972174460278751989, 112108840275219338393419001433, -16949943963571031792401668, 6093855938651079514306567], [-6098346052495809199260189080356, -18564552179512484255211225242, -41198229996704474904564568, -4318395506054157660969254], [476810513791274846412287149136190, -41860296653884356788909244932, 99570915646904731816402576, 1543864110226586740297860], [238478002493944082224948108693505, -114273658898548524470140187033, -338441175196377726928780284, -8617956102738013609818823], [85505937525053560797329066478236, 33204565791739805725474973856, -571157608351579839528076928, 2461996486896561019745120], [-234162767558874857903094087497026, -42420368856813399938814412790, -434502376365539028334390888, -11373535598831320869028426], [-298863931288217952701137709961818, 159200041157061938370325076484, 393656093636485447396716912, 11787548220585953779566460], [420331274569868204331092373090215, -379002222879209712225471642343, -44618650968508859678606340, 10250132000837429990708551], [534580773177722317656746459768966, -192960788502204937355112162776, 230507876813340320981204576, -2061932552287151911748392], [-209822010154776247927170219795505, -314133222979502580268371086023, -535976975459740932814172292, -15864695679945153788806873], [71922847154223846475947035104674, -175823277450842371660036477904, -650845555383471372245854912, -1238464643654373833647664], [711842906062314995894479021139304, -208202902014530292374711559394, -82471992895059933363775800, -11601330100712080987147230], [-17865578092581139727836029240927, -93320816402681230322220724545, -251563835816522009525864796, 12155726233208183571028193], [281098115409754638111166678880544, 187317642939451166388821619438, 1242437115058996705757898120, 211250075342679462685266], [-231690849270365908185544519888003, 949412630055107620891657277667, 823980507774483180462154388, 12986269440033675772470077], [619748727508348413418658896762950, 345308462478001687811010839374, -1153831700168503201510766072, 18295614255328369460461554], [-661567891489892703379908676342062, 784274940426608480102780530356, -362736685544776950502209360, -25303178063071005719790388], [399941721512242646402793851938889, -989258983772685917535065402859, 260825742715285081808592780, 15131323391668692124723147], [-448189900198804613489203811654546, 363783745344056122375174401506, -964340300851324859438951112, -13366143856458802232937762], [-1054051095015832103182284197003463, 243323622148516296641844423151, -760775868423554369782564124, 752862473850707639467697], [446805213697466289882843074024320, -312098904916008080044018229708, 531164938343107107899407280, -23790903993492733603893684], [-1081862052494646000056653768077787, 587783697207582337088894586225, -349362751413251033942868836, -21310652882967221008167185], [-762533845472697561510674656188239, 1190652982804472528600571014299, -833595837115649446118578508, -27627262931348154349671803], [508715634343882331157976536515993, -162080572244371357921743838465, -1872286071386148686916321884, -10258501343521846783189855], [-236064966060635556555249510078560, 883621767661059518535389698118, 199450767179030325174995240, -41712561710646514761789958], [75289543041604689911892514070262, -1324588172841130716224770127586, 416565480274124468379329736, 43888573762322352980921378], [834816580018978266344404012171533, 147864794615779905551970839347, -139319681598158713149892780, 50701594498171373984138989], [-791705497983109153417881794184742, -935804646852173643022478783304, 1092180767829014992568777248, 7873911917768198735786056], [-2201867166094172412058521768118946, -151266444062922563616239964420, 61817640923614744301645456, -39520955375341694939303036], [236631801571545383744019973160552, 978998053940033989221069971116, -22606885142917065689283376, -37644042530040672804894508], [-1075753048784061318728510745868736, 260739002514729655555548578120, 1614321155415186403695763936, -9160183318688694618557000], [-896455044584291576009586607590198, -421155111167566378613829510822, -2811346950683067540796192680, 60214287997997437495400550], [679623496029658688418006265970749, 1528128676631312363268328941383, 543223411626274131943172228, 50123382688700552198853721], [-1283839447483169402959480734384663, -1400537520524001040361646986993, 399943661153099927473188964, 5631637759587431185404305], [-2225739437844636984847826149565432, -456155996689761105876959663002, 1292651200383663231242074280, -31932379433795467874723366], [-2131443235937024035406268330805109, 1982710536251574902413202669867, 1390992241089037088368478068, -16805620785715205904860939], [1933805786595992980106447536415722, -1519692796709420043658513231826, -1398430215885146386258719096, -15123129373741232586314990], [-692217451006403850305502632718761, -940827864510834003897836550759, 502072155043986245191446012, -44854399545194099264747321], [1980711477869268753041390800782526, 568276120410249489254393816174, -4139225281615178711841316216, 21550791505435135437769682], [-959215711932138100319429806550625, -3392924047703551250354542695595, -1928465140386886537134194804, 40211378113150658165662603], [-1719296802567165332274324092685827, 1947297572696280935425681224115, 1789058893622800666154684244, -31481544743713628604231059], [640703507177904400892798491181779, -330914293211230104156937979389, 1802415941231129033555423508, 51245969699135257860488477], [1785995202419311283763322019863530, 2102006911830015540061138361780, -1303646800055952768008512336, 79984121273514971529952716], [2504554329130730985513566226612875, 96751266073635777886381435309, -1988949975765935826517088980, 81461386744569094450033715], [-872686585774926539491823212710310, -2541569793304173256699113067888, -1620746494548640607506424896, 84362426063112509589838704], [-1815758844710567802163763073379812, 3478160015825580542432046092790, -1909135065584801649055411096, -97622410417916789547391414], [-35133377803850468696307900169090, 2185361013954754237558553239406, 1536375884551276298175498376, 59623965101420224704398034], [-730352842542941288235816115967918, 1183887220861177457555779144788, -3628464866511138645237269968, 63057708854574597022140204], [-515698362733257648973874117361302, 3015291174651678329848193218730, 1302519766222300289738004760, 39247655663719421847619350], [-1993571053773436137513062234500024, -1584396895819589067054217237390, -3929361836259329453889488648, -14035892089245577579974066], [3577501140600694961677837335735620, -2974414018968622577718190417754, -2557089664005652460342074456, 62423669370063921619823002], [-906174664115147722518733407713369, 5453676136823942633637854021177, 1560447749474648485803864444, -52291898080121268576702937], [1329726991712416249169034977339610, -709816326340511711767494264182, 2721898972942917245103160216, 1692250586031762656456502], [-1366445049454669150776166946703832, 672292838924300012530496595934, -2148380366873803416380278840, -8522938696261494862513310], [748513473320920209732232615826525, 3723359868628020306787305923465, 6830652484576053512650240316, -54836236062873500026776105], [-8799788918451437643276932229765593, 330611695621352705827069504383, -1776914544537482789767784028, -53925132748459195533274591], [-3164967376208575050463231949035215, -1068024133073238791028493314357, -6694483681070975225483398156, 14775481358832792783705685], [-1008154769573299450876272765747746, 1560273685283558533859915775236, 5954130610282888279027814768, 120703172198876761106919548], [-3417641949397020068058574163081754, 66589608848400422466494737536, 1850738081117054502248113664, 83833345454859167739169664], [2532446440920936987534120127747470, 2519451100395791324414032691126, 2969473044985011742131830632, 125200036217642363870542474], [-4251981306681613299433947483766766, -1823719590950694706710415546088, 578342496793298719125755040, -48007240194622544298426392], [1972068716818043114592482768375594, -426848166945485326463373343596, -1257395296912170302202713808, 149167573802807208499322604], [-5275626012614421111825587665206050, -3504015319330747219611220866258, -6075676073712470613781552504, -98059257156308771491713006], [-1100172853462700053145115137327400, -2093423975465650144697265709006, -9995614671891203325674832392, -46319300703956585777966450], [-6908336872191373042820950893913353, 3720316467907497942657345065665, 9272769705353089870347301212, 194792270143876462319424415], [-3582055656821025108687218200128320, 7393174273475273479867151218658, 11699184164748827908811445560, -14443814772297601181265698], [-1484577241807312205178291349914051, -3575399368589809237628544836405, -711828906451660610684443660, 70448550950122157945845845], [5586672146010002353134507772110486, 2989736479811107294925709258134, 2019391917664226076310845928, -21399493919806456751153494], [-2048181880679992773144485596430192, 44414560732452538110436784142, 10925196678276144619042877704, -127832645668956329903389390], [6339058893190295577624772422734338, 651757946526730707482714116648, -4156600072052868482894135712, -127990743426803245721459496], [-8435954111909084665485829188019416, 6865965532532275991111944296772, -112247087393589566312464528, 108545226743103331455558460], [4893198360013541539941509882388651, 5616503826054676038298994495653, 87910501904671810401277516, 438593919647360792085187131], [14097757645452101636548647747284547, 4958350825394077758212214358637, 12248520056388009764865554220, -155715496488711718631169933], [2743380612484665030573672718550077, 1827437718312490194382102445947, -10917856447096230512364324044, -515128508354592286228138075], [9504645445791708634993454810392346, 14252649218084636863275573776956, -4119604921429634062407061104, -204547141607842551264239548], [20125784528830240896485866572985466, -1791192323901383315033655526422, -11050052062108719915811853288, -313434671604536168063310890], [-821015577016684720727285941717604, -2826121223574265498061192601180, 24339242264450558444673374448, -70552225774506567963195940], [7291304832968967729915790664085550, -4866488822073767235956646460700, 327723424726716699861544432, 52687971706207786587807388], [1792905935481506945964755404569122, 6876712376404169464563489615896, -8965063496774644558921872224, 159305054895101886899858664], [15776434914353538052383398764901511, 20847890606325155141696659424681, -4247799863967620731077512516, -52986941327555319288504905], [-4250850251783764475155503178034510, -8000189757190558621561026158772, -14851424330701592885344387248, 540505165540129132019905844], [-20282293399760951158327119781220854, 2610027967289489550329127169304, -7079530102766117564321538912, -22466961340153699478121496], [12479198497880746323455286788159836, -3819610939777152895675795326968, 16021983158467154190762472672, -383326463464226275818795784], [30970385937247586463926685377921655, -294548459467234662184491850569, -14051724417642396332995020348, -177516053353913683106017815], [16404580003897551976161085913391604, -8213735189829682717858218731168, 25038161665016543439280423808, 1004713017613861794185600928], [-3889453978710631914992264055784847, -9856380174501816132050767993851, -30135782009096326688507431476, 129039434577078570208326619], [21478071482692947762953816612266614, -10201645512555513521252731054820, 16767888484578457682931891728, -688627999932266865201531548], [10742943580619220667726192344893263, -17427061508486934945791993657735, -2433493455833370393249097348, 104913918342080645804222183], [11856291918801287901433845422296648, -21739221586122814224713322067870, 5606789640164397247890441016, 171778740507068753589301342], [-415517166262494618344859130712764, 13732447534813188051022748407312, -8630354072935496956243059520, -847661921464876286655893776], [33834568053857036372649265664871788, 3098796129883908484810634479488, 43523551365028383081162685440, 337096615507160653290672768], [-696766910599440350698877556859420, 14201069240413034142355442561110, -25515999759461252537000628504, -68050919397700776875762710], [8283218308284021166924936214446286, 7858421710107525602520306500564, -23306067186058536626760466384, 490932422640516728279980], [10275274916354712191823468095036009, 13606530727339076421562528937135, -53996115440977817749401503004, 502047831283834817581125361], [27579922712647533980215939392826054, -10809671657325113414842297615490, 16329918022284138782616746312, -1109301550389966158508353598], [-42431555932825163551807760458430181, -16375498701937884156059539212487, 43267396835896009710550477692, -512122028729580689388078297], [-9522901462663066283193137603146742, -18754499110416679228883525039880, -3972436016611023037855976160, -481364656600049384347353080], [-43591947930689270701448153505410972, -1927277284303374969262028333432, -8991233827123305038507541280, 63907042096955090901166200], [19104045170193447621718599089213900, -6529791728247170218392881128990, 10162833804957413946767890744, 771918193277596329725565662], [-17829819600760139231084034732783094, 9446624516506801933463064953006, 32393332480015529763630437512, 543244529774402484492763794], [-34076784827395352532624456700373253, 22293347807094962496651433628643, 16488363898366235227868604820, -1205442332041352430901779651], [-40616016512023269256074721950175663, 53325765172655898026473175050207, 27969354574648566779513161508, 1071168051665448019477488833], [-19084526438179946312303330012297282, -14308633972662263605361851743268, 22791454051764142917058877200, 1522089975224686503377590948], [4964250312620469396942843379564118, 17615114600661035060330668449864, 2415112501884793573821739488, -1796103541802776830231215432], [17598309424735535495401495983386230, -33730507464210436686359094177898, 3494288404036808019080333800, 1191531973190463957259531434], [-49289063479722092859781249642539277, -7422737276530827470873076185243, -17755441478216814345348721844, -801708657429776957320975493], [-43386947280170554027127029269102250, 11588552927239675339437152249492, 13819516876053790490346134832, 463726973221053003350423788], [-36299503836704397490256378540869340, 1985808979457731826681807259096, -36467641723801772684461955424, -1027888262530155776417171416], [21453726670792696602070486691595834, -44602296948986602166146327295610, -44602910092985394097829682648, 616289013366394755299400378], [-50181202084926839945462363718515204, 32746647042199094042840066049110, -12774067710759862448430336280, 998405734739626267743789034], [-792673655174588555200375397996666, -8678602707959746961206919072280, 3265822178563035998486855520, -918692792101809053153717992], [29750548203745551393538254058768523, 41999847903737711664711552641505, -22165002664139403157727245860, 2386158638107205928604033407], [-60753657979451216185912857350626100, 5897960044172704669660058214270, -35787247958616632639936745144, 889126926770292653227244482], [22609744847327068871320219984332734, -39111383071073660872297498540396, -18798762349219179007895966416, 577398789802450590928505068], [43707686622327495178576706098791799, 40413148280223209887550074700009, -25372515218375445397250063172, 116116319188726053204513143], [-50571249429021927583578982046562659, 26805832467228256793979044812209, 29991511318475458883551012764, 1835725459004680261899506351], [31291489320070232626069223272199842, -2291284386351529304932044351600, -9576593844543995931963881536, -609590017945729329558868368], [99822235068380799251141212431312385, -28623815972897758917466133326693, -449772954453411812129510732, -36684641343222095406848379], [66012777976120706729677989367102952, 26709715265633181528073859826060, 9566226134845086831016329296, -1521780277528537262136673036], [-79946426550706822078290566837329615, -12681345261635924527668941911009, 61362824952412002295364018212, -543051030238866893091411327], [39041940636642521136190146085103426, -6727496991472464470892112637016, 153965259333208526830364056672, -1035598814947169401028933800], [-32843520813162563235520836584576928, -58533542260903790298291514670130, -1070091297624574311238087160, -949159021394758135726996110], [99637903944807857284575549509511750, 27178049833235240309756363583020, -136145766557027704030313291824, 871227063274369322504348244], [-35711857377347839299825862021934295, 55198453087583936521246287615455, -89285301275248000316044676060, 1366992622008336943060077505], [40882723728342848403971950659593026, -18357619185693073669450547532782, 95146705773693685193949259384, 4949824362675407428501823150], [26710927514426525082739926301649391, 47909123491060574531676063882997, -60542223626674822280504500468, 1127137076928394326932700651], [195569310241138842303498305171187432, -58136560015910305336509164022316, 40321471732204330525025018928, 2582843329491662373453409708], [18032776119423243378241240746859686, 16586248646184273885711489063016, 245025113151613941756186459488, -1533284604461494401464322408], [-72827334757577173509339542574635121, 3937995568898979178389748998711, 171397370817342148876589950916, 935898165319088394141824105], [-118717311999653840323122107449825834, -59204576583795054019261792604460, -54139112360655552658150278096, 1536810723194528434869014700], [79765311410983606197289505545473449, -34478751085076826494902593319353, 57681044685583501480023528580, 3266953517331988281605346649], [-178100052080742642825126809294228493, 26352376622104068913399361260315, -36885772761053659119513335372, -1345988987031695185487128315], [-124544982459053668065760929519604707, 72905835806837167679888862411873, -83245193340094295317246243108, 2192791621842596487219973631], [15412208853156522571165430971186394, 78720941714759159550300354621328, 202336909954269963045919961024, 764037279716647857960296048], [-90780337843089945733440331436084285, -13642783761491342602283932485331, 92183736275883216821101774892, 400223037671199672314254771], [-64448498688487470137011593544419456, -57093532886968499359002357580126, -68722302493662992981198949832, -6530751789760568037473926626], [116822936600059764702715237079292694, 49383838458947654150278906751302, -110811518408073790430267032024, 3801060835909536899175089658], [-116904621379762095816166026747316352, -55783890767597909757957877513978, -186913421231436246242165266904, 4080587461906782537411233082], [-65683958175306368101113062040966220, 117222156540367910677392441572736, 231933855673654288733940224, -351226733679640836901510528], [-31890390064813528293952769533874334, -28740258915369005748372651008082, 63336001291317328430274489480, 900721341178574010523940754], [-162533378485429532629657220375467640, -34742146763431776861456516769022, 277474862162742581303049566392, -68137684793924503066591810], [120247737751398872963245915650987295, -114661772143095629258697878749699, -59401771430575174663900138516, -1651417039557751140022198301], [-59098397042938680760200149007250898, 185101778181880108570199454221596, -190703736265099814298727018992, -3132394065278500388084599452], [-118638660318378402077825127482020746, -264372764169649853494244106416788, -237004149091220548755219713328, 4312754427765598479496712980], [-83721527110392109855342525272873829, -60176014787601264682442764290059, 14576284922497260483691281676, -1700318050420136887305328917], [-218218284033690975731427672926633272, 191618395436555158759238670440398, -18666805700888837580373270008, -1317148952068583980276689550], [-320852957614401841072535933742845605, 58711092352074831606749050185555, -36407726458986646905218248236, 3429861480554327998155245005], [79073669634049132034003533552156084, 472831958566757632176866615852, 124104939477003930606218388432, 3337541456194889580561203796], [498444041214652313892570890018803976, -67674240937315023821753757595412, -3795346568562787838265319984, 1425274301679504788126777492], [-280483371293467292923565593992797869, -80659098902353647034176580410973, -94255464571442899063202492780, 3664415930245437445244473725], [-2934011261092085337007863240482289, -87749673496280287397488869361847, 382467438908504635430061220668, -2839846734225825998560824553], [5572477388748907074809664650081399, 100513174145519558504870468575143, -428274122722574355994617067516, -2695007393697618907560481543], [-134796530029908488634878816393078118, -162161375264731966903132679952420, 65715204957368114500333443856, -1217564907515816377362216284], [214194766228927938324142972783949113, 90394543998586597535548525403143, -284020653246955300937781731452, -1216739610218127953265940071], [457684383852839691866641614234366952, 39189148338275301998777259609036, -328820168856660017287179962288, -784999684312742921062612044], [143461994852123161548368856636715452, -153180904972638788513483981297392, -115604181137968568165586660416, -8133425622394149849212866832], [-30787876201832234414244587903344162, -77900935492373464539852361924628, 107289231154428342888364115152, -741585976547619803172569964], [-128741999217283870150221307168799432, 280375734852084199818459267997690, 164802333619998098792231496152, -6169900450499698634179940922], [163878835266902331722538181846575063, 58755765317916869965796622247281, -99227803442727722404470421604, -2870786087696006661127507473], [361905763434224036670812177596472430, -45634641934592765204456651442580, -51918020911408666460796983600, 8575918599006443293295100436], [383173992563242618222314725556177044, 8303332570968850525913900475624, -303109890963005378454777669024, -4773198327256996125518001896], [689559457781497427665089890030710603, 84873202772634878998219808365737, 13051456461841306566130361788, 5321696898696952687004198327], [46391775104141568236580135884039363, -72413319267799587809859115826211, 454422534729465067540732397164, -7086290674622588002803432445], [85498263098323738227773172478317078, -184459188881196141035555952109692, -209851112076458767921576707216, -624272997547172012171671044], [434690292540894959518720517618587409, -35663900909646205815266776241281, -27488958376066653228082167388, -10669911729240488454775186911], [-102465184135065872113569678771042433, -135949457003754365424804460359177, 289784537166792621760713481412, 516076854685912849447057577], [269062491482948271181793185491581814, 34720773993495040168885567905590, -442210489470348012510047953816, -4747073808840330159332415990], [-272920198087604665389737906295641734, 73364648512266829835391572586790, -457191594697058122090953326680, -4520301755901954057128136934], [257664857695304389870150670711204478, -78456545529678182060503425998844, -246912446979526733883661794960, -8018066232066562332814472836], [-245414651407871352717462787320433490, -1541143431060311490582749247456, 671461578789682893432588034944, -11152550479864594900860142624], [128113232634656335460509526342472346, -289431010258912149503363292545536, -379095876208226196968898422784, 5188291103707880105958445568], [-142395501917758207809030401734114574, 445010033235675194025979788607360, -275315624159410556003701236224, 7937774392399834918123109504], [-369939576271718389810486796704449621, -79587955080902870841319551317517, -477569734464686461595736676524, 769447188903901925674697517], [-311988667617372884604619194204377907, 35318301320872265894721505286507, 22487637940025080333463650164, 10388751359767357620613507509], [221988357312541386348813334223030675, -422674133638847280832032214632045, 90591921404222401428787651796, -4256808913012605240084525171], [-368573727875082732103208919118195747, -192616705207025642584402231713985, 994397097845769901947979050404, 10104445787662486151595274593], [447284779427616138865877817049761319, -604030691619399869229636831600351, -519014988306936106603679308580, -3208567364150086818306743745], [-409471895206422361727492160206818871, 242434686671802427713062787536127, -388399332325736993032820452956, 7782828044550756428967429793], [-791235966614034855057129378585648025, 8027542272321405176423025775751, 340800978211915400295083975812, -7144062080323784090400733159], [21475026323257323657421449092217062, -16916943046468487625010919981794, 1160500324103545805935812053192, -4242387474811627489650881502], [504339946482009898927063385422371853, 392403766877211473750216817573507, -593754683775984729485516370924, -10052416063867447780842433123], [-617406644875965827562576522275328214, 272608119105348238420341615387096, 287570818413881994718719113632, 3926886839602294017523855144], [393229205420358971405686261442046370, 392174898489091444289042141329416, 935603497795434473821568674528, 8147219560277107823301583608], [774883654811731446152774609442753482, 247524830719729493980065338810186, 472967599483424014251067631000, -5911942344947974288221857930], [-123875383034916128587446240787895018, 933733392072442390728960299639798, 248687807373520080147038079592, -14141857632367835719714852278], [714566229866226032788762475099102608, 621403228646561417568877701100392, 410780931636190501365722004832, 603466473026668241258227608], [-180786711527086315850157050629776178, -376463837026279752107956055167092, 742347333812653575295875563088, 13015612272096293201987339508], [-175628906549648677798786513756638977, 188410536641144146098132996433817, -65728911671109232630597764356, -3861406812978807573609428025], [432972416317367177149218962781356168, 345452507060745755925574733015038, -1126311632564512743307068340408, -15450446935311682186932556990], [342788009224415944979797961828684075, 171984399623033034364233991660857, -1319304127520810229571809857668, -16073467169491168134167115481], [-482666439963718743388081986228741382, -446520602327468591044095182748864, -875336182815137393011717747968, 26889153457438124858351211712], [-176578112382129362977997124831922770, -502316853859151753681378970329728, 892533525966144809164027322880, -1620058460527357666691196288], [284606431726102858926816785797972515, 449851704841142285326670573307203, 553911642031869286014748838932, -18059670983959836210618172963], [-1231176215427193857621532109536429131, 132724847348424959495138051786043, -321746679156007465165296720844, 17238056880743936442123358693], [-1805233262888019615390881698033575201, 204405446087985637857047300757967, -109329910549947600266267573660, 15903795837480945551807702481], [309552610622367109869788208815983054, -94675666164289193140815706540388, -431526673049804179485143199728, -44271792299016761125523199004], [230569474524856843399605608793753583, 1654508506948806188356011656471105, 122544361049370902835120087900, -3963694213866649360603679713], [-842380952284761790296576266528145745, 443112197413304750162976512155767, -669805058192632180343660629308, -80266301038181508341794263], [-482487105766869064332398464209397422, 464409113231519894710053076994972, -978922789374604861039002606576, -45737089974245538564882235676], [1044080458275682721754730383804804872, 149004477630187079553587003310628, 147622130885804716211241197808, -16528250989877021774088777892], [-23960010514393727221497647942143308, -194210802053819583772467276859048, 1406844065795731424323501510816, 10999530524168964370385878184], [1906393176545162918440079514586098318, 374911496372499256580810040338660, 876860709519438578022801787376, -14740622333489207935444833124], [480824283461930273933630068244081894, -750408041652184755738964531593260, -2095421711269954706556381257680, -17536056734627028526826494036], [43775338057045409812077386051915130, -422480995914502869711224147173566, -1231572232589262622471306703432, -52961834607896318513032044674], [-466515377646555141995698261419753299, 216563055661409670260269300112575, -2266742769621175351665742337628, -23784860469025854655753648671], [356754532901874231878134835243148000, -1276098311859376496601960502911622, -134442413256228471921185582120, 5238255068649454849587720262], [-581867793187679485666071364936243382, 1398000414904914761340742067023224, 1309094064338169923624504122144, -12144071672692212961423740024], [774877870865641649424581485549891592, 300507770116450179880169627297144, -1768610294784723719151891343584, 20565657885901974881790457736], [1321974652843118214460060410980346701, -594264699999326648528777438836421, -13995766326544512535836596684, 44191456305141917820933242853], [-2427018193417466072025765170248578085, 374752791554745981319171483545019, 1683032596829863192069262249780, 21951704459781773382248523365], [238985375949719359898392875263102585, 613249749499092007313528034513487, -2158554051573320308774126931612, -4057433553295821880998973871], [2175038356634206168712687195123538902, 1341466178897121327705101053016764, -989588781964961914118710113392, 17684084152247512460351091652], [-207510167564971605159349638124222129, 988799724006631396344420748274095, 2481812002036780141600431061732, 31848685881745051500480548337], [-1888494098908245558353227266399000203, -1096701193161588666576643885408213, -961932351788816475586839506828, -12712600392679786162393395467], [-2115068193732695472320752581212209662, -767329250108134931792564931489758, 336616713630671415778619690808, 36105234746290078887389086622], [-59668021141752482920418325966780552, 642157545093818271452707592298466, -2568175930525801272288386532040, -4287441568246432576063622946], [-2177579402209065140938488994197984108, 1451394820553947604636431572397758, 2513392259446652355563140105288, 47351747421151328630599744642], [519073659175073995842242862786817896, -333350027434835570073838981314324, 3356267217335786043936424207568, -59934963101323288812956403820], [-847681462351724654452295957418045246, -1550351978636753332601849962866908, 305855528083894655661857325296, 44844944582963376220225220188], [-309470929419760857499787431085578425, 714729263056881070581714331619021, -969982719438453107971532248916, -10526934442494345048331434221], [-382628209907633581949297647793068552, 271170969136295535507485930150640, 506737466803905178199412520000, -76215737590827533949103143664]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_45_a_Hecke( : Kf := Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_45_22_a_g();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_45_22_a_g(:prec:=4)
    chi := MakeCharacter_45_a();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 22));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(2999) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_45_22_a_g();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function MakeNewformModSym_45_22_a_g( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_45_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,22,sign)));
    Vf := Kernel([<2,R![2065963121664, 1891862624, -3210438, -897, 1]>],Snew);
    return Vf;
end function;