ccgo_linux_mips64le.go 688 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088
  1. // Code generated for linux/mips64le by 'generator --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-macro=m_ --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -extended-errors --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build linux && mips64le
  3. // +build linux,mips64le
  4. package libz
  5. import (
  6. "reflect"
  7. "unsafe"
  8. "modernc.org/libc"
  9. )
  10. var (
  11. _ reflect.Type
  12. _ unsafe.Pointer
  13. )
  14. const m_BASE = 65521
  15. const m_NMAX = 5552
  16. const m_Z_NULL = 0
  17. const m__SC_LEVEL1_ICACHE_SIZE = 185
  18. const m__SC_UIO_MAXIOV = 60
  19. const m___FD_SETSIZE = 1024
  20. const m___SIZEOF_PTHREAD_ATTR_T = 56
  21. const m___SIZEOF_PTHREAD_BARRIERATTR_T = 4
  22. const m___SIZEOF_PTHREAD_BARRIER_T = 32
  23. const m___SIZEOF_PTHREAD_CONDATTR_T = 4
  24. const m___SIZEOF_PTHREAD_COND_T = 48
  25. const m___SIZEOF_PTHREAD_MUTEXATTR_T = 4
  26. const m___SIZEOF_PTHREAD_MUTEX_T = 40
  27. const m___SIZEOF_PTHREAD_RWLOCKATTR_T = 8
  28. const m___SIZEOF_PTHREAD_RWLOCK_T = 56
  29. type t__builtin_va_list = uintptr
  30. type t__predefined_size_t = uint64
  31. type t__predefined_wchar_t = int32
  32. type t__predefined_ptrdiff_t = int64
  33. type Tptrdiff_t = int64
  34. type Tsize_t = uint64
  35. type Twchar_t = int32
  36. type Tmax_align_t = struct {
  37. F__max_align_ll int64
  38. F__max_align_ld float64
  39. }
  40. type Tz_size_t = uint64
  41. type TByte = uint8
  42. type TuInt = uint32
  43. type TuLong = uint64
  44. type TBytef = uint8
  45. type Tcharf = int8
  46. type Tintf = int32
  47. type TuIntf = uint32
  48. type TuLongf = uint64
  49. type Tvoidpc = uintptr
  50. type Tvoidpf = uintptr
  51. type Tvoidp = uintptr
  52. type Tz_crc_t = uint32
  53. type t__u_char = uint8
  54. type t__u_short = uint16
  55. type t__u_int = uint32
  56. type t__u_long = uint64
  57. type t__int8_t = int8
  58. type t__uint8_t = uint8
  59. type t__int16_t = int16
  60. type t__uint16_t = uint16
  61. type t__int32_t = int32
  62. type t__uint32_t = uint32
  63. type t__int64_t = int64
  64. type t__uint64_t = uint64
  65. type t__int_least8_t = int8
  66. type t__uint_least8_t = uint8
  67. type t__int_least16_t = int16
  68. type t__uint_least16_t = uint16
  69. type t__int_least32_t = int32
  70. type t__uint_least32_t = uint32
  71. type t__int_least64_t = int64
  72. type t__uint_least64_t = uint64
  73. type t__quad_t = int64
  74. type t__u_quad_t = uint64
  75. type t__intmax_t = int64
  76. type t__uintmax_t = uint64
  77. type t__dev_t = uint64
  78. type t__uid_t = uint32
  79. type t__gid_t = uint32
  80. type t__ino_t = uint64
  81. type t__ino64_t = uint64
  82. type t__mode_t = uint32
  83. type t__nlink_t = uint64
  84. type t__off_t = int64
  85. type t__off64_t = int64
  86. type t__pid_t = int32
  87. type t__fsid_t = struct {
  88. F__val [2]int32
  89. }
  90. type t__clock_t = int64
  91. type t__rlim_t = uint64
  92. type t__rlim64_t = uint64
  93. type t__id_t = uint32
  94. type t__time_t = int64
  95. type t__useconds_t = uint32
  96. type t__suseconds_t = int64
  97. type t__daddr_t = int32
  98. type t__key_t = int32
  99. type t__clockid_t = int32
  100. type t__timer_t = uintptr
  101. type t__blksize_t = int64
  102. type t__blkcnt_t = int64
  103. type t__blkcnt64_t = int64
  104. type t__fsblkcnt_t = uint64
  105. type t__fsblkcnt64_t = uint64
  106. type t__fsfilcnt_t = uint64
  107. type t__fsfilcnt64_t = uint64
  108. type t__fsword_t = int64
  109. type t__ssize_t = int64
  110. type t__syscall_slong_t = int64
  111. type t__syscall_ulong_t = uint64
  112. type t__loff_t = int64
  113. type t__caddr_t = uintptr
  114. type t__intptr_t = int64
  115. type t__socklen_t = uint32
  116. type t__sig_atomic_t = int32
  117. type Tu_char = uint8
  118. type Tu_short = uint16
  119. type Tu_int = uint32
  120. type Tu_long = uint64
  121. type Tquad_t = int64
  122. type Tu_quad_t = uint64
  123. type Tfsid_t = struct {
  124. F__val [2]int32
  125. }
  126. type Tloff_t = int64
  127. type Tino_t = uint64
  128. type Tino64_t = uint64
  129. type Tdev_t = uint64
  130. type Tgid_t = uint32
  131. type Tmode_t = uint32
  132. type Tnlink_t = uint64
  133. type Tuid_t = uint32
  134. type Toff_t = int64
  135. type Toff64_t = int64
  136. type Tpid_t = int32
  137. type Tid_t = uint32
  138. type Tssize_t = int64
  139. type Tdaddr_t = int32
  140. type Tcaddr_t = uintptr
  141. type Tkey_t = int32
  142. type Tclock_t = int64
  143. type Tclockid_t = int32
  144. type Ttime_t = int64
  145. type Ttimer_t = uintptr
  146. type Tulong = uint64
  147. type Tushort = uint16
  148. type Tuint = uint32
  149. type Tint8_t = int8
  150. type Tint16_t = int16
  151. type Tint32_t = int32
  152. type Tint64_t = int64
  153. type Tu_int8_t = uint8
  154. type Tu_int16_t = uint16
  155. type Tu_int32_t = uint32
  156. type Tu_int64_t = uint64
  157. type Tregister_t = int32
  158. type t__sigset_t = struct {
  159. F__val [16]uint64
  160. }
  161. type Tsigset_t = struct {
  162. F__val [16]uint64
  163. }
  164. type Ttimeval = struct {
  165. Ftv_sec t__time_t
  166. Ftv_usec t__suseconds_t
  167. }
  168. type Ttimespec = struct {
  169. Ftv_sec t__time_t
  170. Ftv_nsec t__syscall_slong_t
  171. }
  172. type Tsuseconds_t = int64
  173. type t__fd_mask = int64
  174. type Tfd_set = struct {
  175. F__fds_bits [16]t__fd_mask
  176. }
  177. type Tfd_mask = int64
  178. type Tblksize_t = int64
  179. type Tblkcnt_t = int64
  180. type Tfsblkcnt_t = uint64
  181. type Tfsfilcnt_t = uint64
  182. type Tblkcnt64_t = int64
  183. type Tfsblkcnt64_t = uint64
  184. type Tfsfilcnt64_t = uint64
  185. type t__pthread_list_t = struct {
  186. F__prev uintptr
  187. F__next uintptr
  188. }
  189. type t__pthread_internal_list = t__pthread_list_t
  190. type t__pthread_slist_t = struct {
  191. F__next uintptr
  192. }
  193. type t__pthread_internal_slist = t__pthread_slist_t
  194. type t__pthread_mutex_s = struct {
  195. F__lock int32
  196. F__count uint32
  197. F__owner int32
  198. F__nusers uint32
  199. F__kind int32
  200. F__spins int32
  201. F__list t__pthread_list_t
  202. }
  203. type t__pthread_rwlock_arch_t = struct {
  204. F__readers uint32
  205. F__writers uint32
  206. F__wrphase_futex uint32
  207. F__writers_futex uint32
  208. F__pad3 uint32
  209. F__pad4 uint32
  210. F__cur_writer int32
  211. F__shared int32
  212. F__pad1 uint64
  213. F__pad2 uint64
  214. F__flags uint32
  215. }
  216. type t__pthread_cond_s = struct {
  217. F__ccgo0_0 struct {
  218. F__wseq32 [0]struct {
  219. F__low uint32
  220. F__high uint32
  221. }
  222. F__wseq uint64
  223. }
  224. F__ccgo1_8 struct {
  225. F__g1_start32 [0]struct {
  226. F__low uint32
  227. F__high uint32
  228. }
  229. F__g1_start uint64
  230. }
  231. F__g_refs [2]uint32
  232. F__g_size [2]uint32
  233. F__g1_orig_size uint32
  234. F__wrefs uint32
  235. F__g_signals [2]uint32
  236. }
  237. type Tpthread_t = uint64
  238. type Tpthread_mutexattr_t = struct {
  239. F__align [0]int32
  240. F__size [4]int8
  241. }
  242. type Tpthread_condattr_t = struct {
  243. F__align [0]int32
  244. F__size [4]int8
  245. }
  246. type Tpthread_key_t = uint32
  247. type Tpthread_once_t = int32
  248. type Tpthread_attr_t1 = struct {
  249. F__align [0]int64
  250. F__size [56]int8
  251. }
  252. type Tpthread_attr_t = struct {
  253. F__align [0]int64
  254. F__size [56]int8
  255. }
  256. type Tpthread_mutex_t = struct {
  257. F__size [0][40]int8
  258. F__align [0]int64
  259. F__data t__pthread_mutex_s
  260. }
  261. type Tpthread_cond_t = struct {
  262. F__size [0][48]int8
  263. F__align [0]int64
  264. F__data t__pthread_cond_s
  265. }
  266. type Tpthread_rwlock_t = struct {
  267. F__size [0][56]int8
  268. F__align [0]int64
  269. F__data t__pthread_rwlock_arch_t
  270. }
  271. type Tpthread_rwlockattr_t = struct {
  272. F__align [0]int64
  273. F__size [8]int8
  274. }
  275. type Tpthread_spinlock_t = int32
  276. type Tpthread_barrier_t = struct {
  277. F__align [0]int64
  278. F__size [32]int8
  279. }
  280. type Tpthread_barrierattr_t = struct {
  281. F__align [0]int32
  282. F__size [4]int8
  283. }
  284. type t__gnuc_va_list = uintptr
  285. type Tva_list = uintptr
  286. type Tuseconds_t = uint32
  287. type Tintptr_t = int64
  288. type Tsocklen_t = uint32
  289. const __PC_LINK_MAX = 0
  290. const __PC_MAX_CANON = 1
  291. const __PC_MAX_INPUT = 2
  292. const __PC_NAME_MAX = 3
  293. const __PC_PATH_MAX = 4
  294. const __PC_PIPE_BUF = 5
  295. const __PC_CHOWN_RESTRICTED = 6
  296. const __PC_NO_TRUNC = 7
  297. const __PC_VDISABLE = 8
  298. const __PC_SYNC_IO = 9
  299. const __PC_ASYNC_IO = 10
  300. const __PC_PRIO_IO = 11
  301. const __PC_SOCK_MAXBUF = 12
  302. const __PC_FILESIZEBITS = 13
  303. const __PC_REC_INCR_XFER_SIZE = 14
  304. const __PC_REC_MAX_XFER_SIZE = 15
  305. const __PC_REC_MIN_XFER_SIZE = 16
  306. const __PC_REC_XFER_ALIGN = 17
  307. const __PC_ALLOC_SIZE_MIN = 18
  308. const __PC_SYMLINK_MAX = 19
  309. const __PC_2_SYMLINKS = 20
  310. const __SC_ARG_MAX = 0
  311. const __SC_CHILD_MAX = 1
  312. const __SC_CLK_TCK = 2
  313. const __SC_NGROUPS_MAX = 3
  314. const __SC_OPEN_MAX = 4
  315. const __SC_STREAM_MAX = 5
  316. const __SC_TZNAME_MAX = 6
  317. const __SC_JOB_CONTROL = 7
  318. const __SC_SAVED_IDS = 8
  319. const __SC_REALTIME_SIGNALS = 9
  320. const __SC_PRIORITY_SCHEDULING = 10
  321. const __SC_TIMERS = 11
  322. const __SC_ASYNCHRONOUS_IO = 12
  323. const __SC_PRIORITIZED_IO = 13
  324. const __SC_SYNCHRONIZED_IO = 14
  325. const __SC_FSYNC = 15
  326. const __SC_MAPPED_FILES = 16
  327. const __SC_MEMLOCK = 17
  328. const __SC_MEMLOCK_RANGE = 18
  329. const __SC_MEMORY_PROTECTION = 19
  330. const __SC_MESSAGE_PASSING = 20
  331. const __SC_SEMAPHORES = 21
  332. const __SC_SHARED_MEMORY_OBJECTS = 22
  333. const __SC_AIO_LISTIO_MAX = 23
  334. const __SC_AIO_MAX = 24
  335. const __SC_AIO_PRIO_DELTA_MAX = 25
  336. const __SC_DELAYTIMER_MAX = 26
  337. const __SC_MQ_OPEN_MAX = 27
  338. const __SC_MQ_PRIO_MAX = 28
  339. const __SC_VERSION = 29
  340. const __SC_PAGESIZE = 30
  341. const __SC_RTSIG_MAX = 31
  342. const __SC_SEM_NSEMS_MAX = 32
  343. const __SC_SEM_VALUE_MAX = 33
  344. const __SC_SIGQUEUE_MAX = 34
  345. const __SC_TIMER_MAX = 35
  346. const __SC_BC_BASE_MAX = 36
  347. const __SC_BC_DIM_MAX = 37
  348. const __SC_BC_SCALE_MAX = 38
  349. const __SC_BC_STRING_MAX = 39
  350. const __SC_COLL_WEIGHTS_MAX = 40
  351. const __SC_EQUIV_CLASS_MAX = 41
  352. const __SC_EXPR_NEST_MAX = 42
  353. const __SC_LINE_MAX = 43
  354. const __SC_RE_DUP_MAX = 44
  355. const __SC_CHARCLASS_NAME_MAX = 45
  356. const __SC_2_VERSION = 46
  357. const __SC_2_C_BIND = 47
  358. const __SC_2_C_DEV = 48
  359. const __SC_2_FORT_DEV = 49
  360. const __SC_2_FORT_RUN = 50
  361. const __SC_2_SW_DEV = 51
  362. const __SC_2_LOCALEDEF = 52
  363. const __SC_PII = 53
  364. const __SC_PII_XTI = 54
  365. const __SC_PII_SOCKET = 55
  366. const __SC_PII_INTERNET = 56
  367. const __SC_PII_OSI = 57
  368. const __SC_POLL = 58
  369. const __SC_SELECT = 59
  370. const __SC_UIO_MAXIOV = 60
  371. const __SC_IOV_MAX = 60
  372. const __SC_PII_INTERNET_STREAM = 61
  373. const __SC_PII_INTERNET_DGRAM = 62
  374. const __SC_PII_OSI_COTS = 63
  375. const __SC_PII_OSI_CLTS = 64
  376. const __SC_PII_OSI_M = 65
  377. const __SC_T_IOV_MAX = 66
  378. const __SC_THREADS = 67
  379. const __SC_THREAD_SAFE_FUNCTIONS = 68
  380. const __SC_GETGR_R_SIZE_MAX = 69
  381. const __SC_GETPW_R_SIZE_MAX = 70
  382. const __SC_LOGIN_NAME_MAX = 71
  383. const __SC_TTY_NAME_MAX = 72
  384. const __SC_THREAD_DESTRUCTOR_ITERATIONS = 73
  385. const __SC_THREAD_KEYS_MAX = 74
  386. const __SC_THREAD_STACK_MIN = 75
  387. const __SC_THREAD_THREADS_MAX = 76
  388. const __SC_THREAD_ATTR_STACKADDR = 77
  389. const __SC_THREAD_ATTR_STACKSIZE = 78
  390. const __SC_THREAD_PRIORITY_SCHEDULING = 79
  391. const __SC_THREAD_PRIO_INHERIT = 80
  392. const __SC_THREAD_PRIO_PROTECT = 81
  393. const __SC_THREAD_PROCESS_SHARED = 82
  394. const __SC_NPROCESSORS_CONF = 83
  395. const __SC_NPROCESSORS_ONLN = 84
  396. const __SC_PHYS_PAGES = 85
  397. const __SC_AVPHYS_PAGES = 86
  398. const __SC_ATEXIT_MAX = 87
  399. const __SC_PASS_MAX = 88
  400. const __SC_XOPEN_VERSION = 89
  401. const __SC_XOPEN_XCU_VERSION = 90
  402. const __SC_XOPEN_UNIX = 91
  403. const __SC_XOPEN_CRYPT = 92
  404. const __SC_XOPEN_ENH_I18N = 93
  405. const __SC_XOPEN_SHM = 94
  406. const __SC_2_CHAR_TERM = 95
  407. const __SC_2_C_VERSION = 96
  408. const __SC_2_UPE = 97
  409. const __SC_XOPEN_XPG2 = 98
  410. const __SC_XOPEN_XPG3 = 99
  411. const __SC_XOPEN_XPG4 = 100
  412. const __SC_CHAR_BIT = 101
  413. const __SC_CHAR_MAX = 102
  414. const __SC_CHAR_MIN = 103
  415. const __SC_INT_MAX = 104
  416. const __SC_INT_MIN = 105
  417. const __SC_LONG_BIT = 106
  418. const __SC_WORD_BIT = 107
  419. const __SC_MB_LEN_MAX = 108
  420. const __SC_NZERO = 109
  421. const __SC_SSIZE_MAX = 110
  422. const __SC_SCHAR_MAX = 111
  423. const __SC_SCHAR_MIN = 112
  424. const __SC_SHRT_MAX = 113
  425. const __SC_SHRT_MIN = 114
  426. const __SC_UCHAR_MAX = 115
  427. const __SC_UINT_MAX = 116
  428. const __SC_ULONG_MAX = 117
  429. const __SC_USHRT_MAX = 118
  430. const __SC_NL_ARGMAX = 119
  431. const __SC_NL_LANGMAX = 120
  432. const __SC_NL_MSGMAX = 121
  433. const __SC_NL_NMAX = 122
  434. const __SC_NL_SETMAX = 123
  435. const __SC_NL_TEXTMAX = 124
  436. const __SC_XBS5_ILP32_OFF32 = 125
  437. const __SC_XBS5_ILP32_OFFBIG = 126
  438. const __SC_XBS5_LP64_OFF64 = 127
  439. const __SC_XBS5_LPBIG_OFFBIG = 128
  440. const __SC_XOPEN_LEGACY = 129
  441. const __SC_XOPEN_REALTIME = 130
  442. const __SC_XOPEN_REALTIME_THREADS = 131
  443. const __SC_ADVISORY_INFO = 132
  444. const __SC_BARRIERS = 133
  445. const __SC_BASE = 134
  446. const __SC_C_LANG_SUPPORT = 135
  447. const __SC_C_LANG_SUPPORT_R = 136
  448. const __SC_CLOCK_SELECTION = 137
  449. const __SC_CPUTIME = 138
  450. const __SC_THREAD_CPUTIME = 139
  451. const __SC_DEVICE_IO = 140
  452. const __SC_DEVICE_SPECIFIC = 141
  453. const __SC_DEVICE_SPECIFIC_R = 142
  454. const __SC_FD_MGMT = 143
  455. const __SC_FIFO = 144
  456. const __SC_PIPE = 145
  457. const __SC_FILE_ATTRIBUTES = 146
  458. const __SC_FILE_LOCKING = 147
  459. const __SC_FILE_SYSTEM = 148
  460. const __SC_MONOTONIC_CLOCK = 149
  461. const __SC_MULTI_PROCESS = 150
  462. const __SC_SINGLE_PROCESS = 151
  463. const __SC_NETWORKING = 152
  464. const __SC_READER_WRITER_LOCKS = 153
  465. const __SC_SPIN_LOCKS = 154
  466. const __SC_REGEXP = 155
  467. const __SC_REGEX_VERSION = 156
  468. const __SC_SHELL = 157
  469. const __SC_SIGNALS = 158
  470. const __SC_SPAWN = 159
  471. const __SC_SPORADIC_SERVER = 160
  472. const __SC_THREAD_SPORADIC_SERVER = 161
  473. const __SC_SYSTEM_DATABASE = 162
  474. const __SC_SYSTEM_DATABASE_R = 163
  475. const __SC_TIMEOUTS = 164
  476. const __SC_TYPED_MEMORY_OBJECTS = 165
  477. const __SC_USER_GROUPS = 166
  478. const __SC_USER_GROUPS_R = 167
  479. const __SC_2_PBS = 168
  480. const __SC_2_PBS_ACCOUNTING = 169
  481. const __SC_2_PBS_LOCATE = 170
  482. const __SC_2_PBS_MESSAGE = 171
  483. const __SC_2_PBS_TRACK = 172
  484. const __SC_SYMLOOP_MAX = 173
  485. const __SC_STREAMS = 174
  486. const __SC_2_PBS_CHECKPOINT = 175
  487. const __SC_V6_ILP32_OFF32 = 176
  488. const __SC_V6_ILP32_OFFBIG = 177
  489. const __SC_V6_LP64_OFF64 = 178
  490. const __SC_V6_LPBIG_OFFBIG = 179
  491. const __SC_HOST_NAME_MAX = 180
  492. const __SC_TRACE = 181
  493. const __SC_TRACE_EVENT_FILTER = 182
  494. const __SC_TRACE_INHERIT = 183
  495. const __SC_TRACE_LOG = 184
  496. const __SC_LEVEL1_ICACHE_SIZE = 185
  497. const __SC_LEVEL1_ICACHE_ASSOC = 186
  498. const __SC_LEVEL1_ICACHE_LINESIZE = 187
  499. const __SC_LEVEL1_DCACHE_SIZE = 188
  500. const __SC_LEVEL1_DCACHE_ASSOC = 189
  501. const __SC_LEVEL1_DCACHE_LINESIZE = 190
  502. const __SC_LEVEL2_CACHE_SIZE = 191
  503. const __SC_LEVEL2_CACHE_ASSOC = 192
  504. const __SC_LEVEL2_CACHE_LINESIZE = 193
  505. const __SC_LEVEL3_CACHE_SIZE = 194
  506. const __SC_LEVEL3_CACHE_ASSOC = 195
  507. const __SC_LEVEL3_CACHE_LINESIZE = 196
  508. const __SC_LEVEL4_CACHE_SIZE = 197
  509. const __SC_LEVEL4_CACHE_ASSOC = 198
  510. const __SC_LEVEL4_CACHE_LINESIZE = 199
  511. const __SC_IPV6 = 235
  512. const __SC_RAW_SOCKETS = 236
  513. const __SC_V7_ILP32_OFF32 = 237
  514. const __SC_V7_ILP32_OFFBIG = 238
  515. const __SC_V7_LP64_OFF64 = 239
  516. const __SC_V7_LPBIG_OFFBIG = 240
  517. const __SC_SS_REPL_MAX = 241
  518. const __SC_TRACE_EVENT_NAME_MAX = 242
  519. const __SC_TRACE_NAME_MAX = 243
  520. const __SC_TRACE_SYS_MAX = 244
  521. const __SC_TRACE_USER_EVENT_MAX = 245
  522. const __SC_XOPEN_STREAMS = 246
  523. const __SC_THREAD_ROBUST_PRIO_INHERIT = 247
  524. const __SC_THREAD_ROBUST_PRIO_PROTECT = 248
  525. const __CS_PATH = 0
  526. const __CS_V6_WIDTH_RESTRICTED_ENVS = 1
  527. const __CS_GNU_LIBC_VERSION = 2
  528. const __CS_GNU_LIBPTHREAD_VERSION = 3
  529. const __CS_V5_WIDTH_RESTRICTED_ENVS = 4
  530. const __CS_V7_WIDTH_RESTRICTED_ENVS = 5
  531. const __CS_LFS_CFLAGS = 1000
  532. const __CS_LFS_LDFLAGS = 1001
  533. const __CS_LFS_LIBS = 1002
  534. const __CS_LFS_LINTFLAGS = 1003
  535. const __CS_LFS64_CFLAGS = 1004
  536. const __CS_LFS64_LDFLAGS = 1005
  537. const __CS_LFS64_LIBS = 1006
  538. const __CS_LFS64_LINTFLAGS = 1007
  539. const __CS_XBS5_ILP32_OFF32_CFLAGS = 1100
  540. const __CS_XBS5_ILP32_OFF32_LDFLAGS = 1101
  541. const __CS_XBS5_ILP32_OFF32_LIBS = 1102
  542. const __CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103
  543. const __CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104
  544. const __CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105
  545. const __CS_XBS5_ILP32_OFFBIG_LIBS = 1106
  546. const __CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107
  547. const __CS_XBS5_LP64_OFF64_CFLAGS = 1108
  548. const __CS_XBS5_LP64_OFF64_LDFLAGS = 1109
  549. const __CS_XBS5_LP64_OFF64_LIBS = 1110
  550. const __CS_XBS5_LP64_OFF64_LINTFLAGS = 1111
  551. const __CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112
  552. const __CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113
  553. const __CS_XBS5_LPBIG_OFFBIG_LIBS = 1114
  554. const __CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115
  555. const __CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
  556. const __CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
  557. const __CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
  558. const __CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
  559. const __CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
  560. const __CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
  561. const __CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
  562. const __CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
  563. const __CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
  564. const __CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
  565. const __CS_POSIX_V6_LP64_OFF64_LIBS = 1126
  566. const __CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
  567. const __CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
  568. const __CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
  569. const __CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
  570. const __CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
  571. const __CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
  572. const __CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
  573. const __CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
  574. const __CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
  575. const __CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
  576. const __CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
  577. const __CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
  578. const __CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
  579. const __CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
  580. const __CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
  581. const __CS_POSIX_V7_LP64_OFF64_LIBS = 1142
  582. const __CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
  583. const __CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
  584. const __CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
  585. const __CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
  586. const __CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
  587. const __CS_V6_ENV = 1148
  588. const __CS_V7_ENV = 1149
  589. type Talloc_func = uintptr
  590. type Tfree_func = uintptr
  591. type Tz_stream = struct {
  592. Fnext_in uintptr
  593. Favail_in TuInt
  594. Ftotal_in TuLong
  595. Fnext_out uintptr
  596. Favail_out TuInt
  597. Ftotal_out TuLong
  598. Fmsg uintptr
  599. Fstate uintptr
  600. Fzalloc Talloc_func
  601. Fzfree Tfree_func
  602. Fopaque Tvoidpf
  603. Fdata_type int32
  604. Fadler TuLong
  605. Freserved TuLong
  606. }
  607. type Tz_stream_s = Tz_stream
  608. type Tz_streamp = uintptr
  609. type Tgz_header = struct {
  610. Ftext int32
  611. Ftime TuLong
  612. Fxflags int32
  613. Fos int32
  614. Fextra uintptr
  615. Fextra_len TuInt
  616. Fextra_max TuInt
  617. Fname uintptr
  618. Fname_max TuInt
  619. Fcomment uintptr
  620. Fcomm_max TuInt
  621. Fhcrc int32
  622. Fdone int32
  623. }
  624. type Tgz_header_s = Tgz_header
  625. type Tgz_headerp = uintptr
  626. type Tin_func = uintptr
  627. type Tout_func = uintptr
  628. type TgzFile = uintptr
  629. type TgzFile_s = struct {
  630. Fhave uint32
  631. Fnext uintptr
  632. Fpos Toff64_t
  633. }
  634. type t__locale_struct = struct {
  635. F__locales [13]uintptr
  636. F__ctype_b uintptr
  637. F__ctype_tolower uintptr
  638. F__ctype_toupper uintptr
  639. F__names [13]uintptr
  640. }
  641. type t__locale_t = uintptr
  642. type Tlocale_t = uintptr
  643. type Tidtype_t = int32
  644. const _P_ALL = 0
  645. const _P_PID = 1
  646. const _P_PGID = 2
  647. type Tdiv_t = struct {
  648. Fquot int32
  649. Frem int32
  650. }
  651. type Tldiv_t = struct {
  652. Fquot int64
  653. Frem int64
  654. }
  655. type Tlldiv_t = struct {
  656. Fquot int64
  657. Frem int64
  658. }
  659. type Trandom_data = struct {
  660. Ffptr uintptr
  661. Frptr uintptr
  662. Fstate uintptr
  663. Frand_type int32
  664. Frand_deg int32
  665. Frand_sep int32
  666. Fend_ptr uintptr
  667. }
  668. type Tdrand48_data = struct {
  669. F__x [3]uint16
  670. F__old_x [3]uint16
  671. F__c uint16
  672. F__init uint16
  673. F__a uint64
  674. }
  675. type t__compar_fn_t = uintptr
  676. type Tuch = uint8
  677. type Tuchf = uint8
  678. type Tush = uint16
  679. type Tushf = uint16
  680. type Tulg = uint64
  681. /* Reverse the bytes in a 32-bit value */
  682. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  683. /* use NO_DIVIDE if your processor does not do division in hardware --
  684. try it both ways to see which is faster */
  685. // C documentation
  686. //
  687. // /* ========================================================================= */
  688. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  689. var n, v3 uint32
  690. var sum2 uint64
  691. var v1, v5 Tz_size_t
  692. var v2, v6 uintptr
  693. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  694. /* split Adler-32 into component sums */
  695. sum2 = adler >> libc.Int32FromInt32(16) & uint64(0xffff)
  696. adler &= uint64(0xffff)
  697. /* in case user likes doing a byte at a time, keep it fast */
  698. if len1 == uint64(1) {
  699. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  700. if adler >= uint64(65521) {
  701. adler -= uint64(65521)
  702. }
  703. sum2 += adler
  704. if sum2 >= uint64(65521) {
  705. sum2 -= uint64(65521)
  706. }
  707. return adler | sum2<<int32(16)
  708. }
  709. /* initial Adler-32 value (deferred check for len == 1 speed) */
  710. if buf == uintptr(m_Z_NULL) {
  711. return uint64(1)
  712. }
  713. /* in case short lengths are provided, keep it somewhat fast */
  714. if len1 < uint64(16) {
  715. for {
  716. v1 = len1
  717. len1--
  718. if !(v1 != 0) {
  719. break
  720. }
  721. v2 = buf
  722. buf++
  723. adler += uint64(*(*TBytef)(unsafe.Pointer(v2)))
  724. sum2 += adler
  725. }
  726. if adler >= uint64(65521) {
  727. adler -= uint64(65521)
  728. }
  729. sum2 %= uint64(65521) /* only added so many BASE's */
  730. return adler | sum2<<int32(16)
  731. }
  732. /* do length NMAX blocks -- requires just one modulo operation */
  733. for len1 >= uint64(m_NMAX) {
  734. len1 -= uint64(m_NMAX)
  735. n = uint32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  736. for {
  737. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  738. sum2 += adler
  739. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  740. sum2 += adler
  741. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  742. sum2 += adler
  743. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  744. sum2 += adler
  745. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  746. sum2 += adler
  747. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  748. sum2 += adler
  749. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  750. sum2 += adler
  751. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  752. sum2 += adler
  753. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  754. sum2 += adler
  755. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  756. sum2 += adler
  757. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  758. sum2 += adler
  759. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  760. sum2 += adler
  761. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  762. sum2 += adler
  763. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  764. sum2 += adler
  765. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  766. sum2 += adler
  767. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  768. sum2 += adler /* 16 sums unrolled */
  769. buf += uintptr(16)
  770. goto _4
  771. _4:
  772. n--
  773. v3 = n
  774. if !(v3 != 0) {
  775. break
  776. }
  777. }
  778. adler %= uint64(65521)
  779. sum2 %= uint64(65521)
  780. }
  781. /* do remaining bytes (less than NMAX, still just one modulo) */
  782. if len1 != 0 { /* avoid modulos if none remaining */
  783. for len1 >= uint64(16) {
  784. len1 -= uint64(16)
  785. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  786. sum2 += adler
  787. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  788. sum2 += adler
  789. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  790. sum2 += adler
  791. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  792. sum2 += adler
  793. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  794. sum2 += adler
  795. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  796. sum2 += adler
  797. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  798. sum2 += adler
  799. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  800. sum2 += adler
  801. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  802. sum2 += adler
  803. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  804. sum2 += adler
  805. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  806. sum2 += adler
  807. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  808. sum2 += adler
  809. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  810. sum2 += adler
  811. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  812. sum2 += adler
  813. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  814. sum2 += adler
  815. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  816. sum2 += adler
  817. buf += uintptr(16)
  818. }
  819. for {
  820. v5 = len1
  821. len1--
  822. if !(v5 != 0) {
  823. break
  824. }
  825. v6 = buf
  826. buf++
  827. adler += uint64(*(*TBytef)(unsafe.Pointer(v6)))
  828. sum2 += adler
  829. }
  830. adler %= uint64(65521)
  831. sum2 %= uint64(65521)
  832. }
  833. /* return recombined sums */
  834. return adler | sum2<<int32(16)
  835. }
  836. // C documentation
  837. //
  838. // /* ========================================================================= */
  839. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  840. return Xadler32_z(tls, adler, buf, uint64(uint64(len1)))
  841. }
  842. // C documentation
  843. //
  844. // /* ========================================================================= */
  845. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff64_t) (r TuLong) {
  846. var rem uint32
  847. var sum1, sum2 uint64
  848. _, _, _ = rem, sum1, sum2
  849. /* for negative len, return invalid adler32 as a clue for debugging */
  850. if len2 < 0 {
  851. return uint64(0xffffffff)
  852. }
  853. /* the derivation of this formula is left as an exercise for the reader */
  854. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  855. rem = uint32(uint32(len2))
  856. sum1 = adler1 & uint64(0xffff)
  857. sum2 = uint64(uint64(rem)) * sum1
  858. sum2 %= uint64(65521)
  859. sum1 += adler2&uint64(0xffff) + uint64(65521) - uint64(1)
  860. sum2 += adler1>>libc.Int32FromInt32(16)&uint64(0xffff) + adler2>>libc.Int32FromInt32(16)&uint64(0xffff) + uint64(65521) - uint64(uint64(rem))
  861. if sum1 >= uint64(65521) {
  862. sum1 -= uint64(65521)
  863. }
  864. if sum1 >= uint64(65521) {
  865. sum1 -= uint64(65521)
  866. }
  867. if sum2 >= libc.Uint64FromUint32(65521)<<libc.Int32FromInt32(1) {
  868. sum2 -= libc.Uint64FromUint32(65521) << libc.Int32FromInt32(1)
  869. }
  870. if sum2 >= uint64(65521) {
  871. sum2 -= uint64(65521)
  872. }
  873. return sum1 | sum2<<int32(16)
  874. }
  875. // C documentation
  876. //
  877. // /* ========================================================================= */
  878. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  879. return _adler32_combine_(tls, adler1, adler2, len2)
  880. }
  881. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff64_t) (r TuLong) {
  882. return _adler32_combine_(tls, adler1, adler2, len2)
  883. }
  884. const m_N = 5
  885. const m_POLY = 3988292384
  886. const m_W = 4
  887. /* Reverse the bytes in a 32-bit value */
  888. /*
  889. A CRC of a message is computed on N braids of words in the message, where
  890. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  891. running sparse CRCs are calculated respectively on each braid, at these
  892. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  893. This is done starting at a word boundary, and continues until as many blocks
  894. of N * W bytes as are available have been processed. The results are combined
  895. into a single CRC at the end. For this code, N must be in the range 1..6 and
  896. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  897. more #if blocks, extending the patterns apparent in the code. In addition,
  898. crc32.h would need to be regenerated, if the maximum N value is increased.
  899. N and W are chosen empirically by benchmarking the execution time on a given
  900. processor. The choices for N and W below were based on testing on Intel Kaby
  901. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  902. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  903. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  904. They were all tested with either gcc or clang, all using the -O3 optimization
  905. level. Your mileage may vary.
  906. */
  907. /* Define N */
  908. /*
  909. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  910. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  911. that bytes are eight bits.
  912. */
  913. // C documentation
  914. //
  915. // /*
  916. // Define W and the associated z_word_t type. If W is not defined, then a
  917. // braided calculation is not used, and the associated tables and code are not
  918. // compiled.
  919. // */
  920. type Tz_word_t = uint32
  921. /* If available, use the ARM processor CRC32 instruction. */
  922. // C documentation
  923. //
  924. // /*
  925. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  926. // self-respecting compiler will optimize this to a single machine byte-swap
  927. // instruction, if one is available. This assumes that word_t is either 32 bits
  928. // or 64 bits.
  929. // */
  930. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  931. return word&uint32(0xff000000)>>int32(24) | word&uint32(0xff0000)>>int32(8) | word&uint32(0xff00)<<int32(8) | word&uint32(0xff)<<int32(24)
  932. }
  933. var _crc_table = [256]Tz_crc_t{
  934. 1: uint32(0x77073096),
  935. 2: uint32(0xee0e612c),
  936. 3: uint32(0x990951ba),
  937. 4: uint32(0x076dc419),
  938. 5: uint32(0x706af48f),
  939. 6: uint32(0xe963a535),
  940. 7: uint32(0x9e6495a3),
  941. 8: uint32(0x0edb8832),
  942. 9: uint32(0x79dcb8a4),
  943. 10: uint32(0xe0d5e91e),
  944. 11: uint32(0x97d2d988),
  945. 12: uint32(0x09b64c2b),
  946. 13: uint32(0x7eb17cbd),
  947. 14: uint32(0xe7b82d07),
  948. 15: uint32(0x90bf1d91),
  949. 16: uint32(0x1db71064),
  950. 17: uint32(0x6ab020f2),
  951. 18: uint32(0xf3b97148),
  952. 19: uint32(0x84be41de),
  953. 20: uint32(0x1adad47d),
  954. 21: uint32(0x6ddde4eb),
  955. 22: uint32(0xf4d4b551),
  956. 23: uint32(0x83d385c7),
  957. 24: uint32(0x136c9856),
  958. 25: uint32(0x646ba8c0),
  959. 26: uint32(0xfd62f97a),
  960. 27: uint32(0x8a65c9ec),
  961. 28: uint32(0x14015c4f),
  962. 29: uint32(0x63066cd9),
  963. 30: uint32(0xfa0f3d63),
  964. 31: uint32(0x8d080df5),
  965. 32: uint32(0x3b6e20c8),
  966. 33: uint32(0x4c69105e),
  967. 34: uint32(0xd56041e4),
  968. 35: uint32(0xa2677172),
  969. 36: uint32(0x3c03e4d1),
  970. 37: uint32(0x4b04d447),
  971. 38: uint32(0xd20d85fd),
  972. 39: uint32(0xa50ab56b),
  973. 40: uint32(0x35b5a8fa),
  974. 41: uint32(0x42b2986c),
  975. 42: uint32(0xdbbbc9d6),
  976. 43: uint32(0xacbcf940),
  977. 44: uint32(0x32d86ce3),
  978. 45: uint32(0x45df5c75),
  979. 46: uint32(0xdcd60dcf),
  980. 47: uint32(0xabd13d59),
  981. 48: uint32(0x26d930ac),
  982. 49: uint32(0x51de003a),
  983. 50: uint32(0xc8d75180),
  984. 51: uint32(0xbfd06116),
  985. 52: uint32(0x21b4f4b5),
  986. 53: uint32(0x56b3c423),
  987. 54: uint32(0xcfba9599),
  988. 55: uint32(0xb8bda50f),
  989. 56: uint32(0x2802b89e),
  990. 57: uint32(0x5f058808),
  991. 58: uint32(0xc60cd9b2),
  992. 59: uint32(0xb10be924),
  993. 60: uint32(0x2f6f7c87),
  994. 61: uint32(0x58684c11),
  995. 62: uint32(0xc1611dab),
  996. 63: uint32(0xb6662d3d),
  997. 64: uint32(0x76dc4190),
  998. 65: uint32(0x01db7106),
  999. 66: uint32(0x98d220bc),
  1000. 67: uint32(0xefd5102a),
  1001. 68: uint32(0x71b18589),
  1002. 69: uint32(0x06b6b51f),
  1003. 70: uint32(0x9fbfe4a5),
  1004. 71: uint32(0xe8b8d433),
  1005. 72: uint32(0x7807c9a2),
  1006. 73: uint32(0x0f00f934),
  1007. 74: uint32(0x9609a88e),
  1008. 75: uint32(0xe10e9818),
  1009. 76: uint32(0x7f6a0dbb),
  1010. 77: uint32(0x086d3d2d),
  1011. 78: uint32(0x91646c97),
  1012. 79: uint32(0xe6635c01),
  1013. 80: uint32(0x6b6b51f4),
  1014. 81: uint32(0x1c6c6162),
  1015. 82: uint32(0x856530d8),
  1016. 83: uint32(0xf262004e),
  1017. 84: uint32(0x6c0695ed),
  1018. 85: uint32(0x1b01a57b),
  1019. 86: uint32(0x8208f4c1),
  1020. 87: uint32(0xf50fc457),
  1021. 88: uint32(0x65b0d9c6),
  1022. 89: uint32(0x12b7e950),
  1023. 90: uint32(0x8bbeb8ea),
  1024. 91: uint32(0xfcb9887c),
  1025. 92: uint32(0x62dd1ddf),
  1026. 93: uint32(0x15da2d49),
  1027. 94: uint32(0x8cd37cf3),
  1028. 95: uint32(0xfbd44c65),
  1029. 96: uint32(0x4db26158),
  1030. 97: uint32(0x3ab551ce),
  1031. 98: uint32(0xa3bc0074),
  1032. 99: uint32(0xd4bb30e2),
  1033. 100: uint32(0x4adfa541),
  1034. 101: uint32(0x3dd895d7),
  1035. 102: uint32(0xa4d1c46d),
  1036. 103: uint32(0xd3d6f4fb),
  1037. 104: uint32(0x4369e96a),
  1038. 105: uint32(0x346ed9fc),
  1039. 106: uint32(0xad678846),
  1040. 107: uint32(0xda60b8d0),
  1041. 108: uint32(0x44042d73),
  1042. 109: uint32(0x33031de5),
  1043. 110: uint32(0xaa0a4c5f),
  1044. 111: uint32(0xdd0d7cc9),
  1045. 112: uint32(0x5005713c),
  1046. 113: uint32(0x270241aa),
  1047. 114: uint32(0xbe0b1010),
  1048. 115: uint32(0xc90c2086),
  1049. 116: uint32(0x5768b525),
  1050. 117: uint32(0x206f85b3),
  1051. 118: uint32(0xb966d409),
  1052. 119: uint32(0xce61e49f),
  1053. 120: uint32(0x5edef90e),
  1054. 121: uint32(0x29d9c998),
  1055. 122: uint32(0xb0d09822),
  1056. 123: uint32(0xc7d7a8b4),
  1057. 124: uint32(0x59b33d17),
  1058. 125: uint32(0x2eb40d81),
  1059. 126: uint32(0xb7bd5c3b),
  1060. 127: uint32(0xc0ba6cad),
  1061. 128: uint32(0xedb88320),
  1062. 129: uint32(0x9abfb3b6),
  1063. 130: uint32(0x03b6e20c),
  1064. 131: uint32(0x74b1d29a),
  1065. 132: uint32(0xead54739),
  1066. 133: uint32(0x9dd277af),
  1067. 134: uint32(0x04db2615),
  1068. 135: uint32(0x73dc1683),
  1069. 136: uint32(0xe3630b12),
  1070. 137: uint32(0x94643b84),
  1071. 138: uint32(0x0d6d6a3e),
  1072. 139: uint32(0x7a6a5aa8),
  1073. 140: uint32(0xe40ecf0b),
  1074. 141: uint32(0x9309ff9d),
  1075. 142: uint32(0x0a00ae27),
  1076. 143: uint32(0x7d079eb1),
  1077. 144: uint32(0xf00f9344),
  1078. 145: uint32(0x8708a3d2),
  1079. 146: uint32(0x1e01f268),
  1080. 147: uint32(0x6906c2fe),
  1081. 148: uint32(0xf762575d),
  1082. 149: uint32(0x806567cb),
  1083. 150: uint32(0x196c3671),
  1084. 151: uint32(0x6e6b06e7),
  1085. 152: uint32(0xfed41b76),
  1086. 153: uint32(0x89d32be0),
  1087. 154: uint32(0x10da7a5a),
  1088. 155: uint32(0x67dd4acc),
  1089. 156: uint32(0xf9b9df6f),
  1090. 157: uint32(0x8ebeeff9),
  1091. 158: uint32(0x17b7be43),
  1092. 159: uint32(0x60b08ed5),
  1093. 160: uint32(0xd6d6a3e8),
  1094. 161: uint32(0xa1d1937e),
  1095. 162: uint32(0x38d8c2c4),
  1096. 163: uint32(0x4fdff252),
  1097. 164: uint32(0xd1bb67f1),
  1098. 165: uint32(0xa6bc5767),
  1099. 166: uint32(0x3fb506dd),
  1100. 167: uint32(0x48b2364b),
  1101. 168: uint32(0xd80d2bda),
  1102. 169: uint32(0xaf0a1b4c),
  1103. 170: uint32(0x36034af6),
  1104. 171: uint32(0x41047a60),
  1105. 172: uint32(0xdf60efc3),
  1106. 173: uint32(0xa867df55),
  1107. 174: uint32(0x316e8eef),
  1108. 175: uint32(0x4669be79),
  1109. 176: uint32(0xcb61b38c),
  1110. 177: uint32(0xbc66831a),
  1111. 178: uint32(0x256fd2a0),
  1112. 179: uint32(0x5268e236),
  1113. 180: uint32(0xcc0c7795),
  1114. 181: uint32(0xbb0b4703),
  1115. 182: uint32(0x220216b9),
  1116. 183: uint32(0x5505262f),
  1117. 184: uint32(0xc5ba3bbe),
  1118. 185: uint32(0xb2bd0b28),
  1119. 186: uint32(0x2bb45a92),
  1120. 187: uint32(0x5cb36a04),
  1121. 188: uint32(0xc2d7ffa7),
  1122. 189: uint32(0xb5d0cf31),
  1123. 190: uint32(0x2cd99e8b),
  1124. 191: uint32(0x5bdeae1d),
  1125. 192: uint32(0x9b64c2b0),
  1126. 193: uint32(0xec63f226),
  1127. 194: uint32(0x756aa39c),
  1128. 195: uint32(0x026d930a),
  1129. 196: uint32(0x9c0906a9),
  1130. 197: uint32(0xeb0e363f),
  1131. 198: uint32(0x72076785),
  1132. 199: uint32(0x05005713),
  1133. 200: uint32(0x95bf4a82),
  1134. 201: uint32(0xe2b87a14),
  1135. 202: uint32(0x7bb12bae),
  1136. 203: uint32(0x0cb61b38),
  1137. 204: uint32(0x92d28e9b),
  1138. 205: uint32(0xe5d5be0d),
  1139. 206: uint32(0x7cdcefb7),
  1140. 207: uint32(0x0bdbdf21),
  1141. 208: uint32(0x86d3d2d4),
  1142. 209: uint32(0xf1d4e242),
  1143. 210: uint32(0x68ddb3f8),
  1144. 211: uint32(0x1fda836e),
  1145. 212: uint32(0x81be16cd),
  1146. 213: uint32(0xf6b9265b),
  1147. 214: uint32(0x6fb077e1),
  1148. 215: uint32(0x18b74777),
  1149. 216: uint32(0x88085ae6),
  1150. 217: uint32(0xff0f6a70),
  1151. 218: uint32(0x66063bca),
  1152. 219: uint32(0x11010b5c),
  1153. 220: uint32(0x8f659eff),
  1154. 221: uint32(0xf862ae69),
  1155. 222: uint32(0x616bffd3),
  1156. 223: uint32(0x166ccf45),
  1157. 224: uint32(0xa00ae278),
  1158. 225: uint32(0xd70dd2ee),
  1159. 226: uint32(0x4e048354),
  1160. 227: uint32(0x3903b3c2),
  1161. 228: uint32(0xa7672661),
  1162. 229: uint32(0xd06016f7),
  1163. 230: uint32(0x4969474d),
  1164. 231: uint32(0x3e6e77db),
  1165. 232: uint32(0xaed16a4a),
  1166. 233: uint32(0xd9d65adc),
  1167. 234: uint32(0x40df0b66),
  1168. 235: uint32(0x37d83bf0),
  1169. 236: uint32(0xa9bcae53),
  1170. 237: uint32(0xdebb9ec5),
  1171. 238: uint32(0x47b2cf7f),
  1172. 239: uint32(0x30b5ffe9),
  1173. 240: uint32(0xbdbdf21c),
  1174. 241: uint32(0xcabac28a),
  1175. 242: uint32(0x53b39330),
  1176. 243: uint32(0x24b4a3a6),
  1177. 244: uint32(0xbad03605),
  1178. 245: uint32(0xcdd70693),
  1179. 246: uint32(0x54de5729),
  1180. 247: uint32(0x23d967bf),
  1181. 248: uint32(0xb3667a2e),
  1182. 249: uint32(0xc4614ab8),
  1183. 250: uint32(0x5d681b02),
  1184. 251: uint32(0x2a6f2b94),
  1185. 252: uint32(0xb40bbe37),
  1186. 253: uint32(0xc30c8ea1),
  1187. 254: uint32(0x5a05df1b),
  1188. 255: uint32(0x2d02ef8d),
  1189. }
  1190. var _crc_big_table = [256]Tz_word_t{
  1191. 1: uint32(0x96300777),
  1192. 2: uint32(0x2c610eee),
  1193. 3: uint32(0xba510999),
  1194. 4: uint32(0x19c46d07),
  1195. 5: uint32(0x8ff46a70),
  1196. 6: uint32(0x35a563e9),
  1197. 7: uint32(0xa395649e),
  1198. 8: uint32(0x3288db0e),
  1199. 9: uint32(0xa4b8dc79),
  1200. 10: uint32(0x1ee9d5e0),
  1201. 11: uint32(0x88d9d297),
  1202. 12: uint32(0x2b4cb609),
  1203. 13: uint32(0xbd7cb17e),
  1204. 14: uint32(0x072db8e7),
  1205. 15: uint32(0x911dbf90),
  1206. 16: uint32(0x6410b71d),
  1207. 17: uint32(0xf220b06a),
  1208. 18: uint32(0x4871b9f3),
  1209. 19: uint32(0xde41be84),
  1210. 20: uint32(0x7dd4da1a),
  1211. 21: uint32(0xebe4dd6d),
  1212. 22: uint32(0x51b5d4f4),
  1213. 23: uint32(0xc785d383),
  1214. 24: uint32(0x56986c13),
  1215. 25: uint32(0xc0a86b64),
  1216. 26: uint32(0x7af962fd),
  1217. 27: uint32(0xecc9658a),
  1218. 28: uint32(0x4f5c0114),
  1219. 29: uint32(0xd96c0663),
  1220. 30: uint32(0x633d0ffa),
  1221. 31: uint32(0xf50d088d),
  1222. 32: uint32(0xc8206e3b),
  1223. 33: uint32(0x5e10694c),
  1224. 34: uint32(0xe44160d5),
  1225. 35: uint32(0x727167a2),
  1226. 36: uint32(0xd1e4033c),
  1227. 37: uint32(0x47d4044b),
  1228. 38: uint32(0xfd850dd2),
  1229. 39: uint32(0x6bb50aa5),
  1230. 40: uint32(0xfaa8b535),
  1231. 41: uint32(0x6c98b242),
  1232. 42: uint32(0xd6c9bbdb),
  1233. 43: uint32(0x40f9bcac),
  1234. 44: uint32(0xe36cd832),
  1235. 45: uint32(0x755cdf45),
  1236. 46: uint32(0xcf0dd6dc),
  1237. 47: uint32(0x593dd1ab),
  1238. 48: uint32(0xac30d926),
  1239. 49: uint32(0x3a00de51),
  1240. 50: uint32(0x8051d7c8),
  1241. 51: uint32(0x1661d0bf),
  1242. 52: uint32(0xb5f4b421),
  1243. 53: uint32(0x23c4b356),
  1244. 54: uint32(0x9995bacf),
  1245. 55: uint32(0x0fa5bdb8),
  1246. 56: uint32(0x9eb80228),
  1247. 57: uint32(0x0888055f),
  1248. 58: uint32(0xb2d90cc6),
  1249. 59: uint32(0x24e90bb1),
  1250. 60: uint32(0x877c6f2f),
  1251. 61: uint32(0x114c6858),
  1252. 62: uint32(0xab1d61c1),
  1253. 63: uint32(0x3d2d66b6),
  1254. 64: uint32(0x9041dc76),
  1255. 65: uint32(0x0671db01),
  1256. 66: uint32(0xbc20d298),
  1257. 67: uint32(0x2a10d5ef),
  1258. 68: uint32(0x8985b171),
  1259. 69: uint32(0x1fb5b606),
  1260. 70: uint32(0xa5e4bf9f),
  1261. 71: uint32(0x33d4b8e8),
  1262. 72: uint32(0xa2c90778),
  1263. 73: uint32(0x34f9000f),
  1264. 74: uint32(0x8ea80996),
  1265. 75: uint32(0x18980ee1),
  1266. 76: uint32(0xbb0d6a7f),
  1267. 77: uint32(0x2d3d6d08),
  1268. 78: uint32(0x976c6491),
  1269. 79: uint32(0x015c63e6),
  1270. 80: uint32(0xf4516b6b),
  1271. 81: uint32(0x62616c1c),
  1272. 82: uint32(0xd8306585),
  1273. 83: uint32(0x4e0062f2),
  1274. 84: uint32(0xed95066c),
  1275. 85: uint32(0x7ba5011b),
  1276. 86: uint32(0xc1f40882),
  1277. 87: uint32(0x57c40ff5),
  1278. 88: uint32(0xc6d9b065),
  1279. 89: uint32(0x50e9b712),
  1280. 90: uint32(0xeab8be8b),
  1281. 91: uint32(0x7c88b9fc),
  1282. 92: uint32(0xdf1ddd62),
  1283. 93: uint32(0x492dda15),
  1284. 94: uint32(0xf37cd38c),
  1285. 95: uint32(0x654cd4fb),
  1286. 96: uint32(0x5861b24d),
  1287. 97: uint32(0xce51b53a),
  1288. 98: uint32(0x7400bca3),
  1289. 99: uint32(0xe230bbd4),
  1290. 100: uint32(0x41a5df4a),
  1291. 101: uint32(0xd795d83d),
  1292. 102: uint32(0x6dc4d1a4),
  1293. 103: uint32(0xfbf4d6d3),
  1294. 104: uint32(0x6ae96943),
  1295. 105: uint32(0xfcd96e34),
  1296. 106: uint32(0x468867ad),
  1297. 107: uint32(0xd0b860da),
  1298. 108: uint32(0x732d0444),
  1299. 109: uint32(0xe51d0333),
  1300. 110: uint32(0x5f4c0aaa),
  1301. 111: uint32(0xc97c0ddd),
  1302. 112: uint32(0x3c710550),
  1303. 113: uint32(0xaa410227),
  1304. 114: uint32(0x10100bbe),
  1305. 115: uint32(0x86200cc9),
  1306. 116: uint32(0x25b56857),
  1307. 117: uint32(0xb3856f20),
  1308. 118: uint32(0x09d466b9),
  1309. 119: uint32(0x9fe461ce),
  1310. 120: uint32(0x0ef9de5e),
  1311. 121: uint32(0x98c9d929),
  1312. 122: uint32(0x2298d0b0),
  1313. 123: uint32(0xb4a8d7c7),
  1314. 124: uint32(0x173db359),
  1315. 125: uint32(0x810db42e),
  1316. 126: uint32(0x3b5cbdb7),
  1317. 127: uint32(0xad6cbac0),
  1318. 128: uint32(0x2083b8ed),
  1319. 129: uint32(0xb6b3bf9a),
  1320. 130: uint32(0x0ce2b603),
  1321. 131: uint32(0x9ad2b174),
  1322. 132: uint32(0x3947d5ea),
  1323. 133: uint32(0xaf77d29d),
  1324. 134: uint32(0x1526db04),
  1325. 135: uint32(0x8316dc73),
  1326. 136: uint32(0x120b63e3),
  1327. 137: uint32(0x843b6494),
  1328. 138: uint32(0x3e6a6d0d),
  1329. 139: uint32(0xa85a6a7a),
  1330. 140: uint32(0x0bcf0ee4),
  1331. 141: uint32(0x9dff0993),
  1332. 142: uint32(0x27ae000a),
  1333. 143: uint32(0xb19e077d),
  1334. 144: uint32(0x44930ff0),
  1335. 145: uint32(0xd2a30887),
  1336. 146: uint32(0x68f2011e),
  1337. 147: uint32(0xfec20669),
  1338. 148: uint32(0x5d5762f7),
  1339. 149: uint32(0xcb676580),
  1340. 150: uint32(0x71366c19),
  1341. 151: uint32(0xe7066b6e),
  1342. 152: uint32(0x761bd4fe),
  1343. 153: uint32(0xe02bd389),
  1344. 154: uint32(0x5a7ada10),
  1345. 155: uint32(0xcc4add67),
  1346. 156: uint32(0x6fdfb9f9),
  1347. 157: uint32(0xf9efbe8e),
  1348. 158: uint32(0x43beb717),
  1349. 159: uint32(0xd58eb060),
  1350. 160: uint32(0xe8a3d6d6),
  1351. 161: uint32(0x7e93d1a1),
  1352. 162: uint32(0xc4c2d838),
  1353. 163: uint32(0x52f2df4f),
  1354. 164: uint32(0xf167bbd1),
  1355. 165: uint32(0x6757bca6),
  1356. 166: uint32(0xdd06b53f),
  1357. 167: uint32(0x4b36b248),
  1358. 168: uint32(0xda2b0dd8),
  1359. 169: uint32(0x4c1b0aaf),
  1360. 170: uint32(0xf64a0336),
  1361. 171: uint32(0x607a0441),
  1362. 172: uint32(0xc3ef60df),
  1363. 173: uint32(0x55df67a8),
  1364. 174: uint32(0xef8e6e31),
  1365. 175: uint32(0x79be6946),
  1366. 176: uint32(0x8cb361cb),
  1367. 177: uint32(0x1a8366bc),
  1368. 178: uint32(0xa0d26f25),
  1369. 179: uint32(0x36e26852),
  1370. 180: uint32(0x95770ccc),
  1371. 181: uint32(0x03470bbb),
  1372. 182: uint32(0xb9160222),
  1373. 183: uint32(0x2f260555),
  1374. 184: uint32(0xbe3bbac5),
  1375. 185: uint32(0x280bbdb2),
  1376. 186: uint32(0x925ab42b),
  1377. 187: uint32(0x046ab35c),
  1378. 188: uint32(0xa7ffd7c2),
  1379. 189: uint32(0x31cfd0b5),
  1380. 190: uint32(0x8b9ed92c),
  1381. 191: uint32(0x1daede5b),
  1382. 192: uint32(0xb0c2649b),
  1383. 193: uint32(0x26f263ec),
  1384. 194: uint32(0x9ca36a75),
  1385. 195: uint32(0x0a936d02),
  1386. 196: uint32(0xa906099c),
  1387. 197: uint32(0x3f360eeb),
  1388. 198: uint32(0x85670772),
  1389. 199: uint32(0x13570005),
  1390. 200: uint32(0x824abf95),
  1391. 201: uint32(0x147ab8e2),
  1392. 202: uint32(0xae2bb17b),
  1393. 203: uint32(0x381bb60c),
  1394. 204: uint32(0x9b8ed292),
  1395. 205: uint32(0x0dbed5e5),
  1396. 206: uint32(0xb7efdc7c),
  1397. 207: uint32(0x21dfdb0b),
  1398. 208: uint32(0xd4d2d386),
  1399. 209: uint32(0x42e2d4f1),
  1400. 210: uint32(0xf8b3dd68),
  1401. 211: uint32(0x6e83da1f),
  1402. 212: uint32(0xcd16be81),
  1403. 213: uint32(0x5b26b9f6),
  1404. 214: uint32(0xe177b06f),
  1405. 215: uint32(0x7747b718),
  1406. 216: uint32(0xe65a0888),
  1407. 217: uint32(0x706a0fff),
  1408. 218: uint32(0xca3b0666),
  1409. 219: uint32(0x5c0b0111),
  1410. 220: uint32(0xff9e658f),
  1411. 221: uint32(0x69ae62f8),
  1412. 222: uint32(0xd3ff6b61),
  1413. 223: uint32(0x45cf6c16),
  1414. 224: uint32(0x78e20aa0),
  1415. 225: uint32(0xeed20dd7),
  1416. 226: uint32(0x5483044e),
  1417. 227: uint32(0xc2b30339),
  1418. 228: uint32(0x612667a7),
  1419. 229: uint32(0xf71660d0),
  1420. 230: uint32(0x4d476949),
  1421. 231: uint32(0xdb776e3e),
  1422. 232: uint32(0x4a6ad1ae),
  1423. 233: uint32(0xdc5ad6d9),
  1424. 234: uint32(0x660bdf40),
  1425. 235: uint32(0xf03bd837),
  1426. 236: uint32(0x53aebca9),
  1427. 237: uint32(0xc59ebbde),
  1428. 238: uint32(0x7fcfb247),
  1429. 239: uint32(0xe9ffb530),
  1430. 240: uint32(0x1cf2bdbd),
  1431. 241: uint32(0x8ac2baca),
  1432. 242: uint32(0x3093b353),
  1433. 243: uint32(0xa6a3b424),
  1434. 244: uint32(0x0536d0ba),
  1435. 245: uint32(0x9306d7cd),
  1436. 246: uint32(0x2957de54),
  1437. 247: uint32(0xbf67d923),
  1438. 248: uint32(0x2e7a66b3),
  1439. 249: uint32(0xb84a61c4),
  1440. 250: uint32(0x021b685d),
  1441. 251: uint32(0x942b6f2a),
  1442. 252: uint32(0x37be0bb4),
  1443. 253: uint32(0xa18e0cc3),
  1444. 254: uint32(0x1bdf055a),
  1445. 255: uint32(0x8def022d),
  1446. }
  1447. var _crc_braid_table = [4][256]Tz_crc_t{
  1448. 0: {
  1449. 1: uint32(0x65673b46),
  1450. 2: uint32(0xcace768c),
  1451. 3: uint32(0xafa94dca),
  1452. 4: uint32(0x4eedeb59),
  1453. 5: uint32(0x2b8ad01f),
  1454. 6: uint32(0x84239dd5),
  1455. 7: uint32(0xe144a693),
  1456. 8: uint32(0x9ddbd6b2),
  1457. 9: uint32(0xf8bcedf4),
  1458. 10: uint32(0x5715a03e),
  1459. 11: uint32(0x32729b78),
  1460. 12: uint32(0xd3363deb),
  1461. 13: uint32(0xb65106ad),
  1462. 14: uint32(0x19f84b67),
  1463. 15: uint32(0x7c9f7021),
  1464. 16: uint32(0xe0c6ab25),
  1465. 17: uint32(0x85a19063),
  1466. 18: uint32(0x2a08dda9),
  1467. 19: uint32(0x4f6fe6ef),
  1468. 20: uint32(0xae2b407c),
  1469. 21: uint32(0xcb4c7b3a),
  1470. 22: uint32(0x64e536f0),
  1471. 23: uint32(0x01820db6),
  1472. 24: uint32(0x7d1d7d97),
  1473. 25: uint32(0x187a46d1),
  1474. 26: uint32(0xb7d30b1b),
  1475. 27: uint32(0xd2b4305d),
  1476. 28: uint32(0x33f096ce),
  1477. 29: uint32(0x5697ad88),
  1478. 30: uint32(0xf93ee042),
  1479. 31: uint32(0x9c59db04),
  1480. 32: uint32(0x1afc500b),
  1481. 33: uint32(0x7f9b6b4d),
  1482. 34: uint32(0xd0322687),
  1483. 35: uint32(0xb5551dc1),
  1484. 36: uint32(0x5411bb52),
  1485. 37: uint32(0x31768014),
  1486. 38: uint32(0x9edfcdde),
  1487. 39: uint32(0xfbb8f698),
  1488. 40: uint32(0x872786b9),
  1489. 41: uint32(0xe240bdff),
  1490. 42: uint32(0x4de9f035),
  1491. 43: uint32(0x288ecb73),
  1492. 44: uint32(0xc9ca6de0),
  1493. 45: uint32(0xacad56a6),
  1494. 46: uint32(0x03041b6c),
  1495. 47: uint32(0x6663202a),
  1496. 48: uint32(0xfa3afb2e),
  1497. 49: uint32(0x9f5dc068),
  1498. 50: uint32(0x30f48da2),
  1499. 51: uint32(0x5593b6e4),
  1500. 52: uint32(0xb4d71077),
  1501. 53: uint32(0xd1b02b31),
  1502. 54: uint32(0x7e1966fb),
  1503. 55: uint32(0x1b7e5dbd),
  1504. 56: uint32(0x67e12d9c),
  1505. 57: uint32(0x028616da),
  1506. 58: uint32(0xad2f5b10),
  1507. 59: uint32(0xc8486056),
  1508. 60: uint32(0x290cc6c5),
  1509. 61: uint32(0x4c6bfd83),
  1510. 62: uint32(0xe3c2b049),
  1511. 63: uint32(0x86a58b0f),
  1512. 64: uint32(0x35f8a016),
  1513. 65: uint32(0x509f9b50),
  1514. 66: uint32(0xff36d69a),
  1515. 67: uint32(0x9a51eddc),
  1516. 68: uint32(0x7b154b4f),
  1517. 69: uint32(0x1e727009),
  1518. 70: uint32(0xb1db3dc3),
  1519. 71: uint32(0xd4bc0685),
  1520. 72: uint32(0xa82376a4),
  1521. 73: uint32(0xcd444de2),
  1522. 74: uint32(0x62ed0028),
  1523. 75: uint32(0x078a3b6e),
  1524. 76: uint32(0xe6ce9dfd),
  1525. 77: uint32(0x83a9a6bb),
  1526. 78: uint32(0x2c00eb71),
  1527. 79: uint32(0x4967d037),
  1528. 80: uint32(0xd53e0b33),
  1529. 81: uint32(0xb0593075),
  1530. 82: uint32(0x1ff07dbf),
  1531. 83: uint32(0x7a9746f9),
  1532. 84: uint32(0x9bd3e06a),
  1533. 85: uint32(0xfeb4db2c),
  1534. 86: uint32(0x511d96e6),
  1535. 87: uint32(0x347aada0),
  1536. 88: uint32(0x48e5dd81),
  1537. 89: uint32(0x2d82e6c7),
  1538. 90: uint32(0x822bab0d),
  1539. 91: uint32(0xe74c904b),
  1540. 92: uint32(0x060836d8),
  1541. 93: uint32(0x636f0d9e),
  1542. 94: uint32(0xccc64054),
  1543. 95: uint32(0xa9a17b12),
  1544. 96: uint32(0x2f04f01d),
  1545. 97: uint32(0x4a63cb5b),
  1546. 98: uint32(0xe5ca8691),
  1547. 99: uint32(0x80adbdd7),
  1548. 100: uint32(0x61e91b44),
  1549. 101: uint32(0x048e2002),
  1550. 102: uint32(0xab276dc8),
  1551. 103: uint32(0xce40568e),
  1552. 104: uint32(0xb2df26af),
  1553. 105: uint32(0xd7b81de9),
  1554. 106: uint32(0x78115023),
  1555. 107: uint32(0x1d766b65),
  1556. 108: uint32(0xfc32cdf6),
  1557. 109: uint32(0x9955f6b0),
  1558. 110: uint32(0x36fcbb7a),
  1559. 111: uint32(0x539b803c),
  1560. 112: uint32(0xcfc25b38),
  1561. 113: uint32(0xaaa5607e),
  1562. 114: uint32(0x050c2db4),
  1563. 115: uint32(0x606b16f2),
  1564. 116: uint32(0x812fb061),
  1565. 117: uint32(0xe4488b27),
  1566. 118: uint32(0x4be1c6ed),
  1567. 119: uint32(0x2e86fdab),
  1568. 120: uint32(0x52198d8a),
  1569. 121: uint32(0x377eb6cc),
  1570. 122: uint32(0x98d7fb06),
  1571. 123: uint32(0xfdb0c040),
  1572. 124: uint32(0x1cf466d3),
  1573. 125: uint32(0x79935d95),
  1574. 126: uint32(0xd63a105f),
  1575. 127: uint32(0xb35d2b19),
  1576. 128: uint32(0x6bf1402c),
  1577. 129: uint32(0x0e967b6a),
  1578. 130: uint32(0xa13f36a0),
  1579. 131: uint32(0xc4580de6),
  1580. 132: uint32(0x251cab75),
  1581. 133: uint32(0x407b9033),
  1582. 134: uint32(0xefd2ddf9),
  1583. 135: uint32(0x8ab5e6bf),
  1584. 136: uint32(0xf62a969e),
  1585. 137: uint32(0x934dadd8),
  1586. 138: uint32(0x3ce4e012),
  1587. 139: uint32(0x5983db54),
  1588. 140: uint32(0xb8c77dc7),
  1589. 141: uint32(0xdda04681),
  1590. 142: uint32(0x72090b4b),
  1591. 143: uint32(0x176e300d),
  1592. 144: uint32(0x8b37eb09),
  1593. 145: uint32(0xee50d04f),
  1594. 146: uint32(0x41f99d85),
  1595. 147: uint32(0x249ea6c3),
  1596. 148: uint32(0xc5da0050),
  1597. 149: uint32(0xa0bd3b16),
  1598. 150: uint32(0x0f1476dc),
  1599. 151: uint32(0x6a734d9a),
  1600. 152: uint32(0x16ec3dbb),
  1601. 153: uint32(0x738b06fd),
  1602. 154: uint32(0xdc224b37),
  1603. 155: uint32(0xb9457071),
  1604. 156: uint32(0x5801d6e2),
  1605. 157: uint32(0x3d66eda4),
  1606. 158: uint32(0x92cfa06e),
  1607. 159: uint32(0xf7a89b28),
  1608. 160: uint32(0x710d1027),
  1609. 161: uint32(0x146a2b61),
  1610. 162: uint32(0xbbc366ab),
  1611. 163: uint32(0xdea45ded),
  1612. 164: uint32(0x3fe0fb7e),
  1613. 165: uint32(0x5a87c038),
  1614. 166: uint32(0xf52e8df2),
  1615. 167: uint32(0x9049b6b4),
  1616. 168: uint32(0xecd6c695),
  1617. 169: uint32(0x89b1fdd3),
  1618. 170: uint32(0x2618b019),
  1619. 171: uint32(0x437f8b5f),
  1620. 172: uint32(0xa23b2dcc),
  1621. 173: uint32(0xc75c168a),
  1622. 174: uint32(0x68f55b40),
  1623. 175: uint32(0x0d926006),
  1624. 176: uint32(0x91cbbb02),
  1625. 177: uint32(0xf4ac8044),
  1626. 178: uint32(0x5b05cd8e),
  1627. 179: uint32(0x3e62f6c8),
  1628. 180: uint32(0xdf26505b),
  1629. 181: uint32(0xba416b1d),
  1630. 182: uint32(0x15e826d7),
  1631. 183: uint32(0x708f1d91),
  1632. 184: uint32(0x0c106db0),
  1633. 185: uint32(0x697756f6),
  1634. 186: uint32(0xc6de1b3c),
  1635. 187: uint32(0xa3b9207a),
  1636. 188: uint32(0x42fd86e9),
  1637. 189: uint32(0x279abdaf),
  1638. 190: uint32(0x8833f065),
  1639. 191: uint32(0xed54cb23),
  1640. 192: uint32(0x5e09e03a),
  1641. 193: uint32(0x3b6edb7c),
  1642. 194: uint32(0x94c796b6),
  1643. 195: uint32(0xf1a0adf0),
  1644. 196: uint32(0x10e40b63),
  1645. 197: uint32(0x75833025),
  1646. 198: uint32(0xda2a7def),
  1647. 199: uint32(0xbf4d46a9),
  1648. 200: uint32(0xc3d23688),
  1649. 201: uint32(0xa6b50dce),
  1650. 202: uint32(0x091c4004),
  1651. 203: uint32(0x6c7b7b42),
  1652. 204: uint32(0x8d3fddd1),
  1653. 205: uint32(0xe858e697),
  1654. 206: uint32(0x47f1ab5d),
  1655. 207: uint32(0x2296901b),
  1656. 208: uint32(0xbecf4b1f),
  1657. 209: uint32(0xdba87059),
  1658. 210: uint32(0x74013d93),
  1659. 211: uint32(0x116606d5),
  1660. 212: uint32(0xf022a046),
  1661. 213: uint32(0x95459b00),
  1662. 214: uint32(0x3aecd6ca),
  1663. 215: uint32(0x5f8bed8c),
  1664. 216: uint32(0x23149dad),
  1665. 217: uint32(0x4673a6eb),
  1666. 218: uint32(0xe9daeb21),
  1667. 219: uint32(0x8cbdd067),
  1668. 220: uint32(0x6df976f4),
  1669. 221: uint32(0x089e4db2),
  1670. 222: uint32(0xa7370078),
  1671. 223: uint32(0xc2503b3e),
  1672. 224: uint32(0x44f5b031),
  1673. 225: uint32(0x21928b77),
  1674. 226: uint32(0x8e3bc6bd),
  1675. 227: uint32(0xeb5cfdfb),
  1676. 228: uint32(0x0a185b68),
  1677. 229: uint32(0x6f7f602e),
  1678. 230: uint32(0xc0d62de4),
  1679. 231: uint32(0xa5b116a2),
  1680. 232: uint32(0xd92e6683),
  1681. 233: uint32(0xbc495dc5),
  1682. 234: uint32(0x13e0100f),
  1683. 235: uint32(0x76872b49),
  1684. 236: uint32(0x97c38dda),
  1685. 237: uint32(0xf2a4b69c),
  1686. 238: uint32(0x5d0dfb56),
  1687. 239: uint32(0x386ac010),
  1688. 240: uint32(0xa4331b14),
  1689. 241: uint32(0xc1542052),
  1690. 242: uint32(0x6efd6d98),
  1691. 243: uint32(0x0b9a56de),
  1692. 244: uint32(0xeadef04d),
  1693. 245: uint32(0x8fb9cb0b),
  1694. 246: uint32(0x201086c1),
  1695. 247: uint32(0x4577bd87),
  1696. 248: uint32(0x39e8cda6),
  1697. 249: uint32(0x5c8ff6e0),
  1698. 250: uint32(0xf326bb2a),
  1699. 251: uint32(0x9641806c),
  1700. 252: uint32(0x770526ff),
  1701. 253: uint32(0x12621db9),
  1702. 254: uint32(0xbdcb5073),
  1703. 255: uint32(0xd8ac6b35),
  1704. },
  1705. 1: {
  1706. 1: uint32(0xd7e28058),
  1707. 2: uint32(0x74b406f1),
  1708. 3: uint32(0xa35686a9),
  1709. 4: uint32(0xe9680de2),
  1710. 5: uint32(0x3e8a8dba),
  1711. 6: uint32(0x9ddc0b13),
  1712. 7: uint32(0x4a3e8b4b),
  1713. 8: uint32(0x09a11d85),
  1714. 9: uint32(0xde439ddd),
  1715. 10: uint32(0x7d151b74),
  1716. 11: uint32(0xaaf79b2c),
  1717. 12: uint32(0xe0c91067),
  1718. 13: uint32(0x372b903f),
  1719. 14: uint32(0x947d1696),
  1720. 15: uint32(0x439f96ce),
  1721. 16: uint32(0x13423b0a),
  1722. 17: uint32(0xc4a0bb52),
  1723. 18: uint32(0x67f63dfb),
  1724. 19: uint32(0xb014bda3),
  1725. 20: uint32(0xfa2a36e8),
  1726. 21: uint32(0x2dc8b6b0),
  1727. 22: uint32(0x8e9e3019),
  1728. 23: uint32(0x597cb041),
  1729. 24: uint32(0x1ae3268f),
  1730. 25: uint32(0xcd01a6d7),
  1731. 26: uint32(0x6e57207e),
  1732. 27: uint32(0xb9b5a026),
  1733. 28: uint32(0xf38b2b6d),
  1734. 29: uint32(0x2469ab35),
  1735. 30: uint32(0x873f2d9c),
  1736. 31: uint32(0x50ddadc4),
  1737. 32: uint32(0x26847614),
  1738. 33: uint32(0xf166f64c),
  1739. 34: uint32(0x523070e5),
  1740. 35: uint32(0x85d2f0bd),
  1741. 36: uint32(0xcfec7bf6),
  1742. 37: uint32(0x180efbae),
  1743. 38: uint32(0xbb587d07),
  1744. 39: uint32(0x6cbafd5f),
  1745. 40: uint32(0x2f256b91),
  1746. 41: uint32(0xf8c7ebc9),
  1747. 42: uint32(0x5b916d60),
  1748. 43: uint32(0x8c73ed38),
  1749. 44: uint32(0xc64d6673),
  1750. 45: uint32(0x11afe62b),
  1751. 46: uint32(0xb2f96082),
  1752. 47: uint32(0x651be0da),
  1753. 48: uint32(0x35c64d1e),
  1754. 49: uint32(0xe224cd46),
  1755. 50: uint32(0x41724bef),
  1756. 51: uint32(0x9690cbb7),
  1757. 52: uint32(0xdcae40fc),
  1758. 53: uint32(0x0b4cc0a4),
  1759. 54: uint32(0xa81a460d),
  1760. 55: uint32(0x7ff8c655),
  1761. 56: uint32(0x3c67509b),
  1762. 57: uint32(0xeb85d0c3),
  1763. 58: uint32(0x48d3566a),
  1764. 59: uint32(0x9f31d632),
  1765. 60: uint32(0xd50f5d79),
  1766. 61: uint32(0x02eddd21),
  1767. 62: uint32(0xa1bb5b88),
  1768. 63: uint32(0x7659dbd0),
  1769. 64: uint32(0x4d08ec28),
  1770. 65: uint32(0x9aea6c70),
  1771. 66: uint32(0x39bcead9),
  1772. 67: uint32(0xee5e6a81),
  1773. 68: uint32(0xa460e1ca),
  1774. 69: uint32(0x73826192),
  1775. 70: uint32(0xd0d4e73b),
  1776. 71: uint32(0x07366763),
  1777. 72: uint32(0x44a9f1ad),
  1778. 73: uint32(0x934b71f5),
  1779. 74: uint32(0x301df75c),
  1780. 75: uint32(0xe7ff7704),
  1781. 76: uint32(0xadc1fc4f),
  1782. 77: uint32(0x7a237c17),
  1783. 78: uint32(0xd975fabe),
  1784. 79: uint32(0x0e977ae6),
  1785. 80: uint32(0x5e4ad722),
  1786. 81: uint32(0x89a8577a),
  1787. 82: uint32(0x2afed1d3),
  1788. 83: uint32(0xfd1c518b),
  1789. 84: uint32(0xb722dac0),
  1790. 85: uint32(0x60c05a98),
  1791. 86: uint32(0xc396dc31),
  1792. 87: uint32(0x14745c69),
  1793. 88: uint32(0x57ebcaa7),
  1794. 89: uint32(0x80094aff),
  1795. 90: uint32(0x235fcc56),
  1796. 91: uint32(0xf4bd4c0e),
  1797. 92: uint32(0xbe83c745),
  1798. 93: uint32(0x6961471d),
  1799. 94: uint32(0xca37c1b4),
  1800. 95: uint32(0x1dd541ec),
  1801. 96: uint32(0x6b8c9a3c),
  1802. 97: uint32(0xbc6e1a64),
  1803. 98: uint32(0x1f389ccd),
  1804. 99: uint32(0xc8da1c95),
  1805. 100: uint32(0x82e497de),
  1806. 101: uint32(0x55061786),
  1807. 102: uint32(0xf650912f),
  1808. 103: uint32(0x21b21177),
  1809. 104: uint32(0x622d87b9),
  1810. 105: uint32(0xb5cf07e1),
  1811. 106: uint32(0x16998148),
  1812. 107: uint32(0xc17b0110),
  1813. 108: uint32(0x8b458a5b),
  1814. 109: uint32(0x5ca70a03),
  1815. 110: uint32(0xfff18caa),
  1816. 111: uint32(0x28130cf2),
  1817. 112: uint32(0x78cea136),
  1818. 113: uint32(0xaf2c216e),
  1819. 114: uint32(0x0c7aa7c7),
  1820. 115: uint32(0xdb98279f),
  1821. 116: uint32(0x91a6acd4),
  1822. 117: uint32(0x46442c8c),
  1823. 118: uint32(0xe512aa25),
  1824. 119: uint32(0x32f02a7d),
  1825. 120: uint32(0x716fbcb3),
  1826. 121: uint32(0xa68d3ceb),
  1827. 122: uint32(0x05dbba42),
  1828. 123: uint32(0xd2393a1a),
  1829. 124: uint32(0x9807b151),
  1830. 125: uint32(0x4fe53109),
  1831. 126: uint32(0xecb3b7a0),
  1832. 127: uint32(0x3b5137f8),
  1833. 128: uint32(0x9a11d850),
  1834. 129: uint32(0x4df35808),
  1835. 130: uint32(0xeea5dea1),
  1836. 131: uint32(0x39475ef9),
  1837. 132: uint32(0x7379d5b2),
  1838. 133: uint32(0xa49b55ea),
  1839. 134: uint32(0x07cdd343),
  1840. 135: uint32(0xd02f531b),
  1841. 136: uint32(0x93b0c5d5),
  1842. 137: uint32(0x4452458d),
  1843. 138: uint32(0xe704c324),
  1844. 139: uint32(0x30e6437c),
  1845. 140: uint32(0x7ad8c837),
  1846. 141: uint32(0xad3a486f),
  1847. 142: uint32(0x0e6ccec6),
  1848. 143: uint32(0xd98e4e9e),
  1849. 144: uint32(0x8953e35a),
  1850. 145: uint32(0x5eb16302),
  1851. 146: uint32(0xfde7e5ab),
  1852. 147: uint32(0x2a0565f3),
  1853. 148: uint32(0x603beeb8),
  1854. 149: uint32(0xb7d96ee0),
  1855. 150: uint32(0x148fe849),
  1856. 151: uint32(0xc36d6811),
  1857. 152: uint32(0x80f2fedf),
  1858. 153: uint32(0x57107e87),
  1859. 154: uint32(0xf446f82e),
  1860. 155: uint32(0x23a47876),
  1861. 156: uint32(0x699af33d),
  1862. 157: uint32(0xbe787365),
  1863. 158: uint32(0x1d2ef5cc),
  1864. 159: uint32(0xcacc7594),
  1865. 160: uint32(0xbc95ae44),
  1866. 161: uint32(0x6b772e1c),
  1867. 162: uint32(0xc821a8b5),
  1868. 163: uint32(0x1fc328ed),
  1869. 164: uint32(0x55fda3a6),
  1870. 165: uint32(0x821f23fe),
  1871. 166: uint32(0x2149a557),
  1872. 167: uint32(0xf6ab250f),
  1873. 168: uint32(0xb534b3c1),
  1874. 169: uint32(0x62d63399),
  1875. 170: uint32(0xc180b530),
  1876. 171: uint32(0x16623568),
  1877. 172: uint32(0x5c5cbe23),
  1878. 173: uint32(0x8bbe3e7b),
  1879. 174: uint32(0x28e8b8d2),
  1880. 175: uint32(0xff0a388a),
  1881. 176: uint32(0xafd7954e),
  1882. 177: uint32(0x78351516),
  1883. 178: uint32(0xdb6393bf),
  1884. 179: uint32(0x0c8113e7),
  1885. 180: uint32(0x46bf98ac),
  1886. 181: uint32(0x915d18f4),
  1887. 182: uint32(0x320b9e5d),
  1888. 183: uint32(0xe5e91e05),
  1889. 184: uint32(0xa67688cb),
  1890. 185: uint32(0x71940893),
  1891. 186: uint32(0xd2c28e3a),
  1892. 187: uint32(0x05200e62),
  1893. 188: uint32(0x4f1e8529),
  1894. 189: uint32(0x98fc0571),
  1895. 190: uint32(0x3baa83d8),
  1896. 191: uint32(0xec480380),
  1897. 192: uint32(0xd7193478),
  1898. 193: uint32(0x00fbb420),
  1899. 194: uint32(0xa3ad3289),
  1900. 195: uint32(0x744fb2d1),
  1901. 196: uint32(0x3e71399a),
  1902. 197: uint32(0xe993b9c2),
  1903. 198: uint32(0x4ac53f6b),
  1904. 199: uint32(0x9d27bf33),
  1905. 200: uint32(0xdeb829fd),
  1906. 201: uint32(0x095aa9a5),
  1907. 202: uint32(0xaa0c2f0c),
  1908. 203: uint32(0x7deeaf54),
  1909. 204: uint32(0x37d0241f),
  1910. 205: uint32(0xe032a447),
  1911. 206: uint32(0x436422ee),
  1912. 207: uint32(0x9486a2b6),
  1913. 208: uint32(0xc45b0f72),
  1914. 209: uint32(0x13b98f2a),
  1915. 210: uint32(0xb0ef0983),
  1916. 211: uint32(0x670d89db),
  1917. 212: uint32(0x2d330290),
  1918. 213: uint32(0xfad182c8),
  1919. 214: uint32(0x59870461),
  1920. 215: uint32(0x8e658439),
  1921. 216: uint32(0xcdfa12f7),
  1922. 217: uint32(0x1a1892af),
  1923. 218: uint32(0xb94e1406),
  1924. 219: uint32(0x6eac945e),
  1925. 220: uint32(0x24921f15),
  1926. 221: uint32(0xf3709f4d),
  1927. 222: uint32(0x502619e4),
  1928. 223: uint32(0x87c499bc),
  1929. 224: uint32(0xf19d426c),
  1930. 225: uint32(0x267fc234),
  1931. 226: uint32(0x8529449d),
  1932. 227: uint32(0x52cbc4c5),
  1933. 228: uint32(0x18f54f8e),
  1934. 229: uint32(0xcf17cfd6),
  1935. 230: uint32(0x6c41497f),
  1936. 231: uint32(0xbba3c927),
  1937. 232: uint32(0xf83c5fe9),
  1938. 233: uint32(0x2fdedfb1),
  1939. 234: uint32(0x8c885918),
  1940. 235: uint32(0x5b6ad940),
  1941. 236: uint32(0x1154520b),
  1942. 237: uint32(0xc6b6d253),
  1943. 238: uint32(0x65e054fa),
  1944. 239: uint32(0xb202d4a2),
  1945. 240: uint32(0xe2df7966),
  1946. 241: uint32(0x353df93e),
  1947. 242: uint32(0x966b7f97),
  1948. 243: uint32(0x4189ffcf),
  1949. 244: uint32(0x0bb77484),
  1950. 245: uint32(0xdc55f4dc),
  1951. 246: uint32(0x7f037275),
  1952. 247: uint32(0xa8e1f22d),
  1953. 248: uint32(0xeb7e64e3),
  1954. 249: uint32(0x3c9ce4bb),
  1955. 250: uint32(0x9fca6212),
  1956. 251: uint32(0x4828e24a),
  1957. 252: uint32(0x02166901),
  1958. 253: uint32(0xd5f4e959),
  1959. 254: uint32(0x76a26ff0),
  1960. 255: uint32(0xa140efa8),
  1961. },
  1962. 2: {
  1963. 1: uint32(0xef52b6e1),
  1964. 2: uint32(0x05d46b83),
  1965. 3: uint32(0xea86dd62),
  1966. 4: uint32(0x0ba8d706),
  1967. 5: uint32(0xe4fa61e7),
  1968. 6: uint32(0x0e7cbc85),
  1969. 7: uint32(0xe12e0a64),
  1970. 8: uint32(0x1751ae0c),
  1971. 9: uint32(0xf80318ed),
  1972. 10: uint32(0x1285c58f),
  1973. 11: uint32(0xfdd7736e),
  1974. 12: uint32(0x1cf9790a),
  1975. 13: uint32(0xf3abcfeb),
  1976. 14: uint32(0x192d1289),
  1977. 15: uint32(0xf67fa468),
  1978. 16: uint32(0x2ea35c18),
  1979. 17: uint32(0xc1f1eaf9),
  1980. 18: uint32(0x2b77379b),
  1981. 19: uint32(0xc425817a),
  1982. 20: uint32(0x250b8b1e),
  1983. 21: uint32(0xca593dff),
  1984. 22: uint32(0x20dfe09d),
  1985. 23: uint32(0xcf8d567c),
  1986. 24: uint32(0x39f2f214),
  1987. 25: uint32(0xd6a044f5),
  1988. 26: uint32(0x3c269997),
  1989. 27: uint32(0xd3742f76),
  1990. 28: uint32(0x325a2512),
  1991. 29: uint32(0xdd0893f3),
  1992. 30: uint32(0x378e4e91),
  1993. 31: uint32(0xd8dcf870),
  1994. 32: uint32(0x5d46b830),
  1995. 33: uint32(0xb2140ed1),
  1996. 34: uint32(0x5892d3b3),
  1997. 35: uint32(0xb7c06552),
  1998. 36: uint32(0x56ee6f36),
  1999. 37: uint32(0xb9bcd9d7),
  2000. 38: uint32(0x533a04b5),
  2001. 39: uint32(0xbc68b254),
  2002. 40: uint32(0x4a17163c),
  2003. 41: uint32(0xa545a0dd),
  2004. 42: uint32(0x4fc37dbf),
  2005. 43: uint32(0xa091cb5e),
  2006. 44: uint32(0x41bfc13a),
  2007. 45: uint32(0xaeed77db),
  2008. 46: uint32(0x446baab9),
  2009. 47: uint32(0xab391c58),
  2010. 48: uint32(0x73e5e428),
  2011. 49: uint32(0x9cb752c9),
  2012. 50: uint32(0x76318fab),
  2013. 51: uint32(0x9963394a),
  2014. 52: uint32(0x784d332e),
  2015. 53: uint32(0x971f85cf),
  2016. 54: uint32(0x7d9958ad),
  2017. 55: uint32(0x92cbee4c),
  2018. 56: uint32(0x64b44a24),
  2019. 57: uint32(0x8be6fcc5),
  2020. 58: uint32(0x616021a7),
  2021. 59: uint32(0x8e329746),
  2022. 60: uint32(0x6f1c9d22),
  2023. 61: uint32(0x804e2bc3),
  2024. 62: uint32(0x6ac8f6a1),
  2025. 63: uint32(0x859a4040),
  2026. 64: uint32(0xba8d7060),
  2027. 65: uint32(0x55dfc681),
  2028. 66: uint32(0xbf591be3),
  2029. 67: uint32(0x500bad02),
  2030. 68: uint32(0xb125a766),
  2031. 69: uint32(0x5e771187),
  2032. 70: uint32(0xb4f1cce5),
  2033. 71: uint32(0x5ba37a04),
  2034. 72: uint32(0xaddcde6c),
  2035. 73: uint32(0x428e688d),
  2036. 74: uint32(0xa808b5ef),
  2037. 75: uint32(0x475a030e),
  2038. 76: uint32(0xa674096a),
  2039. 77: uint32(0x4926bf8b),
  2040. 78: uint32(0xa3a062e9),
  2041. 79: uint32(0x4cf2d408),
  2042. 80: uint32(0x942e2c78),
  2043. 81: uint32(0x7b7c9a99),
  2044. 82: uint32(0x91fa47fb),
  2045. 83: uint32(0x7ea8f11a),
  2046. 84: uint32(0x9f86fb7e),
  2047. 85: uint32(0x70d44d9f),
  2048. 86: uint32(0x9a5290fd),
  2049. 87: uint32(0x7500261c),
  2050. 88: uint32(0x837f8274),
  2051. 89: uint32(0x6c2d3495),
  2052. 90: uint32(0x86abe9f7),
  2053. 91: uint32(0x69f95f16),
  2054. 92: uint32(0x88d75572),
  2055. 93: uint32(0x6785e393),
  2056. 94: uint32(0x8d033ef1),
  2057. 95: uint32(0x62518810),
  2058. 96: uint32(0xe7cbc850),
  2059. 97: uint32(0x08997eb1),
  2060. 98: uint32(0xe21fa3d3),
  2061. 99: uint32(0x0d4d1532),
  2062. 100: uint32(0xec631f56),
  2063. 101: uint32(0x0331a9b7),
  2064. 102: uint32(0xe9b774d5),
  2065. 103: uint32(0x06e5c234),
  2066. 104: uint32(0xf09a665c),
  2067. 105: uint32(0x1fc8d0bd),
  2068. 106: uint32(0xf54e0ddf),
  2069. 107: uint32(0x1a1cbb3e),
  2070. 108: uint32(0xfb32b15a),
  2071. 109: uint32(0x146007bb),
  2072. 110: uint32(0xfee6dad9),
  2073. 111: uint32(0x11b46c38),
  2074. 112: uint32(0xc9689448),
  2075. 113: uint32(0x263a22a9),
  2076. 114: uint32(0xccbcffcb),
  2077. 115: uint32(0x23ee492a),
  2078. 116: uint32(0xc2c0434e),
  2079. 117: uint32(0x2d92f5af),
  2080. 118: uint32(0xc71428cd),
  2081. 119: uint32(0x28469e2c),
  2082. 120: uint32(0xde393a44),
  2083. 121: uint32(0x316b8ca5),
  2084. 122: uint32(0xdbed51c7),
  2085. 123: uint32(0x34bfe726),
  2086. 124: uint32(0xd591ed42),
  2087. 125: uint32(0x3ac35ba3),
  2088. 126: uint32(0xd04586c1),
  2089. 127: uint32(0x3f173020),
  2090. 128: uint32(0xae6be681),
  2091. 129: uint32(0x41395060),
  2092. 130: uint32(0xabbf8d02),
  2093. 131: uint32(0x44ed3be3),
  2094. 132: uint32(0xa5c33187),
  2095. 133: uint32(0x4a918766),
  2096. 134: uint32(0xa0175a04),
  2097. 135: uint32(0x4f45ece5),
  2098. 136: uint32(0xb93a488d),
  2099. 137: uint32(0x5668fe6c),
  2100. 138: uint32(0xbcee230e),
  2101. 139: uint32(0x53bc95ef),
  2102. 140: uint32(0xb2929f8b),
  2103. 141: uint32(0x5dc0296a),
  2104. 142: uint32(0xb746f408),
  2105. 143: uint32(0x581442e9),
  2106. 144: uint32(0x80c8ba99),
  2107. 145: uint32(0x6f9a0c78),
  2108. 146: uint32(0x851cd11a),
  2109. 147: uint32(0x6a4e67fb),
  2110. 148: uint32(0x8b606d9f),
  2111. 149: uint32(0x6432db7e),
  2112. 150: uint32(0x8eb4061c),
  2113. 151: uint32(0x61e6b0fd),
  2114. 152: uint32(0x97991495),
  2115. 153: uint32(0x78cba274),
  2116. 154: uint32(0x924d7f16),
  2117. 155: uint32(0x7d1fc9f7),
  2118. 156: uint32(0x9c31c393),
  2119. 157: uint32(0x73637572),
  2120. 158: uint32(0x99e5a810),
  2121. 159: uint32(0x76b71ef1),
  2122. 160: uint32(0xf32d5eb1),
  2123. 161: uint32(0x1c7fe850),
  2124. 162: uint32(0xf6f93532),
  2125. 163: uint32(0x19ab83d3),
  2126. 164: uint32(0xf88589b7),
  2127. 165: uint32(0x17d73f56),
  2128. 166: uint32(0xfd51e234),
  2129. 167: uint32(0x120354d5),
  2130. 168: uint32(0xe47cf0bd),
  2131. 169: uint32(0x0b2e465c),
  2132. 170: uint32(0xe1a89b3e),
  2133. 171: uint32(0x0efa2ddf),
  2134. 172: uint32(0xefd427bb),
  2135. 173: uint32(0x0086915a),
  2136. 174: uint32(0xea004c38),
  2137. 175: uint32(0x0552fad9),
  2138. 176: uint32(0xdd8e02a9),
  2139. 177: uint32(0x32dcb448),
  2140. 178: uint32(0xd85a692a),
  2141. 179: uint32(0x3708dfcb),
  2142. 180: uint32(0xd626d5af),
  2143. 181: uint32(0x3974634e),
  2144. 182: uint32(0xd3f2be2c),
  2145. 183: uint32(0x3ca008cd),
  2146. 184: uint32(0xcadfaca5),
  2147. 185: uint32(0x258d1a44),
  2148. 186: uint32(0xcf0bc726),
  2149. 187: uint32(0x205971c7),
  2150. 188: uint32(0xc1777ba3),
  2151. 189: uint32(0x2e25cd42),
  2152. 190: uint32(0xc4a31020),
  2153. 191: uint32(0x2bf1a6c1),
  2154. 192: uint32(0x14e696e1),
  2155. 193: uint32(0xfbb42000),
  2156. 194: uint32(0x1132fd62),
  2157. 195: uint32(0xfe604b83),
  2158. 196: uint32(0x1f4e41e7),
  2159. 197: uint32(0xf01cf706),
  2160. 198: uint32(0x1a9a2a64),
  2161. 199: uint32(0xf5c89c85),
  2162. 200: uint32(0x03b738ed),
  2163. 201: uint32(0xece58e0c),
  2164. 202: uint32(0x0663536e),
  2165. 203: uint32(0xe931e58f),
  2166. 204: uint32(0x081fefeb),
  2167. 205: uint32(0xe74d590a),
  2168. 206: uint32(0x0dcb8468),
  2169. 207: uint32(0xe2993289),
  2170. 208: uint32(0x3a45caf9),
  2171. 209: uint32(0xd5177c18),
  2172. 210: uint32(0x3f91a17a),
  2173. 211: uint32(0xd0c3179b),
  2174. 212: uint32(0x31ed1dff),
  2175. 213: uint32(0xdebfab1e),
  2176. 214: uint32(0x3439767c),
  2177. 215: uint32(0xdb6bc09d),
  2178. 216: uint32(0x2d1464f5),
  2179. 217: uint32(0xc246d214),
  2180. 218: uint32(0x28c00f76),
  2181. 219: uint32(0xc792b997),
  2182. 220: uint32(0x26bcb3f3),
  2183. 221: uint32(0xc9ee0512),
  2184. 222: uint32(0x2368d870),
  2185. 223: uint32(0xcc3a6e91),
  2186. 224: uint32(0x49a02ed1),
  2187. 225: uint32(0xa6f29830),
  2188. 226: uint32(0x4c744552),
  2189. 227: uint32(0xa326f3b3),
  2190. 228: uint32(0x4208f9d7),
  2191. 229: uint32(0xad5a4f36),
  2192. 230: uint32(0x47dc9254),
  2193. 231: uint32(0xa88e24b5),
  2194. 232: uint32(0x5ef180dd),
  2195. 233: uint32(0xb1a3363c),
  2196. 234: uint32(0x5b25eb5e),
  2197. 235: uint32(0xb4775dbf),
  2198. 236: uint32(0x555957db),
  2199. 237: uint32(0xba0be13a),
  2200. 238: uint32(0x508d3c58),
  2201. 239: uint32(0xbfdf8ab9),
  2202. 240: uint32(0x670372c9),
  2203. 241: uint32(0x8851c428),
  2204. 242: uint32(0x62d7194a),
  2205. 243: uint32(0x8d85afab),
  2206. 244: uint32(0x6caba5cf),
  2207. 245: uint32(0x83f9132e),
  2208. 246: uint32(0x697fce4c),
  2209. 247: uint32(0x862d78ad),
  2210. 248: uint32(0x7052dcc5),
  2211. 249: uint32(0x9f006a24),
  2212. 250: uint32(0x7586b746),
  2213. 251: uint32(0x9ad401a7),
  2214. 252: uint32(0x7bfa0bc3),
  2215. 253: uint32(0x94a8bd22),
  2216. 254: uint32(0x7e2e6040),
  2217. 255: uint32(0x917cd6a1),
  2218. },
  2219. 3: {
  2220. 1: uint32(0x87a6cb43),
  2221. 2: uint32(0xd43c90c7),
  2222. 3: uint32(0x539a5b84),
  2223. 4: uint32(0x730827cf),
  2224. 5: uint32(0xf4aeec8c),
  2225. 6: uint32(0xa734b708),
  2226. 7: uint32(0x20927c4b),
  2227. 8: uint32(0xe6104f9e),
  2228. 9: uint32(0x61b684dd),
  2229. 10: uint32(0x322cdf59),
  2230. 11: uint32(0xb58a141a),
  2231. 12: uint32(0x95186851),
  2232. 13: uint32(0x12bea312),
  2233. 14: uint32(0x4124f896),
  2234. 15: uint32(0xc68233d5),
  2235. 16: uint32(0x1751997d),
  2236. 17: uint32(0x90f7523e),
  2237. 18: uint32(0xc36d09ba),
  2238. 19: uint32(0x44cbc2f9),
  2239. 20: uint32(0x6459beb2),
  2240. 21: uint32(0xe3ff75f1),
  2241. 22: uint32(0xb0652e75),
  2242. 23: uint32(0x37c3e536),
  2243. 24: uint32(0xf141d6e3),
  2244. 25: uint32(0x76e71da0),
  2245. 26: uint32(0x257d4624),
  2246. 27: uint32(0xa2db8d67),
  2247. 28: uint32(0x8249f12c),
  2248. 29: uint32(0x05ef3a6f),
  2249. 30: uint32(0x567561eb),
  2250. 31: uint32(0xd1d3aaa8),
  2251. 32: uint32(0x2ea332fa),
  2252. 33: uint32(0xa905f9b9),
  2253. 34: uint32(0xfa9fa23d),
  2254. 35: uint32(0x7d39697e),
  2255. 36: uint32(0x5dab1535),
  2256. 37: uint32(0xda0dde76),
  2257. 38: uint32(0x899785f2),
  2258. 39: uint32(0x0e314eb1),
  2259. 40: uint32(0xc8b37d64),
  2260. 41: uint32(0x4f15b627),
  2261. 42: uint32(0x1c8feda3),
  2262. 43: uint32(0x9b2926e0),
  2263. 44: uint32(0xbbbb5aab),
  2264. 45: uint32(0x3c1d91e8),
  2265. 46: uint32(0x6f87ca6c),
  2266. 47: uint32(0xe821012f),
  2267. 48: uint32(0x39f2ab87),
  2268. 49: uint32(0xbe5460c4),
  2269. 50: uint32(0xedce3b40),
  2270. 51: uint32(0x6a68f003),
  2271. 52: uint32(0x4afa8c48),
  2272. 53: uint32(0xcd5c470b),
  2273. 54: uint32(0x9ec61c8f),
  2274. 55: uint32(0x1960d7cc),
  2275. 56: uint32(0xdfe2e419),
  2276. 57: uint32(0x58442f5a),
  2277. 58: uint32(0x0bde74de),
  2278. 59: uint32(0x8c78bf9d),
  2279. 60: uint32(0xaceac3d6),
  2280. 61: uint32(0x2b4c0895),
  2281. 62: uint32(0x78d65311),
  2282. 63: uint32(0xff709852),
  2283. 64: uint32(0x5d4665f4),
  2284. 65: uint32(0xdae0aeb7),
  2285. 66: uint32(0x897af533),
  2286. 67: uint32(0x0edc3e70),
  2287. 68: uint32(0x2e4e423b),
  2288. 69: uint32(0xa9e88978),
  2289. 70: uint32(0xfa72d2fc),
  2290. 71: uint32(0x7dd419bf),
  2291. 72: uint32(0xbb562a6a),
  2292. 73: uint32(0x3cf0e129),
  2293. 74: uint32(0x6f6abaad),
  2294. 75: uint32(0xe8cc71ee),
  2295. 76: uint32(0xc85e0da5),
  2296. 77: uint32(0x4ff8c6e6),
  2297. 78: uint32(0x1c629d62),
  2298. 79: uint32(0x9bc45621),
  2299. 80: uint32(0x4a17fc89),
  2300. 81: uint32(0xcdb137ca),
  2301. 82: uint32(0x9e2b6c4e),
  2302. 83: uint32(0x198da70d),
  2303. 84: uint32(0x391fdb46),
  2304. 85: uint32(0xbeb91005),
  2305. 86: uint32(0xed234b81),
  2306. 87: uint32(0x6a8580c2),
  2307. 88: uint32(0xac07b317),
  2308. 89: uint32(0x2ba17854),
  2309. 90: uint32(0x783b23d0),
  2310. 91: uint32(0xff9de893),
  2311. 92: uint32(0xdf0f94d8),
  2312. 93: uint32(0x58a95f9b),
  2313. 94: uint32(0x0b33041f),
  2314. 95: uint32(0x8c95cf5c),
  2315. 96: uint32(0x73e5570e),
  2316. 97: uint32(0xf4439c4d),
  2317. 98: uint32(0xa7d9c7c9),
  2318. 99: uint32(0x207f0c8a),
  2319. 100: uint32(0x00ed70c1),
  2320. 101: uint32(0x874bbb82),
  2321. 102: uint32(0xd4d1e006),
  2322. 103: uint32(0x53772b45),
  2323. 104: uint32(0x95f51890),
  2324. 105: uint32(0x1253d3d3),
  2325. 106: uint32(0x41c98857),
  2326. 107: uint32(0xc66f4314),
  2327. 108: uint32(0xe6fd3f5f),
  2328. 109: uint32(0x615bf41c),
  2329. 110: uint32(0x32c1af98),
  2330. 111: uint32(0xb56764db),
  2331. 112: uint32(0x64b4ce73),
  2332. 113: uint32(0xe3120530),
  2333. 114: uint32(0xb0885eb4),
  2334. 115: uint32(0x372e95f7),
  2335. 116: uint32(0x17bce9bc),
  2336. 117: uint32(0x901a22ff),
  2337. 118: uint32(0xc380797b),
  2338. 119: uint32(0x4426b238),
  2339. 120: uint32(0x82a481ed),
  2340. 121: uint32(0x05024aae),
  2341. 122: uint32(0x5698112a),
  2342. 123: uint32(0xd13eda69),
  2343. 124: uint32(0xf1aca622),
  2344. 125: uint32(0x760a6d61),
  2345. 126: uint32(0x259036e5),
  2346. 127: uint32(0xa236fda6),
  2347. 128: uint32(0xba8ccbe8),
  2348. 129: uint32(0x3d2a00ab),
  2349. 130: uint32(0x6eb05b2f),
  2350. 131: uint32(0xe916906c),
  2351. 132: uint32(0xc984ec27),
  2352. 133: uint32(0x4e222764),
  2353. 134: uint32(0x1db87ce0),
  2354. 135: uint32(0x9a1eb7a3),
  2355. 136: uint32(0x5c9c8476),
  2356. 137: uint32(0xdb3a4f35),
  2357. 138: uint32(0x88a014b1),
  2358. 139: uint32(0x0f06dff2),
  2359. 140: uint32(0x2f94a3b9),
  2360. 141: uint32(0xa83268fa),
  2361. 142: uint32(0xfba8337e),
  2362. 143: uint32(0x7c0ef83d),
  2363. 144: uint32(0xaddd5295),
  2364. 145: uint32(0x2a7b99d6),
  2365. 146: uint32(0x79e1c252),
  2366. 147: uint32(0xfe470911),
  2367. 148: uint32(0xded5755a),
  2368. 149: uint32(0x5973be19),
  2369. 150: uint32(0x0ae9e59d),
  2370. 151: uint32(0x8d4f2ede),
  2371. 152: uint32(0x4bcd1d0b),
  2372. 153: uint32(0xcc6bd648),
  2373. 154: uint32(0x9ff18dcc),
  2374. 155: uint32(0x1857468f),
  2375. 156: uint32(0x38c53ac4),
  2376. 157: uint32(0xbf63f187),
  2377. 158: uint32(0xecf9aa03),
  2378. 159: uint32(0x6b5f6140),
  2379. 160: uint32(0x942ff912),
  2380. 161: uint32(0x13893251),
  2381. 162: uint32(0x401369d5),
  2382. 163: uint32(0xc7b5a296),
  2383. 164: uint32(0xe727dedd),
  2384. 165: uint32(0x6081159e),
  2385. 166: uint32(0x331b4e1a),
  2386. 167: uint32(0xb4bd8559),
  2387. 168: uint32(0x723fb68c),
  2388. 169: uint32(0xf5997dcf),
  2389. 170: uint32(0xa603264b),
  2390. 171: uint32(0x21a5ed08),
  2391. 172: uint32(0x01379143),
  2392. 173: uint32(0x86915a00),
  2393. 174: uint32(0xd50b0184),
  2394. 175: uint32(0x52adcac7),
  2395. 176: uint32(0x837e606f),
  2396. 177: uint32(0x04d8ab2c),
  2397. 178: uint32(0x5742f0a8),
  2398. 179: uint32(0xd0e43beb),
  2399. 180: uint32(0xf07647a0),
  2400. 181: uint32(0x77d08ce3),
  2401. 182: uint32(0x244ad767),
  2402. 183: uint32(0xa3ec1c24),
  2403. 184: uint32(0x656e2ff1),
  2404. 185: uint32(0xe2c8e4b2),
  2405. 186: uint32(0xb152bf36),
  2406. 187: uint32(0x36f47475),
  2407. 188: uint32(0x1666083e),
  2408. 189: uint32(0x91c0c37d),
  2409. 190: uint32(0xc25a98f9),
  2410. 191: uint32(0x45fc53ba),
  2411. 192: uint32(0xe7caae1c),
  2412. 193: uint32(0x606c655f),
  2413. 194: uint32(0x33f63edb),
  2414. 195: uint32(0xb450f598),
  2415. 196: uint32(0x94c289d3),
  2416. 197: uint32(0x13644290),
  2417. 198: uint32(0x40fe1914),
  2418. 199: uint32(0xc758d257),
  2419. 200: uint32(0x01dae182),
  2420. 201: uint32(0x867c2ac1),
  2421. 202: uint32(0xd5e67145),
  2422. 203: uint32(0x5240ba06),
  2423. 204: uint32(0x72d2c64d),
  2424. 205: uint32(0xf5740d0e),
  2425. 206: uint32(0xa6ee568a),
  2426. 207: uint32(0x21489dc9),
  2427. 208: uint32(0xf09b3761),
  2428. 209: uint32(0x773dfc22),
  2429. 210: uint32(0x24a7a7a6),
  2430. 211: uint32(0xa3016ce5),
  2431. 212: uint32(0x839310ae),
  2432. 213: uint32(0x0435dbed),
  2433. 214: uint32(0x57af8069),
  2434. 215: uint32(0xd0094b2a),
  2435. 216: uint32(0x168b78ff),
  2436. 217: uint32(0x912db3bc),
  2437. 218: uint32(0xc2b7e838),
  2438. 219: uint32(0x4511237b),
  2439. 220: uint32(0x65835f30),
  2440. 221: uint32(0xe2259473),
  2441. 222: uint32(0xb1bfcff7),
  2442. 223: uint32(0x361904b4),
  2443. 224: uint32(0xc9699ce6),
  2444. 225: uint32(0x4ecf57a5),
  2445. 226: uint32(0x1d550c21),
  2446. 227: uint32(0x9af3c762),
  2447. 228: uint32(0xba61bb29),
  2448. 229: uint32(0x3dc7706a),
  2449. 230: uint32(0x6e5d2bee),
  2450. 231: uint32(0xe9fbe0ad),
  2451. 232: uint32(0x2f79d378),
  2452. 233: uint32(0xa8df183b),
  2453. 234: uint32(0xfb4543bf),
  2454. 235: uint32(0x7ce388fc),
  2455. 236: uint32(0x5c71f4b7),
  2456. 237: uint32(0xdbd73ff4),
  2457. 238: uint32(0x884d6470),
  2458. 239: uint32(0x0febaf33),
  2459. 240: uint32(0xde38059b),
  2460. 241: uint32(0x599eced8),
  2461. 242: uint32(0x0a04955c),
  2462. 243: uint32(0x8da25e1f),
  2463. 244: uint32(0xad302254),
  2464. 245: uint32(0x2a96e917),
  2465. 246: uint32(0x790cb293),
  2466. 247: uint32(0xfeaa79d0),
  2467. 248: uint32(0x38284a05),
  2468. 249: uint32(0xbf8e8146),
  2469. 250: uint32(0xec14dac2),
  2470. 251: uint32(0x6bb21181),
  2471. 252: uint32(0x4b206dca),
  2472. 253: uint32(0xcc86a689),
  2473. 254: uint32(0x9f1cfd0d),
  2474. 255: uint32(0x18ba364e),
  2475. },
  2476. }
  2477. var _crc_braid_big_table = [4][256]Tz_word_t{
  2478. 0: {
  2479. 1: uint32(0x43cba687),
  2480. 2: uint32(0xc7903cd4),
  2481. 3: uint32(0x845b9a53),
  2482. 4: uint32(0xcf270873),
  2483. 5: uint32(0x8cecaef4),
  2484. 6: uint32(0x08b734a7),
  2485. 7: uint32(0x4b7c9220),
  2486. 8: uint32(0x9e4f10e6),
  2487. 9: uint32(0xdd84b661),
  2488. 10: uint32(0x59df2c32),
  2489. 11: uint32(0x1a148ab5),
  2490. 12: uint32(0x51681895),
  2491. 13: uint32(0x12a3be12),
  2492. 14: uint32(0x96f82441),
  2493. 15: uint32(0xd53382c6),
  2494. 16: uint32(0x7d995117),
  2495. 17: uint32(0x3e52f790),
  2496. 18: uint32(0xba096dc3),
  2497. 19: uint32(0xf9c2cb44),
  2498. 20: uint32(0xb2be5964),
  2499. 21: uint32(0xf175ffe3),
  2500. 22: uint32(0x752e65b0),
  2501. 23: uint32(0x36e5c337),
  2502. 24: uint32(0xe3d641f1),
  2503. 25: uint32(0xa01de776),
  2504. 26: uint32(0x24467d25),
  2505. 27: uint32(0x678ddba2),
  2506. 28: uint32(0x2cf14982),
  2507. 29: uint32(0x6f3aef05),
  2508. 30: uint32(0xeb617556),
  2509. 31: uint32(0xa8aad3d1),
  2510. 32: uint32(0xfa32a32e),
  2511. 33: uint32(0xb9f905a9),
  2512. 34: uint32(0x3da29ffa),
  2513. 35: uint32(0x7e69397d),
  2514. 36: uint32(0x3515ab5d),
  2515. 37: uint32(0x76de0dda),
  2516. 38: uint32(0xf2859789),
  2517. 39: uint32(0xb14e310e),
  2518. 40: uint32(0x647db3c8),
  2519. 41: uint32(0x27b6154f),
  2520. 42: uint32(0xa3ed8f1c),
  2521. 43: uint32(0xe026299b),
  2522. 44: uint32(0xab5abbbb),
  2523. 45: uint32(0xe8911d3c),
  2524. 46: uint32(0x6cca876f),
  2525. 47: uint32(0x2f0121e8),
  2526. 48: uint32(0x87abf239),
  2527. 49: uint32(0xc46054be),
  2528. 50: uint32(0x403bceed),
  2529. 51: uint32(0x03f0686a),
  2530. 52: uint32(0x488cfa4a),
  2531. 53: uint32(0x0b475ccd),
  2532. 54: uint32(0x8f1cc69e),
  2533. 55: uint32(0xccd76019),
  2534. 56: uint32(0x19e4e2df),
  2535. 57: uint32(0x5a2f4458),
  2536. 58: uint32(0xde74de0b),
  2537. 59: uint32(0x9dbf788c),
  2538. 60: uint32(0xd6c3eaac),
  2539. 61: uint32(0x95084c2b),
  2540. 62: uint32(0x1153d678),
  2541. 63: uint32(0x529870ff),
  2542. 64: uint32(0xf465465d),
  2543. 65: uint32(0xb7aee0da),
  2544. 66: uint32(0x33f57a89),
  2545. 67: uint32(0x703edc0e),
  2546. 68: uint32(0x3b424e2e),
  2547. 69: uint32(0x7889e8a9),
  2548. 70: uint32(0xfcd272fa),
  2549. 71: uint32(0xbf19d47d),
  2550. 72: uint32(0x6a2a56bb),
  2551. 73: uint32(0x29e1f03c),
  2552. 74: uint32(0xadba6a6f),
  2553. 75: uint32(0xee71cce8),
  2554. 76: uint32(0xa50d5ec8),
  2555. 77: uint32(0xe6c6f84f),
  2556. 78: uint32(0x629d621c),
  2557. 79: uint32(0x2156c49b),
  2558. 80: uint32(0x89fc174a),
  2559. 81: uint32(0xca37b1cd),
  2560. 82: uint32(0x4e6c2b9e),
  2561. 83: uint32(0x0da78d19),
  2562. 84: uint32(0x46db1f39),
  2563. 85: uint32(0x0510b9be),
  2564. 86: uint32(0x814b23ed),
  2565. 87: uint32(0xc280856a),
  2566. 88: uint32(0x17b307ac),
  2567. 89: uint32(0x5478a12b),
  2568. 90: uint32(0xd0233b78),
  2569. 91: uint32(0x93e89dff),
  2570. 92: uint32(0xd8940fdf),
  2571. 93: uint32(0x9b5fa958),
  2572. 94: uint32(0x1f04330b),
  2573. 95: uint32(0x5ccf958c),
  2574. 96: uint32(0x0e57e573),
  2575. 97: uint32(0x4d9c43f4),
  2576. 98: uint32(0xc9c7d9a7),
  2577. 99: uint32(0x8a0c7f20),
  2578. 100: uint32(0xc170ed00),
  2579. 101: uint32(0x82bb4b87),
  2580. 102: uint32(0x06e0d1d4),
  2581. 103: uint32(0x452b7753),
  2582. 104: uint32(0x9018f595),
  2583. 105: uint32(0xd3d35312),
  2584. 106: uint32(0x5788c941),
  2585. 107: uint32(0x14436fc6),
  2586. 108: uint32(0x5f3ffde6),
  2587. 109: uint32(0x1cf45b61),
  2588. 110: uint32(0x98afc132),
  2589. 111: uint32(0xdb6467b5),
  2590. 112: uint32(0x73ceb464),
  2591. 113: uint32(0x300512e3),
  2592. 114: uint32(0xb45e88b0),
  2593. 115: uint32(0xf7952e37),
  2594. 116: uint32(0xbce9bc17),
  2595. 117: uint32(0xff221a90),
  2596. 118: uint32(0x7b7980c3),
  2597. 119: uint32(0x38b22644),
  2598. 120: uint32(0xed81a482),
  2599. 121: uint32(0xae4a0205),
  2600. 122: uint32(0x2a119856),
  2601. 123: uint32(0x69da3ed1),
  2602. 124: uint32(0x22a6acf1),
  2603. 125: uint32(0x616d0a76),
  2604. 126: uint32(0xe5369025),
  2605. 127: uint32(0xa6fd36a2),
  2606. 128: uint32(0xe8cb8cba),
  2607. 129: uint32(0xab002a3d),
  2608. 130: uint32(0x2f5bb06e),
  2609. 131: uint32(0x6c9016e9),
  2610. 132: uint32(0x27ec84c9),
  2611. 133: uint32(0x6427224e),
  2612. 134: uint32(0xe07cb81d),
  2613. 135: uint32(0xa3b71e9a),
  2614. 136: uint32(0x76849c5c),
  2615. 137: uint32(0x354f3adb),
  2616. 138: uint32(0xb114a088),
  2617. 139: uint32(0xf2df060f),
  2618. 140: uint32(0xb9a3942f),
  2619. 141: uint32(0xfa6832a8),
  2620. 142: uint32(0x7e33a8fb),
  2621. 143: uint32(0x3df80e7c),
  2622. 144: uint32(0x9552ddad),
  2623. 145: uint32(0xd6997b2a),
  2624. 146: uint32(0x52c2e179),
  2625. 147: uint32(0x110947fe),
  2626. 148: uint32(0x5a75d5de),
  2627. 149: uint32(0x19be7359),
  2628. 150: uint32(0x9de5e90a),
  2629. 151: uint32(0xde2e4f8d),
  2630. 152: uint32(0x0b1dcd4b),
  2631. 153: uint32(0x48d66bcc),
  2632. 154: uint32(0xcc8df19f),
  2633. 155: uint32(0x8f465718),
  2634. 156: uint32(0xc43ac538),
  2635. 157: uint32(0x87f163bf),
  2636. 158: uint32(0x03aaf9ec),
  2637. 159: uint32(0x40615f6b),
  2638. 160: uint32(0x12f92f94),
  2639. 161: uint32(0x51328913),
  2640. 162: uint32(0xd5691340),
  2641. 163: uint32(0x96a2b5c7),
  2642. 164: uint32(0xddde27e7),
  2643. 165: uint32(0x9e158160),
  2644. 166: uint32(0x1a4e1b33),
  2645. 167: uint32(0x5985bdb4),
  2646. 168: uint32(0x8cb63f72),
  2647. 169: uint32(0xcf7d99f5),
  2648. 170: uint32(0x4b2603a6),
  2649. 171: uint32(0x08eda521),
  2650. 172: uint32(0x43913701),
  2651. 173: uint32(0x005a9186),
  2652. 174: uint32(0x84010bd5),
  2653. 175: uint32(0xc7caad52),
  2654. 176: uint32(0x6f607e83),
  2655. 177: uint32(0x2cabd804),
  2656. 178: uint32(0xa8f04257),
  2657. 179: uint32(0xeb3be4d0),
  2658. 180: uint32(0xa04776f0),
  2659. 181: uint32(0xe38cd077),
  2660. 182: uint32(0x67d74a24),
  2661. 183: uint32(0x241ceca3),
  2662. 184: uint32(0xf12f6e65),
  2663. 185: uint32(0xb2e4c8e2),
  2664. 186: uint32(0x36bf52b1),
  2665. 187: uint32(0x7574f436),
  2666. 188: uint32(0x3e086616),
  2667. 189: uint32(0x7dc3c091),
  2668. 190: uint32(0xf9985ac2),
  2669. 191: uint32(0xba53fc45),
  2670. 192: uint32(0x1caecae7),
  2671. 193: uint32(0x5f656c60),
  2672. 194: uint32(0xdb3ef633),
  2673. 195: uint32(0x98f550b4),
  2674. 196: uint32(0xd389c294),
  2675. 197: uint32(0x90426413),
  2676. 198: uint32(0x1419fe40),
  2677. 199: uint32(0x57d258c7),
  2678. 200: uint32(0x82e1da01),
  2679. 201: uint32(0xc12a7c86),
  2680. 202: uint32(0x4571e6d5),
  2681. 203: uint32(0x06ba4052),
  2682. 204: uint32(0x4dc6d272),
  2683. 205: uint32(0x0e0d74f5),
  2684. 206: uint32(0x8a56eea6),
  2685. 207: uint32(0xc99d4821),
  2686. 208: uint32(0x61379bf0),
  2687. 209: uint32(0x22fc3d77),
  2688. 210: uint32(0xa6a7a724),
  2689. 211: uint32(0xe56c01a3),
  2690. 212: uint32(0xae109383),
  2691. 213: uint32(0xeddb3504),
  2692. 214: uint32(0x6980af57),
  2693. 215: uint32(0x2a4b09d0),
  2694. 216: uint32(0xff788b16),
  2695. 217: uint32(0xbcb32d91),
  2696. 218: uint32(0x38e8b7c2),
  2697. 219: uint32(0x7b231145),
  2698. 220: uint32(0x305f8365),
  2699. 221: uint32(0x739425e2),
  2700. 222: uint32(0xf7cfbfb1),
  2701. 223: uint32(0xb4041936),
  2702. 224: uint32(0xe69c69c9),
  2703. 225: uint32(0xa557cf4e),
  2704. 226: uint32(0x210c551d),
  2705. 227: uint32(0x62c7f39a),
  2706. 228: uint32(0x29bb61ba),
  2707. 229: uint32(0x6a70c73d),
  2708. 230: uint32(0xee2b5d6e),
  2709. 231: uint32(0xade0fbe9),
  2710. 232: uint32(0x78d3792f),
  2711. 233: uint32(0x3b18dfa8),
  2712. 234: uint32(0xbf4345fb),
  2713. 235: uint32(0xfc88e37c),
  2714. 236: uint32(0xb7f4715c),
  2715. 237: uint32(0xf43fd7db),
  2716. 238: uint32(0x70644d88),
  2717. 239: uint32(0x33afeb0f),
  2718. 240: uint32(0x9b0538de),
  2719. 241: uint32(0xd8ce9e59),
  2720. 242: uint32(0x5c95040a),
  2721. 243: uint32(0x1f5ea28d),
  2722. 244: uint32(0x542230ad),
  2723. 245: uint32(0x17e9962a),
  2724. 246: uint32(0x93b20c79),
  2725. 247: uint32(0xd079aafe),
  2726. 248: uint32(0x054a2838),
  2727. 249: uint32(0x46818ebf),
  2728. 250: uint32(0xc2da14ec),
  2729. 251: uint32(0x8111b26b),
  2730. 252: uint32(0xca6d204b),
  2731. 253: uint32(0x89a686cc),
  2732. 254: uint32(0x0dfd1c9f),
  2733. 255: uint32(0x4e36ba18),
  2734. },
  2735. 1: {
  2736. 1: uint32(0xe1b652ef),
  2737. 2: uint32(0x836bd405),
  2738. 3: uint32(0x62dd86ea),
  2739. 4: uint32(0x06d7a80b),
  2740. 5: uint32(0xe761fae4),
  2741. 6: uint32(0x85bc7c0e),
  2742. 7: uint32(0x640a2ee1),
  2743. 8: uint32(0x0cae5117),
  2744. 9: uint32(0xed1803f8),
  2745. 10: uint32(0x8fc58512),
  2746. 11: uint32(0x6e73d7fd),
  2747. 12: uint32(0x0a79f91c),
  2748. 13: uint32(0xebcfabf3),
  2749. 14: uint32(0x89122d19),
  2750. 15: uint32(0x68a47ff6),
  2751. 16: uint32(0x185ca32e),
  2752. 17: uint32(0xf9eaf1c1),
  2753. 18: uint32(0x9b37772b),
  2754. 19: uint32(0x7a8125c4),
  2755. 20: uint32(0x1e8b0b25),
  2756. 21: uint32(0xff3d59ca),
  2757. 22: uint32(0x9de0df20),
  2758. 23: uint32(0x7c568dcf),
  2759. 24: uint32(0x14f2f239),
  2760. 25: uint32(0xf544a0d6),
  2761. 26: uint32(0x9799263c),
  2762. 27: uint32(0x762f74d3),
  2763. 28: uint32(0x12255a32),
  2764. 29: uint32(0xf39308dd),
  2765. 30: uint32(0x914e8e37),
  2766. 31: uint32(0x70f8dcd8),
  2767. 32: uint32(0x30b8465d),
  2768. 33: uint32(0xd10e14b2),
  2769. 34: uint32(0xb3d39258),
  2770. 35: uint32(0x5265c0b7),
  2771. 36: uint32(0x366fee56),
  2772. 37: uint32(0xd7d9bcb9),
  2773. 38: uint32(0xb5043a53),
  2774. 39: uint32(0x54b268bc),
  2775. 40: uint32(0x3c16174a),
  2776. 41: uint32(0xdda045a5),
  2777. 42: uint32(0xbf7dc34f),
  2778. 43: uint32(0x5ecb91a0),
  2779. 44: uint32(0x3ac1bf41),
  2780. 45: uint32(0xdb77edae),
  2781. 46: uint32(0xb9aa6b44),
  2782. 47: uint32(0x581c39ab),
  2783. 48: uint32(0x28e4e573),
  2784. 49: uint32(0xc952b79c),
  2785. 50: uint32(0xab8f3176),
  2786. 51: uint32(0x4a396399),
  2787. 52: uint32(0x2e334d78),
  2788. 53: uint32(0xcf851f97),
  2789. 54: uint32(0xad58997d),
  2790. 55: uint32(0x4ceecb92),
  2791. 56: uint32(0x244ab464),
  2792. 57: uint32(0xc5fce68b),
  2793. 58: uint32(0xa7216061),
  2794. 59: uint32(0x4697328e),
  2795. 60: uint32(0x229d1c6f),
  2796. 61: uint32(0xc32b4e80),
  2797. 62: uint32(0xa1f6c86a),
  2798. 63: uint32(0x40409a85),
  2799. 64: uint32(0x60708dba),
  2800. 65: uint32(0x81c6df55),
  2801. 66: uint32(0xe31b59bf),
  2802. 67: uint32(0x02ad0b50),
  2803. 68: uint32(0x66a725b1),
  2804. 69: uint32(0x8711775e),
  2805. 70: uint32(0xe5ccf1b4),
  2806. 71: uint32(0x047aa35b),
  2807. 72: uint32(0x6cdedcad),
  2808. 73: uint32(0x8d688e42),
  2809. 74: uint32(0xefb508a8),
  2810. 75: uint32(0x0e035a47),
  2811. 76: uint32(0x6a0974a6),
  2812. 77: uint32(0x8bbf2649),
  2813. 78: uint32(0xe962a0a3),
  2814. 79: uint32(0x08d4f24c),
  2815. 80: uint32(0x782c2e94),
  2816. 81: uint32(0x999a7c7b),
  2817. 82: uint32(0xfb47fa91),
  2818. 83: uint32(0x1af1a87e),
  2819. 84: uint32(0x7efb869f),
  2820. 85: uint32(0x9f4dd470),
  2821. 86: uint32(0xfd90529a),
  2822. 87: uint32(0x1c260075),
  2823. 88: uint32(0x74827f83),
  2824. 89: uint32(0x95342d6c),
  2825. 90: uint32(0xf7e9ab86),
  2826. 91: uint32(0x165ff969),
  2827. 92: uint32(0x7255d788),
  2828. 93: uint32(0x93e38567),
  2829. 94: uint32(0xf13e038d),
  2830. 95: uint32(0x10885162),
  2831. 96: uint32(0x50c8cbe7),
  2832. 97: uint32(0xb17e9908),
  2833. 98: uint32(0xd3a31fe2),
  2834. 99: uint32(0x32154d0d),
  2835. 100: uint32(0x561f63ec),
  2836. 101: uint32(0xb7a93103),
  2837. 102: uint32(0xd574b7e9),
  2838. 103: uint32(0x34c2e506),
  2839. 104: uint32(0x5c669af0),
  2840. 105: uint32(0xbdd0c81f),
  2841. 106: uint32(0xdf0d4ef5),
  2842. 107: uint32(0x3ebb1c1a),
  2843. 108: uint32(0x5ab132fb),
  2844. 109: uint32(0xbb076014),
  2845. 110: uint32(0xd9dae6fe),
  2846. 111: uint32(0x386cb411),
  2847. 112: uint32(0x489468c9),
  2848. 113: uint32(0xa9223a26),
  2849. 114: uint32(0xcbffbccc),
  2850. 115: uint32(0x2a49ee23),
  2851. 116: uint32(0x4e43c0c2),
  2852. 117: uint32(0xaff5922d),
  2853. 118: uint32(0xcd2814c7),
  2854. 119: uint32(0x2c9e4628),
  2855. 120: uint32(0x443a39de),
  2856. 121: uint32(0xa58c6b31),
  2857. 122: uint32(0xc751eddb),
  2858. 123: uint32(0x26e7bf34),
  2859. 124: uint32(0x42ed91d5),
  2860. 125: uint32(0xa35bc33a),
  2861. 126: uint32(0xc18645d0),
  2862. 127: uint32(0x2030173f),
  2863. 128: uint32(0x81e66bae),
  2864. 129: uint32(0x60503941),
  2865. 130: uint32(0x028dbfab),
  2866. 131: uint32(0xe33bed44),
  2867. 132: uint32(0x8731c3a5),
  2868. 133: uint32(0x6687914a),
  2869. 134: uint32(0x045a17a0),
  2870. 135: uint32(0xe5ec454f),
  2871. 136: uint32(0x8d483ab9),
  2872. 137: uint32(0x6cfe6856),
  2873. 138: uint32(0x0e23eebc),
  2874. 139: uint32(0xef95bc53),
  2875. 140: uint32(0x8b9f92b2),
  2876. 141: uint32(0x6a29c05d),
  2877. 142: uint32(0x08f446b7),
  2878. 143: uint32(0xe9421458),
  2879. 144: uint32(0x99bac880),
  2880. 145: uint32(0x780c9a6f),
  2881. 146: uint32(0x1ad11c85),
  2882. 147: uint32(0xfb674e6a),
  2883. 148: uint32(0x9f6d608b),
  2884. 149: uint32(0x7edb3264),
  2885. 150: uint32(0x1c06b48e),
  2886. 151: uint32(0xfdb0e661),
  2887. 152: uint32(0x95149997),
  2888. 153: uint32(0x74a2cb78),
  2889. 154: uint32(0x167f4d92),
  2890. 155: uint32(0xf7c91f7d),
  2891. 156: uint32(0x93c3319c),
  2892. 157: uint32(0x72756373),
  2893. 158: uint32(0x10a8e599),
  2894. 159: uint32(0xf11eb776),
  2895. 160: uint32(0xb15e2df3),
  2896. 161: uint32(0x50e87f1c),
  2897. 162: uint32(0x3235f9f6),
  2898. 163: uint32(0xd383ab19),
  2899. 164: uint32(0xb78985f8),
  2900. 165: uint32(0x563fd717),
  2901. 166: uint32(0x34e251fd),
  2902. 167: uint32(0xd5540312),
  2903. 168: uint32(0xbdf07ce4),
  2904. 169: uint32(0x5c462e0b),
  2905. 170: uint32(0x3e9ba8e1),
  2906. 171: uint32(0xdf2dfa0e),
  2907. 172: uint32(0xbb27d4ef),
  2908. 173: uint32(0x5a918600),
  2909. 174: uint32(0x384c00ea),
  2910. 175: uint32(0xd9fa5205),
  2911. 176: uint32(0xa9028edd),
  2912. 177: uint32(0x48b4dc32),
  2913. 178: uint32(0x2a695ad8),
  2914. 179: uint32(0xcbdf0837),
  2915. 180: uint32(0xafd526d6),
  2916. 181: uint32(0x4e637439),
  2917. 182: uint32(0x2cbef2d3),
  2918. 183: uint32(0xcd08a03c),
  2919. 184: uint32(0xa5acdfca),
  2920. 185: uint32(0x441a8d25),
  2921. 186: uint32(0x26c70bcf),
  2922. 187: uint32(0xc7715920),
  2923. 188: uint32(0xa37b77c1),
  2924. 189: uint32(0x42cd252e),
  2925. 190: uint32(0x2010a3c4),
  2926. 191: uint32(0xc1a6f12b),
  2927. 192: uint32(0xe196e614),
  2928. 193: uint32(0x0020b4fb),
  2929. 194: uint32(0x62fd3211),
  2930. 195: uint32(0x834b60fe),
  2931. 196: uint32(0xe7414e1f),
  2932. 197: uint32(0x06f71cf0),
  2933. 198: uint32(0x642a9a1a),
  2934. 199: uint32(0x859cc8f5),
  2935. 200: uint32(0xed38b703),
  2936. 201: uint32(0x0c8ee5ec),
  2937. 202: uint32(0x6e536306),
  2938. 203: uint32(0x8fe531e9),
  2939. 204: uint32(0xebef1f08),
  2940. 205: uint32(0x0a594de7),
  2941. 206: uint32(0x6884cb0d),
  2942. 207: uint32(0x893299e2),
  2943. 208: uint32(0xf9ca453a),
  2944. 209: uint32(0x187c17d5),
  2945. 210: uint32(0x7aa1913f),
  2946. 211: uint32(0x9b17c3d0),
  2947. 212: uint32(0xff1ded31),
  2948. 213: uint32(0x1eabbfde),
  2949. 214: uint32(0x7c763934),
  2950. 215: uint32(0x9dc06bdb),
  2951. 216: uint32(0xf564142d),
  2952. 217: uint32(0x14d246c2),
  2953. 218: uint32(0x760fc028),
  2954. 219: uint32(0x97b992c7),
  2955. 220: uint32(0xf3b3bc26),
  2956. 221: uint32(0x1205eec9),
  2957. 222: uint32(0x70d86823),
  2958. 223: uint32(0x916e3acc),
  2959. 224: uint32(0xd12ea049),
  2960. 225: uint32(0x3098f2a6),
  2961. 226: uint32(0x5245744c),
  2962. 227: uint32(0xb3f326a3),
  2963. 228: uint32(0xd7f90842),
  2964. 229: uint32(0x364f5aad),
  2965. 230: uint32(0x5492dc47),
  2966. 231: uint32(0xb5248ea8),
  2967. 232: uint32(0xdd80f15e),
  2968. 233: uint32(0x3c36a3b1),
  2969. 234: uint32(0x5eeb255b),
  2970. 235: uint32(0xbf5d77b4),
  2971. 236: uint32(0xdb575955),
  2972. 237: uint32(0x3ae10bba),
  2973. 238: uint32(0x583c8d50),
  2974. 239: uint32(0xb98adfbf),
  2975. 240: uint32(0xc9720367),
  2976. 241: uint32(0x28c45188),
  2977. 242: uint32(0x4a19d762),
  2978. 243: uint32(0xabaf858d),
  2979. 244: uint32(0xcfa5ab6c),
  2980. 245: uint32(0x2e13f983),
  2981. 246: uint32(0x4cce7f69),
  2982. 247: uint32(0xad782d86),
  2983. 248: uint32(0xc5dc5270),
  2984. 249: uint32(0x246a009f),
  2985. 250: uint32(0x46b78675),
  2986. 251: uint32(0xa701d49a),
  2987. 252: uint32(0xc30bfa7b),
  2988. 253: uint32(0x22bda894),
  2989. 254: uint32(0x40602e7e),
  2990. 255: uint32(0xa1d67c91),
  2991. },
  2992. 2: {
  2993. 1: uint32(0x5880e2d7),
  2994. 2: uint32(0xf106b474),
  2995. 3: uint32(0xa98656a3),
  2996. 4: uint32(0xe20d68e9),
  2997. 5: uint32(0xba8d8a3e),
  2998. 6: uint32(0x130bdc9d),
  2999. 7: uint32(0x4b8b3e4a),
  3000. 8: uint32(0x851da109),
  3001. 9: uint32(0xdd9d43de),
  3002. 10: uint32(0x741b157d),
  3003. 11: uint32(0x2c9bf7aa),
  3004. 12: uint32(0x6710c9e0),
  3005. 13: uint32(0x3f902b37),
  3006. 14: uint32(0x96167d94),
  3007. 15: uint32(0xce969f43),
  3008. 16: uint32(0x0a3b4213),
  3009. 17: uint32(0x52bba0c4),
  3010. 18: uint32(0xfb3df667),
  3011. 19: uint32(0xa3bd14b0),
  3012. 20: uint32(0xe8362afa),
  3013. 21: uint32(0xb0b6c82d),
  3014. 22: uint32(0x19309e8e),
  3015. 23: uint32(0x41b07c59),
  3016. 24: uint32(0x8f26e31a),
  3017. 25: uint32(0xd7a601cd),
  3018. 26: uint32(0x7e20576e),
  3019. 27: uint32(0x26a0b5b9),
  3020. 28: uint32(0x6d2b8bf3),
  3021. 29: uint32(0x35ab6924),
  3022. 30: uint32(0x9c2d3f87),
  3023. 31: uint32(0xc4addd50),
  3024. 32: uint32(0x14768426),
  3025. 33: uint32(0x4cf666f1),
  3026. 34: uint32(0xe5703052),
  3027. 35: uint32(0xbdf0d285),
  3028. 36: uint32(0xf67beccf),
  3029. 37: uint32(0xaefb0e18),
  3030. 38: uint32(0x077d58bb),
  3031. 39: uint32(0x5ffdba6c),
  3032. 40: uint32(0x916b252f),
  3033. 41: uint32(0xc9ebc7f8),
  3034. 42: uint32(0x606d915b),
  3035. 43: uint32(0x38ed738c),
  3036. 44: uint32(0x73664dc6),
  3037. 45: uint32(0x2be6af11),
  3038. 46: uint32(0x8260f9b2),
  3039. 47: uint32(0xdae01b65),
  3040. 48: uint32(0x1e4dc635),
  3041. 49: uint32(0x46cd24e2),
  3042. 50: uint32(0xef4b7241),
  3043. 51: uint32(0xb7cb9096),
  3044. 52: uint32(0xfc40aedc),
  3045. 53: uint32(0xa4c04c0b),
  3046. 54: uint32(0x0d461aa8),
  3047. 55: uint32(0x55c6f87f),
  3048. 56: uint32(0x9b50673c),
  3049. 57: uint32(0xc3d085eb),
  3050. 58: uint32(0x6a56d348),
  3051. 59: uint32(0x32d6319f),
  3052. 60: uint32(0x795d0fd5),
  3053. 61: uint32(0x21dded02),
  3054. 62: uint32(0x885bbba1),
  3055. 63: uint32(0xd0db5976),
  3056. 64: uint32(0x28ec084d),
  3057. 65: uint32(0x706cea9a),
  3058. 66: uint32(0xd9eabc39),
  3059. 67: uint32(0x816a5eee),
  3060. 68: uint32(0xcae160a4),
  3061. 69: uint32(0x92618273),
  3062. 70: uint32(0x3be7d4d0),
  3063. 71: uint32(0x63673607),
  3064. 72: uint32(0xadf1a944),
  3065. 73: uint32(0xf5714b93),
  3066. 74: uint32(0x5cf71d30),
  3067. 75: uint32(0x0477ffe7),
  3068. 76: uint32(0x4ffcc1ad),
  3069. 77: uint32(0x177c237a),
  3070. 78: uint32(0xbefa75d9),
  3071. 79: uint32(0xe67a970e),
  3072. 80: uint32(0x22d74a5e),
  3073. 81: uint32(0x7a57a889),
  3074. 82: uint32(0xd3d1fe2a),
  3075. 83: uint32(0x8b511cfd),
  3076. 84: uint32(0xc0da22b7),
  3077. 85: uint32(0x985ac060),
  3078. 86: uint32(0x31dc96c3),
  3079. 87: uint32(0x695c7414),
  3080. 88: uint32(0xa7caeb57),
  3081. 89: uint32(0xff4a0980),
  3082. 90: uint32(0x56cc5f23),
  3083. 91: uint32(0x0e4cbdf4),
  3084. 92: uint32(0x45c783be),
  3085. 93: uint32(0x1d476169),
  3086. 94: uint32(0xb4c137ca),
  3087. 95: uint32(0xec41d51d),
  3088. 96: uint32(0x3c9a8c6b),
  3089. 97: uint32(0x641a6ebc),
  3090. 98: uint32(0xcd9c381f),
  3091. 99: uint32(0x951cdac8),
  3092. 100: uint32(0xde97e482),
  3093. 101: uint32(0x86170655),
  3094. 102: uint32(0x2f9150f6),
  3095. 103: uint32(0x7711b221),
  3096. 104: uint32(0xb9872d62),
  3097. 105: uint32(0xe107cfb5),
  3098. 106: uint32(0x48819916),
  3099. 107: uint32(0x10017bc1),
  3100. 108: uint32(0x5b8a458b),
  3101. 109: uint32(0x030aa75c),
  3102. 110: uint32(0xaa8cf1ff),
  3103. 111: uint32(0xf20c1328),
  3104. 112: uint32(0x36a1ce78),
  3105. 113: uint32(0x6e212caf),
  3106. 114: uint32(0xc7a77a0c),
  3107. 115: uint32(0x9f2798db),
  3108. 116: uint32(0xd4aca691),
  3109. 117: uint32(0x8c2c4446),
  3110. 118: uint32(0x25aa12e5),
  3111. 119: uint32(0x7d2af032),
  3112. 120: uint32(0xb3bc6f71),
  3113. 121: uint32(0xeb3c8da6),
  3114. 122: uint32(0x42badb05),
  3115. 123: uint32(0x1a3a39d2),
  3116. 124: uint32(0x51b10798),
  3117. 125: uint32(0x0931e54f),
  3118. 126: uint32(0xa0b7b3ec),
  3119. 127: uint32(0xf837513b),
  3120. 128: uint32(0x50d8119a),
  3121. 129: uint32(0x0858f34d),
  3122. 130: uint32(0xa1dea5ee),
  3123. 131: uint32(0xf95e4739),
  3124. 132: uint32(0xb2d57973),
  3125. 133: uint32(0xea559ba4),
  3126. 134: uint32(0x43d3cd07),
  3127. 135: uint32(0x1b532fd0),
  3128. 136: uint32(0xd5c5b093),
  3129. 137: uint32(0x8d455244),
  3130. 138: uint32(0x24c304e7),
  3131. 139: uint32(0x7c43e630),
  3132. 140: uint32(0x37c8d87a),
  3133. 141: uint32(0x6f483aad),
  3134. 142: uint32(0xc6ce6c0e),
  3135. 143: uint32(0x9e4e8ed9),
  3136. 144: uint32(0x5ae35389),
  3137. 145: uint32(0x0263b15e),
  3138. 146: uint32(0xabe5e7fd),
  3139. 147: uint32(0xf365052a),
  3140. 148: uint32(0xb8ee3b60),
  3141. 149: uint32(0xe06ed9b7),
  3142. 150: uint32(0x49e88f14),
  3143. 151: uint32(0x11686dc3),
  3144. 152: uint32(0xdffef280),
  3145. 153: uint32(0x877e1057),
  3146. 154: uint32(0x2ef846f4),
  3147. 155: uint32(0x7678a423),
  3148. 156: uint32(0x3df39a69),
  3149. 157: uint32(0x657378be),
  3150. 158: uint32(0xccf52e1d),
  3151. 159: uint32(0x9475ccca),
  3152. 160: uint32(0x44ae95bc),
  3153. 161: uint32(0x1c2e776b),
  3154. 162: uint32(0xb5a821c8),
  3155. 163: uint32(0xed28c31f),
  3156. 164: uint32(0xa6a3fd55),
  3157. 165: uint32(0xfe231f82),
  3158. 166: uint32(0x57a54921),
  3159. 167: uint32(0x0f25abf6),
  3160. 168: uint32(0xc1b334b5),
  3161. 169: uint32(0x9933d662),
  3162. 170: uint32(0x30b580c1),
  3163. 171: uint32(0x68356216),
  3164. 172: uint32(0x23be5c5c),
  3165. 173: uint32(0x7b3ebe8b),
  3166. 174: uint32(0xd2b8e828),
  3167. 175: uint32(0x8a380aff),
  3168. 176: uint32(0x4e95d7af),
  3169. 177: uint32(0x16153578),
  3170. 178: uint32(0xbf9363db),
  3171. 179: uint32(0xe713810c),
  3172. 180: uint32(0xac98bf46),
  3173. 181: uint32(0xf4185d91),
  3174. 182: uint32(0x5d9e0b32),
  3175. 183: uint32(0x051ee9e5),
  3176. 184: uint32(0xcb8876a6),
  3177. 185: uint32(0x93089471),
  3178. 186: uint32(0x3a8ec2d2),
  3179. 187: uint32(0x620e2005),
  3180. 188: uint32(0x29851e4f),
  3181. 189: uint32(0x7105fc98),
  3182. 190: uint32(0xd883aa3b),
  3183. 191: uint32(0x800348ec),
  3184. 192: uint32(0x783419d7),
  3185. 193: uint32(0x20b4fb00),
  3186. 194: uint32(0x8932ada3),
  3187. 195: uint32(0xd1b24f74),
  3188. 196: uint32(0x9a39713e),
  3189. 197: uint32(0xc2b993e9),
  3190. 198: uint32(0x6b3fc54a),
  3191. 199: uint32(0x33bf279d),
  3192. 200: uint32(0xfd29b8de),
  3193. 201: uint32(0xa5a95a09),
  3194. 202: uint32(0x0c2f0caa),
  3195. 203: uint32(0x54afee7d),
  3196. 204: uint32(0x1f24d037),
  3197. 205: uint32(0x47a432e0),
  3198. 206: uint32(0xee226443),
  3199. 207: uint32(0xb6a28694),
  3200. 208: uint32(0x720f5bc4),
  3201. 209: uint32(0x2a8fb913),
  3202. 210: uint32(0x8309efb0),
  3203. 211: uint32(0xdb890d67),
  3204. 212: uint32(0x9002332d),
  3205. 213: uint32(0xc882d1fa),
  3206. 214: uint32(0x61048759),
  3207. 215: uint32(0x3984658e),
  3208. 216: uint32(0xf712facd),
  3209. 217: uint32(0xaf92181a),
  3210. 218: uint32(0x06144eb9),
  3211. 219: uint32(0x5e94ac6e),
  3212. 220: uint32(0x151f9224),
  3213. 221: uint32(0x4d9f70f3),
  3214. 222: uint32(0xe4192650),
  3215. 223: uint32(0xbc99c487),
  3216. 224: uint32(0x6c429df1),
  3217. 225: uint32(0x34c27f26),
  3218. 226: uint32(0x9d442985),
  3219. 227: uint32(0xc5c4cb52),
  3220. 228: uint32(0x8e4ff518),
  3221. 229: uint32(0xd6cf17cf),
  3222. 230: uint32(0x7f49416c),
  3223. 231: uint32(0x27c9a3bb),
  3224. 232: uint32(0xe95f3cf8),
  3225. 233: uint32(0xb1dfde2f),
  3226. 234: uint32(0x1859888c),
  3227. 235: uint32(0x40d96a5b),
  3228. 236: uint32(0x0b525411),
  3229. 237: uint32(0x53d2b6c6),
  3230. 238: uint32(0xfa54e065),
  3231. 239: uint32(0xa2d402b2),
  3232. 240: uint32(0x6679dfe2),
  3233. 241: uint32(0x3ef93d35),
  3234. 242: uint32(0x977f6b96),
  3235. 243: uint32(0xcfff8941),
  3236. 244: uint32(0x8474b70b),
  3237. 245: uint32(0xdcf455dc),
  3238. 246: uint32(0x7572037f),
  3239. 247: uint32(0x2df2e1a8),
  3240. 248: uint32(0xe3647eeb),
  3241. 249: uint32(0xbbe49c3c),
  3242. 250: uint32(0x1262ca9f),
  3243. 251: uint32(0x4ae22848),
  3244. 252: uint32(0x01691602),
  3245. 253: uint32(0x59e9f4d5),
  3246. 254: uint32(0xf06fa276),
  3247. 255: uint32(0xa8ef40a1),
  3248. },
  3249. 3: {
  3250. 1: uint32(0x463b6765),
  3251. 2: uint32(0x8c76ceca),
  3252. 3: uint32(0xca4da9af),
  3253. 4: uint32(0x59ebed4e),
  3254. 5: uint32(0x1fd08a2b),
  3255. 6: uint32(0xd59d2384),
  3256. 7: uint32(0x93a644e1),
  3257. 8: uint32(0xb2d6db9d),
  3258. 9: uint32(0xf4edbcf8),
  3259. 10: uint32(0x3ea01557),
  3260. 11: uint32(0x789b7232),
  3261. 12: uint32(0xeb3d36d3),
  3262. 13: uint32(0xad0651b6),
  3263. 14: uint32(0x674bf819),
  3264. 15: uint32(0x21709f7c),
  3265. 16: uint32(0x25abc6e0),
  3266. 17: uint32(0x6390a185),
  3267. 18: uint32(0xa9dd082a),
  3268. 19: uint32(0xefe66f4f),
  3269. 20: uint32(0x7c402bae),
  3270. 21: uint32(0x3a7b4ccb),
  3271. 22: uint32(0xf036e564),
  3272. 23: uint32(0xb60d8201),
  3273. 24: uint32(0x977d1d7d),
  3274. 25: uint32(0xd1467a18),
  3275. 26: uint32(0x1b0bd3b7),
  3276. 27: uint32(0x5d30b4d2),
  3277. 28: uint32(0xce96f033),
  3278. 29: uint32(0x88ad9756),
  3279. 30: uint32(0x42e03ef9),
  3280. 31: uint32(0x04db599c),
  3281. 32: uint32(0x0b50fc1a),
  3282. 33: uint32(0x4d6b9b7f),
  3283. 34: uint32(0x872632d0),
  3284. 35: uint32(0xc11d55b5),
  3285. 36: uint32(0x52bb1154),
  3286. 37: uint32(0x14807631),
  3287. 38: uint32(0xdecddf9e),
  3288. 39: uint32(0x98f6b8fb),
  3289. 40: uint32(0xb9862787),
  3290. 41: uint32(0xffbd40e2),
  3291. 42: uint32(0x35f0e94d),
  3292. 43: uint32(0x73cb8e28),
  3293. 44: uint32(0xe06dcac9),
  3294. 45: uint32(0xa656adac),
  3295. 46: uint32(0x6c1b0403),
  3296. 47: uint32(0x2a206366),
  3297. 48: uint32(0x2efb3afa),
  3298. 49: uint32(0x68c05d9f),
  3299. 50: uint32(0xa28df430),
  3300. 51: uint32(0xe4b69355),
  3301. 52: uint32(0x7710d7b4),
  3302. 53: uint32(0x312bb0d1),
  3303. 54: uint32(0xfb66197e),
  3304. 55: uint32(0xbd5d7e1b),
  3305. 56: uint32(0x9c2de167),
  3306. 57: uint32(0xda168602),
  3307. 58: uint32(0x105b2fad),
  3308. 59: uint32(0x566048c8),
  3309. 60: uint32(0xc5c60c29),
  3310. 61: uint32(0x83fd6b4c),
  3311. 62: uint32(0x49b0c2e3),
  3312. 63: uint32(0x0f8ba586),
  3313. 64: uint32(0x16a0f835),
  3314. 65: uint32(0x509b9f50),
  3315. 66: uint32(0x9ad636ff),
  3316. 67: uint32(0xdced519a),
  3317. 68: uint32(0x4f4b157b),
  3318. 69: uint32(0x0970721e),
  3319. 70: uint32(0xc33ddbb1),
  3320. 71: uint32(0x8506bcd4),
  3321. 72: uint32(0xa47623a8),
  3322. 73: uint32(0xe24d44cd),
  3323. 74: uint32(0x2800ed62),
  3324. 75: uint32(0x6e3b8a07),
  3325. 76: uint32(0xfd9dcee6),
  3326. 77: uint32(0xbba6a983),
  3327. 78: uint32(0x71eb002c),
  3328. 79: uint32(0x37d06749),
  3329. 80: uint32(0x330b3ed5),
  3330. 81: uint32(0x753059b0),
  3331. 82: uint32(0xbf7df01f),
  3332. 83: uint32(0xf946977a),
  3333. 84: uint32(0x6ae0d39b),
  3334. 85: uint32(0x2cdbb4fe),
  3335. 86: uint32(0xe6961d51),
  3336. 87: uint32(0xa0ad7a34),
  3337. 88: uint32(0x81dde548),
  3338. 89: uint32(0xc7e6822d),
  3339. 90: uint32(0x0dab2b82),
  3340. 91: uint32(0x4b904ce7),
  3341. 92: uint32(0xd8360806),
  3342. 93: uint32(0x9e0d6f63),
  3343. 94: uint32(0x5440c6cc),
  3344. 95: uint32(0x127ba1a9),
  3345. 96: uint32(0x1df0042f),
  3346. 97: uint32(0x5bcb634a),
  3347. 98: uint32(0x9186cae5),
  3348. 99: uint32(0xd7bdad80),
  3349. 100: uint32(0x441be961),
  3350. 101: uint32(0x02208e04),
  3351. 102: uint32(0xc86d27ab),
  3352. 103: uint32(0x8e5640ce),
  3353. 104: uint32(0xaf26dfb2),
  3354. 105: uint32(0xe91db8d7),
  3355. 106: uint32(0x23501178),
  3356. 107: uint32(0x656b761d),
  3357. 108: uint32(0xf6cd32fc),
  3358. 109: uint32(0xb0f65599),
  3359. 110: uint32(0x7abbfc36),
  3360. 111: uint32(0x3c809b53),
  3361. 112: uint32(0x385bc2cf),
  3362. 113: uint32(0x7e60a5aa),
  3363. 114: uint32(0xb42d0c05),
  3364. 115: uint32(0xf2166b60),
  3365. 116: uint32(0x61b02f81),
  3366. 117: uint32(0x278b48e4),
  3367. 118: uint32(0xedc6e14b),
  3368. 119: uint32(0xabfd862e),
  3369. 120: uint32(0x8a8d1952),
  3370. 121: uint32(0xccb67e37),
  3371. 122: uint32(0x06fbd798),
  3372. 123: uint32(0x40c0b0fd),
  3373. 124: uint32(0xd366f41c),
  3374. 125: uint32(0x955d9379),
  3375. 126: uint32(0x5f103ad6),
  3376. 127: uint32(0x192b5db3),
  3377. 128: uint32(0x2c40f16b),
  3378. 129: uint32(0x6a7b960e),
  3379. 130: uint32(0xa0363fa1),
  3380. 131: uint32(0xe60d58c4),
  3381. 132: uint32(0x75ab1c25),
  3382. 133: uint32(0x33907b40),
  3383. 134: uint32(0xf9ddd2ef),
  3384. 135: uint32(0xbfe6b58a),
  3385. 136: uint32(0x9e962af6),
  3386. 137: uint32(0xd8ad4d93),
  3387. 138: uint32(0x12e0e43c),
  3388. 139: uint32(0x54db8359),
  3389. 140: uint32(0xc77dc7b8),
  3390. 141: uint32(0x8146a0dd),
  3391. 142: uint32(0x4b0b0972),
  3392. 143: uint32(0x0d306e17),
  3393. 144: uint32(0x09eb378b),
  3394. 145: uint32(0x4fd050ee),
  3395. 146: uint32(0x859df941),
  3396. 147: uint32(0xc3a69e24),
  3397. 148: uint32(0x5000dac5),
  3398. 149: uint32(0x163bbda0),
  3399. 150: uint32(0xdc76140f),
  3400. 151: uint32(0x9a4d736a),
  3401. 152: uint32(0xbb3dec16),
  3402. 153: uint32(0xfd068b73),
  3403. 154: uint32(0x374b22dc),
  3404. 155: uint32(0x717045b9),
  3405. 156: uint32(0xe2d60158),
  3406. 157: uint32(0xa4ed663d),
  3407. 158: uint32(0x6ea0cf92),
  3408. 159: uint32(0x289ba8f7),
  3409. 160: uint32(0x27100d71),
  3410. 161: uint32(0x612b6a14),
  3411. 162: uint32(0xab66c3bb),
  3412. 163: uint32(0xed5da4de),
  3413. 164: uint32(0x7efbe03f),
  3414. 165: uint32(0x38c0875a),
  3415. 166: uint32(0xf28d2ef5),
  3416. 167: uint32(0xb4b64990),
  3417. 168: uint32(0x95c6d6ec),
  3418. 169: uint32(0xd3fdb189),
  3419. 170: uint32(0x19b01826),
  3420. 171: uint32(0x5f8b7f43),
  3421. 172: uint32(0xcc2d3ba2),
  3422. 173: uint32(0x8a165cc7),
  3423. 174: uint32(0x405bf568),
  3424. 175: uint32(0x0660920d),
  3425. 176: uint32(0x02bbcb91),
  3426. 177: uint32(0x4480acf4),
  3427. 178: uint32(0x8ecd055b),
  3428. 179: uint32(0xc8f6623e),
  3429. 180: uint32(0x5b5026df),
  3430. 181: uint32(0x1d6b41ba),
  3431. 182: uint32(0xd726e815),
  3432. 183: uint32(0x911d8f70),
  3433. 184: uint32(0xb06d100c),
  3434. 185: uint32(0xf6567769),
  3435. 186: uint32(0x3c1bdec6),
  3436. 187: uint32(0x7a20b9a3),
  3437. 188: uint32(0xe986fd42),
  3438. 189: uint32(0xafbd9a27),
  3439. 190: uint32(0x65f03388),
  3440. 191: uint32(0x23cb54ed),
  3441. 192: uint32(0x3ae0095e),
  3442. 193: uint32(0x7cdb6e3b),
  3443. 194: uint32(0xb696c794),
  3444. 195: uint32(0xf0ada0f1),
  3445. 196: uint32(0x630be410),
  3446. 197: uint32(0x25308375),
  3447. 198: uint32(0xef7d2ada),
  3448. 199: uint32(0xa9464dbf),
  3449. 200: uint32(0x8836d2c3),
  3450. 201: uint32(0xce0db5a6),
  3451. 202: uint32(0x04401c09),
  3452. 203: uint32(0x427b7b6c),
  3453. 204: uint32(0xd1dd3f8d),
  3454. 205: uint32(0x97e658e8),
  3455. 206: uint32(0x5dabf147),
  3456. 207: uint32(0x1b909622),
  3457. 208: uint32(0x1f4bcfbe),
  3458. 209: uint32(0x5970a8db),
  3459. 210: uint32(0x933d0174),
  3460. 211: uint32(0xd5066611),
  3461. 212: uint32(0x46a022f0),
  3462. 213: uint32(0x009b4595),
  3463. 214: uint32(0xcad6ec3a),
  3464. 215: uint32(0x8ced8b5f),
  3465. 216: uint32(0xad9d1423),
  3466. 217: uint32(0xeba67346),
  3467. 218: uint32(0x21ebdae9),
  3468. 219: uint32(0x67d0bd8c),
  3469. 220: uint32(0xf476f96d),
  3470. 221: uint32(0xb24d9e08),
  3471. 222: uint32(0x780037a7),
  3472. 223: uint32(0x3e3b50c2),
  3473. 224: uint32(0x31b0f544),
  3474. 225: uint32(0x778b9221),
  3475. 226: uint32(0xbdc63b8e),
  3476. 227: uint32(0xfbfd5ceb),
  3477. 228: uint32(0x685b180a),
  3478. 229: uint32(0x2e607f6f),
  3479. 230: uint32(0xe42dd6c0),
  3480. 231: uint32(0xa216b1a5),
  3481. 232: uint32(0x83662ed9),
  3482. 233: uint32(0xc55d49bc),
  3483. 234: uint32(0x0f10e013),
  3484. 235: uint32(0x492b8776),
  3485. 236: uint32(0xda8dc397),
  3486. 237: uint32(0x9cb6a4f2),
  3487. 238: uint32(0x56fb0d5d),
  3488. 239: uint32(0x10c06a38),
  3489. 240: uint32(0x141b33a4),
  3490. 241: uint32(0x522054c1),
  3491. 242: uint32(0x986dfd6e),
  3492. 243: uint32(0xde569a0b),
  3493. 244: uint32(0x4df0deea),
  3494. 245: uint32(0x0bcbb98f),
  3495. 246: uint32(0xc1861020),
  3496. 247: uint32(0x87bd7745),
  3497. 248: uint32(0xa6cde839),
  3498. 249: uint32(0xe0f68f5c),
  3499. 250: uint32(0x2abb26f3),
  3500. 251: uint32(0x6c804196),
  3501. 252: uint32(0xff260577),
  3502. 253: uint32(0xb91d6212),
  3503. 254: uint32(0x7350cbbd),
  3504. 255: uint32(0x356bacd8),
  3505. },
  3506. }
  3507. var _x2n_table = [32]Tz_crc_t{
  3508. 0: uint32(0x40000000),
  3509. 1: uint32(0x20000000),
  3510. 2: uint32(0x08000000),
  3511. 3: uint32(0x00800000),
  3512. 4: uint32(0x00008000),
  3513. 5: uint32(0xedb88320),
  3514. 6: uint32(0xb1e6b092),
  3515. 7: uint32(0xa06a2517),
  3516. 8: uint32(0xed627dae),
  3517. 9: uint32(0x88d14467),
  3518. 10: uint32(0xd7bbfe6a),
  3519. 11: uint32(0xec447f11),
  3520. 12: uint32(0x8e7ea170),
  3521. 13: uint32(0x6427800e),
  3522. 14: uint32(0x4d47bae0),
  3523. 15: uint32(0x09fe548f),
  3524. 16: uint32(0x83852d0f),
  3525. 17: uint32(0x30362f1a),
  3526. 18: uint32(0x7b5a9cc3),
  3527. 19: uint32(0x31fec169),
  3528. 20: uint32(0x9fec022a),
  3529. 21: uint32(0x6c8dedc4),
  3530. 22: uint32(0x15d6874d),
  3531. 23: uint32(0x5fde7a4e),
  3532. 24: uint32(0xbad90e37),
  3533. 25: uint32(0x2e4e5eef),
  3534. 26: uint32(0x4eaba214),
  3535. 27: uint32(0xa8a472c0),
  3536. 28: uint32(0x429a969e),
  3537. 29: uint32(0x148d302a),
  3538. 30: uint32(0xc40ba6d0),
  3539. 31: uint32(0xc4e22c3c),
  3540. }
  3541. /* CRC polynomial. */
  3542. // C documentation
  3543. //
  3544. // /*
  3545. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  3546. // reflected. For speed, this requires that a not be zero.
  3547. // */
  3548. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  3549. var m, p Tz_crc_t
  3550. var v2 uint32
  3551. _, _, _ = m, p, v2
  3552. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  3553. p = uint32(0)
  3554. for {
  3555. if a&m != 0 {
  3556. p ^= b
  3557. if a&(m-uint32(1)) == uint32(0) {
  3558. break
  3559. }
  3560. }
  3561. m >>= uint32(1)
  3562. if b&uint32(1) != 0 {
  3563. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  3564. } else {
  3565. v2 = b >> int32(1)
  3566. }
  3567. b = v2
  3568. goto _1
  3569. _1:
  3570. }
  3571. return p
  3572. }
  3573. // C documentation
  3574. //
  3575. // /*
  3576. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  3577. // initialized.
  3578. // */
  3579. func _x2nmodp(tls *libc.TLS, n Toff64_t, k uint32) (r Tz_crc_t) {
  3580. var p Tz_crc_t
  3581. _ = p
  3582. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  3583. for n != 0 {
  3584. if n&int64(1) != 0 {
  3585. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  3586. }
  3587. n >>= int64(1)
  3588. k++
  3589. }
  3590. return p
  3591. }
  3592. // C documentation
  3593. //
  3594. // /* =========================================================================
  3595. // * This function can be used by asm versions of crc32(), and to force the
  3596. // * generation of the CRC tables in a threaded application.
  3597. // */
  3598. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  3599. return uintptr(unsafe.Pointer(&_crc_table))
  3600. }
  3601. /* =========================================================================
  3602. * Use ARM machine instructions if available. This will compute the CRC about
  3603. * ten times faster than the braided calculation. This code does not check for
  3604. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  3605. * only be defined if the compilation specifies an ARM processor architecture
  3606. * that has the instructions. For example, compiling with -march=armv8.1-a or
  3607. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  3608. * instructions.
  3609. */
  3610. // C documentation
  3611. //
  3612. // /*
  3613. // Return the CRC of the W bytes in the word_t data, taking the
  3614. // least-significant byte of the word as the first byte of data, without any pre
  3615. // or post conditioning. This is used to combine the CRCs of each braid.
  3616. // */
  3617. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  3618. var k int32
  3619. _ = k
  3620. k = 0
  3621. for {
  3622. if !(k < int32(m_W)) {
  3623. break
  3624. }
  3625. data = data>>libc.Int32FromInt32(8) ^ _crc_table[data&uint32(0xff)]
  3626. goto _1
  3627. _1:
  3628. k++
  3629. }
  3630. return data
  3631. }
  3632. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  3633. var k int32
  3634. _ = k
  3635. k = 0
  3636. for {
  3637. if !(k < int32(m_W)) {
  3638. break
  3639. }
  3640. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint32(0xff)]
  3641. goto _1
  3642. _1:
  3643. k++
  3644. }
  3645. return data
  3646. }
  3647. // C documentation
  3648. //
  3649. // /* ========================================================================= */
  3650. func Xcrc32_z(tls *libc.TLS, crc uint64, buf uintptr, len1 Tz_size_t) (r uint64) {
  3651. bp := tls.Alloc(16)
  3652. defer tls.Free(16)
  3653. var blks, v2, v4 Tz_size_t
  3654. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  3655. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  3656. var k int32
  3657. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  3658. var _ /* endian at bp+0 */ uint32
  3659. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = blks, comb, crc0, crc01, crc1, crc11, crc2, crc21, crc3, crc31, crc4, crc41, k, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41, words, v1, v10, v11, v12, v13, v14, v2, v4, v6, v7, v8, v9
  3660. /* Return initial CRC, if requested. */
  3661. if buf == uintptr(m_Z_NULL) {
  3662. return uint64(0)
  3663. }
  3664. /* Pre-condition the CRC */
  3665. crc = ^crc & uint64(0xffffffff)
  3666. /* If provided enough bytes, do a braided CRC calculation. */
  3667. if len1 >= uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W)+libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) {
  3668. /* Compute the CRC up to a z_word_t boundary. */
  3669. for len1 != 0 && uint64(uint64(buf))&uint64(libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) != uint64(0) {
  3670. len1--
  3671. v1 = buf
  3672. buf++
  3673. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v1))))&uint64(0xff)])
  3674. }
  3675. /* Compute the CRC on as many N z_word_t blocks as are available. */
  3676. blks = len1 / uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W))
  3677. len1 -= blks * uint64(m_N) * uint64(m_W)
  3678. words = buf
  3679. /* Do endian check at execution time instead of compile time, since ARM
  3680. processors can change the endianness at execution time. If the
  3681. compiler knows what the endianness will be, it can optimize out the
  3682. check and the unused branch. */
  3683. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  3684. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  3685. /* Initialize the CRC for each braid. */
  3686. crc0 = uint32(uint32(crc))
  3687. crc1 = uint32(0)
  3688. crc2 = uint32(0)
  3689. crc3 = uint32(0)
  3690. crc4 = uint32(0)
  3691. /*
  3692. Process the first blks-1 blocks, computing the CRCs on each braid
  3693. independently.
  3694. */
  3695. for {
  3696. blks--
  3697. v2 = blks
  3698. if !(v2 != 0) {
  3699. break
  3700. }
  3701. /* Load the word for each braid into registers. */
  3702. word0 = crc0 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  3703. word1 = crc1 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  3704. word2 = crc2 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  3705. word3 = crc3 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  3706. word4 = crc4 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  3707. words += uintptr(m_N) * 4
  3708. /* Compute and update the CRC for each word. The loop should
  3709. get unrolled. */
  3710. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint32(0xff))*4))
  3711. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint32(0xff))*4))
  3712. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint32(0xff))*4))
  3713. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint32(0xff))*4))
  3714. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint32(0xff))*4))
  3715. k = int32(1)
  3716. for {
  3717. if !(k < int32(m_W)) {
  3718. break
  3719. }
  3720. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3721. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3722. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3723. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3724. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3725. goto _3
  3726. _3:
  3727. k++
  3728. }
  3729. }
  3730. /*
  3731. Process the last block, combining the CRCs of the N braids at the
  3732. same time.
  3733. */
  3734. crc = uint64(_crc_word(tls, crc0^*(*Tz_word_t)(unsafe.Pointer(words))))
  3735. crc = uint64(_crc_word(tls, uint32(uint64(crc1^*(*Tz_word_t)(unsafe.Pointer(words + 1*4)))^crc)))
  3736. crc = uint64(_crc_word(tls, uint32(uint64(crc2^*(*Tz_word_t)(unsafe.Pointer(words + 2*4)))^crc)))
  3737. crc = uint64(_crc_word(tls, uint32(uint64(crc3^*(*Tz_word_t)(unsafe.Pointer(words + 3*4)))^crc)))
  3738. crc = uint64(_crc_word(tls, uint32(uint64(crc4^*(*Tz_word_t)(unsafe.Pointer(words + 4*4)))^crc)))
  3739. words += uintptr(m_N) * 4
  3740. } else {
  3741. /* Initialize the CRC for each braid. */
  3742. crc01 = _byte_swap(tls, uint32(uint32(crc)))
  3743. crc11 = uint32(0)
  3744. crc21 = uint32(0)
  3745. crc31 = uint32(0)
  3746. crc41 = uint32(0)
  3747. /*
  3748. Process the first blks-1 blocks, computing the CRCs on each braid
  3749. independently.
  3750. */
  3751. for {
  3752. blks--
  3753. v4 = blks
  3754. if !(v4 != 0) {
  3755. break
  3756. }
  3757. /* Load the word for each braid into registers. */
  3758. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  3759. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  3760. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  3761. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  3762. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  3763. words += uintptr(m_N) * 4
  3764. /* Compute and update the CRC for each word. The loop should
  3765. get unrolled. */
  3766. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint32(0xff))*4))
  3767. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint32(0xff))*4))
  3768. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint32(0xff))*4))
  3769. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint32(0xff))*4))
  3770. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint32(0xff))*4))
  3771. k = int32(1)
  3772. for {
  3773. if !(k < int32(m_W)) {
  3774. break
  3775. }
  3776. crc01 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word01>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3777. crc11 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word11>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3778. crc21 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word21>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3779. crc31 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word31>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3780. crc41 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*1024 + uintptr(word41>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  3781. goto _5
  3782. _5:
  3783. k++
  3784. }
  3785. }
  3786. /*
  3787. Process the last block, combining the CRCs of the N braids at the
  3788. same time.
  3789. */
  3790. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  3791. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^comb)
  3792. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^comb)
  3793. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^comb)
  3794. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^comb)
  3795. words += uintptr(m_N) * 4
  3796. crc = uint64(_byte_swap(tls, comb))
  3797. }
  3798. /*
  3799. Update the pointer to the remaining bytes to process.
  3800. */
  3801. buf = words
  3802. }
  3803. /* Complete the computation of the CRC on any remaining bytes. */
  3804. for len1 >= uint64(8) {
  3805. len1 -= uint64(8)
  3806. v6 = buf
  3807. buf++
  3808. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v6))))&uint64(0xff)])
  3809. v7 = buf
  3810. buf++
  3811. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v7))))&uint64(0xff)])
  3812. v8 = buf
  3813. buf++
  3814. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v8))))&uint64(0xff)])
  3815. v9 = buf
  3816. buf++
  3817. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v9))))&uint64(0xff)])
  3818. v10 = buf
  3819. buf++
  3820. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v10))))&uint64(0xff)])
  3821. v11 = buf
  3822. buf++
  3823. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v11))))&uint64(0xff)])
  3824. v12 = buf
  3825. buf++
  3826. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v12))))&uint64(0xff)])
  3827. v13 = buf
  3828. buf++
  3829. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v13))))&uint64(0xff)])
  3830. }
  3831. for len1 != 0 {
  3832. len1--
  3833. v14 = buf
  3834. buf++
  3835. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v14))))&uint64(0xff)])
  3836. }
  3837. /* Return the CRC, post-conditioned. */
  3838. return crc ^ uint64(0xffffffff)
  3839. }
  3840. // C documentation
  3841. //
  3842. // /* ========================================================================= */
  3843. func Xcrc32(tls *libc.TLS, crc uint64, buf uintptr, len1 TuInt) (r uint64) {
  3844. return Xcrc32_z(tls, crc, buf, uint64(uint64(len1)))
  3845. }
  3846. // C documentation
  3847. //
  3848. // /* ========================================================================= */
  3849. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff64_t) (r TuLong) {
  3850. return uint64(_multmodp(tls, _x2nmodp(tls, len2, uint32(3)), uint32(uint32(crc1)))) ^ crc2&uint64(0xffffffff)
  3851. }
  3852. // C documentation
  3853. //
  3854. // /* ========================================================================= */
  3855. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  3856. return Xcrc32_combine64(tls, crc1, crc2, len2)
  3857. }
  3858. // C documentation
  3859. //
  3860. // /* ========================================================================= */
  3861. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff64_t) (r TuLong) {
  3862. return uint64(_x2nmodp(tls, len2, uint32(3)))
  3863. }
  3864. // C documentation
  3865. //
  3866. // /* ========================================================================= */
  3867. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  3868. return Xcrc32_combine_gen64(tls, len2)
  3869. }
  3870. // C documentation
  3871. //
  3872. // /* ========================================================================= */
  3873. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  3874. return uint64(_multmodp(tls, uint32(uint32(op)), uint32(uint32(crc1)))) ^ crc2&uint64(0xffffffff)
  3875. }
  3876. const m_BL_CODES = 19
  3877. const m_BUSY_STATE = 113
  3878. const m_Buf_size = 16
  3879. const m_COMMENT_STATE = 91
  3880. const m_DEF_MEM_LEVEL = 8
  3881. const m_D_CODES = 30
  3882. const m_EXTRA_STATE = 69
  3883. const m_FINISH_STATE = 666
  3884. const m_GZIP_STATE = 57
  3885. const m_HCRC_STATE = 103
  3886. const m_INIT_STATE = 42
  3887. const m_LENGTH_CODES = 29
  3888. const m_LITERALS = 256
  3889. const m_MAX_BITS = 15
  3890. const m_MAX_MATCH = 258
  3891. const m_MAX_MEM_LEVEL = 9
  3892. const m_MAX_STORED = 65535
  3893. const m_MAX_WBITS = 15
  3894. const m_MIN_MATCH = 3
  3895. const m_NAME_STATE = 73
  3896. const m_NIL = 0
  3897. const m_OS_CODE = 3
  3898. const m_PRESET_DICT = 32
  3899. const m_TOO_FAR = 4096
  3900. const m_ZLIB_VERSION = "1.3"
  3901. const m_Z_BLOCK = 5
  3902. const m_Z_DEFAULT_STRATEGY = 0
  3903. const m_Z_DEFLATED = 8
  3904. const m_Z_FILTERED = 1
  3905. const m_Z_FINISH = 4
  3906. const m_Z_FIXED = 4
  3907. const m_Z_FULL_FLUSH = 3
  3908. const m_Z_HUFFMAN_ONLY = 2
  3909. const m_Z_NEED_DICT = 2
  3910. const m_Z_NO_FLUSH = 0
  3911. const m_Z_OK = 0
  3912. const m_Z_PARTIAL_FLUSH = 1
  3913. const m_Z_RLE = 3
  3914. const m_Z_STREAM_END = 1
  3915. const m_Z_UNKNOWN = 2
  3916. type Tinternal_state = struct {
  3917. Fstrm Tz_streamp
  3918. Fstatus int32
  3919. Fpending_buf uintptr
  3920. Fpending_buf_size Tulg
  3921. Fpending_out uintptr
  3922. Fpending Tulg
  3923. Fwrap int32
  3924. Fgzhead Tgz_headerp
  3925. Fgzindex Tulg
  3926. Fmethod TByte
  3927. Flast_flush int32
  3928. Fw_size TuInt
  3929. Fw_bits TuInt
  3930. Fw_mask TuInt
  3931. Fwindow uintptr
  3932. Fwindow_size Tulg
  3933. Fprev uintptr
  3934. Fhead uintptr
  3935. Fins_h TuInt
  3936. Fhash_size TuInt
  3937. Fhash_bits TuInt
  3938. Fhash_mask TuInt
  3939. Fhash_shift TuInt
  3940. Fblock_start int64
  3941. Fmatch_length TuInt
  3942. Fprev_match TIPos
  3943. Fmatch_available int32
  3944. Fstrstart TuInt
  3945. Fmatch_start TuInt
  3946. Flookahead TuInt
  3947. Fprev_length TuInt
  3948. Fmax_chain_length TuInt
  3949. Fmax_lazy_match TuInt
  3950. Flevel int32
  3951. Fstrategy int32
  3952. Fgood_match TuInt
  3953. Fnice_match int32
  3954. Fdyn_ltree [573]Tct_data_s
  3955. Fdyn_dtree [61]Tct_data_s
  3956. Fbl_tree [39]Tct_data_s
  3957. Fl_desc Ttree_desc_s
  3958. Fd_desc Ttree_desc_s
  3959. Fbl_desc Ttree_desc_s
  3960. Fbl_count [16]Tush
  3961. Fheap [573]int32
  3962. Fheap_len int32
  3963. Fheap_max int32
  3964. Fdepth [573]Tuch
  3965. Fsym_buf uintptr
  3966. Flit_bufsize TuInt
  3967. Fsym_next TuInt
  3968. Fsym_end TuInt
  3969. Fopt_len Tulg
  3970. Fstatic_len Tulg
  3971. Fmatches TuInt
  3972. Finsert TuInt
  3973. Fbi_buf Tush
  3974. Fbi_valid int32
  3975. Fhigh_water Tulg
  3976. }
  3977. type Tct_data = struct {
  3978. Ffc struct {
  3979. Fcode [0]Tush
  3980. Ffreq Tush
  3981. }
  3982. Fdl struct {
  3983. Flen1 [0]Tush
  3984. Fdad Tush
  3985. }
  3986. }
  3987. type Tct_data_s = Tct_data
  3988. type Ttree_desc = struct {
  3989. Fdyn_tree uintptr
  3990. Fmax_code int32
  3991. Fstat_desc uintptr
  3992. }
  3993. type Ttree_desc_s = Ttree_desc
  3994. type TPos = uint16
  3995. type TPosf = uint16
  3996. type TIPos = uint32
  3997. type Tdeflate_state = struct {
  3998. Fstrm Tz_streamp
  3999. Fstatus int32
  4000. Fpending_buf uintptr
  4001. Fpending_buf_size Tulg
  4002. Fpending_out uintptr
  4003. Fpending Tulg
  4004. Fwrap int32
  4005. Fgzhead Tgz_headerp
  4006. Fgzindex Tulg
  4007. Fmethod TByte
  4008. Flast_flush int32
  4009. Fw_size TuInt
  4010. Fw_bits TuInt
  4011. Fw_mask TuInt
  4012. Fwindow uintptr
  4013. Fwindow_size Tulg
  4014. Fprev uintptr
  4015. Fhead uintptr
  4016. Fins_h TuInt
  4017. Fhash_size TuInt
  4018. Fhash_bits TuInt
  4019. Fhash_mask TuInt
  4020. Fhash_shift TuInt
  4021. Fblock_start int64
  4022. Fmatch_length TuInt
  4023. Fprev_match TIPos
  4024. Fmatch_available int32
  4025. Fstrstart TuInt
  4026. Fmatch_start TuInt
  4027. Flookahead TuInt
  4028. Fprev_length TuInt
  4029. Fmax_chain_length TuInt
  4030. Fmax_lazy_match TuInt
  4031. Flevel int32
  4032. Fstrategy int32
  4033. Fgood_match TuInt
  4034. Fnice_match int32
  4035. Fdyn_ltree [573]Tct_data_s
  4036. Fdyn_dtree [61]Tct_data_s
  4037. Fbl_tree [39]Tct_data_s
  4038. Fl_desc Ttree_desc_s
  4039. Fd_desc Ttree_desc_s
  4040. Fbl_desc Ttree_desc_s
  4041. Fbl_count [16]Tush
  4042. Fheap [573]int32
  4043. Fheap_len int32
  4044. Fheap_max int32
  4045. Fdepth [573]Tuch
  4046. Fsym_buf uintptr
  4047. Flit_bufsize TuInt
  4048. Fsym_next TuInt
  4049. Fsym_end TuInt
  4050. Fopt_len Tulg
  4051. Fstatic_len Tulg
  4052. Fmatches TuInt
  4053. Finsert TuInt
  4054. Fbi_buf Tush
  4055. Fbi_valid int32
  4056. Fhigh_water Tulg
  4057. }
  4058. /*
  4059. If you use the zlib library in a product, an acknowledgment is welcome
  4060. in the documentation of your product. If for some reason you cannot
  4061. include such an acknowledgment, I would appreciate that you keep this
  4062. copyright string in the executable of your product.
  4063. */
  4064. type Tblock_state = int32
  4065. const _need_more = 0
  4066. const /* block not completed, need more input or more output */
  4067. _block_done = 1
  4068. const /* block flush performed */
  4069. _finish_started = 2
  4070. const /* finish started, need only more output at next deflate */
  4071. _finish_done = 3
  4072. type Tcompress_func = uintptr
  4073. /* ===========================================================================
  4074. * Local data
  4075. */
  4076. /* Tail of hash chains */
  4077. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4078. // C documentation
  4079. //
  4080. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4081. // * the desired pack level (0..9). The values given below have been tuned to
  4082. // * exclude worst case performance for pathological files. Better values may be
  4083. // * found for specific files.
  4084. // */
  4085. type Tconfig = struct {
  4086. Fgood_length Tush
  4087. Fmax_lazy Tush
  4088. Fnice_length Tush
  4089. Fmax_chain Tush
  4090. Ffunc1 Tcompress_func
  4091. }
  4092. /* ===========================================================================
  4093. * Local data
  4094. */
  4095. /* Tail of hash chains */
  4096. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4097. // C documentation
  4098. //
  4099. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4100. // * the desired pack level (0..9). The values given below have been tuned to
  4101. // * exclude worst case performance for pathological files. Better values may be
  4102. // * found for specific files.
  4103. // */
  4104. type Tconfig_s = Tconfig
  4105. var _configuration_table = [10]Tconfig{
  4106. 0: {},
  4107. 1: {
  4108. Fgood_length: uint16(4),
  4109. Fmax_lazy: uint16(4),
  4110. Fnice_length: uint16(8),
  4111. Fmax_chain: uint16(4),
  4112. },
  4113. 2: {
  4114. Fgood_length: uint16(4),
  4115. Fmax_lazy: uint16(5),
  4116. Fnice_length: uint16(16),
  4117. Fmax_chain: uint16(8),
  4118. },
  4119. 3: {
  4120. Fgood_length: uint16(4),
  4121. Fmax_lazy: uint16(6),
  4122. Fnice_length: uint16(32),
  4123. Fmax_chain: uint16(32),
  4124. },
  4125. 4: {
  4126. Fgood_length: uint16(4),
  4127. Fmax_lazy: uint16(4),
  4128. Fnice_length: uint16(16),
  4129. Fmax_chain: uint16(16),
  4130. },
  4131. 5: {
  4132. Fgood_length: uint16(8),
  4133. Fmax_lazy: uint16(16),
  4134. Fnice_length: uint16(32),
  4135. Fmax_chain: uint16(32),
  4136. },
  4137. 6: {
  4138. Fgood_length: uint16(8),
  4139. Fmax_lazy: uint16(16),
  4140. Fnice_length: uint16(128),
  4141. Fmax_chain: uint16(128),
  4142. },
  4143. 7: {
  4144. Fgood_length: uint16(8),
  4145. Fmax_lazy: uint16(32),
  4146. Fnice_length: uint16(128),
  4147. Fmax_chain: uint16(256),
  4148. },
  4149. 8: {
  4150. Fgood_length: uint16(32),
  4151. Fmax_lazy: uint16(128),
  4152. Fnice_length: uint16(258),
  4153. Fmax_chain: uint16(1024),
  4154. },
  4155. 9: {
  4156. Fgood_length: uint16(32),
  4157. Fmax_lazy: uint16(258),
  4158. Fnice_length: uint16(258),
  4159. Fmax_chain: uint16(4096),
  4160. },
  4161. }
  4162. func init() {
  4163. p := unsafe.Pointer(&_configuration_table)
  4164. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  4165. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  4166. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  4167. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  4168. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  4169. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  4170. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  4171. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  4172. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  4173. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  4174. }
  4175. /* max compression */
  4176. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  4177. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  4178. * meaning.
  4179. */
  4180. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  4181. /* ===========================================================================
  4182. * Update a hash value with the given input byte
  4183. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  4184. * characters, so that a running hash key can be computed from the previous
  4185. * key instead of complete recalculation each time.
  4186. */
  4187. /* ===========================================================================
  4188. * Insert string str in the dictionary and set match_head to the previous head
  4189. * of the hash chain (the most recent string with same hash key). Return
  4190. * the previous length of the hash chain.
  4191. * If this file is compiled with -DFASTEST, the compression level is forced
  4192. * to 1, and no hash chains are maintained.
  4193. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  4194. * characters and the first MIN_MATCH bytes of str are valid (except for
  4195. * the last MIN_MATCH-1 bytes of the input file).
  4196. */
  4197. /* ===========================================================================
  4198. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  4199. * prev[] will be initialized on the fly.
  4200. */
  4201. // C documentation
  4202. //
  4203. // /* ===========================================================================
  4204. // * Slide the hash table when sliding the window down (could be avoided with 32
  4205. // * bit values at the expense of memory usage). We slide even when level == 0 to
  4206. // * keep the hash table consistent if we switch back to level > 0 later.
  4207. // */
  4208. func _slide_hash(tls *libc.TLS, s uintptr) {
  4209. var m, n, v1, v4, v5, v8 uint32
  4210. var p, v3, v7 uintptr
  4211. var wsize TuInt
  4212. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  4213. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4214. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  4215. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  4216. for {
  4217. p -= 2
  4218. v3 = p
  4219. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  4220. if m >= wsize {
  4221. v4 = m - wsize
  4222. } else {
  4223. v4 = uint32(m_NIL)
  4224. }
  4225. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  4226. goto _2
  4227. _2:
  4228. n--
  4229. v1 = n
  4230. if !(v1 != 0) {
  4231. break
  4232. }
  4233. }
  4234. n = wsize
  4235. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  4236. for {
  4237. p -= 2
  4238. v7 = p
  4239. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  4240. if m >= wsize {
  4241. v8 = m - wsize
  4242. } else {
  4243. v8 = uint32(m_NIL)
  4244. }
  4245. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  4246. /* If n is not on any hash chain, prev[n] is garbage but
  4247. * its value will never be used.
  4248. */
  4249. goto _6
  4250. _6:
  4251. n--
  4252. v5 = n
  4253. if !(v5 != 0) {
  4254. break
  4255. }
  4256. }
  4257. }
  4258. // C documentation
  4259. //
  4260. // /* ===========================================================================
  4261. // * Read a new buffer from the current input stream, update the adler32
  4262. // * and total number of bytes read. All deflate() input goes through
  4263. // * this function so some applications may wish to modify it to avoid
  4264. // * allocating a large strm->next_in buffer and copying from it.
  4265. // * (See also flush_pending()).
  4266. // */
  4267. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  4268. var len1 uint32
  4269. _ = len1
  4270. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4271. if len1 > size {
  4272. len1 = size
  4273. }
  4274. if len1 == uint32(0) {
  4275. return uint32(0)
  4276. }
  4277. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  4278. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(uint64(len1)))
  4279. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  4280. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4281. } else {
  4282. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  4283. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4284. }
  4285. }
  4286. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  4287. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(uint64(len1))
  4288. return len1
  4289. }
  4290. // C documentation
  4291. //
  4292. // /* ===========================================================================
  4293. // * Fill the window when the lookahead becomes insufficient.
  4294. // * Updates strstart and lookahead.
  4295. // *
  4296. // * IN assertion: lookahead < MIN_LOOKAHEAD
  4297. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  4298. // * At least one byte has been read, or avail_in == 0; reads are
  4299. // * performed for at least two bytes (required for the zip translate_eol
  4300. // * option -- not supported here).
  4301. // */
  4302. func _fill_window(tls *libc.TLS, s uintptr) {
  4303. var curr, init1 Tulg
  4304. var more, n uint32
  4305. var str, wsize TuInt
  4306. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  4307. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4308. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in != uint32(0) {
  4309. more = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  4310. /* Deal with !@#$% 64K limit: */
  4311. if uint64(4) <= uint64(2) {
  4312. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  4313. more = wsize
  4314. } else {
  4315. if more == uint32(-libc.Int32FromInt32(1)) {
  4316. /* Very unlikely, but possible on 16 bit machine if
  4317. * strstart == 0 && lookahead == 1 (input done a byte at time)
  4318. */
  4319. more--
  4320. }
  4321. }
  4322. }
  4323. /* If the window is almost full and there is insufficient lookahead,
  4324. * move the upper half to the lower one to make room in the upper half.
  4325. */
  4326. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  4327. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  4328. *(*TuInt)(unsafe.Pointer(s + 176)) -= wsize
  4329. *(*TuInt)(unsafe.Pointer(s + 172)) -= wsize /* we now have strstart >= MAX_DIST */
  4330. *(*int64)(unsafe.Pointer(s + 152)) -= int64(int64(wsize))
  4331. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  4332. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4333. }
  4334. _slide_hash(tls, s)
  4335. more += wsize
  4336. }
  4337. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  4338. break
  4339. }
  4340. /* If there was no sliding:
  4341. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  4342. * more == window_size - lookahead - strstart
  4343. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  4344. * => more >= window_size - 2*WSIZE + 2
  4345. * In the BIG_MEM or MMAP case (not yet supported),
  4346. * window_size == input_size + MIN_LOOKAHEAD &&
  4347. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  4348. * Otherwise, window_size == 2*WSIZE so more >= 2.
  4349. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  4350. */
  4351. n = _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead), more)
  4352. *(*TuInt)(unsafe.Pointer(s + 180)) += n
  4353. /* Initialize the hash value now that we have some input: */
  4354. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  4355. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  4356. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  4357. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  4358. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  4359. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(m_MIN_MATCH)-uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  4360. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(str&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  4361. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(uint16(str))
  4362. str++
  4363. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  4364. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  4365. break
  4366. }
  4367. }
  4368. }
  4369. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  4370. * but this is not important since only literal bytes will be emitted.
  4371. */
  4372. }
  4373. /* If the WIN_INIT bytes after the end of the current data have never been
  4374. * written, then zero those bytes in order to avoid memory check reports of
  4375. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  4376. * the longest match routines. Update the high water mark for the next
  4377. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  4378. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  4379. */
  4380. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  4381. curr = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  4382. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  4383. /* Previous high water mark below current data -- zero WIN_INIT
  4384. * bytes or up to end of window, whichever is less.
  4385. */
  4386. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  4387. if init1 > uint64(m_MAX_MATCH) {
  4388. init1 = uint64(m_MAX_MATCH)
  4389. }
  4390. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(uint32(uint32(init1))))
  4391. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  4392. } else {
  4393. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint64(m_MAX_MATCH) {
  4394. /* High water mark at or above current data, but below current data
  4395. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  4396. * to end of window, whichever is less.
  4397. */
  4398. init1 = curr + uint64(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4399. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  4400. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4401. }
  4402. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(uint32(uint32(init1))))
  4403. *(*Tulg)(unsafe.Pointer(s + 5944)) += init1
  4404. }
  4405. }
  4406. }
  4407. }
  4408. // C documentation
  4409. //
  4410. // /* ========================================================================= */
  4411. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  4412. return XdeflateInit2_(tls, strm, level, int32(m_Z_DEFLATED), int32(m_MAX_WBITS), int32(m_DEF_MEM_LEVEL), m_Z_DEFAULT_STRATEGY, version, stream_size)
  4413. /* To do: ignore strm->next_in if we use it as window */
  4414. }
  4415. // C documentation
  4416. //
  4417. // /* ========================================================================= */
  4418. func XdeflateInit2_(tls *libc.TLS, strm Tz_streamp, level int32, method int32, windowBits int32, memLevel int32, strategy int32, version uintptr, stream_size int32) (r int32) {
  4419. var s uintptr
  4420. var wrap int32
  4421. _, _ = s, wrap
  4422. wrap = int32(1)
  4423. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(_my_version[0]) || uint64(uint64(stream_size)) != uint64(112) {
  4424. return -int32(6)
  4425. }
  4426. if strm == uintptr(m_Z_NULL) {
  4427. return -int32(2)
  4428. }
  4429. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  4430. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  4431. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  4432. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  4433. }
  4434. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4435. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  4436. }
  4437. if level == -int32(1) {
  4438. level = int32(6)
  4439. }
  4440. if windowBits < 0 { /* suppress zlib wrapper */
  4441. wrap = 0
  4442. if windowBits < -int32(15) {
  4443. return -int32(2)
  4444. }
  4445. windowBits = -windowBits
  4446. } else {
  4447. if windowBits > int32(15) {
  4448. wrap = int32(2) /* write gzip wrapper instead */
  4449. windowBits -= int32(16)
  4450. }
  4451. }
  4452. if memLevel < int32(1) || memLevel > int32(m_MAX_MEM_LEVEL) || method != int32(m_Z_DEFLATED) || windowBits < int32(8) || windowBits > int32(15) || level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) || windowBits == int32(8) && wrap != int32(1) {
  4453. return -int32(2)
  4454. }
  4455. if windowBits == int32(8) {
  4456. windowBits = int32(9)
  4457. } /* until 256-byte window bug fixed */
  4458. s = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  4459. if s == uintptr(m_Z_NULL) {
  4460. return -int32(4)
  4461. }
  4462. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  4463. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  4464. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  4465. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4466. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  4467. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = uint32(uint32(windowBits))
  4468. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  4469. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  4470. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = uint32(uint32(memLevel)) + uint32(7)
  4471. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  4472. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  4473. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift = ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits + libc.Uint32FromInt32(m_MIN_MATCH) - libc.Uint32FromInt32(1)) / libc.Uint32FromInt32(m_MIN_MATCH)
  4474. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  4475. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  4476. (*Tdeflate_state)(unsafe.Pointer(s)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  4477. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64(0) /* nothing written to s->window yet */
  4478. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = uint32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  4479. /* We overlay pending_buf and sym_buf. This works since the average size
  4480. * for length/distance pairs over any compressed block is assured to be 31
  4481. * bits or less.
  4482. *
  4483. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  4484. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  4485. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  4486. * possible fixed-codes length/distance pair is then 31 bits total.
  4487. *
  4488. * sym_buf starts one-fourth of the way into pending_buf. So there are
  4489. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  4490. * in sym_buf is three bytes -- two for the distance and one for the
  4491. * literal/length. As each symbol is consumed, the pointer to the next
  4492. * sym_buf value to read moves forward three bytes. From that symbol, up to
  4493. * 31 bits are written to pending_buf. The closest the written pending_buf
  4494. * bits gets to the next sym_buf symbol to read is just before the last
  4495. * code is written. At that time, 31*(n - 2) bits have been written, just
  4496. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  4497. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  4498. * symbols are written.) The closest the writing gets to what is unread is
  4499. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  4500. * can range from 128 to 32768.
  4501. *
  4502. * Therefore, at a minimum, there are 142 bits of space between what is
  4503. * written and what is read in the overlain buffers, so the symbols cannot
  4504. * be overwritten by the compressed data. That space is actually 139 bits,
  4505. * due to the three-bit fixed-code block header.
  4506. *
  4507. * That covers the case where either Z_FIXED is specified, forcing fixed
  4508. * codes, or when the use of fixed codes is chosen, because that choice
  4509. * results in a smaller compressed block than dynamic codes. That latter
  4510. * condition then assures that the above analysis also covers all dynamic
  4511. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  4512. * fewer bits than a fixed-code block would for the same set of symbols.
  4513. * Therefore its average symbol length is assured to be less than 31. So
  4514. * the compressed data for a dynamic block also cannot overwrite the
  4515. * symbols from which it is being constructed.
  4516. */
  4517. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize, uint32(libc.Int32FromInt32(4)))
  4518. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize) * uint64(4)
  4519. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fprev == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhead == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf == uintptr(m_Z_NULL) {
  4520. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  4521. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(4)]
  4522. XdeflateEnd(tls, strm)
  4523. return -int32(4)
  4524. }
  4525. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  4526. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  4527. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  4528. * on 16 bit machines and because stored blocks are restricted to
  4529. * 64K-1 bytes.
  4530. */
  4531. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4532. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4533. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = uint8(uint8(method))
  4534. return XdeflateReset(tls, strm)
  4535. }
  4536. var _my_version = [4]int8{'1', '.', '3'}
  4537. // C documentation
  4538. //
  4539. // /* =========================================================================
  4540. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  4541. // */
  4542. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4543. var s uintptr
  4544. _ = s
  4545. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4546. return int32(1)
  4547. }
  4548. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4549. if s == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm != strm || (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_GZIP_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_EXTRA_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_NAME_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_COMMENT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_HCRC_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_BUSY_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_FINISH_STATE) {
  4550. return int32(1)
  4551. }
  4552. return 0
  4553. }
  4554. // C documentation
  4555. //
  4556. // /* ========================================================================= */
  4557. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  4558. var avail uint32
  4559. var n, str, v1, v3 TuInt
  4560. var next, s uintptr
  4561. var wrap int32
  4562. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  4563. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  4564. return -int32(2)
  4565. }
  4566. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4567. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  4568. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4569. return -int32(2)
  4570. }
  4571. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  4572. if wrap == int32(1) {
  4573. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  4574. }
  4575. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  4576. /* if dictionary would fill window, just replace the history */
  4577. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4578. if wrap == 0 { /* already empty otherwise */
  4579. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4580. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4581. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4582. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4583. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4584. }
  4585. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  4586. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4587. }
  4588. /* insert dictionary into window and hash */
  4589. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4590. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  4591. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  4592. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  4593. _fill_window(tls, s)
  4594. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  4595. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4596. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  4597. for {
  4598. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(m_MIN_MATCH)-uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  4599. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(str&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  4600. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(uint16(str))
  4601. str++
  4602. goto _2
  4603. _2:
  4604. n--
  4605. v1 = n
  4606. if !(v1 != 0) {
  4607. break
  4608. }
  4609. }
  4610. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  4611. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4612. _fill_window(tls, s)
  4613. }
  4614. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4615. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  4616. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4617. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4618. v3 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4619. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  4620. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  4621. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4622. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  4623. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  4624. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4625. return m_Z_OK
  4626. }
  4627. // C documentation
  4628. //
  4629. // /* ========================================================================= */
  4630. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  4631. var len1 TuInt
  4632. var s uintptr
  4633. _, _ = len1, s
  4634. if _deflateStateCheck(tls, strm) != 0 {
  4635. return -int32(2)
  4636. }
  4637. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4638. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4639. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4640. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4641. }
  4642. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  4643. libc.Xmemcpy(tls, dictionary, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)-uintptr(len1), uint64(uint64(len1)))
  4644. }
  4645. if dictLength != uintptr(m_Z_NULL) {
  4646. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  4647. }
  4648. return m_Z_OK
  4649. }
  4650. // C documentation
  4651. //
  4652. // /* ========================================================================= */
  4653. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4654. var s uintptr
  4655. var v1 TuLong
  4656. var v2 int32
  4657. var v3 uint64
  4658. _, _, _, _ = s, v1, v2, v3
  4659. if _deflateStateCheck(tls, strm) != 0 {
  4660. return -int32(2)
  4661. }
  4662. v1 = libc.Uint64FromInt32(0)
  4663. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  4664. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  4665. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  4666. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  4667. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4668. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint64(0)
  4669. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  4670. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  4671. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  4672. }
  4673. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4674. v2 = int32(m_GZIP_STATE)
  4675. } else {
  4676. v2 = int32(m_INIT_STATE)
  4677. }
  4678. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  4679. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4680. v3 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4681. } else {
  4682. v3 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4683. }
  4684. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  4685. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  4686. x__tr_init(tls, s)
  4687. return m_Z_OK
  4688. }
  4689. // C documentation
  4690. //
  4691. // /* ===========================================================================
  4692. // * Initialize the "longest match" routines for a new zlib stream
  4693. // */
  4694. func _lm_init(tls *libc.TLS, s uintptr) {
  4695. var v1 TuInt
  4696. _ = v1
  4697. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint64FromInt64(2) * uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  4698. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4699. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4700. /* Set the default configuration parameters:
  4701. */
  4702. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  4703. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  4704. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  4705. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  4706. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4707. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4708. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4709. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4710. v1 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4711. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  4712. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  4713. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4714. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  4715. }
  4716. // C documentation
  4717. //
  4718. // /* ========================================================================= */
  4719. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4720. var ret int32
  4721. _ = ret
  4722. ret = XdeflateResetKeep(tls, strm)
  4723. if ret == m_Z_OK {
  4724. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  4725. }
  4726. return ret
  4727. }
  4728. // C documentation
  4729. //
  4730. // /* ========================================================================= */
  4731. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  4732. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  4733. return -int32(2)
  4734. }
  4735. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  4736. return m_Z_OK
  4737. }
  4738. // C documentation
  4739. //
  4740. // /* ========================================================================= */
  4741. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  4742. if _deflateStateCheck(tls, strm) != 0 {
  4743. return -int32(2)
  4744. }
  4745. if pending != uintptr(m_Z_NULL) {
  4746. *(*uint32)(unsafe.Pointer(pending)) = uint32((*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending)
  4747. }
  4748. if bits != uintptr(m_Z_NULL) {
  4749. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  4750. }
  4751. return m_Z_OK
  4752. }
  4753. // C documentation
  4754. //
  4755. // /* ========================================================================= */
  4756. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  4757. var put int32
  4758. var s, p1 uintptr
  4759. _, _, _ = put, s, p1
  4760. if _deflateStateCheck(tls, strm) != 0 {
  4761. return -int32(2)
  4762. }
  4763. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4764. if bits < 0 || bits > int32(16) || (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf < (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out+uintptr((libc.Int32FromInt32(m_Buf_size)+libc.Int32FromInt32(7))>>libc.Int32FromInt32(3)) {
  4765. return -int32(5)
  4766. }
  4767. for cond := true; cond; cond = bits != 0 {
  4768. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  4769. if put > bits {
  4770. put = bits
  4771. }
  4772. p1 = s + 5936
  4773. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  4774. *(*int32)(unsafe.Pointer(s + 5940)) += put
  4775. x__tr_flush_bits(tls, s)
  4776. value >>= put
  4777. bits -= put
  4778. }
  4779. return m_Z_OK
  4780. }
  4781. // C documentation
  4782. //
  4783. // /* ========================================================================= */
  4784. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  4785. var err int32
  4786. var func1 Tcompress_func
  4787. var s uintptr
  4788. _, _, _ = err, func1, s
  4789. if _deflateStateCheck(tls, strm) != 0 {
  4790. return -int32(2)
  4791. }
  4792. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4793. if level == -int32(1) {
  4794. level = int32(6)
  4795. }
  4796. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  4797. return -int32(2)
  4798. }
  4799. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  4800. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  4801. /* Flush the last buffer: */
  4802. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  4803. if err == -int32(2) {
  4804. return err
  4805. }
  4806. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start+int64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) != 0 {
  4807. return -int32(5)
  4808. }
  4809. }
  4810. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  4811. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  4812. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  4813. _slide_hash(tls, s)
  4814. } else {
  4815. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4816. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4817. }
  4818. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  4819. }
  4820. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4821. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  4822. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  4823. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[level].Fnice_length)
  4824. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  4825. }
  4826. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4827. return m_Z_OK
  4828. }
  4829. // C documentation
  4830. //
  4831. // /* ========================================================================= */
  4832. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  4833. var s uintptr
  4834. _ = s
  4835. if _deflateStateCheck(tls, strm) != 0 {
  4836. return -int32(2)
  4837. }
  4838. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4839. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(uint32(good_length))
  4840. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(uint32(max_lazy))
  4841. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  4842. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(uint32(max_chain))
  4843. return m_Z_OK
  4844. }
  4845. // C documentation
  4846. //
  4847. // /* =========================================================================
  4848. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  4849. // * close to exact, as well as small, upper bound on the compressed size. This
  4850. // * is an expansion of ~0.03%, plus a small constant.
  4851. // *
  4852. // * For any setting other than those defaults for windowBits and memLevel, one
  4853. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  4854. // * ~13%, plus a small constant.
  4855. // *
  4856. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  4857. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  4858. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  4859. // * expansion results from five bytes of header for each stored block.
  4860. // *
  4861. // * The larger expansion of 13% results from a window size less than or equal to
  4862. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  4863. // * the data being compressed may have slid out of the sliding window, impeding
  4864. // * a stored block from being emitted. Then the only choice is a fixed or
  4865. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  4866. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  4867. // * which this can occur is 255 (memLevel == 2).
  4868. // *
  4869. // * Shifts are used to approximate divisions, for speed.
  4870. // */
  4871. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  4872. var fixedlen, storelen, wraplen TuLong
  4873. var s, str, v3, v5 uintptr
  4874. var v1, v7 uint64
  4875. var v2 int32
  4876. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  4877. /* upper bound for fixed blocks with 9-bit literals and length 255
  4878. (memLevel == 2, which is the lowest that may not use stored blocks) --
  4879. ~13% overhead plus a small constant */
  4880. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint64(4)
  4881. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  4882. ~4% overhead plus a small constant */
  4883. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint64(7)
  4884. /* if can't get parameters, return larger bound plus a zlib wrapper */
  4885. if _deflateStateCheck(tls, strm) != 0 {
  4886. if fixedlen > storelen {
  4887. v1 = fixedlen
  4888. } else {
  4889. v1 = storelen
  4890. }
  4891. return v1 + uint64(6)
  4892. }
  4893. /* compute wrapper length */
  4894. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4895. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  4896. case 0:
  4897. wraplen = uint64(0)
  4898. case int32(1):
  4899. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  4900. v2 = int32(4)
  4901. } else {
  4902. v2 = 0
  4903. }
  4904. wraplen = uint64(int32(6) + v2)
  4905. case int32(2):
  4906. wraplen = uint64(18)
  4907. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  4908. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  4909. wraplen += uint64(uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len)
  4910. }
  4911. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  4912. if str != uintptr(m_Z_NULL) {
  4913. for {
  4914. wraplen++
  4915. goto _4
  4916. _4:
  4917. v3 = str
  4918. str++
  4919. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  4920. break
  4921. }
  4922. }
  4923. }
  4924. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  4925. if str != uintptr(m_Z_NULL) {
  4926. for {
  4927. wraplen++
  4928. goto _6
  4929. _6:
  4930. v5 = str
  4931. str++
  4932. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  4933. break
  4934. }
  4935. }
  4936. }
  4937. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  4938. wraplen += uint64(2)
  4939. }
  4940. }
  4941. default: /* for compiler happiness */
  4942. wraplen = uint64(6)
  4943. }
  4944. /* if not default parameters, return one of the conservative bounds */
  4945. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != uint32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  4946. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  4947. v7 = fixedlen
  4948. } else {
  4949. v7 = storelen
  4950. }
  4951. return v7 + wraplen
  4952. }
  4953. /* default settings: return tight bound for that case -- ~0.03% overhead
  4954. plus a small constant */
  4955. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13) - uint64(6) + wraplen
  4956. }
  4957. // C documentation
  4958. //
  4959. // /* =========================================================================
  4960. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  4961. // * IN assertion: the stream state is correct and there is enough room in
  4962. // * pending_buf.
  4963. // */
  4964. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  4965. var v1, v3 Tulg
  4966. var v2, v4 uintptr
  4967. _, _, _, _ = v1, v2, v3, v4
  4968. v2 = s + 40
  4969. v1 = *(*Tulg)(unsafe.Pointer(v2))
  4970. *(*Tulg)(unsafe.Pointer(v2))++
  4971. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  4972. v4 = s + 40
  4973. v3 = *(*Tulg)(unsafe.Pointer(v4))
  4974. *(*Tulg)(unsafe.Pointer(v4))++
  4975. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  4976. }
  4977. // C documentation
  4978. //
  4979. // /* =========================================================================
  4980. // * Flush as much pending output as possible. All deflate() output, except for
  4981. // * some deflate_stored() output, goes through this function so some
  4982. // * applications may wish to modify it to avoid allocating a large
  4983. // * strm->next_out buffer and copying into it. (See also read_buf()).
  4984. // */
  4985. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  4986. var len1 uint32
  4987. var s uintptr
  4988. _, _ = len1, s
  4989. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4990. x__tr_flush_bits(tls, s)
  4991. len1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  4992. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  4993. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  4994. }
  4995. if len1 == uint32(0) {
  4996. return
  4997. }
  4998. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(uint64(len1)))
  4999. *(*uintptr)(unsafe.Pointer(strm + 24)) += uintptr(len1)
  5000. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  5001. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(uint64(len1))
  5002. *(*TuInt)(unsafe.Pointer(strm + 32)) -= len1
  5003. *(*Tulg)(unsafe.Pointer(s + 40)) -= uint64(uint64(len1))
  5004. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint64(0) {
  5005. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5006. }
  5007. }
  5008. /* ===========================================================================
  5009. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  5010. */
  5011. // C documentation
  5012. //
  5013. // /* ========================================================================= */
  5014. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  5015. var beg, beg1, beg2, v10, v12, v14, v16, v18, v20, v24, v26, v33, v35, v37, v39, v4, v41, v45, v47, v49, v51, v53, v55, v57, v59, v6, v61, v66, v68, v70, v72, v74, v76, v78, v8, v80 Tulg
  5016. var bstate Tblock_state
  5017. var copy1, header, left, level_flags TuInt
  5018. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  5019. var s, v11, v13, v15, v17, v19, v21, v25, v27, v34, v36, v38, v40, v42, v46, v48, v5, v50, v52, v54, v56, v58, v60, v62, v67, v69, v7, v71, v73, v75, v77, v79, v81, v9 uintptr
  5020. var v3 bool
  5021. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beg, beg1, beg2, bstate, copy1, header, left, level_flags, old_flush, s, val, val1, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v9
  5022. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  5023. return -int32(2)
  5024. }
  5025. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5026. if (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) && (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && flush != int32(m_Z_FINISH) {
  5027. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(2)]
  5028. return -libc.Int32FromInt32(2)
  5029. }
  5030. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5031. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(5)]
  5032. return -libc.Int32FromInt32(5)
  5033. }
  5034. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  5035. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  5036. /* Flush as much pending output as possible */
  5037. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5038. _flush_pending(tls, strm)
  5039. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5040. /* Since avail_out is 0, deflate will be called again with
  5041. * more output space, but possibly with both pending and
  5042. * avail_in equal to zero. There won't be anything to do,
  5043. * but this is not an error situation so make sure we
  5044. * return OK instead of BUF_ERROR at next call of deflate:
  5045. */
  5046. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5047. return m_Z_OK
  5048. }
  5049. /* Make sure there is something to do and avoid duplicate consecutive
  5050. * flushes. For repeated and useless calls with Z_FINISH, we keep
  5051. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  5052. */
  5053. } else {
  5054. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  5055. if flush > int32(4) {
  5056. v1 = int32(9)
  5057. } else {
  5058. v1 = 0
  5059. }
  5060. if old_flush > int32(4) {
  5061. v2 = int32(9)
  5062. } else {
  5063. v2 = 0
  5064. }
  5065. }
  5066. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  5067. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(5)]
  5068. return -libc.Int32FromInt32(5)
  5069. }
  5070. }
  5071. /* User must not provide more input after the first FINISH: */
  5072. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  5073. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(m_Z_NEED_DICT) - -libc.Int32FromInt32(5)]
  5074. return -libc.Int32FromInt32(5)
  5075. }
  5076. /* Write the header */
  5077. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  5078. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5079. }
  5080. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  5081. /* zlib header */
  5082. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  5083. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5084. level_flags = uint32(0)
  5085. } else {
  5086. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  5087. level_flags = uint32(1)
  5088. } else {
  5089. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  5090. level_flags = uint32(2)
  5091. } else {
  5092. level_flags = uint32(3)
  5093. }
  5094. }
  5095. }
  5096. header |= level_flags << libc.Int32FromInt32(6)
  5097. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5098. header |= uint32(m_PRESET_DICT)
  5099. }
  5100. header += uint32(31) - header%uint32(31)
  5101. _putShortMSB(tls, s, header)
  5102. /* Save the adler32 of the preset dictionary: */
  5103. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5104. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5105. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5106. }
  5107. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5108. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5109. /* Compression must start with an empty pending buffer */
  5110. _flush_pending(tls, strm)
  5111. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5112. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5113. return m_Z_OK
  5114. }
  5115. }
  5116. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  5117. /* gzip header */
  5118. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5119. v5 = s + 40
  5120. v4 = *(*Tulg)(unsafe.Pointer(v5))
  5121. *(*Tulg)(unsafe.Pointer(v5))++
  5122. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(libc.Int32FromInt32(31))
  5123. v7 = s + 40
  5124. v6 = *(*Tulg)(unsafe.Pointer(v7))
  5125. *(*Tulg)(unsafe.Pointer(v7))++
  5126. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(libc.Int32FromInt32(139))
  5127. v9 = s + 40
  5128. v8 = *(*Tulg)(unsafe.Pointer(v9))
  5129. *(*Tulg)(unsafe.Pointer(v9))++
  5130. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(libc.Int32FromInt32(8))
  5131. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  5132. v11 = s + 40
  5133. v10 = *(*Tulg)(unsafe.Pointer(v11))
  5134. *(*Tulg)(unsafe.Pointer(v11))++
  5135. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(libc.Int32FromInt32(0))
  5136. v13 = s + 40
  5137. v12 = *(*Tulg)(unsafe.Pointer(v13))
  5138. *(*Tulg)(unsafe.Pointer(v13))++
  5139. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(libc.Int32FromInt32(0))
  5140. v15 = s + 40
  5141. v14 = *(*Tulg)(unsafe.Pointer(v15))
  5142. *(*Tulg)(unsafe.Pointer(v15))++
  5143. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(libc.Int32FromInt32(0))
  5144. v17 = s + 40
  5145. v16 = *(*Tulg)(unsafe.Pointer(v17))
  5146. *(*Tulg)(unsafe.Pointer(v17))++
  5147. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(libc.Int32FromInt32(0))
  5148. v19 = s + 40
  5149. v18 = *(*Tulg)(unsafe.Pointer(v19))
  5150. *(*Tulg)(unsafe.Pointer(v19))++
  5151. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(libc.Int32FromInt32(0))
  5152. v21 = s + 40
  5153. v20 = *(*Tulg)(unsafe.Pointer(v21))
  5154. *(*Tulg)(unsafe.Pointer(v21))++
  5155. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5156. v22 = int32(2)
  5157. } else {
  5158. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5159. v23 = int32(4)
  5160. } else {
  5161. v23 = 0
  5162. }
  5163. v22 = v23
  5164. }
  5165. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(v22)
  5166. v25 = s + 40
  5167. v24 = *(*Tulg)(unsafe.Pointer(v25))
  5168. *(*Tulg)(unsafe.Pointer(v25))++
  5169. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(libc.Int32FromInt32(m_OS_CODE))
  5170. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5171. /* Compression must start with an empty pending buffer */
  5172. _flush_pending(tls, strm)
  5173. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5174. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5175. return m_Z_OK
  5176. }
  5177. } else {
  5178. v27 = s + 40
  5179. v26 = *(*Tulg)(unsafe.Pointer(v27))
  5180. *(*Tulg)(unsafe.Pointer(v27))++
  5181. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  5182. v28 = int32(1)
  5183. } else {
  5184. v28 = 0
  5185. }
  5186. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5187. v29 = int32(2)
  5188. } else {
  5189. v29 = 0
  5190. }
  5191. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  5192. v30 = 0
  5193. } else {
  5194. v30 = int32(4)
  5195. }
  5196. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  5197. v31 = 0
  5198. } else {
  5199. v31 = int32(8)
  5200. }
  5201. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  5202. v32 = 0
  5203. } else {
  5204. v32 = int32(16)
  5205. }
  5206. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(v28 + v29 + v30 + v31 + v32)
  5207. v34 = s + 40
  5208. v33 = *(*Tulg)(unsafe.Pointer(v34))
  5209. *(*Tulg)(unsafe.Pointer(v34))++
  5210. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v33))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime & libc.Uint64FromInt32(0xff))
  5211. v36 = s + 40
  5212. v35 = *(*Tulg)(unsafe.Pointer(v36))
  5213. *(*Tulg)(unsafe.Pointer(v36))++
  5214. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v35))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5215. v38 = s + 40
  5216. v37 = *(*Tulg)(unsafe.Pointer(v38))
  5217. *(*Tulg)(unsafe.Pointer(v38))++
  5218. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v37))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5219. v40 = s + 40
  5220. v39 = *(*Tulg)(unsafe.Pointer(v40))
  5221. *(*Tulg)(unsafe.Pointer(v40))++
  5222. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v39))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5223. v42 = s + 40
  5224. v41 = *(*Tulg)(unsafe.Pointer(v42))
  5225. *(*Tulg)(unsafe.Pointer(v42))++
  5226. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5227. v43 = int32(2)
  5228. } else {
  5229. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5230. v44 = int32(4)
  5231. } else {
  5232. v44 = 0
  5233. }
  5234. v43 = v44
  5235. }
  5236. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = uint8(v43)
  5237. v46 = s + 40
  5238. v45 = *(*Tulg)(unsafe.Pointer(v46))
  5239. *(*Tulg)(unsafe.Pointer(v46))++
  5240. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  5241. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5242. v48 = s + 40
  5243. v47 = *(*Tulg)(unsafe.Pointer(v48))
  5244. *(*Tulg)(unsafe.Pointer(v48))++
  5245. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v47))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len & libc.Uint32FromInt32(0xff))
  5246. v50 = s + 40
  5247. v49 = *(*Tulg)(unsafe.Pointer(v50))
  5248. *(*Tulg)(unsafe.Pointer(v50))++
  5249. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v49))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5250. }
  5251. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5252. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending))
  5253. }
  5254. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5255. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  5256. }
  5257. }
  5258. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  5259. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5260. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  5261. left = uint32(uint64((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex)
  5262. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(uint64(left)) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5263. copy1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5264. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(uint64(copy1)))
  5265. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  5266. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5267. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  5268. }
  5269. *(*Tulg)(unsafe.Pointer(s + 64)) += uint64(uint64(copy1))
  5270. _flush_pending(tls, strm)
  5271. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5272. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5273. return m_Z_OK
  5274. }
  5275. beg = uint64(0)
  5276. left -= copy1
  5277. }
  5278. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(uint64(left)))
  5279. *(*Tulg)(unsafe.Pointer(s + 40)) += uint64(uint64(left))
  5280. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5281. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  5282. }
  5283. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5284. }
  5285. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  5286. }
  5287. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  5288. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  5289. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5290. for cond := true; cond; cond = val != 0 {
  5291. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5292. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5293. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  5294. }
  5295. _flush_pending(tls, strm)
  5296. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5297. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5298. return m_Z_OK
  5299. }
  5300. beg1 = uint64(0)
  5301. }
  5302. v52 = s + 64
  5303. v51 = *(*Tulg)(unsafe.Pointer(v52))
  5304. *(*Tulg)(unsafe.Pointer(v52))++
  5305. val = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  5306. v54 = s + 40
  5307. v53 = *(*Tulg)(unsafe.Pointer(v54))
  5308. *(*Tulg)(unsafe.Pointer(v54))++
  5309. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = uint8(val)
  5310. }
  5311. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5312. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  5313. }
  5314. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5315. }
  5316. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  5317. }
  5318. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  5319. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  5320. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5321. for cond := true; cond; cond = val1 != 0 {
  5322. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5323. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5324. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  5325. }
  5326. _flush_pending(tls, strm)
  5327. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5328. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5329. return m_Z_OK
  5330. }
  5331. beg2 = uint64(0)
  5332. }
  5333. v56 = s + 64
  5334. v55 = *(*Tulg)(unsafe.Pointer(v56))
  5335. *(*Tulg)(unsafe.Pointer(v56))++
  5336. val1 = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  5337. v58 = s + 40
  5338. v57 = *(*Tulg)(unsafe.Pointer(v58))
  5339. *(*Tulg)(unsafe.Pointer(v58))++
  5340. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = uint8(val1)
  5341. }
  5342. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5343. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  5344. }
  5345. }
  5346. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  5347. }
  5348. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  5349. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5350. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5351. _flush_pending(tls, strm)
  5352. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5353. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5354. return m_Z_OK
  5355. }
  5356. }
  5357. v60 = s + 40
  5358. v59 = *(*Tulg)(unsafe.Pointer(v60))
  5359. *(*Tulg)(unsafe.Pointer(v60))++
  5360. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5361. v62 = s + 40
  5362. v61 = *(*Tulg)(unsafe.Pointer(v62))
  5363. *(*Tulg)(unsafe.Pointer(v62))++
  5364. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5365. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5366. }
  5367. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5368. /* Compression must start with an empty pending buffer */
  5369. _flush_pending(tls, strm)
  5370. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5371. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5372. return m_Z_OK
  5373. }
  5374. }
  5375. /* Start a new block or continue the current one.
  5376. */
  5377. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != uint32(0) || flush != m_Z_NO_FLUSH && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_FINISH_STATE) {
  5378. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  5379. v63 = _deflate_stored(tls, s, flush)
  5380. } else {
  5381. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  5382. v64 = _deflate_huff(tls, s, flush)
  5383. } else {
  5384. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  5385. v65 = _deflate_rle(tls, s, flush)
  5386. } else {
  5387. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  5388. }
  5389. v64 = v65
  5390. }
  5391. v63 = v64
  5392. }
  5393. bstate = v63
  5394. if int32(bstate) == _finish_started || int32(bstate) == _finish_done {
  5395. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  5396. }
  5397. if int32(bstate) == _need_more || int32(bstate) == _finish_started {
  5398. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5399. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  5400. }
  5401. return m_Z_OK
  5402. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  5403. * of deflate should use the same flush parameter to make sure
  5404. * that the flush is complete. So we don't have to output an
  5405. * empty block here, this will be done at next call. This also
  5406. * ensures that for a very small output buffer, we emit at most
  5407. * one empty block.
  5408. */
  5409. }
  5410. if int32(bstate) == _block_done {
  5411. if flush == int32(m_Z_PARTIAL_FLUSH) {
  5412. x__tr_align(tls, s)
  5413. } else {
  5414. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  5415. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), 0)
  5416. /* For a full flush, this empty block will be recognized
  5417. * as a special marker by inflate_sync().
  5418. */
  5419. if flush == int32(m_Z_FULL_FLUSH) {
  5420. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5421. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2)) /* forget history */
  5422. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5423. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5424. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5425. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5426. }
  5427. }
  5428. }
  5429. }
  5430. _flush_pending(tls, strm)
  5431. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5432. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  5433. return m_Z_OK
  5434. }
  5435. }
  5436. }
  5437. if flush != int32(m_Z_FINISH) {
  5438. return m_Z_OK
  5439. }
  5440. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  5441. return int32(m_Z_STREAM_END)
  5442. }
  5443. /* Write the trailer */
  5444. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5445. v67 = s + 40
  5446. v66 = *(*Tulg)(unsafe.Pointer(v67))
  5447. *(*Tulg)(unsafe.Pointer(v67))++
  5448. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5449. v69 = s + 40
  5450. v68 = *(*Tulg)(unsafe.Pointer(v69))
  5451. *(*Tulg)(unsafe.Pointer(v69))++
  5452. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5453. v71 = s + 40
  5454. v70 = *(*Tulg)(unsafe.Pointer(v71))
  5455. *(*Tulg)(unsafe.Pointer(v71))++
  5456. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5457. v73 = s + 40
  5458. v72 = *(*Tulg)(unsafe.Pointer(v73))
  5459. *(*Tulg)(unsafe.Pointer(v73))++
  5460. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5461. v75 = s + 40
  5462. v74 = *(*Tulg)(unsafe.Pointer(v75))
  5463. *(*Tulg)(unsafe.Pointer(v75))++
  5464. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint64FromInt32(0xff))
  5465. v77 = s + 40
  5466. v76 = *(*Tulg)(unsafe.Pointer(v77))
  5467. *(*Tulg)(unsafe.Pointer(v77))++
  5468. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5469. v79 = s + 40
  5470. v78 = *(*Tulg)(unsafe.Pointer(v79))
  5471. *(*Tulg)(unsafe.Pointer(v79))++
  5472. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5473. v81 = s + 40
  5474. v80 = *(*Tulg)(unsafe.Pointer(v81))
  5475. *(*Tulg)(unsafe.Pointer(v81))++
  5476. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5477. } else {
  5478. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5479. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5480. }
  5481. _flush_pending(tls, strm)
  5482. /* If avail_out is zero, the application will call deflate again
  5483. * to flush the rest.
  5484. */
  5485. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  5486. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  5487. } /* write the trailer only once! */
  5488. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5489. v82 = m_Z_OK
  5490. } else {
  5491. v82 = int32(m_Z_STREAM_END)
  5492. }
  5493. return v82
  5494. }
  5495. // C documentation
  5496. //
  5497. // /* ========================================================================= */
  5498. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5499. var status, v1 int32
  5500. _, _ = status, v1
  5501. if _deflateStateCheck(tls, strm) != 0 {
  5502. return -int32(2)
  5503. }
  5504. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  5505. /* Deallocate in reverse order of allocations: */
  5506. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  5507. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf)
  5508. }
  5509. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  5510. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead)
  5511. }
  5512. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  5513. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev)
  5514. }
  5515. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  5516. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow)
  5517. }
  5518. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  5519. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  5520. if status == int32(m_BUSY_STATE) {
  5521. v1 = -int32(3)
  5522. } else {
  5523. v1 = m_Z_OK
  5524. }
  5525. return v1
  5526. }
  5527. // C documentation
  5528. //
  5529. // /* =========================================================================
  5530. // * Copy the source state to the destination state.
  5531. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  5532. // * doesn't have enough memory anyway to duplicate compression states).
  5533. // */
  5534. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  5535. var ds, ss uintptr
  5536. _, _ = ds, ss
  5537. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  5538. return -int32(2)
  5539. }
  5540. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  5541. libc.Xmemcpy(tls, dest, source, uint64(112))
  5542. ds = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  5543. if ds == uintptr(m_Z_NULL) {
  5544. return -int32(4)
  5545. }
  5546. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  5547. libc.Xmemcpy(tls, ds, ss, uint64(5952))
  5548. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  5549. (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  5550. (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  5551. (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  5552. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize, uint32(libc.Int32FromInt32(4)))
  5553. if (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf == uintptr(m_Z_NULL) {
  5554. XdeflateEnd(tls, dest)
  5555. return -int32(4)
  5556. }
  5557. /* following zmemcpy do not work for 16-bit MSDOS */
  5558. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))*uint64(1))
  5559. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size)*uint64(2))
  5560. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size)*uint64(2))
  5561. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, uint64(uint32((*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf_size)))
  5562. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  5563. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  5564. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 212
  5565. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2504
  5566. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2748
  5567. return m_Z_OK
  5568. }
  5569. // C documentation
  5570. //
  5571. // /* ===========================================================================
  5572. // * Set match_start to the longest match starting at the given string and
  5573. // * return its length. Matches shorter or equal to prev_length are discarded,
  5574. // * in which case the result is equal to prev_length and match_start is
  5575. // * garbage.
  5576. // * IN assertions: cur_match is the head of the hash chain for the current
  5577. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  5578. // * OUT assertion: the match length is not greater than s->lookahead.
  5579. // */
  5580. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  5581. var best_len, len1, nice_match int32
  5582. var chain_length, v1, v3 uint32
  5583. var limit, v2 TIPos
  5584. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  5585. var scan_end, scan_end1 TByte
  5586. var wmask TuInt
  5587. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  5588. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = best_len, chain_length, len1, limit, match, nice_match, prev, scan, scan_end, scan_end1, strend, wmask, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v4, v6, v7, v8, v9
  5589. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  5590. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  5591. best_len = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  5592. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  5593. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  5594. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  5595. } else {
  5596. v1 = uint32(m_NIL)
  5597. } /* stop if match long enough */
  5598. limit = v1
  5599. /* Stop when cur_match becomes <= limit. To simplify the code,
  5600. * we prevent matches with the string of window index 0.
  5601. */
  5602. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  5603. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  5604. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  5605. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5606. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5607. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  5608. * It is easy to get rid of this optimization if necessary.
  5609. */
  5610. /* Do not waste too much time if we already have a good match: */
  5611. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  5612. chain_length >>= uint32(2)
  5613. }
  5614. /* Do not look for matches beyond the end of the input. This is necessary
  5615. * to make deflate deterministic.
  5616. */
  5617. if uint32(uint32(nice_match)) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5618. nice_match = int32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  5619. }
  5620. for {
  5621. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  5622. /* Skip to next match if the match length cannot increase
  5623. * or if the match length is less than 2. Note that the checks below
  5624. * for insufficient lookahead only occur occasionally for performance
  5625. * reasons. Therefore uninitialized memory will be accessed, and
  5626. * conditional jumps will be made that depend on those values.
  5627. * However the length of the match is limited to the lookahead, so
  5628. * the output of deflate is not affected by the uninitialized values.
  5629. */
  5630. if v7 = int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != int32(int32(scan_end)) || int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != int32(int32(scan_end1)) || int32(*(*TBytef)(unsafe.Pointer(match))) != int32(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  5631. match++
  5632. v6 = match
  5633. }
  5634. if v7 || int32(*(*TBytef)(unsafe.Pointer(v6))) != int32(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  5635. goto _5
  5636. }
  5637. /* The check at best_len - 1 can be removed because it will be made
  5638. * again later. (This heuristic is not always a win.)
  5639. * It is not necessary to compare scan[2] and match[2] since they
  5640. * are always equal when the other bytes match, given that
  5641. * the hash keys are equal and that HASH_BITS >= 8.
  5642. */
  5643. scan += uintptr(2)
  5644. /* The check at best_len - 1 can be removed because it will be made
  5645. * again later. (This heuristic is not always a win.)
  5646. * It is not necessary to compare scan[2] and match[2] since they
  5647. * are always equal when the other bytes match, given that
  5648. * the hash keys are equal and that HASH_BITS >= 8.
  5649. */
  5650. match++
  5651. /* We check for insufficient lookahead only every 8th comparison;
  5652. * the 256th check will be made at strstart + 258.
  5653. */
  5654. for {
  5655. goto _31
  5656. _31:
  5657. scan++
  5658. v8 = scan
  5659. match++
  5660. v9 = match
  5661. if v12 = int32(*(*TBytef)(unsafe.Pointer(v8))) == int32(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  5662. scan++
  5663. v10 = scan
  5664. match++
  5665. v11 = match
  5666. }
  5667. if v15 = v12 && int32(*(*TBytef)(unsafe.Pointer(v10))) == int32(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  5668. scan++
  5669. v13 = scan
  5670. match++
  5671. v14 = match
  5672. }
  5673. if v18 = v15 && int32(*(*TBytef)(unsafe.Pointer(v13))) == int32(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  5674. scan++
  5675. v16 = scan
  5676. match++
  5677. v17 = match
  5678. }
  5679. if v21 = v18 && int32(*(*TBytef)(unsafe.Pointer(v16))) == int32(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  5680. scan++
  5681. v19 = scan
  5682. match++
  5683. v20 = match
  5684. }
  5685. if v24 = v21 && int32(*(*TBytef)(unsafe.Pointer(v19))) == int32(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  5686. scan++
  5687. v22 = scan
  5688. match++
  5689. v23 = match
  5690. }
  5691. if v27 = v24 && int32(*(*TBytef)(unsafe.Pointer(v22))) == int32(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  5692. scan++
  5693. v25 = scan
  5694. match++
  5695. v26 = match
  5696. }
  5697. if v30 = v27 && int32(*(*TBytef)(unsafe.Pointer(v25))) == int32(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  5698. scan++
  5699. v28 = scan
  5700. match++
  5701. v29 = match
  5702. }
  5703. if !(v30 && int32(*(*TBytef)(unsafe.Pointer(v28))) == int32(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  5704. break
  5705. }
  5706. }
  5707. len1 = int32(m_MAX_MATCH) - int32(int64(int64(strend))-int64(int64(scan)))
  5708. scan = strend - uintptr(m_MAX_MATCH)
  5709. if len1 > best_len {
  5710. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  5711. best_len = len1
  5712. if len1 >= nice_match {
  5713. break
  5714. }
  5715. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5716. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5717. }
  5718. goto _5
  5719. _5:
  5720. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  5721. cur_match = v2
  5722. if v4 = v2 > limit; v4 {
  5723. chain_length--
  5724. v3 = chain_length
  5725. }
  5726. if !(v4 && v3 != uint32(0)) {
  5727. break
  5728. }
  5729. }
  5730. if uint32(uint32(best_len)) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5731. return uint32(uint32(best_len))
  5732. }
  5733. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  5734. }
  5735. /* ===========================================================================
  5736. * Flush the current block, with given end-of-file flag.
  5737. * IN assertion: strstart is set to the end of the current match.
  5738. */
  5739. /* Same but force premature exit if necessary. */
  5740. /* Maximum stored block length in deflate format (not including header). */
  5741. /* Minimum of a and b. */
  5742. // C documentation
  5743. //
  5744. // /* ===========================================================================
  5745. // * Copy without compression as much as possible from the input stream, return
  5746. // * the current block state.
  5747. // *
  5748. // * In case deflateParams() is used to later switch to a non-zero compression
  5749. // * level, s->matches (otherwise unused when storing) keeps track of the number
  5750. // * of hash table slides to perform. If s->matches is 1, then one hash table
  5751. // * slide will be done when switching. If s->matches is 2, the maximum value
  5752. // * allowed here, then the hash table will be cleared, since two or more slides
  5753. // * is the same as a clear.
  5754. // *
  5755. // * deflate_stored() is written to minimize the number of times an input byte is
  5756. // * copied. It is most efficient with large input and output buffers, which
  5757. // * maximizes the opportunities to have a single copy from next_in to next_out.
  5758. // */
  5759. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  5760. var have, last, left, len1, min_block, used, v3, v4, v6, v7 uint32
  5761. var v1, v5 uint64
  5762. var v2, v8, v9 int32
  5763. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v2, v3, v4, v5, v6, v7, v8, v9
  5764. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(5) > uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  5765. v1 = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  5766. } else {
  5767. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(5)
  5768. }
  5769. /* Smallest worthy block size when not flushing or finishing. By default
  5770. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  5771. * large input and output buffers, the stored block size will be larger.
  5772. */
  5773. min_block = uint32(v1)
  5774. last = uint32(0)
  5775. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  5776. for cond := true; cond; cond = last == uint32(0) {
  5777. /* Set len to the maximum size block that we can copy directly with the
  5778. * available input data and output space. Set left to how much of that
  5779. * would be copied from what's left in the window.
  5780. */
  5781. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  5782. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  5783. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  5784. break
  5785. }
  5786. /* maximum stored block length that will fit in avail_out: */
  5787. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  5788. left = uint32(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  5789. if uint64(uint64(len1)) > uint64(uint64(left))+uint64((*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  5790. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  5791. } /* limit len to the input */
  5792. if len1 > have {
  5793. len1 = have
  5794. } /* limit len to the output */
  5795. /* If the stored block would be less than min_block in length, or if
  5796. * unable to copy all of the available input when flushing, then try
  5797. * copying to the window and the pending buffer instead. Also don't
  5798. * write an empty block when flushing -- deflate() does that.
  5799. */
  5800. if len1 < min_block && (len1 == uint32(0) && flush != int32(m_Z_FINISH) || flush == m_Z_NO_FLUSH || len1 != left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  5801. break
  5802. }
  5803. /* Make a dummy stored block in pending to get the header bytes,
  5804. * including any pending bits. This also updates the debugging counts.
  5805. */
  5806. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  5807. v2 = int32(1)
  5808. } else {
  5809. v2 = 0
  5810. }
  5811. last = uint32(v2)
  5812. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), int32(int32(last)))
  5813. /* Replace the lengths in the dummy stored block with len. */
  5814. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(4)))) = uint8(uint8(len1))
  5815. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(3)))) = uint8(len1 >> int32(8))
  5816. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(2)))) = uint8(^len1)
  5817. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(1)))) = uint8(^len1 >> int32(8))
  5818. /* Write the stored block header bytes. */
  5819. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  5820. /* Copy uncompressed bytes from the window to next_out. */
  5821. if left != 0 {
  5822. if left > len1 {
  5823. left = len1
  5824. }
  5825. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(uint64(left)))
  5826. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(left)
  5827. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= left
  5828. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(uint64(left))
  5829. *(*int64)(unsafe.Pointer(s + 152)) += int64(int64(left))
  5830. len1 -= left
  5831. }
  5832. /* Copy uncompressed bytes directly from next_in to next_out, updating
  5833. * the check value.
  5834. */
  5835. if len1 != 0 {
  5836. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  5837. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(len1)
  5838. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= len1
  5839. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(uint64(len1))
  5840. }
  5841. }
  5842. /* Update the sliding window with the last s->w_size bytes of the copied
  5843. * data, or append all of the copied data to the existing window if less
  5844. * than s->w_size bytes were copied. Also update the number of bytes to
  5845. * insert in the hash tables, in the event that deflateParams() switches to
  5846. * a non-zero compression level.
  5847. */
  5848. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  5849. if used != 0 {
  5850. /* If any input was used, then no unused input remains in the window,
  5851. * therefore s->block_start == s->strstart.
  5852. */
  5853. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  5854. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  5855. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size))
  5856. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5857. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5858. } else {
  5859. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) <= uint64(uint64(used)) {
  5860. /* Slide the window down. */
  5861. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5862. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  5863. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  5864. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  5865. } /* add a pending slide_hash() */
  5866. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  5867. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5868. }
  5869. }
  5870. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr(used), uint64(uint64(used)))
  5871. *(*TuInt)(unsafe.Pointer(s + 172)) += used
  5872. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  5873. v3 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  5874. } else {
  5875. v3 = used
  5876. }
  5877. *(*TuInt)(unsafe.Pointer(s + 5932)) += v3
  5878. }
  5879. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  5880. }
  5881. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  5882. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  5883. }
  5884. /* If the last block was written to next_out, then done. */
  5885. if last != 0 {
  5886. return _finish_done
  5887. }
  5888. /* If flushing and all input has been consumed, then done. */
  5889. if flush != m_Z_NO_FLUSH && flush != int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  5890. return _block_done
  5891. }
  5892. /* Fill the window with any remaining input. */
  5893. have = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  5894. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= int64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  5895. /* Slide the window down. */
  5896. *(*int64)(unsafe.Pointer(s + 152)) -= int64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  5897. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5898. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  5899. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  5900. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  5901. } /* add a pending slide_hash() */
  5902. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  5903. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  5904. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  5905. }
  5906. }
  5907. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  5908. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  5909. }
  5910. if have != 0 {
  5911. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  5912. *(*TuInt)(unsafe.Pointer(s + 172)) += have
  5913. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  5914. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  5915. } else {
  5916. v4 = have
  5917. }
  5918. *(*TuInt)(unsafe.Pointer(s + 5932)) += v4
  5919. }
  5920. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  5921. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  5922. }
  5923. /* There was not enough avail_out to write a complete worthy or flushed
  5924. * stored block to next_out. Write a stored block to pending instead, if we
  5925. * have enough input for a worthy block, or if flushing and there is enough
  5926. * room for the remaining input as a stored block in the pending buffer.
  5927. */
  5928. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  5929. /* maximum stored block length that will fit in pending: */
  5930. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(uint64(have)) > uint64(libc.Int32FromInt32(m_MAX_STORED)) {
  5931. v5 = uint64(libc.Int32FromInt32(m_MAX_STORED))
  5932. } else {
  5933. v5 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(uint64(have))
  5934. }
  5935. have = uint32(v5)
  5936. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  5937. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5938. } else {
  5939. v6 = have
  5940. }
  5941. min_block = v6
  5942. left = uint32(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  5943. if left >= min_block || (left != 0 || flush == int32(m_Z_FINISH)) && flush != m_Z_NO_FLUSH && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && left <= have {
  5944. if left > have {
  5945. v7 = have
  5946. } else {
  5947. v7 = left
  5948. }
  5949. len1 = v7
  5950. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  5951. v8 = int32(1)
  5952. } else {
  5953. v8 = 0
  5954. }
  5955. last = uint32(v8)
  5956. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(uint64(len1)), int32(int32(last)))
  5957. *(*int64)(unsafe.Pointer(s + 152)) += int64(int64(len1))
  5958. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  5959. }
  5960. /* We've done all we can with the available input and output. */
  5961. if last != 0 {
  5962. v9 = _finish_started
  5963. } else {
  5964. v9 = _need_more
  5965. }
  5966. return v9
  5967. }
  5968. // C documentation
  5969. //
  5970. // /* ===========================================================================
  5971. // * Compress as much as possible from the input stream, return the current
  5972. // * block state.
  5973. // * This function does not perform lazy evaluation of matches and inserts
  5974. // * new strings in the dictionary only for unmatched strings or for short
  5975. // * matches. It is used only for the fast compression options.
  5976. // */
  5977. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  5978. var bflush, v9 int32
  5979. var cc, len1 Tuch
  5980. var dist Tush
  5981. var hash_head TIPos
  5982. var v10, v14, v16, v18, v3, v5, v7 TuInt
  5983. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  5984. var v13, v2 TPosf
  5985. var v21 uint32
  5986. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, dist, hash_head, len1, v10, v11, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  5987. for {
  5988. /* Make sure that we always have enough lookahead, except
  5989. * at the end of the input file. We need MAX_MATCH bytes
  5990. * for the next match, plus MIN_MATCH bytes to insert the
  5991. * string following the next match.
  5992. */
  5993. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  5994. _fill_window(tls, s)
  5995. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  5996. return _need_more
  5997. }
  5998. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5999. break
  6000. } /* flush the current block */
  6001. }
  6002. /* Insert the string window[strstart .. strstart + 2] in the
  6003. * dictionary, and set hash_head to the head of the hash chain:
  6004. */
  6005. hash_head = uint32(m_NIL)
  6006. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6007. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6008. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6009. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v2
  6010. hash_head = uint32(v2)
  6011. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6012. }
  6013. /* Find the longest match, discarding those <= prev_length.
  6014. * At this point we have always match_length < MIN_MATCH
  6015. */
  6016. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6017. /* To simplify the code, we prevent matches with the string
  6018. * of window index 0 (in particular we have to avoid a match
  6019. * of the string with itself at the start of the input file).
  6020. */
  6021. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6022. /* longest_match() sets match_start */
  6023. }
  6024. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6025. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6026. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  6027. v4 = s + 5900
  6028. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6029. *(*TuInt)(unsafe.Pointer(v4))++
  6030. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(uint8(dist))
  6031. v6 = s + 5900
  6032. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6033. *(*TuInt)(unsafe.Pointer(v6))++
  6034. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(int32(dist)) >> libc.Int32FromInt32(8))
  6035. v8 = s + 5900
  6036. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6037. *(*TuInt)(unsafe.Pointer(v8))++
  6038. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6039. dist--
  6040. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6041. if int32(dist) < int32(256) {
  6042. v9 = int32(x__dist_code[dist])
  6043. } else {
  6044. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  6045. }
  6046. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6047. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6048. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6049. /* Insert new strings in the hash table only if the match length
  6050. * is not too large. This saves time but degrades compression.
  6051. */
  6052. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6053. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  6054. for {
  6055. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6056. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6057. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6058. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v13
  6059. hash_head = uint32(v13)
  6060. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6061. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  6062. * always MIN_MATCH bytes ahead.
  6063. */
  6064. goto _12
  6065. _12:
  6066. v11 = s + 160
  6067. *(*TuInt)(unsafe.Pointer(v11))--
  6068. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6069. if !(v10 != uint32(0)) {
  6070. break
  6071. }
  6072. }
  6073. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6074. } else {
  6075. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6076. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6077. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  6078. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6079. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  6080. * matter since it will be recomputed at next deflate call.
  6081. */
  6082. }
  6083. } else {
  6084. /* No match, output a literal byte */
  6085. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6086. v15 = s + 5900
  6087. v14 = *(*TuInt)(unsafe.Pointer(v15))
  6088. *(*TuInt)(unsafe.Pointer(v15))++
  6089. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  6090. v17 = s + 5900
  6091. v16 = *(*TuInt)(unsafe.Pointer(v17))
  6092. *(*TuInt)(unsafe.Pointer(v17))++
  6093. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  6094. v19 = s + 5900
  6095. v18 = *(*TuInt)(unsafe.Pointer(v19))
  6096. *(*TuInt)(unsafe.Pointer(v19))++
  6097. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  6098. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6099. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6100. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6101. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6102. }
  6103. if bflush != 0 {
  6104. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6105. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6106. } else {
  6107. v20 = libc.UintptrFromInt32(m_Z_NULL)
  6108. }
  6109. x__tr_flush_block(tls, s, v20, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6110. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6111. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6112. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6113. return _need_more
  6114. }
  6115. }
  6116. goto _1
  6117. _1:
  6118. }
  6119. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6120. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6121. } else {
  6122. v21 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6123. }
  6124. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  6125. if flush == int32(m_Z_FINISH) {
  6126. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6127. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6128. } else {
  6129. v22 = libc.UintptrFromInt32(m_Z_NULL)
  6130. }
  6131. x__tr_flush_block(tls, s, v22, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6132. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6133. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6134. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6135. return _finish_started
  6136. }
  6137. return _finish_done
  6138. }
  6139. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6140. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6141. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6142. } else {
  6143. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6144. }
  6145. x__tr_flush_block(tls, s, v23, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6146. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6147. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6148. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6149. return _need_more
  6150. }
  6151. }
  6152. return _block_done
  6153. }
  6154. // C documentation
  6155. //
  6156. // /* ===========================================================================
  6157. // * Same as above, but achieves better compression. We use a lazy
  6158. // * evaluation for matches: a match is finally adopted only if there is
  6159. // * no better match at the next window position.
  6160. // */
  6161. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6162. var bflush, v9 int32
  6163. var cc, cc1, len1 Tuch
  6164. var dist Tush
  6165. var hash_head TIPos
  6166. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  6167. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  6168. var v15, v2 TPosf
  6169. var v30 uint32
  6170. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, cc1, dist, hash_head, len1, max_insert, v10, v11, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6171. /* Process the input block. */
  6172. for {
  6173. /* Make sure that we always have enough lookahead, except
  6174. * at the end of the input file. We need MAX_MATCH bytes
  6175. * for the next match, plus MIN_MATCH bytes to insert the
  6176. * string following the next match.
  6177. */
  6178. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6179. _fill_window(tls, s)
  6180. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6181. return _need_more
  6182. }
  6183. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6184. break
  6185. } /* flush the current block */
  6186. }
  6187. /* Insert the string window[strstart .. strstart + 2] in the
  6188. * dictionary, and set hash_head to the head of the hash chain:
  6189. */
  6190. hash_head = uint32(m_NIL)
  6191. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6192. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6193. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6194. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v2
  6195. hash_head = uint32(v2)
  6196. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6197. }
  6198. /* Find the longest match, discarding those <= prev_length.
  6199. */
  6200. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6201. /* Find the longest match, discarding those <= prev_length.
  6202. */
  6203. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  6204. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6205. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length < (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6206. /* To simplify the code, we prevent matches with the string
  6207. * of window index 0 (in particular we have to avoid a match
  6208. * of the string with itself at the start of the input file).
  6209. */
  6210. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6211. /* longest_match() sets match_start */
  6212. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= uint32(5) && ((*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FILTERED) || (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length == uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-(*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start > uint32(m_TOO_FAR)) {
  6213. /* If prev_match is also MIN_MATCH, match_start is garbage
  6214. * but we will ignore the current match anyway.
  6215. */
  6216. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6217. }
  6218. }
  6219. /* If there was a match at the previous step and the current
  6220. * match is not better, output the previous match:
  6221. */
  6222. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length {
  6223. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  6224. /* Do not insert strings in hash table beyond this. */
  6225. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6226. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  6227. v4 = s + 5900
  6228. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6229. *(*TuInt)(unsafe.Pointer(v4))++
  6230. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(uint8(dist))
  6231. v6 = s + 5900
  6232. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6233. *(*TuInt)(unsafe.Pointer(v6))++
  6234. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(int32(dist)) >> libc.Int32FromInt32(8))
  6235. v8 = s + 5900
  6236. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6237. *(*TuInt)(unsafe.Pointer(v8))++
  6238. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6239. dist--
  6240. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6241. if int32(dist) < int32(256) {
  6242. v9 = int32(x__dist_code[dist])
  6243. } else {
  6244. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  6245. }
  6246. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6247. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6248. /* Insert in hash table all strings up to the end of the match.
  6249. * strstart - 1 and strstart are already inserted. If there is not
  6250. * enough lookahead, the last two strings are not inserted in
  6251. * the hash table.
  6252. */
  6253. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  6254. *(*TuInt)(unsafe.Pointer(s + 184)) -= uint32(2)
  6255. for {
  6256. v14 = s + 172
  6257. *(*TuInt)(unsafe.Pointer(v14))++
  6258. v13 = *(*TuInt)(unsafe.Pointer(v14))
  6259. if v13 <= max_insert {
  6260. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6261. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6262. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v15
  6263. hash_head = uint32(v15)
  6264. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6265. }
  6266. goto _12
  6267. _12:
  6268. v11 = s + 184
  6269. *(*TuInt)(unsafe.Pointer(v11))--
  6270. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6271. if !(v10 != uint32(0)) {
  6272. break
  6273. }
  6274. }
  6275. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6276. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6277. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6278. if bflush != 0 {
  6279. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6280. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6281. } else {
  6282. v16 = libc.UintptrFromInt32(m_Z_NULL)
  6283. }
  6284. x__tr_flush_block(tls, s, v16, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6285. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6286. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6287. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6288. return _need_more
  6289. }
  6290. }
  6291. } else {
  6292. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6293. /* If there was no match at the previous position, output a
  6294. * single literal. If there was a match but the current match
  6295. * is longer, truncate the previous match to a single literal.
  6296. */
  6297. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6298. v18 = s + 5900
  6299. v17 = *(*TuInt)(unsafe.Pointer(v18))
  6300. *(*TuInt)(unsafe.Pointer(v18))++
  6301. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  6302. v20 = s + 5900
  6303. v19 = *(*TuInt)(unsafe.Pointer(v20))
  6304. *(*TuInt)(unsafe.Pointer(v20))++
  6305. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  6306. v22 = s + 5900
  6307. v21 = *(*TuInt)(unsafe.Pointer(v22))
  6308. *(*TuInt)(unsafe.Pointer(v22))++
  6309. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  6310. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6311. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6312. if bflush != 0 {
  6313. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6314. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6315. } else {
  6316. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6317. }
  6318. x__tr_flush_block(tls, s, v23, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6319. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6320. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6321. }
  6322. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6323. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6324. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6325. return _need_more
  6326. }
  6327. } else {
  6328. /* There is no previous match to compare with, wait for
  6329. * the next step to decide.
  6330. */
  6331. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  6332. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6333. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6334. }
  6335. }
  6336. goto _1
  6337. _1:
  6338. }
  6339. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6340. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6341. v25 = s + 5900
  6342. v24 = *(*TuInt)(unsafe.Pointer(v25))
  6343. *(*TuInt)(unsafe.Pointer(v25))++
  6344. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  6345. v27 = s + 5900
  6346. v26 = *(*TuInt)(unsafe.Pointer(v27))
  6347. *(*TuInt)(unsafe.Pointer(v27))++
  6348. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  6349. v29 = s + 5900
  6350. v28 = *(*TuInt)(unsafe.Pointer(v29))
  6351. *(*TuInt)(unsafe.Pointer(v29))++
  6352. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  6353. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc1)*4))++
  6354. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6355. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6356. }
  6357. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6358. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6359. } else {
  6360. v30 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6361. }
  6362. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  6363. if flush == int32(m_Z_FINISH) {
  6364. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6365. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6366. } else {
  6367. v31 = libc.UintptrFromInt32(m_Z_NULL)
  6368. }
  6369. x__tr_flush_block(tls, s, v31, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6370. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6371. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6372. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6373. return _finish_started
  6374. }
  6375. return _finish_done
  6376. }
  6377. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6378. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6379. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6380. } else {
  6381. v32 = libc.UintptrFromInt32(m_Z_NULL)
  6382. }
  6383. x__tr_flush_block(tls, s, v32, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6384. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6385. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6386. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6387. return _need_more
  6388. }
  6389. }
  6390. return _block_done
  6391. }
  6392. // C documentation
  6393. //
  6394. // /* ===========================================================================
  6395. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  6396. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  6397. // * deflate switches away from Z_RLE.)
  6398. // */
  6399. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6400. var bflush, v29 int32
  6401. var cc, len1 Tuch
  6402. var dist Tush
  6403. var prev, v23, v25, v27, v30, v32, v34 TuInt
  6404. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  6405. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  6406. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, dist, len1, prev, scan, strend, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v4, v5, v6, v7, v8, v9 /* scan goes up to strend for length of run */
  6407. for {
  6408. /* Make sure that we always have enough lookahead, except
  6409. * at the end of the input file. We need MAX_MATCH bytes
  6410. * for the longest run, plus one for the unrolled loop.
  6411. */
  6412. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  6413. _fill_window(tls, s)
  6414. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  6415. return _need_more
  6416. }
  6417. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6418. break
  6419. } /* flush the current block */
  6420. }
  6421. /* See how many times the previous byte repeats */
  6422. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6423. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  6424. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  6425. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  6426. scan++
  6427. v2 = scan
  6428. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  6429. scan++
  6430. v3 = scan
  6431. }
  6432. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  6433. scan++
  6434. v5 = scan
  6435. }
  6436. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  6437. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  6438. for {
  6439. goto _22
  6440. _22:
  6441. scan++
  6442. v7 = scan
  6443. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  6444. scan++
  6445. v8 = scan
  6446. }
  6447. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  6448. scan++
  6449. v10 = scan
  6450. }
  6451. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  6452. scan++
  6453. v12 = scan
  6454. }
  6455. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  6456. scan++
  6457. v14 = scan
  6458. }
  6459. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  6460. scan++
  6461. v16 = scan
  6462. }
  6463. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  6464. scan++
  6465. v18 = scan
  6466. }
  6467. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  6468. scan++
  6469. v20 = scan
  6470. }
  6471. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  6472. break
  6473. }
  6474. }
  6475. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - uint32(int64(int64(strend))-int64(int64(scan)))
  6476. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6477. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6478. }
  6479. }
  6480. }
  6481. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  6482. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6483. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6484. dist = uint16(libc.Int32FromInt32(1))
  6485. v24 = s + 5900
  6486. v23 = *(*TuInt)(unsafe.Pointer(v24))
  6487. *(*TuInt)(unsafe.Pointer(v24))++
  6488. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(uint8(dist))
  6489. v26 = s + 5900
  6490. v25 = *(*TuInt)(unsafe.Pointer(v26))
  6491. *(*TuInt)(unsafe.Pointer(v26))++
  6492. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = uint8(int32(int32(dist)) >> libc.Int32FromInt32(8))
  6493. v28 = s + 5900
  6494. v27 = *(*TuInt)(unsafe.Pointer(v28))
  6495. *(*TuInt)(unsafe.Pointer(v28))++
  6496. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  6497. dist--
  6498. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6499. if int32(dist) < int32(256) {
  6500. v29 = int32(x__dist_code[dist])
  6501. } else {
  6502. v29 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  6503. }
  6504. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v29)*4))++
  6505. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6506. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6507. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6508. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6509. } else {
  6510. /* No match, output a literal byte */
  6511. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6512. v31 = s + 5900
  6513. v30 = *(*TuInt)(unsafe.Pointer(v31))
  6514. *(*TuInt)(unsafe.Pointer(v31))++
  6515. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  6516. v33 = s + 5900
  6517. v32 = *(*TuInt)(unsafe.Pointer(v33))
  6518. *(*TuInt)(unsafe.Pointer(v33))++
  6519. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  6520. v35 = s + 5900
  6521. v34 = *(*TuInt)(unsafe.Pointer(v35))
  6522. *(*TuInt)(unsafe.Pointer(v35))++
  6523. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  6524. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6525. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6526. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6527. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6528. }
  6529. if bflush != 0 {
  6530. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6531. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6532. } else {
  6533. v36 = libc.UintptrFromInt32(m_Z_NULL)
  6534. }
  6535. x__tr_flush_block(tls, s, v36, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6536. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6537. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6538. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6539. return _need_more
  6540. }
  6541. }
  6542. goto _1
  6543. _1:
  6544. }
  6545. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6546. if flush == int32(m_Z_FINISH) {
  6547. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6548. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6549. } else {
  6550. v37 = libc.UintptrFromInt32(m_Z_NULL)
  6551. }
  6552. x__tr_flush_block(tls, s, v37, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6553. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6554. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6555. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6556. return _finish_started
  6557. }
  6558. return _finish_done
  6559. }
  6560. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6561. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6562. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6563. } else {
  6564. v38 = libc.UintptrFromInt32(m_Z_NULL)
  6565. }
  6566. x__tr_flush_block(tls, s, v38, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6567. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6568. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6569. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6570. return _need_more
  6571. }
  6572. }
  6573. return _block_done
  6574. }
  6575. // C documentation
  6576. //
  6577. // /* ===========================================================================
  6578. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  6579. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  6580. // */
  6581. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6582. var bflush int32
  6583. var cc Tuch
  6584. var v10, v3, v5, v7, v8, v9 uintptr
  6585. var v2, v4, v6 TuInt
  6586. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6587. for {
  6588. /* Make sure that we have a literal to write. */
  6589. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6590. _fill_window(tls, s)
  6591. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6592. if flush == m_Z_NO_FLUSH {
  6593. return _need_more
  6594. }
  6595. break /* flush the current block */
  6596. }
  6597. }
  6598. /* Output a literal byte */
  6599. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6600. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6601. v3 = s + 5900
  6602. v2 = *(*TuInt)(unsafe.Pointer(v3))
  6603. *(*TuInt)(unsafe.Pointer(v3))++
  6604. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  6605. v5 = s + 5900
  6606. v4 = *(*TuInt)(unsafe.Pointer(v5))
  6607. *(*TuInt)(unsafe.Pointer(v5))++
  6608. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  6609. v7 = s + 5900
  6610. v6 = *(*TuInt)(unsafe.Pointer(v7))
  6611. *(*TuInt)(unsafe.Pointer(v7))++
  6612. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  6613. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6614. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6615. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6616. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6617. if bflush != 0 {
  6618. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6619. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6620. } else {
  6621. v8 = libc.UintptrFromInt32(m_Z_NULL)
  6622. }
  6623. x__tr_flush_block(tls, s, v8, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6624. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6625. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6626. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6627. return _need_more
  6628. }
  6629. }
  6630. goto _1
  6631. _1:
  6632. }
  6633. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6634. if flush == int32(m_Z_FINISH) {
  6635. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6636. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6637. } else {
  6638. v9 = libc.UintptrFromInt32(m_Z_NULL)
  6639. }
  6640. x__tr_flush_block(tls, s, v9, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6641. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6642. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6643. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6644. return _finish_started
  6645. }
  6646. return _finish_done
  6647. }
  6648. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6649. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6650. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6651. } else {
  6652. v10 = libc.UintptrFromInt32(m_Z_NULL)
  6653. }
  6654. x__tr_flush_block(tls, s, v10, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6655. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6656. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6657. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6658. return _need_more
  6659. }
  6660. }
  6661. return _block_done
  6662. }
  6663. const m_ENOUGH_DISTS = 592
  6664. const m_ENOUGH_LENS = 852
  6665. type Tcode = struct {
  6666. Fop uint8
  6667. Fbits uint8
  6668. Fval uint16
  6669. }
  6670. type Tcodetype = int32
  6671. const _CODES = 0
  6672. const _LENS = 1
  6673. const _DISTS = 2
  6674. type Tinflate_mode = int32
  6675. const _HEAD = 16180
  6676. const _FLAGS = 16181
  6677. const _TIME = 16182
  6678. const _OS = 16183
  6679. const _EXLEN = 16184
  6680. const _EXTRA = 16185
  6681. const _NAME = 16186
  6682. const _COMMENT = 16187
  6683. const _HCRC = 16188
  6684. const _DICTID = 16189
  6685. const _DICT = 16190
  6686. const _TYPE = 16191
  6687. const _TYPEDO = 16192
  6688. const _STORED = 16193
  6689. const _COPY_ = 16194
  6690. const _COPY = 16195
  6691. const _TABLE = 16196
  6692. const _LENLENS = 16197
  6693. const _CODELENS = 16198
  6694. const _LEN_ = 16199
  6695. const _LEN = 16200
  6696. const _LENEXT = 16201
  6697. const _DIST = 16202
  6698. const _DISTEXT = 16203
  6699. const _MATCH = 16204
  6700. const _LIT = 16205
  6701. const _CHECK = 16206
  6702. const _LENGTH = 16207
  6703. const _DONE = 16208
  6704. const _BAD = 16209
  6705. const _MEM = 16210
  6706. const _SYNC = 16211
  6707. type Tinflate_state = struct {
  6708. Fstrm Tz_streamp
  6709. Fmode Tinflate_mode
  6710. Flast int32
  6711. Fwrap int32
  6712. Fhavedict int32
  6713. Fflags int32
  6714. Fdmax uint32
  6715. Fcheck uint64
  6716. Ftotal uint64
  6717. Fhead Tgz_headerp
  6718. Fwbits uint32
  6719. Fwsize uint32
  6720. Fwhave uint32
  6721. Fwnext uint32
  6722. Fwindow uintptr
  6723. Fhold uint64
  6724. Fbits uint32
  6725. Flength uint32
  6726. Foffset uint32
  6727. Fextra uint32
  6728. Flencode uintptr
  6729. Fdistcode uintptr
  6730. Flenbits uint32
  6731. Fdistbits uint32
  6732. Fncode uint32
  6733. Fnlen uint32
  6734. Fndist uint32
  6735. Fhave uint32
  6736. Fnext uintptr
  6737. Flens [320]uint16
  6738. Fwork [288]uint16
  6739. Fcodes [1444]Tcode
  6740. Fsane int32
  6741. Fback int32
  6742. Fwas uint32
  6743. }
  6744. // C documentation
  6745. //
  6746. // /*
  6747. // strm provides memory allocation functions in zalloc and zfree, or
  6748. // Z_NULL to use the library memory allocation functions.
  6749. //
  6750. // windowBits is in the range 8..15, and window is a user-supplied
  6751. // window and output buffer that is 2**windowBits bytes.
  6752. // */
  6753. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  6754. var state uintptr
  6755. _ = state
  6756. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(112)) {
  6757. return -int32(6)
  6758. }
  6759. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  6760. return -int32(2)
  6761. }
  6762. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  6763. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  6764. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  6765. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  6766. }
  6767. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6768. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  6769. }
  6770. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  6771. if state == uintptr(m_Z_NULL) {
  6772. return -int32(4)
  6773. }
  6774. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  6775. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  6776. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(uint32(windowBits))
  6777. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  6778. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  6779. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  6780. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  6781. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  6782. return m_Z_OK
  6783. }
  6784. // C documentation
  6785. //
  6786. // /*
  6787. // Return state with length and distance decoding tables and index sizes set to
  6788. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  6789. // If BUILDFIXED is defined, then instead this routine builds the tables the
  6790. // first time it's called, and returns those tables the first time and
  6791. // thereafter. This reduces the size of the code by about 2K bytes, in
  6792. // exchange for a little execution time. However, BUILDFIXED should not be
  6793. // used for threaded applications, since the rewriting of the tables and virgin
  6794. // may not be thread-safe.
  6795. // */
  6796. func _fixedtables(tls *libc.TLS, state uintptr) {
  6797. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  6798. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  6799. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  6800. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  6801. }
  6802. var _lenfix = [512]Tcode{
  6803. 0: {
  6804. Fop: uint8(96),
  6805. Fbits: uint8(7),
  6806. },
  6807. 1: {
  6808. Fbits: uint8(8),
  6809. Fval: uint16(80),
  6810. },
  6811. 2: {
  6812. Fbits: uint8(8),
  6813. Fval: uint16(16),
  6814. },
  6815. 3: {
  6816. Fop: uint8(20),
  6817. Fbits: uint8(8),
  6818. Fval: uint16(115),
  6819. },
  6820. 4: {
  6821. Fop: uint8(18),
  6822. Fbits: uint8(7),
  6823. Fval: uint16(31),
  6824. },
  6825. 5: {
  6826. Fbits: uint8(8),
  6827. Fval: uint16(112),
  6828. },
  6829. 6: {
  6830. Fbits: uint8(8),
  6831. Fval: uint16(48),
  6832. },
  6833. 7: {
  6834. Fbits: uint8(9),
  6835. Fval: uint16(192),
  6836. },
  6837. 8: {
  6838. Fop: uint8(16),
  6839. Fbits: uint8(7),
  6840. Fval: uint16(10),
  6841. },
  6842. 9: {
  6843. Fbits: uint8(8),
  6844. Fval: uint16(96),
  6845. },
  6846. 10: {
  6847. Fbits: uint8(8),
  6848. Fval: uint16(32),
  6849. },
  6850. 11: {
  6851. Fbits: uint8(9),
  6852. Fval: uint16(160),
  6853. },
  6854. 12: {
  6855. Fbits: uint8(8),
  6856. },
  6857. 13: {
  6858. Fbits: uint8(8),
  6859. Fval: uint16(128),
  6860. },
  6861. 14: {
  6862. Fbits: uint8(8),
  6863. Fval: uint16(64),
  6864. },
  6865. 15: {
  6866. Fbits: uint8(9),
  6867. Fval: uint16(224),
  6868. },
  6869. 16: {
  6870. Fop: uint8(16),
  6871. Fbits: uint8(7),
  6872. Fval: uint16(6),
  6873. },
  6874. 17: {
  6875. Fbits: uint8(8),
  6876. Fval: uint16(88),
  6877. },
  6878. 18: {
  6879. Fbits: uint8(8),
  6880. Fval: uint16(24),
  6881. },
  6882. 19: {
  6883. Fbits: uint8(9),
  6884. Fval: uint16(144),
  6885. },
  6886. 20: {
  6887. Fop: uint8(19),
  6888. Fbits: uint8(7),
  6889. Fval: uint16(59),
  6890. },
  6891. 21: {
  6892. Fbits: uint8(8),
  6893. Fval: uint16(120),
  6894. },
  6895. 22: {
  6896. Fbits: uint8(8),
  6897. Fval: uint16(56),
  6898. },
  6899. 23: {
  6900. Fbits: uint8(9),
  6901. Fval: uint16(208),
  6902. },
  6903. 24: {
  6904. Fop: uint8(17),
  6905. Fbits: uint8(7),
  6906. Fval: uint16(17),
  6907. },
  6908. 25: {
  6909. Fbits: uint8(8),
  6910. Fval: uint16(104),
  6911. },
  6912. 26: {
  6913. Fbits: uint8(8),
  6914. Fval: uint16(40),
  6915. },
  6916. 27: {
  6917. Fbits: uint8(9),
  6918. Fval: uint16(176),
  6919. },
  6920. 28: {
  6921. Fbits: uint8(8),
  6922. Fval: uint16(8),
  6923. },
  6924. 29: {
  6925. Fbits: uint8(8),
  6926. Fval: uint16(136),
  6927. },
  6928. 30: {
  6929. Fbits: uint8(8),
  6930. Fval: uint16(72),
  6931. },
  6932. 31: {
  6933. Fbits: uint8(9),
  6934. Fval: uint16(240),
  6935. },
  6936. 32: {
  6937. Fop: uint8(16),
  6938. Fbits: uint8(7),
  6939. Fval: uint16(4),
  6940. },
  6941. 33: {
  6942. Fbits: uint8(8),
  6943. Fval: uint16(84),
  6944. },
  6945. 34: {
  6946. Fbits: uint8(8),
  6947. Fval: uint16(20),
  6948. },
  6949. 35: {
  6950. Fop: uint8(21),
  6951. Fbits: uint8(8),
  6952. Fval: uint16(227),
  6953. },
  6954. 36: {
  6955. Fop: uint8(19),
  6956. Fbits: uint8(7),
  6957. Fval: uint16(43),
  6958. },
  6959. 37: {
  6960. Fbits: uint8(8),
  6961. Fval: uint16(116),
  6962. },
  6963. 38: {
  6964. Fbits: uint8(8),
  6965. Fval: uint16(52),
  6966. },
  6967. 39: {
  6968. Fbits: uint8(9),
  6969. Fval: uint16(200),
  6970. },
  6971. 40: {
  6972. Fop: uint8(17),
  6973. Fbits: uint8(7),
  6974. Fval: uint16(13),
  6975. },
  6976. 41: {
  6977. Fbits: uint8(8),
  6978. Fval: uint16(100),
  6979. },
  6980. 42: {
  6981. Fbits: uint8(8),
  6982. Fval: uint16(36),
  6983. },
  6984. 43: {
  6985. Fbits: uint8(9),
  6986. Fval: uint16(168),
  6987. },
  6988. 44: {
  6989. Fbits: uint8(8),
  6990. Fval: uint16(4),
  6991. },
  6992. 45: {
  6993. Fbits: uint8(8),
  6994. Fval: uint16(132),
  6995. },
  6996. 46: {
  6997. Fbits: uint8(8),
  6998. Fval: uint16(68),
  6999. },
  7000. 47: {
  7001. Fbits: uint8(9),
  7002. Fval: uint16(232),
  7003. },
  7004. 48: {
  7005. Fop: uint8(16),
  7006. Fbits: uint8(7),
  7007. Fval: uint16(8),
  7008. },
  7009. 49: {
  7010. Fbits: uint8(8),
  7011. Fval: uint16(92),
  7012. },
  7013. 50: {
  7014. Fbits: uint8(8),
  7015. Fval: uint16(28),
  7016. },
  7017. 51: {
  7018. Fbits: uint8(9),
  7019. Fval: uint16(152),
  7020. },
  7021. 52: {
  7022. Fop: uint8(20),
  7023. Fbits: uint8(7),
  7024. Fval: uint16(83),
  7025. },
  7026. 53: {
  7027. Fbits: uint8(8),
  7028. Fval: uint16(124),
  7029. },
  7030. 54: {
  7031. Fbits: uint8(8),
  7032. Fval: uint16(60),
  7033. },
  7034. 55: {
  7035. Fbits: uint8(9),
  7036. Fval: uint16(216),
  7037. },
  7038. 56: {
  7039. Fop: uint8(18),
  7040. Fbits: uint8(7),
  7041. Fval: uint16(23),
  7042. },
  7043. 57: {
  7044. Fbits: uint8(8),
  7045. Fval: uint16(108),
  7046. },
  7047. 58: {
  7048. Fbits: uint8(8),
  7049. Fval: uint16(44),
  7050. },
  7051. 59: {
  7052. Fbits: uint8(9),
  7053. Fval: uint16(184),
  7054. },
  7055. 60: {
  7056. Fbits: uint8(8),
  7057. Fval: uint16(12),
  7058. },
  7059. 61: {
  7060. Fbits: uint8(8),
  7061. Fval: uint16(140),
  7062. },
  7063. 62: {
  7064. Fbits: uint8(8),
  7065. Fval: uint16(76),
  7066. },
  7067. 63: {
  7068. Fbits: uint8(9),
  7069. Fval: uint16(248),
  7070. },
  7071. 64: {
  7072. Fop: uint8(16),
  7073. Fbits: uint8(7),
  7074. Fval: uint16(3),
  7075. },
  7076. 65: {
  7077. Fbits: uint8(8),
  7078. Fval: uint16(82),
  7079. },
  7080. 66: {
  7081. Fbits: uint8(8),
  7082. Fval: uint16(18),
  7083. },
  7084. 67: {
  7085. Fop: uint8(21),
  7086. Fbits: uint8(8),
  7087. Fval: uint16(163),
  7088. },
  7089. 68: {
  7090. Fop: uint8(19),
  7091. Fbits: uint8(7),
  7092. Fval: uint16(35),
  7093. },
  7094. 69: {
  7095. Fbits: uint8(8),
  7096. Fval: uint16(114),
  7097. },
  7098. 70: {
  7099. Fbits: uint8(8),
  7100. Fval: uint16(50),
  7101. },
  7102. 71: {
  7103. Fbits: uint8(9),
  7104. Fval: uint16(196),
  7105. },
  7106. 72: {
  7107. Fop: uint8(17),
  7108. Fbits: uint8(7),
  7109. Fval: uint16(11),
  7110. },
  7111. 73: {
  7112. Fbits: uint8(8),
  7113. Fval: uint16(98),
  7114. },
  7115. 74: {
  7116. Fbits: uint8(8),
  7117. Fval: uint16(34),
  7118. },
  7119. 75: {
  7120. Fbits: uint8(9),
  7121. Fval: uint16(164),
  7122. },
  7123. 76: {
  7124. Fbits: uint8(8),
  7125. Fval: uint16(2),
  7126. },
  7127. 77: {
  7128. Fbits: uint8(8),
  7129. Fval: uint16(130),
  7130. },
  7131. 78: {
  7132. Fbits: uint8(8),
  7133. Fval: uint16(66),
  7134. },
  7135. 79: {
  7136. Fbits: uint8(9),
  7137. Fval: uint16(228),
  7138. },
  7139. 80: {
  7140. Fop: uint8(16),
  7141. Fbits: uint8(7),
  7142. Fval: uint16(7),
  7143. },
  7144. 81: {
  7145. Fbits: uint8(8),
  7146. Fval: uint16(90),
  7147. },
  7148. 82: {
  7149. Fbits: uint8(8),
  7150. Fval: uint16(26),
  7151. },
  7152. 83: {
  7153. Fbits: uint8(9),
  7154. Fval: uint16(148),
  7155. },
  7156. 84: {
  7157. Fop: uint8(20),
  7158. Fbits: uint8(7),
  7159. Fval: uint16(67),
  7160. },
  7161. 85: {
  7162. Fbits: uint8(8),
  7163. Fval: uint16(122),
  7164. },
  7165. 86: {
  7166. Fbits: uint8(8),
  7167. Fval: uint16(58),
  7168. },
  7169. 87: {
  7170. Fbits: uint8(9),
  7171. Fval: uint16(212),
  7172. },
  7173. 88: {
  7174. Fop: uint8(18),
  7175. Fbits: uint8(7),
  7176. Fval: uint16(19),
  7177. },
  7178. 89: {
  7179. Fbits: uint8(8),
  7180. Fval: uint16(106),
  7181. },
  7182. 90: {
  7183. Fbits: uint8(8),
  7184. Fval: uint16(42),
  7185. },
  7186. 91: {
  7187. Fbits: uint8(9),
  7188. Fval: uint16(180),
  7189. },
  7190. 92: {
  7191. Fbits: uint8(8),
  7192. Fval: uint16(10),
  7193. },
  7194. 93: {
  7195. Fbits: uint8(8),
  7196. Fval: uint16(138),
  7197. },
  7198. 94: {
  7199. Fbits: uint8(8),
  7200. Fval: uint16(74),
  7201. },
  7202. 95: {
  7203. Fbits: uint8(9),
  7204. Fval: uint16(244),
  7205. },
  7206. 96: {
  7207. Fop: uint8(16),
  7208. Fbits: uint8(7),
  7209. Fval: uint16(5),
  7210. },
  7211. 97: {
  7212. Fbits: uint8(8),
  7213. Fval: uint16(86),
  7214. },
  7215. 98: {
  7216. Fbits: uint8(8),
  7217. Fval: uint16(22),
  7218. },
  7219. 99: {
  7220. Fop: uint8(64),
  7221. Fbits: uint8(8),
  7222. },
  7223. 100: {
  7224. Fop: uint8(19),
  7225. Fbits: uint8(7),
  7226. Fval: uint16(51),
  7227. },
  7228. 101: {
  7229. Fbits: uint8(8),
  7230. Fval: uint16(118),
  7231. },
  7232. 102: {
  7233. Fbits: uint8(8),
  7234. Fval: uint16(54),
  7235. },
  7236. 103: {
  7237. Fbits: uint8(9),
  7238. Fval: uint16(204),
  7239. },
  7240. 104: {
  7241. Fop: uint8(17),
  7242. Fbits: uint8(7),
  7243. Fval: uint16(15),
  7244. },
  7245. 105: {
  7246. Fbits: uint8(8),
  7247. Fval: uint16(102),
  7248. },
  7249. 106: {
  7250. Fbits: uint8(8),
  7251. Fval: uint16(38),
  7252. },
  7253. 107: {
  7254. Fbits: uint8(9),
  7255. Fval: uint16(172),
  7256. },
  7257. 108: {
  7258. Fbits: uint8(8),
  7259. Fval: uint16(6),
  7260. },
  7261. 109: {
  7262. Fbits: uint8(8),
  7263. Fval: uint16(134),
  7264. },
  7265. 110: {
  7266. Fbits: uint8(8),
  7267. Fval: uint16(70),
  7268. },
  7269. 111: {
  7270. Fbits: uint8(9),
  7271. Fval: uint16(236),
  7272. },
  7273. 112: {
  7274. Fop: uint8(16),
  7275. Fbits: uint8(7),
  7276. Fval: uint16(9),
  7277. },
  7278. 113: {
  7279. Fbits: uint8(8),
  7280. Fval: uint16(94),
  7281. },
  7282. 114: {
  7283. Fbits: uint8(8),
  7284. Fval: uint16(30),
  7285. },
  7286. 115: {
  7287. Fbits: uint8(9),
  7288. Fval: uint16(156),
  7289. },
  7290. 116: {
  7291. Fop: uint8(20),
  7292. Fbits: uint8(7),
  7293. Fval: uint16(99),
  7294. },
  7295. 117: {
  7296. Fbits: uint8(8),
  7297. Fval: uint16(126),
  7298. },
  7299. 118: {
  7300. Fbits: uint8(8),
  7301. Fval: uint16(62),
  7302. },
  7303. 119: {
  7304. Fbits: uint8(9),
  7305. Fval: uint16(220),
  7306. },
  7307. 120: {
  7308. Fop: uint8(18),
  7309. Fbits: uint8(7),
  7310. Fval: uint16(27),
  7311. },
  7312. 121: {
  7313. Fbits: uint8(8),
  7314. Fval: uint16(110),
  7315. },
  7316. 122: {
  7317. Fbits: uint8(8),
  7318. Fval: uint16(46),
  7319. },
  7320. 123: {
  7321. Fbits: uint8(9),
  7322. Fval: uint16(188),
  7323. },
  7324. 124: {
  7325. Fbits: uint8(8),
  7326. Fval: uint16(14),
  7327. },
  7328. 125: {
  7329. Fbits: uint8(8),
  7330. Fval: uint16(142),
  7331. },
  7332. 126: {
  7333. Fbits: uint8(8),
  7334. Fval: uint16(78),
  7335. },
  7336. 127: {
  7337. Fbits: uint8(9),
  7338. Fval: uint16(252),
  7339. },
  7340. 128: {
  7341. Fop: uint8(96),
  7342. Fbits: uint8(7),
  7343. },
  7344. 129: {
  7345. Fbits: uint8(8),
  7346. Fval: uint16(81),
  7347. },
  7348. 130: {
  7349. Fbits: uint8(8),
  7350. Fval: uint16(17),
  7351. },
  7352. 131: {
  7353. Fop: uint8(21),
  7354. Fbits: uint8(8),
  7355. Fval: uint16(131),
  7356. },
  7357. 132: {
  7358. Fop: uint8(18),
  7359. Fbits: uint8(7),
  7360. Fval: uint16(31),
  7361. },
  7362. 133: {
  7363. Fbits: uint8(8),
  7364. Fval: uint16(113),
  7365. },
  7366. 134: {
  7367. Fbits: uint8(8),
  7368. Fval: uint16(49),
  7369. },
  7370. 135: {
  7371. Fbits: uint8(9),
  7372. Fval: uint16(194),
  7373. },
  7374. 136: {
  7375. Fop: uint8(16),
  7376. Fbits: uint8(7),
  7377. Fval: uint16(10),
  7378. },
  7379. 137: {
  7380. Fbits: uint8(8),
  7381. Fval: uint16(97),
  7382. },
  7383. 138: {
  7384. Fbits: uint8(8),
  7385. Fval: uint16(33),
  7386. },
  7387. 139: {
  7388. Fbits: uint8(9),
  7389. Fval: uint16(162),
  7390. },
  7391. 140: {
  7392. Fbits: uint8(8),
  7393. Fval: uint16(1),
  7394. },
  7395. 141: {
  7396. Fbits: uint8(8),
  7397. Fval: uint16(129),
  7398. },
  7399. 142: {
  7400. Fbits: uint8(8),
  7401. Fval: uint16(65),
  7402. },
  7403. 143: {
  7404. Fbits: uint8(9),
  7405. Fval: uint16(226),
  7406. },
  7407. 144: {
  7408. Fop: uint8(16),
  7409. Fbits: uint8(7),
  7410. Fval: uint16(6),
  7411. },
  7412. 145: {
  7413. Fbits: uint8(8),
  7414. Fval: uint16(89),
  7415. },
  7416. 146: {
  7417. Fbits: uint8(8),
  7418. Fval: uint16(25),
  7419. },
  7420. 147: {
  7421. Fbits: uint8(9),
  7422. Fval: uint16(146),
  7423. },
  7424. 148: {
  7425. Fop: uint8(19),
  7426. Fbits: uint8(7),
  7427. Fval: uint16(59),
  7428. },
  7429. 149: {
  7430. Fbits: uint8(8),
  7431. Fval: uint16(121),
  7432. },
  7433. 150: {
  7434. Fbits: uint8(8),
  7435. Fval: uint16(57),
  7436. },
  7437. 151: {
  7438. Fbits: uint8(9),
  7439. Fval: uint16(210),
  7440. },
  7441. 152: {
  7442. Fop: uint8(17),
  7443. Fbits: uint8(7),
  7444. Fval: uint16(17),
  7445. },
  7446. 153: {
  7447. Fbits: uint8(8),
  7448. Fval: uint16(105),
  7449. },
  7450. 154: {
  7451. Fbits: uint8(8),
  7452. Fval: uint16(41),
  7453. },
  7454. 155: {
  7455. Fbits: uint8(9),
  7456. Fval: uint16(178),
  7457. },
  7458. 156: {
  7459. Fbits: uint8(8),
  7460. Fval: uint16(9),
  7461. },
  7462. 157: {
  7463. Fbits: uint8(8),
  7464. Fval: uint16(137),
  7465. },
  7466. 158: {
  7467. Fbits: uint8(8),
  7468. Fval: uint16(73),
  7469. },
  7470. 159: {
  7471. Fbits: uint8(9),
  7472. Fval: uint16(242),
  7473. },
  7474. 160: {
  7475. Fop: uint8(16),
  7476. Fbits: uint8(7),
  7477. Fval: uint16(4),
  7478. },
  7479. 161: {
  7480. Fbits: uint8(8),
  7481. Fval: uint16(85),
  7482. },
  7483. 162: {
  7484. Fbits: uint8(8),
  7485. Fval: uint16(21),
  7486. },
  7487. 163: {
  7488. Fop: uint8(16),
  7489. Fbits: uint8(8),
  7490. Fval: uint16(258),
  7491. },
  7492. 164: {
  7493. Fop: uint8(19),
  7494. Fbits: uint8(7),
  7495. Fval: uint16(43),
  7496. },
  7497. 165: {
  7498. Fbits: uint8(8),
  7499. Fval: uint16(117),
  7500. },
  7501. 166: {
  7502. Fbits: uint8(8),
  7503. Fval: uint16(53),
  7504. },
  7505. 167: {
  7506. Fbits: uint8(9),
  7507. Fval: uint16(202),
  7508. },
  7509. 168: {
  7510. Fop: uint8(17),
  7511. Fbits: uint8(7),
  7512. Fval: uint16(13),
  7513. },
  7514. 169: {
  7515. Fbits: uint8(8),
  7516. Fval: uint16(101),
  7517. },
  7518. 170: {
  7519. Fbits: uint8(8),
  7520. Fval: uint16(37),
  7521. },
  7522. 171: {
  7523. Fbits: uint8(9),
  7524. Fval: uint16(170),
  7525. },
  7526. 172: {
  7527. Fbits: uint8(8),
  7528. Fval: uint16(5),
  7529. },
  7530. 173: {
  7531. Fbits: uint8(8),
  7532. Fval: uint16(133),
  7533. },
  7534. 174: {
  7535. Fbits: uint8(8),
  7536. Fval: uint16(69),
  7537. },
  7538. 175: {
  7539. Fbits: uint8(9),
  7540. Fval: uint16(234),
  7541. },
  7542. 176: {
  7543. Fop: uint8(16),
  7544. Fbits: uint8(7),
  7545. Fval: uint16(8),
  7546. },
  7547. 177: {
  7548. Fbits: uint8(8),
  7549. Fval: uint16(93),
  7550. },
  7551. 178: {
  7552. Fbits: uint8(8),
  7553. Fval: uint16(29),
  7554. },
  7555. 179: {
  7556. Fbits: uint8(9),
  7557. Fval: uint16(154),
  7558. },
  7559. 180: {
  7560. Fop: uint8(20),
  7561. Fbits: uint8(7),
  7562. Fval: uint16(83),
  7563. },
  7564. 181: {
  7565. Fbits: uint8(8),
  7566. Fval: uint16(125),
  7567. },
  7568. 182: {
  7569. Fbits: uint8(8),
  7570. Fval: uint16(61),
  7571. },
  7572. 183: {
  7573. Fbits: uint8(9),
  7574. Fval: uint16(218),
  7575. },
  7576. 184: {
  7577. Fop: uint8(18),
  7578. Fbits: uint8(7),
  7579. Fval: uint16(23),
  7580. },
  7581. 185: {
  7582. Fbits: uint8(8),
  7583. Fval: uint16(109),
  7584. },
  7585. 186: {
  7586. Fbits: uint8(8),
  7587. Fval: uint16(45),
  7588. },
  7589. 187: {
  7590. Fbits: uint8(9),
  7591. Fval: uint16(186),
  7592. },
  7593. 188: {
  7594. Fbits: uint8(8),
  7595. Fval: uint16(13),
  7596. },
  7597. 189: {
  7598. Fbits: uint8(8),
  7599. Fval: uint16(141),
  7600. },
  7601. 190: {
  7602. Fbits: uint8(8),
  7603. Fval: uint16(77),
  7604. },
  7605. 191: {
  7606. Fbits: uint8(9),
  7607. Fval: uint16(250),
  7608. },
  7609. 192: {
  7610. Fop: uint8(16),
  7611. Fbits: uint8(7),
  7612. Fval: uint16(3),
  7613. },
  7614. 193: {
  7615. Fbits: uint8(8),
  7616. Fval: uint16(83),
  7617. },
  7618. 194: {
  7619. Fbits: uint8(8),
  7620. Fval: uint16(19),
  7621. },
  7622. 195: {
  7623. Fop: uint8(21),
  7624. Fbits: uint8(8),
  7625. Fval: uint16(195),
  7626. },
  7627. 196: {
  7628. Fop: uint8(19),
  7629. Fbits: uint8(7),
  7630. Fval: uint16(35),
  7631. },
  7632. 197: {
  7633. Fbits: uint8(8),
  7634. Fval: uint16(115),
  7635. },
  7636. 198: {
  7637. Fbits: uint8(8),
  7638. Fval: uint16(51),
  7639. },
  7640. 199: {
  7641. Fbits: uint8(9),
  7642. Fval: uint16(198),
  7643. },
  7644. 200: {
  7645. Fop: uint8(17),
  7646. Fbits: uint8(7),
  7647. Fval: uint16(11),
  7648. },
  7649. 201: {
  7650. Fbits: uint8(8),
  7651. Fval: uint16(99),
  7652. },
  7653. 202: {
  7654. Fbits: uint8(8),
  7655. Fval: uint16(35),
  7656. },
  7657. 203: {
  7658. Fbits: uint8(9),
  7659. Fval: uint16(166),
  7660. },
  7661. 204: {
  7662. Fbits: uint8(8),
  7663. Fval: uint16(3),
  7664. },
  7665. 205: {
  7666. Fbits: uint8(8),
  7667. Fval: uint16(131),
  7668. },
  7669. 206: {
  7670. Fbits: uint8(8),
  7671. Fval: uint16(67),
  7672. },
  7673. 207: {
  7674. Fbits: uint8(9),
  7675. Fval: uint16(230),
  7676. },
  7677. 208: {
  7678. Fop: uint8(16),
  7679. Fbits: uint8(7),
  7680. Fval: uint16(7),
  7681. },
  7682. 209: {
  7683. Fbits: uint8(8),
  7684. Fval: uint16(91),
  7685. },
  7686. 210: {
  7687. Fbits: uint8(8),
  7688. Fval: uint16(27),
  7689. },
  7690. 211: {
  7691. Fbits: uint8(9),
  7692. Fval: uint16(150),
  7693. },
  7694. 212: {
  7695. Fop: uint8(20),
  7696. Fbits: uint8(7),
  7697. Fval: uint16(67),
  7698. },
  7699. 213: {
  7700. Fbits: uint8(8),
  7701. Fval: uint16(123),
  7702. },
  7703. 214: {
  7704. Fbits: uint8(8),
  7705. Fval: uint16(59),
  7706. },
  7707. 215: {
  7708. Fbits: uint8(9),
  7709. Fval: uint16(214),
  7710. },
  7711. 216: {
  7712. Fop: uint8(18),
  7713. Fbits: uint8(7),
  7714. Fval: uint16(19),
  7715. },
  7716. 217: {
  7717. Fbits: uint8(8),
  7718. Fval: uint16(107),
  7719. },
  7720. 218: {
  7721. Fbits: uint8(8),
  7722. Fval: uint16(43),
  7723. },
  7724. 219: {
  7725. Fbits: uint8(9),
  7726. Fval: uint16(182),
  7727. },
  7728. 220: {
  7729. Fbits: uint8(8),
  7730. Fval: uint16(11),
  7731. },
  7732. 221: {
  7733. Fbits: uint8(8),
  7734. Fval: uint16(139),
  7735. },
  7736. 222: {
  7737. Fbits: uint8(8),
  7738. Fval: uint16(75),
  7739. },
  7740. 223: {
  7741. Fbits: uint8(9),
  7742. Fval: uint16(246),
  7743. },
  7744. 224: {
  7745. Fop: uint8(16),
  7746. Fbits: uint8(7),
  7747. Fval: uint16(5),
  7748. },
  7749. 225: {
  7750. Fbits: uint8(8),
  7751. Fval: uint16(87),
  7752. },
  7753. 226: {
  7754. Fbits: uint8(8),
  7755. Fval: uint16(23),
  7756. },
  7757. 227: {
  7758. Fop: uint8(64),
  7759. Fbits: uint8(8),
  7760. },
  7761. 228: {
  7762. Fop: uint8(19),
  7763. Fbits: uint8(7),
  7764. Fval: uint16(51),
  7765. },
  7766. 229: {
  7767. Fbits: uint8(8),
  7768. Fval: uint16(119),
  7769. },
  7770. 230: {
  7771. Fbits: uint8(8),
  7772. Fval: uint16(55),
  7773. },
  7774. 231: {
  7775. Fbits: uint8(9),
  7776. Fval: uint16(206),
  7777. },
  7778. 232: {
  7779. Fop: uint8(17),
  7780. Fbits: uint8(7),
  7781. Fval: uint16(15),
  7782. },
  7783. 233: {
  7784. Fbits: uint8(8),
  7785. Fval: uint16(103),
  7786. },
  7787. 234: {
  7788. Fbits: uint8(8),
  7789. Fval: uint16(39),
  7790. },
  7791. 235: {
  7792. Fbits: uint8(9),
  7793. Fval: uint16(174),
  7794. },
  7795. 236: {
  7796. Fbits: uint8(8),
  7797. Fval: uint16(7),
  7798. },
  7799. 237: {
  7800. Fbits: uint8(8),
  7801. Fval: uint16(135),
  7802. },
  7803. 238: {
  7804. Fbits: uint8(8),
  7805. Fval: uint16(71),
  7806. },
  7807. 239: {
  7808. Fbits: uint8(9),
  7809. Fval: uint16(238),
  7810. },
  7811. 240: {
  7812. Fop: uint8(16),
  7813. Fbits: uint8(7),
  7814. Fval: uint16(9),
  7815. },
  7816. 241: {
  7817. Fbits: uint8(8),
  7818. Fval: uint16(95),
  7819. },
  7820. 242: {
  7821. Fbits: uint8(8),
  7822. Fval: uint16(31),
  7823. },
  7824. 243: {
  7825. Fbits: uint8(9),
  7826. Fval: uint16(158),
  7827. },
  7828. 244: {
  7829. Fop: uint8(20),
  7830. Fbits: uint8(7),
  7831. Fval: uint16(99),
  7832. },
  7833. 245: {
  7834. Fbits: uint8(8),
  7835. Fval: uint16(127),
  7836. },
  7837. 246: {
  7838. Fbits: uint8(8),
  7839. Fval: uint16(63),
  7840. },
  7841. 247: {
  7842. Fbits: uint8(9),
  7843. Fval: uint16(222),
  7844. },
  7845. 248: {
  7846. Fop: uint8(18),
  7847. Fbits: uint8(7),
  7848. Fval: uint16(27),
  7849. },
  7850. 249: {
  7851. Fbits: uint8(8),
  7852. Fval: uint16(111),
  7853. },
  7854. 250: {
  7855. Fbits: uint8(8),
  7856. Fval: uint16(47),
  7857. },
  7858. 251: {
  7859. Fbits: uint8(9),
  7860. Fval: uint16(190),
  7861. },
  7862. 252: {
  7863. Fbits: uint8(8),
  7864. Fval: uint16(15),
  7865. },
  7866. 253: {
  7867. Fbits: uint8(8),
  7868. Fval: uint16(143),
  7869. },
  7870. 254: {
  7871. Fbits: uint8(8),
  7872. Fval: uint16(79),
  7873. },
  7874. 255: {
  7875. Fbits: uint8(9),
  7876. Fval: uint16(254),
  7877. },
  7878. 256: {
  7879. Fop: uint8(96),
  7880. Fbits: uint8(7),
  7881. },
  7882. 257: {
  7883. Fbits: uint8(8),
  7884. Fval: uint16(80),
  7885. },
  7886. 258: {
  7887. Fbits: uint8(8),
  7888. Fval: uint16(16),
  7889. },
  7890. 259: {
  7891. Fop: uint8(20),
  7892. Fbits: uint8(8),
  7893. Fval: uint16(115),
  7894. },
  7895. 260: {
  7896. Fop: uint8(18),
  7897. Fbits: uint8(7),
  7898. Fval: uint16(31),
  7899. },
  7900. 261: {
  7901. Fbits: uint8(8),
  7902. Fval: uint16(112),
  7903. },
  7904. 262: {
  7905. Fbits: uint8(8),
  7906. Fval: uint16(48),
  7907. },
  7908. 263: {
  7909. Fbits: uint8(9),
  7910. Fval: uint16(193),
  7911. },
  7912. 264: {
  7913. Fop: uint8(16),
  7914. Fbits: uint8(7),
  7915. Fval: uint16(10),
  7916. },
  7917. 265: {
  7918. Fbits: uint8(8),
  7919. Fval: uint16(96),
  7920. },
  7921. 266: {
  7922. Fbits: uint8(8),
  7923. Fval: uint16(32),
  7924. },
  7925. 267: {
  7926. Fbits: uint8(9),
  7927. Fval: uint16(161),
  7928. },
  7929. 268: {
  7930. Fbits: uint8(8),
  7931. },
  7932. 269: {
  7933. Fbits: uint8(8),
  7934. Fval: uint16(128),
  7935. },
  7936. 270: {
  7937. Fbits: uint8(8),
  7938. Fval: uint16(64),
  7939. },
  7940. 271: {
  7941. Fbits: uint8(9),
  7942. Fval: uint16(225),
  7943. },
  7944. 272: {
  7945. Fop: uint8(16),
  7946. Fbits: uint8(7),
  7947. Fval: uint16(6),
  7948. },
  7949. 273: {
  7950. Fbits: uint8(8),
  7951. Fval: uint16(88),
  7952. },
  7953. 274: {
  7954. Fbits: uint8(8),
  7955. Fval: uint16(24),
  7956. },
  7957. 275: {
  7958. Fbits: uint8(9),
  7959. Fval: uint16(145),
  7960. },
  7961. 276: {
  7962. Fop: uint8(19),
  7963. Fbits: uint8(7),
  7964. Fval: uint16(59),
  7965. },
  7966. 277: {
  7967. Fbits: uint8(8),
  7968. Fval: uint16(120),
  7969. },
  7970. 278: {
  7971. Fbits: uint8(8),
  7972. Fval: uint16(56),
  7973. },
  7974. 279: {
  7975. Fbits: uint8(9),
  7976. Fval: uint16(209),
  7977. },
  7978. 280: {
  7979. Fop: uint8(17),
  7980. Fbits: uint8(7),
  7981. Fval: uint16(17),
  7982. },
  7983. 281: {
  7984. Fbits: uint8(8),
  7985. Fval: uint16(104),
  7986. },
  7987. 282: {
  7988. Fbits: uint8(8),
  7989. Fval: uint16(40),
  7990. },
  7991. 283: {
  7992. Fbits: uint8(9),
  7993. Fval: uint16(177),
  7994. },
  7995. 284: {
  7996. Fbits: uint8(8),
  7997. Fval: uint16(8),
  7998. },
  7999. 285: {
  8000. Fbits: uint8(8),
  8001. Fval: uint16(136),
  8002. },
  8003. 286: {
  8004. Fbits: uint8(8),
  8005. Fval: uint16(72),
  8006. },
  8007. 287: {
  8008. Fbits: uint8(9),
  8009. Fval: uint16(241),
  8010. },
  8011. 288: {
  8012. Fop: uint8(16),
  8013. Fbits: uint8(7),
  8014. Fval: uint16(4),
  8015. },
  8016. 289: {
  8017. Fbits: uint8(8),
  8018. Fval: uint16(84),
  8019. },
  8020. 290: {
  8021. Fbits: uint8(8),
  8022. Fval: uint16(20),
  8023. },
  8024. 291: {
  8025. Fop: uint8(21),
  8026. Fbits: uint8(8),
  8027. Fval: uint16(227),
  8028. },
  8029. 292: {
  8030. Fop: uint8(19),
  8031. Fbits: uint8(7),
  8032. Fval: uint16(43),
  8033. },
  8034. 293: {
  8035. Fbits: uint8(8),
  8036. Fval: uint16(116),
  8037. },
  8038. 294: {
  8039. Fbits: uint8(8),
  8040. Fval: uint16(52),
  8041. },
  8042. 295: {
  8043. Fbits: uint8(9),
  8044. Fval: uint16(201),
  8045. },
  8046. 296: {
  8047. Fop: uint8(17),
  8048. Fbits: uint8(7),
  8049. Fval: uint16(13),
  8050. },
  8051. 297: {
  8052. Fbits: uint8(8),
  8053. Fval: uint16(100),
  8054. },
  8055. 298: {
  8056. Fbits: uint8(8),
  8057. Fval: uint16(36),
  8058. },
  8059. 299: {
  8060. Fbits: uint8(9),
  8061. Fval: uint16(169),
  8062. },
  8063. 300: {
  8064. Fbits: uint8(8),
  8065. Fval: uint16(4),
  8066. },
  8067. 301: {
  8068. Fbits: uint8(8),
  8069. Fval: uint16(132),
  8070. },
  8071. 302: {
  8072. Fbits: uint8(8),
  8073. Fval: uint16(68),
  8074. },
  8075. 303: {
  8076. Fbits: uint8(9),
  8077. Fval: uint16(233),
  8078. },
  8079. 304: {
  8080. Fop: uint8(16),
  8081. Fbits: uint8(7),
  8082. Fval: uint16(8),
  8083. },
  8084. 305: {
  8085. Fbits: uint8(8),
  8086. Fval: uint16(92),
  8087. },
  8088. 306: {
  8089. Fbits: uint8(8),
  8090. Fval: uint16(28),
  8091. },
  8092. 307: {
  8093. Fbits: uint8(9),
  8094. Fval: uint16(153),
  8095. },
  8096. 308: {
  8097. Fop: uint8(20),
  8098. Fbits: uint8(7),
  8099. Fval: uint16(83),
  8100. },
  8101. 309: {
  8102. Fbits: uint8(8),
  8103. Fval: uint16(124),
  8104. },
  8105. 310: {
  8106. Fbits: uint8(8),
  8107. Fval: uint16(60),
  8108. },
  8109. 311: {
  8110. Fbits: uint8(9),
  8111. Fval: uint16(217),
  8112. },
  8113. 312: {
  8114. Fop: uint8(18),
  8115. Fbits: uint8(7),
  8116. Fval: uint16(23),
  8117. },
  8118. 313: {
  8119. Fbits: uint8(8),
  8120. Fval: uint16(108),
  8121. },
  8122. 314: {
  8123. Fbits: uint8(8),
  8124. Fval: uint16(44),
  8125. },
  8126. 315: {
  8127. Fbits: uint8(9),
  8128. Fval: uint16(185),
  8129. },
  8130. 316: {
  8131. Fbits: uint8(8),
  8132. Fval: uint16(12),
  8133. },
  8134. 317: {
  8135. Fbits: uint8(8),
  8136. Fval: uint16(140),
  8137. },
  8138. 318: {
  8139. Fbits: uint8(8),
  8140. Fval: uint16(76),
  8141. },
  8142. 319: {
  8143. Fbits: uint8(9),
  8144. Fval: uint16(249),
  8145. },
  8146. 320: {
  8147. Fop: uint8(16),
  8148. Fbits: uint8(7),
  8149. Fval: uint16(3),
  8150. },
  8151. 321: {
  8152. Fbits: uint8(8),
  8153. Fval: uint16(82),
  8154. },
  8155. 322: {
  8156. Fbits: uint8(8),
  8157. Fval: uint16(18),
  8158. },
  8159. 323: {
  8160. Fop: uint8(21),
  8161. Fbits: uint8(8),
  8162. Fval: uint16(163),
  8163. },
  8164. 324: {
  8165. Fop: uint8(19),
  8166. Fbits: uint8(7),
  8167. Fval: uint16(35),
  8168. },
  8169. 325: {
  8170. Fbits: uint8(8),
  8171. Fval: uint16(114),
  8172. },
  8173. 326: {
  8174. Fbits: uint8(8),
  8175. Fval: uint16(50),
  8176. },
  8177. 327: {
  8178. Fbits: uint8(9),
  8179. Fval: uint16(197),
  8180. },
  8181. 328: {
  8182. Fop: uint8(17),
  8183. Fbits: uint8(7),
  8184. Fval: uint16(11),
  8185. },
  8186. 329: {
  8187. Fbits: uint8(8),
  8188. Fval: uint16(98),
  8189. },
  8190. 330: {
  8191. Fbits: uint8(8),
  8192. Fval: uint16(34),
  8193. },
  8194. 331: {
  8195. Fbits: uint8(9),
  8196. Fval: uint16(165),
  8197. },
  8198. 332: {
  8199. Fbits: uint8(8),
  8200. Fval: uint16(2),
  8201. },
  8202. 333: {
  8203. Fbits: uint8(8),
  8204. Fval: uint16(130),
  8205. },
  8206. 334: {
  8207. Fbits: uint8(8),
  8208. Fval: uint16(66),
  8209. },
  8210. 335: {
  8211. Fbits: uint8(9),
  8212. Fval: uint16(229),
  8213. },
  8214. 336: {
  8215. Fop: uint8(16),
  8216. Fbits: uint8(7),
  8217. Fval: uint16(7),
  8218. },
  8219. 337: {
  8220. Fbits: uint8(8),
  8221. Fval: uint16(90),
  8222. },
  8223. 338: {
  8224. Fbits: uint8(8),
  8225. Fval: uint16(26),
  8226. },
  8227. 339: {
  8228. Fbits: uint8(9),
  8229. Fval: uint16(149),
  8230. },
  8231. 340: {
  8232. Fop: uint8(20),
  8233. Fbits: uint8(7),
  8234. Fval: uint16(67),
  8235. },
  8236. 341: {
  8237. Fbits: uint8(8),
  8238. Fval: uint16(122),
  8239. },
  8240. 342: {
  8241. Fbits: uint8(8),
  8242. Fval: uint16(58),
  8243. },
  8244. 343: {
  8245. Fbits: uint8(9),
  8246. Fval: uint16(213),
  8247. },
  8248. 344: {
  8249. Fop: uint8(18),
  8250. Fbits: uint8(7),
  8251. Fval: uint16(19),
  8252. },
  8253. 345: {
  8254. Fbits: uint8(8),
  8255. Fval: uint16(106),
  8256. },
  8257. 346: {
  8258. Fbits: uint8(8),
  8259. Fval: uint16(42),
  8260. },
  8261. 347: {
  8262. Fbits: uint8(9),
  8263. Fval: uint16(181),
  8264. },
  8265. 348: {
  8266. Fbits: uint8(8),
  8267. Fval: uint16(10),
  8268. },
  8269. 349: {
  8270. Fbits: uint8(8),
  8271. Fval: uint16(138),
  8272. },
  8273. 350: {
  8274. Fbits: uint8(8),
  8275. Fval: uint16(74),
  8276. },
  8277. 351: {
  8278. Fbits: uint8(9),
  8279. Fval: uint16(245),
  8280. },
  8281. 352: {
  8282. Fop: uint8(16),
  8283. Fbits: uint8(7),
  8284. Fval: uint16(5),
  8285. },
  8286. 353: {
  8287. Fbits: uint8(8),
  8288. Fval: uint16(86),
  8289. },
  8290. 354: {
  8291. Fbits: uint8(8),
  8292. Fval: uint16(22),
  8293. },
  8294. 355: {
  8295. Fop: uint8(64),
  8296. Fbits: uint8(8),
  8297. },
  8298. 356: {
  8299. Fop: uint8(19),
  8300. Fbits: uint8(7),
  8301. Fval: uint16(51),
  8302. },
  8303. 357: {
  8304. Fbits: uint8(8),
  8305. Fval: uint16(118),
  8306. },
  8307. 358: {
  8308. Fbits: uint8(8),
  8309. Fval: uint16(54),
  8310. },
  8311. 359: {
  8312. Fbits: uint8(9),
  8313. Fval: uint16(205),
  8314. },
  8315. 360: {
  8316. Fop: uint8(17),
  8317. Fbits: uint8(7),
  8318. Fval: uint16(15),
  8319. },
  8320. 361: {
  8321. Fbits: uint8(8),
  8322. Fval: uint16(102),
  8323. },
  8324. 362: {
  8325. Fbits: uint8(8),
  8326. Fval: uint16(38),
  8327. },
  8328. 363: {
  8329. Fbits: uint8(9),
  8330. Fval: uint16(173),
  8331. },
  8332. 364: {
  8333. Fbits: uint8(8),
  8334. Fval: uint16(6),
  8335. },
  8336. 365: {
  8337. Fbits: uint8(8),
  8338. Fval: uint16(134),
  8339. },
  8340. 366: {
  8341. Fbits: uint8(8),
  8342. Fval: uint16(70),
  8343. },
  8344. 367: {
  8345. Fbits: uint8(9),
  8346. Fval: uint16(237),
  8347. },
  8348. 368: {
  8349. Fop: uint8(16),
  8350. Fbits: uint8(7),
  8351. Fval: uint16(9),
  8352. },
  8353. 369: {
  8354. Fbits: uint8(8),
  8355. Fval: uint16(94),
  8356. },
  8357. 370: {
  8358. Fbits: uint8(8),
  8359. Fval: uint16(30),
  8360. },
  8361. 371: {
  8362. Fbits: uint8(9),
  8363. Fval: uint16(157),
  8364. },
  8365. 372: {
  8366. Fop: uint8(20),
  8367. Fbits: uint8(7),
  8368. Fval: uint16(99),
  8369. },
  8370. 373: {
  8371. Fbits: uint8(8),
  8372. Fval: uint16(126),
  8373. },
  8374. 374: {
  8375. Fbits: uint8(8),
  8376. Fval: uint16(62),
  8377. },
  8378. 375: {
  8379. Fbits: uint8(9),
  8380. Fval: uint16(221),
  8381. },
  8382. 376: {
  8383. Fop: uint8(18),
  8384. Fbits: uint8(7),
  8385. Fval: uint16(27),
  8386. },
  8387. 377: {
  8388. Fbits: uint8(8),
  8389. Fval: uint16(110),
  8390. },
  8391. 378: {
  8392. Fbits: uint8(8),
  8393. Fval: uint16(46),
  8394. },
  8395. 379: {
  8396. Fbits: uint8(9),
  8397. Fval: uint16(189),
  8398. },
  8399. 380: {
  8400. Fbits: uint8(8),
  8401. Fval: uint16(14),
  8402. },
  8403. 381: {
  8404. Fbits: uint8(8),
  8405. Fval: uint16(142),
  8406. },
  8407. 382: {
  8408. Fbits: uint8(8),
  8409. Fval: uint16(78),
  8410. },
  8411. 383: {
  8412. Fbits: uint8(9),
  8413. Fval: uint16(253),
  8414. },
  8415. 384: {
  8416. Fop: uint8(96),
  8417. Fbits: uint8(7),
  8418. },
  8419. 385: {
  8420. Fbits: uint8(8),
  8421. Fval: uint16(81),
  8422. },
  8423. 386: {
  8424. Fbits: uint8(8),
  8425. Fval: uint16(17),
  8426. },
  8427. 387: {
  8428. Fop: uint8(21),
  8429. Fbits: uint8(8),
  8430. Fval: uint16(131),
  8431. },
  8432. 388: {
  8433. Fop: uint8(18),
  8434. Fbits: uint8(7),
  8435. Fval: uint16(31),
  8436. },
  8437. 389: {
  8438. Fbits: uint8(8),
  8439. Fval: uint16(113),
  8440. },
  8441. 390: {
  8442. Fbits: uint8(8),
  8443. Fval: uint16(49),
  8444. },
  8445. 391: {
  8446. Fbits: uint8(9),
  8447. Fval: uint16(195),
  8448. },
  8449. 392: {
  8450. Fop: uint8(16),
  8451. Fbits: uint8(7),
  8452. Fval: uint16(10),
  8453. },
  8454. 393: {
  8455. Fbits: uint8(8),
  8456. Fval: uint16(97),
  8457. },
  8458. 394: {
  8459. Fbits: uint8(8),
  8460. Fval: uint16(33),
  8461. },
  8462. 395: {
  8463. Fbits: uint8(9),
  8464. Fval: uint16(163),
  8465. },
  8466. 396: {
  8467. Fbits: uint8(8),
  8468. Fval: uint16(1),
  8469. },
  8470. 397: {
  8471. Fbits: uint8(8),
  8472. Fval: uint16(129),
  8473. },
  8474. 398: {
  8475. Fbits: uint8(8),
  8476. Fval: uint16(65),
  8477. },
  8478. 399: {
  8479. Fbits: uint8(9),
  8480. Fval: uint16(227),
  8481. },
  8482. 400: {
  8483. Fop: uint8(16),
  8484. Fbits: uint8(7),
  8485. Fval: uint16(6),
  8486. },
  8487. 401: {
  8488. Fbits: uint8(8),
  8489. Fval: uint16(89),
  8490. },
  8491. 402: {
  8492. Fbits: uint8(8),
  8493. Fval: uint16(25),
  8494. },
  8495. 403: {
  8496. Fbits: uint8(9),
  8497. Fval: uint16(147),
  8498. },
  8499. 404: {
  8500. Fop: uint8(19),
  8501. Fbits: uint8(7),
  8502. Fval: uint16(59),
  8503. },
  8504. 405: {
  8505. Fbits: uint8(8),
  8506. Fval: uint16(121),
  8507. },
  8508. 406: {
  8509. Fbits: uint8(8),
  8510. Fval: uint16(57),
  8511. },
  8512. 407: {
  8513. Fbits: uint8(9),
  8514. Fval: uint16(211),
  8515. },
  8516. 408: {
  8517. Fop: uint8(17),
  8518. Fbits: uint8(7),
  8519. Fval: uint16(17),
  8520. },
  8521. 409: {
  8522. Fbits: uint8(8),
  8523. Fval: uint16(105),
  8524. },
  8525. 410: {
  8526. Fbits: uint8(8),
  8527. Fval: uint16(41),
  8528. },
  8529. 411: {
  8530. Fbits: uint8(9),
  8531. Fval: uint16(179),
  8532. },
  8533. 412: {
  8534. Fbits: uint8(8),
  8535. Fval: uint16(9),
  8536. },
  8537. 413: {
  8538. Fbits: uint8(8),
  8539. Fval: uint16(137),
  8540. },
  8541. 414: {
  8542. Fbits: uint8(8),
  8543. Fval: uint16(73),
  8544. },
  8545. 415: {
  8546. Fbits: uint8(9),
  8547. Fval: uint16(243),
  8548. },
  8549. 416: {
  8550. Fop: uint8(16),
  8551. Fbits: uint8(7),
  8552. Fval: uint16(4),
  8553. },
  8554. 417: {
  8555. Fbits: uint8(8),
  8556. Fval: uint16(85),
  8557. },
  8558. 418: {
  8559. Fbits: uint8(8),
  8560. Fval: uint16(21),
  8561. },
  8562. 419: {
  8563. Fop: uint8(16),
  8564. Fbits: uint8(8),
  8565. Fval: uint16(258),
  8566. },
  8567. 420: {
  8568. Fop: uint8(19),
  8569. Fbits: uint8(7),
  8570. Fval: uint16(43),
  8571. },
  8572. 421: {
  8573. Fbits: uint8(8),
  8574. Fval: uint16(117),
  8575. },
  8576. 422: {
  8577. Fbits: uint8(8),
  8578. Fval: uint16(53),
  8579. },
  8580. 423: {
  8581. Fbits: uint8(9),
  8582. Fval: uint16(203),
  8583. },
  8584. 424: {
  8585. Fop: uint8(17),
  8586. Fbits: uint8(7),
  8587. Fval: uint16(13),
  8588. },
  8589. 425: {
  8590. Fbits: uint8(8),
  8591. Fval: uint16(101),
  8592. },
  8593. 426: {
  8594. Fbits: uint8(8),
  8595. Fval: uint16(37),
  8596. },
  8597. 427: {
  8598. Fbits: uint8(9),
  8599. Fval: uint16(171),
  8600. },
  8601. 428: {
  8602. Fbits: uint8(8),
  8603. Fval: uint16(5),
  8604. },
  8605. 429: {
  8606. Fbits: uint8(8),
  8607. Fval: uint16(133),
  8608. },
  8609. 430: {
  8610. Fbits: uint8(8),
  8611. Fval: uint16(69),
  8612. },
  8613. 431: {
  8614. Fbits: uint8(9),
  8615. Fval: uint16(235),
  8616. },
  8617. 432: {
  8618. Fop: uint8(16),
  8619. Fbits: uint8(7),
  8620. Fval: uint16(8),
  8621. },
  8622. 433: {
  8623. Fbits: uint8(8),
  8624. Fval: uint16(93),
  8625. },
  8626. 434: {
  8627. Fbits: uint8(8),
  8628. Fval: uint16(29),
  8629. },
  8630. 435: {
  8631. Fbits: uint8(9),
  8632. Fval: uint16(155),
  8633. },
  8634. 436: {
  8635. Fop: uint8(20),
  8636. Fbits: uint8(7),
  8637. Fval: uint16(83),
  8638. },
  8639. 437: {
  8640. Fbits: uint8(8),
  8641. Fval: uint16(125),
  8642. },
  8643. 438: {
  8644. Fbits: uint8(8),
  8645. Fval: uint16(61),
  8646. },
  8647. 439: {
  8648. Fbits: uint8(9),
  8649. Fval: uint16(219),
  8650. },
  8651. 440: {
  8652. Fop: uint8(18),
  8653. Fbits: uint8(7),
  8654. Fval: uint16(23),
  8655. },
  8656. 441: {
  8657. Fbits: uint8(8),
  8658. Fval: uint16(109),
  8659. },
  8660. 442: {
  8661. Fbits: uint8(8),
  8662. Fval: uint16(45),
  8663. },
  8664. 443: {
  8665. Fbits: uint8(9),
  8666. Fval: uint16(187),
  8667. },
  8668. 444: {
  8669. Fbits: uint8(8),
  8670. Fval: uint16(13),
  8671. },
  8672. 445: {
  8673. Fbits: uint8(8),
  8674. Fval: uint16(141),
  8675. },
  8676. 446: {
  8677. Fbits: uint8(8),
  8678. Fval: uint16(77),
  8679. },
  8680. 447: {
  8681. Fbits: uint8(9),
  8682. Fval: uint16(251),
  8683. },
  8684. 448: {
  8685. Fop: uint8(16),
  8686. Fbits: uint8(7),
  8687. Fval: uint16(3),
  8688. },
  8689. 449: {
  8690. Fbits: uint8(8),
  8691. Fval: uint16(83),
  8692. },
  8693. 450: {
  8694. Fbits: uint8(8),
  8695. Fval: uint16(19),
  8696. },
  8697. 451: {
  8698. Fop: uint8(21),
  8699. Fbits: uint8(8),
  8700. Fval: uint16(195),
  8701. },
  8702. 452: {
  8703. Fop: uint8(19),
  8704. Fbits: uint8(7),
  8705. Fval: uint16(35),
  8706. },
  8707. 453: {
  8708. Fbits: uint8(8),
  8709. Fval: uint16(115),
  8710. },
  8711. 454: {
  8712. Fbits: uint8(8),
  8713. Fval: uint16(51),
  8714. },
  8715. 455: {
  8716. Fbits: uint8(9),
  8717. Fval: uint16(199),
  8718. },
  8719. 456: {
  8720. Fop: uint8(17),
  8721. Fbits: uint8(7),
  8722. Fval: uint16(11),
  8723. },
  8724. 457: {
  8725. Fbits: uint8(8),
  8726. Fval: uint16(99),
  8727. },
  8728. 458: {
  8729. Fbits: uint8(8),
  8730. Fval: uint16(35),
  8731. },
  8732. 459: {
  8733. Fbits: uint8(9),
  8734. Fval: uint16(167),
  8735. },
  8736. 460: {
  8737. Fbits: uint8(8),
  8738. Fval: uint16(3),
  8739. },
  8740. 461: {
  8741. Fbits: uint8(8),
  8742. Fval: uint16(131),
  8743. },
  8744. 462: {
  8745. Fbits: uint8(8),
  8746. Fval: uint16(67),
  8747. },
  8748. 463: {
  8749. Fbits: uint8(9),
  8750. Fval: uint16(231),
  8751. },
  8752. 464: {
  8753. Fop: uint8(16),
  8754. Fbits: uint8(7),
  8755. Fval: uint16(7),
  8756. },
  8757. 465: {
  8758. Fbits: uint8(8),
  8759. Fval: uint16(91),
  8760. },
  8761. 466: {
  8762. Fbits: uint8(8),
  8763. Fval: uint16(27),
  8764. },
  8765. 467: {
  8766. Fbits: uint8(9),
  8767. Fval: uint16(151),
  8768. },
  8769. 468: {
  8770. Fop: uint8(20),
  8771. Fbits: uint8(7),
  8772. Fval: uint16(67),
  8773. },
  8774. 469: {
  8775. Fbits: uint8(8),
  8776. Fval: uint16(123),
  8777. },
  8778. 470: {
  8779. Fbits: uint8(8),
  8780. Fval: uint16(59),
  8781. },
  8782. 471: {
  8783. Fbits: uint8(9),
  8784. Fval: uint16(215),
  8785. },
  8786. 472: {
  8787. Fop: uint8(18),
  8788. Fbits: uint8(7),
  8789. Fval: uint16(19),
  8790. },
  8791. 473: {
  8792. Fbits: uint8(8),
  8793. Fval: uint16(107),
  8794. },
  8795. 474: {
  8796. Fbits: uint8(8),
  8797. Fval: uint16(43),
  8798. },
  8799. 475: {
  8800. Fbits: uint8(9),
  8801. Fval: uint16(183),
  8802. },
  8803. 476: {
  8804. Fbits: uint8(8),
  8805. Fval: uint16(11),
  8806. },
  8807. 477: {
  8808. Fbits: uint8(8),
  8809. Fval: uint16(139),
  8810. },
  8811. 478: {
  8812. Fbits: uint8(8),
  8813. Fval: uint16(75),
  8814. },
  8815. 479: {
  8816. Fbits: uint8(9),
  8817. Fval: uint16(247),
  8818. },
  8819. 480: {
  8820. Fop: uint8(16),
  8821. Fbits: uint8(7),
  8822. Fval: uint16(5),
  8823. },
  8824. 481: {
  8825. Fbits: uint8(8),
  8826. Fval: uint16(87),
  8827. },
  8828. 482: {
  8829. Fbits: uint8(8),
  8830. Fval: uint16(23),
  8831. },
  8832. 483: {
  8833. Fop: uint8(64),
  8834. Fbits: uint8(8),
  8835. },
  8836. 484: {
  8837. Fop: uint8(19),
  8838. Fbits: uint8(7),
  8839. Fval: uint16(51),
  8840. },
  8841. 485: {
  8842. Fbits: uint8(8),
  8843. Fval: uint16(119),
  8844. },
  8845. 486: {
  8846. Fbits: uint8(8),
  8847. Fval: uint16(55),
  8848. },
  8849. 487: {
  8850. Fbits: uint8(9),
  8851. Fval: uint16(207),
  8852. },
  8853. 488: {
  8854. Fop: uint8(17),
  8855. Fbits: uint8(7),
  8856. Fval: uint16(15),
  8857. },
  8858. 489: {
  8859. Fbits: uint8(8),
  8860. Fval: uint16(103),
  8861. },
  8862. 490: {
  8863. Fbits: uint8(8),
  8864. Fval: uint16(39),
  8865. },
  8866. 491: {
  8867. Fbits: uint8(9),
  8868. Fval: uint16(175),
  8869. },
  8870. 492: {
  8871. Fbits: uint8(8),
  8872. Fval: uint16(7),
  8873. },
  8874. 493: {
  8875. Fbits: uint8(8),
  8876. Fval: uint16(135),
  8877. },
  8878. 494: {
  8879. Fbits: uint8(8),
  8880. Fval: uint16(71),
  8881. },
  8882. 495: {
  8883. Fbits: uint8(9),
  8884. Fval: uint16(239),
  8885. },
  8886. 496: {
  8887. Fop: uint8(16),
  8888. Fbits: uint8(7),
  8889. Fval: uint16(9),
  8890. },
  8891. 497: {
  8892. Fbits: uint8(8),
  8893. Fval: uint16(95),
  8894. },
  8895. 498: {
  8896. Fbits: uint8(8),
  8897. Fval: uint16(31),
  8898. },
  8899. 499: {
  8900. Fbits: uint8(9),
  8901. Fval: uint16(159),
  8902. },
  8903. 500: {
  8904. Fop: uint8(20),
  8905. Fbits: uint8(7),
  8906. Fval: uint16(99),
  8907. },
  8908. 501: {
  8909. Fbits: uint8(8),
  8910. Fval: uint16(127),
  8911. },
  8912. 502: {
  8913. Fbits: uint8(8),
  8914. Fval: uint16(63),
  8915. },
  8916. 503: {
  8917. Fbits: uint8(9),
  8918. Fval: uint16(223),
  8919. },
  8920. 504: {
  8921. Fop: uint8(18),
  8922. Fbits: uint8(7),
  8923. Fval: uint16(27),
  8924. },
  8925. 505: {
  8926. Fbits: uint8(8),
  8927. Fval: uint16(111),
  8928. },
  8929. 506: {
  8930. Fbits: uint8(8),
  8931. Fval: uint16(47),
  8932. },
  8933. 507: {
  8934. Fbits: uint8(9),
  8935. Fval: uint16(191),
  8936. },
  8937. 508: {
  8938. Fbits: uint8(8),
  8939. Fval: uint16(15),
  8940. },
  8941. 509: {
  8942. Fbits: uint8(8),
  8943. Fval: uint16(143),
  8944. },
  8945. 510: {
  8946. Fbits: uint8(8),
  8947. Fval: uint16(79),
  8948. },
  8949. 511: {
  8950. Fbits: uint8(9),
  8951. Fval: uint16(255),
  8952. },
  8953. }
  8954. var _distfix = [32]Tcode{
  8955. 0: {
  8956. Fop: uint8(16),
  8957. Fbits: uint8(5),
  8958. Fval: uint16(1),
  8959. },
  8960. 1: {
  8961. Fop: uint8(23),
  8962. Fbits: uint8(5),
  8963. Fval: uint16(257),
  8964. },
  8965. 2: {
  8966. Fop: uint8(19),
  8967. Fbits: uint8(5),
  8968. Fval: uint16(17),
  8969. },
  8970. 3: {
  8971. Fop: uint8(27),
  8972. Fbits: uint8(5),
  8973. Fval: uint16(4097),
  8974. },
  8975. 4: {
  8976. Fop: uint8(17),
  8977. Fbits: uint8(5),
  8978. Fval: uint16(5),
  8979. },
  8980. 5: {
  8981. Fop: uint8(25),
  8982. Fbits: uint8(5),
  8983. Fval: uint16(1025),
  8984. },
  8985. 6: {
  8986. Fop: uint8(21),
  8987. Fbits: uint8(5),
  8988. Fval: uint16(65),
  8989. },
  8990. 7: {
  8991. Fop: uint8(29),
  8992. Fbits: uint8(5),
  8993. Fval: uint16(16385),
  8994. },
  8995. 8: {
  8996. Fop: uint8(16),
  8997. Fbits: uint8(5),
  8998. Fval: uint16(3),
  8999. },
  9000. 9: {
  9001. Fop: uint8(24),
  9002. Fbits: uint8(5),
  9003. Fval: uint16(513),
  9004. },
  9005. 10: {
  9006. Fop: uint8(20),
  9007. Fbits: uint8(5),
  9008. Fval: uint16(33),
  9009. },
  9010. 11: {
  9011. Fop: uint8(28),
  9012. Fbits: uint8(5),
  9013. Fval: uint16(8193),
  9014. },
  9015. 12: {
  9016. Fop: uint8(18),
  9017. Fbits: uint8(5),
  9018. Fval: uint16(9),
  9019. },
  9020. 13: {
  9021. Fop: uint8(26),
  9022. Fbits: uint8(5),
  9023. Fval: uint16(2049),
  9024. },
  9025. 14: {
  9026. Fop: uint8(22),
  9027. Fbits: uint8(5),
  9028. Fval: uint16(129),
  9029. },
  9030. 15: {
  9031. Fop: uint8(64),
  9032. Fbits: uint8(5),
  9033. },
  9034. 16: {
  9035. Fop: uint8(16),
  9036. Fbits: uint8(5),
  9037. Fval: uint16(2),
  9038. },
  9039. 17: {
  9040. Fop: uint8(23),
  9041. Fbits: uint8(5),
  9042. Fval: uint16(385),
  9043. },
  9044. 18: {
  9045. Fop: uint8(19),
  9046. Fbits: uint8(5),
  9047. Fval: uint16(25),
  9048. },
  9049. 19: {
  9050. Fop: uint8(27),
  9051. Fbits: uint8(5),
  9052. Fval: uint16(6145),
  9053. },
  9054. 20: {
  9055. Fop: uint8(17),
  9056. Fbits: uint8(5),
  9057. Fval: uint16(7),
  9058. },
  9059. 21: {
  9060. Fop: uint8(25),
  9061. Fbits: uint8(5),
  9062. Fval: uint16(1537),
  9063. },
  9064. 22: {
  9065. Fop: uint8(21),
  9066. Fbits: uint8(5),
  9067. Fval: uint16(97),
  9068. },
  9069. 23: {
  9070. Fop: uint8(29),
  9071. Fbits: uint8(5),
  9072. Fval: uint16(24577),
  9073. },
  9074. 24: {
  9075. Fop: uint8(16),
  9076. Fbits: uint8(5),
  9077. Fval: uint16(4),
  9078. },
  9079. 25: {
  9080. Fop: uint8(24),
  9081. Fbits: uint8(5),
  9082. Fval: uint16(769),
  9083. },
  9084. 26: {
  9085. Fop: uint8(20),
  9086. Fbits: uint8(5),
  9087. Fval: uint16(49),
  9088. },
  9089. 27: {
  9090. Fop: uint8(28),
  9091. Fbits: uint8(5),
  9092. Fval: uint16(12289),
  9093. },
  9094. 28: {
  9095. Fop: uint8(18),
  9096. Fbits: uint8(5),
  9097. Fval: uint16(13),
  9098. },
  9099. 29: {
  9100. Fop: uint8(26),
  9101. Fbits: uint8(5),
  9102. Fval: uint16(3073),
  9103. },
  9104. 30: {
  9105. Fop: uint8(22),
  9106. Fbits: uint8(5),
  9107. Fval: uint16(193),
  9108. },
  9109. 31: {
  9110. Fop: uint8(64),
  9111. Fbits: uint8(5),
  9112. },
  9113. }
  9114. /* Macros for inflateBack(): */
  9115. /* Load returned state from inflate_fast() */
  9116. /* Set state from registers for inflate_fast() */
  9117. /* Clear the input bit accumulator */
  9118. /* Assure that some input is available. If input is requested, but denied,
  9119. then return a Z_BUF_ERROR from inflateBack(). */
  9120. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  9121. with an error if there is no input available. */
  9122. /* Assure that there are at least n bits in the bit accumulator. If there is
  9123. not enough available input to do that, then return from inflateBack() with
  9124. an error. */
  9125. /* Return the low n bits of the bit accumulator (n < 16) */
  9126. /* Remove n bits from the bit accumulator */
  9127. /* Remove zero to seven bits as needed to go to a byte boundary */
  9128. /* Assure that some output space is available, by writing out the window
  9129. if it's full. If the write fails, return from inflateBack() with a
  9130. Z_BUF_ERROR. */
  9131. // C documentation
  9132. //
  9133. // /*
  9134. // strm provides the memory allocation functions and window buffer on input,
  9135. // and provides information on the unused input on return. For Z_DATA_ERROR
  9136. // returns, strm will also provide an error message.
  9137. //
  9138. // in() and out() are the call-back input and output functions. When
  9139. // inflateBack() needs more input, it calls in(). When inflateBack() has
  9140. // filled the window with output, or when it completes with data in the
  9141. // window, it calls out() to write out the data. The application must not
  9142. // change the provided input until in() is called again or inflateBack()
  9143. // returns. The application must not change the window/output buffer until
  9144. // inflateBack() returns.
  9145. //
  9146. // in() and out() are called with a descriptor parameter provided in the
  9147. // inflateBack() call. This parameter can be a structure that provides the
  9148. // information required to do the read or write, as well as accumulated
  9149. // information on the input and output such as totals and check values.
  9150. //
  9151. // in() should return zero on failure. out() should return non-zero on
  9152. // failure. If either in() or out() fails, than inflateBack() returns a
  9153. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  9154. // was in() or out() that caused in the error. Otherwise, inflateBack()
  9155. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  9156. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  9157. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  9158. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  9159. // */
  9160. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  9161. bp := tls.Alloc(16)
  9162. defer tls.Free(16)
  9163. var bits, copy1, have, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  9164. var from, put, state, v11, v15, v16, v17, v19, v21, v23, v25, v26, v27, v28, v31, v33, v35, v36, v37, v39, v41, v42, v46, v47 uintptr
  9165. var here, last Tcode
  9166. var hold uint64
  9167. var ret int32
  9168. var _ /* next at bp+0 */ uintptr
  9169. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, copy1, from, have, here, hold, last, left, len1, put, ret, state, v1, v11, v15, v16, v17, v18, v19, v20, v21, v23, v24, v25, v26, v27, v28, v29, v30, v31, v33, v35, v36, v37, v39, v41, v42, v43, v44, v46, v47 /* return code */
  9170. /* Check that the strm exists and that the state was initialized */
  9171. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  9172. return -int32(2)
  9173. }
  9174. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  9175. /* Reset the state */
  9176. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  9177. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  9178. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  9179. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  9180. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9181. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  9182. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9183. } else {
  9184. v1 = uint32(0)
  9185. }
  9186. have = v1
  9187. hold = uint64(0)
  9188. bits = uint32(0)
  9189. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9190. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9191. /* Inflate until end of block marked as last */
  9192. for {
  9193. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  9194. case _TYPE:
  9195. goto _3
  9196. case _STORED:
  9197. goto _4
  9198. case _TABLE:
  9199. goto _5
  9200. case _LEN:
  9201. goto _6
  9202. case _DONE:
  9203. goto _7
  9204. case _BAD:
  9205. goto _8
  9206. default:
  9207. goto _9
  9208. }
  9209. goto _10
  9210. _3:
  9211. /* determine and dispatch block type */
  9212. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  9213. hold >>= uint64(bits & uint32(7))
  9214. bits -= bits & uint32(7)
  9215. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _DONE
  9216. goto _10
  9217. }
  9218. for bits < uint32(libc.Int32FromInt32(3)) {
  9219. if have == uint32(0) {
  9220. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9221. if have == uint32(0) {
  9222. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9223. ret = -int32(5)
  9224. goto inf_leave
  9225. }
  9226. }
  9227. have--
  9228. v11 = *(*uintptr)(unsafe.Pointer(bp))
  9229. *(*uintptr)(unsafe.Pointer(bp))++
  9230. hold += uint64(*(*uint8)(unsafe.Pointer(v11))) << bits
  9231. bits += uint32(8)
  9232. }
  9233. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(uint32(uint32(hold)) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  9234. hold >>= uint64(libc.Int32FromInt32(1))
  9235. bits -= uint32(libc.Int32FromInt32(1))
  9236. switch uint32(uint32(hold)) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  9237. case uint32(0):
  9238. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _STORED
  9239. case uint32(1):
  9240. _fixedtables(tls, state)
  9241. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN /* decode codes */
  9242. case uint32(2):
  9243. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TABLE
  9244. case uint32(3):
  9245. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 4
  9246. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9247. }
  9248. hold >>= uint64(libc.Int32FromInt32(2))
  9249. bits -= uint32(libc.Int32FromInt32(2))
  9250. goto _10
  9251. _4:
  9252. /* get and verify stored block length */
  9253. _14:
  9254. hold >>= uint64(bits & uint32(7))
  9255. bits -= bits & uint32(7)
  9256. goto _13
  9257. _13:
  9258. if 0 != 0 {
  9259. goto _14
  9260. }
  9261. goto _12
  9262. _12: /* go to byte boundary */
  9263. for bits < uint32(libc.Int32FromInt32(32)) {
  9264. if have == uint32(0) {
  9265. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9266. if have == uint32(0) {
  9267. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9268. ret = -int32(5)
  9269. goto inf_leave
  9270. }
  9271. }
  9272. have--
  9273. v15 = *(*uintptr)(unsafe.Pointer(bp))
  9274. *(*uintptr)(unsafe.Pointer(bp))++
  9275. hold += uint64(*(*uint8)(unsafe.Pointer(v15))) << bits
  9276. bits += uint32(8)
  9277. }
  9278. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  9279. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 23
  9280. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9281. goto _10
  9282. }
  9283. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(uint32(hold)) & uint32(0xffff)
  9284. hold = uint64(0)
  9285. bits = uint32(0)
  9286. /* copy stored block from input to output */
  9287. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  9288. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  9289. if have == uint32(0) {
  9290. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9291. if have == uint32(0) {
  9292. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9293. ret = -int32(5)
  9294. goto inf_leave
  9295. }
  9296. }
  9297. if left == uint32(0) {
  9298. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9299. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9300. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9301. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9302. ret = -int32(5)
  9303. goto inf_leave
  9304. }
  9305. }
  9306. if copy1 > have {
  9307. copy1 = have
  9308. }
  9309. if copy1 > left {
  9310. copy1 = left
  9311. }
  9312. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(uint64(copy1)))
  9313. have -= copy1
  9314. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  9315. left -= copy1
  9316. put += uintptr(copy1)
  9317. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  9318. }
  9319. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  9320. goto _10
  9321. _5:
  9322. /* get dynamic table entries descriptor */
  9323. for bits < uint32(libc.Int32FromInt32(14)) {
  9324. if have == uint32(0) {
  9325. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9326. if have == uint32(0) {
  9327. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9328. ret = -int32(5)
  9329. goto inf_leave
  9330. }
  9331. }
  9332. have--
  9333. v16 = *(*uintptr)(unsafe.Pointer(bp))
  9334. *(*uintptr)(unsafe.Pointer(bp))++
  9335. hold += uint64(*(*uint8)(unsafe.Pointer(v16))) << bits
  9336. bits += uint32(8)
  9337. }
  9338. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  9339. hold >>= uint64(libc.Int32FromInt32(5))
  9340. bits -= uint32(libc.Int32FromInt32(5))
  9341. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  9342. hold >>= uint64(libc.Int32FromInt32(5))
  9343. bits -= uint32(libc.Int32FromInt32(5))
  9344. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  9345. hold >>= uint64(libc.Int32FromInt32(4))
  9346. bits -= uint32(libc.Int32FromInt32(4))
  9347. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  9348. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 52
  9349. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9350. goto _10
  9351. }
  9352. /* get code length code lengths (not a typo) */
  9353. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9354. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  9355. for bits < uint32(libc.Int32FromInt32(3)) {
  9356. if have == uint32(0) {
  9357. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9358. if have == uint32(0) {
  9359. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9360. ret = -int32(5)
  9361. goto inf_leave
  9362. }
  9363. }
  9364. have--
  9365. v17 = *(*uintptr)(unsafe.Pointer(bp))
  9366. *(*uintptr)(unsafe.Pointer(bp))++
  9367. hold += uint64(*(*uint8)(unsafe.Pointer(v17))) << bits
  9368. bits += uint32(8)
  9369. }
  9370. v19 = state + 140
  9371. v18 = *(*uint32)(unsafe.Pointer(v19))
  9372. *(*uint32)(unsafe.Pointer(v19))++
  9373. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v18])*2)) = uint16(uint32(uint32(hold)) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  9374. hold >>= uint64(libc.Int32FromInt32(3))
  9375. bits -= uint32(libc.Int32FromInt32(3))
  9376. }
  9377. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  9378. v21 = state + 140
  9379. v20 = *(*uint32)(unsafe.Pointer(v21))
  9380. *(*uint32)(unsafe.Pointer(v21))++
  9381. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v20])*2)) = uint16(0)
  9382. }
  9383. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9384. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9385. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  9386. ret = Xinflate_table(tls, _CODES, state+152, uint32(19), state+144, state+120, state+792)
  9387. if ret != 0 {
  9388. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 88
  9389. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9390. goto _10
  9391. }
  9392. /* get length and distance code code lengths */
  9393. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9394. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9395. for {
  9396. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9397. if uint32(here.Fbits) <= bits {
  9398. break
  9399. }
  9400. if have == uint32(0) {
  9401. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9402. if have == uint32(0) {
  9403. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9404. ret = -int32(5)
  9405. goto inf_leave
  9406. }
  9407. }
  9408. have--
  9409. v23 = *(*uintptr)(unsafe.Pointer(bp))
  9410. *(*uintptr)(unsafe.Pointer(bp))++
  9411. hold += uint64(*(*uint8)(unsafe.Pointer(v23))) << bits
  9412. bits += uint32(8)
  9413. goto _22
  9414. _22:
  9415. }
  9416. if int32(here.Fval) < int32(16) {
  9417. hold >>= uint64(here.Fbits)
  9418. bits -= uint32(here.Fbits)
  9419. v25 = state + 140
  9420. v24 = *(*uint32)(unsafe.Pointer(v25))
  9421. *(*uint32)(unsafe.Pointer(v25))++
  9422. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v24)*2)) = here.Fval
  9423. } else {
  9424. if int32(here.Fval) == int32(16) {
  9425. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  9426. if have == uint32(0) {
  9427. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9428. if have == uint32(0) {
  9429. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9430. ret = -int32(5)
  9431. goto inf_leave
  9432. }
  9433. }
  9434. have--
  9435. v26 = *(*uintptr)(unsafe.Pointer(bp))
  9436. *(*uintptr)(unsafe.Pointer(bp))++
  9437. hold += uint64(*(*uint8)(unsafe.Pointer(v26))) << bits
  9438. bits += uint32(8)
  9439. }
  9440. hold >>= uint64(here.Fbits)
  9441. bits -= uint32(here.Fbits)
  9442. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  9443. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  9444. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9445. break
  9446. }
  9447. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  9448. copy1 = uint32(3) + uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  9449. hold >>= uint64(libc.Int32FromInt32(2))
  9450. bits -= uint32(libc.Int32FromInt32(2))
  9451. } else {
  9452. if int32(here.Fval) == int32(17) {
  9453. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  9454. if have == uint32(0) {
  9455. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9456. if have == uint32(0) {
  9457. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9458. ret = -int32(5)
  9459. goto inf_leave
  9460. }
  9461. }
  9462. have--
  9463. v27 = *(*uintptr)(unsafe.Pointer(bp))
  9464. *(*uintptr)(unsafe.Pointer(bp))++
  9465. hold += uint64(*(*uint8)(unsafe.Pointer(v27))) << bits
  9466. bits += uint32(8)
  9467. }
  9468. hold >>= uint64(here.Fbits)
  9469. bits -= uint32(here.Fbits)
  9470. len1 = uint32(0)
  9471. copy1 = uint32(3) + uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  9472. hold >>= uint64(libc.Int32FromInt32(3))
  9473. bits -= uint32(libc.Int32FromInt32(3))
  9474. } else {
  9475. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  9476. if have == uint32(0) {
  9477. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9478. if have == uint32(0) {
  9479. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9480. ret = -int32(5)
  9481. goto inf_leave
  9482. }
  9483. }
  9484. have--
  9485. v28 = *(*uintptr)(unsafe.Pointer(bp))
  9486. *(*uintptr)(unsafe.Pointer(bp))++
  9487. hold += uint64(*(*uint8)(unsafe.Pointer(v28))) << bits
  9488. bits += uint32(8)
  9489. }
  9490. hold >>= uint64(here.Fbits)
  9491. bits -= uint32(here.Fbits)
  9492. len1 = uint32(0)
  9493. copy1 = uint32(11) + uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  9494. hold >>= uint64(libc.Int32FromInt32(7))
  9495. bits -= uint32(libc.Int32FromInt32(7))
  9496. }
  9497. }
  9498. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9499. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  9500. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9501. break
  9502. }
  9503. for {
  9504. v29 = copy1
  9505. copy1--
  9506. if !(v29 != 0) {
  9507. break
  9508. }
  9509. v31 = state + 140
  9510. v30 = *(*uint32)(unsafe.Pointer(v31))
  9511. *(*uint32)(unsafe.Pointer(v31))++
  9512. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v30)*2)) = uint16(uint16(len1))
  9513. }
  9514. }
  9515. }
  9516. /* handle error breaks in while */
  9517. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _BAD {
  9518. goto _10
  9519. }
  9520. /* check for end-of-block code (better have one) */
  9521. if int32(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  9522. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 139
  9523. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9524. goto _10
  9525. }
  9526. /* build code tables -- note: do not change the lenbits or distbits
  9527. values here (9 and 6) without reading the comments in inftrees.h
  9528. concerning the ENOUGH constants, which depend on those values */
  9529. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9530. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9531. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  9532. ret = Xinflate_table(tls, _LENS, state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  9533. if ret != 0 {
  9534. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 176
  9535. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9536. goto _10
  9537. }
  9538. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9539. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  9540. ret = Xinflate_table(tls, _DISTS, state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  9541. if ret != 0 {
  9542. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 204
  9543. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9544. goto _10
  9545. }
  9546. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN
  9547. /* fallthrough */
  9548. _6:
  9549. /* use inflate_fast() if we have enough input and output */
  9550. if have >= uint32(6) && left >= uint32(258) {
  9551. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  9552. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  9553. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  9554. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  9555. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  9556. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  9557. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9558. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  9559. }
  9560. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  9561. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  9562. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9563. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9564. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9565. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  9566. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  9567. goto _10
  9568. }
  9569. /* get a literal, length, or end-of-block code */
  9570. for {
  9571. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9572. if uint32(here.Fbits) <= bits {
  9573. break
  9574. }
  9575. if have == uint32(0) {
  9576. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9577. if have == uint32(0) {
  9578. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9579. ret = -int32(5)
  9580. goto inf_leave
  9581. }
  9582. }
  9583. have--
  9584. v33 = *(*uintptr)(unsafe.Pointer(bp))
  9585. *(*uintptr)(unsafe.Pointer(bp))++
  9586. hold += uint64(*(*uint8)(unsafe.Pointer(v33))) << bits
  9587. bits += uint32(8)
  9588. goto _32
  9589. _32:
  9590. }
  9591. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  9592. last = here
  9593. for {
  9594. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(uint32(hold))&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  9595. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  9596. break
  9597. }
  9598. if have == uint32(0) {
  9599. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9600. if have == uint32(0) {
  9601. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9602. ret = -int32(5)
  9603. goto inf_leave
  9604. }
  9605. }
  9606. have--
  9607. v35 = *(*uintptr)(unsafe.Pointer(bp))
  9608. *(*uintptr)(unsafe.Pointer(bp))++
  9609. hold += uint64(*(*uint8)(unsafe.Pointer(v35))) << bits
  9610. bits += uint32(8)
  9611. goto _34
  9612. _34:
  9613. }
  9614. hold >>= uint64(last.Fbits)
  9615. bits -= uint32(last.Fbits)
  9616. }
  9617. hold >>= uint64(here.Fbits)
  9618. bits -= uint32(here.Fbits)
  9619. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  9620. /* process literal */
  9621. if int32(here.Fop) == 0 {
  9622. if left == uint32(0) {
  9623. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9624. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9625. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9626. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9627. ret = -int32(5)
  9628. goto inf_leave
  9629. }
  9630. }
  9631. v36 = put
  9632. put++
  9633. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  9634. left--
  9635. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN
  9636. goto _10
  9637. }
  9638. /* process end of block */
  9639. if int32(here.Fop)&int32(32) != 0 {
  9640. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  9641. goto _10
  9642. }
  9643. /* invalid code */
  9644. if int32(here.Fop)&int32(64) != 0 {
  9645. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 226
  9646. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9647. goto _10
  9648. }
  9649. /* length code -- get extra bits, if any */
  9650. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  9651. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  9652. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  9653. if have == uint32(0) {
  9654. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9655. if have == uint32(0) {
  9656. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9657. ret = -int32(5)
  9658. goto inf_leave
  9659. }
  9660. }
  9661. have--
  9662. v37 = *(*uintptr)(unsafe.Pointer(bp))
  9663. *(*uintptr)(unsafe.Pointer(bp))++
  9664. hold += uint64(*(*uint8)(unsafe.Pointer(v37))) << bits
  9665. bits += uint32(8)
  9666. }
  9667. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(uint32(hold)) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  9668. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  9669. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  9670. }
  9671. /* get distance code */
  9672. for {
  9673. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  9674. if uint32(here.Fbits) <= bits {
  9675. break
  9676. }
  9677. if have == uint32(0) {
  9678. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9679. if have == uint32(0) {
  9680. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9681. ret = -int32(5)
  9682. goto inf_leave
  9683. }
  9684. }
  9685. have--
  9686. v39 = *(*uintptr)(unsafe.Pointer(bp))
  9687. *(*uintptr)(unsafe.Pointer(bp))++
  9688. hold += uint64(*(*uint8)(unsafe.Pointer(v39))) << bits
  9689. bits += uint32(8)
  9690. goto _38
  9691. _38:
  9692. }
  9693. if int32(here.Fop)&int32(0xf0) == 0 {
  9694. last = here
  9695. for {
  9696. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(uint32(hold))&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  9697. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  9698. break
  9699. }
  9700. if have == uint32(0) {
  9701. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9702. if have == uint32(0) {
  9703. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9704. ret = -int32(5)
  9705. goto inf_leave
  9706. }
  9707. }
  9708. have--
  9709. v41 = *(*uintptr)(unsafe.Pointer(bp))
  9710. *(*uintptr)(unsafe.Pointer(bp))++
  9711. hold += uint64(*(*uint8)(unsafe.Pointer(v41))) << bits
  9712. bits += uint32(8)
  9713. goto _40
  9714. _40:
  9715. }
  9716. hold >>= uint64(last.Fbits)
  9717. bits -= uint32(last.Fbits)
  9718. }
  9719. hold >>= uint64(here.Fbits)
  9720. bits -= uint32(here.Fbits)
  9721. if int32(here.Fop)&int32(64) != 0 {
  9722. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 254
  9723. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9724. goto _10
  9725. }
  9726. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  9727. /* get distance extra bits, if any */
  9728. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  9729. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  9730. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  9731. if have == uint32(0) {
  9732. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9733. if have == uint32(0) {
  9734. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9735. ret = -int32(5)
  9736. goto inf_leave
  9737. }
  9738. }
  9739. have--
  9740. v42 = *(*uintptr)(unsafe.Pointer(bp))
  9741. *(*uintptr)(unsafe.Pointer(bp))++
  9742. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  9743. bits += uint32(8)
  9744. }
  9745. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(uint32(hold)) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  9746. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  9747. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  9748. }
  9749. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9750. v43 = left
  9751. } else {
  9752. v43 = uint32(0)
  9753. }
  9754. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  9755. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 276
  9756. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9757. goto _10
  9758. }
  9759. /* copy match from window to output */
  9760. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  9761. if left == uint32(0) {
  9762. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9763. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9764. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9765. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9766. ret = -int32(5)
  9767. goto inf_leave
  9768. }
  9769. }
  9770. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  9771. if copy1 < left {
  9772. from = put + uintptr(copy1)
  9773. copy1 = left - copy1
  9774. } else {
  9775. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  9776. copy1 = left
  9777. }
  9778. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  9779. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  9780. }
  9781. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  9782. left -= copy1
  9783. for {
  9784. v46 = put
  9785. put++
  9786. v47 = from
  9787. from++
  9788. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  9789. goto _45
  9790. _45:
  9791. copy1--
  9792. v44 = copy1
  9793. if !(v44 != 0) {
  9794. break
  9795. }
  9796. }
  9797. }
  9798. goto _10
  9799. _7:
  9800. /* inflate stream terminated properly */
  9801. ret = int32(m_Z_STREAM_END)
  9802. goto inf_leave
  9803. _8:
  9804. ret = -int32(3)
  9805. goto inf_leave
  9806. _9:
  9807. /* can't happen, but makes compilers happy */
  9808. ret = -int32(2)
  9809. goto inf_leave
  9810. _10:
  9811. goto _2
  9812. _2:
  9813. }
  9814. /* Write leftover output and return unused input */
  9815. inf_leave:
  9816. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9817. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-left) != 0 && ret == int32(m_Z_STREAM_END) {
  9818. ret = -int32(5)
  9819. }
  9820. }
  9821. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  9822. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  9823. return ret
  9824. }
  9825. var _order = [19]uint16{
  9826. 0: uint16(16),
  9827. 1: uint16(17),
  9828. 2: uint16(18),
  9829. 4: uint16(8),
  9830. 5: uint16(7),
  9831. 6: uint16(9),
  9832. 7: uint16(6),
  9833. 8: uint16(10),
  9834. 9: uint16(5),
  9835. 10: uint16(11),
  9836. 11: uint16(4),
  9837. 12: uint16(12),
  9838. 13: uint16(3),
  9839. 14: uint16(13),
  9840. 15: uint16(2),
  9841. 16: uint16(14),
  9842. 17: uint16(1),
  9843. 18: uint16(15),
  9844. }
  9845. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  9846. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  9847. return -int32(2)
  9848. }
  9849. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  9850. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  9851. return m_Z_OK
  9852. }
  9853. // C documentation
  9854. //
  9855. // /*
  9856. // Decode literal, length, and distance codes and write out the resulting
  9857. // literal and match bytes until either not enough input or output is
  9858. // available, an end-of-block is encountered, or a data error is encountered.
  9859. // When large enough input and output buffers are supplied to inflate(), for
  9860. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  9861. // inflate execution time is spent in this routine.
  9862. //
  9863. // Entry assumptions:
  9864. //
  9865. // state->mode == LEN
  9866. // strm->avail_in >= 6
  9867. // strm->avail_out >= 258
  9868. // start >= strm->avail_out
  9869. // state->bits < 8
  9870. //
  9871. // On return, state->mode is one of:
  9872. //
  9873. // LEN -- ran out of enough output space or enough available input
  9874. // TYPE -- reached end of block code, inflate() to interpret next block
  9875. // BAD -- error in block data
  9876. //
  9877. // Notes:
  9878. //
  9879. // - The maximum input bits used by a length/distance pair is 15 bits for the
  9880. // length code, 5 bits for the length extra, 15 bits for the distance code,
  9881. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  9882. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  9883. // checking for available input while decoding.
  9884. //
  9885. // - The maximum bytes that a single length/distance pair can output is 258
  9886. // bytes, which is the maximum length that can be coded. inflate_fast()
  9887. // requires strm->avail_out >= 258 for each loop to avoid checking for
  9888. // output space.
  9889. // */
  9890. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  9891. var beg, dcode, end, from, here, in, last, lcode, out, state, window, v1, v11, v12, v15, v16, v19, v2, v20, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v5, v6, v7, v8 uintptr
  9892. var bits, dist, dmask, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  9893. var hold uint64
  9894. var v45, v46 int64
  9895. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beg, bits, dcode, dist, dmask, end, from, here, hold, in, last, lcode, len1, lmask, op, out, state, whave, window, wnext, wsize, v1, v11, v12, v13, v15, v16, v17, v19, v2, v20, v21, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v5, v6, v7, v8, v9 /* where to copy match from */
  9896. /* copy state to local variables */
  9897. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  9898. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9899. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  9900. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  9901. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  9902. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  9903. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9904. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  9905. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  9906. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9907. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  9908. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  9909. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  9910. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  9911. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  9912. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  9913. /* decode literals and length/distances until end-of-block or not enough
  9914. input data or output space */
  9915. for cond := true; cond; cond = in < last && out < end {
  9916. if bits < uint32(15) {
  9917. v1 = in
  9918. in++
  9919. hold += uint64(*(*uint8)(unsafe.Pointer(v1))) << bits
  9920. bits += uint32(8)
  9921. v2 = in
  9922. in++
  9923. hold += uint64(*(*uint8)(unsafe.Pointer(v2))) << bits
  9924. bits += uint32(8)
  9925. }
  9926. here = lcode + uintptr(hold&uint64(uint64(lmask)))*4
  9927. dolen:
  9928. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  9929. hold >>= uint64(uint64(op))
  9930. bits -= op
  9931. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  9932. if op == uint32(0) { /* literal */
  9933. v3 = out
  9934. out++
  9935. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  9936. } else {
  9937. if op&uint32(16) != 0 { /* length base */
  9938. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  9939. op &= uint32(15) /* number of extra bits */
  9940. if op != 0 {
  9941. if bits < op {
  9942. v4 = in
  9943. in++
  9944. hold += uint64(*(*uint8)(unsafe.Pointer(v4))) << bits
  9945. bits += uint32(8)
  9946. }
  9947. len1 += uint32(uint32(hold)) & (uint32(1)<<op - uint32(1))
  9948. hold >>= uint64(uint64(op))
  9949. bits -= op
  9950. }
  9951. if bits < uint32(15) {
  9952. v5 = in
  9953. in++
  9954. hold += uint64(*(*uint8)(unsafe.Pointer(v5))) << bits
  9955. bits += uint32(8)
  9956. v6 = in
  9957. in++
  9958. hold += uint64(*(*uint8)(unsafe.Pointer(v6))) << bits
  9959. bits += uint32(8)
  9960. }
  9961. here = dcode + uintptr(hold&uint64(uint64(dmask)))*4
  9962. dodist:
  9963. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  9964. hold >>= uint64(uint64(op))
  9965. bits -= op
  9966. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  9967. if op&uint32(16) != 0 { /* distance base */
  9968. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  9969. op &= uint32(15) /* number of extra bits */
  9970. if bits < op {
  9971. v7 = in
  9972. in++
  9973. hold += uint64(*(*uint8)(unsafe.Pointer(v7))) << bits
  9974. bits += uint32(8)
  9975. if bits < op {
  9976. v8 = in
  9977. in++
  9978. hold += uint64(*(*uint8)(unsafe.Pointer(v8))) << bits
  9979. bits += uint32(8)
  9980. }
  9981. }
  9982. dist += uint32(uint32(hold)) & (uint32(1)<<op - uint32(1))
  9983. hold >>= uint64(uint64(op))
  9984. bits -= op
  9985. op = uint32(int64(int64(out)) - int64(int64(beg))) /* max distance in output */
  9986. if dist > op { /* see if copy from window */
  9987. op = dist - op /* distance back in window */
  9988. if op > whave {
  9989. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  9990. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 276
  9991. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  9992. break
  9993. }
  9994. }
  9995. from = window
  9996. if wnext == uint32(0) { /* very common case */
  9997. from += uintptr(wsize - op)
  9998. if op < len1 { /* some from window */
  9999. len1 -= op
  10000. for {
  10001. v11 = out
  10002. out++
  10003. v12 = from
  10004. from++
  10005. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  10006. goto _10
  10007. _10:
  10008. op--
  10009. v9 = op
  10010. if !(v9 != 0) {
  10011. break
  10012. }
  10013. }
  10014. from = out - uintptr(dist) /* rest from output */
  10015. }
  10016. } else {
  10017. if wnext < op { /* wrap around window */
  10018. from += uintptr(wsize + wnext - op)
  10019. op -= wnext
  10020. if op < len1 { /* some from end of window */
  10021. len1 -= op
  10022. for {
  10023. v15 = out
  10024. out++
  10025. v16 = from
  10026. from++
  10027. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  10028. goto _14
  10029. _14:
  10030. op--
  10031. v13 = op
  10032. if !(v13 != 0) {
  10033. break
  10034. }
  10035. }
  10036. from = window
  10037. if wnext < len1 { /* some from start of window */
  10038. op = wnext
  10039. len1 -= op
  10040. for {
  10041. v19 = out
  10042. out++
  10043. v20 = from
  10044. from++
  10045. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  10046. goto _18
  10047. _18:
  10048. op--
  10049. v17 = op
  10050. if !(v17 != 0) {
  10051. break
  10052. }
  10053. }
  10054. from = out - uintptr(dist) /* rest from output */
  10055. }
  10056. }
  10057. } else { /* contiguous in window */
  10058. from += uintptr(wnext - op)
  10059. if op < len1 { /* some from window */
  10060. len1 -= op
  10061. for {
  10062. v23 = out
  10063. out++
  10064. v24 = from
  10065. from++
  10066. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  10067. goto _22
  10068. _22:
  10069. op--
  10070. v21 = op
  10071. if !(v21 != 0) {
  10072. break
  10073. }
  10074. }
  10075. from = out - uintptr(dist) /* rest from output */
  10076. }
  10077. }
  10078. }
  10079. for len1 > uint32(2) {
  10080. v25 = out
  10081. out++
  10082. v26 = from
  10083. from++
  10084. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  10085. v27 = out
  10086. out++
  10087. v28 = from
  10088. from++
  10089. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  10090. v29 = out
  10091. out++
  10092. v30 = from
  10093. from++
  10094. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  10095. len1 -= uint32(3)
  10096. }
  10097. if len1 != 0 {
  10098. v31 = out
  10099. out++
  10100. v32 = from
  10101. from++
  10102. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  10103. if len1 > uint32(1) {
  10104. v33 = out
  10105. out++
  10106. v34 = from
  10107. from++
  10108. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  10109. }
  10110. }
  10111. } else {
  10112. from = out - uintptr(dist) /* copy direct from output */
  10113. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  10114. v35 = out
  10115. out++
  10116. v36 = from
  10117. from++
  10118. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  10119. v37 = out
  10120. out++
  10121. v38 = from
  10122. from++
  10123. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  10124. v39 = out
  10125. out++
  10126. v40 = from
  10127. from++
  10128. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  10129. len1 -= uint32(3)
  10130. }
  10131. if len1 != 0 {
  10132. v41 = out
  10133. out++
  10134. v42 = from
  10135. from++
  10136. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  10137. if len1 > uint32(1) {
  10138. v43 = out
  10139. out++
  10140. v44 = from
  10141. from++
  10142. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  10143. }
  10144. }
  10145. }
  10146. } else {
  10147. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  10148. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10149. goto dodist
  10150. } else {
  10151. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 254
  10152. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  10153. break
  10154. }
  10155. }
  10156. } else {
  10157. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  10158. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10159. goto dolen
  10160. } else {
  10161. if op&uint32(32) != 0 { /* end-of-block */
  10162. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  10163. break
  10164. } else {
  10165. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 226
  10166. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  10167. break
  10168. }
  10169. }
  10170. }
  10171. }
  10172. }
  10173. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  10174. len1 = bits >> int32(3)
  10175. in -= uintptr(len1)
  10176. bits -= len1 << int32(3)
  10177. hold &= uint64(uint32(1)<<bits - uint32(1))
  10178. /* update state and return */
  10179. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  10180. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  10181. if in < last {
  10182. v45 = int64(5) + (int64(int64(last)) - int64(int64(in)))
  10183. } else {
  10184. v45 = int64(5) - (int64(int64(in)) - int64(int64(last)))
  10185. }
  10186. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(v45)
  10187. if out < end {
  10188. v46 = int64(257) + (int64(int64(end)) - int64(int64(out)))
  10189. } else {
  10190. v46 = int64(257) - (int64(int64(out)) - int64(int64(end)))
  10191. }
  10192. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = uint32(v46)
  10193. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  10194. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  10195. return
  10196. }
  10197. const m_Z_TREES = 6
  10198. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10199. var state uintptr
  10200. _ = state
  10201. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10202. return int32(1)
  10203. }
  10204. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10205. if state == uintptr(m_Z_NULL) || (*Tinflate_state)(unsafe.Pointer(state)).Fstrm != strm || (*Tinflate_state)(unsafe.Pointer(state)).Fmode < _HEAD || (*Tinflate_state)(unsafe.Pointer(state)).Fmode > _SYNC {
  10206. return int32(1)
  10207. }
  10208. return 0
  10209. }
  10210. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10211. var state, v3, v4 uintptr
  10212. var v1 TuLong
  10213. var v2 uint64
  10214. _, _, _, _, _ = state, v1, v2, v3, v4
  10215. if _inflateStateCheck(tls, strm) != 0 {
  10216. return -int32(2)
  10217. }
  10218. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10219. v2 = libc.Uint64FromInt32(0)
  10220. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  10221. v1 = v2
  10222. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  10223. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  10224. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  10225. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  10226. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  10227. }
  10228. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _HEAD
  10229. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  10230. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  10231. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  10232. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  10233. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  10234. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10235. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10236. v4 = state + 1368
  10237. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  10238. v3 = v4
  10239. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  10240. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  10241. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  10242. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  10243. return m_Z_OK
  10244. }
  10245. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10246. var state uintptr
  10247. _ = state
  10248. if _inflateStateCheck(tls, strm) != 0 {
  10249. return -int32(2)
  10250. }
  10251. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10252. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  10253. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  10254. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  10255. return XinflateResetKeep(tls, strm)
  10256. }
  10257. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  10258. var state uintptr
  10259. var wrap int32
  10260. _, _ = state, wrap
  10261. /* get the state */
  10262. if _inflateStateCheck(tls, strm) != 0 {
  10263. return -int32(2)
  10264. }
  10265. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10266. /* extract wrap request from windowBits parameter */
  10267. if windowBits < 0 {
  10268. if windowBits < -int32(15) {
  10269. return -int32(2)
  10270. }
  10271. wrap = 0
  10272. windowBits = -windowBits
  10273. } else {
  10274. wrap = windowBits>>int32(4) + int32(5)
  10275. if windowBits < int32(48) {
  10276. windowBits &= int32(15)
  10277. }
  10278. }
  10279. /* set number of window bits, free window if different */
  10280. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  10281. return -int32(2)
  10282. }
  10283. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != uint32(uint32(windowBits)) {
  10284. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow)
  10285. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10286. }
  10287. /* update state and reset the rest of it */
  10288. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  10289. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(uint32(windowBits))
  10290. return XinflateReset(tls, strm)
  10291. }
  10292. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  10293. var ret int32
  10294. var state uintptr
  10295. _, _ = ret, state
  10296. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(112)) {
  10297. return -int32(6)
  10298. }
  10299. if strm == uintptr(m_Z_NULL) {
  10300. return -int32(2)
  10301. }
  10302. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  10303. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  10304. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  10305. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  10306. }
  10307. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10308. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  10309. }
  10310. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  10311. if state == uintptr(m_Z_NULL) {
  10312. return -int32(4)
  10313. }
  10314. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  10315. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  10316. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10317. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _HEAD /* to pass state test in inflateReset2() */
  10318. ret = XinflateReset2(tls, strm, windowBits)
  10319. if ret != m_Z_OK {
  10320. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  10321. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10322. }
  10323. return ret
  10324. }
  10325. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  10326. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  10327. }
  10328. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  10329. var state uintptr
  10330. _ = state
  10331. if _inflateStateCheck(tls, strm) != 0 {
  10332. return -int32(2)
  10333. }
  10334. if bits == 0 {
  10335. return m_Z_OK
  10336. }
  10337. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10338. if bits < 0 {
  10339. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10340. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10341. return m_Z_OK
  10342. }
  10343. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+uint32(uint32(bits)) > uint32(32) {
  10344. return -int32(2)
  10345. }
  10346. value = int32(int64(value) & (libc.Int64FromInt64(1)<<bits - libc.Int64FromInt32(1)))
  10347. *(*uint64)(unsafe.Pointer(state + 80)) += uint64(uint32(uint32(value)) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  10348. *(*uint32)(unsafe.Pointer(state + 88)) += uint32(uint32(bits))
  10349. return m_Z_OK
  10350. }
  10351. // C documentation
  10352. //
  10353. // /*
  10354. // Return state with length and distance decoding tables and index sizes set to
  10355. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  10356. // If BUILDFIXED is defined, then instead this routine builds the tables the
  10357. // first time it's called, and returns those tables the first time and
  10358. // thereafter. This reduces the size of the code by about 2K bytes, in
  10359. // exchange for a little execution time. However, BUILDFIXED should not be
  10360. // used for threaded applications, since the rewriting of the tables and virgin
  10361. // may not be thread-safe.
  10362. // */
  10363. func _fixedtables1(tls *libc.TLS, state uintptr) {
  10364. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  10365. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  10366. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  10367. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  10368. }
  10369. var _lenfix1 = [512]Tcode{
  10370. 0: {
  10371. Fop: uint8(96),
  10372. Fbits: uint8(7),
  10373. },
  10374. 1: {
  10375. Fbits: uint8(8),
  10376. Fval: uint16(80),
  10377. },
  10378. 2: {
  10379. Fbits: uint8(8),
  10380. Fval: uint16(16),
  10381. },
  10382. 3: {
  10383. Fop: uint8(20),
  10384. Fbits: uint8(8),
  10385. Fval: uint16(115),
  10386. },
  10387. 4: {
  10388. Fop: uint8(18),
  10389. Fbits: uint8(7),
  10390. Fval: uint16(31),
  10391. },
  10392. 5: {
  10393. Fbits: uint8(8),
  10394. Fval: uint16(112),
  10395. },
  10396. 6: {
  10397. Fbits: uint8(8),
  10398. Fval: uint16(48),
  10399. },
  10400. 7: {
  10401. Fbits: uint8(9),
  10402. Fval: uint16(192),
  10403. },
  10404. 8: {
  10405. Fop: uint8(16),
  10406. Fbits: uint8(7),
  10407. Fval: uint16(10),
  10408. },
  10409. 9: {
  10410. Fbits: uint8(8),
  10411. Fval: uint16(96),
  10412. },
  10413. 10: {
  10414. Fbits: uint8(8),
  10415. Fval: uint16(32),
  10416. },
  10417. 11: {
  10418. Fbits: uint8(9),
  10419. Fval: uint16(160),
  10420. },
  10421. 12: {
  10422. Fbits: uint8(8),
  10423. },
  10424. 13: {
  10425. Fbits: uint8(8),
  10426. Fval: uint16(128),
  10427. },
  10428. 14: {
  10429. Fbits: uint8(8),
  10430. Fval: uint16(64),
  10431. },
  10432. 15: {
  10433. Fbits: uint8(9),
  10434. Fval: uint16(224),
  10435. },
  10436. 16: {
  10437. Fop: uint8(16),
  10438. Fbits: uint8(7),
  10439. Fval: uint16(6),
  10440. },
  10441. 17: {
  10442. Fbits: uint8(8),
  10443. Fval: uint16(88),
  10444. },
  10445. 18: {
  10446. Fbits: uint8(8),
  10447. Fval: uint16(24),
  10448. },
  10449. 19: {
  10450. Fbits: uint8(9),
  10451. Fval: uint16(144),
  10452. },
  10453. 20: {
  10454. Fop: uint8(19),
  10455. Fbits: uint8(7),
  10456. Fval: uint16(59),
  10457. },
  10458. 21: {
  10459. Fbits: uint8(8),
  10460. Fval: uint16(120),
  10461. },
  10462. 22: {
  10463. Fbits: uint8(8),
  10464. Fval: uint16(56),
  10465. },
  10466. 23: {
  10467. Fbits: uint8(9),
  10468. Fval: uint16(208),
  10469. },
  10470. 24: {
  10471. Fop: uint8(17),
  10472. Fbits: uint8(7),
  10473. Fval: uint16(17),
  10474. },
  10475. 25: {
  10476. Fbits: uint8(8),
  10477. Fval: uint16(104),
  10478. },
  10479. 26: {
  10480. Fbits: uint8(8),
  10481. Fval: uint16(40),
  10482. },
  10483. 27: {
  10484. Fbits: uint8(9),
  10485. Fval: uint16(176),
  10486. },
  10487. 28: {
  10488. Fbits: uint8(8),
  10489. Fval: uint16(8),
  10490. },
  10491. 29: {
  10492. Fbits: uint8(8),
  10493. Fval: uint16(136),
  10494. },
  10495. 30: {
  10496. Fbits: uint8(8),
  10497. Fval: uint16(72),
  10498. },
  10499. 31: {
  10500. Fbits: uint8(9),
  10501. Fval: uint16(240),
  10502. },
  10503. 32: {
  10504. Fop: uint8(16),
  10505. Fbits: uint8(7),
  10506. Fval: uint16(4),
  10507. },
  10508. 33: {
  10509. Fbits: uint8(8),
  10510. Fval: uint16(84),
  10511. },
  10512. 34: {
  10513. Fbits: uint8(8),
  10514. Fval: uint16(20),
  10515. },
  10516. 35: {
  10517. Fop: uint8(21),
  10518. Fbits: uint8(8),
  10519. Fval: uint16(227),
  10520. },
  10521. 36: {
  10522. Fop: uint8(19),
  10523. Fbits: uint8(7),
  10524. Fval: uint16(43),
  10525. },
  10526. 37: {
  10527. Fbits: uint8(8),
  10528. Fval: uint16(116),
  10529. },
  10530. 38: {
  10531. Fbits: uint8(8),
  10532. Fval: uint16(52),
  10533. },
  10534. 39: {
  10535. Fbits: uint8(9),
  10536. Fval: uint16(200),
  10537. },
  10538. 40: {
  10539. Fop: uint8(17),
  10540. Fbits: uint8(7),
  10541. Fval: uint16(13),
  10542. },
  10543. 41: {
  10544. Fbits: uint8(8),
  10545. Fval: uint16(100),
  10546. },
  10547. 42: {
  10548. Fbits: uint8(8),
  10549. Fval: uint16(36),
  10550. },
  10551. 43: {
  10552. Fbits: uint8(9),
  10553. Fval: uint16(168),
  10554. },
  10555. 44: {
  10556. Fbits: uint8(8),
  10557. Fval: uint16(4),
  10558. },
  10559. 45: {
  10560. Fbits: uint8(8),
  10561. Fval: uint16(132),
  10562. },
  10563. 46: {
  10564. Fbits: uint8(8),
  10565. Fval: uint16(68),
  10566. },
  10567. 47: {
  10568. Fbits: uint8(9),
  10569. Fval: uint16(232),
  10570. },
  10571. 48: {
  10572. Fop: uint8(16),
  10573. Fbits: uint8(7),
  10574. Fval: uint16(8),
  10575. },
  10576. 49: {
  10577. Fbits: uint8(8),
  10578. Fval: uint16(92),
  10579. },
  10580. 50: {
  10581. Fbits: uint8(8),
  10582. Fval: uint16(28),
  10583. },
  10584. 51: {
  10585. Fbits: uint8(9),
  10586. Fval: uint16(152),
  10587. },
  10588. 52: {
  10589. Fop: uint8(20),
  10590. Fbits: uint8(7),
  10591. Fval: uint16(83),
  10592. },
  10593. 53: {
  10594. Fbits: uint8(8),
  10595. Fval: uint16(124),
  10596. },
  10597. 54: {
  10598. Fbits: uint8(8),
  10599. Fval: uint16(60),
  10600. },
  10601. 55: {
  10602. Fbits: uint8(9),
  10603. Fval: uint16(216),
  10604. },
  10605. 56: {
  10606. Fop: uint8(18),
  10607. Fbits: uint8(7),
  10608. Fval: uint16(23),
  10609. },
  10610. 57: {
  10611. Fbits: uint8(8),
  10612. Fval: uint16(108),
  10613. },
  10614. 58: {
  10615. Fbits: uint8(8),
  10616. Fval: uint16(44),
  10617. },
  10618. 59: {
  10619. Fbits: uint8(9),
  10620. Fval: uint16(184),
  10621. },
  10622. 60: {
  10623. Fbits: uint8(8),
  10624. Fval: uint16(12),
  10625. },
  10626. 61: {
  10627. Fbits: uint8(8),
  10628. Fval: uint16(140),
  10629. },
  10630. 62: {
  10631. Fbits: uint8(8),
  10632. Fval: uint16(76),
  10633. },
  10634. 63: {
  10635. Fbits: uint8(9),
  10636. Fval: uint16(248),
  10637. },
  10638. 64: {
  10639. Fop: uint8(16),
  10640. Fbits: uint8(7),
  10641. Fval: uint16(3),
  10642. },
  10643. 65: {
  10644. Fbits: uint8(8),
  10645. Fval: uint16(82),
  10646. },
  10647. 66: {
  10648. Fbits: uint8(8),
  10649. Fval: uint16(18),
  10650. },
  10651. 67: {
  10652. Fop: uint8(21),
  10653. Fbits: uint8(8),
  10654. Fval: uint16(163),
  10655. },
  10656. 68: {
  10657. Fop: uint8(19),
  10658. Fbits: uint8(7),
  10659. Fval: uint16(35),
  10660. },
  10661. 69: {
  10662. Fbits: uint8(8),
  10663. Fval: uint16(114),
  10664. },
  10665. 70: {
  10666. Fbits: uint8(8),
  10667. Fval: uint16(50),
  10668. },
  10669. 71: {
  10670. Fbits: uint8(9),
  10671. Fval: uint16(196),
  10672. },
  10673. 72: {
  10674. Fop: uint8(17),
  10675. Fbits: uint8(7),
  10676. Fval: uint16(11),
  10677. },
  10678. 73: {
  10679. Fbits: uint8(8),
  10680. Fval: uint16(98),
  10681. },
  10682. 74: {
  10683. Fbits: uint8(8),
  10684. Fval: uint16(34),
  10685. },
  10686. 75: {
  10687. Fbits: uint8(9),
  10688. Fval: uint16(164),
  10689. },
  10690. 76: {
  10691. Fbits: uint8(8),
  10692. Fval: uint16(2),
  10693. },
  10694. 77: {
  10695. Fbits: uint8(8),
  10696. Fval: uint16(130),
  10697. },
  10698. 78: {
  10699. Fbits: uint8(8),
  10700. Fval: uint16(66),
  10701. },
  10702. 79: {
  10703. Fbits: uint8(9),
  10704. Fval: uint16(228),
  10705. },
  10706. 80: {
  10707. Fop: uint8(16),
  10708. Fbits: uint8(7),
  10709. Fval: uint16(7),
  10710. },
  10711. 81: {
  10712. Fbits: uint8(8),
  10713. Fval: uint16(90),
  10714. },
  10715. 82: {
  10716. Fbits: uint8(8),
  10717. Fval: uint16(26),
  10718. },
  10719. 83: {
  10720. Fbits: uint8(9),
  10721. Fval: uint16(148),
  10722. },
  10723. 84: {
  10724. Fop: uint8(20),
  10725. Fbits: uint8(7),
  10726. Fval: uint16(67),
  10727. },
  10728. 85: {
  10729. Fbits: uint8(8),
  10730. Fval: uint16(122),
  10731. },
  10732. 86: {
  10733. Fbits: uint8(8),
  10734. Fval: uint16(58),
  10735. },
  10736. 87: {
  10737. Fbits: uint8(9),
  10738. Fval: uint16(212),
  10739. },
  10740. 88: {
  10741. Fop: uint8(18),
  10742. Fbits: uint8(7),
  10743. Fval: uint16(19),
  10744. },
  10745. 89: {
  10746. Fbits: uint8(8),
  10747. Fval: uint16(106),
  10748. },
  10749. 90: {
  10750. Fbits: uint8(8),
  10751. Fval: uint16(42),
  10752. },
  10753. 91: {
  10754. Fbits: uint8(9),
  10755. Fval: uint16(180),
  10756. },
  10757. 92: {
  10758. Fbits: uint8(8),
  10759. Fval: uint16(10),
  10760. },
  10761. 93: {
  10762. Fbits: uint8(8),
  10763. Fval: uint16(138),
  10764. },
  10765. 94: {
  10766. Fbits: uint8(8),
  10767. Fval: uint16(74),
  10768. },
  10769. 95: {
  10770. Fbits: uint8(9),
  10771. Fval: uint16(244),
  10772. },
  10773. 96: {
  10774. Fop: uint8(16),
  10775. Fbits: uint8(7),
  10776. Fval: uint16(5),
  10777. },
  10778. 97: {
  10779. Fbits: uint8(8),
  10780. Fval: uint16(86),
  10781. },
  10782. 98: {
  10783. Fbits: uint8(8),
  10784. Fval: uint16(22),
  10785. },
  10786. 99: {
  10787. Fop: uint8(64),
  10788. Fbits: uint8(8),
  10789. },
  10790. 100: {
  10791. Fop: uint8(19),
  10792. Fbits: uint8(7),
  10793. Fval: uint16(51),
  10794. },
  10795. 101: {
  10796. Fbits: uint8(8),
  10797. Fval: uint16(118),
  10798. },
  10799. 102: {
  10800. Fbits: uint8(8),
  10801. Fval: uint16(54),
  10802. },
  10803. 103: {
  10804. Fbits: uint8(9),
  10805. Fval: uint16(204),
  10806. },
  10807. 104: {
  10808. Fop: uint8(17),
  10809. Fbits: uint8(7),
  10810. Fval: uint16(15),
  10811. },
  10812. 105: {
  10813. Fbits: uint8(8),
  10814. Fval: uint16(102),
  10815. },
  10816. 106: {
  10817. Fbits: uint8(8),
  10818. Fval: uint16(38),
  10819. },
  10820. 107: {
  10821. Fbits: uint8(9),
  10822. Fval: uint16(172),
  10823. },
  10824. 108: {
  10825. Fbits: uint8(8),
  10826. Fval: uint16(6),
  10827. },
  10828. 109: {
  10829. Fbits: uint8(8),
  10830. Fval: uint16(134),
  10831. },
  10832. 110: {
  10833. Fbits: uint8(8),
  10834. Fval: uint16(70),
  10835. },
  10836. 111: {
  10837. Fbits: uint8(9),
  10838. Fval: uint16(236),
  10839. },
  10840. 112: {
  10841. Fop: uint8(16),
  10842. Fbits: uint8(7),
  10843. Fval: uint16(9),
  10844. },
  10845. 113: {
  10846. Fbits: uint8(8),
  10847. Fval: uint16(94),
  10848. },
  10849. 114: {
  10850. Fbits: uint8(8),
  10851. Fval: uint16(30),
  10852. },
  10853. 115: {
  10854. Fbits: uint8(9),
  10855. Fval: uint16(156),
  10856. },
  10857. 116: {
  10858. Fop: uint8(20),
  10859. Fbits: uint8(7),
  10860. Fval: uint16(99),
  10861. },
  10862. 117: {
  10863. Fbits: uint8(8),
  10864. Fval: uint16(126),
  10865. },
  10866. 118: {
  10867. Fbits: uint8(8),
  10868. Fval: uint16(62),
  10869. },
  10870. 119: {
  10871. Fbits: uint8(9),
  10872. Fval: uint16(220),
  10873. },
  10874. 120: {
  10875. Fop: uint8(18),
  10876. Fbits: uint8(7),
  10877. Fval: uint16(27),
  10878. },
  10879. 121: {
  10880. Fbits: uint8(8),
  10881. Fval: uint16(110),
  10882. },
  10883. 122: {
  10884. Fbits: uint8(8),
  10885. Fval: uint16(46),
  10886. },
  10887. 123: {
  10888. Fbits: uint8(9),
  10889. Fval: uint16(188),
  10890. },
  10891. 124: {
  10892. Fbits: uint8(8),
  10893. Fval: uint16(14),
  10894. },
  10895. 125: {
  10896. Fbits: uint8(8),
  10897. Fval: uint16(142),
  10898. },
  10899. 126: {
  10900. Fbits: uint8(8),
  10901. Fval: uint16(78),
  10902. },
  10903. 127: {
  10904. Fbits: uint8(9),
  10905. Fval: uint16(252),
  10906. },
  10907. 128: {
  10908. Fop: uint8(96),
  10909. Fbits: uint8(7),
  10910. },
  10911. 129: {
  10912. Fbits: uint8(8),
  10913. Fval: uint16(81),
  10914. },
  10915. 130: {
  10916. Fbits: uint8(8),
  10917. Fval: uint16(17),
  10918. },
  10919. 131: {
  10920. Fop: uint8(21),
  10921. Fbits: uint8(8),
  10922. Fval: uint16(131),
  10923. },
  10924. 132: {
  10925. Fop: uint8(18),
  10926. Fbits: uint8(7),
  10927. Fval: uint16(31),
  10928. },
  10929. 133: {
  10930. Fbits: uint8(8),
  10931. Fval: uint16(113),
  10932. },
  10933. 134: {
  10934. Fbits: uint8(8),
  10935. Fval: uint16(49),
  10936. },
  10937. 135: {
  10938. Fbits: uint8(9),
  10939. Fval: uint16(194),
  10940. },
  10941. 136: {
  10942. Fop: uint8(16),
  10943. Fbits: uint8(7),
  10944. Fval: uint16(10),
  10945. },
  10946. 137: {
  10947. Fbits: uint8(8),
  10948. Fval: uint16(97),
  10949. },
  10950. 138: {
  10951. Fbits: uint8(8),
  10952. Fval: uint16(33),
  10953. },
  10954. 139: {
  10955. Fbits: uint8(9),
  10956. Fval: uint16(162),
  10957. },
  10958. 140: {
  10959. Fbits: uint8(8),
  10960. Fval: uint16(1),
  10961. },
  10962. 141: {
  10963. Fbits: uint8(8),
  10964. Fval: uint16(129),
  10965. },
  10966. 142: {
  10967. Fbits: uint8(8),
  10968. Fval: uint16(65),
  10969. },
  10970. 143: {
  10971. Fbits: uint8(9),
  10972. Fval: uint16(226),
  10973. },
  10974. 144: {
  10975. Fop: uint8(16),
  10976. Fbits: uint8(7),
  10977. Fval: uint16(6),
  10978. },
  10979. 145: {
  10980. Fbits: uint8(8),
  10981. Fval: uint16(89),
  10982. },
  10983. 146: {
  10984. Fbits: uint8(8),
  10985. Fval: uint16(25),
  10986. },
  10987. 147: {
  10988. Fbits: uint8(9),
  10989. Fval: uint16(146),
  10990. },
  10991. 148: {
  10992. Fop: uint8(19),
  10993. Fbits: uint8(7),
  10994. Fval: uint16(59),
  10995. },
  10996. 149: {
  10997. Fbits: uint8(8),
  10998. Fval: uint16(121),
  10999. },
  11000. 150: {
  11001. Fbits: uint8(8),
  11002. Fval: uint16(57),
  11003. },
  11004. 151: {
  11005. Fbits: uint8(9),
  11006. Fval: uint16(210),
  11007. },
  11008. 152: {
  11009. Fop: uint8(17),
  11010. Fbits: uint8(7),
  11011. Fval: uint16(17),
  11012. },
  11013. 153: {
  11014. Fbits: uint8(8),
  11015. Fval: uint16(105),
  11016. },
  11017. 154: {
  11018. Fbits: uint8(8),
  11019. Fval: uint16(41),
  11020. },
  11021. 155: {
  11022. Fbits: uint8(9),
  11023. Fval: uint16(178),
  11024. },
  11025. 156: {
  11026. Fbits: uint8(8),
  11027. Fval: uint16(9),
  11028. },
  11029. 157: {
  11030. Fbits: uint8(8),
  11031. Fval: uint16(137),
  11032. },
  11033. 158: {
  11034. Fbits: uint8(8),
  11035. Fval: uint16(73),
  11036. },
  11037. 159: {
  11038. Fbits: uint8(9),
  11039. Fval: uint16(242),
  11040. },
  11041. 160: {
  11042. Fop: uint8(16),
  11043. Fbits: uint8(7),
  11044. Fval: uint16(4),
  11045. },
  11046. 161: {
  11047. Fbits: uint8(8),
  11048. Fval: uint16(85),
  11049. },
  11050. 162: {
  11051. Fbits: uint8(8),
  11052. Fval: uint16(21),
  11053. },
  11054. 163: {
  11055. Fop: uint8(16),
  11056. Fbits: uint8(8),
  11057. Fval: uint16(258),
  11058. },
  11059. 164: {
  11060. Fop: uint8(19),
  11061. Fbits: uint8(7),
  11062. Fval: uint16(43),
  11063. },
  11064. 165: {
  11065. Fbits: uint8(8),
  11066. Fval: uint16(117),
  11067. },
  11068. 166: {
  11069. Fbits: uint8(8),
  11070. Fval: uint16(53),
  11071. },
  11072. 167: {
  11073. Fbits: uint8(9),
  11074. Fval: uint16(202),
  11075. },
  11076. 168: {
  11077. Fop: uint8(17),
  11078. Fbits: uint8(7),
  11079. Fval: uint16(13),
  11080. },
  11081. 169: {
  11082. Fbits: uint8(8),
  11083. Fval: uint16(101),
  11084. },
  11085. 170: {
  11086. Fbits: uint8(8),
  11087. Fval: uint16(37),
  11088. },
  11089. 171: {
  11090. Fbits: uint8(9),
  11091. Fval: uint16(170),
  11092. },
  11093. 172: {
  11094. Fbits: uint8(8),
  11095. Fval: uint16(5),
  11096. },
  11097. 173: {
  11098. Fbits: uint8(8),
  11099. Fval: uint16(133),
  11100. },
  11101. 174: {
  11102. Fbits: uint8(8),
  11103. Fval: uint16(69),
  11104. },
  11105. 175: {
  11106. Fbits: uint8(9),
  11107. Fval: uint16(234),
  11108. },
  11109. 176: {
  11110. Fop: uint8(16),
  11111. Fbits: uint8(7),
  11112. Fval: uint16(8),
  11113. },
  11114. 177: {
  11115. Fbits: uint8(8),
  11116. Fval: uint16(93),
  11117. },
  11118. 178: {
  11119. Fbits: uint8(8),
  11120. Fval: uint16(29),
  11121. },
  11122. 179: {
  11123. Fbits: uint8(9),
  11124. Fval: uint16(154),
  11125. },
  11126. 180: {
  11127. Fop: uint8(20),
  11128. Fbits: uint8(7),
  11129. Fval: uint16(83),
  11130. },
  11131. 181: {
  11132. Fbits: uint8(8),
  11133. Fval: uint16(125),
  11134. },
  11135. 182: {
  11136. Fbits: uint8(8),
  11137. Fval: uint16(61),
  11138. },
  11139. 183: {
  11140. Fbits: uint8(9),
  11141. Fval: uint16(218),
  11142. },
  11143. 184: {
  11144. Fop: uint8(18),
  11145. Fbits: uint8(7),
  11146. Fval: uint16(23),
  11147. },
  11148. 185: {
  11149. Fbits: uint8(8),
  11150. Fval: uint16(109),
  11151. },
  11152. 186: {
  11153. Fbits: uint8(8),
  11154. Fval: uint16(45),
  11155. },
  11156. 187: {
  11157. Fbits: uint8(9),
  11158. Fval: uint16(186),
  11159. },
  11160. 188: {
  11161. Fbits: uint8(8),
  11162. Fval: uint16(13),
  11163. },
  11164. 189: {
  11165. Fbits: uint8(8),
  11166. Fval: uint16(141),
  11167. },
  11168. 190: {
  11169. Fbits: uint8(8),
  11170. Fval: uint16(77),
  11171. },
  11172. 191: {
  11173. Fbits: uint8(9),
  11174. Fval: uint16(250),
  11175. },
  11176. 192: {
  11177. Fop: uint8(16),
  11178. Fbits: uint8(7),
  11179. Fval: uint16(3),
  11180. },
  11181. 193: {
  11182. Fbits: uint8(8),
  11183. Fval: uint16(83),
  11184. },
  11185. 194: {
  11186. Fbits: uint8(8),
  11187. Fval: uint16(19),
  11188. },
  11189. 195: {
  11190. Fop: uint8(21),
  11191. Fbits: uint8(8),
  11192. Fval: uint16(195),
  11193. },
  11194. 196: {
  11195. Fop: uint8(19),
  11196. Fbits: uint8(7),
  11197. Fval: uint16(35),
  11198. },
  11199. 197: {
  11200. Fbits: uint8(8),
  11201. Fval: uint16(115),
  11202. },
  11203. 198: {
  11204. Fbits: uint8(8),
  11205. Fval: uint16(51),
  11206. },
  11207. 199: {
  11208. Fbits: uint8(9),
  11209. Fval: uint16(198),
  11210. },
  11211. 200: {
  11212. Fop: uint8(17),
  11213. Fbits: uint8(7),
  11214. Fval: uint16(11),
  11215. },
  11216. 201: {
  11217. Fbits: uint8(8),
  11218. Fval: uint16(99),
  11219. },
  11220. 202: {
  11221. Fbits: uint8(8),
  11222. Fval: uint16(35),
  11223. },
  11224. 203: {
  11225. Fbits: uint8(9),
  11226. Fval: uint16(166),
  11227. },
  11228. 204: {
  11229. Fbits: uint8(8),
  11230. Fval: uint16(3),
  11231. },
  11232. 205: {
  11233. Fbits: uint8(8),
  11234. Fval: uint16(131),
  11235. },
  11236. 206: {
  11237. Fbits: uint8(8),
  11238. Fval: uint16(67),
  11239. },
  11240. 207: {
  11241. Fbits: uint8(9),
  11242. Fval: uint16(230),
  11243. },
  11244. 208: {
  11245. Fop: uint8(16),
  11246. Fbits: uint8(7),
  11247. Fval: uint16(7),
  11248. },
  11249. 209: {
  11250. Fbits: uint8(8),
  11251. Fval: uint16(91),
  11252. },
  11253. 210: {
  11254. Fbits: uint8(8),
  11255. Fval: uint16(27),
  11256. },
  11257. 211: {
  11258. Fbits: uint8(9),
  11259. Fval: uint16(150),
  11260. },
  11261. 212: {
  11262. Fop: uint8(20),
  11263. Fbits: uint8(7),
  11264. Fval: uint16(67),
  11265. },
  11266. 213: {
  11267. Fbits: uint8(8),
  11268. Fval: uint16(123),
  11269. },
  11270. 214: {
  11271. Fbits: uint8(8),
  11272. Fval: uint16(59),
  11273. },
  11274. 215: {
  11275. Fbits: uint8(9),
  11276. Fval: uint16(214),
  11277. },
  11278. 216: {
  11279. Fop: uint8(18),
  11280. Fbits: uint8(7),
  11281. Fval: uint16(19),
  11282. },
  11283. 217: {
  11284. Fbits: uint8(8),
  11285. Fval: uint16(107),
  11286. },
  11287. 218: {
  11288. Fbits: uint8(8),
  11289. Fval: uint16(43),
  11290. },
  11291. 219: {
  11292. Fbits: uint8(9),
  11293. Fval: uint16(182),
  11294. },
  11295. 220: {
  11296. Fbits: uint8(8),
  11297. Fval: uint16(11),
  11298. },
  11299. 221: {
  11300. Fbits: uint8(8),
  11301. Fval: uint16(139),
  11302. },
  11303. 222: {
  11304. Fbits: uint8(8),
  11305. Fval: uint16(75),
  11306. },
  11307. 223: {
  11308. Fbits: uint8(9),
  11309. Fval: uint16(246),
  11310. },
  11311. 224: {
  11312. Fop: uint8(16),
  11313. Fbits: uint8(7),
  11314. Fval: uint16(5),
  11315. },
  11316. 225: {
  11317. Fbits: uint8(8),
  11318. Fval: uint16(87),
  11319. },
  11320. 226: {
  11321. Fbits: uint8(8),
  11322. Fval: uint16(23),
  11323. },
  11324. 227: {
  11325. Fop: uint8(64),
  11326. Fbits: uint8(8),
  11327. },
  11328. 228: {
  11329. Fop: uint8(19),
  11330. Fbits: uint8(7),
  11331. Fval: uint16(51),
  11332. },
  11333. 229: {
  11334. Fbits: uint8(8),
  11335. Fval: uint16(119),
  11336. },
  11337. 230: {
  11338. Fbits: uint8(8),
  11339. Fval: uint16(55),
  11340. },
  11341. 231: {
  11342. Fbits: uint8(9),
  11343. Fval: uint16(206),
  11344. },
  11345. 232: {
  11346. Fop: uint8(17),
  11347. Fbits: uint8(7),
  11348. Fval: uint16(15),
  11349. },
  11350. 233: {
  11351. Fbits: uint8(8),
  11352. Fval: uint16(103),
  11353. },
  11354. 234: {
  11355. Fbits: uint8(8),
  11356. Fval: uint16(39),
  11357. },
  11358. 235: {
  11359. Fbits: uint8(9),
  11360. Fval: uint16(174),
  11361. },
  11362. 236: {
  11363. Fbits: uint8(8),
  11364. Fval: uint16(7),
  11365. },
  11366. 237: {
  11367. Fbits: uint8(8),
  11368. Fval: uint16(135),
  11369. },
  11370. 238: {
  11371. Fbits: uint8(8),
  11372. Fval: uint16(71),
  11373. },
  11374. 239: {
  11375. Fbits: uint8(9),
  11376. Fval: uint16(238),
  11377. },
  11378. 240: {
  11379. Fop: uint8(16),
  11380. Fbits: uint8(7),
  11381. Fval: uint16(9),
  11382. },
  11383. 241: {
  11384. Fbits: uint8(8),
  11385. Fval: uint16(95),
  11386. },
  11387. 242: {
  11388. Fbits: uint8(8),
  11389. Fval: uint16(31),
  11390. },
  11391. 243: {
  11392. Fbits: uint8(9),
  11393. Fval: uint16(158),
  11394. },
  11395. 244: {
  11396. Fop: uint8(20),
  11397. Fbits: uint8(7),
  11398. Fval: uint16(99),
  11399. },
  11400. 245: {
  11401. Fbits: uint8(8),
  11402. Fval: uint16(127),
  11403. },
  11404. 246: {
  11405. Fbits: uint8(8),
  11406. Fval: uint16(63),
  11407. },
  11408. 247: {
  11409. Fbits: uint8(9),
  11410. Fval: uint16(222),
  11411. },
  11412. 248: {
  11413. Fop: uint8(18),
  11414. Fbits: uint8(7),
  11415. Fval: uint16(27),
  11416. },
  11417. 249: {
  11418. Fbits: uint8(8),
  11419. Fval: uint16(111),
  11420. },
  11421. 250: {
  11422. Fbits: uint8(8),
  11423. Fval: uint16(47),
  11424. },
  11425. 251: {
  11426. Fbits: uint8(9),
  11427. Fval: uint16(190),
  11428. },
  11429. 252: {
  11430. Fbits: uint8(8),
  11431. Fval: uint16(15),
  11432. },
  11433. 253: {
  11434. Fbits: uint8(8),
  11435. Fval: uint16(143),
  11436. },
  11437. 254: {
  11438. Fbits: uint8(8),
  11439. Fval: uint16(79),
  11440. },
  11441. 255: {
  11442. Fbits: uint8(9),
  11443. Fval: uint16(254),
  11444. },
  11445. 256: {
  11446. Fop: uint8(96),
  11447. Fbits: uint8(7),
  11448. },
  11449. 257: {
  11450. Fbits: uint8(8),
  11451. Fval: uint16(80),
  11452. },
  11453. 258: {
  11454. Fbits: uint8(8),
  11455. Fval: uint16(16),
  11456. },
  11457. 259: {
  11458. Fop: uint8(20),
  11459. Fbits: uint8(8),
  11460. Fval: uint16(115),
  11461. },
  11462. 260: {
  11463. Fop: uint8(18),
  11464. Fbits: uint8(7),
  11465. Fval: uint16(31),
  11466. },
  11467. 261: {
  11468. Fbits: uint8(8),
  11469. Fval: uint16(112),
  11470. },
  11471. 262: {
  11472. Fbits: uint8(8),
  11473. Fval: uint16(48),
  11474. },
  11475. 263: {
  11476. Fbits: uint8(9),
  11477. Fval: uint16(193),
  11478. },
  11479. 264: {
  11480. Fop: uint8(16),
  11481. Fbits: uint8(7),
  11482. Fval: uint16(10),
  11483. },
  11484. 265: {
  11485. Fbits: uint8(8),
  11486. Fval: uint16(96),
  11487. },
  11488. 266: {
  11489. Fbits: uint8(8),
  11490. Fval: uint16(32),
  11491. },
  11492. 267: {
  11493. Fbits: uint8(9),
  11494. Fval: uint16(161),
  11495. },
  11496. 268: {
  11497. Fbits: uint8(8),
  11498. },
  11499. 269: {
  11500. Fbits: uint8(8),
  11501. Fval: uint16(128),
  11502. },
  11503. 270: {
  11504. Fbits: uint8(8),
  11505. Fval: uint16(64),
  11506. },
  11507. 271: {
  11508. Fbits: uint8(9),
  11509. Fval: uint16(225),
  11510. },
  11511. 272: {
  11512. Fop: uint8(16),
  11513. Fbits: uint8(7),
  11514. Fval: uint16(6),
  11515. },
  11516. 273: {
  11517. Fbits: uint8(8),
  11518. Fval: uint16(88),
  11519. },
  11520. 274: {
  11521. Fbits: uint8(8),
  11522. Fval: uint16(24),
  11523. },
  11524. 275: {
  11525. Fbits: uint8(9),
  11526. Fval: uint16(145),
  11527. },
  11528. 276: {
  11529. Fop: uint8(19),
  11530. Fbits: uint8(7),
  11531. Fval: uint16(59),
  11532. },
  11533. 277: {
  11534. Fbits: uint8(8),
  11535. Fval: uint16(120),
  11536. },
  11537. 278: {
  11538. Fbits: uint8(8),
  11539. Fval: uint16(56),
  11540. },
  11541. 279: {
  11542. Fbits: uint8(9),
  11543. Fval: uint16(209),
  11544. },
  11545. 280: {
  11546. Fop: uint8(17),
  11547. Fbits: uint8(7),
  11548. Fval: uint16(17),
  11549. },
  11550. 281: {
  11551. Fbits: uint8(8),
  11552. Fval: uint16(104),
  11553. },
  11554. 282: {
  11555. Fbits: uint8(8),
  11556. Fval: uint16(40),
  11557. },
  11558. 283: {
  11559. Fbits: uint8(9),
  11560. Fval: uint16(177),
  11561. },
  11562. 284: {
  11563. Fbits: uint8(8),
  11564. Fval: uint16(8),
  11565. },
  11566. 285: {
  11567. Fbits: uint8(8),
  11568. Fval: uint16(136),
  11569. },
  11570. 286: {
  11571. Fbits: uint8(8),
  11572. Fval: uint16(72),
  11573. },
  11574. 287: {
  11575. Fbits: uint8(9),
  11576. Fval: uint16(241),
  11577. },
  11578. 288: {
  11579. Fop: uint8(16),
  11580. Fbits: uint8(7),
  11581. Fval: uint16(4),
  11582. },
  11583. 289: {
  11584. Fbits: uint8(8),
  11585. Fval: uint16(84),
  11586. },
  11587. 290: {
  11588. Fbits: uint8(8),
  11589. Fval: uint16(20),
  11590. },
  11591. 291: {
  11592. Fop: uint8(21),
  11593. Fbits: uint8(8),
  11594. Fval: uint16(227),
  11595. },
  11596. 292: {
  11597. Fop: uint8(19),
  11598. Fbits: uint8(7),
  11599. Fval: uint16(43),
  11600. },
  11601. 293: {
  11602. Fbits: uint8(8),
  11603. Fval: uint16(116),
  11604. },
  11605. 294: {
  11606. Fbits: uint8(8),
  11607. Fval: uint16(52),
  11608. },
  11609. 295: {
  11610. Fbits: uint8(9),
  11611. Fval: uint16(201),
  11612. },
  11613. 296: {
  11614. Fop: uint8(17),
  11615. Fbits: uint8(7),
  11616. Fval: uint16(13),
  11617. },
  11618. 297: {
  11619. Fbits: uint8(8),
  11620. Fval: uint16(100),
  11621. },
  11622. 298: {
  11623. Fbits: uint8(8),
  11624. Fval: uint16(36),
  11625. },
  11626. 299: {
  11627. Fbits: uint8(9),
  11628. Fval: uint16(169),
  11629. },
  11630. 300: {
  11631. Fbits: uint8(8),
  11632. Fval: uint16(4),
  11633. },
  11634. 301: {
  11635. Fbits: uint8(8),
  11636. Fval: uint16(132),
  11637. },
  11638. 302: {
  11639. Fbits: uint8(8),
  11640. Fval: uint16(68),
  11641. },
  11642. 303: {
  11643. Fbits: uint8(9),
  11644. Fval: uint16(233),
  11645. },
  11646. 304: {
  11647. Fop: uint8(16),
  11648. Fbits: uint8(7),
  11649. Fval: uint16(8),
  11650. },
  11651. 305: {
  11652. Fbits: uint8(8),
  11653. Fval: uint16(92),
  11654. },
  11655. 306: {
  11656. Fbits: uint8(8),
  11657. Fval: uint16(28),
  11658. },
  11659. 307: {
  11660. Fbits: uint8(9),
  11661. Fval: uint16(153),
  11662. },
  11663. 308: {
  11664. Fop: uint8(20),
  11665. Fbits: uint8(7),
  11666. Fval: uint16(83),
  11667. },
  11668. 309: {
  11669. Fbits: uint8(8),
  11670. Fval: uint16(124),
  11671. },
  11672. 310: {
  11673. Fbits: uint8(8),
  11674. Fval: uint16(60),
  11675. },
  11676. 311: {
  11677. Fbits: uint8(9),
  11678. Fval: uint16(217),
  11679. },
  11680. 312: {
  11681. Fop: uint8(18),
  11682. Fbits: uint8(7),
  11683. Fval: uint16(23),
  11684. },
  11685. 313: {
  11686. Fbits: uint8(8),
  11687. Fval: uint16(108),
  11688. },
  11689. 314: {
  11690. Fbits: uint8(8),
  11691. Fval: uint16(44),
  11692. },
  11693. 315: {
  11694. Fbits: uint8(9),
  11695. Fval: uint16(185),
  11696. },
  11697. 316: {
  11698. Fbits: uint8(8),
  11699. Fval: uint16(12),
  11700. },
  11701. 317: {
  11702. Fbits: uint8(8),
  11703. Fval: uint16(140),
  11704. },
  11705. 318: {
  11706. Fbits: uint8(8),
  11707. Fval: uint16(76),
  11708. },
  11709. 319: {
  11710. Fbits: uint8(9),
  11711. Fval: uint16(249),
  11712. },
  11713. 320: {
  11714. Fop: uint8(16),
  11715. Fbits: uint8(7),
  11716. Fval: uint16(3),
  11717. },
  11718. 321: {
  11719. Fbits: uint8(8),
  11720. Fval: uint16(82),
  11721. },
  11722. 322: {
  11723. Fbits: uint8(8),
  11724. Fval: uint16(18),
  11725. },
  11726. 323: {
  11727. Fop: uint8(21),
  11728. Fbits: uint8(8),
  11729. Fval: uint16(163),
  11730. },
  11731. 324: {
  11732. Fop: uint8(19),
  11733. Fbits: uint8(7),
  11734. Fval: uint16(35),
  11735. },
  11736. 325: {
  11737. Fbits: uint8(8),
  11738. Fval: uint16(114),
  11739. },
  11740. 326: {
  11741. Fbits: uint8(8),
  11742. Fval: uint16(50),
  11743. },
  11744. 327: {
  11745. Fbits: uint8(9),
  11746. Fval: uint16(197),
  11747. },
  11748. 328: {
  11749. Fop: uint8(17),
  11750. Fbits: uint8(7),
  11751. Fval: uint16(11),
  11752. },
  11753. 329: {
  11754. Fbits: uint8(8),
  11755. Fval: uint16(98),
  11756. },
  11757. 330: {
  11758. Fbits: uint8(8),
  11759. Fval: uint16(34),
  11760. },
  11761. 331: {
  11762. Fbits: uint8(9),
  11763. Fval: uint16(165),
  11764. },
  11765. 332: {
  11766. Fbits: uint8(8),
  11767. Fval: uint16(2),
  11768. },
  11769. 333: {
  11770. Fbits: uint8(8),
  11771. Fval: uint16(130),
  11772. },
  11773. 334: {
  11774. Fbits: uint8(8),
  11775. Fval: uint16(66),
  11776. },
  11777. 335: {
  11778. Fbits: uint8(9),
  11779. Fval: uint16(229),
  11780. },
  11781. 336: {
  11782. Fop: uint8(16),
  11783. Fbits: uint8(7),
  11784. Fval: uint16(7),
  11785. },
  11786. 337: {
  11787. Fbits: uint8(8),
  11788. Fval: uint16(90),
  11789. },
  11790. 338: {
  11791. Fbits: uint8(8),
  11792. Fval: uint16(26),
  11793. },
  11794. 339: {
  11795. Fbits: uint8(9),
  11796. Fval: uint16(149),
  11797. },
  11798. 340: {
  11799. Fop: uint8(20),
  11800. Fbits: uint8(7),
  11801. Fval: uint16(67),
  11802. },
  11803. 341: {
  11804. Fbits: uint8(8),
  11805. Fval: uint16(122),
  11806. },
  11807. 342: {
  11808. Fbits: uint8(8),
  11809. Fval: uint16(58),
  11810. },
  11811. 343: {
  11812. Fbits: uint8(9),
  11813. Fval: uint16(213),
  11814. },
  11815. 344: {
  11816. Fop: uint8(18),
  11817. Fbits: uint8(7),
  11818. Fval: uint16(19),
  11819. },
  11820. 345: {
  11821. Fbits: uint8(8),
  11822. Fval: uint16(106),
  11823. },
  11824. 346: {
  11825. Fbits: uint8(8),
  11826. Fval: uint16(42),
  11827. },
  11828. 347: {
  11829. Fbits: uint8(9),
  11830. Fval: uint16(181),
  11831. },
  11832. 348: {
  11833. Fbits: uint8(8),
  11834. Fval: uint16(10),
  11835. },
  11836. 349: {
  11837. Fbits: uint8(8),
  11838. Fval: uint16(138),
  11839. },
  11840. 350: {
  11841. Fbits: uint8(8),
  11842. Fval: uint16(74),
  11843. },
  11844. 351: {
  11845. Fbits: uint8(9),
  11846. Fval: uint16(245),
  11847. },
  11848. 352: {
  11849. Fop: uint8(16),
  11850. Fbits: uint8(7),
  11851. Fval: uint16(5),
  11852. },
  11853. 353: {
  11854. Fbits: uint8(8),
  11855. Fval: uint16(86),
  11856. },
  11857. 354: {
  11858. Fbits: uint8(8),
  11859. Fval: uint16(22),
  11860. },
  11861. 355: {
  11862. Fop: uint8(64),
  11863. Fbits: uint8(8),
  11864. },
  11865. 356: {
  11866. Fop: uint8(19),
  11867. Fbits: uint8(7),
  11868. Fval: uint16(51),
  11869. },
  11870. 357: {
  11871. Fbits: uint8(8),
  11872. Fval: uint16(118),
  11873. },
  11874. 358: {
  11875. Fbits: uint8(8),
  11876. Fval: uint16(54),
  11877. },
  11878. 359: {
  11879. Fbits: uint8(9),
  11880. Fval: uint16(205),
  11881. },
  11882. 360: {
  11883. Fop: uint8(17),
  11884. Fbits: uint8(7),
  11885. Fval: uint16(15),
  11886. },
  11887. 361: {
  11888. Fbits: uint8(8),
  11889. Fval: uint16(102),
  11890. },
  11891. 362: {
  11892. Fbits: uint8(8),
  11893. Fval: uint16(38),
  11894. },
  11895. 363: {
  11896. Fbits: uint8(9),
  11897. Fval: uint16(173),
  11898. },
  11899. 364: {
  11900. Fbits: uint8(8),
  11901. Fval: uint16(6),
  11902. },
  11903. 365: {
  11904. Fbits: uint8(8),
  11905. Fval: uint16(134),
  11906. },
  11907. 366: {
  11908. Fbits: uint8(8),
  11909. Fval: uint16(70),
  11910. },
  11911. 367: {
  11912. Fbits: uint8(9),
  11913. Fval: uint16(237),
  11914. },
  11915. 368: {
  11916. Fop: uint8(16),
  11917. Fbits: uint8(7),
  11918. Fval: uint16(9),
  11919. },
  11920. 369: {
  11921. Fbits: uint8(8),
  11922. Fval: uint16(94),
  11923. },
  11924. 370: {
  11925. Fbits: uint8(8),
  11926. Fval: uint16(30),
  11927. },
  11928. 371: {
  11929. Fbits: uint8(9),
  11930. Fval: uint16(157),
  11931. },
  11932. 372: {
  11933. Fop: uint8(20),
  11934. Fbits: uint8(7),
  11935. Fval: uint16(99),
  11936. },
  11937. 373: {
  11938. Fbits: uint8(8),
  11939. Fval: uint16(126),
  11940. },
  11941. 374: {
  11942. Fbits: uint8(8),
  11943. Fval: uint16(62),
  11944. },
  11945. 375: {
  11946. Fbits: uint8(9),
  11947. Fval: uint16(221),
  11948. },
  11949. 376: {
  11950. Fop: uint8(18),
  11951. Fbits: uint8(7),
  11952. Fval: uint16(27),
  11953. },
  11954. 377: {
  11955. Fbits: uint8(8),
  11956. Fval: uint16(110),
  11957. },
  11958. 378: {
  11959. Fbits: uint8(8),
  11960. Fval: uint16(46),
  11961. },
  11962. 379: {
  11963. Fbits: uint8(9),
  11964. Fval: uint16(189),
  11965. },
  11966. 380: {
  11967. Fbits: uint8(8),
  11968. Fval: uint16(14),
  11969. },
  11970. 381: {
  11971. Fbits: uint8(8),
  11972. Fval: uint16(142),
  11973. },
  11974. 382: {
  11975. Fbits: uint8(8),
  11976. Fval: uint16(78),
  11977. },
  11978. 383: {
  11979. Fbits: uint8(9),
  11980. Fval: uint16(253),
  11981. },
  11982. 384: {
  11983. Fop: uint8(96),
  11984. Fbits: uint8(7),
  11985. },
  11986. 385: {
  11987. Fbits: uint8(8),
  11988. Fval: uint16(81),
  11989. },
  11990. 386: {
  11991. Fbits: uint8(8),
  11992. Fval: uint16(17),
  11993. },
  11994. 387: {
  11995. Fop: uint8(21),
  11996. Fbits: uint8(8),
  11997. Fval: uint16(131),
  11998. },
  11999. 388: {
  12000. Fop: uint8(18),
  12001. Fbits: uint8(7),
  12002. Fval: uint16(31),
  12003. },
  12004. 389: {
  12005. Fbits: uint8(8),
  12006. Fval: uint16(113),
  12007. },
  12008. 390: {
  12009. Fbits: uint8(8),
  12010. Fval: uint16(49),
  12011. },
  12012. 391: {
  12013. Fbits: uint8(9),
  12014. Fval: uint16(195),
  12015. },
  12016. 392: {
  12017. Fop: uint8(16),
  12018. Fbits: uint8(7),
  12019. Fval: uint16(10),
  12020. },
  12021. 393: {
  12022. Fbits: uint8(8),
  12023. Fval: uint16(97),
  12024. },
  12025. 394: {
  12026. Fbits: uint8(8),
  12027. Fval: uint16(33),
  12028. },
  12029. 395: {
  12030. Fbits: uint8(9),
  12031. Fval: uint16(163),
  12032. },
  12033. 396: {
  12034. Fbits: uint8(8),
  12035. Fval: uint16(1),
  12036. },
  12037. 397: {
  12038. Fbits: uint8(8),
  12039. Fval: uint16(129),
  12040. },
  12041. 398: {
  12042. Fbits: uint8(8),
  12043. Fval: uint16(65),
  12044. },
  12045. 399: {
  12046. Fbits: uint8(9),
  12047. Fval: uint16(227),
  12048. },
  12049. 400: {
  12050. Fop: uint8(16),
  12051. Fbits: uint8(7),
  12052. Fval: uint16(6),
  12053. },
  12054. 401: {
  12055. Fbits: uint8(8),
  12056. Fval: uint16(89),
  12057. },
  12058. 402: {
  12059. Fbits: uint8(8),
  12060. Fval: uint16(25),
  12061. },
  12062. 403: {
  12063. Fbits: uint8(9),
  12064. Fval: uint16(147),
  12065. },
  12066. 404: {
  12067. Fop: uint8(19),
  12068. Fbits: uint8(7),
  12069. Fval: uint16(59),
  12070. },
  12071. 405: {
  12072. Fbits: uint8(8),
  12073. Fval: uint16(121),
  12074. },
  12075. 406: {
  12076. Fbits: uint8(8),
  12077. Fval: uint16(57),
  12078. },
  12079. 407: {
  12080. Fbits: uint8(9),
  12081. Fval: uint16(211),
  12082. },
  12083. 408: {
  12084. Fop: uint8(17),
  12085. Fbits: uint8(7),
  12086. Fval: uint16(17),
  12087. },
  12088. 409: {
  12089. Fbits: uint8(8),
  12090. Fval: uint16(105),
  12091. },
  12092. 410: {
  12093. Fbits: uint8(8),
  12094. Fval: uint16(41),
  12095. },
  12096. 411: {
  12097. Fbits: uint8(9),
  12098. Fval: uint16(179),
  12099. },
  12100. 412: {
  12101. Fbits: uint8(8),
  12102. Fval: uint16(9),
  12103. },
  12104. 413: {
  12105. Fbits: uint8(8),
  12106. Fval: uint16(137),
  12107. },
  12108. 414: {
  12109. Fbits: uint8(8),
  12110. Fval: uint16(73),
  12111. },
  12112. 415: {
  12113. Fbits: uint8(9),
  12114. Fval: uint16(243),
  12115. },
  12116. 416: {
  12117. Fop: uint8(16),
  12118. Fbits: uint8(7),
  12119. Fval: uint16(4),
  12120. },
  12121. 417: {
  12122. Fbits: uint8(8),
  12123. Fval: uint16(85),
  12124. },
  12125. 418: {
  12126. Fbits: uint8(8),
  12127. Fval: uint16(21),
  12128. },
  12129. 419: {
  12130. Fop: uint8(16),
  12131. Fbits: uint8(8),
  12132. Fval: uint16(258),
  12133. },
  12134. 420: {
  12135. Fop: uint8(19),
  12136. Fbits: uint8(7),
  12137. Fval: uint16(43),
  12138. },
  12139. 421: {
  12140. Fbits: uint8(8),
  12141. Fval: uint16(117),
  12142. },
  12143. 422: {
  12144. Fbits: uint8(8),
  12145. Fval: uint16(53),
  12146. },
  12147. 423: {
  12148. Fbits: uint8(9),
  12149. Fval: uint16(203),
  12150. },
  12151. 424: {
  12152. Fop: uint8(17),
  12153. Fbits: uint8(7),
  12154. Fval: uint16(13),
  12155. },
  12156. 425: {
  12157. Fbits: uint8(8),
  12158. Fval: uint16(101),
  12159. },
  12160. 426: {
  12161. Fbits: uint8(8),
  12162. Fval: uint16(37),
  12163. },
  12164. 427: {
  12165. Fbits: uint8(9),
  12166. Fval: uint16(171),
  12167. },
  12168. 428: {
  12169. Fbits: uint8(8),
  12170. Fval: uint16(5),
  12171. },
  12172. 429: {
  12173. Fbits: uint8(8),
  12174. Fval: uint16(133),
  12175. },
  12176. 430: {
  12177. Fbits: uint8(8),
  12178. Fval: uint16(69),
  12179. },
  12180. 431: {
  12181. Fbits: uint8(9),
  12182. Fval: uint16(235),
  12183. },
  12184. 432: {
  12185. Fop: uint8(16),
  12186. Fbits: uint8(7),
  12187. Fval: uint16(8),
  12188. },
  12189. 433: {
  12190. Fbits: uint8(8),
  12191. Fval: uint16(93),
  12192. },
  12193. 434: {
  12194. Fbits: uint8(8),
  12195. Fval: uint16(29),
  12196. },
  12197. 435: {
  12198. Fbits: uint8(9),
  12199. Fval: uint16(155),
  12200. },
  12201. 436: {
  12202. Fop: uint8(20),
  12203. Fbits: uint8(7),
  12204. Fval: uint16(83),
  12205. },
  12206. 437: {
  12207. Fbits: uint8(8),
  12208. Fval: uint16(125),
  12209. },
  12210. 438: {
  12211. Fbits: uint8(8),
  12212. Fval: uint16(61),
  12213. },
  12214. 439: {
  12215. Fbits: uint8(9),
  12216. Fval: uint16(219),
  12217. },
  12218. 440: {
  12219. Fop: uint8(18),
  12220. Fbits: uint8(7),
  12221. Fval: uint16(23),
  12222. },
  12223. 441: {
  12224. Fbits: uint8(8),
  12225. Fval: uint16(109),
  12226. },
  12227. 442: {
  12228. Fbits: uint8(8),
  12229. Fval: uint16(45),
  12230. },
  12231. 443: {
  12232. Fbits: uint8(9),
  12233. Fval: uint16(187),
  12234. },
  12235. 444: {
  12236. Fbits: uint8(8),
  12237. Fval: uint16(13),
  12238. },
  12239. 445: {
  12240. Fbits: uint8(8),
  12241. Fval: uint16(141),
  12242. },
  12243. 446: {
  12244. Fbits: uint8(8),
  12245. Fval: uint16(77),
  12246. },
  12247. 447: {
  12248. Fbits: uint8(9),
  12249. Fval: uint16(251),
  12250. },
  12251. 448: {
  12252. Fop: uint8(16),
  12253. Fbits: uint8(7),
  12254. Fval: uint16(3),
  12255. },
  12256. 449: {
  12257. Fbits: uint8(8),
  12258. Fval: uint16(83),
  12259. },
  12260. 450: {
  12261. Fbits: uint8(8),
  12262. Fval: uint16(19),
  12263. },
  12264. 451: {
  12265. Fop: uint8(21),
  12266. Fbits: uint8(8),
  12267. Fval: uint16(195),
  12268. },
  12269. 452: {
  12270. Fop: uint8(19),
  12271. Fbits: uint8(7),
  12272. Fval: uint16(35),
  12273. },
  12274. 453: {
  12275. Fbits: uint8(8),
  12276. Fval: uint16(115),
  12277. },
  12278. 454: {
  12279. Fbits: uint8(8),
  12280. Fval: uint16(51),
  12281. },
  12282. 455: {
  12283. Fbits: uint8(9),
  12284. Fval: uint16(199),
  12285. },
  12286. 456: {
  12287. Fop: uint8(17),
  12288. Fbits: uint8(7),
  12289. Fval: uint16(11),
  12290. },
  12291. 457: {
  12292. Fbits: uint8(8),
  12293. Fval: uint16(99),
  12294. },
  12295. 458: {
  12296. Fbits: uint8(8),
  12297. Fval: uint16(35),
  12298. },
  12299. 459: {
  12300. Fbits: uint8(9),
  12301. Fval: uint16(167),
  12302. },
  12303. 460: {
  12304. Fbits: uint8(8),
  12305. Fval: uint16(3),
  12306. },
  12307. 461: {
  12308. Fbits: uint8(8),
  12309. Fval: uint16(131),
  12310. },
  12311. 462: {
  12312. Fbits: uint8(8),
  12313. Fval: uint16(67),
  12314. },
  12315. 463: {
  12316. Fbits: uint8(9),
  12317. Fval: uint16(231),
  12318. },
  12319. 464: {
  12320. Fop: uint8(16),
  12321. Fbits: uint8(7),
  12322. Fval: uint16(7),
  12323. },
  12324. 465: {
  12325. Fbits: uint8(8),
  12326. Fval: uint16(91),
  12327. },
  12328. 466: {
  12329. Fbits: uint8(8),
  12330. Fval: uint16(27),
  12331. },
  12332. 467: {
  12333. Fbits: uint8(9),
  12334. Fval: uint16(151),
  12335. },
  12336. 468: {
  12337. Fop: uint8(20),
  12338. Fbits: uint8(7),
  12339. Fval: uint16(67),
  12340. },
  12341. 469: {
  12342. Fbits: uint8(8),
  12343. Fval: uint16(123),
  12344. },
  12345. 470: {
  12346. Fbits: uint8(8),
  12347. Fval: uint16(59),
  12348. },
  12349. 471: {
  12350. Fbits: uint8(9),
  12351. Fval: uint16(215),
  12352. },
  12353. 472: {
  12354. Fop: uint8(18),
  12355. Fbits: uint8(7),
  12356. Fval: uint16(19),
  12357. },
  12358. 473: {
  12359. Fbits: uint8(8),
  12360. Fval: uint16(107),
  12361. },
  12362. 474: {
  12363. Fbits: uint8(8),
  12364. Fval: uint16(43),
  12365. },
  12366. 475: {
  12367. Fbits: uint8(9),
  12368. Fval: uint16(183),
  12369. },
  12370. 476: {
  12371. Fbits: uint8(8),
  12372. Fval: uint16(11),
  12373. },
  12374. 477: {
  12375. Fbits: uint8(8),
  12376. Fval: uint16(139),
  12377. },
  12378. 478: {
  12379. Fbits: uint8(8),
  12380. Fval: uint16(75),
  12381. },
  12382. 479: {
  12383. Fbits: uint8(9),
  12384. Fval: uint16(247),
  12385. },
  12386. 480: {
  12387. Fop: uint8(16),
  12388. Fbits: uint8(7),
  12389. Fval: uint16(5),
  12390. },
  12391. 481: {
  12392. Fbits: uint8(8),
  12393. Fval: uint16(87),
  12394. },
  12395. 482: {
  12396. Fbits: uint8(8),
  12397. Fval: uint16(23),
  12398. },
  12399. 483: {
  12400. Fop: uint8(64),
  12401. Fbits: uint8(8),
  12402. },
  12403. 484: {
  12404. Fop: uint8(19),
  12405. Fbits: uint8(7),
  12406. Fval: uint16(51),
  12407. },
  12408. 485: {
  12409. Fbits: uint8(8),
  12410. Fval: uint16(119),
  12411. },
  12412. 486: {
  12413. Fbits: uint8(8),
  12414. Fval: uint16(55),
  12415. },
  12416. 487: {
  12417. Fbits: uint8(9),
  12418. Fval: uint16(207),
  12419. },
  12420. 488: {
  12421. Fop: uint8(17),
  12422. Fbits: uint8(7),
  12423. Fval: uint16(15),
  12424. },
  12425. 489: {
  12426. Fbits: uint8(8),
  12427. Fval: uint16(103),
  12428. },
  12429. 490: {
  12430. Fbits: uint8(8),
  12431. Fval: uint16(39),
  12432. },
  12433. 491: {
  12434. Fbits: uint8(9),
  12435. Fval: uint16(175),
  12436. },
  12437. 492: {
  12438. Fbits: uint8(8),
  12439. Fval: uint16(7),
  12440. },
  12441. 493: {
  12442. Fbits: uint8(8),
  12443. Fval: uint16(135),
  12444. },
  12445. 494: {
  12446. Fbits: uint8(8),
  12447. Fval: uint16(71),
  12448. },
  12449. 495: {
  12450. Fbits: uint8(9),
  12451. Fval: uint16(239),
  12452. },
  12453. 496: {
  12454. Fop: uint8(16),
  12455. Fbits: uint8(7),
  12456. Fval: uint16(9),
  12457. },
  12458. 497: {
  12459. Fbits: uint8(8),
  12460. Fval: uint16(95),
  12461. },
  12462. 498: {
  12463. Fbits: uint8(8),
  12464. Fval: uint16(31),
  12465. },
  12466. 499: {
  12467. Fbits: uint8(9),
  12468. Fval: uint16(159),
  12469. },
  12470. 500: {
  12471. Fop: uint8(20),
  12472. Fbits: uint8(7),
  12473. Fval: uint16(99),
  12474. },
  12475. 501: {
  12476. Fbits: uint8(8),
  12477. Fval: uint16(127),
  12478. },
  12479. 502: {
  12480. Fbits: uint8(8),
  12481. Fval: uint16(63),
  12482. },
  12483. 503: {
  12484. Fbits: uint8(9),
  12485. Fval: uint16(223),
  12486. },
  12487. 504: {
  12488. Fop: uint8(18),
  12489. Fbits: uint8(7),
  12490. Fval: uint16(27),
  12491. },
  12492. 505: {
  12493. Fbits: uint8(8),
  12494. Fval: uint16(111),
  12495. },
  12496. 506: {
  12497. Fbits: uint8(8),
  12498. Fval: uint16(47),
  12499. },
  12500. 507: {
  12501. Fbits: uint8(9),
  12502. Fval: uint16(191),
  12503. },
  12504. 508: {
  12505. Fbits: uint8(8),
  12506. Fval: uint16(15),
  12507. },
  12508. 509: {
  12509. Fbits: uint8(8),
  12510. Fval: uint16(143),
  12511. },
  12512. 510: {
  12513. Fbits: uint8(8),
  12514. Fval: uint16(79),
  12515. },
  12516. 511: {
  12517. Fbits: uint8(9),
  12518. Fval: uint16(255),
  12519. },
  12520. }
  12521. var _distfix1 = [32]Tcode{
  12522. 0: {
  12523. Fop: uint8(16),
  12524. Fbits: uint8(5),
  12525. Fval: uint16(1),
  12526. },
  12527. 1: {
  12528. Fop: uint8(23),
  12529. Fbits: uint8(5),
  12530. Fval: uint16(257),
  12531. },
  12532. 2: {
  12533. Fop: uint8(19),
  12534. Fbits: uint8(5),
  12535. Fval: uint16(17),
  12536. },
  12537. 3: {
  12538. Fop: uint8(27),
  12539. Fbits: uint8(5),
  12540. Fval: uint16(4097),
  12541. },
  12542. 4: {
  12543. Fop: uint8(17),
  12544. Fbits: uint8(5),
  12545. Fval: uint16(5),
  12546. },
  12547. 5: {
  12548. Fop: uint8(25),
  12549. Fbits: uint8(5),
  12550. Fval: uint16(1025),
  12551. },
  12552. 6: {
  12553. Fop: uint8(21),
  12554. Fbits: uint8(5),
  12555. Fval: uint16(65),
  12556. },
  12557. 7: {
  12558. Fop: uint8(29),
  12559. Fbits: uint8(5),
  12560. Fval: uint16(16385),
  12561. },
  12562. 8: {
  12563. Fop: uint8(16),
  12564. Fbits: uint8(5),
  12565. Fval: uint16(3),
  12566. },
  12567. 9: {
  12568. Fop: uint8(24),
  12569. Fbits: uint8(5),
  12570. Fval: uint16(513),
  12571. },
  12572. 10: {
  12573. Fop: uint8(20),
  12574. Fbits: uint8(5),
  12575. Fval: uint16(33),
  12576. },
  12577. 11: {
  12578. Fop: uint8(28),
  12579. Fbits: uint8(5),
  12580. Fval: uint16(8193),
  12581. },
  12582. 12: {
  12583. Fop: uint8(18),
  12584. Fbits: uint8(5),
  12585. Fval: uint16(9),
  12586. },
  12587. 13: {
  12588. Fop: uint8(26),
  12589. Fbits: uint8(5),
  12590. Fval: uint16(2049),
  12591. },
  12592. 14: {
  12593. Fop: uint8(22),
  12594. Fbits: uint8(5),
  12595. Fval: uint16(129),
  12596. },
  12597. 15: {
  12598. Fop: uint8(64),
  12599. Fbits: uint8(5),
  12600. },
  12601. 16: {
  12602. Fop: uint8(16),
  12603. Fbits: uint8(5),
  12604. Fval: uint16(2),
  12605. },
  12606. 17: {
  12607. Fop: uint8(23),
  12608. Fbits: uint8(5),
  12609. Fval: uint16(385),
  12610. },
  12611. 18: {
  12612. Fop: uint8(19),
  12613. Fbits: uint8(5),
  12614. Fval: uint16(25),
  12615. },
  12616. 19: {
  12617. Fop: uint8(27),
  12618. Fbits: uint8(5),
  12619. Fval: uint16(6145),
  12620. },
  12621. 20: {
  12622. Fop: uint8(17),
  12623. Fbits: uint8(5),
  12624. Fval: uint16(7),
  12625. },
  12626. 21: {
  12627. Fop: uint8(25),
  12628. Fbits: uint8(5),
  12629. Fval: uint16(1537),
  12630. },
  12631. 22: {
  12632. Fop: uint8(21),
  12633. Fbits: uint8(5),
  12634. Fval: uint16(97),
  12635. },
  12636. 23: {
  12637. Fop: uint8(29),
  12638. Fbits: uint8(5),
  12639. Fval: uint16(24577),
  12640. },
  12641. 24: {
  12642. Fop: uint8(16),
  12643. Fbits: uint8(5),
  12644. Fval: uint16(4),
  12645. },
  12646. 25: {
  12647. Fop: uint8(24),
  12648. Fbits: uint8(5),
  12649. Fval: uint16(769),
  12650. },
  12651. 26: {
  12652. Fop: uint8(20),
  12653. Fbits: uint8(5),
  12654. Fval: uint16(49),
  12655. },
  12656. 27: {
  12657. Fop: uint8(28),
  12658. Fbits: uint8(5),
  12659. Fval: uint16(12289),
  12660. },
  12661. 28: {
  12662. Fop: uint8(18),
  12663. Fbits: uint8(5),
  12664. Fval: uint16(13),
  12665. },
  12666. 29: {
  12667. Fop: uint8(26),
  12668. Fbits: uint8(5),
  12669. Fval: uint16(3073),
  12670. },
  12671. 30: {
  12672. Fop: uint8(22),
  12673. Fbits: uint8(5),
  12674. Fval: uint16(193),
  12675. },
  12676. 31: {
  12677. Fop: uint8(64),
  12678. Fbits: uint8(5),
  12679. },
  12680. }
  12681. // C documentation
  12682. //
  12683. // /*
  12684. // Update the window with the last wsize (normally 32K) bytes written before
  12685. // returning. If window does not exist yet, create it. This is only called
  12686. // when a window is already in use, or when output has been written during this
  12687. // inflate call, but the end of the deflate stream has not been reached yet.
  12688. // It is also called to create a window for dictionary data when a dictionary
  12689. // is loaded.
  12690. //
  12691. // Providing output buffers larger than 32K to inflate() should provide a speed
  12692. // advantage, since only the last 32K of output is copied to the sliding window
  12693. // upon return from inflate(), and since all distances after the first 32K of
  12694. // output will fall in the output data, making match copies simpler and faster.
  12695. // The advantage may be dependent on the size of the processor's data caches.
  12696. // */
  12697. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  12698. var dist uint32
  12699. var state uintptr
  12700. _, _ = dist, state
  12701. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12702. /* if it hasn't been done already, allocate space for the window */
  12703. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  12704. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  12705. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  12706. return int32(1)
  12707. }
  12708. }
  12709. /* if window not in use yet, initialize */
  12710. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  12711. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  12712. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12713. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  12714. }
  12715. /* copy state->wsize or less output bytes into the circular window */
  12716. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12717. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  12718. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12719. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12720. } else {
  12721. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  12722. if dist > copy1 {
  12723. dist = copy1
  12724. }
  12725. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(uint64(dist)))
  12726. copy1 -= dist
  12727. if copy1 != 0 {
  12728. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(uint64(copy1)))
  12729. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  12730. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12731. } else {
  12732. *(*uint32)(unsafe.Pointer(state + 68)) += dist
  12733. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12734. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12735. }
  12736. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12737. *(*uint32)(unsafe.Pointer(state + 64)) += dist
  12738. }
  12739. }
  12740. }
  12741. return 0
  12742. }
  12743. /* Macros for inflate(): */
  12744. /* check function to use adler32() for zlib or crc32() for gzip */
  12745. /* check macros for header crc */
  12746. /* Load registers with state in inflate() for speed */
  12747. /* Restore state from registers in inflate() */
  12748. /* Clear the input bit accumulator */
  12749. /* Get a byte of input into the bit accumulator, or return from inflate()
  12750. if there is no input available. */
  12751. /* Assure that there are at least n bits in the bit accumulator. If there is
  12752. not enough available input to do that, then return from inflate(). */
  12753. /* Return the low n bits of the bit accumulator (n < 16) */
  12754. /* Remove n bits from the bit accumulator */
  12755. /* Remove zero to seven bits as needed to go to a byte boundary */
  12756. /*
  12757. inflate() uses a state machine to process as much input data and generate as
  12758. much output data as possible before returning. The state machine is
  12759. structured roughly as follows:
  12760. for (;;) switch (state) {
  12761. ...
  12762. case STATEn:
  12763. if (not enough input data or output space to make progress)
  12764. return;
  12765. ... make progress ...
  12766. state = STATEm;
  12767. break;
  12768. ...
  12769. }
  12770. so when inflate() is called again, the same case is attempted again, and
  12771. if the appropriate resources are provided, the machine proceeds to the
  12772. next state. The NEEDBITS() macro is usually the way the state evaluates
  12773. whether it can proceed or should return. NEEDBITS() does the return if
  12774. the requested bits are not available. The typical use of the BITS macros
  12775. is:
  12776. NEEDBITS(n);
  12777. ... do something with BITS(n) ...
  12778. DROPBITS(n);
  12779. where NEEDBITS(n) either returns from inflate() if there isn't enough
  12780. input left to load n bits into the accumulator, or it continues. BITS(n)
  12781. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  12782. the low n bits off the accumulator. INITBITS() clears the accumulator
  12783. and sets the number of available bits to zero. BYTEBITS() discards just
  12784. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  12785. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  12786. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  12787. if there is no input available. The decoding of variable length codes uses
  12788. PULLBYTE() directly in order to pull just enough bytes to decode the next
  12789. code, and no more.
  12790. Some states loop until they get enough input, making sure that enough
  12791. state information is maintained to continue the loop where it left off
  12792. if NEEDBITS() returns in the loop. For example, want, need, and keep
  12793. would all have to actually be part of the saved state in case NEEDBITS()
  12794. returns:
  12795. case STATEw:
  12796. while (want < need) {
  12797. NEEDBITS(n);
  12798. keep[want++] = BITS(n);
  12799. DROPBITS(n);
  12800. }
  12801. state = STATEx;
  12802. case STATEx:
  12803. As shown above, if the next state is also the next case, then the break
  12804. is omitted.
  12805. A state may also return if there is not enough output space available to
  12806. complete that state. Those states are copying stored data, writing a
  12807. literal byte, and copying a matching string.
  12808. When returning, a "goto inf_leave" is used to update the total counters,
  12809. update the check value, and determine whether any progress has been made
  12810. during that inflate() call in order to return the proper return code.
  12811. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  12812. When there is a window, goto inf_leave will update the window with the last
  12813. output written. If a goto inf_leave occurs in the middle of decompression
  12814. and there is no window currently, goto inf_leave will create one and copy
  12815. output to the window for the next call of inflate().
  12816. In this implementation, the flush parameter of inflate() only affects the
  12817. return code (per zlib.h). inflate() always writes as much as possible to
  12818. strm->next_out, given the space available and the provided input--the effect
  12819. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  12820. the allocation of and copying into a sliding window until necessary, which
  12821. provides the effect documented in zlib.h for Z_FINISH when the entire input
  12822. stream available. So the only thing the flush parameter actually does is:
  12823. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  12824. will return Z_BUF_ERROR if it has not reached the end of the stream.
  12825. */
  12826. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  12827. bp := tls.Alloc(16)
  12828. defer tls.Free(16)
  12829. var bits, copy1, have, in, left, len1, out, v46, v48, v49, v50, v52, v53, v64, v66, v70, v75, v76, v90 uint32
  12830. var from, next, put, state, v100, v36, v42, v43, v44, v45, v51, v54, v55, v57, v60, v61, v62, v63, v65, v67, v69, v71, v72, v73, v74, v77, v79, v81, v82, v85, v87, v88, v92, v93, v94, v95, p83, p89 uintptr
  12831. var here, last Tcode
  12832. var hold, v101, v102, v37, v56, v58, v59, v96, v97, v98 uint64
  12833. var ret, v103, v104, v105, v38 int32
  12834. var v47, v99 bool
  12835. var _ /* hbuf at bp+0 */ [4]uint8
  12836. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, copy1, from, have, here, hold, in, last, left, len1, next, out, put, ret, state, v100, v101, v102, v103, v104, v105, v36, v37, v38, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v69, v70, v71, v72, v73, v74, v75, v76, v77, v79, v81, v82, v85, v87, v88, v90, v92, v93, v94, v95, v96, v97, v98, v99, p83, p89 /* buffer for gzip header crc calculation */
  12837. if _inflateStateCheck(tls, strm) != 0 || (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in == uintptr(m_Z_NULL) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  12838. return -int32(2)
  12839. }
  12840. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12841. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _TYPE {
  12842. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPEDO
  12843. } /* skip check */
  12844. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  12845. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  12846. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  12847. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  12848. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  12849. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  12850. in = have
  12851. out = left
  12852. ret = m_Z_OK
  12853. for {
  12854. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  12855. case _HEAD:
  12856. goto _2
  12857. case _FLAGS:
  12858. goto _3
  12859. case _TIME:
  12860. goto _4
  12861. case _OS:
  12862. goto _5
  12863. case _EXLEN:
  12864. goto _6
  12865. case _EXTRA:
  12866. goto _7
  12867. case _NAME:
  12868. goto _8
  12869. case _COMMENT:
  12870. goto _9
  12871. case _HCRC:
  12872. goto _10
  12873. case _DICTID:
  12874. goto _11
  12875. case _DICT:
  12876. goto _12
  12877. case _TYPE:
  12878. goto _13
  12879. case _TYPEDO:
  12880. goto _14
  12881. case _STORED:
  12882. goto _15
  12883. case _COPY_:
  12884. goto _16
  12885. case _COPY:
  12886. goto _17
  12887. case _TABLE:
  12888. goto _18
  12889. case _LENLENS:
  12890. goto _19
  12891. case _CODELENS:
  12892. goto _20
  12893. case _LEN_:
  12894. goto _21
  12895. case _LEN:
  12896. goto _22
  12897. case _LENEXT:
  12898. goto _23
  12899. case _DIST:
  12900. goto _24
  12901. case _DISTEXT:
  12902. goto _25
  12903. case _MATCH:
  12904. goto _26
  12905. case _LIT:
  12906. goto _27
  12907. case _CHECK:
  12908. goto _28
  12909. case _LENGTH:
  12910. goto _29
  12911. case _DONE:
  12912. goto _30
  12913. case _BAD:
  12914. goto _31
  12915. case _MEM:
  12916. goto _32
  12917. default:
  12918. goto _33
  12919. case _SYNC:
  12920. goto _34
  12921. }
  12922. goto _35
  12923. _2:
  12924. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  12925. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPEDO
  12926. goto _35
  12927. }
  12928. for bits < uint32(libc.Int32FromInt32(16)) {
  12929. if have == uint32(0) {
  12930. goto inf_leave
  12931. }
  12932. have--
  12933. v36 = next
  12934. next++
  12935. hold += uint64(*(*uint8)(unsafe.Pointer(v36))) << bits
  12936. bits += uint32(8)
  12937. }
  12938. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint64(0x8b1f) { /* gzip header */
  12939. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  12940. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  12941. }
  12942. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  12943. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  12944. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  12945. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  12946. hold = uint64(0)
  12947. bits = uint32(0)
  12948. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _FLAGS
  12949. goto _35
  12950. }
  12951. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  12952. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  12953. }
  12954. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint64(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint64(31) != 0 {
  12955. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 306
  12956. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  12957. goto _35
  12958. }
  12959. if uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  12960. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 329
  12961. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  12962. goto _35
  12963. }
  12964. hold >>= uint64(libc.Int32FromInt32(4))
  12965. bits -= uint32(libc.Int32FromInt32(4))
  12966. len1 = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  12967. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  12968. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  12969. }
  12970. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  12971. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 356
  12972. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  12973. goto _35
  12974. }
  12975. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  12976. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  12977. v37 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  12978. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  12979. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  12980. if hold&uint64(0x200) != 0 {
  12981. v38 = _DICTID
  12982. } else {
  12983. v38 = _TYPE
  12984. }
  12985. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  12986. hold = uint64(0)
  12987. bits = uint32(0)
  12988. goto _35
  12989. _3:
  12990. _41:
  12991. for bits < uint32(libc.Int32FromInt32(16)) {
  12992. if have == uint32(0) {
  12993. goto inf_leave
  12994. }
  12995. have--
  12996. v42 = next
  12997. next++
  12998. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  12999. bits += uint32(8)
  13000. }
  13001. goto _40
  13002. _40:
  13003. if 0 != 0 {
  13004. goto _41
  13005. }
  13006. goto _39
  13007. _39:
  13008. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = int32(hold)
  13009. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  13010. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 329
  13011. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13012. goto _35
  13013. }
  13014. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  13015. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 376
  13016. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13017. goto _35
  13018. }
  13019. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13020. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = int32(hold >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(1))
  13021. }
  13022. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13023. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13024. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13025. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13026. }
  13027. hold = uint64(0)
  13028. bits = uint32(0)
  13029. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TIME
  13030. /* fallthrough */
  13031. _4:
  13032. for bits < uint32(libc.Int32FromInt32(32)) {
  13033. if have == uint32(0) {
  13034. goto inf_leave
  13035. }
  13036. have--
  13037. v43 = next
  13038. next++
  13039. hold += uint64(*(*uint8)(unsafe.Pointer(v43))) << bits
  13040. bits += uint32(8)
  13041. }
  13042. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13043. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  13044. }
  13045. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13046. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13047. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13048. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  13049. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  13050. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  13051. }
  13052. hold = uint64(0)
  13053. bits = uint32(0)
  13054. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _OS
  13055. /* fallthrough */
  13056. _5:
  13057. for bits < uint32(libc.Int32FromInt32(16)) {
  13058. if have == uint32(0) {
  13059. goto inf_leave
  13060. }
  13061. have--
  13062. v44 = next
  13063. next++
  13064. hold += uint64(*(*uint8)(unsafe.Pointer(v44))) << bits
  13065. bits += uint32(8)
  13066. }
  13067. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13068. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = int32(hold & libc.Uint64FromInt32(0xff))
  13069. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = int32(hold >> libc.Int32FromInt32(8))
  13070. }
  13071. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13072. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13073. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13074. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13075. }
  13076. hold = uint64(0)
  13077. bits = uint32(0)
  13078. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _EXLEN
  13079. /* fallthrough */
  13080. _6:
  13081. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13082. for bits < uint32(libc.Int32FromInt32(16)) {
  13083. if have == uint32(0) {
  13084. goto inf_leave
  13085. }
  13086. have--
  13087. v45 = next
  13088. next++
  13089. hold += uint64(*(*uint8)(unsafe.Pointer(v45))) << bits
  13090. bits += uint32(8)
  13091. }
  13092. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold)
  13093. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13094. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = uint32(uint32(hold))
  13095. }
  13096. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13097. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13098. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13099. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13100. }
  13101. hold = uint64(0)
  13102. bits = uint32(0)
  13103. } else {
  13104. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13105. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  13106. }
  13107. }
  13108. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _EXTRA
  13109. /* fallthrough */
  13110. _7:
  13111. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13112. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13113. if copy1 > have {
  13114. copy1 = have
  13115. }
  13116. if copy1 != 0 {
  13117. if v47 = (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra != uintptr(m_Z_NULL); v47 {
  13118. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13119. len1 = v46
  13120. }
  13121. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13122. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13123. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  13124. } else {
  13125. v48 = copy1
  13126. }
  13127. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  13128. }
  13129. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13130. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13131. }
  13132. have -= copy1
  13133. next += uintptr(copy1)
  13134. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13135. }
  13136. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  13137. goto inf_leave
  13138. }
  13139. }
  13140. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13141. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _NAME
  13142. /* fallthrough */
  13143. _8:
  13144. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  13145. if have == uint32(0) {
  13146. goto inf_leave
  13147. }
  13148. copy1 = uint32(0)
  13149. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13150. v49 = copy1
  13151. copy1++
  13152. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  13153. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Flength < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname_max {
  13154. v51 = state + 92
  13155. v50 = *(*uint32)(unsafe.Pointer(v51))
  13156. *(*uint32)(unsafe.Pointer(v51))++
  13157. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(uint8(len1))
  13158. }
  13159. }
  13160. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13161. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13162. }
  13163. have -= copy1
  13164. next += uintptr(copy1)
  13165. if len1 != 0 {
  13166. goto inf_leave
  13167. }
  13168. } else {
  13169. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13170. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  13171. }
  13172. }
  13173. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13174. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _COMMENT
  13175. /* fallthrough */
  13176. _9:
  13177. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  13178. if have == uint32(0) {
  13179. goto inf_leave
  13180. }
  13181. copy1 = uint32(0)
  13182. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13183. v52 = copy1
  13184. copy1++
  13185. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  13186. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Flength < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomm_max {
  13187. v54 = state + 92
  13188. v53 = *(*uint32)(unsafe.Pointer(v54))
  13189. *(*uint32)(unsafe.Pointer(v54))++
  13190. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(uint8(len1))
  13191. }
  13192. }
  13193. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13194. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13195. }
  13196. have -= copy1
  13197. next += uintptr(copy1)
  13198. if len1 != 0 {
  13199. goto inf_leave
  13200. }
  13201. } else {
  13202. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13203. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  13204. }
  13205. }
  13206. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _HCRC
  13207. /* fallthrough */
  13208. _10:
  13209. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  13210. for bits < uint32(libc.Int32FromInt32(16)) {
  13211. if have == uint32(0) {
  13212. goto inf_leave
  13213. }
  13214. have--
  13215. v55 = next
  13216. next++
  13217. hold += uint64(*(*uint8)(unsafe.Pointer(v55))) << bits
  13218. bits += uint32(8)
  13219. }
  13220. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint64(0xffff) {
  13221. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 401
  13222. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13223. goto _35
  13224. }
  13225. hold = uint64(0)
  13226. bits = uint32(0)
  13227. }
  13228. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13229. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  13230. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  13231. }
  13232. v56 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13233. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  13234. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  13235. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  13236. goto _35
  13237. _11:
  13238. for bits < uint32(libc.Int32FromInt32(32)) {
  13239. if have == uint32(0) {
  13240. goto inf_leave
  13241. }
  13242. have--
  13243. v57 = next
  13244. next++
  13245. hold += uint64(*(*uint8)(unsafe.Pointer(v57))) << bits
  13246. bits += uint32(8)
  13247. }
  13248. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint64FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint64FromInt32(0xff00) + hold&libc.Uint64FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint64FromInt32(0xff)<<libc.Int32FromInt32(24)
  13249. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  13250. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  13251. hold = uint64(0)
  13252. bits = uint32(0)
  13253. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _DICT
  13254. /* fallthrough */
  13255. _12:
  13256. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  13257. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13258. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13259. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13260. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13261. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13262. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13263. return int32(m_Z_NEED_DICT)
  13264. }
  13265. v59 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13266. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  13267. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  13268. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  13269. /* fallthrough */
  13270. _13:
  13271. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  13272. goto inf_leave
  13273. }
  13274. /* fallthrough */
  13275. _14:
  13276. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13277. hold >>= uint64(bits & uint32(7))
  13278. bits -= bits & uint32(7)
  13279. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _CHECK
  13280. goto _35
  13281. }
  13282. for bits < uint32(libc.Int32FromInt32(3)) {
  13283. if have == uint32(0) {
  13284. goto inf_leave
  13285. }
  13286. have--
  13287. v60 = next
  13288. next++
  13289. hold += uint64(*(*uint8)(unsafe.Pointer(v60))) << bits
  13290. bits += uint32(8)
  13291. }
  13292. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(uint32(uint32(hold)) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  13293. hold >>= uint64(libc.Int32FromInt32(1))
  13294. bits -= uint32(libc.Int32FromInt32(1))
  13295. switch uint32(uint32(hold)) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  13296. case uint32(0):
  13297. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _STORED
  13298. case uint32(1):
  13299. _fixedtables1(tls, state)
  13300. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN_ /* decode codes */
  13301. if flush == int32(m_Z_TREES) {
  13302. hold >>= uint64(libc.Int32FromInt32(2))
  13303. bits -= uint32(libc.Int32FromInt32(2))
  13304. goto inf_leave
  13305. }
  13306. case uint32(2):
  13307. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TABLE
  13308. case uint32(3):
  13309. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 4
  13310. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13311. }
  13312. hold >>= uint64(libc.Int32FromInt32(2))
  13313. bits -= uint32(libc.Int32FromInt32(2))
  13314. goto _35
  13315. _15:
  13316. hold >>= uint64(bits & uint32(7))
  13317. bits -= bits & uint32(7) /* go to byte boundary */
  13318. for bits < uint32(libc.Int32FromInt32(32)) {
  13319. if have == uint32(0) {
  13320. goto inf_leave
  13321. }
  13322. have--
  13323. v61 = next
  13324. next++
  13325. hold += uint64(*(*uint8)(unsafe.Pointer(v61))) << bits
  13326. bits += uint32(8)
  13327. }
  13328. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  13329. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 23
  13330. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13331. goto _35
  13332. }
  13333. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(uint32(hold)) & uint32(0xffff)
  13334. hold = uint64(0)
  13335. bits = uint32(0)
  13336. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _COPY_
  13337. if flush == int32(m_Z_TREES) {
  13338. goto inf_leave
  13339. }
  13340. /* fallthrough */
  13341. _16:
  13342. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _COPY
  13343. /* fallthrough */
  13344. _17:
  13345. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13346. if copy1 != 0 {
  13347. if copy1 > have {
  13348. copy1 = have
  13349. }
  13350. if copy1 > left {
  13351. copy1 = left
  13352. }
  13353. if copy1 == uint32(0) {
  13354. goto inf_leave
  13355. }
  13356. libc.Xmemcpy(tls, put, next, uint64(uint64(copy1)))
  13357. have -= copy1
  13358. next += uintptr(copy1)
  13359. left -= copy1
  13360. put += uintptr(copy1)
  13361. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13362. goto _35
  13363. }
  13364. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  13365. goto _35
  13366. _18:
  13367. for bits < uint32(libc.Int32FromInt32(14)) {
  13368. if have == uint32(0) {
  13369. goto inf_leave
  13370. }
  13371. have--
  13372. v62 = next
  13373. next++
  13374. hold += uint64(*(*uint8)(unsafe.Pointer(v62))) << bits
  13375. bits += uint32(8)
  13376. }
  13377. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  13378. hold >>= uint64(libc.Int32FromInt32(5))
  13379. bits -= uint32(libc.Int32FromInt32(5))
  13380. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  13381. hold >>= uint64(libc.Int32FromInt32(5))
  13382. bits -= uint32(libc.Int32FromInt32(5))
  13383. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  13384. hold >>= uint64(libc.Int32FromInt32(4))
  13385. bits -= uint32(libc.Int32FromInt32(4))
  13386. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  13387. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 52
  13388. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13389. goto _35
  13390. }
  13391. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13392. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LENLENS
  13393. /* fallthrough */
  13394. _19:
  13395. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  13396. for bits < uint32(libc.Int32FromInt32(3)) {
  13397. if have == uint32(0) {
  13398. goto inf_leave
  13399. }
  13400. have--
  13401. v63 = next
  13402. next++
  13403. hold += uint64(*(*uint8)(unsafe.Pointer(v63))) << bits
  13404. bits += uint32(8)
  13405. }
  13406. v65 = state + 140
  13407. v64 = *(*uint32)(unsafe.Pointer(v65))
  13408. *(*uint32)(unsafe.Pointer(v65))++
  13409. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v64])*2)) = uint16(uint32(uint32(hold)) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  13410. hold >>= uint64(libc.Int32FromInt32(3))
  13411. bits -= uint32(libc.Int32FromInt32(3))
  13412. }
  13413. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  13414. v67 = state + 140
  13415. v66 = *(*uint32)(unsafe.Pointer(v67))
  13416. *(*uint32)(unsafe.Pointer(v67))++
  13417. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v66])*2)) = uint16(0)
  13418. }
  13419. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13420. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13421. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  13422. ret = Xinflate_table(tls, _CODES, state+152, uint32(19), state+144, state+120, state+792)
  13423. if ret != 0 {
  13424. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 88
  13425. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13426. goto _35
  13427. }
  13428. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13429. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _CODELENS
  13430. /* fallthrough */
  13431. _20:
  13432. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13433. for {
  13434. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13435. if uint32(here.Fbits) <= bits {
  13436. break
  13437. }
  13438. if have == uint32(0) {
  13439. goto inf_leave
  13440. }
  13441. have--
  13442. v69 = next
  13443. next++
  13444. hold += uint64(*(*uint8)(unsafe.Pointer(v69))) << bits
  13445. bits += uint32(8)
  13446. goto _68
  13447. _68:
  13448. }
  13449. if int32(here.Fval) < int32(16) {
  13450. hold >>= uint64(here.Fbits)
  13451. bits -= uint32(here.Fbits)
  13452. v71 = state + 140
  13453. v70 = *(*uint32)(unsafe.Pointer(v71))
  13454. *(*uint32)(unsafe.Pointer(v71))++
  13455. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v70)*2)) = here.Fval
  13456. } else {
  13457. if int32(here.Fval) == int32(16) {
  13458. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  13459. if have == uint32(0) {
  13460. goto inf_leave
  13461. }
  13462. have--
  13463. v72 = next
  13464. next++
  13465. hold += uint64(*(*uint8)(unsafe.Pointer(v72))) << bits
  13466. bits += uint32(8)
  13467. }
  13468. hold >>= uint64(here.Fbits)
  13469. bits -= uint32(here.Fbits)
  13470. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  13471. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  13472. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13473. break
  13474. }
  13475. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  13476. copy1 = uint32(3) + uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  13477. hold >>= uint64(libc.Int32FromInt32(2))
  13478. bits -= uint32(libc.Int32FromInt32(2))
  13479. } else {
  13480. if int32(here.Fval) == int32(17) {
  13481. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  13482. if have == uint32(0) {
  13483. goto inf_leave
  13484. }
  13485. have--
  13486. v73 = next
  13487. next++
  13488. hold += uint64(*(*uint8)(unsafe.Pointer(v73))) << bits
  13489. bits += uint32(8)
  13490. }
  13491. hold >>= uint64(here.Fbits)
  13492. bits -= uint32(here.Fbits)
  13493. len1 = uint32(0)
  13494. copy1 = uint32(3) + uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  13495. hold >>= uint64(libc.Int32FromInt32(3))
  13496. bits -= uint32(libc.Int32FromInt32(3))
  13497. } else {
  13498. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  13499. if have == uint32(0) {
  13500. goto inf_leave
  13501. }
  13502. have--
  13503. v74 = next
  13504. next++
  13505. hold += uint64(*(*uint8)(unsafe.Pointer(v74))) << bits
  13506. bits += uint32(8)
  13507. }
  13508. hold >>= uint64(here.Fbits)
  13509. bits -= uint32(here.Fbits)
  13510. len1 = uint32(0)
  13511. copy1 = uint32(11) + uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  13512. hold >>= uint64(libc.Int32FromInt32(7))
  13513. bits -= uint32(libc.Int32FromInt32(7))
  13514. }
  13515. }
  13516. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13517. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 113
  13518. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13519. break
  13520. }
  13521. for {
  13522. v75 = copy1
  13523. copy1--
  13524. if !(v75 != 0) {
  13525. break
  13526. }
  13527. v77 = state + 140
  13528. v76 = *(*uint32)(unsafe.Pointer(v77))
  13529. *(*uint32)(unsafe.Pointer(v77))++
  13530. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v76)*2)) = uint16(uint16(len1))
  13531. }
  13532. }
  13533. }
  13534. /* handle error breaks in while */
  13535. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _BAD {
  13536. goto _35
  13537. }
  13538. /* check for end-of-block code (better have one) */
  13539. if int32(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  13540. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 139
  13541. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13542. goto _35
  13543. }
  13544. /* build code tables -- note: do not change the lenbits or distbits
  13545. values here (9 and 6) without reading the comments in inftrees.h
  13546. concerning the ENOUGH constants, which depend on those values */
  13547. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13548. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13549. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  13550. ret = Xinflate_table(tls, _LENS, state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  13551. if ret != 0 {
  13552. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 176
  13553. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13554. goto _35
  13555. }
  13556. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13557. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  13558. ret = Xinflate_table(tls, _DISTS, state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  13559. if ret != 0 {
  13560. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 204
  13561. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13562. goto _35
  13563. }
  13564. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN_
  13565. if flush == int32(m_Z_TREES) {
  13566. goto inf_leave
  13567. }
  13568. /* fallthrough */
  13569. _21:
  13570. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN
  13571. /* fallthrough */
  13572. _22:
  13573. if have >= uint32(6) && left >= uint32(258) {
  13574. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13575. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13576. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13577. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13578. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13579. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13580. Xinflate_fast(tls, strm, out)
  13581. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13582. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13583. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13584. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13585. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13586. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13587. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _TYPE {
  13588. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13589. }
  13590. goto _35
  13591. }
  13592. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  13593. for {
  13594. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13595. if uint32(here.Fbits) <= bits {
  13596. break
  13597. }
  13598. if have == uint32(0) {
  13599. goto inf_leave
  13600. }
  13601. have--
  13602. v79 = next
  13603. next++
  13604. hold += uint64(*(*uint8)(unsafe.Pointer(v79))) << bits
  13605. bits += uint32(8)
  13606. goto _78
  13607. _78:
  13608. }
  13609. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  13610. last = here
  13611. for {
  13612. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(uint32(hold))&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  13613. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  13614. break
  13615. }
  13616. if have == uint32(0) {
  13617. goto inf_leave
  13618. }
  13619. have--
  13620. v81 = next
  13621. next++
  13622. hold += uint64(*(*uint8)(unsafe.Pointer(v81))) << bits
  13623. bits += uint32(8)
  13624. goto _80
  13625. _80:
  13626. }
  13627. hold >>= uint64(last.Fbits)
  13628. bits -= uint32(last.Fbits)
  13629. *(*int32)(unsafe.Pointer(state + 7148)) += int32(last.Fbits)
  13630. }
  13631. hold >>= uint64(here.Fbits)
  13632. bits -= uint32(here.Fbits)
  13633. *(*int32)(unsafe.Pointer(state + 7148)) += int32(here.Fbits)
  13634. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  13635. if int32(here.Fop) == 0 {
  13636. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LIT
  13637. goto _35
  13638. }
  13639. if int32(here.Fop)&int32(32) != 0 {
  13640. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13641. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  13642. goto _35
  13643. }
  13644. if int32(here.Fop)&int32(64) != 0 {
  13645. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 226
  13646. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13647. goto _35
  13648. }
  13649. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  13650. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LENEXT
  13651. /* fallthrough */
  13652. _23:
  13653. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  13654. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  13655. if have == uint32(0) {
  13656. goto inf_leave
  13657. }
  13658. have--
  13659. v82 = next
  13660. next++
  13661. hold += uint64(*(*uint8)(unsafe.Pointer(v82))) << bits
  13662. bits += uint32(8)
  13663. }
  13664. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(uint32(hold)) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  13665. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13666. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13667. p83 = state + 7148
  13668. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13669. }
  13670. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13671. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _DIST
  13672. /* fallthrough */
  13673. _24:
  13674. for {
  13675. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(uint32(hold))&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  13676. if uint32(here.Fbits) <= bits {
  13677. break
  13678. }
  13679. if have == uint32(0) {
  13680. goto inf_leave
  13681. }
  13682. have--
  13683. v85 = next
  13684. next++
  13685. hold += uint64(*(*uint8)(unsafe.Pointer(v85))) << bits
  13686. bits += uint32(8)
  13687. goto _84
  13688. _84:
  13689. }
  13690. if int32(here.Fop)&int32(0xf0) == 0 {
  13691. last = here
  13692. for {
  13693. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(uint32(hold))&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  13694. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  13695. break
  13696. }
  13697. if have == uint32(0) {
  13698. goto inf_leave
  13699. }
  13700. have--
  13701. v87 = next
  13702. next++
  13703. hold += uint64(*(*uint8)(unsafe.Pointer(v87))) << bits
  13704. bits += uint32(8)
  13705. goto _86
  13706. _86:
  13707. }
  13708. hold >>= uint64(last.Fbits)
  13709. bits -= uint32(last.Fbits)
  13710. *(*int32)(unsafe.Pointer(state + 7148)) += int32(last.Fbits)
  13711. }
  13712. hold >>= uint64(here.Fbits)
  13713. bits -= uint32(here.Fbits)
  13714. *(*int32)(unsafe.Pointer(state + 7148)) += int32(here.Fbits)
  13715. if int32(here.Fop)&int32(64) != 0 {
  13716. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 254
  13717. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13718. goto _35
  13719. }
  13720. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  13721. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  13722. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _DISTEXT
  13723. /* fallthrough */
  13724. _25:
  13725. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  13726. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  13727. if have == uint32(0) {
  13728. goto inf_leave
  13729. }
  13730. have--
  13731. v88 = next
  13732. next++
  13733. hold += uint64(*(*uint8)(unsafe.Pointer(v88))) << bits
  13734. bits += uint32(8)
  13735. }
  13736. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(uint32(hold)) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  13737. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13738. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13739. p89 = state + 7148
  13740. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13741. }
  13742. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _MATCH
  13743. /* fallthrough */
  13744. _26:
  13745. if left == uint32(0) {
  13746. goto inf_leave
  13747. }
  13748. copy1 = out - left
  13749. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  13750. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  13751. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  13752. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  13753. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 276
  13754. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13755. goto _35
  13756. }
  13757. }
  13758. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  13759. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  13760. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  13761. } else {
  13762. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  13763. }
  13764. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  13765. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13766. }
  13767. } else { /* copy from output */
  13768. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  13769. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13770. }
  13771. if copy1 > left {
  13772. copy1 = left
  13773. }
  13774. left -= copy1
  13775. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13776. for {
  13777. v92 = put
  13778. put++
  13779. v93 = from
  13780. from++
  13781. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  13782. goto _91
  13783. _91:
  13784. copy1--
  13785. v90 = copy1
  13786. if !(v90 != 0) {
  13787. break
  13788. }
  13789. }
  13790. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  13791. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN
  13792. }
  13793. goto _35
  13794. _27:
  13795. if left == uint32(0) {
  13796. goto inf_leave
  13797. }
  13798. v94 = put
  13799. put++
  13800. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  13801. left--
  13802. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LEN
  13803. goto _35
  13804. _28:
  13805. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  13806. for bits < uint32(libc.Int32FromInt32(32)) {
  13807. if have == uint32(0) {
  13808. goto inf_leave
  13809. }
  13810. have--
  13811. v95 = next
  13812. next++
  13813. hold += uint64(*(*uint8)(unsafe.Pointer(v95))) << bits
  13814. bits += uint32(8)
  13815. }
  13816. out -= left
  13817. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(uint64(out))
  13818. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(uint64(out))
  13819. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  13820. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  13821. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  13822. } else {
  13823. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  13824. }
  13825. v96 = v97
  13826. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  13827. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  13828. }
  13829. out = left
  13830. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  13831. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  13832. v98 = hold
  13833. } else {
  13834. v98 = hold>>int32(24)&uint64(0xff) + hold>>int32(8)&uint64(0xff00) + hold&uint64(0xff00)<<int32(8) + hold&uint64(0xff)<<int32(24)
  13835. }
  13836. }
  13837. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  13838. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 421
  13839. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13840. goto _35
  13841. }
  13842. hold = uint64(0)
  13843. bits = uint32(0)
  13844. }
  13845. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _LENGTH
  13846. /* fallthrough */
  13847. _29:
  13848. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  13849. for bits < uint32(libc.Int32FromInt32(32)) {
  13850. if have == uint32(0) {
  13851. goto inf_leave
  13852. }
  13853. have--
  13854. v100 = next
  13855. next++
  13856. hold += uint64(*(*uint8)(unsafe.Pointer(v100))) << bits
  13857. bits += uint32(8)
  13858. }
  13859. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint64(0xffffffff) {
  13860. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 442
  13861. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _BAD
  13862. goto _35
  13863. }
  13864. hold = uint64(0)
  13865. bits = uint32(0)
  13866. }
  13867. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _DONE
  13868. /* fallthrough */
  13869. _30:
  13870. ret = int32(m_Z_STREAM_END)
  13871. goto inf_leave
  13872. _31:
  13873. ret = -int32(3)
  13874. goto inf_leave
  13875. _32:
  13876. return -int32(4)
  13877. _34:
  13878. /* fallthrough */
  13879. _33:
  13880. return -int32(2)
  13881. _35:
  13882. goto _1
  13883. _1:
  13884. }
  13885. /*
  13886. Return from inflate(), updating the total counts and the check value.
  13887. If there was no progress during the inflate() call, return a buffer
  13888. error. Call updatewindow() to create and/or update the window state.
  13889. Note: a memory error from inflate() is non-recoverable.
  13890. */
  13891. inf_leave:
  13892. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13893. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13894. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13895. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13896. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13897. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13898. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize != 0 || out != (*Tz_stream)(unsafe.Pointer(strm)).Favail_out && (*Tinflate_state)(unsafe.Pointer(state)).Fmode < _BAD && ((*Tinflate_state)(unsafe.Pointer(state)).Fmode < _CHECK || flush != int32(m_Z_FINISH)) {
  13899. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  13900. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _MEM
  13901. return -int32(4)
  13902. }
  13903. }
  13904. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13905. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13906. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(uint64(in))
  13907. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(uint64(out))
  13908. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(uint64(out))
  13909. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  13910. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  13911. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  13912. } else {
  13913. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  13914. }
  13915. v101 = v102
  13916. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  13917. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  13918. }
  13919. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13920. v103 = int32(64)
  13921. } else {
  13922. v103 = 0
  13923. }
  13924. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _TYPE {
  13925. v104 = int32(128)
  13926. } else {
  13927. v104 = 0
  13928. }
  13929. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _LEN_ || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _COPY_ {
  13930. v105 = int32(256)
  13931. } else {
  13932. v105 = 0
  13933. }
  13934. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  13935. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  13936. ret = -int32(5)
  13937. }
  13938. return ret
  13939. }
  13940. var _order1 = [19]uint16{
  13941. 0: uint16(16),
  13942. 1: uint16(17),
  13943. 2: uint16(18),
  13944. 4: uint16(8),
  13945. 5: uint16(7),
  13946. 6: uint16(9),
  13947. 7: uint16(6),
  13948. 8: uint16(10),
  13949. 9: uint16(5),
  13950. 10: uint16(11),
  13951. 11: uint16(4),
  13952. 12: uint16(12),
  13953. 13: uint16(3),
  13954. 14: uint16(13),
  13955. 15: uint16(2),
  13956. 16: uint16(14),
  13957. 17: uint16(1),
  13958. 18: uint16(15),
  13959. }
  13960. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  13961. var state uintptr
  13962. _ = state
  13963. if _inflateStateCheck(tls, strm) != 0 {
  13964. return -int32(2)
  13965. }
  13966. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13967. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  13968. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow)
  13969. }
  13970. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  13971. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  13972. return m_Z_OK
  13973. }
  13974. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  13975. var state uintptr
  13976. _ = state
  13977. /* check state */
  13978. if _inflateStateCheck(tls, strm) != 0 {
  13979. return -int32(2)
  13980. }
  13981. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13982. /* copy dictionary */
  13983. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  13984. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  13985. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  13986. }
  13987. if dictLength != uintptr(m_Z_NULL) {
  13988. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  13989. }
  13990. return m_Z_OK
  13991. }
  13992. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  13993. var dictid uint64
  13994. var ret int32
  13995. var state uintptr
  13996. _, _, _ = dictid, ret, state
  13997. /* check state */
  13998. if _inflateStateCheck(tls, strm) != 0 {
  13999. return -int32(2)
  14000. }
  14001. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14002. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != _DICT {
  14003. return -int32(2)
  14004. }
  14005. /* check for correct dictionary identifier */
  14006. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _DICT {
  14007. dictid = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14008. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  14009. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14010. return -int32(3)
  14011. }
  14012. }
  14013. /* copy dictionary to window using updatewindow(), which will amend the
  14014. existing dictionary if appropriate */
  14015. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  14016. if ret != 0 {
  14017. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _MEM
  14018. return -int32(4)
  14019. }
  14020. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  14021. return m_Z_OK
  14022. }
  14023. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  14024. var state uintptr
  14025. _ = state
  14026. /* check state */
  14027. if _inflateStateCheck(tls, strm) != 0 {
  14028. return -int32(2)
  14029. }
  14030. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14031. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  14032. return -int32(2)
  14033. }
  14034. /* save header structure */
  14035. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  14036. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  14037. return m_Z_OK
  14038. }
  14039. // C documentation
  14040. //
  14041. // /*
  14042. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  14043. // or when out of input. When called, *have is the number of pattern bytes
  14044. // found in order so far, in 0..3. On return *have is updated to the new
  14045. // state. If on return *have equals four, then the pattern was found and the
  14046. // return value is how many bytes were read including the last byte of the
  14047. // pattern. If *have is less than four, then the pattern has not been found
  14048. // yet and the return value is len. In the latter case, syncsearch() can be
  14049. // called again with more data and the *have state. *have is initialized to
  14050. // zero for the first call.
  14051. // */
  14052. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  14053. var got, next uint32
  14054. var v1 int32
  14055. _, _, _ = got, next, v1
  14056. got = *(*uint32)(unsafe.Pointer(have))
  14057. next = uint32(0)
  14058. for next < len1 && got < uint32(4) {
  14059. if got < uint32(2) {
  14060. v1 = 0
  14061. } else {
  14062. v1 = int32(0xff)
  14063. }
  14064. if int32(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  14065. got++
  14066. } else {
  14067. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  14068. got = uint32(0)
  14069. } else {
  14070. got = uint32(4) - got
  14071. }
  14072. }
  14073. next++
  14074. }
  14075. *(*uint32)(unsafe.Pointer(have)) = got
  14076. return next
  14077. }
  14078. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14079. bp := tls.Alloc(16)
  14080. defer tls.Free(16)
  14081. var flags int32
  14082. var in, out uint64
  14083. var len1, v1 uint32
  14084. var state uintptr
  14085. var _ /* buf at bp+0 */ [4]uint8
  14086. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  14087. /* check parameters */
  14088. if _inflateStateCheck(tls, strm) != 0 {
  14089. return -int32(2)
  14090. }
  14091. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14092. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  14093. return -int32(5)
  14094. }
  14095. /* if first time, start search in bit buffer */
  14096. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != _SYNC {
  14097. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _SYNC
  14098. *(*uint64)(unsafe.Pointer(state + 80)) <<= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7))
  14099. *(*uint32)(unsafe.Pointer(state + 88)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  14100. len1 = uint32(0)
  14101. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  14102. v1 = len1
  14103. len1++
  14104. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  14105. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64(8)
  14106. *(*uint32)(unsafe.Pointer(state + 88)) -= uint32(8)
  14107. }
  14108. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  14109. _syncsearch(tls, state+140, bp, len1)
  14110. }
  14111. /* search available input */
  14112. len1 = _syncsearch(tls, state+140, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  14113. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  14114. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  14115. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(uint64(len1))
  14116. /* return no joy or set up to restart inflate() on a new block */
  14117. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  14118. return -int32(3)
  14119. }
  14120. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  14121. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  14122. } else {
  14123. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14124. } /* no point in computing a check value now */
  14125. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  14126. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  14127. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  14128. XinflateReset(tls, strm)
  14129. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  14130. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  14131. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  14132. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = _TYPE
  14133. return m_Z_OK
  14134. }
  14135. // C documentation
  14136. //
  14137. // /*
  14138. // Returns true if inflate is currently at the end of a block generated by
  14139. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  14140. // implementation to provide an additional safety check. PPP uses
  14141. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  14142. // block. When decompressing, PPP checks that at the end of input packet,
  14143. // inflate is waiting for these length bytes.
  14144. // */
  14145. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14146. var state uintptr
  14147. _ = state
  14148. if _inflateStateCheck(tls, strm) != 0 {
  14149. return -int32(2)
  14150. }
  14151. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14152. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == _STORED && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  14153. }
  14154. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  14155. var copy1, state, window uintptr
  14156. var wsize uint32
  14157. _, _, _, _ = copy1, state, window, wsize
  14158. /* check input */
  14159. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  14160. return -int32(2)
  14161. }
  14162. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  14163. /* allocate space */
  14164. copy1 = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  14165. if copy1 == uintptr(m_Z_NULL) {
  14166. return -int32(4)
  14167. }
  14168. window = uintptr(m_Z_NULL)
  14169. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14170. window = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  14171. if window == uintptr(m_Z_NULL) {
  14172. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  14173. return -int32(4)
  14174. }
  14175. }
  14176. /* copy state */
  14177. libc.Xmemcpy(tls, dest, source, uint64(112))
  14178. libc.Xmemcpy(tls, copy1, state, uint64(7160))
  14179. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  14180. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1368 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1368+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  14181. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14182. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14183. }
  14184. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14185. if window != uintptr(m_Z_NULL) {
  14186. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14187. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(uint64(wsize)))
  14188. }
  14189. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  14190. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  14191. return m_Z_OK
  14192. }
  14193. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  14194. var state uintptr
  14195. _ = state
  14196. if _inflateStateCheck(tls, strm) != 0 {
  14197. return -int32(2)
  14198. }
  14199. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14200. _ = subvert
  14201. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  14202. return -int32(3)
  14203. }
  14204. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  14205. var state uintptr
  14206. _ = state
  14207. if _inflateStateCheck(tls, strm) != 0 {
  14208. return -int32(2)
  14209. }
  14210. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14211. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14212. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  14213. } else {
  14214. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14215. }
  14216. return m_Z_OK
  14217. }
  14218. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int64) {
  14219. var state uintptr
  14220. var v1, v2 uint32
  14221. _, _, _ = state, v1, v2
  14222. if _inflateStateCheck(tls, strm) != 0 {
  14223. return -(libc.Int64FromInt64(1) << libc.Int32FromInt32(16))
  14224. }
  14225. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14226. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _COPY {
  14227. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14228. } else {
  14229. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == _MATCH {
  14230. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14231. } else {
  14232. v2 = uint32(0)
  14233. }
  14234. v1 = v2
  14235. }
  14236. return int64(uint64(int64((*Tinflate_state)(unsafe.Pointer(state)).Fback))<<libc.Int32FromInt32(16)) + int64(v1)
  14237. }
  14238. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint64) {
  14239. var state uintptr
  14240. _ = state
  14241. if _inflateStateCheck(tls, strm) != 0 {
  14242. return uint64(-libc.Int32FromInt32(1))
  14243. }
  14244. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14245. return uint64((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1368)) / 4)
  14246. }
  14247. const m_MAXBITS = 15
  14248. /*
  14249. If you use the zlib library in a product, an acknowledgment is welcome
  14250. in the documentation of your product. If for some reason you cannot
  14251. include such an acknowledgment, I would appreciate that you keep this
  14252. copyright string in the executable of your product.
  14253. */
  14254. // C documentation
  14255. //
  14256. // /*
  14257. // Build a set of tables to decode the provided canonical Huffman code.
  14258. // The code lengths are lens[0..codes-1]. The result starts at *table,
  14259. // whose indices are 0..2^bits-1. work is a writable array of at least
  14260. // lens shorts, which is used as a work area. type is the type of code
  14261. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  14262. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  14263. // on return points to the next available entry's address. bits is the
  14264. // requested root table index bits, and on return it is the actual root
  14265. // table index bits. It will differ if the request is greater than the
  14266. // longest code or if it is less than the shortest code.
  14267. // */
  14268. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  14269. bp := tls.Alloc(64)
  14270. defer tls.Free(64)
  14271. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  14272. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  14273. var here Tcode
  14274. var left int32
  14275. var v12, v16 uint16
  14276. var _ /* count at bp+0 */ [16]uint16
  14277. var _ /* offs at bp+32 */ [16]uint16
  14278. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, curr, drop, extra, fill, here, huff, incr, left, len1, low, mask, match, max, min, next, root, sym, used, v12, v13, v14, v16, v17, v4, v5, v6, v7 /* offsets in table for each length */
  14279. /*
  14280. Process a set of code lengths to create a canonical Huffman code. The
  14281. code lengths are lens[0..codes-1]. Each length corresponds to the
  14282. symbols 0..codes-1. The Huffman code is generated by first sorting the
  14283. symbols by length from short to long, and retaining the symbol order
  14284. for codes with equal lengths. Then the code starts with all zero bits
  14285. for the first code of the shortest length, and the codes are integer
  14286. increments for the same length, and zeros are appended as the length
  14287. increases. For the deflate format, these bits are stored backwards
  14288. from their more natural integer increment ordering, and so when the
  14289. decoding tables are built in the large loop below, the integer codes
  14290. are incremented backwards.
  14291. This routine assumes, but does not check, that all of the entries in
  14292. lens[] are in the range 0..MAXBITS. The caller must assure this.
  14293. 1..MAXBITS is interpreted as that code length. zero means that that
  14294. symbol does not occur in this code.
  14295. The codes are sorted by computing a count of codes for each length,
  14296. creating from that a table of starting indices for each length in the
  14297. sorted table, and then entering the symbols in order in the sorted
  14298. table. The sorted table is work[], with that space being provided by
  14299. the caller.
  14300. The length counts are used for other purposes as well, i.e. finding
  14301. the minimum and maximum length codes, determining if there are any
  14302. codes at all, checking for a valid set of lengths, and looking ahead
  14303. at length counts to determine sub-table sizes when building the
  14304. decoding tables.
  14305. */
  14306. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  14307. len1 = uint32(0)
  14308. for {
  14309. if !(len1 <= uint32(m_MAXBITS)) {
  14310. break
  14311. }
  14312. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  14313. goto _1
  14314. _1:
  14315. len1++
  14316. }
  14317. sym = uint32(0)
  14318. for {
  14319. if !(sym < codes) {
  14320. break
  14321. }
  14322. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  14323. goto _2
  14324. _2:
  14325. sym++
  14326. }
  14327. /* bound code lengths, force root to be within code lengths */
  14328. root = *(*uint32)(unsafe.Pointer(bits))
  14329. max = uint32(m_MAXBITS)
  14330. for {
  14331. if !(max >= uint32(1)) {
  14332. break
  14333. }
  14334. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  14335. break
  14336. }
  14337. goto _3
  14338. _3:
  14339. max--
  14340. }
  14341. if root > max {
  14342. root = max
  14343. }
  14344. if max == uint32(0) { /* no symbols to code at all */
  14345. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14346. here.Fbits = libc.Uint8FromInt32(1)
  14347. here.Fval = libc.Uint16FromInt32(0)
  14348. v5 = table
  14349. v4 = *(*uintptr)(unsafe.Pointer(v5))
  14350. *(*uintptr)(unsafe.Pointer(v5)) += 4
  14351. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  14352. v7 = table
  14353. v6 = *(*uintptr)(unsafe.Pointer(v7))
  14354. *(*uintptr)(unsafe.Pointer(v7)) += 4
  14355. *(*Tcode)(unsafe.Pointer(v6)) = here
  14356. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  14357. return 0 /* no symbols, but wait for decoding to report error */
  14358. }
  14359. min = uint32(1)
  14360. for {
  14361. if !(min < max) {
  14362. break
  14363. }
  14364. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  14365. break
  14366. }
  14367. goto _8
  14368. _8:
  14369. min++
  14370. }
  14371. if root < min {
  14372. root = min
  14373. }
  14374. /* check for an over-subscribed or incomplete set of lengths */
  14375. left = int32(1)
  14376. len1 = uint32(1)
  14377. for {
  14378. if !(len1 <= uint32(m_MAXBITS)) {
  14379. break
  14380. }
  14381. left <<= int32(1)
  14382. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  14383. if left < 0 {
  14384. return -int32(1)
  14385. } /* over-subscribed */
  14386. goto _9
  14387. _9:
  14388. len1++
  14389. }
  14390. if left > 0 && (int32(type1) == _CODES || max != uint32(1)) {
  14391. return -int32(1)
  14392. } /* incomplete set */
  14393. /* generate offsets into symbol table for each length for sorting */
  14394. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  14395. len1 = uint32(1)
  14396. for {
  14397. if !(len1 < uint32(m_MAXBITS)) {
  14398. break
  14399. }
  14400. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = uint16(int32((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  14401. goto _10
  14402. _10:
  14403. len1++
  14404. }
  14405. /* sort symbols by length, by symbol order within each length */
  14406. sym = uint32(0)
  14407. for {
  14408. if !(sym < codes) {
  14409. break
  14410. }
  14411. if int32(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  14412. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  14413. v12 = *(*uint16)(unsafe.Pointer(v13))
  14414. *(*uint16)(unsafe.Pointer(v13))++
  14415. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(uint16(sym))
  14416. }
  14417. goto _11
  14418. _11:
  14419. sym++
  14420. }
  14421. /*
  14422. Create and fill in decoding tables. In this loop, the table being
  14423. filled is at next and has curr index bits. The code being used is huff
  14424. with length len. That code is converted to an index by dropping drop
  14425. bits off of the bottom. For codes where len is less than drop + curr,
  14426. those top drop + curr - len bits are incremented through all values to
  14427. fill the table with replicated entries.
  14428. root is the number of index bits for the root table. When len exceeds
  14429. root, sub-tables are created pointed to by the root entry with an index
  14430. of the low root bits of huff. This is saved in low to check for when a
  14431. new sub-table should be started. drop is zero when the root table is
  14432. being filled, and drop is root when sub-tables are being filled.
  14433. When a new sub-table is needed, it is necessary to look ahead in the
  14434. code lengths to determine what size sub-table is needed. The length
  14435. counts are used for this, and so count[] is decremented as codes are
  14436. entered in the tables.
  14437. used keeps track of how many table entries have been allocated from the
  14438. provided *table space. It is checked for LENS and DIST tables against
  14439. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  14440. the initial root table size constants. See the comments in inftrees.h
  14441. for more information.
  14442. sym increments through all symbols, and the loop terminates when
  14443. all codes of length max, i.e. all codes, have been processed. This
  14444. routine permits incomplete codes, so another loop after this one fills
  14445. in the rest of the decoding tables with invalid code markers.
  14446. */
  14447. /* set up for code type */
  14448. switch type1 {
  14449. case _CODES:
  14450. v14 = work
  14451. extra = v14
  14452. base = v14 /* dummy value--not used */
  14453. match = uint32(20)
  14454. case _LENS:
  14455. base = uintptr(unsafe.Pointer(&_lbase))
  14456. extra = uintptr(unsafe.Pointer(&_lext))
  14457. match = uint32(257)
  14458. default: /* DISTS */
  14459. base = uintptr(unsafe.Pointer(&_dbase))
  14460. extra = uintptr(unsafe.Pointer(&_dext))
  14461. match = uint32(0)
  14462. }
  14463. /* initialize state for loop */
  14464. huff = uint32(0) /* starting code */
  14465. sym = uint32(0) /* starting code symbol */
  14466. len1 = min /* starting code length */
  14467. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  14468. curr = root /* current table index bits */
  14469. drop = uint32(0) /* current bits to drop from code for index */
  14470. low = uint32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  14471. used = uint32(1) << root /* use root table entries */
  14472. mask = used - uint32(1) /* mask for comparing low */
  14473. /* check available table space */
  14474. if int32(type1) == _LENS && used > uint32(m_ENOUGH_LENS) || int32(type1) == _DISTS && used > uint32(m_ENOUGH_DISTS) {
  14475. return int32(1)
  14476. }
  14477. /* process all codes and make table entries */
  14478. for {
  14479. /* create table entry */
  14480. here.Fbits = uint8(len1 - drop)
  14481. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  14482. here.Fop = libc.Uint8FromInt32(0)
  14483. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  14484. } else {
  14485. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  14486. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  14487. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  14488. } else {
  14489. here.Fop = uint8(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  14490. here.Fval = uint16(0)
  14491. }
  14492. }
  14493. /* replicate for those indices with low len bits equal to huff */
  14494. incr = uint32(1) << (len1 - drop)
  14495. fill = uint32(1) << curr
  14496. min = fill /* save offset to next table */
  14497. for cond := true; cond; cond = fill != uint32(0) {
  14498. fill -= incr
  14499. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  14500. }
  14501. /* backwards increment the len-bit code huff */
  14502. incr = uint32(1) << (len1 - uint32(1))
  14503. for huff&incr != 0 {
  14504. incr >>= uint32(1)
  14505. }
  14506. if incr != uint32(0) {
  14507. huff &= incr - uint32(1)
  14508. huff += incr
  14509. } else {
  14510. huff = uint32(0)
  14511. }
  14512. /* go to next symbol, update count, len */
  14513. sym++
  14514. v17 = bp + uintptr(len1)*2
  14515. *(*uint16)(unsafe.Pointer(v17))--
  14516. v16 = *(*uint16)(unsafe.Pointer(v17))
  14517. if int32(v16) == 0 {
  14518. if len1 == max {
  14519. break
  14520. }
  14521. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  14522. }
  14523. /* create new sub-table if needed */
  14524. if len1 > root && huff&mask != low {
  14525. /* if first time, transition to sub-tables */
  14526. if drop == uint32(0) {
  14527. drop = root
  14528. }
  14529. /* increment past last table */
  14530. next += uintptr(min) * 4 /* here min is 1 << curr */
  14531. /* determine length of next table */
  14532. curr = len1 - drop
  14533. left = libc.Int32FromInt32(1) << curr
  14534. for curr+drop < max {
  14535. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  14536. if left <= 0 {
  14537. break
  14538. }
  14539. curr++
  14540. left <<= int32(1)
  14541. }
  14542. /* check for enough space */
  14543. used += uint32(1) << curr
  14544. if int32(type1) == _LENS && used > uint32(m_ENOUGH_LENS) || int32(type1) == _DISTS && used > uint32(m_ENOUGH_DISTS) {
  14545. return int32(1)
  14546. }
  14547. /* point entry in root table to sub-table */
  14548. low = huff & mask
  14549. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(uint8(curr))
  14550. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(uint8(root))
  14551. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = uint16((int64(int64(next)) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  14552. }
  14553. goto _15
  14554. _15:
  14555. }
  14556. /* fill in remaining table entry if code is incomplete (guaranteed to have
  14557. at most one remaining entry, since if the code is incomplete, the
  14558. maximum code length that was allowed to get this far is one bit) */
  14559. if huff != uint32(0) {
  14560. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14561. here.Fbits = uint8(len1 - drop)
  14562. here.Fval = libc.Uint16FromInt32(0)
  14563. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  14564. }
  14565. /* set return parameters */
  14566. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  14567. *(*uint32)(unsafe.Pointer(bits)) = root
  14568. return 0
  14569. }
  14570. var _lbase = [31]uint16{
  14571. 0: uint16(3),
  14572. 1: uint16(4),
  14573. 2: uint16(5),
  14574. 3: uint16(6),
  14575. 4: uint16(7),
  14576. 5: uint16(8),
  14577. 6: uint16(9),
  14578. 7: uint16(10),
  14579. 8: uint16(11),
  14580. 9: uint16(13),
  14581. 10: uint16(15),
  14582. 11: uint16(17),
  14583. 12: uint16(19),
  14584. 13: uint16(23),
  14585. 14: uint16(27),
  14586. 15: uint16(31),
  14587. 16: uint16(35),
  14588. 17: uint16(43),
  14589. 18: uint16(51),
  14590. 19: uint16(59),
  14591. 20: uint16(67),
  14592. 21: uint16(83),
  14593. 22: uint16(99),
  14594. 23: uint16(115),
  14595. 24: uint16(131),
  14596. 25: uint16(163),
  14597. 26: uint16(195),
  14598. 27: uint16(227),
  14599. 28: uint16(258),
  14600. }
  14601. var _lext = [31]uint16{
  14602. 0: uint16(16),
  14603. 1: uint16(16),
  14604. 2: uint16(16),
  14605. 3: uint16(16),
  14606. 4: uint16(16),
  14607. 5: uint16(16),
  14608. 6: uint16(16),
  14609. 7: uint16(16),
  14610. 8: uint16(17),
  14611. 9: uint16(17),
  14612. 10: uint16(17),
  14613. 11: uint16(17),
  14614. 12: uint16(18),
  14615. 13: uint16(18),
  14616. 14: uint16(18),
  14617. 15: uint16(18),
  14618. 16: uint16(19),
  14619. 17: uint16(19),
  14620. 18: uint16(19),
  14621. 19: uint16(19),
  14622. 20: uint16(20),
  14623. 21: uint16(20),
  14624. 22: uint16(20),
  14625. 23: uint16(20),
  14626. 24: uint16(21),
  14627. 25: uint16(21),
  14628. 26: uint16(21),
  14629. 27: uint16(21),
  14630. 28: uint16(16),
  14631. 29: uint16(198),
  14632. 30: uint16(203),
  14633. }
  14634. var _dbase = [32]uint16{
  14635. 0: uint16(1),
  14636. 1: uint16(2),
  14637. 2: uint16(3),
  14638. 3: uint16(4),
  14639. 4: uint16(5),
  14640. 5: uint16(7),
  14641. 6: uint16(9),
  14642. 7: uint16(13),
  14643. 8: uint16(17),
  14644. 9: uint16(25),
  14645. 10: uint16(33),
  14646. 11: uint16(49),
  14647. 12: uint16(65),
  14648. 13: uint16(97),
  14649. 14: uint16(129),
  14650. 15: uint16(193),
  14651. 16: uint16(257),
  14652. 17: uint16(385),
  14653. 18: uint16(513),
  14654. 19: uint16(769),
  14655. 20: uint16(1025),
  14656. 21: uint16(1537),
  14657. 22: uint16(2049),
  14658. 23: uint16(3073),
  14659. 24: uint16(4097),
  14660. 25: uint16(6145),
  14661. 26: uint16(8193),
  14662. 27: uint16(12289),
  14663. 28: uint16(16385),
  14664. 29: uint16(24577),
  14665. }
  14666. var _dext = [32]uint16{
  14667. 0: uint16(16),
  14668. 1: uint16(16),
  14669. 2: uint16(16),
  14670. 3: uint16(16),
  14671. 4: uint16(17),
  14672. 5: uint16(17),
  14673. 6: uint16(18),
  14674. 7: uint16(18),
  14675. 8: uint16(19),
  14676. 9: uint16(19),
  14677. 10: uint16(20),
  14678. 11: uint16(20),
  14679. 12: uint16(21),
  14680. 13: uint16(21),
  14681. 14: uint16(22),
  14682. 15: uint16(22),
  14683. 16: uint16(23),
  14684. 17: uint16(23),
  14685. 18: uint16(24),
  14686. 19: uint16(24),
  14687. 20: uint16(25),
  14688. 21: uint16(25),
  14689. 22: uint16(26),
  14690. 23: uint16(26),
  14691. 24: uint16(27),
  14692. 25: uint16(27),
  14693. 26: uint16(28),
  14694. 27: uint16(28),
  14695. 28: uint16(29),
  14696. 29: uint16(29),
  14697. 30: uint16(64),
  14698. 31: uint16(64),
  14699. }
  14700. const m_DIST_CODE_LEN = 512
  14701. const m_DYN_TREES = 2
  14702. const m_END_BLOCK = 256
  14703. const m_MAX_BL_BITS = 7
  14704. const m_REPZ_11_138 = 18
  14705. const m_REPZ_3_10 = 17
  14706. const m_REP_3_6 = 16
  14707. const m_SMALLEST = 1
  14708. const m_STATIC_TREES = 1
  14709. const m_STORED_BLOCK = 0
  14710. const m_Z_BINARY = 0
  14711. const m_Z_TEXT = 1
  14712. type Tstatic_tree_desc = struct {
  14713. Fstatic_tree uintptr
  14714. Fextra_bits uintptr
  14715. Fextra_base int32
  14716. Felems int32
  14717. Fmax_length int32
  14718. }
  14719. type Tstatic_tree_desc_s = Tstatic_tree_desc
  14720. /* ===========================================================================
  14721. * Constants
  14722. */
  14723. /* Bit length codes must not exceed MAX_BL_BITS bits */
  14724. /* end of block literal code */
  14725. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  14726. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  14727. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  14728. var _extra_lbits = [29]int32{
  14729. 8: int32(1),
  14730. 9: int32(1),
  14731. 10: int32(1),
  14732. 11: int32(1),
  14733. 12: int32(2),
  14734. 13: int32(2),
  14735. 14: int32(2),
  14736. 15: int32(2),
  14737. 16: int32(3),
  14738. 17: int32(3),
  14739. 18: int32(3),
  14740. 19: int32(3),
  14741. 20: int32(4),
  14742. 21: int32(4),
  14743. 22: int32(4),
  14744. 23: int32(4),
  14745. 24: int32(5),
  14746. 25: int32(5),
  14747. 26: int32(5),
  14748. 27: int32(5),
  14749. }
  14750. var _extra_dbits = [30]int32{
  14751. 4: int32(1),
  14752. 5: int32(1),
  14753. 6: int32(2),
  14754. 7: int32(2),
  14755. 8: int32(3),
  14756. 9: int32(3),
  14757. 10: int32(4),
  14758. 11: int32(4),
  14759. 12: int32(5),
  14760. 13: int32(5),
  14761. 14: int32(6),
  14762. 15: int32(6),
  14763. 16: int32(7),
  14764. 17: int32(7),
  14765. 18: int32(8),
  14766. 19: int32(8),
  14767. 20: int32(9),
  14768. 21: int32(9),
  14769. 22: int32(10),
  14770. 23: int32(10),
  14771. 24: int32(11),
  14772. 25: int32(11),
  14773. 26: int32(12),
  14774. 27: int32(12),
  14775. 28: int32(13),
  14776. 29: int32(13),
  14777. }
  14778. var _extra_blbits = [19]int32{
  14779. 16: int32(2),
  14780. 17: int32(3),
  14781. 18: int32(7),
  14782. }
  14783. var _bl_order = [19]Tuch{
  14784. 0: uint8(16),
  14785. 1: uint8(17),
  14786. 2: uint8(18),
  14787. 4: uint8(8),
  14788. 5: uint8(7),
  14789. 6: uint8(9),
  14790. 7: uint8(6),
  14791. 8: uint8(10),
  14792. 9: uint8(5),
  14793. 10: uint8(11),
  14794. 11: uint8(4),
  14795. 12: uint8(12),
  14796. 13: uint8(3),
  14797. 14: uint8(13),
  14798. 15: uint8(2),
  14799. 16: uint8(14),
  14800. 17: uint8(1),
  14801. 18: uint8(15),
  14802. }
  14803. var _static_ltree = [288]Tct_data{
  14804. 0: {
  14805. Ffc: *(*struct {
  14806. Fcode [0]Tush
  14807. Ffreq Tush
  14808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  14809. Fdl: *(*struct {
  14810. Flen1 [0]Tush
  14811. Fdad Tush
  14812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14813. },
  14814. 1: {
  14815. Ffc: *(*struct {
  14816. Fcode [0]Tush
  14817. Ffreq Tush
  14818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  14819. Fdl: *(*struct {
  14820. Flen1 [0]Tush
  14821. Fdad Tush
  14822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14823. },
  14824. 2: {
  14825. Ffc: *(*struct {
  14826. Fcode [0]Tush
  14827. Ffreq Tush
  14828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  14829. Fdl: *(*struct {
  14830. Flen1 [0]Tush
  14831. Fdad Tush
  14832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14833. },
  14834. 3: {
  14835. Ffc: *(*struct {
  14836. Fcode [0]Tush
  14837. Ffreq Tush
  14838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  14839. Fdl: *(*struct {
  14840. Flen1 [0]Tush
  14841. Fdad Tush
  14842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14843. },
  14844. 4: {
  14845. Ffc: *(*struct {
  14846. Fcode [0]Tush
  14847. Ffreq Tush
  14848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  14849. Fdl: *(*struct {
  14850. Flen1 [0]Tush
  14851. Fdad Tush
  14852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14853. },
  14854. 5: {
  14855. Ffc: *(*struct {
  14856. Fcode [0]Tush
  14857. Ffreq Tush
  14858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  14859. Fdl: *(*struct {
  14860. Flen1 [0]Tush
  14861. Fdad Tush
  14862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14863. },
  14864. 6: {
  14865. Ffc: *(*struct {
  14866. Fcode [0]Tush
  14867. Ffreq Tush
  14868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  14869. Fdl: *(*struct {
  14870. Flen1 [0]Tush
  14871. Fdad Tush
  14872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14873. },
  14874. 7: {
  14875. Ffc: *(*struct {
  14876. Fcode [0]Tush
  14877. Ffreq Tush
  14878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  14879. Fdl: *(*struct {
  14880. Flen1 [0]Tush
  14881. Fdad Tush
  14882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14883. },
  14884. 8: {
  14885. Ffc: *(*struct {
  14886. Fcode [0]Tush
  14887. Ffreq Tush
  14888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  14889. Fdl: *(*struct {
  14890. Flen1 [0]Tush
  14891. Fdad Tush
  14892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14893. },
  14894. 9: {
  14895. Ffc: *(*struct {
  14896. Fcode [0]Tush
  14897. Ffreq Tush
  14898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  14899. Fdl: *(*struct {
  14900. Flen1 [0]Tush
  14901. Fdad Tush
  14902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14903. },
  14904. 10: {
  14905. Ffc: *(*struct {
  14906. Fcode [0]Tush
  14907. Ffreq Tush
  14908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  14909. Fdl: *(*struct {
  14910. Flen1 [0]Tush
  14911. Fdad Tush
  14912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14913. },
  14914. 11: {
  14915. Ffc: *(*struct {
  14916. Fcode [0]Tush
  14917. Ffreq Tush
  14918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  14919. Fdl: *(*struct {
  14920. Flen1 [0]Tush
  14921. Fdad Tush
  14922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14923. },
  14924. 12: {
  14925. Ffc: *(*struct {
  14926. Fcode [0]Tush
  14927. Ffreq Tush
  14928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  14929. Fdl: *(*struct {
  14930. Flen1 [0]Tush
  14931. Fdad Tush
  14932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14933. },
  14934. 13: {
  14935. Ffc: *(*struct {
  14936. Fcode [0]Tush
  14937. Ffreq Tush
  14938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  14939. Fdl: *(*struct {
  14940. Flen1 [0]Tush
  14941. Fdad Tush
  14942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14943. },
  14944. 14: {
  14945. Ffc: *(*struct {
  14946. Fcode [0]Tush
  14947. Ffreq Tush
  14948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  14949. Fdl: *(*struct {
  14950. Flen1 [0]Tush
  14951. Fdad Tush
  14952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14953. },
  14954. 15: {
  14955. Ffc: *(*struct {
  14956. Fcode [0]Tush
  14957. Ffreq Tush
  14958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  14959. Fdl: *(*struct {
  14960. Flen1 [0]Tush
  14961. Fdad Tush
  14962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14963. },
  14964. 16: {
  14965. Ffc: *(*struct {
  14966. Fcode [0]Tush
  14967. Ffreq Tush
  14968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  14969. Fdl: *(*struct {
  14970. Flen1 [0]Tush
  14971. Fdad Tush
  14972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14973. },
  14974. 17: {
  14975. Ffc: *(*struct {
  14976. Fcode [0]Tush
  14977. Ffreq Tush
  14978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  14979. Fdl: *(*struct {
  14980. Flen1 [0]Tush
  14981. Fdad Tush
  14982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14983. },
  14984. 18: {
  14985. Ffc: *(*struct {
  14986. Fcode [0]Tush
  14987. Ffreq Tush
  14988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  14989. Fdl: *(*struct {
  14990. Flen1 [0]Tush
  14991. Fdad Tush
  14992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  14993. },
  14994. 19: {
  14995. Ffc: *(*struct {
  14996. Fcode [0]Tush
  14997. Ffreq Tush
  14998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  14999. Fdl: *(*struct {
  15000. Flen1 [0]Tush
  15001. Fdad Tush
  15002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15003. },
  15004. 20: {
  15005. Ffc: *(*struct {
  15006. Fcode [0]Tush
  15007. Ffreq Tush
  15008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  15009. Fdl: *(*struct {
  15010. Flen1 [0]Tush
  15011. Fdad Tush
  15012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15013. },
  15014. 21: {
  15015. Ffc: *(*struct {
  15016. Fcode [0]Tush
  15017. Ffreq Tush
  15018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  15019. Fdl: *(*struct {
  15020. Flen1 [0]Tush
  15021. Fdad Tush
  15022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15023. },
  15024. 22: {
  15025. Ffc: *(*struct {
  15026. Fcode [0]Tush
  15027. Ffreq Tush
  15028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  15029. Fdl: *(*struct {
  15030. Flen1 [0]Tush
  15031. Fdad Tush
  15032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15033. },
  15034. 23: {
  15035. Ffc: *(*struct {
  15036. Fcode [0]Tush
  15037. Ffreq Tush
  15038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  15039. Fdl: *(*struct {
  15040. Flen1 [0]Tush
  15041. Fdad Tush
  15042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15043. },
  15044. 24: {
  15045. Ffc: *(*struct {
  15046. Fcode [0]Tush
  15047. Ffreq Tush
  15048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  15049. Fdl: *(*struct {
  15050. Flen1 [0]Tush
  15051. Fdad Tush
  15052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15053. },
  15054. 25: {
  15055. Ffc: *(*struct {
  15056. Fcode [0]Tush
  15057. Ffreq Tush
  15058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  15059. Fdl: *(*struct {
  15060. Flen1 [0]Tush
  15061. Fdad Tush
  15062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15063. },
  15064. 26: {
  15065. Ffc: *(*struct {
  15066. Fcode [0]Tush
  15067. Ffreq Tush
  15068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  15069. Fdl: *(*struct {
  15070. Flen1 [0]Tush
  15071. Fdad Tush
  15072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15073. },
  15074. 27: {
  15075. Ffc: *(*struct {
  15076. Fcode [0]Tush
  15077. Ffreq Tush
  15078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  15079. Fdl: *(*struct {
  15080. Flen1 [0]Tush
  15081. Fdad Tush
  15082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15083. },
  15084. 28: {
  15085. Ffc: *(*struct {
  15086. Fcode [0]Tush
  15087. Ffreq Tush
  15088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  15089. Fdl: *(*struct {
  15090. Flen1 [0]Tush
  15091. Fdad Tush
  15092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15093. },
  15094. 29: {
  15095. Ffc: *(*struct {
  15096. Fcode [0]Tush
  15097. Ffreq Tush
  15098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  15099. Fdl: *(*struct {
  15100. Flen1 [0]Tush
  15101. Fdad Tush
  15102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15103. },
  15104. 30: {
  15105. Ffc: *(*struct {
  15106. Fcode [0]Tush
  15107. Ffreq Tush
  15108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  15109. Fdl: *(*struct {
  15110. Flen1 [0]Tush
  15111. Fdad Tush
  15112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15113. },
  15114. 31: {
  15115. Ffc: *(*struct {
  15116. Fcode [0]Tush
  15117. Ffreq Tush
  15118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  15119. Fdl: *(*struct {
  15120. Flen1 [0]Tush
  15121. Fdad Tush
  15122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15123. },
  15124. 32: {
  15125. Ffc: *(*struct {
  15126. Fcode [0]Tush
  15127. Ffreq Tush
  15128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  15129. Fdl: *(*struct {
  15130. Flen1 [0]Tush
  15131. Fdad Tush
  15132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15133. },
  15134. 33: {
  15135. Ffc: *(*struct {
  15136. Fcode [0]Tush
  15137. Ffreq Tush
  15138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  15139. Fdl: *(*struct {
  15140. Flen1 [0]Tush
  15141. Fdad Tush
  15142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15143. },
  15144. 34: {
  15145. Ffc: *(*struct {
  15146. Fcode [0]Tush
  15147. Ffreq Tush
  15148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  15149. Fdl: *(*struct {
  15150. Flen1 [0]Tush
  15151. Fdad Tush
  15152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15153. },
  15154. 35: {
  15155. Ffc: *(*struct {
  15156. Fcode [0]Tush
  15157. Ffreq Tush
  15158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  15159. Fdl: *(*struct {
  15160. Flen1 [0]Tush
  15161. Fdad Tush
  15162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15163. },
  15164. 36: {
  15165. Ffc: *(*struct {
  15166. Fcode [0]Tush
  15167. Ffreq Tush
  15168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  15169. Fdl: *(*struct {
  15170. Flen1 [0]Tush
  15171. Fdad Tush
  15172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15173. },
  15174. 37: {
  15175. Ffc: *(*struct {
  15176. Fcode [0]Tush
  15177. Ffreq Tush
  15178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  15179. Fdl: *(*struct {
  15180. Flen1 [0]Tush
  15181. Fdad Tush
  15182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15183. },
  15184. 38: {
  15185. Ffc: *(*struct {
  15186. Fcode [0]Tush
  15187. Ffreq Tush
  15188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  15189. Fdl: *(*struct {
  15190. Flen1 [0]Tush
  15191. Fdad Tush
  15192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15193. },
  15194. 39: {
  15195. Ffc: *(*struct {
  15196. Fcode [0]Tush
  15197. Ffreq Tush
  15198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  15199. Fdl: *(*struct {
  15200. Flen1 [0]Tush
  15201. Fdad Tush
  15202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15203. },
  15204. 40: {
  15205. Ffc: *(*struct {
  15206. Fcode [0]Tush
  15207. Ffreq Tush
  15208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  15209. Fdl: *(*struct {
  15210. Flen1 [0]Tush
  15211. Fdad Tush
  15212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15213. },
  15214. 41: {
  15215. Ffc: *(*struct {
  15216. Fcode [0]Tush
  15217. Ffreq Tush
  15218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  15219. Fdl: *(*struct {
  15220. Flen1 [0]Tush
  15221. Fdad Tush
  15222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15223. },
  15224. 42: {
  15225. Ffc: *(*struct {
  15226. Fcode [0]Tush
  15227. Ffreq Tush
  15228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  15229. Fdl: *(*struct {
  15230. Flen1 [0]Tush
  15231. Fdad Tush
  15232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15233. },
  15234. 43: {
  15235. Ffc: *(*struct {
  15236. Fcode [0]Tush
  15237. Ffreq Tush
  15238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  15239. Fdl: *(*struct {
  15240. Flen1 [0]Tush
  15241. Fdad Tush
  15242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15243. },
  15244. 44: {
  15245. Ffc: *(*struct {
  15246. Fcode [0]Tush
  15247. Ffreq Tush
  15248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  15249. Fdl: *(*struct {
  15250. Flen1 [0]Tush
  15251. Fdad Tush
  15252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15253. },
  15254. 45: {
  15255. Ffc: *(*struct {
  15256. Fcode [0]Tush
  15257. Ffreq Tush
  15258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  15259. Fdl: *(*struct {
  15260. Flen1 [0]Tush
  15261. Fdad Tush
  15262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15263. },
  15264. 46: {
  15265. Ffc: *(*struct {
  15266. Fcode [0]Tush
  15267. Ffreq Tush
  15268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  15269. Fdl: *(*struct {
  15270. Flen1 [0]Tush
  15271. Fdad Tush
  15272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15273. },
  15274. 47: {
  15275. Ffc: *(*struct {
  15276. Fcode [0]Tush
  15277. Ffreq Tush
  15278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  15279. Fdl: *(*struct {
  15280. Flen1 [0]Tush
  15281. Fdad Tush
  15282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15283. },
  15284. 48: {
  15285. Ffc: *(*struct {
  15286. Fcode [0]Tush
  15287. Ffreq Tush
  15288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  15289. Fdl: *(*struct {
  15290. Flen1 [0]Tush
  15291. Fdad Tush
  15292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15293. },
  15294. 49: {
  15295. Ffc: *(*struct {
  15296. Fcode [0]Tush
  15297. Ffreq Tush
  15298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  15299. Fdl: *(*struct {
  15300. Flen1 [0]Tush
  15301. Fdad Tush
  15302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15303. },
  15304. 50: {
  15305. Ffc: *(*struct {
  15306. Fcode [0]Tush
  15307. Ffreq Tush
  15308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  15309. Fdl: *(*struct {
  15310. Flen1 [0]Tush
  15311. Fdad Tush
  15312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15313. },
  15314. 51: {
  15315. Ffc: *(*struct {
  15316. Fcode [0]Tush
  15317. Ffreq Tush
  15318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  15319. Fdl: *(*struct {
  15320. Flen1 [0]Tush
  15321. Fdad Tush
  15322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15323. },
  15324. 52: {
  15325. Ffc: *(*struct {
  15326. Fcode [0]Tush
  15327. Ffreq Tush
  15328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  15329. Fdl: *(*struct {
  15330. Flen1 [0]Tush
  15331. Fdad Tush
  15332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15333. },
  15334. 53: {
  15335. Ffc: *(*struct {
  15336. Fcode [0]Tush
  15337. Ffreq Tush
  15338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  15339. Fdl: *(*struct {
  15340. Flen1 [0]Tush
  15341. Fdad Tush
  15342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15343. },
  15344. 54: {
  15345. Ffc: *(*struct {
  15346. Fcode [0]Tush
  15347. Ffreq Tush
  15348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  15349. Fdl: *(*struct {
  15350. Flen1 [0]Tush
  15351. Fdad Tush
  15352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15353. },
  15354. 55: {
  15355. Ffc: *(*struct {
  15356. Fcode [0]Tush
  15357. Ffreq Tush
  15358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  15359. Fdl: *(*struct {
  15360. Flen1 [0]Tush
  15361. Fdad Tush
  15362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15363. },
  15364. 56: {
  15365. Ffc: *(*struct {
  15366. Fcode [0]Tush
  15367. Ffreq Tush
  15368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  15369. Fdl: *(*struct {
  15370. Flen1 [0]Tush
  15371. Fdad Tush
  15372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15373. },
  15374. 57: {
  15375. Ffc: *(*struct {
  15376. Fcode [0]Tush
  15377. Ffreq Tush
  15378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  15379. Fdl: *(*struct {
  15380. Flen1 [0]Tush
  15381. Fdad Tush
  15382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15383. },
  15384. 58: {
  15385. Ffc: *(*struct {
  15386. Fcode [0]Tush
  15387. Ffreq Tush
  15388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  15389. Fdl: *(*struct {
  15390. Flen1 [0]Tush
  15391. Fdad Tush
  15392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15393. },
  15394. 59: {
  15395. Ffc: *(*struct {
  15396. Fcode [0]Tush
  15397. Ffreq Tush
  15398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  15399. Fdl: *(*struct {
  15400. Flen1 [0]Tush
  15401. Fdad Tush
  15402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15403. },
  15404. 60: {
  15405. Ffc: *(*struct {
  15406. Fcode [0]Tush
  15407. Ffreq Tush
  15408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  15409. Fdl: *(*struct {
  15410. Flen1 [0]Tush
  15411. Fdad Tush
  15412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15413. },
  15414. 61: {
  15415. Ffc: *(*struct {
  15416. Fcode [0]Tush
  15417. Ffreq Tush
  15418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  15419. Fdl: *(*struct {
  15420. Flen1 [0]Tush
  15421. Fdad Tush
  15422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15423. },
  15424. 62: {
  15425. Ffc: *(*struct {
  15426. Fcode [0]Tush
  15427. Ffreq Tush
  15428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  15429. Fdl: *(*struct {
  15430. Flen1 [0]Tush
  15431. Fdad Tush
  15432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15433. },
  15434. 63: {
  15435. Ffc: *(*struct {
  15436. Fcode [0]Tush
  15437. Ffreq Tush
  15438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  15439. Fdl: *(*struct {
  15440. Flen1 [0]Tush
  15441. Fdad Tush
  15442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15443. },
  15444. 64: {
  15445. Ffc: *(*struct {
  15446. Fcode [0]Tush
  15447. Ffreq Tush
  15448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  15449. Fdl: *(*struct {
  15450. Flen1 [0]Tush
  15451. Fdad Tush
  15452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15453. },
  15454. 65: {
  15455. Ffc: *(*struct {
  15456. Fcode [0]Tush
  15457. Ffreq Tush
  15458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  15459. Fdl: *(*struct {
  15460. Flen1 [0]Tush
  15461. Fdad Tush
  15462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15463. },
  15464. 66: {
  15465. Ffc: *(*struct {
  15466. Fcode [0]Tush
  15467. Ffreq Tush
  15468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  15469. Fdl: *(*struct {
  15470. Flen1 [0]Tush
  15471. Fdad Tush
  15472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15473. },
  15474. 67: {
  15475. Ffc: *(*struct {
  15476. Fcode [0]Tush
  15477. Ffreq Tush
  15478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  15479. Fdl: *(*struct {
  15480. Flen1 [0]Tush
  15481. Fdad Tush
  15482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15483. },
  15484. 68: {
  15485. Ffc: *(*struct {
  15486. Fcode [0]Tush
  15487. Ffreq Tush
  15488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  15489. Fdl: *(*struct {
  15490. Flen1 [0]Tush
  15491. Fdad Tush
  15492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15493. },
  15494. 69: {
  15495. Ffc: *(*struct {
  15496. Fcode [0]Tush
  15497. Ffreq Tush
  15498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  15499. Fdl: *(*struct {
  15500. Flen1 [0]Tush
  15501. Fdad Tush
  15502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15503. },
  15504. 70: {
  15505. Ffc: *(*struct {
  15506. Fcode [0]Tush
  15507. Ffreq Tush
  15508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  15509. Fdl: *(*struct {
  15510. Flen1 [0]Tush
  15511. Fdad Tush
  15512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15513. },
  15514. 71: {
  15515. Ffc: *(*struct {
  15516. Fcode [0]Tush
  15517. Ffreq Tush
  15518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  15519. Fdl: *(*struct {
  15520. Flen1 [0]Tush
  15521. Fdad Tush
  15522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15523. },
  15524. 72: {
  15525. Ffc: *(*struct {
  15526. Fcode [0]Tush
  15527. Ffreq Tush
  15528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  15529. Fdl: *(*struct {
  15530. Flen1 [0]Tush
  15531. Fdad Tush
  15532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15533. },
  15534. 73: {
  15535. Ffc: *(*struct {
  15536. Fcode [0]Tush
  15537. Ffreq Tush
  15538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  15539. Fdl: *(*struct {
  15540. Flen1 [0]Tush
  15541. Fdad Tush
  15542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15543. },
  15544. 74: {
  15545. Ffc: *(*struct {
  15546. Fcode [0]Tush
  15547. Ffreq Tush
  15548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  15549. Fdl: *(*struct {
  15550. Flen1 [0]Tush
  15551. Fdad Tush
  15552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15553. },
  15554. 75: {
  15555. Ffc: *(*struct {
  15556. Fcode [0]Tush
  15557. Ffreq Tush
  15558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  15559. Fdl: *(*struct {
  15560. Flen1 [0]Tush
  15561. Fdad Tush
  15562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15563. },
  15564. 76: {
  15565. Ffc: *(*struct {
  15566. Fcode [0]Tush
  15567. Ffreq Tush
  15568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  15569. Fdl: *(*struct {
  15570. Flen1 [0]Tush
  15571. Fdad Tush
  15572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15573. },
  15574. 77: {
  15575. Ffc: *(*struct {
  15576. Fcode [0]Tush
  15577. Ffreq Tush
  15578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  15579. Fdl: *(*struct {
  15580. Flen1 [0]Tush
  15581. Fdad Tush
  15582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15583. },
  15584. 78: {
  15585. Ffc: *(*struct {
  15586. Fcode [0]Tush
  15587. Ffreq Tush
  15588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  15589. Fdl: *(*struct {
  15590. Flen1 [0]Tush
  15591. Fdad Tush
  15592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15593. },
  15594. 79: {
  15595. Ffc: *(*struct {
  15596. Fcode [0]Tush
  15597. Ffreq Tush
  15598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  15599. Fdl: *(*struct {
  15600. Flen1 [0]Tush
  15601. Fdad Tush
  15602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15603. },
  15604. 80: {
  15605. Ffc: *(*struct {
  15606. Fcode [0]Tush
  15607. Ffreq Tush
  15608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  15609. Fdl: *(*struct {
  15610. Flen1 [0]Tush
  15611. Fdad Tush
  15612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15613. },
  15614. 81: {
  15615. Ffc: *(*struct {
  15616. Fcode [0]Tush
  15617. Ffreq Tush
  15618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  15619. Fdl: *(*struct {
  15620. Flen1 [0]Tush
  15621. Fdad Tush
  15622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15623. },
  15624. 82: {
  15625. Ffc: *(*struct {
  15626. Fcode [0]Tush
  15627. Ffreq Tush
  15628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  15629. Fdl: *(*struct {
  15630. Flen1 [0]Tush
  15631. Fdad Tush
  15632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15633. },
  15634. 83: {
  15635. Ffc: *(*struct {
  15636. Fcode [0]Tush
  15637. Ffreq Tush
  15638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  15639. Fdl: *(*struct {
  15640. Flen1 [0]Tush
  15641. Fdad Tush
  15642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15643. },
  15644. 84: {
  15645. Ffc: *(*struct {
  15646. Fcode [0]Tush
  15647. Ffreq Tush
  15648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  15649. Fdl: *(*struct {
  15650. Flen1 [0]Tush
  15651. Fdad Tush
  15652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15653. },
  15654. 85: {
  15655. Ffc: *(*struct {
  15656. Fcode [0]Tush
  15657. Ffreq Tush
  15658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  15659. Fdl: *(*struct {
  15660. Flen1 [0]Tush
  15661. Fdad Tush
  15662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15663. },
  15664. 86: {
  15665. Ffc: *(*struct {
  15666. Fcode [0]Tush
  15667. Ffreq Tush
  15668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  15669. Fdl: *(*struct {
  15670. Flen1 [0]Tush
  15671. Fdad Tush
  15672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15673. },
  15674. 87: {
  15675. Ffc: *(*struct {
  15676. Fcode [0]Tush
  15677. Ffreq Tush
  15678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  15679. Fdl: *(*struct {
  15680. Flen1 [0]Tush
  15681. Fdad Tush
  15682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15683. },
  15684. 88: {
  15685. Ffc: *(*struct {
  15686. Fcode [0]Tush
  15687. Ffreq Tush
  15688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  15689. Fdl: *(*struct {
  15690. Flen1 [0]Tush
  15691. Fdad Tush
  15692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15693. },
  15694. 89: {
  15695. Ffc: *(*struct {
  15696. Fcode [0]Tush
  15697. Ffreq Tush
  15698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  15699. Fdl: *(*struct {
  15700. Flen1 [0]Tush
  15701. Fdad Tush
  15702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15703. },
  15704. 90: {
  15705. Ffc: *(*struct {
  15706. Fcode [0]Tush
  15707. Ffreq Tush
  15708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  15709. Fdl: *(*struct {
  15710. Flen1 [0]Tush
  15711. Fdad Tush
  15712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15713. },
  15714. 91: {
  15715. Ffc: *(*struct {
  15716. Fcode [0]Tush
  15717. Ffreq Tush
  15718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  15719. Fdl: *(*struct {
  15720. Flen1 [0]Tush
  15721. Fdad Tush
  15722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15723. },
  15724. 92: {
  15725. Ffc: *(*struct {
  15726. Fcode [0]Tush
  15727. Ffreq Tush
  15728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  15729. Fdl: *(*struct {
  15730. Flen1 [0]Tush
  15731. Fdad Tush
  15732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15733. },
  15734. 93: {
  15735. Ffc: *(*struct {
  15736. Fcode [0]Tush
  15737. Ffreq Tush
  15738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  15739. Fdl: *(*struct {
  15740. Flen1 [0]Tush
  15741. Fdad Tush
  15742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15743. },
  15744. 94: {
  15745. Ffc: *(*struct {
  15746. Fcode [0]Tush
  15747. Ffreq Tush
  15748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  15749. Fdl: *(*struct {
  15750. Flen1 [0]Tush
  15751. Fdad Tush
  15752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15753. },
  15754. 95: {
  15755. Ffc: *(*struct {
  15756. Fcode [0]Tush
  15757. Ffreq Tush
  15758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  15759. Fdl: *(*struct {
  15760. Flen1 [0]Tush
  15761. Fdad Tush
  15762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15763. },
  15764. 96: {
  15765. Ffc: *(*struct {
  15766. Fcode [0]Tush
  15767. Ffreq Tush
  15768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  15769. Fdl: *(*struct {
  15770. Flen1 [0]Tush
  15771. Fdad Tush
  15772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15773. },
  15774. 97: {
  15775. Ffc: *(*struct {
  15776. Fcode [0]Tush
  15777. Ffreq Tush
  15778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  15779. Fdl: *(*struct {
  15780. Flen1 [0]Tush
  15781. Fdad Tush
  15782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15783. },
  15784. 98: {
  15785. Ffc: *(*struct {
  15786. Fcode [0]Tush
  15787. Ffreq Tush
  15788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  15789. Fdl: *(*struct {
  15790. Flen1 [0]Tush
  15791. Fdad Tush
  15792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15793. },
  15794. 99: {
  15795. Ffc: *(*struct {
  15796. Fcode [0]Tush
  15797. Ffreq Tush
  15798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  15799. Fdl: *(*struct {
  15800. Flen1 [0]Tush
  15801. Fdad Tush
  15802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15803. },
  15804. 100: {
  15805. Ffc: *(*struct {
  15806. Fcode [0]Tush
  15807. Ffreq Tush
  15808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  15809. Fdl: *(*struct {
  15810. Flen1 [0]Tush
  15811. Fdad Tush
  15812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15813. },
  15814. 101: {
  15815. Ffc: *(*struct {
  15816. Fcode [0]Tush
  15817. Ffreq Tush
  15818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  15819. Fdl: *(*struct {
  15820. Flen1 [0]Tush
  15821. Fdad Tush
  15822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15823. },
  15824. 102: {
  15825. Ffc: *(*struct {
  15826. Fcode [0]Tush
  15827. Ffreq Tush
  15828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  15829. Fdl: *(*struct {
  15830. Flen1 [0]Tush
  15831. Fdad Tush
  15832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15833. },
  15834. 103: {
  15835. Ffc: *(*struct {
  15836. Fcode [0]Tush
  15837. Ffreq Tush
  15838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  15839. Fdl: *(*struct {
  15840. Flen1 [0]Tush
  15841. Fdad Tush
  15842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15843. },
  15844. 104: {
  15845. Ffc: *(*struct {
  15846. Fcode [0]Tush
  15847. Ffreq Tush
  15848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  15849. Fdl: *(*struct {
  15850. Flen1 [0]Tush
  15851. Fdad Tush
  15852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15853. },
  15854. 105: {
  15855. Ffc: *(*struct {
  15856. Fcode [0]Tush
  15857. Ffreq Tush
  15858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  15859. Fdl: *(*struct {
  15860. Flen1 [0]Tush
  15861. Fdad Tush
  15862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15863. },
  15864. 106: {
  15865. Ffc: *(*struct {
  15866. Fcode [0]Tush
  15867. Ffreq Tush
  15868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  15869. Fdl: *(*struct {
  15870. Flen1 [0]Tush
  15871. Fdad Tush
  15872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15873. },
  15874. 107: {
  15875. Ffc: *(*struct {
  15876. Fcode [0]Tush
  15877. Ffreq Tush
  15878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  15879. Fdl: *(*struct {
  15880. Flen1 [0]Tush
  15881. Fdad Tush
  15882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15883. },
  15884. 108: {
  15885. Ffc: *(*struct {
  15886. Fcode [0]Tush
  15887. Ffreq Tush
  15888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  15889. Fdl: *(*struct {
  15890. Flen1 [0]Tush
  15891. Fdad Tush
  15892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15893. },
  15894. 109: {
  15895. Ffc: *(*struct {
  15896. Fcode [0]Tush
  15897. Ffreq Tush
  15898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  15899. Fdl: *(*struct {
  15900. Flen1 [0]Tush
  15901. Fdad Tush
  15902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15903. },
  15904. 110: {
  15905. Ffc: *(*struct {
  15906. Fcode [0]Tush
  15907. Ffreq Tush
  15908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  15909. Fdl: *(*struct {
  15910. Flen1 [0]Tush
  15911. Fdad Tush
  15912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15913. },
  15914. 111: {
  15915. Ffc: *(*struct {
  15916. Fcode [0]Tush
  15917. Ffreq Tush
  15918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  15919. Fdl: *(*struct {
  15920. Flen1 [0]Tush
  15921. Fdad Tush
  15922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15923. },
  15924. 112: {
  15925. Ffc: *(*struct {
  15926. Fcode [0]Tush
  15927. Ffreq Tush
  15928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  15929. Fdl: *(*struct {
  15930. Flen1 [0]Tush
  15931. Fdad Tush
  15932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15933. },
  15934. 113: {
  15935. Ffc: *(*struct {
  15936. Fcode [0]Tush
  15937. Ffreq Tush
  15938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  15939. Fdl: *(*struct {
  15940. Flen1 [0]Tush
  15941. Fdad Tush
  15942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15943. },
  15944. 114: {
  15945. Ffc: *(*struct {
  15946. Fcode [0]Tush
  15947. Ffreq Tush
  15948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  15949. Fdl: *(*struct {
  15950. Flen1 [0]Tush
  15951. Fdad Tush
  15952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15953. },
  15954. 115: {
  15955. Ffc: *(*struct {
  15956. Fcode [0]Tush
  15957. Ffreq Tush
  15958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  15959. Fdl: *(*struct {
  15960. Flen1 [0]Tush
  15961. Fdad Tush
  15962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15963. },
  15964. 116: {
  15965. Ffc: *(*struct {
  15966. Fcode [0]Tush
  15967. Ffreq Tush
  15968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  15969. Fdl: *(*struct {
  15970. Flen1 [0]Tush
  15971. Fdad Tush
  15972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15973. },
  15974. 117: {
  15975. Ffc: *(*struct {
  15976. Fcode [0]Tush
  15977. Ffreq Tush
  15978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  15979. Fdl: *(*struct {
  15980. Flen1 [0]Tush
  15981. Fdad Tush
  15982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15983. },
  15984. 118: {
  15985. Ffc: *(*struct {
  15986. Fcode [0]Tush
  15987. Ffreq Tush
  15988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  15989. Fdl: *(*struct {
  15990. Flen1 [0]Tush
  15991. Fdad Tush
  15992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15993. },
  15994. 119: {
  15995. Ffc: *(*struct {
  15996. Fcode [0]Tush
  15997. Ffreq Tush
  15998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  15999. Fdl: *(*struct {
  16000. Flen1 [0]Tush
  16001. Fdad Tush
  16002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16003. },
  16004. 120: {
  16005. Ffc: *(*struct {
  16006. Fcode [0]Tush
  16007. Ffreq Tush
  16008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  16009. Fdl: *(*struct {
  16010. Flen1 [0]Tush
  16011. Fdad Tush
  16012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16013. },
  16014. 121: {
  16015. Ffc: *(*struct {
  16016. Fcode [0]Tush
  16017. Ffreq Tush
  16018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  16019. Fdl: *(*struct {
  16020. Flen1 [0]Tush
  16021. Fdad Tush
  16022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16023. },
  16024. 122: {
  16025. Ffc: *(*struct {
  16026. Fcode [0]Tush
  16027. Ffreq Tush
  16028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  16029. Fdl: *(*struct {
  16030. Flen1 [0]Tush
  16031. Fdad Tush
  16032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16033. },
  16034. 123: {
  16035. Ffc: *(*struct {
  16036. Fcode [0]Tush
  16037. Ffreq Tush
  16038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  16039. Fdl: *(*struct {
  16040. Flen1 [0]Tush
  16041. Fdad Tush
  16042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16043. },
  16044. 124: {
  16045. Ffc: *(*struct {
  16046. Fcode [0]Tush
  16047. Ffreq Tush
  16048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  16049. Fdl: *(*struct {
  16050. Flen1 [0]Tush
  16051. Fdad Tush
  16052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16053. },
  16054. 125: {
  16055. Ffc: *(*struct {
  16056. Fcode [0]Tush
  16057. Ffreq Tush
  16058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  16059. Fdl: *(*struct {
  16060. Flen1 [0]Tush
  16061. Fdad Tush
  16062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16063. },
  16064. 126: {
  16065. Ffc: *(*struct {
  16066. Fcode [0]Tush
  16067. Ffreq Tush
  16068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  16069. Fdl: *(*struct {
  16070. Flen1 [0]Tush
  16071. Fdad Tush
  16072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16073. },
  16074. 127: {
  16075. Ffc: *(*struct {
  16076. Fcode [0]Tush
  16077. Ffreq Tush
  16078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  16079. Fdl: *(*struct {
  16080. Flen1 [0]Tush
  16081. Fdad Tush
  16082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16083. },
  16084. 128: {
  16085. Ffc: *(*struct {
  16086. Fcode [0]Tush
  16087. Ffreq Tush
  16088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  16089. Fdl: *(*struct {
  16090. Flen1 [0]Tush
  16091. Fdad Tush
  16092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16093. },
  16094. 129: {
  16095. Ffc: *(*struct {
  16096. Fcode [0]Tush
  16097. Ffreq Tush
  16098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  16099. Fdl: *(*struct {
  16100. Flen1 [0]Tush
  16101. Fdad Tush
  16102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16103. },
  16104. 130: {
  16105. Ffc: *(*struct {
  16106. Fcode [0]Tush
  16107. Ffreq Tush
  16108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  16109. Fdl: *(*struct {
  16110. Flen1 [0]Tush
  16111. Fdad Tush
  16112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16113. },
  16114. 131: {
  16115. Ffc: *(*struct {
  16116. Fcode [0]Tush
  16117. Ffreq Tush
  16118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  16119. Fdl: *(*struct {
  16120. Flen1 [0]Tush
  16121. Fdad Tush
  16122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16123. },
  16124. 132: {
  16125. Ffc: *(*struct {
  16126. Fcode [0]Tush
  16127. Ffreq Tush
  16128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  16129. Fdl: *(*struct {
  16130. Flen1 [0]Tush
  16131. Fdad Tush
  16132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16133. },
  16134. 133: {
  16135. Ffc: *(*struct {
  16136. Fcode [0]Tush
  16137. Ffreq Tush
  16138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  16139. Fdl: *(*struct {
  16140. Flen1 [0]Tush
  16141. Fdad Tush
  16142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16143. },
  16144. 134: {
  16145. Ffc: *(*struct {
  16146. Fcode [0]Tush
  16147. Ffreq Tush
  16148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  16149. Fdl: *(*struct {
  16150. Flen1 [0]Tush
  16151. Fdad Tush
  16152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16153. },
  16154. 135: {
  16155. Ffc: *(*struct {
  16156. Fcode [0]Tush
  16157. Ffreq Tush
  16158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  16159. Fdl: *(*struct {
  16160. Flen1 [0]Tush
  16161. Fdad Tush
  16162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16163. },
  16164. 136: {
  16165. Ffc: *(*struct {
  16166. Fcode [0]Tush
  16167. Ffreq Tush
  16168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  16169. Fdl: *(*struct {
  16170. Flen1 [0]Tush
  16171. Fdad Tush
  16172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16173. },
  16174. 137: {
  16175. Ffc: *(*struct {
  16176. Fcode [0]Tush
  16177. Ffreq Tush
  16178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  16179. Fdl: *(*struct {
  16180. Flen1 [0]Tush
  16181. Fdad Tush
  16182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16183. },
  16184. 138: {
  16185. Ffc: *(*struct {
  16186. Fcode [0]Tush
  16187. Ffreq Tush
  16188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  16189. Fdl: *(*struct {
  16190. Flen1 [0]Tush
  16191. Fdad Tush
  16192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16193. },
  16194. 139: {
  16195. Ffc: *(*struct {
  16196. Fcode [0]Tush
  16197. Ffreq Tush
  16198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  16199. Fdl: *(*struct {
  16200. Flen1 [0]Tush
  16201. Fdad Tush
  16202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16203. },
  16204. 140: {
  16205. Ffc: *(*struct {
  16206. Fcode [0]Tush
  16207. Ffreq Tush
  16208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  16209. Fdl: *(*struct {
  16210. Flen1 [0]Tush
  16211. Fdad Tush
  16212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16213. },
  16214. 141: {
  16215. Ffc: *(*struct {
  16216. Fcode [0]Tush
  16217. Ffreq Tush
  16218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  16219. Fdl: *(*struct {
  16220. Flen1 [0]Tush
  16221. Fdad Tush
  16222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16223. },
  16224. 142: {
  16225. Ffc: *(*struct {
  16226. Fcode [0]Tush
  16227. Ffreq Tush
  16228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  16229. Fdl: *(*struct {
  16230. Flen1 [0]Tush
  16231. Fdad Tush
  16232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16233. },
  16234. 143: {
  16235. Ffc: *(*struct {
  16236. Fcode [0]Tush
  16237. Ffreq Tush
  16238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  16239. Fdl: *(*struct {
  16240. Flen1 [0]Tush
  16241. Fdad Tush
  16242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16243. },
  16244. 144: {
  16245. Ffc: *(*struct {
  16246. Fcode [0]Tush
  16247. Ffreq Tush
  16248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  16249. Fdl: *(*struct {
  16250. Flen1 [0]Tush
  16251. Fdad Tush
  16252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16253. },
  16254. 145: {
  16255. Ffc: *(*struct {
  16256. Fcode [0]Tush
  16257. Ffreq Tush
  16258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  16259. Fdl: *(*struct {
  16260. Flen1 [0]Tush
  16261. Fdad Tush
  16262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16263. },
  16264. 146: {
  16265. Ffc: *(*struct {
  16266. Fcode [0]Tush
  16267. Ffreq Tush
  16268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  16269. Fdl: *(*struct {
  16270. Flen1 [0]Tush
  16271. Fdad Tush
  16272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16273. },
  16274. 147: {
  16275. Ffc: *(*struct {
  16276. Fcode [0]Tush
  16277. Ffreq Tush
  16278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  16279. Fdl: *(*struct {
  16280. Flen1 [0]Tush
  16281. Fdad Tush
  16282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16283. },
  16284. 148: {
  16285. Ffc: *(*struct {
  16286. Fcode [0]Tush
  16287. Ffreq Tush
  16288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  16289. Fdl: *(*struct {
  16290. Flen1 [0]Tush
  16291. Fdad Tush
  16292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16293. },
  16294. 149: {
  16295. Ffc: *(*struct {
  16296. Fcode [0]Tush
  16297. Ffreq Tush
  16298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  16299. Fdl: *(*struct {
  16300. Flen1 [0]Tush
  16301. Fdad Tush
  16302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16303. },
  16304. 150: {
  16305. Ffc: *(*struct {
  16306. Fcode [0]Tush
  16307. Ffreq Tush
  16308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  16309. Fdl: *(*struct {
  16310. Flen1 [0]Tush
  16311. Fdad Tush
  16312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16313. },
  16314. 151: {
  16315. Ffc: *(*struct {
  16316. Fcode [0]Tush
  16317. Ffreq Tush
  16318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  16319. Fdl: *(*struct {
  16320. Flen1 [0]Tush
  16321. Fdad Tush
  16322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16323. },
  16324. 152: {
  16325. Ffc: *(*struct {
  16326. Fcode [0]Tush
  16327. Ffreq Tush
  16328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  16329. Fdl: *(*struct {
  16330. Flen1 [0]Tush
  16331. Fdad Tush
  16332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16333. },
  16334. 153: {
  16335. Ffc: *(*struct {
  16336. Fcode [0]Tush
  16337. Ffreq Tush
  16338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  16339. Fdl: *(*struct {
  16340. Flen1 [0]Tush
  16341. Fdad Tush
  16342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16343. },
  16344. 154: {
  16345. Ffc: *(*struct {
  16346. Fcode [0]Tush
  16347. Ffreq Tush
  16348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  16349. Fdl: *(*struct {
  16350. Flen1 [0]Tush
  16351. Fdad Tush
  16352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16353. },
  16354. 155: {
  16355. Ffc: *(*struct {
  16356. Fcode [0]Tush
  16357. Ffreq Tush
  16358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  16359. Fdl: *(*struct {
  16360. Flen1 [0]Tush
  16361. Fdad Tush
  16362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16363. },
  16364. 156: {
  16365. Ffc: *(*struct {
  16366. Fcode [0]Tush
  16367. Ffreq Tush
  16368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  16369. Fdl: *(*struct {
  16370. Flen1 [0]Tush
  16371. Fdad Tush
  16372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16373. },
  16374. 157: {
  16375. Ffc: *(*struct {
  16376. Fcode [0]Tush
  16377. Ffreq Tush
  16378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  16379. Fdl: *(*struct {
  16380. Flen1 [0]Tush
  16381. Fdad Tush
  16382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16383. },
  16384. 158: {
  16385. Ffc: *(*struct {
  16386. Fcode [0]Tush
  16387. Ffreq Tush
  16388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  16389. Fdl: *(*struct {
  16390. Flen1 [0]Tush
  16391. Fdad Tush
  16392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16393. },
  16394. 159: {
  16395. Ffc: *(*struct {
  16396. Fcode [0]Tush
  16397. Ffreq Tush
  16398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  16399. Fdl: *(*struct {
  16400. Flen1 [0]Tush
  16401. Fdad Tush
  16402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16403. },
  16404. 160: {
  16405. Ffc: *(*struct {
  16406. Fcode [0]Tush
  16407. Ffreq Tush
  16408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  16409. Fdl: *(*struct {
  16410. Flen1 [0]Tush
  16411. Fdad Tush
  16412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16413. },
  16414. 161: {
  16415. Ffc: *(*struct {
  16416. Fcode [0]Tush
  16417. Ffreq Tush
  16418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  16419. Fdl: *(*struct {
  16420. Flen1 [0]Tush
  16421. Fdad Tush
  16422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16423. },
  16424. 162: {
  16425. Ffc: *(*struct {
  16426. Fcode [0]Tush
  16427. Ffreq Tush
  16428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  16429. Fdl: *(*struct {
  16430. Flen1 [0]Tush
  16431. Fdad Tush
  16432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16433. },
  16434. 163: {
  16435. Ffc: *(*struct {
  16436. Fcode [0]Tush
  16437. Ffreq Tush
  16438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  16439. Fdl: *(*struct {
  16440. Flen1 [0]Tush
  16441. Fdad Tush
  16442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16443. },
  16444. 164: {
  16445. Ffc: *(*struct {
  16446. Fcode [0]Tush
  16447. Ffreq Tush
  16448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  16449. Fdl: *(*struct {
  16450. Flen1 [0]Tush
  16451. Fdad Tush
  16452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16453. },
  16454. 165: {
  16455. Ffc: *(*struct {
  16456. Fcode [0]Tush
  16457. Ffreq Tush
  16458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  16459. Fdl: *(*struct {
  16460. Flen1 [0]Tush
  16461. Fdad Tush
  16462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16463. },
  16464. 166: {
  16465. Ffc: *(*struct {
  16466. Fcode [0]Tush
  16467. Ffreq Tush
  16468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  16469. Fdl: *(*struct {
  16470. Flen1 [0]Tush
  16471. Fdad Tush
  16472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16473. },
  16474. 167: {
  16475. Ffc: *(*struct {
  16476. Fcode [0]Tush
  16477. Ffreq Tush
  16478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  16479. Fdl: *(*struct {
  16480. Flen1 [0]Tush
  16481. Fdad Tush
  16482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16483. },
  16484. 168: {
  16485. Ffc: *(*struct {
  16486. Fcode [0]Tush
  16487. Ffreq Tush
  16488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  16489. Fdl: *(*struct {
  16490. Flen1 [0]Tush
  16491. Fdad Tush
  16492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16493. },
  16494. 169: {
  16495. Ffc: *(*struct {
  16496. Fcode [0]Tush
  16497. Ffreq Tush
  16498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  16499. Fdl: *(*struct {
  16500. Flen1 [0]Tush
  16501. Fdad Tush
  16502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16503. },
  16504. 170: {
  16505. Ffc: *(*struct {
  16506. Fcode [0]Tush
  16507. Ffreq Tush
  16508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  16509. Fdl: *(*struct {
  16510. Flen1 [0]Tush
  16511. Fdad Tush
  16512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16513. },
  16514. 171: {
  16515. Ffc: *(*struct {
  16516. Fcode [0]Tush
  16517. Ffreq Tush
  16518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  16519. Fdl: *(*struct {
  16520. Flen1 [0]Tush
  16521. Fdad Tush
  16522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16523. },
  16524. 172: {
  16525. Ffc: *(*struct {
  16526. Fcode [0]Tush
  16527. Ffreq Tush
  16528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  16529. Fdl: *(*struct {
  16530. Flen1 [0]Tush
  16531. Fdad Tush
  16532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16533. },
  16534. 173: {
  16535. Ffc: *(*struct {
  16536. Fcode [0]Tush
  16537. Ffreq Tush
  16538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  16539. Fdl: *(*struct {
  16540. Flen1 [0]Tush
  16541. Fdad Tush
  16542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16543. },
  16544. 174: {
  16545. Ffc: *(*struct {
  16546. Fcode [0]Tush
  16547. Ffreq Tush
  16548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  16549. Fdl: *(*struct {
  16550. Flen1 [0]Tush
  16551. Fdad Tush
  16552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16553. },
  16554. 175: {
  16555. Ffc: *(*struct {
  16556. Fcode [0]Tush
  16557. Ffreq Tush
  16558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  16559. Fdl: *(*struct {
  16560. Flen1 [0]Tush
  16561. Fdad Tush
  16562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16563. },
  16564. 176: {
  16565. Ffc: *(*struct {
  16566. Fcode [0]Tush
  16567. Ffreq Tush
  16568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  16569. Fdl: *(*struct {
  16570. Flen1 [0]Tush
  16571. Fdad Tush
  16572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16573. },
  16574. 177: {
  16575. Ffc: *(*struct {
  16576. Fcode [0]Tush
  16577. Ffreq Tush
  16578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  16579. Fdl: *(*struct {
  16580. Flen1 [0]Tush
  16581. Fdad Tush
  16582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16583. },
  16584. 178: {
  16585. Ffc: *(*struct {
  16586. Fcode [0]Tush
  16587. Ffreq Tush
  16588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  16589. Fdl: *(*struct {
  16590. Flen1 [0]Tush
  16591. Fdad Tush
  16592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16593. },
  16594. 179: {
  16595. Ffc: *(*struct {
  16596. Fcode [0]Tush
  16597. Ffreq Tush
  16598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  16599. Fdl: *(*struct {
  16600. Flen1 [0]Tush
  16601. Fdad Tush
  16602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16603. },
  16604. 180: {
  16605. Ffc: *(*struct {
  16606. Fcode [0]Tush
  16607. Ffreq Tush
  16608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  16609. Fdl: *(*struct {
  16610. Flen1 [0]Tush
  16611. Fdad Tush
  16612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16613. },
  16614. 181: {
  16615. Ffc: *(*struct {
  16616. Fcode [0]Tush
  16617. Ffreq Tush
  16618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  16619. Fdl: *(*struct {
  16620. Flen1 [0]Tush
  16621. Fdad Tush
  16622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16623. },
  16624. 182: {
  16625. Ffc: *(*struct {
  16626. Fcode [0]Tush
  16627. Ffreq Tush
  16628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  16629. Fdl: *(*struct {
  16630. Flen1 [0]Tush
  16631. Fdad Tush
  16632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16633. },
  16634. 183: {
  16635. Ffc: *(*struct {
  16636. Fcode [0]Tush
  16637. Ffreq Tush
  16638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  16639. Fdl: *(*struct {
  16640. Flen1 [0]Tush
  16641. Fdad Tush
  16642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16643. },
  16644. 184: {
  16645. Ffc: *(*struct {
  16646. Fcode [0]Tush
  16647. Ffreq Tush
  16648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  16649. Fdl: *(*struct {
  16650. Flen1 [0]Tush
  16651. Fdad Tush
  16652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16653. },
  16654. 185: {
  16655. Ffc: *(*struct {
  16656. Fcode [0]Tush
  16657. Ffreq Tush
  16658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  16659. Fdl: *(*struct {
  16660. Flen1 [0]Tush
  16661. Fdad Tush
  16662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16663. },
  16664. 186: {
  16665. Ffc: *(*struct {
  16666. Fcode [0]Tush
  16667. Ffreq Tush
  16668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  16669. Fdl: *(*struct {
  16670. Flen1 [0]Tush
  16671. Fdad Tush
  16672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16673. },
  16674. 187: {
  16675. Ffc: *(*struct {
  16676. Fcode [0]Tush
  16677. Ffreq Tush
  16678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  16679. Fdl: *(*struct {
  16680. Flen1 [0]Tush
  16681. Fdad Tush
  16682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16683. },
  16684. 188: {
  16685. Ffc: *(*struct {
  16686. Fcode [0]Tush
  16687. Ffreq Tush
  16688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  16689. Fdl: *(*struct {
  16690. Flen1 [0]Tush
  16691. Fdad Tush
  16692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16693. },
  16694. 189: {
  16695. Ffc: *(*struct {
  16696. Fcode [0]Tush
  16697. Ffreq Tush
  16698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  16699. Fdl: *(*struct {
  16700. Flen1 [0]Tush
  16701. Fdad Tush
  16702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16703. },
  16704. 190: {
  16705. Ffc: *(*struct {
  16706. Fcode [0]Tush
  16707. Ffreq Tush
  16708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  16709. Fdl: *(*struct {
  16710. Flen1 [0]Tush
  16711. Fdad Tush
  16712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16713. },
  16714. 191: {
  16715. Ffc: *(*struct {
  16716. Fcode [0]Tush
  16717. Ffreq Tush
  16718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  16719. Fdl: *(*struct {
  16720. Flen1 [0]Tush
  16721. Fdad Tush
  16722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16723. },
  16724. 192: {
  16725. Ffc: *(*struct {
  16726. Fcode [0]Tush
  16727. Ffreq Tush
  16728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  16729. Fdl: *(*struct {
  16730. Flen1 [0]Tush
  16731. Fdad Tush
  16732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16733. },
  16734. 193: {
  16735. Ffc: *(*struct {
  16736. Fcode [0]Tush
  16737. Ffreq Tush
  16738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  16739. Fdl: *(*struct {
  16740. Flen1 [0]Tush
  16741. Fdad Tush
  16742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16743. },
  16744. 194: {
  16745. Ffc: *(*struct {
  16746. Fcode [0]Tush
  16747. Ffreq Tush
  16748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  16749. Fdl: *(*struct {
  16750. Flen1 [0]Tush
  16751. Fdad Tush
  16752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16753. },
  16754. 195: {
  16755. Ffc: *(*struct {
  16756. Fcode [0]Tush
  16757. Ffreq Tush
  16758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  16759. Fdl: *(*struct {
  16760. Flen1 [0]Tush
  16761. Fdad Tush
  16762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16763. },
  16764. 196: {
  16765. Ffc: *(*struct {
  16766. Fcode [0]Tush
  16767. Ffreq Tush
  16768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  16769. Fdl: *(*struct {
  16770. Flen1 [0]Tush
  16771. Fdad Tush
  16772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16773. },
  16774. 197: {
  16775. Ffc: *(*struct {
  16776. Fcode [0]Tush
  16777. Ffreq Tush
  16778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  16779. Fdl: *(*struct {
  16780. Flen1 [0]Tush
  16781. Fdad Tush
  16782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16783. },
  16784. 198: {
  16785. Ffc: *(*struct {
  16786. Fcode [0]Tush
  16787. Ffreq Tush
  16788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  16789. Fdl: *(*struct {
  16790. Flen1 [0]Tush
  16791. Fdad Tush
  16792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16793. },
  16794. 199: {
  16795. Ffc: *(*struct {
  16796. Fcode [0]Tush
  16797. Ffreq Tush
  16798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  16799. Fdl: *(*struct {
  16800. Flen1 [0]Tush
  16801. Fdad Tush
  16802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16803. },
  16804. 200: {
  16805. Ffc: *(*struct {
  16806. Fcode [0]Tush
  16807. Ffreq Tush
  16808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  16809. Fdl: *(*struct {
  16810. Flen1 [0]Tush
  16811. Fdad Tush
  16812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16813. },
  16814. 201: {
  16815. Ffc: *(*struct {
  16816. Fcode [0]Tush
  16817. Ffreq Tush
  16818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  16819. Fdl: *(*struct {
  16820. Flen1 [0]Tush
  16821. Fdad Tush
  16822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16823. },
  16824. 202: {
  16825. Ffc: *(*struct {
  16826. Fcode [0]Tush
  16827. Ffreq Tush
  16828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  16829. Fdl: *(*struct {
  16830. Flen1 [0]Tush
  16831. Fdad Tush
  16832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16833. },
  16834. 203: {
  16835. Ffc: *(*struct {
  16836. Fcode [0]Tush
  16837. Ffreq Tush
  16838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  16839. Fdl: *(*struct {
  16840. Flen1 [0]Tush
  16841. Fdad Tush
  16842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16843. },
  16844. 204: {
  16845. Ffc: *(*struct {
  16846. Fcode [0]Tush
  16847. Ffreq Tush
  16848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  16849. Fdl: *(*struct {
  16850. Flen1 [0]Tush
  16851. Fdad Tush
  16852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16853. },
  16854. 205: {
  16855. Ffc: *(*struct {
  16856. Fcode [0]Tush
  16857. Ffreq Tush
  16858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  16859. Fdl: *(*struct {
  16860. Flen1 [0]Tush
  16861. Fdad Tush
  16862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16863. },
  16864. 206: {
  16865. Ffc: *(*struct {
  16866. Fcode [0]Tush
  16867. Ffreq Tush
  16868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  16869. Fdl: *(*struct {
  16870. Flen1 [0]Tush
  16871. Fdad Tush
  16872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16873. },
  16874. 207: {
  16875. Ffc: *(*struct {
  16876. Fcode [0]Tush
  16877. Ffreq Tush
  16878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  16879. Fdl: *(*struct {
  16880. Flen1 [0]Tush
  16881. Fdad Tush
  16882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16883. },
  16884. 208: {
  16885. Ffc: *(*struct {
  16886. Fcode [0]Tush
  16887. Ffreq Tush
  16888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  16889. Fdl: *(*struct {
  16890. Flen1 [0]Tush
  16891. Fdad Tush
  16892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16893. },
  16894. 209: {
  16895. Ffc: *(*struct {
  16896. Fcode [0]Tush
  16897. Ffreq Tush
  16898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  16899. Fdl: *(*struct {
  16900. Flen1 [0]Tush
  16901. Fdad Tush
  16902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16903. },
  16904. 210: {
  16905. Ffc: *(*struct {
  16906. Fcode [0]Tush
  16907. Ffreq Tush
  16908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  16909. Fdl: *(*struct {
  16910. Flen1 [0]Tush
  16911. Fdad Tush
  16912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16913. },
  16914. 211: {
  16915. Ffc: *(*struct {
  16916. Fcode [0]Tush
  16917. Ffreq Tush
  16918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  16919. Fdl: *(*struct {
  16920. Flen1 [0]Tush
  16921. Fdad Tush
  16922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16923. },
  16924. 212: {
  16925. Ffc: *(*struct {
  16926. Fcode [0]Tush
  16927. Ffreq Tush
  16928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  16929. Fdl: *(*struct {
  16930. Flen1 [0]Tush
  16931. Fdad Tush
  16932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16933. },
  16934. 213: {
  16935. Ffc: *(*struct {
  16936. Fcode [0]Tush
  16937. Ffreq Tush
  16938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  16939. Fdl: *(*struct {
  16940. Flen1 [0]Tush
  16941. Fdad Tush
  16942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16943. },
  16944. 214: {
  16945. Ffc: *(*struct {
  16946. Fcode [0]Tush
  16947. Ffreq Tush
  16948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  16949. Fdl: *(*struct {
  16950. Flen1 [0]Tush
  16951. Fdad Tush
  16952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16953. },
  16954. 215: {
  16955. Ffc: *(*struct {
  16956. Fcode [0]Tush
  16957. Ffreq Tush
  16958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  16959. Fdl: *(*struct {
  16960. Flen1 [0]Tush
  16961. Fdad Tush
  16962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16963. },
  16964. 216: {
  16965. Ffc: *(*struct {
  16966. Fcode [0]Tush
  16967. Ffreq Tush
  16968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  16969. Fdl: *(*struct {
  16970. Flen1 [0]Tush
  16971. Fdad Tush
  16972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16973. },
  16974. 217: {
  16975. Ffc: *(*struct {
  16976. Fcode [0]Tush
  16977. Ffreq Tush
  16978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  16979. Fdl: *(*struct {
  16980. Flen1 [0]Tush
  16981. Fdad Tush
  16982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16983. },
  16984. 218: {
  16985. Ffc: *(*struct {
  16986. Fcode [0]Tush
  16987. Ffreq Tush
  16988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  16989. Fdl: *(*struct {
  16990. Flen1 [0]Tush
  16991. Fdad Tush
  16992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16993. },
  16994. 219: {
  16995. Ffc: *(*struct {
  16996. Fcode [0]Tush
  16997. Ffreq Tush
  16998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  16999. Fdl: *(*struct {
  17000. Flen1 [0]Tush
  17001. Fdad Tush
  17002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17003. },
  17004. 220: {
  17005. Ffc: *(*struct {
  17006. Fcode [0]Tush
  17007. Ffreq Tush
  17008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  17009. Fdl: *(*struct {
  17010. Flen1 [0]Tush
  17011. Fdad Tush
  17012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17013. },
  17014. 221: {
  17015. Ffc: *(*struct {
  17016. Fcode [0]Tush
  17017. Ffreq Tush
  17018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  17019. Fdl: *(*struct {
  17020. Flen1 [0]Tush
  17021. Fdad Tush
  17022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17023. },
  17024. 222: {
  17025. Ffc: *(*struct {
  17026. Fcode [0]Tush
  17027. Ffreq Tush
  17028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  17029. Fdl: *(*struct {
  17030. Flen1 [0]Tush
  17031. Fdad Tush
  17032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17033. },
  17034. 223: {
  17035. Ffc: *(*struct {
  17036. Fcode [0]Tush
  17037. Ffreq Tush
  17038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  17039. Fdl: *(*struct {
  17040. Flen1 [0]Tush
  17041. Fdad Tush
  17042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17043. },
  17044. 224: {
  17045. Ffc: *(*struct {
  17046. Fcode [0]Tush
  17047. Ffreq Tush
  17048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  17049. Fdl: *(*struct {
  17050. Flen1 [0]Tush
  17051. Fdad Tush
  17052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17053. },
  17054. 225: {
  17055. Ffc: *(*struct {
  17056. Fcode [0]Tush
  17057. Ffreq Tush
  17058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  17059. Fdl: *(*struct {
  17060. Flen1 [0]Tush
  17061. Fdad Tush
  17062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17063. },
  17064. 226: {
  17065. Ffc: *(*struct {
  17066. Fcode [0]Tush
  17067. Ffreq Tush
  17068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  17069. Fdl: *(*struct {
  17070. Flen1 [0]Tush
  17071. Fdad Tush
  17072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17073. },
  17074. 227: {
  17075. Ffc: *(*struct {
  17076. Fcode [0]Tush
  17077. Ffreq Tush
  17078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  17079. Fdl: *(*struct {
  17080. Flen1 [0]Tush
  17081. Fdad Tush
  17082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17083. },
  17084. 228: {
  17085. Ffc: *(*struct {
  17086. Fcode [0]Tush
  17087. Ffreq Tush
  17088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  17089. Fdl: *(*struct {
  17090. Flen1 [0]Tush
  17091. Fdad Tush
  17092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17093. },
  17094. 229: {
  17095. Ffc: *(*struct {
  17096. Fcode [0]Tush
  17097. Ffreq Tush
  17098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  17099. Fdl: *(*struct {
  17100. Flen1 [0]Tush
  17101. Fdad Tush
  17102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17103. },
  17104. 230: {
  17105. Ffc: *(*struct {
  17106. Fcode [0]Tush
  17107. Ffreq Tush
  17108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  17109. Fdl: *(*struct {
  17110. Flen1 [0]Tush
  17111. Fdad Tush
  17112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17113. },
  17114. 231: {
  17115. Ffc: *(*struct {
  17116. Fcode [0]Tush
  17117. Ffreq Tush
  17118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  17119. Fdl: *(*struct {
  17120. Flen1 [0]Tush
  17121. Fdad Tush
  17122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17123. },
  17124. 232: {
  17125. Ffc: *(*struct {
  17126. Fcode [0]Tush
  17127. Ffreq Tush
  17128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  17129. Fdl: *(*struct {
  17130. Flen1 [0]Tush
  17131. Fdad Tush
  17132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17133. },
  17134. 233: {
  17135. Ffc: *(*struct {
  17136. Fcode [0]Tush
  17137. Ffreq Tush
  17138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  17139. Fdl: *(*struct {
  17140. Flen1 [0]Tush
  17141. Fdad Tush
  17142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17143. },
  17144. 234: {
  17145. Ffc: *(*struct {
  17146. Fcode [0]Tush
  17147. Ffreq Tush
  17148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  17149. Fdl: *(*struct {
  17150. Flen1 [0]Tush
  17151. Fdad Tush
  17152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17153. },
  17154. 235: {
  17155. Ffc: *(*struct {
  17156. Fcode [0]Tush
  17157. Ffreq Tush
  17158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  17159. Fdl: *(*struct {
  17160. Flen1 [0]Tush
  17161. Fdad Tush
  17162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17163. },
  17164. 236: {
  17165. Ffc: *(*struct {
  17166. Fcode [0]Tush
  17167. Ffreq Tush
  17168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  17169. Fdl: *(*struct {
  17170. Flen1 [0]Tush
  17171. Fdad Tush
  17172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17173. },
  17174. 237: {
  17175. Ffc: *(*struct {
  17176. Fcode [0]Tush
  17177. Ffreq Tush
  17178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  17179. Fdl: *(*struct {
  17180. Flen1 [0]Tush
  17181. Fdad Tush
  17182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17183. },
  17184. 238: {
  17185. Ffc: *(*struct {
  17186. Fcode [0]Tush
  17187. Ffreq Tush
  17188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  17189. Fdl: *(*struct {
  17190. Flen1 [0]Tush
  17191. Fdad Tush
  17192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17193. },
  17194. 239: {
  17195. Ffc: *(*struct {
  17196. Fcode [0]Tush
  17197. Ffreq Tush
  17198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  17199. Fdl: *(*struct {
  17200. Flen1 [0]Tush
  17201. Fdad Tush
  17202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17203. },
  17204. 240: {
  17205. Ffc: *(*struct {
  17206. Fcode [0]Tush
  17207. Ffreq Tush
  17208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  17209. Fdl: *(*struct {
  17210. Flen1 [0]Tush
  17211. Fdad Tush
  17212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17213. },
  17214. 241: {
  17215. Ffc: *(*struct {
  17216. Fcode [0]Tush
  17217. Ffreq Tush
  17218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  17219. Fdl: *(*struct {
  17220. Flen1 [0]Tush
  17221. Fdad Tush
  17222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17223. },
  17224. 242: {
  17225. Ffc: *(*struct {
  17226. Fcode [0]Tush
  17227. Ffreq Tush
  17228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  17229. Fdl: *(*struct {
  17230. Flen1 [0]Tush
  17231. Fdad Tush
  17232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17233. },
  17234. 243: {
  17235. Ffc: *(*struct {
  17236. Fcode [0]Tush
  17237. Ffreq Tush
  17238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  17239. Fdl: *(*struct {
  17240. Flen1 [0]Tush
  17241. Fdad Tush
  17242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17243. },
  17244. 244: {
  17245. Ffc: *(*struct {
  17246. Fcode [0]Tush
  17247. Ffreq Tush
  17248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  17249. Fdl: *(*struct {
  17250. Flen1 [0]Tush
  17251. Fdad Tush
  17252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17253. },
  17254. 245: {
  17255. Ffc: *(*struct {
  17256. Fcode [0]Tush
  17257. Ffreq Tush
  17258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  17259. Fdl: *(*struct {
  17260. Flen1 [0]Tush
  17261. Fdad Tush
  17262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17263. },
  17264. 246: {
  17265. Ffc: *(*struct {
  17266. Fcode [0]Tush
  17267. Ffreq Tush
  17268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  17269. Fdl: *(*struct {
  17270. Flen1 [0]Tush
  17271. Fdad Tush
  17272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17273. },
  17274. 247: {
  17275. Ffc: *(*struct {
  17276. Fcode [0]Tush
  17277. Ffreq Tush
  17278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  17279. Fdl: *(*struct {
  17280. Flen1 [0]Tush
  17281. Fdad Tush
  17282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17283. },
  17284. 248: {
  17285. Ffc: *(*struct {
  17286. Fcode [0]Tush
  17287. Ffreq Tush
  17288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  17289. Fdl: *(*struct {
  17290. Flen1 [0]Tush
  17291. Fdad Tush
  17292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17293. },
  17294. 249: {
  17295. Ffc: *(*struct {
  17296. Fcode [0]Tush
  17297. Ffreq Tush
  17298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  17299. Fdl: *(*struct {
  17300. Flen1 [0]Tush
  17301. Fdad Tush
  17302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17303. },
  17304. 250: {
  17305. Ffc: *(*struct {
  17306. Fcode [0]Tush
  17307. Ffreq Tush
  17308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  17309. Fdl: *(*struct {
  17310. Flen1 [0]Tush
  17311. Fdad Tush
  17312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17313. },
  17314. 251: {
  17315. Ffc: *(*struct {
  17316. Fcode [0]Tush
  17317. Ffreq Tush
  17318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  17319. Fdl: *(*struct {
  17320. Flen1 [0]Tush
  17321. Fdad Tush
  17322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17323. },
  17324. 252: {
  17325. Ffc: *(*struct {
  17326. Fcode [0]Tush
  17327. Ffreq Tush
  17328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  17329. Fdl: *(*struct {
  17330. Flen1 [0]Tush
  17331. Fdad Tush
  17332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17333. },
  17334. 253: {
  17335. Ffc: *(*struct {
  17336. Fcode [0]Tush
  17337. Ffreq Tush
  17338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  17339. Fdl: *(*struct {
  17340. Flen1 [0]Tush
  17341. Fdad Tush
  17342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17343. },
  17344. 254: {
  17345. Ffc: *(*struct {
  17346. Fcode [0]Tush
  17347. Ffreq Tush
  17348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  17349. Fdl: *(*struct {
  17350. Flen1 [0]Tush
  17351. Fdad Tush
  17352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17353. },
  17354. 255: {
  17355. Ffc: *(*struct {
  17356. Fcode [0]Tush
  17357. Ffreq Tush
  17358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  17359. Fdl: *(*struct {
  17360. Flen1 [0]Tush
  17361. Fdad Tush
  17362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17363. },
  17364. 256: {
  17365. Fdl: *(*struct {
  17366. Flen1 [0]Tush
  17367. Fdad Tush
  17368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17369. },
  17370. 257: {
  17371. Ffc: *(*struct {
  17372. Fcode [0]Tush
  17373. Ffreq Tush
  17374. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  17375. Fdl: *(*struct {
  17376. Flen1 [0]Tush
  17377. Fdad Tush
  17378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17379. },
  17380. 258: {
  17381. Ffc: *(*struct {
  17382. Fcode [0]Tush
  17383. Ffreq Tush
  17384. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  17385. Fdl: *(*struct {
  17386. Flen1 [0]Tush
  17387. Fdad Tush
  17388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17389. },
  17390. 259: {
  17391. Ffc: *(*struct {
  17392. Fcode [0]Tush
  17393. Ffreq Tush
  17394. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  17395. Fdl: *(*struct {
  17396. Flen1 [0]Tush
  17397. Fdad Tush
  17398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17399. },
  17400. 260: {
  17401. Ffc: *(*struct {
  17402. Fcode [0]Tush
  17403. Ffreq Tush
  17404. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17405. Fdl: *(*struct {
  17406. Flen1 [0]Tush
  17407. Fdad Tush
  17408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17409. },
  17410. 261: {
  17411. Ffc: *(*struct {
  17412. Fcode [0]Tush
  17413. Ffreq Tush
  17414. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  17415. Fdl: *(*struct {
  17416. Flen1 [0]Tush
  17417. Fdad Tush
  17418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17419. },
  17420. 262: {
  17421. Ffc: *(*struct {
  17422. Fcode [0]Tush
  17423. Ffreq Tush
  17424. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  17425. Fdl: *(*struct {
  17426. Flen1 [0]Tush
  17427. Fdad Tush
  17428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17429. },
  17430. 263: {
  17431. Ffc: *(*struct {
  17432. Fcode [0]Tush
  17433. Ffreq Tush
  17434. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  17435. Fdl: *(*struct {
  17436. Flen1 [0]Tush
  17437. Fdad Tush
  17438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17439. },
  17440. 264: {
  17441. Ffc: *(*struct {
  17442. Fcode [0]Tush
  17443. Ffreq Tush
  17444. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17445. Fdl: *(*struct {
  17446. Flen1 [0]Tush
  17447. Fdad Tush
  17448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17449. },
  17450. 265: {
  17451. Ffc: *(*struct {
  17452. Fcode [0]Tush
  17453. Ffreq Tush
  17454. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  17455. Fdl: *(*struct {
  17456. Flen1 [0]Tush
  17457. Fdad Tush
  17458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17459. },
  17460. 266: {
  17461. Ffc: *(*struct {
  17462. Fcode [0]Tush
  17463. Ffreq Tush
  17464. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  17465. Fdl: *(*struct {
  17466. Flen1 [0]Tush
  17467. Fdad Tush
  17468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17469. },
  17470. 267: {
  17471. Ffc: *(*struct {
  17472. Fcode [0]Tush
  17473. Ffreq Tush
  17474. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  17475. Fdl: *(*struct {
  17476. Flen1 [0]Tush
  17477. Fdad Tush
  17478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17479. },
  17480. 268: {
  17481. Ffc: *(*struct {
  17482. Fcode [0]Tush
  17483. Ffreq Tush
  17484. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  17485. Fdl: *(*struct {
  17486. Flen1 [0]Tush
  17487. Fdad Tush
  17488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17489. },
  17490. 269: {
  17491. Ffc: *(*struct {
  17492. Fcode [0]Tush
  17493. Ffreq Tush
  17494. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  17495. Fdl: *(*struct {
  17496. Flen1 [0]Tush
  17497. Fdad Tush
  17498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17499. },
  17500. 270: {
  17501. Ffc: *(*struct {
  17502. Fcode [0]Tush
  17503. Ffreq Tush
  17504. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  17505. Fdl: *(*struct {
  17506. Flen1 [0]Tush
  17507. Fdad Tush
  17508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17509. },
  17510. 271: {
  17511. Ffc: *(*struct {
  17512. Fcode [0]Tush
  17513. Ffreq Tush
  17514. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  17515. Fdl: *(*struct {
  17516. Flen1 [0]Tush
  17517. Fdad Tush
  17518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17519. },
  17520. 272: {
  17521. Ffc: *(*struct {
  17522. Fcode [0]Tush
  17523. Ffreq Tush
  17524. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  17525. Fdl: *(*struct {
  17526. Flen1 [0]Tush
  17527. Fdad Tush
  17528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17529. },
  17530. 273: {
  17531. Ffc: *(*struct {
  17532. Fcode [0]Tush
  17533. Ffreq Tush
  17534. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  17535. Fdl: *(*struct {
  17536. Flen1 [0]Tush
  17537. Fdad Tush
  17538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17539. },
  17540. 274: {
  17541. Ffc: *(*struct {
  17542. Fcode [0]Tush
  17543. Ffreq Tush
  17544. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  17545. Fdl: *(*struct {
  17546. Flen1 [0]Tush
  17547. Fdad Tush
  17548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17549. },
  17550. 275: {
  17551. Ffc: *(*struct {
  17552. Fcode [0]Tush
  17553. Ffreq Tush
  17554. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  17555. Fdl: *(*struct {
  17556. Flen1 [0]Tush
  17557. Fdad Tush
  17558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17559. },
  17560. 276: {
  17561. Ffc: *(*struct {
  17562. Fcode [0]Tush
  17563. Ffreq Tush
  17564. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  17565. Fdl: *(*struct {
  17566. Flen1 [0]Tush
  17567. Fdad Tush
  17568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17569. },
  17570. 277: {
  17571. Ffc: *(*struct {
  17572. Fcode [0]Tush
  17573. Ffreq Tush
  17574. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  17575. Fdl: *(*struct {
  17576. Flen1 [0]Tush
  17577. Fdad Tush
  17578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17579. },
  17580. 278: {
  17581. Ffc: *(*struct {
  17582. Fcode [0]Tush
  17583. Ffreq Tush
  17584. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  17585. Fdl: *(*struct {
  17586. Flen1 [0]Tush
  17587. Fdad Tush
  17588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17589. },
  17590. 279: {
  17591. Ffc: *(*struct {
  17592. Fcode [0]Tush
  17593. Ffreq Tush
  17594. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  17595. Fdl: *(*struct {
  17596. Flen1 [0]Tush
  17597. Fdad Tush
  17598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17599. },
  17600. 280: {
  17601. Ffc: *(*struct {
  17602. Fcode [0]Tush
  17603. Ffreq Tush
  17604. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  17605. Fdl: *(*struct {
  17606. Flen1 [0]Tush
  17607. Fdad Tush
  17608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17609. },
  17610. 281: {
  17611. Ffc: *(*struct {
  17612. Fcode [0]Tush
  17613. Ffreq Tush
  17614. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  17615. Fdl: *(*struct {
  17616. Flen1 [0]Tush
  17617. Fdad Tush
  17618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17619. },
  17620. 282: {
  17621. Ffc: *(*struct {
  17622. Fcode [0]Tush
  17623. Ffreq Tush
  17624. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  17625. Fdl: *(*struct {
  17626. Flen1 [0]Tush
  17627. Fdad Tush
  17628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17629. },
  17630. 283: {
  17631. Ffc: *(*struct {
  17632. Fcode [0]Tush
  17633. Ffreq Tush
  17634. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  17635. Fdl: *(*struct {
  17636. Flen1 [0]Tush
  17637. Fdad Tush
  17638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17639. },
  17640. 284: {
  17641. Ffc: *(*struct {
  17642. Fcode [0]Tush
  17643. Ffreq Tush
  17644. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  17645. Fdl: *(*struct {
  17646. Flen1 [0]Tush
  17647. Fdad Tush
  17648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17649. },
  17650. 285: {
  17651. Ffc: *(*struct {
  17652. Fcode [0]Tush
  17653. Ffreq Tush
  17654. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  17655. Fdl: *(*struct {
  17656. Flen1 [0]Tush
  17657. Fdad Tush
  17658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17659. },
  17660. 286: {
  17661. Ffc: *(*struct {
  17662. Fcode [0]Tush
  17663. Ffreq Tush
  17664. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  17665. Fdl: *(*struct {
  17666. Flen1 [0]Tush
  17667. Fdad Tush
  17668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17669. },
  17670. 287: {
  17671. Ffc: *(*struct {
  17672. Fcode [0]Tush
  17673. Ffreq Tush
  17674. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  17675. Fdl: *(*struct {
  17676. Flen1 [0]Tush
  17677. Fdad Tush
  17678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17679. },
  17680. }
  17681. var _static_dtree = [30]Tct_data{
  17682. 0: {
  17683. Fdl: *(*struct {
  17684. Flen1 [0]Tush
  17685. Fdad Tush
  17686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17687. },
  17688. 1: {
  17689. Ffc: *(*struct {
  17690. Fcode [0]Tush
  17691. Ffreq Tush
  17692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17693. Fdl: *(*struct {
  17694. Flen1 [0]Tush
  17695. Fdad Tush
  17696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17697. },
  17698. 2: {
  17699. Ffc: *(*struct {
  17700. Fcode [0]Tush
  17701. Ffreq Tush
  17702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17703. Fdl: *(*struct {
  17704. Flen1 [0]Tush
  17705. Fdad Tush
  17706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17707. },
  17708. 3: {
  17709. Ffc: *(*struct {
  17710. Fcode [0]Tush
  17711. Ffreq Tush
  17712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  17713. Fdl: *(*struct {
  17714. Flen1 [0]Tush
  17715. Fdad Tush
  17716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17717. },
  17718. 4: {
  17719. Ffc: *(*struct {
  17720. Fcode [0]Tush
  17721. Ffreq Tush
  17722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  17723. Fdl: *(*struct {
  17724. Flen1 [0]Tush
  17725. Fdad Tush
  17726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17727. },
  17728. 5: {
  17729. Ffc: *(*struct {
  17730. Fcode [0]Tush
  17731. Ffreq Tush
  17732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  17733. Fdl: *(*struct {
  17734. Flen1 [0]Tush
  17735. Fdad Tush
  17736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17737. },
  17738. 6: {
  17739. Ffc: *(*struct {
  17740. Fcode [0]Tush
  17741. Ffreq Tush
  17742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  17743. Fdl: *(*struct {
  17744. Flen1 [0]Tush
  17745. Fdad Tush
  17746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17747. },
  17748. 7: {
  17749. Ffc: *(*struct {
  17750. Fcode [0]Tush
  17751. Ffreq Tush
  17752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  17753. Fdl: *(*struct {
  17754. Flen1 [0]Tush
  17755. Fdad Tush
  17756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17757. },
  17758. 8: {
  17759. Ffc: *(*struct {
  17760. Fcode [0]Tush
  17761. Ffreq Tush
  17762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  17763. Fdl: *(*struct {
  17764. Flen1 [0]Tush
  17765. Fdad Tush
  17766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17767. },
  17768. 9: {
  17769. Ffc: *(*struct {
  17770. Fcode [0]Tush
  17771. Ffreq Tush
  17772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  17773. Fdl: *(*struct {
  17774. Flen1 [0]Tush
  17775. Fdad Tush
  17776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17777. },
  17778. 10: {
  17779. Ffc: *(*struct {
  17780. Fcode [0]Tush
  17781. Ffreq Tush
  17782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  17783. Fdl: *(*struct {
  17784. Flen1 [0]Tush
  17785. Fdad Tush
  17786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17787. },
  17788. 11: {
  17789. Ffc: *(*struct {
  17790. Fcode [0]Tush
  17791. Ffreq Tush
  17792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  17793. Fdl: *(*struct {
  17794. Flen1 [0]Tush
  17795. Fdad Tush
  17796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17797. },
  17798. 12: {
  17799. Ffc: *(*struct {
  17800. Fcode [0]Tush
  17801. Ffreq Tush
  17802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  17803. Fdl: *(*struct {
  17804. Flen1 [0]Tush
  17805. Fdad Tush
  17806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17807. },
  17808. 13: {
  17809. Ffc: *(*struct {
  17810. Fcode [0]Tush
  17811. Ffreq Tush
  17812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  17813. Fdl: *(*struct {
  17814. Flen1 [0]Tush
  17815. Fdad Tush
  17816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17817. },
  17818. 14: {
  17819. Ffc: *(*struct {
  17820. Fcode [0]Tush
  17821. Ffreq Tush
  17822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  17823. Fdl: *(*struct {
  17824. Flen1 [0]Tush
  17825. Fdad Tush
  17826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17827. },
  17828. 15: {
  17829. Ffc: *(*struct {
  17830. Fcode [0]Tush
  17831. Ffreq Tush
  17832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  17833. Fdl: *(*struct {
  17834. Flen1 [0]Tush
  17835. Fdad Tush
  17836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17837. },
  17838. 16: {
  17839. Ffc: *(*struct {
  17840. Fcode [0]Tush
  17841. Ffreq Tush
  17842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  17843. Fdl: *(*struct {
  17844. Flen1 [0]Tush
  17845. Fdad Tush
  17846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17847. },
  17848. 17: {
  17849. Ffc: *(*struct {
  17850. Fcode [0]Tush
  17851. Ffreq Tush
  17852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  17853. Fdl: *(*struct {
  17854. Flen1 [0]Tush
  17855. Fdad Tush
  17856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17857. },
  17858. 18: {
  17859. Ffc: *(*struct {
  17860. Fcode [0]Tush
  17861. Ffreq Tush
  17862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17863. Fdl: *(*struct {
  17864. Flen1 [0]Tush
  17865. Fdad Tush
  17866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17867. },
  17868. 19: {
  17869. Ffc: *(*struct {
  17870. Fcode [0]Tush
  17871. Ffreq Tush
  17872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  17873. Fdl: *(*struct {
  17874. Flen1 [0]Tush
  17875. Fdad Tush
  17876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17877. },
  17878. 20: {
  17879. Ffc: *(*struct {
  17880. Fcode [0]Tush
  17881. Ffreq Tush
  17882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17883. Fdl: *(*struct {
  17884. Flen1 [0]Tush
  17885. Fdad Tush
  17886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17887. },
  17888. 21: {
  17889. Ffc: *(*struct {
  17890. Fcode [0]Tush
  17891. Ffreq Tush
  17892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  17893. Fdl: *(*struct {
  17894. Flen1 [0]Tush
  17895. Fdad Tush
  17896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17897. },
  17898. 22: {
  17899. Ffc: *(*struct {
  17900. Fcode [0]Tush
  17901. Ffreq Tush
  17902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  17903. Fdl: *(*struct {
  17904. Flen1 [0]Tush
  17905. Fdad Tush
  17906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17907. },
  17908. 23: {
  17909. Ffc: *(*struct {
  17910. Fcode [0]Tush
  17911. Ffreq Tush
  17912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  17913. Fdl: *(*struct {
  17914. Flen1 [0]Tush
  17915. Fdad Tush
  17916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17917. },
  17918. 24: {
  17919. Ffc: *(*struct {
  17920. Fcode [0]Tush
  17921. Ffreq Tush
  17922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  17923. Fdl: *(*struct {
  17924. Flen1 [0]Tush
  17925. Fdad Tush
  17926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17927. },
  17928. 25: {
  17929. Ffc: *(*struct {
  17930. Fcode [0]Tush
  17931. Ffreq Tush
  17932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  17933. Fdl: *(*struct {
  17934. Flen1 [0]Tush
  17935. Fdad Tush
  17936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17937. },
  17938. 26: {
  17939. Ffc: *(*struct {
  17940. Fcode [0]Tush
  17941. Ffreq Tush
  17942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  17943. Fdl: *(*struct {
  17944. Flen1 [0]Tush
  17945. Fdad Tush
  17946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17947. },
  17948. 27: {
  17949. Ffc: *(*struct {
  17950. Fcode [0]Tush
  17951. Ffreq Tush
  17952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  17953. Fdl: *(*struct {
  17954. Flen1 [0]Tush
  17955. Fdad Tush
  17956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17957. },
  17958. 28: {
  17959. Ffc: *(*struct {
  17960. Fcode [0]Tush
  17961. Ffreq Tush
  17962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17963. Fdl: *(*struct {
  17964. Flen1 [0]Tush
  17965. Fdad Tush
  17966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17967. },
  17968. 29: {
  17969. Ffc: *(*struct {
  17970. Fcode [0]Tush
  17971. Ffreq Tush
  17972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  17973. Fdl: *(*struct {
  17974. Flen1 [0]Tush
  17975. Fdad Tush
  17976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  17977. },
  17978. }
  17979. var _base_length = [29]int32{
  17980. 1: int32(1),
  17981. 2: int32(2),
  17982. 3: int32(3),
  17983. 4: int32(4),
  17984. 5: int32(5),
  17985. 6: int32(6),
  17986. 7: int32(7),
  17987. 8: int32(8),
  17988. 9: int32(10),
  17989. 10: int32(12),
  17990. 11: int32(14),
  17991. 12: int32(16),
  17992. 13: int32(20),
  17993. 14: int32(24),
  17994. 15: int32(28),
  17995. 16: int32(32),
  17996. 17: int32(40),
  17997. 18: int32(48),
  17998. 19: int32(56),
  17999. 20: int32(64),
  18000. 21: int32(80),
  18001. 22: int32(96),
  18002. 23: int32(112),
  18003. 24: int32(128),
  18004. 25: int32(160),
  18005. 26: int32(192),
  18006. 27: int32(224),
  18007. }
  18008. var _base_dist = [30]int32{
  18009. 1: int32(1),
  18010. 2: int32(2),
  18011. 3: int32(3),
  18012. 4: int32(4),
  18013. 5: int32(6),
  18014. 6: int32(8),
  18015. 7: int32(12),
  18016. 8: int32(16),
  18017. 9: int32(24),
  18018. 10: int32(32),
  18019. 11: int32(48),
  18020. 12: int32(64),
  18021. 13: int32(96),
  18022. 14: int32(128),
  18023. 15: int32(192),
  18024. 16: int32(256),
  18025. 17: int32(384),
  18026. 18: int32(512),
  18027. 19: int32(768),
  18028. 20: int32(1024),
  18029. 21: int32(1536),
  18030. 22: int32(2048),
  18031. 23: int32(3072),
  18032. 24: int32(4096),
  18033. 25: int32(6144),
  18034. 26: int32(8192),
  18035. 27: int32(12288),
  18036. 28: int32(16384),
  18037. 29: int32(24576),
  18038. }
  18039. var _static_l_desc = Tstatic_tree_desc{
  18040. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  18041. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  18042. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  18043. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  18044. Fmax_length: int32(m_MAX_BITS),
  18045. }
  18046. var _static_d_desc = Tstatic_tree_desc{
  18047. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  18048. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  18049. Felems: int32(m_D_CODES),
  18050. Fmax_length: int32(m_MAX_BITS),
  18051. }
  18052. var _static_bl_desc = Tstatic_tree_desc{
  18053. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  18054. Felems: int32(m_BL_CODES),
  18055. Fmax_length: int32(m_MAX_BL_BITS),
  18056. }
  18057. /* ===========================================================================
  18058. * Output a short LSB first on the stream.
  18059. * IN assertion: there is enough room in pendingBuf.
  18060. */
  18061. // C documentation
  18062. //
  18063. // /* ===========================================================================
  18064. // * Reverse the first len bits of a code, using straightforward code (a faster
  18065. // * method would use a table)
  18066. // * IN assertion: 1 <= len <= 15
  18067. // */
  18068. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  18069. var res uint32
  18070. var v1 int32
  18071. _, _ = res, v1
  18072. res = uint32(0)
  18073. for {
  18074. res |= code & uint32(1)
  18075. code >>= uint32(1)
  18076. res <<= uint32(1)
  18077. goto _2
  18078. _2:
  18079. len1--
  18080. v1 = len1
  18081. if !(v1 > 0) {
  18082. break
  18083. }
  18084. }
  18085. return res >> int32(1)
  18086. }
  18087. // C documentation
  18088. //
  18089. // /* ===========================================================================
  18090. // * Flush the bit buffer, keeping at most 7 bits in it.
  18091. // */
  18092. func _bi_flush(tls *libc.TLS, s uintptr) {
  18093. var v1, v3, v5 Tulg
  18094. var v2, v4, v6, p7 uintptr
  18095. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  18096. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  18097. v2 = s + 40
  18098. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18099. *(*Tulg)(unsafe.Pointer(v2))++
  18100. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18101. v4 = s + 40
  18102. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18103. *(*Tulg)(unsafe.Pointer(v4))++
  18104. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18105. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18106. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18107. } else {
  18108. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  18109. v6 = s + 40
  18110. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18111. *(*Tulg)(unsafe.Pointer(v6))++
  18112. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18113. p7 = s + 5936
  18114. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  18115. *(*int32)(unsafe.Pointer(s + 5940)) -= int32(8)
  18116. }
  18117. }
  18118. }
  18119. // C documentation
  18120. //
  18121. // /* ===========================================================================
  18122. // * Flush the bit buffer and align the output on a byte boundary
  18123. // */
  18124. func _bi_windup(tls *libc.TLS, s uintptr) {
  18125. var v1, v3, v5 Tulg
  18126. var v2, v4, v6 uintptr
  18127. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  18128. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  18129. v2 = s + 40
  18130. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18131. *(*Tulg)(unsafe.Pointer(v2))++
  18132. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18133. v4 = s + 40
  18134. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18135. *(*Tulg)(unsafe.Pointer(v4))++
  18136. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18137. } else {
  18138. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  18139. v6 = s + 40
  18140. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18141. *(*Tulg)(unsafe.Pointer(v6))++
  18142. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18143. }
  18144. }
  18145. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18146. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18147. }
  18148. // C documentation
  18149. //
  18150. // /* ===========================================================================
  18151. // * Generate the codes for a given tree and bit counts (which need not be
  18152. // * optimal).
  18153. // * IN assertion: the array bl_count contains the bit length statistics for
  18154. // * the given tree and the field len is set for all tree elements.
  18155. // * OUT assertion: the field code is set for all tree elements of non
  18156. // * zero code length.
  18157. // */
  18158. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  18159. bp := tls.Alloc(32)
  18160. defer tls.Free(32)
  18161. var bits, len1, n int32
  18162. var code uint32
  18163. var v3 Tush
  18164. var v4 uintptr
  18165. var _ /* next_code at bp+0 */ [16]Tush
  18166. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  18167. code = uint32(0) /* code index */
  18168. /* The distribution counts are first used to generate the code values
  18169. * without bit reversal.
  18170. */
  18171. bits = int32(1)
  18172. for {
  18173. if !(bits <= int32(m_MAX_BITS)) {
  18174. break
  18175. }
  18176. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  18177. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(uint16(code))
  18178. goto _1
  18179. _1:
  18180. bits++
  18181. }
  18182. /* Check that the bit counts in bl_count are consistent. The last code
  18183. * must be all ones.
  18184. */
  18185. n = 0
  18186. for {
  18187. if !(n <= max_code) {
  18188. break
  18189. }
  18190. len1 = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  18191. if len1 == 0 {
  18192. goto _2
  18193. }
  18194. /* Now reverse the bits */
  18195. v4 = bp + uintptr(len1)*2
  18196. v3 = *(*Tush)(unsafe.Pointer(v4))
  18197. *(*Tush)(unsafe.Pointer(v4))++
  18198. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  18199. goto _2
  18200. _2:
  18201. n++
  18202. }
  18203. }
  18204. /* Send a code of the given tree. c and tree must not have side effects */
  18205. /* ===========================================================================
  18206. * Send a value on a given number of bits.
  18207. * IN assertion: length <= 16 and value fits in length bits.
  18208. */
  18209. /* the arguments must not have side effects */
  18210. // C documentation
  18211. //
  18212. // /* ===========================================================================
  18213. // * Initialize the various 'constant' tables.
  18214. // */
  18215. func _tr_static_init(tls *libc.TLS) {
  18216. }
  18217. /* ===========================================================================
  18218. * Generate the file trees.h describing the static trees.
  18219. */
  18220. // C documentation
  18221. //
  18222. // /* ===========================================================================
  18223. // * Initialize a new block.
  18224. // */
  18225. func _init_block(tls *libc.TLS, s uintptr) {
  18226. var n int32
  18227. var v4 Tulg
  18228. var v5 TuInt
  18229. _, _, _ = n, v4, v5 /* iterates over tree elements */
  18230. /* Initialize the trees. */
  18231. n = 0
  18232. for {
  18233. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  18234. break
  18235. }
  18236. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4)) = uint16(0)
  18237. goto _1
  18238. _1:
  18239. n++
  18240. }
  18241. n = 0
  18242. for {
  18243. if !(n < int32(m_D_CODES)) {
  18244. break
  18245. }
  18246. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(n)*4)) = uint16(0)
  18247. goto _2
  18248. _2:
  18249. n++
  18250. }
  18251. n = 0
  18252. for {
  18253. if !(n < int32(m_BL_CODES)) {
  18254. break
  18255. }
  18256. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(n)*4)) = uint16(0)
  18257. goto _3
  18258. _3:
  18259. n++
  18260. }
  18261. *(*Tush)(unsafe.Pointer(s + 212 + 256*4)) = uint16(1)
  18262. v4 = libc.Uint64FromInt64(0)
  18263. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  18264. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  18265. v5 = libc.Uint32FromInt32(0)
  18266. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  18267. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  18268. }
  18269. // C documentation
  18270. //
  18271. // /* ===========================================================================
  18272. // * Initialize the tree data structures for a new zlib stream.
  18273. // */
  18274. func x__tr_init(tls *libc.TLS, s uintptr) {
  18275. _tr_static_init(tls)
  18276. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 212
  18277. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  18278. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2504
  18279. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  18280. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2748
  18281. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  18282. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18283. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18284. /* Initialize the first block of the first file: */
  18285. _init_block(tls, s)
  18286. }
  18287. /* Index within the heap array of least frequent node in the Huffman tree */
  18288. /* ===========================================================================
  18289. * Remove the smallest element from the heap and recreate the heap with
  18290. * one less element. Updates heap and heap_len.
  18291. */
  18292. /* ===========================================================================
  18293. * Compares to subtrees, using the tree depth as tie breaker when
  18294. * the subtrees have equal frequency. This minimizes the worst case length.
  18295. */
  18296. // C documentation
  18297. //
  18298. // /* ===========================================================================
  18299. // * Restore the heap property by moving down the tree starting at node k,
  18300. // * exchanging a node with the smallest of its two sons if necessary, stopping
  18301. // * when the heap property is re-established (each father smaller than its
  18302. // * two sons).
  18303. // */
  18304. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  18305. var j, v int32
  18306. _, _ = j, v
  18307. v = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4))
  18308. j = k << int32(1) /* left son of k */
  18309. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  18310. /* Set j to the smallest of the two sons: */
  18311. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))))))) {
  18312. j++
  18313. }
  18314. /* Exit if v is smaller than both sons */
  18315. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(v)))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))))) {
  18316. break
  18317. }
  18318. /* Exchange v with the smallest son */
  18319. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))
  18320. k = j
  18321. /* And continue down the tree, setting j to the left son of k */
  18322. j <<= int32(1)
  18323. }
  18324. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = v
  18325. }
  18326. // C documentation
  18327. //
  18328. // /* ===========================================================================
  18329. // * Compute the optimal bit lengths for a tree and update the total bit length
  18330. // * for the current block.
  18331. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  18332. // * above are the tree nodes sorted by increasing frequency.
  18333. // * OUT assertions: the field len is set to the optimal bit length, the
  18334. // * array bl_count contains the frequencies for each bit length.
  18335. // * The length opt_len is updated; static_len is also updated if stree is
  18336. // * not null.
  18337. // */
  18338. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  18339. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  18340. var extra, stree, tree, p3 uintptr
  18341. var f Tush
  18342. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  18343. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18344. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  18345. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18346. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  18347. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  18348. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  18349. overflow = 0 /* number of elements with bit length too large */
  18350. bits = 0
  18351. for {
  18352. if !(bits <= int32(m_MAX_BITS)) {
  18353. break
  18354. }
  18355. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)) = uint16(0)
  18356. goto _1
  18357. _1:
  18358. bits++
  18359. }
  18360. /* In a first pass, compute the optimal bit lengths (which may
  18361. * overflow in the case of the bit length tree).
  18362. */
  18363. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  18364. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  18365. for {
  18366. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  18367. break
  18368. }
  18369. n = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(h)*4))
  18370. bits = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  18371. if bits > max_length {
  18372. bits = max_length
  18373. overflow++
  18374. }
  18375. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(uint16(bits))
  18376. /* We overwrite tree[n].Dad which is no longer needed */
  18377. if n > max_code {
  18378. goto _2
  18379. } /* not a leaf node */
  18380. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))++
  18381. xbits = 0
  18382. if n >= base {
  18383. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  18384. }
  18385. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  18386. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(uint64(f)) * uint64(uint32(bits+xbits))
  18387. if stree != 0 {
  18388. *(*Tulg)(unsafe.Pointer(s + 5920)) += uint64(uint64(f)) * uint64(uint32(int32(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  18389. }
  18390. goto _2
  18391. _2:
  18392. h++
  18393. }
  18394. if overflow == 0 {
  18395. return
  18396. }
  18397. /* This happens for example on obj2 and pic of the Calgary corpus */
  18398. /* Find the first bit length which could increase: */
  18399. for cond := true; cond; cond = overflow > 0 {
  18400. bits = max_length - int32(1)
  18401. for int32(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))) == 0 {
  18402. bits--
  18403. }
  18404. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))-- /* move one leaf down the tree */
  18405. p3 = s + 2976 + uintptr(bits+int32(1))*2
  18406. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  18407. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(max_length)*2))--
  18408. /* The brother of the overflow item also moves one step up,
  18409. * but this does not affect bl_count[max_length]
  18410. */
  18411. overflow -= int32(2)
  18412. }
  18413. /* Now recompute all bit lengths, scanning in increasing frequency.
  18414. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  18415. * lengths instead of fixing only the wrong ones. This idea is taken
  18416. * from 'ar' written by Haruhiko Okumura.)
  18417. */
  18418. bits = max_length
  18419. for {
  18420. if !(bits != 0) {
  18421. break
  18422. }
  18423. n = int32(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)))
  18424. for n != 0 {
  18425. h--
  18426. v5 = h
  18427. m = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v5)*4))
  18428. if m > max_code {
  18429. continue
  18430. }
  18431. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != uint32(uint32(bits)) {
  18432. *(*Tulg)(unsafe.Pointer(s + 5912)) += (uint64(uint64(bits)) - uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  18433. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = uint16(uint16(bits))
  18434. }
  18435. n--
  18436. }
  18437. goto _4
  18438. _4:
  18439. bits--
  18440. }
  18441. }
  18442. // C documentation
  18443. //
  18444. // /* ===========================================================================
  18445. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  18446. // * Update the total bit length for the current block.
  18447. // * IN assertion: the field freq is set for all tree elements.
  18448. // * OUT assertions: the fields len and code are set to the optimal bit length
  18449. // * and corresponding code. The length opt_len is updated; static_len is
  18450. // * also updated if stree is not null. The field max_code is set.
  18451. // */
  18452. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  18453. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  18454. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  18455. var v18 Tush
  18456. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = elems, m, max_code, n, node, stree, tree, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v3, v4, v5, v6, v7, v8, v9
  18457. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18458. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18459. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  18460. max_code = -int32(1) /* new node being created */
  18461. /* Construct the initial heap, with least frequent element in
  18462. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18463. * heap[0] is not used.
  18464. */
  18465. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  18466. /* Construct the initial heap, with least frequent element in
  18467. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18468. * heap[0] is not used.
  18469. */
  18470. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max = libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) + libc.Int32FromInt32(1)
  18471. n = 0
  18472. for {
  18473. if !(n < elems) {
  18474. break
  18475. }
  18476. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  18477. v3 = s + 5300
  18478. *(*int32)(unsafe.Pointer(v3))++
  18479. v2 = *(*int32)(unsafe.Pointer(v3))
  18480. v4 = n
  18481. max_code = v4
  18482. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v2)*4)) = v4
  18483. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))) = uint8(0)
  18484. } else {
  18485. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  18486. }
  18487. goto _1
  18488. _1:
  18489. n++
  18490. }
  18491. /* The pkzip format requires that at least one distance code exists,
  18492. * and that at least one bit should be sent even if there is only one
  18493. * possible code. So to avoid special checks later on we force at least
  18494. * two codes of non zero frequency.
  18495. */
  18496. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  18497. if max_code < int32(2) {
  18498. max_code++
  18499. v7 = max_code
  18500. v6 = v7
  18501. } else {
  18502. v6 = 0
  18503. }
  18504. v5 = v6
  18505. v9 = s + 5300
  18506. *(*int32)(unsafe.Pointer(v9))++
  18507. v8 = *(*int32)(unsafe.Pointer(v9))
  18508. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v8)*4)) = v5
  18509. node = v5
  18510. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  18511. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(0)
  18512. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  18513. if stree != 0 {
  18514. *(*Tulg)(unsafe.Pointer(s + 5920)) -= uint64(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  18515. }
  18516. /* node is 0 or 1 so it does not have extra bits */
  18517. }
  18518. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  18519. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  18520. * establish sub-heaps of increasing lengths:
  18521. */
  18522. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  18523. for {
  18524. if !(n >= int32(1)) {
  18525. break
  18526. }
  18527. _pqdownheap(tls, s, tree, n)
  18528. goto _10
  18529. _10:
  18530. n--
  18531. }
  18532. /* Construct the Huffman tree by repeatedly combining the least two
  18533. * frequent nodes.
  18534. */
  18535. node = elems /* next internal node of the tree */
  18536. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  18537. n = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18538. v12 = s + 5300
  18539. v11 = *(*int32)(unsafe.Pointer(v12))
  18540. *(*int32)(unsafe.Pointer(v12))--
  18541. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v11)*4))
  18542. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  18543. m = *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) /* m = node of next least frequency */
  18544. v14 = s + 5304
  18545. *(*int32)(unsafe.Pointer(v14))--
  18546. v13 = *(*int32)(unsafe.Pointer(v14))
  18547. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  18548. v16 = s + 5304
  18549. *(*int32)(unsafe.Pointer(v16))--
  18550. v15 = *(*int32)(unsafe.Pointer(v16))
  18551. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v15)*4)) = m
  18552. /* Create a new node father of n and m */
  18553. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + int32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  18554. if int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n)))) >= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m)))) {
  18555. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))))
  18556. } else {
  18557. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m))))
  18558. }
  18559. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(v17 + libc.Int32FromInt32(1))
  18560. v18 = uint16(uint16(node))
  18561. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  18562. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  18563. /* and insert the new node in the heap */
  18564. v19 = node
  18565. node++
  18566. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = v19
  18567. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  18568. }
  18569. v21 = s + 5304
  18570. *(*int32)(unsafe.Pointer(v21))--
  18571. v20 = *(*int32)(unsafe.Pointer(v21))
  18572. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18573. /* At this point, the fields freq and dad are set. We can now
  18574. * generate the bit lengths.
  18575. */
  18576. _gen_bitlen(tls, s, desc)
  18577. /* The field len is now set, we can generate the bit codes */
  18578. _gen_codes(tls, tree, max_code, s+2976)
  18579. }
  18580. // C documentation
  18581. //
  18582. // /* ===========================================================================
  18583. // * Scan a literal or distance tree to determine the frequencies of the codes
  18584. // * in the bit length tree.
  18585. // */
  18586. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  18587. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  18588. var p3 uintptr
  18589. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  18590. prevlen = -int32(1) /* length of current code */
  18591. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  18592. count = 0 /* repeat count of the current code */
  18593. max_count = int32(7) /* max repeat count */
  18594. min_count = int32(4) /* min repeat count */
  18595. if nextlen == 0 {
  18596. max_count = int32(138)
  18597. min_count = libc.Int32FromInt32(3)
  18598. }
  18599. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  18600. n = 0
  18601. for {
  18602. if !(n <= max_code) {
  18603. break
  18604. }
  18605. curlen = nextlen
  18606. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  18607. count++
  18608. v2 = count
  18609. if v2 < max_count && curlen == nextlen {
  18610. goto _1
  18611. } else {
  18612. if count < min_count {
  18613. p3 = s + 2748 + uintptr(curlen)*4
  18614. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  18615. } else {
  18616. if curlen != 0 {
  18617. if curlen != prevlen {
  18618. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4))++
  18619. }
  18620. *(*Tush)(unsafe.Pointer(s + 2748 + 16*4))++
  18621. } else {
  18622. if count <= int32(10) {
  18623. *(*Tush)(unsafe.Pointer(s + 2748 + 17*4))++
  18624. } else {
  18625. *(*Tush)(unsafe.Pointer(s + 2748 + 18*4))++
  18626. }
  18627. }
  18628. }
  18629. }
  18630. count = 0
  18631. prevlen = curlen
  18632. if nextlen == 0 {
  18633. max_count = int32(138)
  18634. min_count = libc.Int32FromInt32(3)
  18635. } else {
  18636. if curlen == nextlen {
  18637. max_count = int32(6)
  18638. min_count = libc.Int32FromInt32(3)
  18639. } else {
  18640. max_count = int32(7)
  18641. min_count = libc.Int32FromInt32(4)
  18642. }
  18643. }
  18644. goto _1
  18645. _1:
  18646. n++
  18647. }
  18648. }
  18649. // C documentation
  18650. //
  18651. // /* ===========================================================================
  18652. // * Send a literal or distance tree in compressed form, using the codes in
  18653. // * bl_tree.
  18654. // */
  18655. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  18656. var count, curlen, len1, len11, len2, len3, len4, len5, len6, len7, max_count, min_count, n, nextlen, prevlen, val, val1, val2, val3, val4, val5, val6, val7, v2, v3 int32
  18657. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  18658. var v13, v15, v19, v21, v25, v27, v31, v33, v37, v39, v43, v45, v49, v51, v7, v9, p10, p11, p16, p17, p22, p23, p28, p29, p34, p35, p40, p41, p46, p47, p5, p52 uintptr
  18659. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = count, curlen, len1, len11, len2, len3, len4, len5, len6, len7, max_count, min_count, n, nextlen, prevlen, val, val1, val2, val3, val4, val5, val6, val7, v12, v13, v14, v15, v18, v19, v2, v20, v21, v24, v25, v26, v27, v3, v30, v31, v32, v33, v36, v37, v38, v39, v42, v43, v44, v45, v48, v49, v50, v51, v6, v7, v8, v9, p10, p11, p16, p17, p22, p23, p28, p29, p34, p35, p40, p41, p46, p47, p5, p52 /* iterates over all tree elements */
  18660. prevlen = -int32(1) /* length of current code */
  18661. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  18662. count = 0 /* repeat count of the current code */
  18663. max_count = int32(7) /* max repeat count */
  18664. min_count = int32(4) /* min repeat count */
  18665. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  18666. if nextlen == 0 {
  18667. max_count = int32(138)
  18668. min_count = libc.Int32FromInt32(3)
  18669. }
  18670. n = 0
  18671. for {
  18672. if !(n <= max_code) {
  18673. break
  18674. }
  18675. curlen = nextlen
  18676. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  18677. count++
  18678. v2 = count
  18679. if v2 < max_count && curlen == nextlen {
  18680. goto _1
  18681. } else {
  18682. if count < min_count {
  18683. for {
  18684. len1 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  18685. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  18686. val = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  18687. p5 = s + 5936
  18688. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | int32(uint16(uint16(val)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18689. v7 = s + 40
  18690. v6 = *(*Tulg)(unsafe.Pointer(v7))
  18691. *(*Tulg)(unsafe.Pointer(v7))++
  18692. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18693. v9 = s + 40
  18694. v8 = *(*Tulg)(unsafe.Pointer(v9))
  18695. *(*Tulg)(unsafe.Pointer(v9))++
  18696. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18697. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18698. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  18699. } else {
  18700. p10 = s + 5936
  18701. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18702. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  18703. }
  18704. goto _4
  18705. _4:
  18706. count--
  18707. v3 = count
  18708. if !(v3 != 0) {
  18709. break
  18710. }
  18711. }
  18712. } else {
  18713. if curlen != 0 {
  18714. if curlen != prevlen {
  18715. len11 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  18716. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  18717. val1 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  18718. p11 = s + 5936
  18719. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | int32(uint16(uint16(val1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18720. v13 = s + 40
  18721. v12 = *(*Tulg)(unsafe.Pointer(v13))
  18722. *(*Tulg)(unsafe.Pointer(v13))++
  18723. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18724. v15 = s + 40
  18725. v14 = *(*Tulg)(unsafe.Pointer(v15))
  18726. *(*Tulg)(unsafe.Pointer(v15))++
  18727. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18728. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val1))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18729. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  18730. } else {
  18731. p16 = s + 5936
  18732. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18733. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  18734. }
  18735. count--
  18736. }
  18737. len2 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4 + 2)))
  18738. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  18739. val2 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))
  18740. p17 = s + 5936
  18741. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | int32(uint16(uint16(val2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18742. v19 = s + 40
  18743. v18 = *(*Tulg)(unsafe.Pointer(v19))
  18744. *(*Tulg)(unsafe.Pointer(v19))++
  18745. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18746. v21 = s + 40
  18747. v20 = *(*Tulg)(unsafe.Pointer(v21))
  18748. *(*Tulg)(unsafe.Pointer(v21))++
  18749. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18750. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val2))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18751. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  18752. } else {
  18753. p22 = s + 5936
  18754. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18755. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  18756. }
  18757. len3 = int32(2)
  18758. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  18759. val3 = count - int32(3)
  18760. p23 = s + 5936
  18761. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(uint16(val3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18762. v25 = s + 40
  18763. v24 = *(*Tulg)(unsafe.Pointer(v25))
  18764. *(*Tulg)(unsafe.Pointer(v25))++
  18765. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18766. v27 = s + 40
  18767. v26 = *(*Tulg)(unsafe.Pointer(v27))
  18768. *(*Tulg)(unsafe.Pointer(v27))++
  18769. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18770. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val3))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18771. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  18772. } else {
  18773. p28 = s + 5936
  18774. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18775. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  18776. }
  18777. } else {
  18778. if count <= int32(10) {
  18779. len4 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4 + 2)))
  18780. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  18781. val4 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))
  18782. p29 = s + 5936
  18783. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(uint16(val4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18784. v31 = s + 40
  18785. v30 = *(*Tulg)(unsafe.Pointer(v31))
  18786. *(*Tulg)(unsafe.Pointer(v31))++
  18787. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18788. v33 = s + 40
  18789. v32 = *(*Tulg)(unsafe.Pointer(v33))
  18790. *(*Tulg)(unsafe.Pointer(v33))++
  18791. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18792. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val4))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18793. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  18794. } else {
  18795. p34 = s + 5936
  18796. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18797. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  18798. }
  18799. len5 = int32(3)
  18800. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  18801. val5 = count - int32(3)
  18802. p35 = s + 5936
  18803. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(uint16(val5)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18804. v37 = s + 40
  18805. v36 = *(*Tulg)(unsafe.Pointer(v37))
  18806. *(*Tulg)(unsafe.Pointer(v37))++
  18807. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18808. v39 = s + 40
  18809. v38 = *(*Tulg)(unsafe.Pointer(v39))
  18810. *(*Tulg)(unsafe.Pointer(v39))++
  18811. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18812. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val5))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18813. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  18814. } else {
  18815. p40 = s + 5936
  18816. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18817. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  18818. }
  18819. } else {
  18820. len6 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4 + 2)))
  18821. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  18822. val6 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))
  18823. p41 = s + 5936
  18824. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | int32(uint16(uint16(val6)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18825. v43 = s + 40
  18826. v42 = *(*Tulg)(unsafe.Pointer(v43))
  18827. *(*Tulg)(unsafe.Pointer(v43))++
  18828. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18829. v45 = s + 40
  18830. v44 = *(*Tulg)(unsafe.Pointer(v45))
  18831. *(*Tulg)(unsafe.Pointer(v45))++
  18832. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18833. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val6))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18834. *(*int32)(unsafe.Pointer(s + 5940)) += len6 - int32(m_Buf_size)
  18835. } else {
  18836. p46 = s + 5936
  18837. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18838. *(*int32)(unsafe.Pointer(s + 5940)) += len6
  18839. }
  18840. len7 = int32(7)
  18841. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  18842. val7 = count - int32(11)
  18843. p47 = s + 5936
  18844. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | int32(uint16(uint16(val7)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18845. v49 = s + 40
  18846. v48 = *(*Tulg)(unsafe.Pointer(v49))
  18847. *(*Tulg)(unsafe.Pointer(v49))++
  18848. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18849. v51 = s + 40
  18850. v50 = *(*Tulg)(unsafe.Pointer(v51))
  18851. *(*Tulg)(unsafe.Pointer(v51))++
  18852. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18853. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val7))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18854. *(*int32)(unsafe.Pointer(s + 5940)) += len7 - int32(m_Buf_size)
  18855. } else {
  18856. p52 = s + 5936
  18857. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | int32(uint16(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18858. *(*int32)(unsafe.Pointer(s + 5940)) += len7
  18859. }
  18860. }
  18861. }
  18862. }
  18863. }
  18864. count = 0
  18865. prevlen = curlen
  18866. if nextlen == 0 {
  18867. max_count = int32(138)
  18868. min_count = libc.Int32FromInt32(3)
  18869. } else {
  18870. if curlen == nextlen {
  18871. max_count = int32(6)
  18872. min_count = libc.Int32FromInt32(3)
  18873. } else {
  18874. max_count = int32(7)
  18875. min_count = libc.Int32FromInt32(4)
  18876. }
  18877. }
  18878. goto _1
  18879. _1:
  18880. n++
  18881. }
  18882. }
  18883. // C documentation
  18884. //
  18885. // /* ===========================================================================
  18886. // * Construct the Huffman tree for the bit lengths and return the index in
  18887. // * bl_order of the last bit length code to send.
  18888. // */
  18889. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  18890. var max_blindex int32
  18891. _ = max_blindex /* index of last bit length code of non zero freq */
  18892. /* Determine the bit length frequencies for literal and distance trees */
  18893. _scan_tree(tls, s, s+212, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  18894. _scan_tree(tls, s, s+2504, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  18895. /* Build the bit length tree: */
  18896. _build_tree(tls, s, s+2952)
  18897. /* opt_len now includes the length of the tree representations, except the
  18898. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  18899. */
  18900. /* Determine the number of bit length codes to send. The pkzip format
  18901. * requires that at least 4 bit length codes be sent. (appnote.txt says
  18902. * 3 but the actual value used is 4.)
  18903. */
  18904. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  18905. for {
  18906. if !(max_blindex >= int32(3)) {
  18907. break
  18908. }
  18909. if int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  18910. break
  18911. }
  18912. goto _1
  18913. _1:
  18914. max_blindex--
  18915. }
  18916. /* Update opt_len to include the bit length tree and counts */
  18917. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(3)*(uint64(uint64(max_blindex))+uint64(1)) + uint64(5) + uint64(5) + uint64(4)
  18918. return max_blindex
  18919. }
  18920. // C documentation
  18921. //
  18922. // /* ===========================================================================
  18923. // * Send the header for a block using dynamic Huffman trees: the counts, the
  18924. // * lengths of the bit length codes, the literal tree and the distance tree.
  18925. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  18926. // */
  18927. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  18928. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  18929. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  18930. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  18931. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, len2, len3, rank, val, val1, val2, val3, v10, v11, v14, v15, v16, v17, v2, v21, v22, v23, v24, v3, v4, v5, v8, v9, p1, p12, p13, p18, p20, p25, p6, p7 /* index in bl_order */
  18932. len1 = int32(5)
  18933. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  18934. val = lcodes - int32(257)
  18935. p1 = s + 5936
  18936. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(uint16(val)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18937. v3 = s + 40
  18938. v2 = *(*Tulg)(unsafe.Pointer(v3))
  18939. *(*Tulg)(unsafe.Pointer(v3))++
  18940. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18941. v5 = s + 40
  18942. v4 = *(*Tulg)(unsafe.Pointer(v5))
  18943. *(*Tulg)(unsafe.Pointer(v5))++
  18944. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18945. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18946. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  18947. } else {
  18948. p6 = s + 5936
  18949. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18950. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  18951. } /* not +255 as stated in appnote.txt */
  18952. len11 = int32(5)
  18953. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  18954. val1 = dcodes - int32(1)
  18955. p7 = s + 5936
  18956. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(uint16(val1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18957. v9 = s + 40
  18958. v8 = *(*Tulg)(unsafe.Pointer(v9))
  18959. *(*Tulg)(unsafe.Pointer(v9))++
  18960. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18961. v11 = s + 40
  18962. v10 = *(*Tulg)(unsafe.Pointer(v11))
  18963. *(*Tulg)(unsafe.Pointer(v11))++
  18964. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18965. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val1))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18966. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  18967. } else {
  18968. p12 = s + 5936
  18969. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(uint16(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18970. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  18971. }
  18972. len2 = int32(4)
  18973. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  18974. val2 = blcodes - int32(4)
  18975. p13 = s + 5936
  18976. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(uint16(val2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18977. v15 = s + 40
  18978. v14 = *(*Tulg)(unsafe.Pointer(v15))
  18979. *(*Tulg)(unsafe.Pointer(v15))++
  18980. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18981. v17 = s + 40
  18982. v16 = *(*Tulg)(unsafe.Pointer(v17))
  18983. *(*Tulg)(unsafe.Pointer(v17))++
  18984. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18985. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val2))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  18986. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  18987. } else {
  18988. p18 = s + 5936
  18989. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | int32(uint16(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  18990. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  18991. } /* not -3 as stated in appnote.txt */
  18992. rank = 0
  18993. for {
  18994. if !(rank < blcodes) {
  18995. break
  18996. }
  18997. len3 = int32(3)
  18998. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  18999. val3 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))
  19000. p20 = s + 5936
  19001. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | int32(uint16(uint16(val3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19002. v22 = s + 40
  19003. v21 = *(*Tulg)(unsafe.Pointer(v22))
  19004. *(*Tulg)(unsafe.Pointer(v22))++
  19005. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19006. v24 = s + 40
  19007. v23 = *(*Tulg)(unsafe.Pointer(v24))
  19008. *(*Tulg)(unsafe.Pointer(v24))++
  19009. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19010. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val3))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19011. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19012. } else {
  19013. p25 = s + 5936
  19014. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19015. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19016. }
  19017. goto _19
  19018. _19:
  19019. rank++
  19020. }
  19021. _send_tree(tls, s, s+212, lcodes-int32(1)) /* literal tree */
  19022. _send_tree(tls, s, s+2504, dcodes-int32(1)) /* distance tree */
  19023. }
  19024. // C documentation
  19025. //
  19026. // /* ===========================================================================
  19027. // * Send a stored block
  19028. // */
  19029. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19030. var len1, val int32
  19031. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  19032. var v11, v13, v2, v4, v7, v9 Tulg
  19033. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  19034. len1 = int32(3)
  19035. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19036. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  19037. p1 = s + 5936
  19038. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(uint16(val)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19039. v3 = s + 40
  19040. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19041. *(*Tulg)(unsafe.Pointer(v3))++
  19042. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19043. v5 = s + 40
  19044. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19045. *(*Tulg)(unsafe.Pointer(v5))++
  19046. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19047. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19048. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19049. } else {
  19050. p6 = s + 5936
  19051. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19052. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19053. } /* send block type */
  19054. _bi_windup(tls, s) /* align on byte boundary */
  19055. v8 = s + 40
  19056. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19057. *(*Tulg)(unsafe.Pointer(v8))++
  19058. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32(uint16(uint16(stored_len))) & libc.Int32FromInt32(0xff))
  19059. v10 = s + 40
  19060. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19061. *(*Tulg)(unsafe.Pointer(v10))++
  19062. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32(uint16(uint16(stored_len))) >> libc.Int32FromInt32(8))
  19063. v12 = s + 40
  19064. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19065. *(*Tulg)(unsafe.Pointer(v12))++
  19066. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  19067. v14 = s + 40
  19068. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19069. *(*Tulg)(unsafe.Pointer(v14))++
  19070. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  19071. if stored_len != 0 {
  19072. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  19073. }
  19074. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  19075. }
  19076. // C documentation
  19077. //
  19078. // /* ===========================================================================
  19079. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  19080. // */
  19081. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  19082. _bi_flush(tls, s)
  19083. }
  19084. // C documentation
  19085. //
  19086. // /* ===========================================================================
  19087. // * Send one empty static block to give enough lookahead for inflate.
  19088. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  19089. // */
  19090. func x__tr_align(tls *libc.TLS, s uintptr) {
  19091. var len1, len11, val, val1 int32
  19092. var v10, v2, v4, v8 Tulg
  19093. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  19094. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  19095. len1 = int32(3)
  19096. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19097. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  19098. p1 = s + 5936
  19099. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(uint16(val)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19100. v3 = s + 40
  19101. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19102. *(*Tulg)(unsafe.Pointer(v3))++
  19103. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19104. v5 = s + 40
  19105. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19106. *(*Tulg)(unsafe.Pointer(v5))++
  19107. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19108. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19109. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19110. } else {
  19111. p6 = s + 5936
  19112. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19113. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19114. }
  19115. len11 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  19116. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19117. val1 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  19118. p7 = s + 5936
  19119. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(uint16(val1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19120. v9 = s + 40
  19121. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19122. *(*Tulg)(unsafe.Pointer(v9))++
  19123. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19124. v11 = s + 40
  19125. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19126. *(*Tulg)(unsafe.Pointer(v11))++
  19127. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19128. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val1))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19129. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19130. } else {
  19131. p12 = s + 5936
  19132. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19133. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19134. }
  19135. _bi_flush(tls, s)
  19136. }
  19137. // C documentation
  19138. //
  19139. // /* ===========================================================================
  19140. // * Send the block data compressed using the given Huffman trees
  19141. // */
  19142. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  19143. var code, dist, sx, v1, v2, v3 uint32
  19144. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  19145. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  19146. var v12, v14, v18, v20, v25, v27, v31, v33, v37, v39, v6, v8, p10, p15, p16, p21, p23, p28, p29, p34, p35, p4, p40, p9 uintptr
  19147. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = code, dist, extra, lc, len1, len11, len2, len3, len4, len5, sx, val, val1, val2, val3, val4, val5, v1, v11, v12, v13, v14, v17, v18, v19, v2, v20, v22, v24, v25, v26, v27, v3, v30, v31, v32, v33, v36, v37, v38, v39, v5, v6, v7, v8, p10, p15, p16, p21, p23, p28, p29, p34, p35, p4, p40, p9 /* match length or unmatched char (if dist == 0) */
  19148. sx = uint32(0) /* number of extra bits to send */
  19149. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  19150. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  19151. v1 = sx
  19152. sx++
  19153. dist = uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  19154. v2 = sx
  19155. sx++
  19156. dist += uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  19157. v3 = sx
  19158. sx++
  19159. lc = int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  19160. if dist == uint32(0) {
  19161. len1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  19162. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19163. val = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  19164. p4 = s + 5936
  19165. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | int32(uint16(uint16(val)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19166. v6 = s + 40
  19167. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19168. *(*Tulg)(unsafe.Pointer(v6))++
  19169. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19170. v8 = s + 40
  19171. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19172. *(*Tulg)(unsafe.Pointer(v8))++
  19173. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19174. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19175. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19176. } else {
  19177. p9 = s + 5936
  19178. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19179. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19180. } /* send a literal byte */
  19181. } else {
  19182. /* Here, lc is the match length - MIN_MATCH */
  19183. code = uint32(x__length_code[lc])
  19184. len11 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  19185. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19186. val1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  19187. p10 = s + 5936
  19188. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(uint16(uint16(val1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19189. v12 = s + 40
  19190. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19191. *(*Tulg)(unsafe.Pointer(v12))++
  19192. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19193. v14 = s + 40
  19194. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19195. *(*Tulg)(unsafe.Pointer(v14))++
  19196. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19197. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val1))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19198. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19199. } else {
  19200. p15 = s + 5936
  19201. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19202. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19203. } /* send length code */
  19204. extra = _extra_lbits[code]
  19205. if extra != 0 {
  19206. lc -= _base_length[code]
  19207. len2 = extra
  19208. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19209. val2 = lc
  19210. p16 = s + 5936
  19211. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(uint16(uint16(val2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19212. v18 = s + 40
  19213. v17 = *(*Tulg)(unsafe.Pointer(v18))
  19214. *(*Tulg)(unsafe.Pointer(v18))++
  19215. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19216. v20 = s + 40
  19217. v19 = *(*Tulg)(unsafe.Pointer(v20))
  19218. *(*Tulg)(unsafe.Pointer(v20))++
  19219. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19220. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val2))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19221. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19222. } else {
  19223. p21 = s + 5936
  19224. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | int32(uint16(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19225. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19226. } /* send the extra length bits */
  19227. }
  19228. dist-- /* dist is now the match distance - 1 */
  19229. if dist < uint32(256) {
  19230. v22 = int32(x__dist_code[dist])
  19231. } else {
  19232. v22 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  19233. }
  19234. code = uint32(v22)
  19235. len3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  19236. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19237. val3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  19238. p23 = s + 5936
  19239. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(uint16(val3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19240. v25 = s + 40
  19241. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19242. *(*Tulg)(unsafe.Pointer(v25))++
  19243. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19244. v27 = s + 40
  19245. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19246. *(*Tulg)(unsafe.Pointer(v27))++
  19247. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19248. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val3))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19249. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19250. } else {
  19251. p28 = s + 5936
  19252. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19253. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19254. } /* send the distance code */
  19255. extra = _extra_dbits[code]
  19256. if extra != 0 {
  19257. dist -= uint32(_base_dist[code])
  19258. len4 = extra
  19259. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19260. val4 = int32(int32(dist))
  19261. p29 = s + 5936
  19262. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(uint16(val4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19263. v31 = s + 40
  19264. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19265. *(*Tulg)(unsafe.Pointer(v31))++
  19266. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19267. v33 = s + 40
  19268. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19269. *(*Tulg)(unsafe.Pointer(v33))++
  19270. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19271. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val4))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19272. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19273. } else {
  19274. p34 = s + 5936
  19275. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19276. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19277. } /* send the extra distance bits */
  19278. }
  19279. } /* literal or match pair ? */
  19280. /* Check that the overlay between pending_buf and sym_buf is ok: */
  19281. }
  19282. }
  19283. len5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  19284. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19285. val5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  19286. p35 = s + 5936
  19287. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(uint16(val5)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19288. v37 = s + 40
  19289. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19290. *(*Tulg)(unsafe.Pointer(v37))++
  19291. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19292. v39 = s + 40
  19293. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19294. *(*Tulg)(unsafe.Pointer(v39))++
  19295. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19296. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val5))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19297. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19298. } else {
  19299. p40 = s + 5936
  19300. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19301. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19302. }
  19303. }
  19304. // C documentation
  19305. //
  19306. // /* ===========================================================================
  19307. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  19308. // * - TEXT if the two conditions below are satisfied:
  19309. // * a) There are no non-portable control characters belonging to the
  19310. // * "block list" (0..6, 14..25, 28..31).
  19311. // * b) There is at least one printable character belonging to the
  19312. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  19313. // * - BINARY otherwise.
  19314. // * - The following partially-portable control characters form a
  19315. // * "gray list" that is ignored in this detection algorithm:
  19316. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  19317. // * IN assertion: the fields Freq of dyn_ltree are set.
  19318. // */
  19319. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  19320. var block_mask uint64
  19321. var n int32
  19322. _, _ = block_mask, n
  19323. /* block_mask is the bit mask of block-listed bytes
  19324. * set bits 0..6, 14..25, and 28..31
  19325. * 0xf3ffc07f = binary 11110011111111111100000001111111
  19326. */
  19327. block_mask = uint64(0xf3ffc07f)
  19328. /* Check for non-textual ("block-listed") bytes. */
  19329. n = 0
  19330. for {
  19331. if !(n <= int32(31)) {
  19332. break
  19333. }
  19334. if block_mask&uint64(1) != 0 && int32(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19335. return m_Z_BINARY
  19336. }
  19337. goto _1
  19338. _1:
  19339. n++
  19340. block_mask >>= uint64(1)
  19341. }
  19342. /* Check for textual ("allow-listed") bytes. */
  19343. if int32(*(*Tush)(unsafe.Pointer(s + 212 + 9*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 212 + 10*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 212 + 13*4))) != 0 {
  19344. return int32(m_Z_TEXT)
  19345. }
  19346. n = int32(32)
  19347. for {
  19348. if !(n < int32(m_LITERALS)) {
  19349. break
  19350. }
  19351. if int32(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19352. return int32(m_Z_TEXT)
  19353. }
  19354. goto _2
  19355. _2:
  19356. n++
  19357. }
  19358. /* There are no "block-listed" or "allow-listed" bytes:
  19359. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  19360. */
  19361. return m_Z_BINARY
  19362. }
  19363. // C documentation
  19364. //
  19365. // /* ===========================================================================
  19366. // * Determine the best encoding for the current block: dynamic trees, static
  19367. // * trees or store, and write out the encoded block.
  19368. // */
  19369. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19370. var len1, len11, max_blindex, val, val1 int32
  19371. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  19372. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  19373. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, max_blindex, opt_lenb, static_lenb, val, val1, v1, v10, v11, v12, v3, v4, v5, v6, v9, p13, p2, p7, p8 /* opt_len and static_len in bytes */
  19374. max_blindex = 0 /* index of last bit length code of non zero freq */
  19375. /* Build the Huffman trees unless a stored block is forced */
  19376. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  19377. /* Check if the file is binary or text */
  19378. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  19379. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  19380. }
  19381. /* Construct the literal and distance trees */
  19382. _build_tree(tls, s, s+2904)
  19383. _build_tree(tls, s, s+2928)
  19384. /* At this point, opt_len and static_len are the total bit lengths of
  19385. * the compressed block data, excluding the tree representations.
  19386. */
  19387. /* Build the bit length tree for the above two trees, and get the index
  19388. * in bl_order of the last bit length code to send.
  19389. */
  19390. max_blindex = _build_bl_tree(tls, s)
  19391. /* Determine the best encoding. Compute the block lengths in bytes. */
  19392. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint64(3) + uint64(7)) >> int32(3)
  19393. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint64(3) + uint64(7)) >> int32(3)
  19394. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  19395. opt_lenb = static_lenb
  19396. }
  19397. } else {
  19398. v1 = stored_len + libc.Uint64FromInt32(5)
  19399. static_lenb = v1
  19400. opt_lenb = v1 /* force a stored block */
  19401. }
  19402. if stored_len+uint64(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  19403. /* 4: two words for the lengths */
  19404. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  19405. * Otherwise we can't have processed more than WSIZE input bytes since
  19406. * the last block flush, because compression would have been
  19407. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  19408. * transform a block into a stored block.
  19409. */
  19410. x__tr_stored_block(tls, s, buf, stored_len, last)
  19411. } else {
  19412. if static_lenb == opt_lenb {
  19413. len1 = int32(3)
  19414. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19415. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  19416. p2 = s + 5936
  19417. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | int32(uint16(uint16(val)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19418. v4 = s + 40
  19419. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19420. *(*Tulg)(unsafe.Pointer(v4))++
  19421. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19422. v6 = s + 40
  19423. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19424. *(*Tulg)(unsafe.Pointer(v6))++
  19425. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19426. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19427. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19428. } else {
  19429. p7 = s + 5936
  19430. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19431. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19432. }
  19433. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  19434. } else {
  19435. len11 = int32(3)
  19436. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19437. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  19438. p8 = s + 5936
  19439. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | int32(uint16(uint16(val1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19440. v10 = s + 40
  19441. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19442. *(*Tulg)(unsafe.Pointer(v10))++
  19443. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19444. v12 = s + 40
  19445. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19446. *(*Tulg)(unsafe.Pointer(v12))++
  19447. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19448. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(uint16(val1))) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19449. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19450. } else {
  19451. p13 = s + 5936
  19452. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19453. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19454. }
  19455. _send_all_trees(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code+int32(1), (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code+int32(1), max_blindex+int32(1))
  19456. _compress_block(tls, s, s+212, s+2504)
  19457. }
  19458. }
  19459. /* The above check is made mod 2^32, for files larger than 512 MB
  19460. * and uLong implemented on 32 bits.
  19461. */
  19462. _init_block(tls, s)
  19463. if last != 0 {
  19464. _bi_windup(tls, s)
  19465. }
  19466. }
  19467. // C documentation
  19468. //
  19469. // /* ===========================================================================
  19470. // * Save the match info and tally the frequency counts. Return true if
  19471. // * the current block must be flushed.
  19472. // */
  19473. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  19474. var v1, v3, v5 TuInt
  19475. var v2, v4, v6 uintptr
  19476. var v7 int32
  19477. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  19478. v2 = s + 5900
  19479. v1 = *(*TuInt)(unsafe.Pointer(v2))
  19480. *(*TuInt)(unsafe.Pointer(v2))++
  19481. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(uint8(dist))
  19482. v4 = s + 5900
  19483. v3 = *(*TuInt)(unsafe.Pointer(v4))
  19484. *(*TuInt)(unsafe.Pointer(v4))++
  19485. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  19486. v6 = s + 5900
  19487. v5 = *(*TuInt)(unsafe.Pointer(v6))
  19488. *(*TuInt)(unsafe.Pointer(v6))++
  19489. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(uint8(lc))
  19490. if dist == uint32(0) {
  19491. /* lc is the unmatched char */
  19492. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(lc)*4))++
  19493. } else {
  19494. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  19495. /* Here, lc is the match length - MIN_MATCH */
  19496. dist-- /* dist = match distance - 1 */
  19497. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  19498. if dist < uint32(256) {
  19499. v7 = int32(x__dist_code[dist])
  19500. } else {
  19501. v7 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  19502. }
  19503. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v7)*4))++
  19504. }
  19505. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  19506. }
  19507. type t__mbstate_t = struct {
  19508. F__count int32
  19509. F__value struct {
  19510. F__wchb [0][4]int8
  19511. F__wch uint32
  19512. }
  19513. }
  19514. type t__fpos_t = struct {
  19515. F__pos t__off_t
  19516. F__state t__mbstate_t
  19517. }
  19518. type T_G_fpos_t = t__fpos_t
  19519. type t__fpos64_t = struct {
  19520. F__pos t__off64_t
  19521. F__state t__mbstate_t
  19522. }
  19523. type T_G_fpos64_t = t__fpos64_t
  19524. type T_IO_FILE = struct {
  19525. F_flags int32
  19526. F_IO_read_ptr uintptr
  19527. F_IO_read_end uintptr
  19528. F_IO_read_base uintptr
  19529. F_IO_write_base uintptr
  19530. F_IO_write_ptr uintptr
  19531. F_IO_write_end uintptr
  19532. F_IO_buf_base uintptr
  19533. F_IO_buf_end uintptr
  19534. F_IO_save_base uintptr
  19535. F_IO_backup_base uintptr
  19536. F_IO_save_end uintptr
  19537. F_markers uintptr
  19538. F_chain uintptr
  19539. F_fileno int32
  19540. F_flags2 int32
  19541. F_old_offset t__off_t
  19542. F_cur_column uint16
  19543. F_vtable_offset int8
  19544. F_shortbuf [1]int8
  19545. F_lock uintptr
  19546. F_offset t__off64_t
  19547. F_codecvt uintptr
  19548. F_wide_data uintptr
  19549. F_freeres_list uintptr
  19550. F_freeres_buf uintptr
  19551. F__pad5 Tsize_t
  19552. F_mode int32
  19553. F_unused2 [20]int8
  19554. }
  19555. type t__FILE = struct {
  19556. F_flags int32
  19557. F_IO_read_ptr uintptr
  19558. F_IO_read_end uintptr
  19559. F_IO_read_base uintptr
  19560. F_IO_write_base uintptr
  19561. F_IO_write_ptr uintptr
  19562. F_IO_write_end uintptr
  19563. F_IO_buf_base uintptr
  19564. F_IO_buf_end uintptr
  19565. F_IO_save_base uintptr
  19566. F_IO_backup_base uintptr
  19567. F_IO_save_end uintptr
  19568. F_markers uintptr
  19569. F_chain uintptr
  19570. F_fileno int32
  19571. F_flags2 int32
  19572. F_old_offset t__off_t
  19573. F_cur_column uint16
  19574. F_vtable_offset int8
  19575. F_shortbuf [1]int8
  19576. F_lock uintptr
  19577. F_offset t__off64_t
  19578. F_codecvt uintptr
  19579. F_wide_data uintptr
  19580. F_freeres_list uintptr
  19581. F_freeres_buf uintptr
  19582. F__pad5 Tsize_t
  19583. F_mode int32
  19584. F_unused2 [20]int8
  19585. }
  19586. type TFILE = struct {
  19587. F_flags int32
  19588. F_IO_read_ptr uintptr
  19589. F_IO_read_end uintptr
  19590. F_IO_read_base uintptr
  19591. F_IO_write_base uintptr
  19592. F_IO_write_ptr uintptr
  19593. F_IO_write_end uintptr
  19594. F_IO_buf_base uintptr
  19595. F_IO_buf_end uintptr
  19596. F_IO_save_base uintptr
  19597. F_IO_backup_base uintptr
  19598. F_IO_save_end uintptr
  19599. F_markers uintptr
  19600. F_chain uintptr
  19601. F_fileno int32
  19602. F_flags2 int32
  19603. F_old_offset t__off_t
  19604. F_cur_column uint16
  19605. F_vtable_offset int8
  19606. F_shortbuf [1]int8
  19607. F_lock uintptr
  19608. F_offset t__off64_t
  19609. F_codecvt uintptr
  19610. F_wide_data uintptr
  19611. F_freeres_list uintptr
  19612. F_freeres_buf uintptr
  19613. F__pad5 Tsize_t
  19614. F_mode int32
  19615. F_unused2 [20]int8
  19616. }
  19617. type T_IO_lock_t = struct{}
  19618. type Tfpos_t = struct {
  19619. F__pos t__off_t
  19620. F__state t__mbstate_t
  19621. }
  19622. type Tfpos64_t = struct {
  19623. F__pos t__off64_t
  19624. F__state t__mbstate_t
  19625. }
  19626. type Tflock = struct {
  19627. Fl_type int16
  19628. Fl_whence int16
  19629. Fl_start t__off_t
  19630. Fl_len t__off_t
  19631. Fl_pid t__pid_t
  19632. }
  19633. type Tflock_t = struct {
  19634. Fl_type int16
  19635. Fl_whence int16
  19636. Fl_start t__off_t
  19637. Fl_len t__off_t
  19638. Fl_pid t__pid_t
  19639. }
  19640. type Tflock64 = struct {
  19641. Fl_type int16
  19642. Fl_whence int16
  19643. Fl_start t__off64_t
  19644. Fl_len t__off64_t
  19645. Fl_pid t__pid_t
  19646. }
  19647. type Tstat = struct {
  19648. Fst_dev t__dev_t
  19649. Fst_pad1 [3]int32
  19650. Fst_ino t__ino_t
  19651. Fst_mode t__mode_t
  19652. Fst_nlink t__nlink_t
  19653. Fst_uid t__uid_t
  19654. Fst_gid t__gid_t
  19655. Fst_rdev t__dev_t
  19656. Fst_pad2 [2]uint32
  19657. Fst_size t__off_t
  19658. Fst_pad3 int32
  19659. Fst_atim Ttimespec
  19660. Fst_mtim Ttimespec
  19661. Fst_ctim Ttimespec
  19662. Fst_blksize t__blksize_t
  19663. Fst_pad4 uint32
  19664. Fst_blocks t__blkcnt_t
  19665. Fst_pad5 [14]int32
  19666. }
  19667. type Tstat64 = struct {
  19668. Fst_dev t__dev_t
  19669. Fst_pad1 [3]uint32
  19670. Fst_ino t__ino64_t
  19671. Fst_mode t__mode_t
  19672. Fst_nlink t__nlink_t
  19673. Fst_uid t__uid_t
  19674. Fst_gid t__gid_t
  19675. Fst_rdev t__dev_t
  19676. Fst_pad2 [3]uint32
  19677. Fst_size t__off64_t
  19678. Fst_atim Ttimespec
  19679. Fst_mtim Ttimespec
  19680. Fst_ctim Ttimespec
  19681. Fst_blksize t__blksize_t
  19682. Fst_pad3 uint32
  19683. Fst_blocks t__blkcnt64_t
  19684. Fst_pad4 [14]int32
  19685. }
  19686. type Tgz_state = struct {
  19687. Fx TgzFile_s
  19688. Fmode int32
  19689. Ffd int32
  19690. Fpath uintptr
  19691. Fsize uint32
  19692. Fwant uint32
  19693. Fin uintptr
  19694. Fout uintptr
  19695. Fdirect int32
  19696. Fhow int32
  19697. Fstart Toff64_t
  19698. Feof int32
  19699. Fpast int32
  19700. Flevel int32
  19701. Fstrategy int32
  19702. Freset int32
  19703. Fskip Toff64_t
  19704. Fseek int32
  19705. Ferr int32
  19706. Fmsg uintptr
  19707. Fstrm Tz_stream
  19708. }
  19709. type Tgz_statep = uintptr
  19710. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  19711. return __ccgo_ts
  19712. }
  19713. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  19714. var flags TuLong
  19715. _ = flags
  19716. flags = uint64(0)
  19717. switch int32(libc.Uint64FromInt64(4)) {
  19718. case int32(2):
  19719. case int32(4):
  19720. flags += uint64(1)
  19721. case int32(8):
  19722. flags += uint64(2)
  19723. default:
  19724. flags += uint64(3)
  19725. }
  19726. switch int32(libc.Uint64FromInt64(8)) {
  19727. case int32(2):
  19728. case int32(4):
  19729. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  19730. case int32(8):
  19731. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  19732. default:
  19733. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  19734. }
  19735. switch int32(libc.Uint64FromInt64(8)) {
  19736. case int32(2):
  19737. case int32(4):
  19738. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  19739. case int32(8):
  19740. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  19741. default:
  19742. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  19743. }
  19744. switch int32(libc.Uint64FromInt64(8)) {
  19745. case int32(2):
  19746. case int32(4):
  19747. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  19748. case int32(8):
  19749. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  19750. default:
  19751. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  19752. }
  19753. /*
  19754. #if defined(ASMV) || defined(ASMINF)
  19755. flags += 1 << 9;
  19756. #endif
  19757. */
  19758. return flags
  19759. }
  19760. // C documentation
  19761. //
  19762. // /* exported to allow conversion of error code to string for compress() and
  19763. // * uncompress()
  19764. // */
  19765. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  19766. return Xz_errmsg[int32(m_Z_NEED_DICT)-err]
  19767. }
  19768. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  19769. _ = opaque
  19770. return libc.Xmalloc(tls, uint64(items*size))
  19771. }
  19772. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  19773. _ = opaque
  19774. libc.Xfree(tls, ptr)
  19775. }
  19776. // C documentation
  19777. //
  19778. // /* ===========================================================================
  19779. // Compresses the source buffer into the destination buffer. The level
  19780. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  19781. // length of the source buffer. Upon entry, destLen is the total size of the
  19782. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  19783. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  19784. //
  19785. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  19786. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  19787. // Z_STREAM_ERROR if the level parameter is invalid.
  19788. // */
  19789. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  19790. bp := tls.Alloc(112)
  19791. defer tls.Free(112)
  19792. var err, v3, v4 int32
  19793. var left TuLong
  19794. var max TuInt
  19795. var v1, v2 uint32
  19796. var _ /* stream at bp+0 */ Tz_stream
  19797. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  19798. max = uint32(-libc.Int32FromInt32(1))
  19799. left = *(*TuLongf)(unsafe.Pointer(destLen))
  19800. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  19801. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  19802. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  19803. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  19804. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(112))
  19805. if err != m_Z_OK {
  19806. return err
  19807. }
  19808. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  19809. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  19810. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  19811. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  19812. for cond := true; cond; cond = err == m_Z_OK {
  19813. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  19814. if left > uint64(uint64(max)) {
  19815. v1 = max
  19816. } else {
  19817. v1 = uint32(uint32(left))
  19818. }
  19819. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  19820. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  19821. }
  19822. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  19823. if sourceLen > uint64(uint64(max)) {
  19824. v2 = max
  19825. } else {
  19826. v2 = uint32(uint32(sourceLen))
  19827. }
  19828. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  19829. sourceLen -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  19830. }
  19831. if sourceLen != 0 {
  19832. v3 = m_Z_NO_FLUSH
  19833. } else {
  19834. v3 = int32(m_Z_FINISH)
  19835. }
  19836. err = Xdeflate(tls, bp, v3)
  19837. }
  19838. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  19839. XdeflateEnd(tls, bp)
  19840. if err == int32(m_Z_STREAM_END) {
  19841. v4 = m_Z_OK
  19842. } else {
  19843. v4 = err
  19844. }
  19845. return v4
  19846. }
  19847. // C documentation
  19848. //
  19849. // /* ===========================================================================
  19850. // */
  19851. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  19852. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  19853. }
  19854. // C documentation
  19855. //
  19856. // /* ===========================================================================
  19857. // If the default memLevel or windowBits for deflateInit() is changed, then
  19858. // this function needs to be updated.
  19859. // */
  19860. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  19861. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13)
  19862. }
  19863. // C documentation
  19864. //
  19865. // /* ===========================================================================
  19866. // Decompresses the source buffer into the destination buffer. *sourceLen is
  19867. // the byte length of the source buffer. Upon entry, *destLen is the total size
  19868. // of the destination buffer, which must be large enough to hold the entire
  19869. // uncompressed data. (The size of the uncompressed data must have been saved
  19870. // previously by the compressor and transmitted to the decompressor by some
  19871. // mechanism outside the scope of this compression library.) Upon exit,
  19872. // *destLen is the size of the decompressed data and *sourceLen is the number
  19873. // of source bytes consumed. Upon return, source + *sourceLen points to the
  19874. // first unused input byte.
  19875. //
  19876. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  19877. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  19878. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  19879. // an incomplete zlib stream.
  19880. // */
  19881. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  19882. bp := tls.Alloc(128)
  19883. defer tls.Free(128)
  19884. var err, v3, v4, v5 int32
  19885. var left, len1 TuLong
  19886. var max TuInt
  19887. var v1, v2 uint32
  19888. var _ /* buf at bp+112 */ [1]TByte
  19889. var _ /* stream at bp+0 */ Tz_stream
  19890. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  19891. max = uint32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  19892. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  19893. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  19894. left = *(*TuLongf)(unsafe.Pointer(destLen))
  19895. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  19896. } else {
  19897. left = uint64(1)
  19898. dest = bp + 112
  19899. }
  19900. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  19901. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  19902. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  19903. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  19904. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  19905. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(112))
  19906. if err != m_Z_OK {
  19907. return err
  19908. }
  19909. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  19910. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  19911. for cond := true; cond; cond = err == m_Z_OK {
  19912. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  19913. if left > uint64(uint64(max)) {
  19914. v1 = max
  19915. } else {
  19916. v1 = uint32(uint32(left))
  19917. }
  19918. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  19919. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  19920. }
  19921. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  19922. if len1 > uint64(uint64(max)) {
  19923. v2 = max
  19924. } else {
  19925. v2 = uint32(uint32(len1))
  19926. }
  19927. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  19928. len1 -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  19929. }
  19930. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  19931. }
  19932. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  19933. if dest != bp+112 {
  19934. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  19935. } else {
  19936. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  19937. left = uint64(1)
  19938. }
  19939. }
  19940. XinflateEnd(tls, bp)
  19941. if err == int32(m_Z_STREAM_END) {
  19942. v3 = m_Z_OK
  19943. } else {
  19944. if err == int32(m_Z_NEED_DICT) {
  19945. v4 = -int32(3)
  19946. } else {
  19947. if err == -int32(5) && left+uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out) != 0 {
  19948. v5 = -int32(3)
  19949. } else {
  19950. v5 = err
  19951. }
  19952. v4 = v5
  19953. }
  19954. v3 = v4
  19955. }
  19956. return v3
  19957. }
  19958. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  19959. bp := tls.Alloc(16)
  19960. defer tls.Free(16)
  19961. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  19962. return Xuncompress2(tls, dest, destLen, source, bp)
  19963. }
  19964. const m_GZ_READ = 7247
  19965. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  19966. value -- needed when comparing unsigned to z_off64_t, which is signed
  19967. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  19968. // C documentation
  19969. //
  19970. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  19971. // That way the other gzclose functions can be used instead to avoid linking in
  19972. // unneeded compression or decompression routines. */
  19973. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  19974. var state Tgz_statep
  19975. var v1 int32
  19976. _, _ = state, v1
  19977. if file == libc.UintptrFromInt32(0) {
  19978. return -int32(2)
  19979. }
  19980. state = file
  19981. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  19982. v1 = Xgzclose_r(tls, file)
  19983. } else {
  19984. v1 = Xgzclose_w(tls, file)
  19985. }
  19986. return v1
  19987. }
  19988. const m_COPY = 1
  19989. const m_GZBUFSIZE = 8192
  19990. const m_GZ_APPEND = 1
  19991. const m_GZ_NONE = 0
  19992. const m_GZ_WRITE = 31153
  19993. const m_LOOK = 0
  19994. const m_O_APPEND = 8
  19995. const m_O_CREAT = 256
  19996. const m_O_EXCL = 1024
  19997. const m_O_RDONLY = 0
  19998. const m_O_TRUNC = 512
  19999. const m_O_WRONLY = 1
  20000. const m_SEEK_CUR = 1
  20001. const m_SEEK_END = 2
  20002. const m_SEEK_SET = 0
  20003. const m___INT_MAX__ = 2147483647
  20004. const m___O_CLOEXEC = 524288
  20005. const m___O_LARGEFILE = 0
  20006. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  20007. value -- needed when comparing unsigned to z_off64_t, which is signed
  20008. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  20009. // C documentation
  20010. //
  20011. // /* Reset gzip file state */
  20012. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  20013. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  20014. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  20015. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  20016. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  20017. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  20018. } else { /* for writing ... */
  20019. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  20020. } /* no deflateReset pending */
  20021. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  20022. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  20023. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  20024. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  20025. }
  20026. // C documentation
  20027. //
  20028. // /* Open a gzip file either by name or file descriptor. */
  20029. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  20030. bp := tls.Alloc(16)
  20031. defer tls.Free(16)
  20032. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  20033. var len1 Tz_size_t
  20034. var state Tgz_statep
  20035. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  20036. cloexec = 0
  20037. exclusive = 0
  20038. /* check input */
  20039. if path == libc.UintptrFromInt32(0) {
  20040. return libc.UintptrFromInt32(0)
  20041. }
  20042. /* allocate gzFile structure to return */
  20043. state = libc.Xmalloc(tls, uint64(240))
  20044. if state == libc.UintptrFromInt32(0) {
  20045. return libc.UintptrFromInt32(0)
  20046. }
  20047. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  20048. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  20049. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  20050. /* interpret mode */
  20051. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  20052. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  20053. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  20054. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  20055. for *(*int8)(unsafe.Pointer(mode)) != 0 {
  20056. if int32(*(*int8)(unsafe.Pointer(mode))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(mode))) <= int32('9') {
  20057. (*Tgz_state)(unsafe.Pointer(state)).Flevel = int32(*(*int8)(unsafe.Pointer(mode))) - int32('0')
  20058. } else {
  20059. switch int32(*(*int8)(unsafe.Pointer(mode))) {
  20060. case int32('r'):
  20061. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  20062. case int32('w'):
  20063. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  20064. case int32('a'):
  20065. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  20066. case int32('+'):
  20067. libc.Xfree(tls, state)
  20068. return libc.UintptrFromInt32(0)
  20069. case int32('b'):
  20070. case int32('e'):
  20071. cloexec = int32(1)
  20072. case int32('x'):
  20073. exclusive = int32(1)
  20074. case int32('f'):
  20075. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  20076. case int32('h'):
  20077. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  20078. case int32('R'):
  20079. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  20080. case int32('F'):
  20081. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  20082. case int32('T'):
  20083. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  20084. default: /* could consider as an error, but just ignore */
  20085. }
  20086. }
  20087. mode++
  20088. }
  20089. /* must provide an "r", "w", or "a" */
  20090. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  20091. libc.Xfree(tls, state)
  20092. return libc.UintptrFromInt32(0)
  20093. }
  20094. /* can't force transparent read */
  20095. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20096. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  20097. libc.Xfree(tls, state)
  20098. return libc.UintptrFromInt32(0)
  20099. }
  20100. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  20101. }
  20102. /* save the path name for error messages */
  20103. len1 = libc.Xstrlen(tls, path)
  20104. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  20105. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  20106. libc.Xfree(tls, state)
  20107. return libc.UintptrFromInt32(0)
  20108. }
  20109. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+582, libc.VaList(bp+8, path))
  20110. /* compute the flags for open() */
  20111. if cloexec != 0 {
  20112. v1 = int32(m___O_CLOEXEC)
  20113. } else {
  20114. v1 = 0
  20115. }
  20116. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20117. v2 = m_O_RDONLY
  20118. } else {
  20119. if exclusive != 0 {
  20120. v3 = int32(m_O_EXCL)
  20121. } else {
  20122. v3 = 0
  20123. }
  20124. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  20125. v4 = int32(m_O_TRUNC)
  20126. } else {
  20127. v4 = int32(m_O_APPEND)
  20128. }
  20129. v2 = libc.Int32FromInt32(m_O_WRONLY) | libc.Int32FromInt32(m_O_CREAT) | v3 | v4
  20130. }
  20131. oflag = m___O_LARGEFILE | v1 | v2
  20132. /* open the file with the appropriate flags (or just use fd) */
  20133. if fd > -int32(1) {
  20134. v5 = fd
  20135. } else {
  20136. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  20137. }
  20138. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  20139. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  20140. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  20141. libc.Xfree(tls, state)
  20142. return libc.UintptrFromInt32(0)
  20143. }
  20144. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  20145. libc.Xlseek64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_END)) /* so gzoffset() is correct */
  20146. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  20147. }
  20148. /* save the current position for rewinding (only if reading) */
  20149. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20150. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR))
  20151. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  20152. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  20153. }
  20154. }
  20155. /* initialize stream */
  20156. _gz_reset(tls, state)
  20157. /* return stream */
  20158. return state
  20159. }
  20160. // C documentation
  20161. //
  20162. // /* -- see zlib.h -- */
  20163. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20164. return _gz_open(tls, path, -int32(1), mode)
  20165. }
  20166. // C documentation
  20167. //
  20168. // /* -- see zlib.h -- */
  20169. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20170. return _gz_open(tls, path, -int32(1), mode)
  20171. }
  20172. // C documentation
  20173. //
  20174. // /* -- see zlib.h -- */
  20175. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  20176. bp := tls.Alloc(16)
  20177. defer tls.Free(16)
  20178. var gz TgzFile
  20179. var path, v1 uintptr
  20180. var v2 bool
  20181. _, _, _, _ = gz, path, v1, v2
  20182. if v2 = fd == -int32(1); !v2 {
  20183. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  20184. path = v1
  20185. }
  20186. if v2 || v1 == libc.UintptrFromInt32(0) {
  20187. return libc.UintptrFromInt32(0)
  20188. }
  20189. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+585, libc.VaList(bp+8, fd))
  20190. gz = _gz_open(tls, path, fd, mode)
  20191. libc.Xfree(tls, path)
  20192. return gz
  20193. }
  20194. /* -- see zlib.h -- */
  20195. // C documentation
  20196. //
  20197. // /* -- see zlib.h -- */
  20198. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  20199. var state Tgz_statep
  20200. _ = state
  20201. /* get internal structure and check integrity */
  20202. if file == libc.UintptrFromInt32(0) {
  20203. return -int32(1)
  20204. }
  20205. state = file
  20206. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20207. return -int32(1)
  20208. }
  20209. /* make sure we haven't already allocated memory */
  20210. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  20211. return -int32(1)
  20212. }
  20213. /* check and set requested size */
  20214. if size<<int32(1) < size {
  20215. return -int32(1)
  20216. } /* need to be able to double it */
  20217. if size < uint32(8) {
  20218. size = uint32(8)
  20219. } /* needed to behave well with flushing */
  20220. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  20221. return 0
  20222. }
  20223. // C documentation
  20224. //
  20225. // /* -- see zlib.h -- */
  20226. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  20227. var state Tgz_statep
  20228. _ = state
  20229. /* get internal structure */
  20230. if file == libc.UintptrFromInt32(0) {
  20231. return -int32(1)
  20232. }
  20233. state = file
  20234. /* check that we're reading and that there's no error */
  20235. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20236. return -int32(1)
  20237. }
  20238. /* back up and start over */
  20239. if libc.Xlseek64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, m_SEEK_SET) == int64(-int32(1)) {
  20240. return -int32(1)
  20241. }
  20242. _gz_reset(tls, state)
  20243. return 0
  20244. }
  20245. // C documentation
  20246. //
  20247. // /* -- see zlib.h -- */
  20248. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff64_t, whence int32) (r Toff64_t) {
  20249. var n, v1 uint32
  20250. var ret Toff64_t
  20251. var state Tgz_statep
  20252. _, _, _, _ = n, ret, state, v1
  20253. /* get internal structure and check integrity */
  20254. if file == libc.UintptrFromInt32(0) {
  20255. return int64(-int32(1))
  20256. }
  20257. state = file
  20258. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20259. return int64(-int32(1))
  20260. }
  20261. /* check that there's no error */
  20262. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20263. return int64(-int32(1))
  20264. }
  20265. /* can only seek from start or relative to current position */
  20266. if whence != m_SEEK_SET && whence != int32(m_SEEK_CUR) {
  20267. return int64(-int32(1))
  20268. }
  20269. /* normalize offset to a SEEK_CUR specification */
  20270. if whence == m_SEEK_SET {
  20271. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20272. } else {
  20273. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20274. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20275. }
  20276. }
  20277. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20278. /* if within raw area while reading, just go there */
  20279. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos+offset >= 0 {
  20280. ret = libc.Xlseek64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(m_SEEK_CUR))
  20281. if ret == int64(-int32(1)) {
  20282. return int64(-int32(1))
  20283. }
  20284. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20285. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20286. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20287. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20288. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20289. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  20290. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  20291. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20292. }
  20293. /* calculate skip amount, rewinding if needed for back seek when reading */
  20294. if offset < 0 {
  20295. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  20296. return int64(-int32(1))
  20297. }
  20298. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20299. if offset < 0 { /* before start of file! */
  20300. return int64(-int32(1))
  20301. }
  20302. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  20303. return int64(-int32(1))
  20304. }
  20305. }
  20306. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  20307. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20308. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > uint32(m___INT_MAX__)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  20309. v1 = uint32(uint32(offset))
  20310. } else {
  20311. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20312. }
  20313. n = v1
  20314. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  20315. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  20316. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(n))
  20317. offset -= int64(int64(n))
  20318. }
  20319. /* request skip (if not zero) */
  20320. if offset != 0 {
  20321. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  20322. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  20323. }
  20324. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  20325. }
  20326. // C documentation
  20327. //
  20328. // /* -- see zlib.h -- */
  20329. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20330. var ret Toff64_t
  20331. var v1 int64
  20332. _, _ = ret, v1
  20333. ret = Xgzseek64(tls, file, offset, whence)
  20334. if ret == ret {
  20335. v1 = ret
  20336. } else {
  20337. v1 = int64(-int32(1))
  20338. }
  20339. return v1
  20340. }
  20341. // C documentation
  20342. //
  20343. // /* -- see zlib.h -- */
  20344. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff64_t) {
  20345. var state Tgz_statep
  20346. var v1 int64
  20347. _, _ = state, v1
  20348. /* get internal structure and check integrity */
  20349. if file == libc.UintptrFromInt32(0) {
  20350. return int64(-int32(1))
  20351. }
  20352. state = file
  20353. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20354. return int64(-int32(1))
  20355. }
  20356. /* return position */
  20357. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20358. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20359. } else {
  20360. v1 = 0
  20361. }
  20362. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  20363. }
  20364. // C documentation
  20365. //
  20366. // /* -- see zlib.h -- */
  20367. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20368. var ret Toff64_t
  20369. var v1 int64
  20370. _, _ = ret, v1
  20371. ret = Xgztell64(tls, file)
  20372. if ret == ret {
  20373. v1 = ret
  20374. } else {
  20375. v1 = int64(-int32(1))
  20376. }
  20377. return v1
  20378. }
  20379. // C documentation
  20380. //
  20381. // /* -- see zlib.h -- */
  20382. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff64_t) {
  20383. var offset Toff64_t
  20384. var state Tgz_statep
  20385. _, _ = offset, state
  20386. /* get internal structure and check integrity */
  20387. if file == libc.UintptrFromInt32(0) {
  20388. return int64(-int32(1))
  20389. }
  20390. state = file
  20391. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20392. return int64(-int32(1))
  20393. }
  20394. /* compute and return effective offset in file */
  20395. offset = libc.Xlseek64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR))
  20396. if offset == int64(-int32(1)) {
  20397. return int64(-int32(1))
  20398. }
  20399. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  20400. offset -= int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  20401. } /* don't count buffered input */
  20402. return offset
  20403. }
  20404. // C documentation
  20405. //
  20406. // /* -- see zlib.h -- */
  20407. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20408. var ret Toff64_t
  20409. var v1 int64
  20410. _, _ = ret, v1
  20411. ret = Xgzoffset64(tls, file)
  20412. if ret == ret {
  20413. v1 = ret
  20414. } else {
  20415. v1 = int64(-int32(1))
  20416. }
  20417. return v1
  20418. }
  20419. // C documentation
  20420. //
  20421. // /* -- see zlib.h -- */
  20422. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  20423. var state Tgz_statep
  20424. var v1 int32
  20425. _, _ = state, v1
  20426. /* get internal structure and check integrity */
  20427. if file == libc.UintptrFromInt32(0) {
  20428. return 0
  20429. }
  20430. state = file
  20431. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20432. return 0
  20433. }
  20434. /* return end-of-file state */
  20435. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20436. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  20437. } else {
  20438. v1 = 0
  20439. }
  20440. return v1
  20441. }
  20442. // C documentation
  20443. //
  20444. // /* -- see zlib.h -- */
  20445. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  20446. var state Tgz_statep
  20447. var v1, v2 uintptr
  20448. _, _, _ = state, v1, v2
  20449. /* get internal structure and check integrity */
  20450. if file == libc.UintptrFromInt32(0) {
  20451. return libc.UintptrFromInt32(0)
  20452. }
  20453. state = file
  20454. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20455. return libc.UintptrFromInt32(0)
  20456. }
  20457. /* return error information */
  20458. if errnum != libc.UintptrFromInt32(0) {
  20459. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  20460. }
  20461. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  20462. v1 = __ccgo_ts + 593
  20463. } else {
  20464. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  20465. v2 = __ccgo_ts + 492
  20466. } else {
  20467. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  20468. }
  20469. v1 = v2
  20470. }
  20471. return v1
  20472. }
  20473. // C documentation
  20474. //
  20475. // /* -- see zlib.h -- */
  20476. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  20477. var state Tgz_statep
  20478. _ = state
  20479. /* get internal structure and check integrity */
  20480. if file == libc.UintptrFromInt32(0) {
  20481. return
  20482. }
  20483. state = file
  20484. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20485. return
  20486. }
  20487. /* clear error and end-of-file */
  20488. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20489. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20490. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20491. }
  20492. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20493. }
  20494. // C documentation
  20495. //
  20496. // /* Create an error message in allocated memory and set state->err and
  20497. // state->msg accordingly. Free any previous error message already there. Do
  20498. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  20499. // memory). Simply save the error message as a static string. If there is an
  20500. // allocation failure constructing the error message, then convert the error to
  20501. // out of memory. */
  20502. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  20503. bp := tls.Alloc(32)
  20504. defer tls.Free(32)
  20505. var v1 uintptr
  20506. _ = v1
  20507. /* free previously allocated message and clear */
  20508. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  20509. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  20510. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  20511. }
  20512. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  20513. }
  20514. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  20515. if err != m_Z_OK && err != -int32(5) {
  20516. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20517. }
  20518. /* set error code, and if no message, then done */
  20519. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  20520. if msg == libc.UintptrFromInt32(0) {
  20521. return
  20522. }
  20523. /* for an out of memory error, return literal string when requested */
  20524. if err == -int32(4) {
  20525. return
  20526. }
  20527. /* construct error message with path */
  20528. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  20529. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  20530. if v1 == libc.UintptrFromInt32(0) {
  20531. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  20532. return
  20533. }
  20534. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3), __ccgo_ts+607, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+614, msg))
  20535. }
  20536. const m_GZIP = 2
  20537. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  20538. value -- needed when comparing unsigned to z_off64_t, which is signed
  20539. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  20540. // C documentation
  20541. //
  20542. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  20543. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  20544. // This function needs to loop on read(), since read() is not guaranteed to
  20545. // read the number of bytes requested, depending on the type of descriptor. */
  20546. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  20547. var get, max uint32
  20548. var ret int32
  20549. _, _, _ = get, max, ret
  20550. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  20551. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  20552. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  20553. get = len1 - *(*uint32)(unsafe.Pointer(have))
  20554. if get > max {
  20555. get = max
  20556. }
  20557. ret = int32(libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), uint64(uint64(get))))
  20558. if ret <= 0 {
  20559. break
  20560. }
  20561. *(*uint32)(unsafe.Pointer(have)) += uint32(uint32(ret))
  20562. }
  20563. if ret < 0 {
  20564. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  20565. return -int32(1)
  20566. }
  20567. if ret == 0 {
  20568. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  20569. }
  20570. return 0
  20571. }
  20572. // C documentation
  20573. //
  20574. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  20575. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  20576. // file is reached, even though there may be unused data in the buffer. Once
  20577. // that data has been used, no more attempts will be made to read the file.
  20578. // If strm->avail_in != 0, then the current data is moved to the beginning of
  20579. // the input buffer, and then the remainder of the buffer is loaded with the
  20580. // available data from the input file. */
  20581. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  20582. bp := tls.Alloc(16)
  20583. defer tls.Free(16)
  20584. var n, v1 uint32
  20585. var p, q, v3, v4 uintptr
  20586. var strm Tz_streamp
  20587. var _ /* got at bp+0 */ uint32
  20588. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  20589. strm = state + 128
  20590. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20591. return -int32(1)
  20592. }
  20593. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  20594. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  20595. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  20596. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  20597. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  20598. for {
  20599. v3 = p
  20600. p++
  20601. v4 = q
  20602. q++
  20603. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  20604. goto _2
  20605. _2:
  20606. n--
  20607. v1 = n
  20608. if !(v1 != 0) {
  20609. break
  20610. }
  20611. }
  20612. }
  20613. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in), (*Tgz_state)(unsafe.Pointer(state)).Fsize-(*Tz_stream)(unsafe.Pointer(strm)).Favail_in, bp) == -int32(1) {
  20614. return -int32(1)
  20615. }
  20616. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  20617. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  20618. }
  20619. return 0
  20620. }
  20621. // C documentation
  20622. //
  20623. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  20624. // If this is the first time in, allocate required memory. state->how will be
  20625. // left unchanged if there is no more input data available, will be set to COPY
  20626. // if there is no gzip header and direct copying will be performed, or it will
  20627. // be set to GZIP for decompression. If direct copying, then leftover input
  20628. // data from the input buffer will be copied to the output buffer. In that
  20629. // case, all further file reads will be directly to either the output buffer or
  20630. // a user buffer. If decompressing, the inflate state will be initialized.
  20631. // gz_look() will return 0 on success or -1 on failure. */
  20632. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  20633. var strm Tz_streamp
  20634. _ = strm
  20635. strm = state + 128
  20636. /* allocate read buffers and inflate memory */
  20637. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  20638. /* allocate buffers */
  20639. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  20640. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  20641. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  20642. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  20643. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  20644. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  20645. return -int32(1)
  20646. }
  20647. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  20648. /* allocate inflate memory */
  20649. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  20650. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  20651. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  20652. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  20653. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  20654. if XinflateInit2_(tls, state+128, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(112)) != m_Z_OK { /* gunzip */
  20655. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  20656. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  20657. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  20658. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  20659. return -int32(1)
  20660. }
  20661. }
  20662. /* get at least the magic bytes in the input buffer */
  20663. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  20664. if _gz_avail(tls, state) == -int32(1) {
  20665. return -int32(1)
  20666. }
  20667. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  20668. return 0
  20669. }
  20670. }
  20671. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  20672. a logical dilemma here when considering the case of a partially written
  20673. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  20674. whether this is a single-byte file, or just a partially written gzip
  20675. file -- for here we assume that if a gzip file is being written, then
  20676. the header will be written in a single operation, so that reading a
  20677. single byte is sufficient indication that it is not a gzip file) */
  20678. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  20679. XinflateReset(tls, strm)
  20680. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  20681. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  20682. return 0
  20683. }
  20684. /* no gzip header -- if we were decoding gzip before, then this is trailing
  20685. garbage. Ignore the trailing garbage and finish. */
  20686. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  20687. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  20688. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  20689. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20690. return 0
  20691. }
  20692. /* doing raw i/o, copy any leftover input to output -- this assumes that
  20693. the output buffer is larger than the input buffer, which also assures
  20694. space for gzungetc() */
  20695. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  20696. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64((*Tz_stream)(unsafe.Pointer(strm)).Favail_in))
  20697. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  20698. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  20699. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  20700. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  20701. return 0
  20702. }
  20703. // C documentation
  20704. //
  20705. // /* Decompress from input to the provided next_out and avail_out in the state.
  20706. // On return, state->x.have and state->x.next point to the just decompressed
  20707. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  20708. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  20709. // on success, -1 on failure. */
  20710. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  20711. var had uint32
  20712. var ret int32
  20713. var strm Tz_streamp
  20714. var v1 uintptr
  20715. _, _, _, _ = had, ret, strm, v1
  20716. ret = m_Z_OK
  20717. strm = state + 128
  20718. /* fill output buffer up to end of deflate stream */
  20719. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  20720. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  20721. /* get more input for inflate() */
  20722. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  20723. return -int32(1)
  20724. }
  20725. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  20726. Xgz_error(tls, state, -int32(5), __ccgo_ts+617)
  20727. break
  20728. }
  20729. /* decompress and handle errors */
  20730. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  20731. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  20732. Xgz_error(tls, state, -int32(2), __ccgo_ts+640)
  20733. return -int32(1)
  20734. }
  20735. if ret == -int32(4) {
  20736. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  20737. return -int32(1)
  20738. }
  20739. if ret == -int32(3) { /* deflate stream invalid */
  20740. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  20741. v1 = __ccgo_ts + 679
  20742. } else {
  20743. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  20744. }
  20745. Xgz_error(tls, state, -int32(3), v1)
  20746. return -int32(1)
  20747. }
  20748. }
  20749. /* update available output */
  20750. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  20751. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  20752. /* if the gzip stream completed successfully, look for another */
  20753. if ret == int32(m_Z_STREAM_END) {
  20754. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  20755. }
  20756. /* good decompression */
  20757. return 0
  20758. }
  20759. // C documentation
  20760. //
  20761. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  20762. // Data is either copied from the input file or decompressed from the input
  20763. // file depending on state->how. If state->how is LOOK, then a gzip header is
  20764. // looked for to determine whether to copy or decompress. Returns -1 on error,
  20765. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  20766. // end of the input file has been reached and all data has been processed. */
  20767. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  20768. var strm Tz_streamp
  20769. _ = strm
  20770. strm = state + 128
  20771. for cond := true; cond; cond = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && (!((*Tgz_state)(unsafe.Pointer(state)).Feof != 0) || (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0) {
  20772. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  20773. case m_LOOK:
  20774. if _gz_look(tls, state) == -int32(1) {
  20775. return -int32(1)
  20776. }
  20777. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  20778. return 0
  20779. }
  20780. case int32(m_COPY):
  20781. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  20782. return -int32(1)
  20783. }
  20784. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  20785. return 0
  20786. case int32(m_GZIP):
  20787. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  20788. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  20789. if _gz_decomp(tls, state) == -int32(1) {
  20790. return -int32(1)
  20791. }
  20792. }
  20793. }
  20794. return 0
  20795. }
  20796. // C documentation
  20797. //
  20798. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  20799. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff64_t) (r int32) {
  20800. var n, v1 uint32
  20801. _, _ = n, v1
  20802. /* skip over len bytes or reach end-of-file, whichever comes first */
  20803. for len1 != 0 {
  20804. /* skip over whatever is in output buffer */
  20805. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  20806. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > uint32(m___INT_MAX__)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  20807. v1 = uint32(uint32(len1))
  20808. } else {
  20809. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20810. }
  20811. n = v1
  20812. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  20813. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  20814. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(n))
  20815. len1 -= int64(int64(n))
  20816. } else {
  20817. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  20818. break
  20819. } else {
  20820. /* get more output, looking for header if required */
  20821. if _gz_fetch(tls, state) == -int32(1) {
  20822. return -int32(1)
  20823. }
  20824. }
  20825. }
  20826. }
  20827. return 0
  20828. }
  20829. // C documentation
  20830. //
  20831. // /* Read len bytes into buf from file, or less than len up to the end of the
  20832. // input. Return the number of bytes read. If zero is returned, either the
  20833. // end of file was reached, or there was an error. state->err must be
  20834. // consulted in that case to determine which. */
  20835. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  20836. bp := tls.Alloc(16)
  20837. defer tls.Free(16)
  20838. var got Tz_size_t
  20839. var _ /* n at bp+0 */ uint32
  20840. _ = got
  20841. /* if len is zero, avoid unnecessary operations */
  20842. if len1 == uint64(0) {
  20843. return uint64(0)
  20844. }
  20845. /* process a skip request */
  20846. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20847. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20848. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  20849. return uint64(0)
  20850. }
  20851. }
  20852. /* get len bytes to buf, or less than len if at the end */
  20853. got = uint64(0)
  20854. for cond := true; cond; cond = len1 != 0 {
  20855. /* set n to the maximum amount of len that fits in an unsigned int */
  20856. *(*uint32)(unsafe.Pointer(bp)) = uint32(-libc.Int32FromInt32(1))
  20857. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  20858. *(*uint32)(unsafe.Pointer(bp)) = uint32(uint32(len1))
  20859. }
  20860. /* first just try copying data from the output buffer */
  20861. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  20862. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  20863. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20864. }
  20865. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  20866. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  20867. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  20868. } else {
  20869. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  20870. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  20871. break
  20872. } else {
  20873. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  20874. /* get more output, looking for header if required */
  20875. if _gz_fetch(tls, state) == -int32(1) {
  20876. return uint64(0)
  20877. }
  20878. continue /* no progress yet -- go back to copy above */
  20879. /* the copy above assures that we will leave with space in the
  20880. output buffer, allowing at least one gzungetc() to succeed */
  20881. } else {
  20882. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  20883. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  20884. return uint64(0)
  20885. }
  20886. } else { /* state->how == GZIP */
  20887. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  20888. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  20889. if _gz_decomp(tls, state) == -int32(1) {
  20890. return uint64(0)
  20891. }
  20892. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20893. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20894. }
  20895. }
  20896. }
  20897. }
  20898. /* update progress */
  20899. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  20900. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  20901. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  20902. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(*(*uint32)(unsafe.Pointer(bp)))
  20903. }
  20904. /* return number of bytes read into user buffer */
  20905. return got
  20906. }
  20907. // C documentation
  20908. //
  20909. // /* -- see zlib.h -- */
  20910. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  20911. var state Tgz_statep
  20912. _ = state
  20913. /* get internal structure */
  20914. if file == libc.UintptrFromInt32(0) {
  20915. return -int32(1)
  20916. }
  20917. state = file
  20918. /* check that we're reading and that there's no (serious) error */
  20919. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20920. return -int32(1)
  20921. }
  20922. /* since an int is returned, make sure len fits in one, otherwise return
  20923. with an error (this avoids a flaw in the interface) */
  20924. if int32(int32(len1)) < 0 {
  20925. Xgz_error(tls, state, -int32(2), __ccgo_ts+701)
  20926. return -int32(1)
  20927. }
  20928. /* read len or fewer bytes to buf */
  20929. len1 = uint32(_gz_read(tls, state, buf, uint64(uint64(len1))))
  20930. /* check for an error */
  20931. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20932. return -int32(1)
  20933. }
  20934. /* return the number of bytes read (this is assured to fit in an int) */
  20935. return int32(int32(len1))
  20936. }
  20937. // C documentation
  20938. //
  20939. // /* -- see zlib.h -- */
  20940. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  20941. var len1 Tz_size_t
  20942. var state Tgz_statep
  20943. var v1 uint64
  20944. _, _, _ = len1, state, v1
  20945. /* get internal structure */
  20946. if file == libc.UintptrFromInt32(0) {
  20947. return uint64(0)
  20948. }
  20949. state = file
  20950. /* check that we're reading and that there's no (serious) error */
  20951. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20952. return uint64(0)
  20953. }
  20954. /* compute bytes to read -- error on overflow */
  20955. len1 = nitems * size
  20956. if size != 0 && len1/size != nitems {
  20957. Xgz_error(tls, state, -int32(2), __ccgo_ts+732)
  20958. return uint64(0)
  20959. }
  20960. /* read len or fewer bytes to buf, return the number of full items read */
  20961. if len1 != 0 {
  20962. v1 = _gz_read(tls, state, buf, len1) / size
  20963. } else {
  20964. v1 = uint64(0)
  20965. }
  20966. return v1
  20967. }
  20968. // C documentation
  20969. //
  20970. // /* -- see zlib.h -- */
  20971. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  20972. bp := tls.Alloc(16)
  20973. defer tls.Free(16)
  20974. var state Tgz_statep
  20975. var v1, v2 uintptr
  20976. var v3 int32
  20977. var _ /* buf at bp+0 */ [1]uint8
  20978. _, _, _, _ = state, v1, v2, v3
  20979. /* get internal structure */
  20980. if file == libc.UintptrFromInt32(0) {
  20981. return -int32(1)
  20982. }
  20983. state = file
  20984. /* check that we're reading and that there's no (serious) error */
  20985. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20986. return -int32(1)
  20987. }
  20988. /* try output buffer (no need to check for skip request) */
  20989. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  20990. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  20991. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  20992. v2 = state + 8
  20993. v1 = *(*uintptr)(unsafe.Pointer(v2))
  20994. *(*uintptr)(unsafe.Pointer(v2))++
  20995. return int32(*(*uint8)(unsafe.Pointer(v1)))
  20996. }
  20997. /* nothing there -- try gz_read() */
  20998. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  20999. v3 = -int32(1)
  21000. } else {
  21001. v3 = int32((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  21002. }
  21003. return v3
  21004. }
  21005. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  21006. return Xgzgetc(tls, file)
  21007. }
  21008. // C documentation
  21009. //
  21010. // /* -- see zlib.h -- */
  21011. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  21012. var dest, src, v1, v2 uintptr
  21013. var state Tgz_statep
  21014. _, _, _, _, _ = dest, src, state, v1, v2
  21015. /* get internal structure */
  21016. if file == libc.UintptrFromInt32(0) {
  21017. return -int32(1)
  21018. }
  21019. state = file
  21020. /* in case this was just opened, set up the input buffer */
  21021. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21022. _gz_look(tls, state)
  21023. }
  21024. /* check that we're reading and that there's no (serious) error */
  21025. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21026. return -int32(1)
  21027. }
  21028. /* process a skip request */
  21029. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21030. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21031. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21032. return -int32(1)
  21033. }
  21034. }
  21035. /* can't push EOF */
  21036. if c < 0 {
  21037. return -int32(1)
  21038. }
  21039. /* if output buffer empty, put byte at end (allows more pushing) */
  21040. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21041. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  21042. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1)) - uintptr(1)
  21043. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(uint8(c))
  21044. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21045. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21046. return c
  21047. }
  21048. /* if no room, give up (must have already done a gzungetc()) */
  21049. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21050. Xgz_error(tls, state, -int32(3), __ccgo_ts+765)
  21051. return -int32(1)
  21052. }
  21053. /* slide output data if needed and insert byte before existing data */
  21054. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21055. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21056. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  21057. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21058. dest--
  21059. v1 = dest
  21060. src--
  21061. v2 = src
  21062. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  21063. }
  21064. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  21065. }
  21066. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  21067. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  21068. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(uint8(c))
  21069. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21070. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21071. return c
  21072. }
  21073. // C documentation
  21074. //
  21075. // /* -- see zlib.h -- */
  21076. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  21077. var eol, str uintptr
  21078. var left, n, v1 uint32
  21079. var state Tgz_statep
  21080. _, _, _, _, _, _ = eol, left, n, state, str, v1
  21081. /* check parameters and get internal structure */
  21082. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  21083. return libc.UintptrFromInt32(0)
  21084. }
  21085. state = file
  21086. /* check that we're reading and that there's no (serious) error */
  21087. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21088. return libc.UintptrFromInt32(0)
  21089. }
  21090. /* process a skip request */
  21091. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21092. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21093. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21094. return libc.UintptrFromInt32(0)
  21095. }
  21096. }
  21097. /* copy output bytes up to new line or len - 1, whichever comes first --
  21098. append a terminating zero to the string (we don't check for a zero in
  21099. the contents, let the user worry about that) */
  21100. str = buf
  21101. left = uint32(uint32(len1)) - uint32(1)
  21102. if left != 0 {
  21103. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  21104. /* assure that something is in the output buffer */
  21105. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  21106. return libc.UintptrFromInt32(0)
  21107. } /* error */
  21108. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  21109. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  21110. break /* return what we have */
  21111. }
  21112. /* look for end-of-line in current output buffer */
  21113. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  21114. v1 = left
  21115. } else {
  21116. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21117. }
  21118. n = v1
  21119. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(uint64(n)))
  21120. if eol != libc.UintptrFromInt32(0) {
  21121. n = uint32(int64(int64(eol))-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  21122. }
  21123. /* copy through end-of-line, or remainder if not found */
  21124. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(uint64(n)))
  21125. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21126. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21127. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(n))
  21128. left -= n
  21129. buf += uintptr(n)
  21130. }
  21131. }
  21132. /* return terminated string, or if nothing, end of file */
  21133. if buf == str {
  21134. return libc.UintptrFromInt32(0)
  21135. }
  21136. *(*int8)(unsafe.Pointer(buf)) = 0
  21137. return str
  21138. }
  21139. // C documentation
  21140. //
  21141. // /* -- see zlib.h -- */
  21142. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  21143. var state Tgz_statep
  21144. _ = state
  21145. /* get internal structure */
  21146. if file == libc.UintptrFromInt32(0) {
  21147. return 0
  21148. }
  21149. state = file
  21150. /* if the state is not known, but we can find out, then do so (this is
  21151. mainly for right after a gzopen() or gzdopen()) */
  21152. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21153. _gz_look(tls, state)
  21154. }
  21155. /* return 1 if transparent, 0 if processing a gzip stream */
  21156. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  21157. }
  21158. // C documentation
  21159. //
  21160. // /* -- see zlib.h -- */
  21161. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  21162. var err, ret, v1, v2 int32
  21163. var state Tgz_statep
  21164. _, _, _, _, _ = err, ret, state, v1, v2
  21165. /* get internal structure */
  21166. if file == libc.UintptrFromInt32(0) {
  21167. return -int32(2)
  21168. }
  21169. state = file
  21170. /* check that we're reading */
  21171. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  21172. return -int32(2)
  21173. }
  21174. /* free memory and close file */
  21175. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21176. XinflateEnd(tls, state+128)
  21177. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21178. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21179. }
  21180. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  21181. v1 = -int32(5)
  21182. } else {
  21183. v1 = m_Z_OK
  21184. }
  21185. err = v1
  21186. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21187. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21188. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  21189. libc.Xfree(tls, state)
  21190. if ret != 0 {
  21191. v2 = -int32(1)
  21192. } else {
  21193. v2 = err
  21194. }
  21195. return v2
  21196. }
  21197. /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  21198. value -- needed when comparing unsigned to z_off64_t, which is signed
  21199. (possible z_off64_t types off_t, off64_t, and long are all signed) */
  21200. // C documentation
  21201. //
  21202. // /* Initialize state for writing a gzip file. Mark initialization by setting
  21203. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  21204. // success. */
  21205. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  21206. var ret int32
  21207. var strm Tz_streamp
  21208. _, _ = ret, strm
  21209. strm = state + 128
  21210. /* allocate input buffer (double size for gzprintf) */
  21211. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21212. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  21213. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  21214. return -int32(1)
  21215. }
  21216. /* only need output buffer and deflate state if compressing */
  21217. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21218. /* allocate output buffer */
  21219. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21220. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21221. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21222. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  21223. return -int32(1)
  21224. }
  21225. /* allocate deflate memory, set up for gzip compression */
  21226. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  21227. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  21228. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  21229. ret = XdeflateInit2_(tls, strm, (*Tgz_state)(unsafe.Pointer(state)).Flevel, int32(m_Z_DEFLATED), libc.Int32FromInt32(m_MAX_WBITS)+libc.Int32FromInt32(16), int32(m_DEF_MEM_LEVEL), (*Tgz_state)(unsafe.Pointer(state)).Fstrategy, __ccgo_ts, libc.Int32FromInt64(112))
  21230. if ret != m_Z_OK {
  21231. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21232. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21233. Xgz_error(tls, state, -int32(4), __ccgo_ts+593)
  21234. return -int32(1)
  21235. }
  21236. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  21237. }
  21238. /* mark state as initialized */
  21239. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21240. /* initialize write buffer if compressing */
  21241. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21242. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21243. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21244. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  21245. }
  21246. return 0
  21247. }
  21248. // C documentation
  21249. //
  21250. // /* Compress whatever is at avail_in and next_in and write to the output file.
  21251. // Return -1 if there is an error writing to the output file or if gz_init()
  21252. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  21253. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  21254. // reset to start a new gzip stream. If gz->direct is true, then simply write
  21255. // to the output file without compressing, and ignore flush. */
  21256. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  21257. var have, max, put, v1, v2 uint32
  21258. var ret, writ int32
  21259. var strm Tz_streamp
  21260. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  21261. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21262. strm = state + 128
  21263. /* allocate memory if this is the first time through */
  21264. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21265. return -int32(1)
  21266. }
  21267. /* write directly if requested */
  21268. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21269. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  21270. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  21271. v1 = max
  21272. } else {
  21273. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21274. }
  21275. put = v1
  21276. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(uint64(put))))
  21277. if writ < 0 {
  21278. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21279. return -int32(1)
  21280. }
  21281. *(*TuInt)(unsafe.Pointer(strm + 8)) -= uint32(uint32(writ))
  21282. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  21283. }
  21284. return 0
  21285. }
  21286. /* check for a pending reset */
  21287. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  21288. /* don't start a new gzip member unless there is data to write */
  21289. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21290. return 0
  21291. }
  21292. XdeflateReset(tls, strm)
  21293. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  21294. }
  21295. /* run deflate() on provided input until it produces no more output */
  21296. ret = m_Z_OK
  21297. for cond := true; cond; cond = have != 0 {
  21298. /* write out current buffer contents if full, or if flushing, but if
  21299. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  21300. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) || flush != m_Z_NO_FLUSH && (flush != int32(m_Z_FINISH) || ret == int32(m_Z_STREAM_END)) {
  21301. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  21302. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(int32(int32(max))) {
  21303. v2 = max
  21304. } else {
  21305. v2 = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  21306. }
  21307. put = v2
  21308. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(uint64(put))))
  21309. if writ < 0 {
  21310. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21311. return -int32(1)
  21312. }
  21313. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  21314. }
  21315. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  21316. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21317. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21318. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21319. }
  21320. }
  21321. /* compress */
  21322. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21323. ret = Xdeflate(tls, strm, flush)
  21324. if ret == -int32(2) {
  21325. Xgz_error(tls, state, -int32(2), __ccgo_ts+796)
  21326. return -int32(1)
  21327. }
  21328. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21329. }
  21330. /* if that completed a deflate stream, allow another to start */
  21331. if flush == int32(m_Z_FINISH) {
  21332. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  21333. }
  21334. /* all done, no errors */
  21335. return 0
  21336. }
  21337. // C documentation
  21338. //
  21339. // /* Compress len zeros to output. Return -1 on a write error or memory
  21340. // allocation failure by gz_comp(), or 0 on success. */
  21341. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff64_t) (r int32) {
  21342. var first int32
  21343. var n, v1 uint32
  21344. var strm Tz_streamp
  21345. _, _, _, _ = first, n, strm, v1
  21346. strm = state + 128
  21347. /* consume whatever's left in the input buffer */
  21348. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21349. return -int32(1)
  21350. }
  21351. /* compress len zeros (len guaranteed > 0) */
  21352. first = int32(1)
  21353. for len1 != 0 {
  21354. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > uint32(m___INT_MAX__)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  21355. v1 = uint32(uint32(len1))
  21356. } else {
  21357. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21358. }
  21359. n = v1
  21360. if first != 0 {
  21361. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(uint64(n)))
  21362. first = 0
  21363. }
  21364. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  21365. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21366. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(n))
  21367. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21368. return -int32(1)
  21369. }
  21370. len1 -= int64(int64(n))
  21371. }
  21372. return 0
  21373. }
  21374. // C documentation
  21375. //
  21376. // /* Write len bytes from buf to file. Return the number of bytes written. If
  21377. // the returned value is less than len, then there was an error. */
  21378. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  21379. var copy1, have, n uint32
  21380. var put Tz_size_t
  21381. _, _, _, _ = copy1, have, n, put
  21382. put = len1
  21383. /* if len is zero, avoid unnecessary operations */
  21384. if len1 == uint64(0) {
  21385. return uint64(0)
  21386. }
  21387. /* allocate memory if this is the first time through */
  21388. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21389. return uint64(0)
  21390. }
  21391. /* check for seek request */
  21392. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21393. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21394. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21395. return uint64(0)
  21396. }
  21397. }
  21398. /* for small len, copy to input buffer, otherwise compress directly */
  21399. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  21400. /* copy to input buffer, compress when full */
  21401. for cond := true; cond; cond = len1 != 0 {
  21402. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21403. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21404. }
  21405. have = uint32(int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  21406. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  21407. if uint64(uint64(copy1)) > len1 {
  21408. copy1 = uint32(uint32(len1))
  21409. }
  21410. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(uint64(copy1)))
  21411. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  21412. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(copy1))
  21413. buf = buf + uintptr(copy1)
  21414. len1 -= uint64(uint64(copy1))
  21415. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21416. return uint64(0)
  21417. }
  21418. }
  21419. } else {
  21420. /* consume whatever's left in the input buffer */
  21421. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21422. return uint64(0)
  21423. }
  21424. /* directly compress user buffer to file */
  21425. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  21426. for cond := true; cond; cond = len1 != 0 {
  21427. n = uint32(-libc.Int32FromInt32(1))
  21428. if uint64(uint64(n)) > len1 {
  21429. n = uint32(uint32(len1))
  21430. }
  21431. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  21432. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(n))
  21433. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21434. return uint64(0)
  21435. }
  21436. len1 -= uint64(uint64(n))
  21437. }
  21438. }
  21439. /* input was all buffered or compressed */
  21440. return put
  21441. }
  21442. // C documentation
  21443. //
  21444. // /* -- see zlib.h -- */
  21445. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  21446. var state Tgz_statep
  21447. _ = state
  21448. /* get internal structure */
  21449. if file == libc.UintptrFromInt32(0) {
  21450. return 0
  21451. }
  21452. state = file
  21453. /* check that we're writing and that there's no error */
  21454. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21455. return 0
  21456. }
  21457. /* since an int is returned, make sure len fits in one, otherwise return
  21458. with an error (this avoids a flaw in the interface) */
  21459. if int32(int32(len1)) < 0 {
  21460. Xgz_error(tls, state, -int32(3), __ccgo_ts+835)
  21461. return 0
  21462. }
  21463. /* write len bytes from buf (the return value will fit in an int) */
  21464. return int32(_gz_write(tls, state, buf, uint64(uint64(len1))))
  21465. }
  21466. // C documentation
  21467. //
  21468. // /* -- see zlib.h -- */
  21469. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21470. var len1 Tz_size_t
  21471. var state Tgz_statep
  21472. var v1 uint64
  21473. _, _, _ = len1, state, v1
  21474. /* get internal structure */
  21475. if file == libc.UintptrFromInt32(0) {
  21476. return uint64(0)
  21477. }
  21478. state = file
  21479. /* check that we're writing and that there's no error */
  21480. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21481. return uint64(0)
  21482. }
  21483. /* compute bytes to read -- error on overflow */
  21484. len1 = nitems * size
  21485. if size != 0 && len1/size != nitems {
  21486. Xgz_error(tls, state, -int32(2), __ccgo_ts+732)
  21487. return uint64(0)
  21488. }
  21489. /* write len bytes to buf, return the number of full items written */
  21490. if len1 != 0 {
  21491. v1 = _gz_write(tls, state, buf, len1) / size
  21492. } else {
  21493. v1 = uint64(0)
  21494. }
  21495. return v1
  21496. }
  21497. // C documentation
  21498. //
  21499. // /* -- see zlib.h -- */
  21500. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  21501. bp := tls.Alloc(16)
  21502. defer tls.Free(16)
  21503. var have uint32
  21504. var state Tgz_statep
  21505. var strm Tz_streamp
  21506. var _ /* buf at bp+0 */ [1]uint8
  21507. _, _, _ = have, state, strm
  21508. /* get internal structure */
  21509. if file == libc.UintptrFromInt32(0) {
  21510. return -int32(1)
  21511. }
  21512. state = file
  21513. strm = state + 128
  21514. /* check that we're writing and that there's no error */
  21515. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21516. return -int32(1)
  21517. }
  21518. /* check for seek request */
  21519. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21520. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21521. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21522. return -int32(1)
  21523. }
  21524. }
  21525. /* try writing to input buffer for speed (state->size == 0 if buffer not
  21526. initialized) */
  21527. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21528. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21529. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21530. }
  21531. have = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  21532. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  21533. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = uint8(uint8(c))
  21534. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  21535. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  21536. return c & int32(0xff)
  21537. }
  21538. }
  21539. /* no room in buffer or not initialized, use gz_write() */
  21540. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = uint8(uint8(c))
  21541. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  21542. return -int32(1)
  21543. }
  21544. return c & int32(0xff)
  21545. }
  21546. // C documentation
  21547. //
  21548. // /* -- see zlib.h -- */
  21549. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  21550. var len1, put Tz_size_t
  21551. var state Tgz_statep
  21552. var v1 int32
  21553. _, _, _, _ = len1, put, state, v1
  21554. /* get internal structure */
  21555. if file == libc.UintptrFromInt32(0) {
  21556. return -int32(1)
  21557. }
  21558. state = file
  21559. /* check that we're writing and that there's no error */
  21560. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21561. return -int32(1)
  21562. }
  21563. /* write string */
  21564. len1 = libc.Xstrlen(tls, s)
  21565. if int32(int32(len1)) < 0 || uint64(uint32(uint32(len1))) != len1 {
  21566. Xgz_error(tls, state, -int32(2), __ccgo_ts+872)
  21567. return -int32(1)
  21568. }
  21569. put = _gz_write(tls, state, s, len1)
  21570. if put < len1 {
  21571. v1 = -int32(1)
  21572. } else {
  21573. v1 = int32(int32(len1))
  21574. }
  21575. return v1
  21576. }
  21577. /* Copyright (C) 1989-2020 Free Software Foundation, Inc.
  21578. This file is part of GCC.
  21579. GCC is free software; you can redistribute it and/or modify
  21580. it under the terms of the GNU General Public License as published by
  21581. the Free Software Foundation; either version 3, or (at your option)
  21582. any later version.
  21583. GCC is distributed in the hope that it will be useful,
  21584. but WITHOUT ANY WARRANTY; without even the implied warranty of
  21585. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  21586. GNU General Public License for more details.
  21587. Under Section 7 of GPL version 3, you are granted additional
  21588. permissions described in the GCC Runtime Library Exception, version
  21589. 3.1, as published by the Free Software Foundation.
  21590. You should have received a copy of the GNU General Public License and
  21591. a copy of the GCC Runtime Library Exception along with this program;
  21592. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  21593. <http://www.gnu.org/licenses/>. */
  21594. /*
  21595. * ISO C Standard: 7.15 Variable arguments <stdarg.h>
  21596. */
  21597. // C documentation
  21598. //
  21599. // /* -- see zlib.h -- */
  21600. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  21601. var left uint32
  21602. var len1 int32
  21603. var next uintptr
  21604. var state Tgz_statep
  21605. var strm Tz_streamp
  21606. _, _, _, _, _ = left, len1, next, state, strm
  21607. /* get internal structure */
  21608. if file == libc.UintptrFromInt32(0) {
  21609. return -int32(2)
  21610. }
  21611. state = file
  21612. strm = state + 128
  21613. /* check that we're writing and that there's no error */
  21614. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21615. return -int32(2)
  21616. }
  21617. /* make sure we have some buffer space */
  21618. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21619. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21620. }
  21621. /* check for seek request */
  21622. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21623. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21624. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21625. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21626. }
  21627. }
  21628. /* do the printf() into the input buffer, put length in len -- the input
  21629. buffer is double-sized just for this function, so there is guaranteed to
  21630. be state->size bytes available after the current contents */
  21631. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21632. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21633. }
  21634. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int64((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  21635. *(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = 0
  21636. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  21637. /* check that printf() results fit in buffer */
  21638. if len1 == 0 || uint32(uint32(len1)) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || int32(*(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  21639. return 0
  21640. }
  21641. /* update buffer and position, compress first half if past that */
  21642. *(*TuInt)(unsafe.Pointer(strm + 8)) += uint32(uint32(len1))
  21643. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(int64(len1))
  21644. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  21645. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21646. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21647. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21648. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21649. }
  21650. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(uint64(left)))
  21651. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21652. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  21653. }
  21654. return len1
  21655. }
  21656. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  21657. var ret int32
  21658. var va Tva_list
  21659. _, _ = ret, va
  21660. va = va1
  21661. ret = Xgzvprintf(tls, file, format, va)
  21662. _ = va
  21663. return ret
  21664. }
  21665. // C documentation
  21666. //
  21667. // /* -- see zlib.h -- */
  21668. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  21669. var state Tgz_statep
  21670. _ = state
  21671. /* get internal structure */
  21672. if file == libc.UintptrFromInt32(0) {
  21673. return -int32(2)
  21674. }
  21675. state = file
  21676. /* check that we're writing and that there's no error */
  21677. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21678. return -int32(2)
  21679. }
  21680. /* check flush parameter */
  21681. if flush < 0 || flush > int32(m_Z_FINISH) {
  21682. return -int32(2)
  21683. }
  21684. /* check for seek request */
  21685. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21686. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21687. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21688. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21689. }
  21690. }
  21691. /* compress remaining data with requested flush */
  21692. _gz_comp(tls, state, flush)
  21693. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21694. }
  21695. // C documentation
  21696. //
  21697. // /* -- see zlib.h -- */
  21698. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  21699. var state Tgz_statep
  21700. var strm Tz_streamp
  21701. _, _ = state, strm
  21702. /* get internal structure */
  21703. if file == libc.UintptrFromInt32(0) {
  21704. return -int32(2)
  21705. }
  21706. state = file
  21707. strm = state + 128
  21708. /* check that we're writing and that there's no error */
  21709. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK || (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21710. return -int32(2)
  21711. }
  21712. /* if no change is requested, then do nothing */
  21713. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  21714. return m_Z_OK
  21715. }
  21716. /* check for seek request */
  21717. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21718. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21719. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21720. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21721. }
  21722. }
  21723. /* change compression parameters for subsequent input */
  21724. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21725. /* flush previous input with previous parameters before changing */
  21726. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  21727. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21728. }
  21729. XdeflateParams(tls, strm, level, strategy)
  21730. }
  21731. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  21732. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  21733. return m_Z_OK
  21734. }
  21735. // C documentation
  21736. //
  21737. // /* -- see zlib.h -- */
  21738. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  21739. var ret int32
  21740. var state Tgz_statep
  21741. _, _ = ret, state
  21742. ret = m_Z_OK
  21743. /* get internal structure */
  21744. if file == libc.UintptrFromInt32(0) {
  21745. return -int32(2)
  21746. }
  21747. state = file
  21748. /* check that we're writing */
  21749. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21750. return -int32(2)
  21751. }
  21752. /* check for seek request */
  21753. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21754. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21755. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21756. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21757. }
  21758. }
  21759. /* flush, free memory, and close file */
  21760. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  21761. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21762. }
  21763. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21764. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21765. XdeflateEnd(tls, state+128)
  21766. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21767. }
  21768. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21769. }
  21770. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21771. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21772. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  21773. ret = -int32(1)
  21774. }
  21775. libc.Xfree(tls, state)
  21776. return ret
  21777. }
  21778. func __ccgo_fp(f interface{}) uintptr {
  21779. type iface [2]uintptr
  21780. return (*iface)(unsafe.Pointer(&f))[1]
  21781. }
  21782. var x__dist_code = [512]Tuch{
  21783. 1: uint8(1),
  21784. 2: uint8(2),
  21785. 3: uint8(3),
  21786. 4: uint8(4),
  21787. 5: uint8(4),
  21788. 6: uint8(5),
  21789. 7: uint8(5),
  21790. 8: uint8(6),
  21791. 9: uint8(6),
  21792. 10: uint8(6),
  21793. 11: uint8(6),
  21794. 12: uint8(7),
  21795. 13: uint8(7),
  21796. 14: uint8(7),
  21797. 15: uint8(7),
  21798. 16: uint8(8),
  21799. 17: uint8(8),
  21800. 18: uint8(8),
  21801. 19: uint8(8),
  21802. 20: uint8(8),
  21803. 21: uint8(8),
  21804. 22: uint8(8),
  21805. 23: uint8(8),
  21806. 24: uint8(9),
  21807. 25: uint8(9),
  21808. 26: uint8(9),
  21809. 27: uint8(9),
  21810. 28: uint8(9),
  21811. 29: uint8(9),
  21812. 30: uint8(9),
  21813. 31: uint8(9),
  21814. 32: uint8(10),
  21815. 33: uint8(10),
  21816. 34: uint8(10),
  21817. 35: uint8(10),
  21818. 36: uint8(10),
  21819. 37: uint8(10),
  21820. 38: uint8(10),
  21821. 39: uint8(10),
  21822. 40: uint8(10),
  21823. 41: uint8(10),
  21824. 42: uint8(10),
  21825. 43: uint8(10),
  21826. 44: uint8(10),
  21827. 45: uint8(10),
  21828. 46: uint8(10),
  21829. 47: uint8(10),
  21830. 48: uint8(11),
  21831. 49: uint8(11),
  21832. 50: uint8(11),
  21833. 51: uint8(11),
  21834. 52: uint8(11),
  21835. 53: uint8(11),
  21836. 54: uint8(11),
  21837. 55: uint8(11),
  21838. 56: uint8(11),
  21839. 57: uint8(11),
  21840. 58: uint8(11),
  21841. 59: uint8(11),
  21842. 60: uint8(11),
  21843. 61: uint8(11),
  21844. 62: uint8(11),
  21845. 63: uint8(11),
  21846. 64: uint8(12),
  21847. 65: uint8(12),
  21848. 66: uint8(12),
  21849. 67: uint8(12),
  21850. 68: uint8(12),
  21851. 69: uint8(12),
  21852. 70: uint8(12),
  21853. 71: uint8(12),
  21854. 72: uint8(12),
  21855. 73: uint8(12),
  21856. 74: uint8(12),
  21857. 75: uint8(12),
  21858. 76: uint8(12),
  21859. 77: uint8(12),
  21860. 78: uint8(12),
  21861. 79: uint8(12),
  21862. 80: uint8(12),
  21863. 81: uint8(12),
  21864. 82: uint8(12),
  21865. 83: uint8(12),
  21866. 84: uint8(12),
  21867. 85: uint8(12),
  21868. 86: uint8(12),
  21869. 87: uint8(12),
  21870. 88: uint8(12),
  21871. 89: uint8(12),
  21872. 90: uint8(12),
  21873. 91: uint8(12),
  21874. 92: uint8(12),
  21875. 93: uint8(12),
  21876. 94: uint8(12),
  21877. 95: uint8(12),
  21878. 96: uint8(13),
  21879. 97: uint8(13),
  21880. 98: uint8(13),
  21881. 99: uint8(13),
  21882. 100: uint8(13),
  21883. 101: uint8(13),
  21884. 102: uint8(13),
  21885. 103: uint8(13),
  21886. 104: uint8(13),
  21887. 105: uint8(13),
  21888. 106: uint8(13),
  21889. 107: uint8(13),
  21890. 108: uint8(13),
  21891. 109: uint8(13),
  21892. 110: uint8(13),
  21893. 111: uint8(13),
  21894. 112: uint8(13),
  21895. 113: uint8(13),
  21896. 114: uint8(13),
  21897. 115: uint8(13),
  21898. 116: uint8(13),
  21899. 117: uint8(13),
  21900. 118: uint8(13),
  21901. 119: uint8(13),
  21902. 120: uint8(13),
  21903. 121: uint8(13),
  21904. 122: uint8(13),
  21905. 123: uint8(13),
  21906. 124: uint8(13),
  21907. 125: uint8(13),
  21908. 126: uint8(13),
  21909. 127: uint8(13),
  21910. 128: uint8(14),
  21911. 129: uint8(14),
  21912. 130: uint8(14),
  21913. 131: uint8(14),
  21914. 132: uint8(14),
  21915. 133: uint8(14),
  21916. 134: uint8(14),
  21917. 135: uint8(14),
  21918. 136: uint8(14),
  21919. 137: uint8(14),
  21920. 138: uint8(14),
  21921. 139: uint8(14),
  21922. 140: uint8(14),
  21923. 141: uint8(14),
  21924. 142: uint8(14),
  21925. 143: uint8(14),
  21926. 144: uint8(14),
  21927. 145: uint8(14),
  21928. 146: uint8(14),
  21929. 147: uint8(14),
  21930. 148: uint8(14),
  21931. 149: uint8(14),
  21932. 150: uint8(14),
  21933. 151: uint8(14),
  21934. 152: uint8(14),
  21935. 153: uint8(14),
  21936. 154: uint8(14),
  21937. 155: uint8(14),
  21938. 156: uint8(14),
  21939. 157: uint8(14),
  21940. 158: uint8(14),
  21941. 159: uint8(14),
  21942. 160: uint8(14),
  21943. 161: uint8(14),
  21944. 162: uint8(14),
  21945. 163: uint8(14),
  21946. 164: uint8(14),
  21947. 165: uint8(14),
  21948. 166: uint8(14),
  21949. 167: uint8(14),
  21950. 168: uint8(14),
  21951. 169: uint8(14),
  21952. 170: uint8(14),
  21953. 171: uint8(14),
  21954. 172: uint8(14),
  21955. 173: uint8(14),
  21956. 174: uint8(14),
  21957. 175: uint8(14),
  21958. 176: uint8(14),
  21959. 177: uint8(14),
  21960. 178: uint8(14),
  21961. 179: uint8(14),
  21962. 180: uint8(14),
  21963. 181: uint8(14),
  21964. 182: uint8(14),
  21965. 183: uint8(14),
  21966. 184: uint8(14),
  21967. 185: uint8(14),
  21968. 186: uint8(14),
  21969. 187: uint8(14),
  21970. 188: uint8(14),
  21971. 189: uint8(14),
  21972. 190: uint8(14),
  21973. 191: uint8(14),
  21974. 192: uint8(15),
  21975. 193: uint8(15),
  21976. 194: uint8(15),
  21977. 195: uint8(15),
  21978. 196: uint8(15),
  21979. 197: uint8(15),
  21980. 198: uint8(15),
  21981. 199: uint8(15),
  21982. 200: uint8(15),
  21983. 201: uint8(15),
  21984. 202: uint8(15),
  21985. 203: uint8(15),
  21986. 204: uint8(15),
  21987. 205: uint8(15),
  21988. 206: uint8(15),
  21989. 207: uint8(15),
  21990. 208: uint8(15),
  21991. 209: uint8(15),
  21992. 210: uint8(15),
  21993. 211: uint8(15),
  21994. 212: uint8(15),
  21995. 213: uint8(15),
  21996. 214: uint8(15),
  21997. 215: uint8(15),
  21998. 216: uint8(15),
  21999. 217: uint8(15),
  22000. 218: uint8(15),
  22001. 219: uint8(15),
  22002. 220: uint8(15),
  22003. 221: uint8(15),
  22004. 222: uint8(15),
  22005. 223: uint8(15),
  22006. 224: uint8(15),
  22007. 225: uint8(15),
  22008. 226: uint8(15),
  22009. 227: uint8(15),
  22010. 228: uint8(15),
  22011. 229: uint8(15),
  22012. 230: uint8(15),
  22013. 231: uint8(15),
  22014. 232: uint8(15),
  22015. 233: uint8(15),
  22016. 234: uint8(15),
  22017. 235: uint8(15),
  22018. 236: uint8(15),
  22019. 237: uint8(15),
  22020. 238: uint8(15),
  22021. 239: uint8(15),
  22022. 240: uint8(15),
  22023. 241: uint8(15),
  22024. 242: uint8(15),
  22025. 243: uint8(15),
  22026. 244: uint8(15),
  22027. 245: uint8(15),
  22028. 246: uint8(15),
  22029. 247: uint8(15),
  22030. 248: uint8(15),
  22031. 249: uint8(15),
  22032. 250: uint8(15),
  22033. 251: uint8(15),
  22034. 252: uint8(15),
  22035. 253: uint8(15),
  22036. 254: uint8(15),
  22037. 255: uint8(15),
  22038. 258: uint8(16),
  22039. 259: uint8(17),
  22040. 260: uint8(18),
  22041. 261: uint8(18),
  22042. 262: uint8(19),
  22043. 263: uint8(19),
  22044. 264: uint8(20),
  22045. 265: uint8(20),
  22046. 266: uint8(20),
  22047. 267: uint8(20),
  22048. 268: uint8(21),
  22049. 269: uint8(21),
  22050. 270: uint8(21),
  22051. 271: uint8(21),
  22052. 272: uint8(22),
  22053. 273: uint8(22),
  22054. 274: uint8(22),
  22055. 275: uint8(22),
  22056. 276: uint8(22),
  22057. 277: uint8(22),
  22058. 278: uint8(22),
  22059. 279: uint8(22),
  22060. 280: uint8(23),
  22061. 281: uint8(23),
  22062. 282: uint8(23),
  22063. 283: uint8(23),
  22064. 284: uint8(23),
  22065. 285: uint8(23),
  22066. 286: uint8(23),
  22067. 287: uint8(23),
  22068. 288: uint8(24),
  22069. 289: uint8(24),
  22070. 290: uint8(24),
  22071. 291: uint8(24),
  22072. 292: uint8(24),
  22073. 293: uint8(24),
  22074. 294: uint8(24),
  22075. 295: uint8(24),
  22076. 296: uint8(24),
  22077. 297: uint8(24),
  22078. 298: uint8(24),
  22079. 299: uint8(24),
  22080. 300: uint8(24),
  22081. 301: uint8(24),
  22082. 302: uint8(24),
  22083. 303: uint8(24),
  22084. 304: uint8(25),
  22085. 305: uint8(25),
  22086. 306: uint8(25),
  22087. 307: uint8(25),
  22088. 308: uint8(25),
  22089. 309: uint8(25),
  22090. 310: uint8(25),
  22091. 311: uint8(25),
  22092. 312: uint8(25),
  22093. 313: uint8(25),
  22094. 314: uint8(25),
  22095. 315: uint8(25),
  22096. 316: uint8(25),
  22097. 317: uint8(25),
  22098. 318: uint8(25),
  22099. 319: uint8(25),
  22100. 320: uint8(26),
  22101. 321: uint8(26),
  22102. 322: uint8(26),
  22103. 323: uint8(26),
  22104. 324: uint8(26),
  22105. 325: uint8(26),
  22106. 326: uint8(26),
  22107. 327: uint8(26),
  22108. 328: uint8(26),
  22109. 329: uint8(26),
  22110. 330: uint8(26),
  22111. 331: uint8(26),
  22112. 332: uint8(26),
  22113. 333: uint8(26),
  22114. 334: uint8(26),
  22115. 335: uint8(26),
  22116. 336: uint8(26),
  22117. 337: uint8(26),
  22118. 338: uint8(26),
  22119. 339: uint8(26),
  22120. 340: uint8(26),
  22121. 341: uint8(26),
  22122. 342: uint8(26),
  22123. 343: uint8(26),
  22124. 344: uint8(26),
  22125. 345: uint8(26),
  22126. 346: uint8(26),
  22127. 347: uint8(26),
  22128. 348: uint8(26),
  22129. 349: uint8(26),
  22130. 350: uint8(26),
  22131. 351: uint8(26),
  22132. 352: uint8(27),
  22133. 353: uint8(27),
  22134. 354: uint8(27),
  22135. 355: uint8(27),
  22136. 356: uint8(27),
  22137. 357: uint8(27),
  22138. 358: uint8(27),
  22139. 359: uint8(27),
  22140. 360: uint8(27),
  22141. 361: uint8(27),
  22142. 362: uint8(27),
  22143. 363: uint8(27),
  22144. 364: uint8(27),
  22145. 365: uint8(27),
  22146. 366: uint8(27),
  22147. 367: uint8(27),
  22148. 368: uint8(27),
  22149. 369: uint8(27),
  22150. 370: uint8(27),
  22151. 371: uint8(27),
  22152. 372: uint8(27),
  22153. 373: uint8(27),
  22154. 374: uint8(27),
  22155. 375: uint8(27),
  22156. 376: uint8(27),
  22157. 377: uint8(27),
  22158. 378: uint8(27),
  22159. 379: uint8(27),
  22160. 380: uint8(27),
  22161. 381: uint8(27),
  22162. 382: uint8(27),
  22163. 383: uint8(27),
  22164. 384: uint8(28),
  22165. 385: uint8(28),
  22166. 386: uint8(28),
  22167. 387: uint8(28),
  22168. 388: uint8(28),
  22169. 389: uint8(28),
  22170. 390: uint8(28),
  22171. 391: uint8(28),
  22172. 392: uint8(28),
  22173. 393: uint8(28),
  22174. 394: uint8(28),
  22175. 395: uint8(28),
  22176. 396: uint8(28),
  22177. 397: uint8(28),
  22178. 398: uint8(28),
  22179. 399: uint8(28),
  22180. 400: uint8(28),
  22181. 401: uint8(28),
  22182. 402: uint8(28),
  22183. 403: uint8(28),
  22184. 404: uint8(28),
  22185. 405: uint8(28),
  22186. 406: uint8(28),
  22187. 407: uint8(28),
  22188. 408: uint8(28),
  22189. 409: uint8(28),
  22190. 410: uint8(28),
  22191. 411: uint8(28),
  22192. 412: uint8(28),
  22193. 413: uint8(28),
  22194. 414: uint8(28),
  22195. 415: uint8(28),
  22196. 416: uint8(28),
  22197. 417: uint8(28),
  22198. 418: uint8(28),
  22199. 419: uint8(28),
  22200. 420: uint8(28),
  22201. 421: uint8(28),
  22202. 422: uint8(28),
  22203. 423: uint8(28),
  22204. 424: uint8(28),
  22205. 425: uint8(28),
  22206. 426: uint8(28),
  22207. 427: uint8(28),
  22208. 428: uint8(28),
  22209. 429: uint8(28),
  22210. 430: uint8(28),
  22211. 431: uint8(28),
  22212. 432: uint8(28),
  22213. 433: uint8(28),
  22214. 434: uint8(28),
  22215. 435: uint8(28),
  22216. 436: uint8(28),
  22217. 437: uint8(28),
  22218. 438: uint8(28),
  22219. 439: uint8(28),
  22220. 440: uint8(28),
  22221. 441: uint8(28),
  22222. 442: uint8(28),
  22223. 443: uint8(28),
  22224. 444: uint8(28),
  22225. 445: uint8(28),
  22226. 446: uint8(28),
  22227. 447: uint8(28),
  22228. 448: uint8(29),
  22229. 449: uint8(29),
  22230. 450: uint8(29),
  22231. 451: uint8(29),
  22232. 452: uint8(29),
  22233. 453: uint8(29),
  22234. 454: uint8(29),
  22235. 455: uint8(29),
  22236. 456: uint8(29),
  22237. 457: uint8(29),
  22238. 458: uint8(29),
  22239. 459: uint8(29),
  22240. 460: uint8(29),
  22241. 461: uint8(29),
  22242. 462: uint8(29),
  22243. 463: uint8(29),
  22244. 464: uint8(29),
  22245. 465: uint8(29),
  22246. 466: uint8(29),
  22247. 467: uint8(29),
  22248. 468: uint8(29),
  22249. 469: uint8(29),
  22250. 470: uint8(29),
  22251. 471: uint8(29),
  22252. 472: uint8(29),
  22253. 473: uint8(29),
  22254. 474: uint8(29),
  22255. 475: uint8(29),
  22256. 476: uint8(29),
  22257. 477: uint8(29),
  22258. 478: uint8(29),
  22259. 479: uint8(29),
  22260. 480: uint8(29),
  22261. 481: uint8(29),
  22262. 482: uint8(29),
  22263. 483: uint8(29),
  22264. 484: uint8(29),
  22265. 485: uint8(29),
  22266. 486: uint8(29),
  22267. 487: uint8(29),
  22268. 488: uint8(29),
  22269. 489: uint8(29),
  22270. 490: uint8(29),
  22271. 491: uint8(29),
  22272. 492: uint8(29),
  22273. 493: uint8(29),
  22274. 494: uint8(29),
  22275. 495: uint8(29),
  22276. 496: uint8(29),
  22277. 497: uint8(29),
  22278. 498: uint8(29),
  22279. 499: uint8(29),
  22280. 500: uint8(29),
  22281. 501: uint8(29),
  22282. 502: uint8(29),
  22283. 503: uint8(29),
  22284. 504: uint8(29),
  22285. 505: uint8(29),
  22286. 506: uint8(29),
  22287. 507: uint8(29),
  22288. 508: uint8(29),
  22289. 509: uint8(29),
  22290. 510: uint8(29),
  22291. 511: uint8(29),
  22292. }
  22293. var x__length_code = [256]Tuch{
  22294. 1: uint8(1),
  22295. 2: uint8(2),
  22296. 3: uint8(3),
  22297. 4: uint8(4),
  22298. 5: uint8(5),
  22299. 6: uint8(6),
  22300. 7: uint8(7),
  22301. 8: uint8(8),
  22302. 9: uint8(8),
  22303. 10: uint8(9),
  22304. 11: uint8(9),
  22305. 12: uint8(10),
  22306. 13: uint8(10),
  22307. 14: uint8(11),
  22308. 15: uint8(11),
  22309. 16: uint8(12),
  22310. 17: uint8(12),
  22311. 18: uint8(12),
  22312. 19: uint8(12),
  22313. 20: uint8(13),
  22314. 21: uint8(13),
  22315. 22: uint8(13),
  22316. 23: uint8(13),
  22317. 24: uint8(14),
  22318. 25: uint8(14),
  22319. 26: uint8(14),
  22320. 27: uint8(14),
  22321. 28: uint8(15),
  22322. 29: uint8(15),
  22323. 30: uint8(15),
  22324. 31: uint8(15),
  22325. 32: uint8(16),
  22326. 33: uint8(16),
  22327. 34: uint8(16),
  22328. 35: uint8(16),
  22329. 36: uint8(16),
  22330. 37: uint8(16),
  22331. 38: uint8(16),
  22332. 39: uint8(16),
  22333. 40: uint8(17),
  22334. 41: uint8(17),
  22335. 42: uint8(17),
  22336. 43: uint8(17),
  22337. 44: uint8(17),
  22338. 45: uint8(17),
  22339. 46: uint8(17),
  22340. 47: uint8(17),
  22341. 48: uint8(18),
  22342. 49: uint8(18),
  22343. 50: uint8(18),
  22344. 51: uint8(18),
  22345. 52: uint8(18),
  22346. 53: uint8(18),
  22347. 54: uint8(18),
  22348. 55: uint8(18),
  22349. 56: uint8(19),
  22350. 57: uint8(19),
  22351. 58: uint8(19),
  22352. 59: uint8(19),
  22353. 60: uint8(19),
  22354. 61: uint8(19),
  22355. 62: uint8(19),
  22356. 63: uint8(19),
  22357. 64: uint8(20),
  22358. 65: uint8(20),
  22359. 66: uint8(20),
  22360. 67: uint8(20),
  22361. 68: uint8(20),
  22362. 69: uint8(20),
  22363. 70: uint8(20),
  22364. 71: uint8(20),
  22365. 72: uint8(20),
  22366. 73: uint8(20),
  22367. 74: uint8(20),
  22368. 75: uint8(20),
  22369. 76: uint8(20),
  22370. 77: uint8(20),
  22371. 78: uint8(20),
  22372. 79: uint8(20),
  22373. 80: uint8(21),
  22374. 81: uint8(21),
  22375. 82: uint8(21),
  22376. 83: uint8(21),
  22377. 84: uint8(21),
  22378. 85: uint8(21),
  22379. 86: uint8(21),
  22380. 87: uint8(21),
  22381. 88: uint8(21),
  22382. 89: uint8(21),
  22383. 90: uint8(21),
  22384. 91: uint8(21),
  22385. 92: uint8(21),
  22386. 93: uint8(21),
  22387. 94: uint8(21),
  22388. 95: uint8(21),
  22389. 96: uint8(22),
  22390. 97: uint8(22),
  22391. 98: uint8(22),
  22392. 99: uint8(22),
  22393. 100: uint8(22),
  22394. 101: uint8(22),
  22395. 102: uint8(22),
  22396. 103: uint8(22),
  22397. 104: uint8(22),
  22398. 105: uint8(22),
  22399. 106: uint8(22),
  22400. 107: uint8(22),
  22401. 108: uint8(22),
  22402. 109: uint8(22),
  22403. 110: uint8(22),
  22404. 111: uint8(22),
  22405. 112: uint8(23),
  22406. 113: uint8(23),
  22407. 114: uint8(23),
  22408. 115: uint8(23),
  22409. 116: uint8(23),
  22410. 117: uint8(23),
  22411. 118: uint8(23),
  22412. 119: uint8(23),
  22413. 120: uint8(23),
  22414. 121: uint8(23),
  22415. 122: uint8(23),
  22416. 123: uint8(23),
  22417. 124: uint8(23),
  22418. 125: uint8(23),
  22419. 126: uint8(23),
  22420. 127: uint8(23),
  22421. 128: uint8(24),
  22422. 129: uint8(24),
  22423. 130: uint8(24),
  22424. 131: uint8(24),
  22425. 132: uint8(24),
  22426. 133: uint8(24),
  22427. 134: uint8(24),
  22428. 135: uint8(24),
  22429. 136: uint8(24),
  22430. 137: uint8(24),
  22431. 138: uint8(24),
  22432. 139: uint8(24),
  22433. 140: uint8(24),
  22434. 141: uint8(24),
  22435. 142: uint8(24),
  22436. 143: uint8(24),
  22437. 144: uint8(24),
  22438. 145: uint8(24),
  22439. 146: uint8(24),
  22440. 147: uint8(24),
  22441. 148: uint8(24),
  22442. 149: uint8(24),
  22443. 150: uint8(24),
  22444. 151: uint8(24),
  22445. 152: uint8(24),
  22446. 153: uint8(24),
  22447. 154: uint8(24),
  22448. 155: uint8(24),
  22449. 156: uint8(24),
  22450. 157: uint8(24),
  22451. 158: uint8(24),
  22452. 159: uint8(24),
  22453. 160: uint8(25),
  22454. 161: uint8(25),
  22455. 162: uint8(25),
  22456. 163: uint8(25),
  22457. 164: uint8(25),
  22458. 165: uint8(25),
  22459. 166: uint8(25),
  22460. 167: uint8(25),
  22461. 168: uint8(25),
  22462. 169: uint8(25),
  22463. 170: uint8(25),
  22464. 171: uint8(25),
  22465. 172: uint8(25),
  22466. 173: uint8(25),
  22467. 174: uint8(25),
  22468. 175: uint8(25),
  22469. 176: uint8(25),
  22470. 177: uint8(25),
  22471. 178: uint8(25),
  22472. 179: uint8(25),
  22473. 180: uint8(25),
  22474. 181: uint8(25),
  22475. 182: uint8(25),
  22476. 183: uint8(25),
  22477. 184: uint8(25),
  22478. 185: uint8(25),
  22479. 186: uint8(25),
  22480. 187: uint8(25),
  22481. 188: uint8(25),
  22482. 189: uint8(25),
  22483. 190: uint8(25),
  22484. 191: uint8(25),
  22485. 192: uint8(26),
  22486. 193: uint8(26),
  22487. 194: uint8(26),
  22488. 195: uint8(26),
  22489. 196: uint8(26),
  22490. 197: uint8(26),
  22491. 198: uint8(26),
  22492. 199: uint8(26),
  22493. 200: uint8(26),
  22494. 201: uint8(26),
  22495. 202: uint8(26),
  22496. 203: uint8(26),
  22497. 204: uint8(26),
  22498. 205: uint8(26),
  22499. 206: uint8(26),
  22500. 207: uint8(26),
  22501. 208: uint8(26),
  22502. 209: uint8(26),
  22503. 210: uint8(26),
  22504. 211: uint8(26),
  22505. 212: uint8(26),
  22506. 213: uint8(26),
  22507. 214: uint8(26),
  22508. 215: uint8(26),
  22509. 216: uint8(26),
  22510. 217: uint8(26),
  22511. 218: uint8(26),
  22512. 219: uint8(26),
  22513. 220: uint8(26),
  22514. 221: uint8(26),
  22515. 222: uint8(26),
  22516. 223: uint8(26),
  22517. 224: uint8(27),
  22518. 225: uint8(27),
  22519. 226: uint8(27),
  22520. 227: uint8(27),
  22521. 228: uint8(27),
  22522. 229: uint8(27),
  22523. 230: uint8(27),
  22524. 231: uint8(27),
  22525. 232: uint8(27),
  22526. 233: uint8(27),
  22527. 234: uint8(27),
  22528. 235: uint8(27),
  22529. 236: uint8(27),
  22530. 237: uint8(27),
  22531. 238: uint8(27),
  22532. 239: uint8(27),
  22533. 240: uint8(27),
  22534. 241: uint8(27),
  22535. 242: uint8(27),
  22536. 243: uint8(27),
  22537. 244: uint8(27),
  22538. 245: uint8(27),
  22539. 246: uint8(27),
  22540. 247: uint8(27),
  22541. 248: uint8(27),
  22542. 249: uint8(27),
  22543. 250: uint8(27),
  22544. 251: uint8(27),
  22545. 252: uint8(27),
  22546. 253: uint8(27),
  22547. 254: uint8(27),
  22548. 255: uint8(28),
  22549. }
  22550. var Xdeflate_copyright = [66]int8{' ', 'd', 'e', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '3', ' ', 'J', 'e', 'a', 'n', '-', 'l', 'o', 'u', 'p', ' ', 'G', 'a', 'i', 'l', 'l', 'y', ' ', 'a', 'n', 'd', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  22551. var Xinflate_copyright = [45]int8{' ', 'i', 'n', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '3', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  22552. /*
  22553. GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
  22554. value -- needed when comparing unsigned to z_off64_t, which is signed
  22555. (possible z_off64_t types off_t, off64_t, and long are all signed)
  22556. */
  22557. var Xz_errmsg = [10]uintptr{
  22558. 0: __ccgo_ts + 465,
  22559. 1: __ccgo_ts + 481,
  22560. 2: __ccgo_ts + 492,
  22561. 3: __ccgo_ts + 493,
  22562. 4: __ccgo_ts + 504,
  22563. 5: __ccgo_ts + 517,
  22564. 6: __ccgo_ts + 528,
  22565. 7: __ccgo_ts + 548,
  22566. 8: __ccgo_ts + 561,
  22567. 9: __ccgo_ts + 492,
  22568. }
  22569. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  22570. var __ccgo_ts1 = "1.3\x00invalid block type\x00invalid stored block lengths\x00too many length or distance symbols\x00invalid code lengths set\x00invalid bit length repeat\x00invalid code -- missing end-of-block\x00invalid literal/lengths set\x00invalid distances set\x00invalid literal/length code\x00invalid distance code\x00invalid distance too far back\x00incorrect header check\x00unknown compression method\x00invalid window size\x00unknown header flags set\x00header crc mismatch\x00incorrect data check\x00incorrect length check\x00need dictionary\x00stream end\x00\x00file error\x00stream error\x00data error\x00insufficient memory\x00buffer error\x00incompatible version\x00%s\x00<fd:%d>\x00out of memory\x00%s%s%s\x00: \x00unexpected end of file\x00internal error: inflate stream corrupt\x00compressed data error\x00request does not fit in an int\x00request does not fit in a size_t\x00out of room to push characters\x00internal error: deflate stream corrupt\x00requested length does not fit in int\x00string length does not fit in int\x00"