ccgo_linux_arm.go 712 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558
  1. // Code generated for linux/arm 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 --libc modernc.org/libc --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build linux && arm
  3. package libz
  4. import (
  5. "reflect"
  6. "unsafe"
  7. "modernc.org/libc"
  8. )
  9. var _ reflect.Type
  10. var _ unsafe.Pointer
  11. const m_ARG_MAX = 131072
  12. const m_BASE = 65521
  13. const m_BC_BASE_MAX = 99
  14. const m_BC_DIM_MAX = 2048
  15. const m_BC_SCALE_MAX = 99
  16. const m_BC_STRING_MAX = 1000
  17. const m_BIG_ENDIAN = "__BIG_ENDIAN"
  18. const m_BYTE_ORDER = "__BYTE_ORDER"
  19. const m_CHARCLASS_NAME_MAX = 14
  20. const m_CHAR_BIT = 8
  21. const m_CHAR_MAX = 255
  22. const m_CHAR_MIN = 0
  23. const m_COLL_WEIGHTS_MAX = 2
  24. const m_DEF_MEM_LEVEL = 8
  25. const m_DEF_WBITS = "MAX_WBITS"
  26. const m_DELAYTIMER_MAX = 0x7fffffff
  27. const m_DYN_TREES = 2
  28. const m_EXIT_FAILURE = 1
  29. const m_EXIT_SUCCESS = 0
  30. const m_EXPR_NEST_MAX = 32
  31. const m_FD_SETSIZE = 1024
  32. const m_FILESIZEBITS = 64
  33. const m_F_LOCK = 1
  34. const m_F_OK = 0
  35. const m_F_TEST = 3
  36. const m_F_TLOCK = 2
  37. const m_F_ULOCK = 0
  38. const m_HAVE_HIDDEN = 1
  39. const m_HOST_NAME_MAX = 255
  40. const m_INT_MAX = 0x7fffffff
  41. const m_IOV_MAX = 1024
  42. const m_LINE_MAX = 4096
  43. const m_LITTLE_ENDIAN = "__LITTLE_ENDIAN"
  44. const m_LLONG_MAX = 0x7fffffffffffffff
  45. const m_LOGIN_NAME_MAX = 256
  46. const m_LONG_BIT = 32
  47. const m_LONG_MAX = "__LONG_MAX"
  48. const m_L_INCR = 1
  49. const m_L_SET = 0
  50. const m_L_XTND = 2
  51. const m_MAX_MATCH = 258
  52. const m_MAX_MEM_LEVEL = 9
  53. const m_MAX_WBITS = 15
  54. const m_MB_LEN_MAX = 4
  55. const m_MIN_MATCH = 3
  56. const m_MQ_PRIO_MAX = 32768
  57. const m_NAME_MAX = 255
  58. const m_NDEBUG = 1
  59. const m_NGROUPS_MAX = 32
  60. const m_NL_ARGMAX = 9
  61. const m_NL_LANGMAX = 32
  62. const m_NL_MSGMAX = 32767
  63. const m_NL_NMAX = 16
  64. const m_NL_SETMAX = 255
  65. const m_NL_TEXTMAX = 2048
  66. const m_NMAX = 5552
  67. const m_NZERO = 20
  68. const m_OS_CODE = 3
  69. const m_PATH_MAX = 4096
  70. const m_PDP_ENDIAN = "__PDP_ENDIAN"
  71. const m_PIPE_BUF = 4096
  72. const m_POSIX_CLOSE_RESTART = 0
  73. const m_PRESET_DICT = 0x20
  74. const m_PTHREAD_DESTRUCTOR_ITERATIONS = 4
  75. const m_PTHREAD_KEYS_MAX = 128
  76. const m_PTHREAD_STACK_MIN = 2048
  77. const m_RAND_MAX = 0x7fffffff
  78. const m_RE_DUP_MAX = 255
  79. const m_R_OK = 4
  80. const m_SCHAR_MAX = 127
  81. const m_SEEK_CUR = 1
  82. const m_SEEK_DATA = 3
  83. const m_SEEK_END = 2
  84. const m_SEEK_HOLE = 4
  85. const m_SEEK_SET = 0
  86. const m_SEM_NSEMS_MAX = 256
  87. const m_SEM_VALUE_MAX = 0x7fffffff
  88. const m_SHRT_MAX = 0x7fff
  89. const m_SSIZE_MAX = "LONG_MAX"
  90. const m_STATIC_TREES = 1
  91. const m_STDERR_FILENO = 2
  92. const m_STDIN_FILENO = 0
  93. const m_STDOUT_FILENO = 1
  94. const m_STORED_BLOCK = 0
  95. const m_SYMLOOP_MAX = 40
  96. const m_TTY_NAME_MAX = 32
  97. const m_TZNAME_MAX = 6
  98. const m_UCHAR_MAX = 255
  99. const m_UINT_MAX = 0xffffffff
  100. const m_USHRT_MAX = 0xffff
  101. const m_WNOHANG = 1
  102. const m_WORD_BIT = 32
  103. const m_WUNTRACED = 2
  104. const m_W_OK = 2
  105. const m_X_OK = 1
  106. const m_ZEXTERN = "extern"
  107. const m_ZLIB_VERNUM = 0x1310
  108. const m_ZLIB_VERSION = "1.3.1"
  109. const m_ZLIB_VER_MAJOR = 1
  110. const m_ZLIB_VER_MINOR = 3
  111. const m_ZLIB_VER_REVISION = 1
  112. const m_ZLIB_VER_SUBREVISION = 0
  113. const m_Z_ASCII = "Z_TEXT"
  114. const m_Z_BEST_COMPRESSION = 9
  115. const m_Z_BEST_SPEED = 1
  116. const m_Z_BINARY = 0
  117. const m_Z_BLOCK = 5
  118. const m_Z_DEFAULT_STRATEGY = 0
  119. const m_Z_DEFLATED = 8
  120. const m_Z_FILTERED = 1
  121. const m_Z_FINISH = 4
  122. const m_Z_FIXED = 4
  123. const m_Z_FULL_FLUSH = 3
  124. const m_Z_HUFFMAN_ONLY = 2
  125. const m_Z_NEED_DICT = 2
  126. const m_Z_NO_COMPRESSION = 0
  127. const m_Z_NO_FLUSH = 0
  128. const m_Z_NULL = 0
  129. const m_Z_OK = 0
  130. const m_Z_PARTIAL_FLUSH = 1
  131. const m_Z_RLE = 3
  132. const m_Z_STREAM_END = 1
  133. const m_Z_SYNC_FLUSH = 2
  134. const m_Z_TEXT = 1
  135. const m_Z_TREES = 6
  136. const m_Z_U4 = "unsigned"
  137. const m_Z_UNKNOWN = 2
  138. const m__CS_GNU_LIBC_VERSION = 2
  139. const m__CS_GNU_LIBPTHREAD_VERSION = 3
  140. const m__CS_PATH = 0
  141. const m__CS_POSIX_V5_WIDTH_RESTRICTED_ENVS = 4
  142. const m__CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116
  143. const m__CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117
  144. const m__CS_POSIX_V6_ILP32_OFF32_LIBS = 1118
  145. const m__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119
  146. const m__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120
  147. const m__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121
  148. const m__CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122
  149. const m__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123
  150. const m__CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124
  151. const m__CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125
  152. const m__CS_POSIX_V6_LP64_OFF64_LIBS = 1126
  153. const m__CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127
  154. const m__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128
  155. const m__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129
  156. const m__CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130
  157. const m__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131
  158. const m__CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 1
  159. const m__CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132
  160. const m__CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133
  161. const m__CS_POSIX_V7_ILP32_OFF32_LIBS = 1134
  162. const m__CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135
  163. const m__CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136
  164. const m__CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137
  165. const m__CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138
  166. const m__CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139
  167. const m__CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140
  168. const m__CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141
  169. const m__CS_POSIX_V7_LP64_OFF64_LIBS = 1142
  170. const m__CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143
  171. const m__CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144
  172. const m__CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145
  173. const m__CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146
  174. const m__CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147
  175. const m__CS_POSIX_V7_THREADS_CFLAGS = 1150
  176. const m__CS_POSIX_V7_THREADS_LDFLAGS = 1151
  177. const m__CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 5
  178. const m__CS_V6_ENV = 1148
  179. const m__CS_V7_ENV = 1149
  180. const m__FILE_OFFSET_BITS = 64
  181. const m__GNU_SOURCE = 1
  182. const m__LARGEFILE64_SOURCE = 1
  183. const m__PC_2_SYMLINKS = 20
  184. const m__PC_ALLOC_SIZE_MIN = 18
  185. const m__PC_ASYNC_IO = 10
  186. const m__PC_CHOWN_RESTRICTED = 6
  187. const m__PC_FILESIZEBITS = 13
  188. const m__PC_LINK_MAX = 0
  189. const m__PC_MAX_CANON = 1
  190. const m__PC_MAX_INPUT = 2
  191. const m__PC_NAME_MAX = 3
  192. const m__PC_NO_TRUNC = 7
  193. const m__PC_PATH_MAX = 4
  194. const m__PC_PIPE_BUF = 5
  195. const m__PC_PRIO_IO = 11
  196. const m__PC_REC_INCR_XFER_SIZE = 14
  197. const m__PC_REC_MAX_XFER_SIZE = 15
  198. const m__PC_REC_MIN_XFER_SIZE = 16
  199. const m__PC_REC_XFER_ALIGN = 17
  200. const m__PC_SOCK_MAXBUF = 12
  201. const m__PC_SYMLINK_MAX = 19
  202. const m__PC_SYNC_IO = 9
  203. const m__PC_VDISABLE = 8
  204. const m__POSIX2_BC_BASE_MAX = 99
  205. const m__POSIX2_BC_DIM_MAX = 2048
  206. const m__POSIX2_BC_SCALE_MAX = 99
  207. const m__POSIX2_BC_STRING_MAX = 1000
  208. const m__POSIX2_CHARCLASS_NAME_MAX = 14
  209. const m__POSIX2_COLL_WEIGHTS_MAX = 2
  210. const m__POSIX2_C_BIND = "_POSIX_VERSION"
  211. const m__POSIX2_EXPR_NEST_MAX = 32
  212. const m__POSIX2_LINE_MAX = 2048
  213. const m__POSIX2_RE_DUP_MAX = 255
  214. const m__POSIX2_VERSION = "_POSIX_VERSION"
  215. const m__POSIX_ADVISORY_INFO = "_POSIX_VERSION"
  216. const m__POSIX_AIO_LISTIO_MAX = 2
  217. const m__POSIX_AIO_MAX = 1
  218. const m__POSIX_ARG_MAX = 4096
  219. const m__POSIX_ASYNCHRONOUS_IO = "_POSIX_VERSION"
  220. const m__POSIX_BARRIERS = "_POSIX_VERSION"
  221. const m__POSIX_CHILD_MAX = 25
  222. const m__POSIX_CHOWN_RESTRICTED = 1
  223. const m__POSIX_CLOCKRES_MIN = 20000000
  224. const m__POSIX_CLOCK_SELECTION = "_POSIX_VERSION"
  225. const m__POSIX_CPUTIME = "_POSIX_VERSION"
  226. const m__POSIX_DELAYTIMER_MAX = 32
  227. const m__POSIX_FSYNC = "_POSIX_VERSION"
  228. const m__POSIX_HOST_NAME_MAX = 255
  229. const m__POSIX_IPV6 = "_POSIX_VERSION"
  230. const m__POSIX_JOB_CONTROL = 1
  231. const m__POSIX_LINK_MAX = 8
  232. const m__POSIX_LOGIN_NAME_MAX = 9
  233. const m__POSIX_MAPPED_FILES = "_POSIX_VERSION"
  234. const m__POSIX_MAX_CANON = 255
  235. const m__POSIX_MAX_INPUT = 255
  236. const m__POSIX_MEMLOCK = "_POSIX_VERSION"
  237. const m__POSIX_MEMLOCK_RANGE = "_POSIX_VERSION"
  238. const m__POSIX_MEMORY_PROTECTION = "_POSIX_VERSION"
  239. const m__POSIX_MESSAGE_PASSING = "_POSIX_VERSION"
  240. const m__POSIX_MONOTONIC_CLOCK = "_POSIX_VERSION"
  241. const m__POSIX_MQ_OPEN_MAX = 8
  242. const m__POSIX_MQ_PRIO_MAX = 32
  243. const m__POSIX_NAME_MAX = 14
  244. const m__POSIX_NGROUPS_MAX = 8
  245. const m__POSIX_NO_TRUNC = 1
  246. const m__POSIX_OPEN_MAX = 20
  247. const m__POSIX_PATH_MAX = 256
  248. const m__POSIX_PIPE_BUF = 512
  249. const m__POSIX_RAW_SOCKETS = "_POSIX_VERSION"
  250. const m__POSIX_READER_WRITER_LOCKS = "_POSIX_VERSION"
  251. const m__POSIX_REALTIME_SIGNALS = "_POSIX_VERSION"
  252. const m__POSIX_REGEXP = 1
  253. const m__POSIX_RE_DUP_MAX = 255
  254. const m__POSIX_RTSIG_MAX = 8
  255. const m__POSIX_SAVED_IDS = 1
  256. const m__POSIX_SEMAPHORES = "_POSIX_VERSION"
  257. const m__POSIX_SEM_NSEMS_MAX = 256
  258. const m__POSIX_SEM_VALUE_MAX = 32767
  259. const m__POSIX_SHARED_MEMORY_OBJECTS = "_POSIX_VERSION"
  260. const m__POSIX_SHELL = 1
  261. const m__POSIX_SIGQUEUE_MAX = 32
  262. const m__POSIX_SPAWN = "_POSIX_VERSION"
  263. const m__POSIX_SPIN_LOCKS = "_POSIX_VERSION"
  264. const m__POSIX_SSIZE_MAX = 32767
  265. const m__POSIX_SS_REPL_MAX = 4
  266. const m__POSIX_STREAM_MAX = 8
  267. const m__POSIX_SYMLINK_MAX = 255
  268. const m__POSIX_SYMLOOP_MAX = 8
  269. const m__POSIX_THREADS = "_POSIX_VERSION"
  270. const m__POSIX_THREAD_ATTR_STACKADDR = "_POSIX_VERSION"
  271. const m__POSIX_THREAD_ATTR_STACKSIZE = "_POSIX_VERSION"
  272. const m__POSIX_THREAD_CPUTIME = "_POSIX_VERSION"
  273. const m__POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
  274. const m__POSIX_THREAD_KEYS_MAX = 128
  275. const m__POSIX_THREAD_PRIORITY_SCHEDULING = "_POSIX_VERSION"
  276. const m__POSIX_THREAD_PROCESS_SHARED = "_POSIX_VERSION"
  277. const m__POSIX_THREAD_SAFE_FUNCTIONS = "_POSIX_VERSION"
  278. const m__POSIX_THREAD_THREADS_MAX = 64
  279. const m__POSIX_TIMEOUTS = "_POSIX_VERSION"
  280. const m__POSIX_TIMERS = "_POSIX_VERSION"
  281. const m__POSIX_TIMER_MAX = 32
  282. const m__POSIX_TRACE_EVENT_NAME_MAX = 30
  283. const m__POSIX_TRACE_NAME_MAX = 8
  284. const m__POSIX_TRACE_SYS_MAX = 8
  285. const m__POSIX_TRACE_USER_EVENT_MAX = 32
  286. const m__POSIX_TTY_NAME_MAX = 9
  287. const m__POSIX_TZNAME_MAX = 6
  288. const m__POSIX_V6_ILP32_OFFBIG = 1
  289. const m__POSIX_V7_ILP32_OFFBIG = 1
  290. const m__POSIX_VDISABLE = 0
  291. const m__POSIX_VERSION = 200809
  292. const m__REDIR_TIME64 = 1
  293. const m__SC_2_CHAR_TERM = 95
  294. const m__SC_2_C_BIND = 47
  295. const m__SC_2_C_DEV = 48
  296. const m__SC_2_FORT_DEV = 49
  297. const m__SC_2_FORT_RUN = 50
  298. const m__SC_2_LOCALEDEF = 52
  299. const m__SC_2_PBS = 168
  300. const m__SC_2_PBS_ACCOUNTING = 169
  301. const m__SC_2_PBS_CHECKPOINT = 175
  302. const m__SC_2_PBS_LOCATE = 170
  303. const m__SC_2_PBS_MESSAGE = 171
  304. const m__SC_2_PBS_TRACK = 172
  305. const m__SC_2_SW_DEV = 51
  306. const m__SC_2_UPE = 97
  307. const m__SC_2_VERSION = 46
  308. const m__SC_ADVISORY_INFO = 132
  309. const m__SC_AIO_LISTIO_MAX = 23
  310. const m__SC_AIO_MAX = 24
  311. const m__SC_AIO_PRIO_DELTA_MAX = 25
  312. const m__SC_ARG_MAX = 0
  313. const m__SC_ASYNCHRONOUS_IO = 12
  314. const m__SC_ATEXIT_MAX = 87
  315. const m__SC_AVPHYS_PAGES = 86
  316. const m__SC_BARRIERS = 133
  317. const m__SC_BC_BASE_MAX = 36
  318. const m__SC_BC_DIM_MAX = 37
  319. const m__SC_BC_SCALE_MAX = 38
  320. const m__SC_BC_STRING_MAX = 39
  321. const m__SC_CHILD_MAX = 1
  322. const m__SC_CLK_TCK = 2
  323. const m__SC_CLOCK_SELECTION = 137
  324. const m__SC_COLL_WEIGHTS_MAX = 40
  325. const m__SC_CPUTIME = 138
  326. const m__SC_DELAYTIMER_MAX = 26
  327. const m__SC_EXPR_NEST_MAX = 42
  328. const m__SC_FSYNC = 15
  329. const m__SC_GETGR_R_SIZE_MAX = 69
  330. const m__SC_GETPW_R_SIZE_MAX = 70
  331. const m__SC_HOST_NAME_MAX = 180
  332. const m__SC_IOV_MAX = 60
  333. const m__SC_IPV6 = 235
  334. const m__SC_JOB_CONTROL = 7
  335. const m__SC_LINE_MAX = 43
  336. const m__SC_LOGIN_NAME_MAX = 71
  337. const m__SC_MAPPED_FILES = 16
  338. const m__SC_MEMLOCK = 17
  339. const m__SC_MEMLOCK_RANGE = 18
  340. const m__SC_MEMORY_PROTECTION = 19
  341. const m__SC_MESSAGE_PASSING = 20
  342. const m__SC_MINSIGSTKSZ = 249
  343. const m__SC_MONOTONIC_CLOCK = 149
  344. const m__SC_MQ_OPEN_MAX = 27
  345. const m__SC_MQ_PRIO_MAX = 28
  346. const m__SC_NGROUPS_MAX = 3
  347. const m__SC_NPROCESSORS_CONF = 83
  348. const m__SC_NPROCESSORS_ONLN = 84
  349. const m__SC_NZERO = 109
  350. const m__SC_OPEN_MAX = 4
  351. const m__SC_PAGESIZE = 30
  352. const m__SC_PAGE_SIZE = 30
  353. const m__SC_PASS_MAX = 88
  354. const m__SC_PHYS_PAGES = 85
  355. const m__SC_PRIORITIZED_IO = 13
  356. const m__SC_PRIORITY_SCHEDULING = 10
  357. const m__SC_RAW_SOCKETS = 236
  358. const m__SC_READER_WRITER_LOCKS = 153
  359. const m__SC_REALTIME_SIGNALS = 9
  360. const m__SC_REGEXP = 155
  361. const m__SC_RE_DUP_MAX = 44
  362. const m__SC_RTSIG_MAX = 31
  363. const m__SC_SAVED_IDS = 8
  364. const m__SC_SEMAPHORES = 21
  365. const m__SC_SEM_NSEMS_MAX = 32
  366. const m__SC_SEM_VALUE_MAX = 33
  367. const m__SC_SHARED_MEMORY_OBJECTS = 22
  368. const m__SC_SHELL = 157
  369. const m__SC_SIGQUEUE_MAX = 34
  370. const m__SC_SIGSTKSZ = 250
  371. const m__SC_SPAWN = 159
  372. const m__SC_SPIN_LOCKS = 154
  373. const m__SC_SPORADIC_SERVER = 160
  374. const m__SC_SS_REPL_MAX = 241
  375. const m__SC_STREAMS = 174
  376. const m__SC_STREAM_MAX = 5
  377. const m__SC_SYMLOOP_MAX = 173
  378. const m__SC_SYNCHRONIZED_IO = 14
  379. const m__SC_THREADS = 67
  380. const m__SC_THREAD_ATTR_STACKADDR = 77
  381. const m__SC_THREAD_ATTR_STACKSIZE = 78
  382. const m__SC_THREAD_CPUTIME = 139
  383. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 73
  384. const m__SC_THREAD_KEYS_MAX = 74
  385. const m__SC_THREAD_PRIORITY_SCHEDULING = 79
  386. const m__SC_THREAD_PRIO_INHERIT = 80
  387. const m__SC_THREAD_PRIO_PROTECT = 81
  388. const m__SC_THREAD_PROCESS_SHARED = 82
  389. const m__SC_THREAD_ROBUST_PRIO_INHERIT = 247
  390. const m__SC_THREAD_ROBUST_PRIO_PROTECT = 248
  391. const m__SC_THREAD_SAFE_FUNCTIONS = 68
  392. const m__SC_THREAD_SPORADIC_SERVER = 161
  393. const m__SC_THREAD_STACK_MIN = 75
  394. const m__SC_THREAD_THREADS_MAX = 76
  395. const m__SC_TIMEOUTS = 164
  396. const m__SC_TIMERS = 11
  397. const m__SC_TIMER_MAX = 35
  398. const m__SC_TRACE = 181
  399. const m__SC_TRACE_EVENT_FILTER = 182
  400. const m__SC_TRACE_EVENT_NAME_MAX = 242
  401. const m__SC_TRACE_INHERIT = 183
  402. const m__SC_TRACE_LOG = 184
  403. const m__SC_TRACE_NAME_MAX = 243
  404. const m__SC_TRACE_SYS_MAX = 244
  405. const m__SC_TRACE_USER_EVENT_MAX = 245
  406. const m__SC_TTY_NAME_MAX = 72
  407. const m__SC_TYPED_MEMORY_OBJECTS = 165
  408. const m__SC_TZNAME_MAX = 6
  409. const m__SC_UIO_MAXIOV = 60
  410. const m__SC_V6_ILP32_OFF32 = 176
  411. const m__SC_V6_ILP32_OFFBIG = 177
  412. const m__SC_V6_LP64_OFF64 = 178
  413. const m__SC_V6_LPBIG_OFFBIG = 179
  414. const m__SC_V7_ILP32_OFF32 = 237
  415. const m__SC_V7_ILP32_OFFBIG = 238
  416. const m__SC_V7_LP64_OFF64 = 239
  417. const m__SC_V7_LPBIG_OFFBIG = 240
  418. const m__SC_VERSION = 29
  419. const m__SC_XBS5_ILP32_OFF32 = 125
  420. const m__SC_XBS5_ILP32_OFFBIG = 126
  421. const m__SC_XBS5_LP64_OFF64 = 127
  422. const m__SC_XBS5_LPBIG_OFFBIG = 128
  423. const m__SC_XOPEN_CRYPT = 92
  424. const m__SC_XOPEN_ENH_I18N = 93
  425. const m__SC_XOPEN_LEGACY = 129
  426. const m__SC_XOPEN_REALTIME = 130
  427. const m__SC_XOPEN_REALTIME_THREADS = 131
  428. const m__SC_XOPEN_SHM = 94
  429. const m__SC_XOPEN_STREAMS = 246
  430. const m__SC_XOPEN_UNIX = 91
  431. const m__SC_XOPEN_VERSION = 89
  432. const m__SC_XOPEN_XCU_VERSION = 90
  433. const m__SC_XOPEN_XPG2 = 98
  434. const m__SC_XOPEN_XPG3 = 99
  435. const m__SC_XOPEN_XPG4 = 100
  436. const m__STDC_PREDEF_H = 1
  437. const m__XOPEN_ENH_I18N = 1
  438. const m__XOPEN_IOV_MAX = 16
  439. const m__XOPEN_NAME_MAX = 255
  440. const m__XOPEN_PATH_MAX = 1024
  441. const m__XOPEN_UNIX = 1
  442. const m__XOPEN_VERSION = 700
  443. const m___ACCUM_EPSILON__ = "0x1P-15K"
  444. const m___ACCUM_FBIT__ = 15
  445. const m___ACCUM_IBIT__ = 16
  446. const m___ACCUM_MAX__ = "0X7FFFFFFFP-15K"
  447. const m___APCS_32__ = 1
  448. const m___ARMEL__ = 1
  449. const m___ARM_32BIT_STATE = 1
  450. const m___ARM_ARCH = 6
  451. const m___ARM_ARCH_6__ = 1
  452. const m___ARM_ARCH_ISA_ARM = 1
  453. const m___ARM_ARCH_ISA_THUMB = 1
  454. const m___ARM_EABI__ = 1
  455. const m___ARM_FEATURE_CLZ = 1
  456. const m___ARM_FEATURE_COPROC = 15
  457. const m___ARM_FEATURE_DSP = 1
  458. const m___ARM_FEATURE_LDREX = 4
  459. const m___ARM_FEATURE_QBIT = 1
  460. const m___ARM_FEATURE_SAT = 1
  461. const m___ARM_FEATURE_SIMD32 = 1
  462. const m___ARM_FEATURE_UNALIGNED = 1
  463. const m___ARM_FP = 12
  464. const m___ARM_PCS_VFP = 1
  465. const m___ARM_SIZEOF_MINIMAL_ENUM = 4
  466. const m___ARM_SIZEOF_WCHAR_T = 4
  467. const m___ATOMIC_ACQUIRE = 2
  468. const m___ATOMIC_ACQ_REL = 4
  469. const m___ATOMIC_CONSUME = 1
  470. const m___ATOMIC_RELAXED = 0
  471. const m___ATOMIC_RELEASE = 3
  472. const m___ATOMIC_SEQ_CST = 5
  473. const m___BIGGEST_ALIGNMENT__ = 8
  474. const m___BIG_ENDIAN = 4321
  475. const m___BYTE_ORDER = 1234
  476. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  477. const m___CCGO__ = 1
  478. const m___CHAR_BIT__ = 8
  479. const m___CHAR_UNSIGNED__ = 1
  480. const m___DA_FBIT__ = 31
  481. const m___DA_IBIT__ = 32
  482. const m___DBL_DECIMAL_DIG__ = 17
  483. const m___DBL_DIG__ = 15
  484. const m___DBL_HAS_DENORM__ = 1
  485. const m___DBL_HAS_INFINITY__ = 1
  486. const m___DBL_HAS_QUIET_NAN__ = 1
  487. const m___DBL_IS_IEC_60559__ = 2
  488. const m___DBL_MANT_DIG__ = 53
  489. const m___DBL_MAX_10_EXP__ = 308
  490. const m___DBL_MAX_EXP__ = 1024
  491. const m___DECIMAL_DIG__ = 17
  492. const m___DEC_EVAL_METHOD__ = 2
  493. const m___DQ_FBIT__ = 63
  494. const m___DQ_IBIT__ = 0
  495. const m___ELF__ = 1
  496. const m___FINITE_MATH_ONLY__ = 0
  497. const m___FLOAT_WORD_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  498. const m___FLT32X_DECIMAL_DIG__ = 17
  499. const m___FLT32X_DENORM_MIN__ = 4.9406564584124654e-324
  500. const m___FLT32X_DIG__ = 15
  501. const m___FLT32X_EPSILON__ = 2.2204460492503131e-16
  502. const m___FLT32X_HAS_DENORM__ = 1
  503. const m___FLT32X_HAS_INFINITY__ = 1
  504. const m___FLT32X_HAS_QUIET_NAN__ = 1
  505. const m___FLT32X_IS_IEC_60559__ = 2
  506. const m___FLT32X_MANT_DIG__ = 53
  507. const m___FLT32X_MAX_10_EXP__ = 308
  508. const m___FLT32X_MAX_EXP__ = 1024
  509. const m___FLT32X_MAX__ = 1.7976931348623157e+308
  510. const m___FLT32X_MIN__ = 2.2250738585072014e-308
  511. const m___FLT32X_NORM_MAX__ = 1.7976931348623157e+308
  512. const m___FLT32_DECIMAL_DIG__ = 9
  513. const m___FLT32_DENORM_MIN__ = 1.4012984643248171e-45
  514. const m___FLT32_DIG__ = 6
  515. const m___FLT32_EPSILON__ = 1.1920928955078125e-7
  516. const m___FLT32_HAS_DENORM__ = 1
  517. const m___FLT32_HAS_INFINITY__ = 1
  518. const m___FLT32_HAS_QUIET_NAN__ = 1
  519. const m___FLT32_IS_IEC_60559__ = 2
  520. const m___FLT32_MANT_DIG__ = 24
  521. const m___FLT32_MAX_10_EXP__ = 38
  522. const m___FLT32_MAX_EXP__ = 128
  523. const m___FLT32_MAX__ = 3.4028234663852886e+38
  524. const m___FLT32_MIN__ = 1.1754943508222875e-38
  525. const m___FLT32_NORM_MAX__ = 3.4028234663852886e+38
  526. const m___FLT64_DECIMAL_DIG__ = 17
  527. const m___FLT64_DENORM_MIN__ = 4.9406564584124654e-324
  528. const m___FLT64_DIG__ = 15
  529. const m___FLT64_EPSILON__ = 2.2204460492503131e-16
  530. const m___FLT64_HAS_DENORM__ = 1
  531. const m___FLT64_HAS_INFINITY__ = 1
  532. const m___FLT64_HAS_QUIET_NAN__ = 1
  533. const m___FLT64_IS_IEC_60559__ = 2
  534. const m___FLT64_MANT_DIG__ = 53
  535. const m___FLT64_MAX_10_EXP__ = 308
  536. const m___FLT64_MAX_EXP__ = 1024
  537. const m___FLT64_MAX__ = 1.7976931348623157e+308
  538. const m___FLT64_MIN__ = 2.2250738585072014e-308
  539. const m___FLT64_NORM_MAX__ = 1.7976931348623157e+308
  540. const m___FLT_DECIMAL_DIG__ = 9
  541. const m___FLT_DENORM_MIN__ = 1.4012984643248171e-45
  542. const m___FLT_DIG__ = 6
  543. const m___FLT_EPSILON__ = 1.1920928955078125e-7
  544. const m___FLT_EVAL_METHOD_TS_18661_3__ = 0
  545. const m___FLT_EVAL_METHOD__ = 0
  546. const m___FLT_HAS_DENORM__ = 1
  547. const m___FLT_HAS_INFINITY__ = 1
  548. const m___FLT_HAS_QUIET_NAN__ = 1
  549. const m___FLT_IS_IEC_60559__ = 2
  550. const m___FLT_MANT_DIG__ = 24
  551. const m___FLT_MAX_10_EXP__ = 38
  552. const m___FLT_MAX_EXP__ = 128
  553. const m___FLT_MAX__ = 3.4028234663852886e+38
  554. const m___FLT_MIN__ = 1.1754943508222875e-38
  555. const m___FLT_NORM_MAX__ = 3.4028234663852886e+38
  556. const m___FLT_RADIX__ = 2
  557. const m___FRACT_EPSILON__ = "0x1P-15R"
  558. const m___FRACT_FBIT__ = 15
  559. const m___FRACT_IBIT__ = 0
  560. const m___FRACT_MAX__ = "0X7FFFP-15R"
  561. const m___FUNCTION__ = "__func__"
  562. const m___GCC_ASM_FLAG_OUTPUTS__ = 1
  563. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 1
  564. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 1
  565. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  566. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 1
  567. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  568. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 1
  569. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  570. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  571. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 1
  572. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  573. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  574. const m___GCC_CONSTRUCTIVE_SIZE = 64
  575. const m___GCC_DESTRUCTIVE_SIZE = 64
  576. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  577. const m___GCC_IEC_559 = 2
  578. const m___GCC_IEC_559_COMPLEX = 2
  579. const m___GNUC_EXECUTION_CHARSET_NAME = "UTF-8"
  580. const m___GNUC_MINOR__ = 2
  581. const m___GNUC_PATCHLEVEL__ = 0
  582. const m___GNUC_STDC_INLINE__ = 1
  583. const m___GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-32LE"
  584. const m___GNUC__ = 12
  585. const m___GXX_ABI_VERSION = 1017
  586. const m___GXX_TYPEINFO_EQUALITY_INLINE = 0
  587. const m___HAVE_SPECULATION_SAFE_VALUE = 1
  588. const m___HA_FBIT__ = 7
  589. const m___HA_IBIT__ = 8
  590. const m___HQ_FBIT__ = 15
  591. const m___HQ_IBIT__ = 0
  592. const m___INT16_MAX__ = 0x7fff
  593. const m___INT32_MAX__ = 0x7fffffff
  594. const m___INT32_TYPE__ = "int"
  595. const m___INT64_MAX__ = 0x7fffffffffffffff
  596. const m___INT8_MAX__ = 0x7f
  597. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  598. const m___INTMAX_WIDTH__ = 64
  599. const m___INTPTR_MAX__ = 0x7fffffff
  600. const m___INTPTR_TYPE__ = "int"
  601. const m___INTPTR_WIDTH__ = 32
  602. const m___INT_FAST16_MAX__ = 0x7fffffff
  603. const m___INT_FAST16_TYPE__ = "int"
  604. const m___INT_FAST16_WIDTH__ = 32
  605. const m___INT_FAST32_MAX__ = 0x7fffffff
  606. const m___INT_FAST32_TYPE__ = "int"
  607. const m___INT_FAST32_WIDTH__ = 32
  608. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  609. const m___INT_FAST64_WIDTH__ = 64
  610. const m___INT_FAST8_MAX__ = 0x7f
  611. const m___INT_FAST8_WIDTH__ = 8
  612. const m___INT_LEAST16_MAX__ = 0x7fff
  613. const m___INT_LEAST16_WIDTH__ = 16
  614. const m___INT_LEAST32_MAX__ = 0x7fffffff
  615. const m___INT_LEAST32_TYPE__ = "int"
  616. const m___INT_LEAST32_WIDTH__ = 32
  617. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  618. const m___INT_LEAST64_WIDTH__ = 64
  619. const m___INT_LEAST8_MAX__ = 0x7f
  620. const m___INT_LEAST8_WIDTH__ = 8
  621. const m___INT_MAX__ = 0x7fffffff
  622. const m___INT_WIDTH__ = 32
  623. const m___LACCUM_EPSILON__ = "0x1P-31LK"
  624. const m___LACCUM_FBIT__ = 31
  625. const m___LACCUM_IBIT__ = 32
  626. const m___LACCUM_MAX__ = "0X7FFFFFFFFFFFFFFFP-31LK"
  627. const m___LDBL_DECIMAL_DIG__ = 17
  628. const m___LDBL_DENORM_MIN__ = 4.9406564584124654e-324
  629. const m___LDBL_DIG__ = 15
  630. const m___LDBL_EPSILON__ = 2.2204460492503131e-16
  631. const m___LDBL_HAS_DENORM__ = 1
  632. const m___LDBL_HAS_INFINITY__ = 1
  633. const m___LDBL_HAS_QUIET_NAN__ = 1
  634. const m___LDBL_IS_IEC_60559__ = 2
  635. const m___LDBL_MANT_DIG__ = 53
  636. const m___LDBL_MAX_10_EXP__ = 308
  637. const m___LDBL_MAX_EXP__ = 1024
  638. const m___LDBL_MAX__ = 1.7976931348623157e+308
  639. const m___LDBL_MIN__ = 2.2250738585072014e-308
  640. const m___LDBL_NORM_MAX__ = 1.7976931348623157e+308
  641. const m___LFRACT_EPSILON__ = "0x1P-31LR"
  642. const m___LFRACT_FBIT__ = 31
  643. const m___LFRACT_IBIT__ = 0
  644. const m___LFRACT_MAX__ = "0X7FFFFFFFP-31LR"
  645. const m___LITTLE_ENDIAN = 1234
  646. const m___LLACCUM_EPSILON__ = "0x1P-31LLK"
  647. const m___LLACCUM_FBIT__ = 31
  648. const m___LLACCUM_IBIT__ = 32
  649. const m___LLACCUM_MAX__ = "0X7FFFFFFFFFFFFFFFP-31LLK"
  650. const m___LLFRACT_EPSILON__ = "0x1P-63LLR"
  651. const m___LLFRACT_FBIT__ = 63
  652. const m___LLFRACT_IBIT__ = 0
  653. const m___LLFRACT_MAX__ = "0X7FFFFFFFFFFFFFFFP-63LLR"
  654. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  655. const m___LONG_LONG_WIDTH__ = 64
  656. const m___LONG_MAX = 0x7fffffff
  657. const m___LONG_MAX__ = 0x7fffffff
  658. const m___LONG_WIDTH__ = 32
  659. const m___NO_INLINE__ = 1
  660. const m___ORDER_BIG_ENDIAN__ = 4321
  661. const m___ORDER_LITTLE_ENDIAN__ = 1234
  662. const m___ORDER_PDP_ENDIAN__ = 3412
  663. const m___PDP_ENDIAN = 3412
  664. const m___PRAGMA_REDEFINE_EXTNAME = 1
  665. const m___PRETTY_FUNCTION__ = "__func__"
  666. const m___PTRDIFF_MAX__ = 0x7fffffff
  667. const m___PTRDIFF_TYPE__ = "int"
  668. const m___PTRDIFF_WIDTH__ = 32
  669. const m___QQ_FBIT__ = 7
  670. const m___QQ_IBIT__ = 0
  671. const m___SACCUM_EPSILON__ = "0x1P-7HK"
  672. const m___SACCUM_FBIT__ = 7
  673. const m___SACCUM_IBIT__ = 8
  674. const m___SACCUM_MAX__ = "0X7FFFP-7HK"
  675. const m___SA_FBIT__ = 15
  676. const m___SA_IBIT__ = 16
  677. const m___SCHAR_MAX__ = 0x7f
  678. const m___SCHAR_WIDTH__ = 8
  679. const m___SFRACT_EPSILON__ = "0x1P-7HR"
  680. const m___SFRACT_FBIT__ = 7
  681. const m___SFRACT_IBIT__ = 0
  682. const m___SFRACT_MAX__ = "0X7FP-7HR"
  683. const m___SHRT_MAX__ = 0x7fff
  684. const m___SHRT_WIDTH__ = 16
  685. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  686. const m___SIG_ATOMIC_TYPE__ = "int"
  687. const m___SIG_ATOMIC_WIDTH__ = 32
  688. const m___SIZEOF_DOUBLE__ = 8
  689. const m___SIZEOF_FLOAT__ = 4
  690. const m___SIZEOF_INT__ = 4
  691. const m___SIZEOF_LONG_DOUBLE__ = 8
  692. const m___SIZEOF_LONG_LONG__ = 8
  693. const m___SIZEOF_LONG__ = 4
  694. const m___SIZEOF_POINTER__ = 4
  695. const m___SIZEOF_PTRDIFF_T__ = 4
  696. const m___SIZEOF_SHORT__ = 2
  697. const m___SIZEOF_SIZE_T__ = 4
  698. const m___SIZEOF_WCHAR_T__ = 4
  699. const m___SIZEOF_WINT_T__ = 4
  700. const m___SIZE_MAX__ = 0xffffffff
  701. const m___SIZE_WIDTH__ = 32
  702. const m___SQ_FBIT__ = 31
  703. const m___SQ_IBIT__ = 0
  704. const m___STDC_HOSTED__ = 1
  705. const m___STDC_IEC_559_COMPLEX__ = 1
  706. const m___STDC_IEC_559__ = 1
  707. const m___STDC_IEC_60559_BFP__ = 201404
  708. const m___STDC_IEC_60559_COMPLEX__ = 201404
  709. const m___STDC_ISO_10646__ = 201706
  710. const m___STDC_UTF_16__ = 1
  711. const m___STDC_UTF_32__ = 1
  712. const m___STDC_VERSION__ = 201710
  713. const m___STDC__ = 1
  714. const m___TA_FBIT__ = 63
  715. const m___TA_IBIT__ = 64
  716. const m___THUMB_INTERWORK__ = 1
  717. const m___TQ_FBIT__ = 127
  718. const m___TQ_IBIT__ = 0
  719. const m___UACCUM_EPSILON__ = "0x1P-16UK"
  720. const m___UACCUM_FBIT__ = 16
  721. const m___UACCUM_IBIT__ = 16
  722. const m___UACCUM_MAX__ = "0XFFFFFFFFP-16UK"
  723. const m___UACCUM_MIN__ = "0.0UK"
  724. const m___UDA_FBIT__ = 32
  725. const m___UDA_IBIT__ = 32
  726. const m___UDQ_FBIT__ = 64
  727. const m___UDQ_IBIT__ = 0
  728. const m___UFRACT_EPSILON__ = "0x1P-16UR"
  729. const m___UFRACT_FBIT__ = 16
  730. const m___UFRACT_IBIT__ = 0
  731. const m___UFRACT_MAX__ = "0XFFFFP-16UR"
  732. const m___UFRACT_MIN__ = "0.0UR"
  733. const m___UHA_FBIT__ = 8
  734. const m___UHA_IBIT__ = 8
  735. const m___UHQ_FBIT__ = 16
  736. const m___UHQ_IBIT__ = 0
  737. const m___UINT16_MAX__ = 0xffff
  738. const m___UINT32_MAX__ = 0xffffffff
  739. const m___UINT64_MAX__ = "0xffffffffffffffffU"
  740. const m___UINT8_MAX__ = 0xff
  741. const m___UINTMAX_MAX__ = "0xffffffffffffffffU"
  742. const m___UINTPTR_MAX__ = 0xffffffff
  743. const m___UINT_FAST16_MAX__ = 0xffffffff
  744. const m___UINT_FAST32_MAX__ = 0xffffffff
  745. const m___UINT_FAST64_MAX__ = "0xffffffffffffffffU"
  746. const m___UINT_FAST8_MAX__ = 0xff
  747. const m___UINT_LEAST16_MAX__ = 0xffff
  748. const m___UINT_LEAST32_MAX__ = 0xffffffff
  749. const m___UINT_LEAST64_MAX__ = "0xffffffffffffffffU"
  750. const m___UINT_LEAST8_MAX__ = 0xff
  751. const m___ULACCUM_EPSILON__ = "0x1P-32ULK"
  752. const m___ULACCUM_FBIT__ = 32
  753. const m___ULACCUM_IBIT__ = 32
  754. const m___ULACCUM_MAX__ = "0XFFFFFFFFFFFFFFFFP-32ULK"
  755. const m___ULACCUM_MIN__ = "0.0ULK"
  756. const m___ULFRACT_EPSILON__ = "0x1P-32ULR"
  757. const m___ULFRACT_FBIT__ = 32
  758. const m___ULFRACT_IBIT__ = 0
  759. const m___ULFRACT_MAX__ = "0XFFFFFFFFP-32ULR"
  760. const m___ULFRACT_MIN__ = "0.0ULR"
  761. const m___ULLACCUM_EPSILON__ = "0x1P-32ULLK"
  762. const m___ULLACCUM_FBIT__ = 32
  763. const m___ULLACCUM_IBIT__ = 32
  764. const m___ULLACCUM_MAX__ = "0XFFFFFFFFFFFFFFFFP-32ULLK"
  765. const m___ULLACCUM_MIN__ = "0.0ULLK"
  766. const m___ULLFRACT_EPSILON__ = "0x1P-64ULLR"
  767. const m___ULLFRACT_FBIT__ = 64
  768. const m___ULLFRACT_IBIT__ = 0
  769. const m___ULLFRACT_MAX__ = "0XFFFFFFFFFFFFFFFFP-64ULLR"
  770. const m___ULLFRACT_MIN__ = "0.0ULLR"
  771. const m___UQQ_FBIT__ = 8
  772. const m___UQQ_IBIT__ = 0
  773. const m___USACCUM_EPSILON__ = "0x1P-8UHK"
  774. const m___USACCUM_FBIT__ = 8
  775. const m___USACCUM_IBIT__ = 8
  776. const m___USACCUM_MAX__ = "0XFFFFP-8UHK"
  777. const m___USACCUM_MIN__ = "0.0UHK"
  778. const m___USA_FBIT__ = 16
  779. const m___USA_IBIT__ = 16
  780. const m___USE_TIME_BITS64 = 1
  781. const m___USFRACT_EPSILON__ = "0x1P-8UHR"
  782. const m___USFRACT_FBIT__ = 8
  783. const m___USFRACT_IBIT__ = 0
  784. const m___USFRACT_MAX__ = "0XFFP-8UHR"
  785. const m___USFRACT_MIN__ = "0.0UHR"
  786. const m___USQ_FBIT__ = 32
  787. const m___USQ_IBIT__ = 0
  788. const m___UTA_FBIT__ = 64
  789. const m___UTA_IBIT__ = 64
  790. const m___UTQ_FBIT__ = 128
  791. const m___UTQ_IBIT__ = 0
  792. const m___VERSION__ = "12.2.0"
  793. const m___VFP_FP__ = 1
  794. const m___WCHAR_MAX__ = 0xffffffff
  795. const m___WCHAR_MIN__ = 0
  796. const m___WCHAR_WIDTH__ = 32
  797. const m___WINT_MAX__ = 0xffffffff
  798. const m___WINT_MIN__ = 0
  799. const m___WINT_WIDTH__ = 32
  800. const m___arm__ = 1
  801. const m___gnu_linux__ = 1
  802. const m___inline = "inline"
  803. const m___linux = 1
  804. const m___linux__ = 1
  805. const m___restrict = "restrict"
  806. const m___restrict_arr = "restrict"
  807. const m___unix = 1
  808. const m___unix__ = 1
  809. const m_alloca = "__builtin_alloca"
  810. const m_blkcnt64_t = "blkcnt_t"
  811. const m_fsblkcnt64_t = "fsblkcnt_t"
  812. const m_fsfilcnt64_t = "fsfilcnt_t"
  813. const m_ftruncate64 = "ftruncate"
  814. const m_ino64_t = "ino_t"
  815. const m_linux = 1
  816. const m_local = "static"
  817. const m_lockf64 = "lockf"
  818. const m_lseek64 = "lseek"
  819. const m_mkostemp64 = "mkostemp"
  820. const m_mkostemps64 = "mkostemps"
  821. const m_mkstemp64 = "mkstemp"
  822. const m_mkstemps64 = "mkstemps"
  823. const m_off64_t = "off_t"
  824. const m_pread64 = "pread"
  825. const m_pwrite64 = "pwrite"
  826. const m_truncate64 = "truncate"
  827. const m_unix = 1
  828. const m_z_off64_t = "z_off_t"
  829. const m_z_off_t = "off_t"
  830. const m_zmemcmp = "memcmp"
  831. const m_zmemcpy = "memcpy"
  832. type t__builtin_va_list = uintptr
  833. type t__predefined_size_t = uint32
  834. type t__predefined_wchar_t = uint32
  835. type t__predefined_ptrdiff_t = int32
  836. type Twchar_t = uint32
  837. type Tmax_align_t = struct {
  838. F__ccgo_align [0]uint32
  839. F__ll int64
  840. F__ld float64
  841. }
  842. type Tsize_t = uint32
  843. type Tptrdiff_t = int32
  844. type Tz_size_t = uint32
  845. type TByte = uint8
  846. type TuInt = uint32
  847. type TuLong = uint32
  848. type TBytef = uint8
  849. type Tcharf = uint8
  850. type Tintf = int32
  851. type TuIntf = uint32
  852. type TuLongf = uint32
  853. type Tvoidpc = uintptr
  854. type Tvoidpf = uintptr
  855. type Tvoidp = uintptr
  856. type Tz_crc_t = uint32
  857. type Tssize_t = int32
  858. type Tregister_t = int32
  859. type Ttime_t = int64
  860. type Tsuseconds_t = int64
  861. type Tint8_t = int8
  862. type Tint16_t = int16
  863. type Tint32_t = int32
  864. type Tint64_t = int64
  865. type Tu_int64_t = uint64
  866. type Tmode_t = uint32
  867. type Tnlink_t = uint32
  868. type Toff_t = int64
  869. type Tino_t = uint64
  870. type Tdev_t = uint64
  871. type Tblksize_t = int32
  872. type Tblkcnt_t = int64
  873. type Tfsblkcnt_t = uint64
  874. type Tfsfilcnt_t = uint64
  875. type Ttimer_t = uintptr
  876. type Tclockid_t = int32
  877. type Tclock_t = int32
  878. type Tpid_t = int32
  879. type Tid_t = uint32
  880. type Tuid_t = uint32
  881. type Tgid_t = uint32
  882. type Tkey_t = int32
  883. type Tuseconds_t = uint32
  884. type Tpthread_t = uintptr
  885. type Tpthread_once_t = int32
  886. type Tpthread_key_t = uint32
  887. type Tpthread_spinlock_t = int32
  888. type Tpthread_mutexattr_t = struct {
  889. F__attr uint32
  890. }
  891. type Tpthread_condattr_t = struct {
  892. F__attr uint32
  893. }
  894. type Tpthread_barrierattr_t = struct {
  895. F__attr uint32
  896. }
  897. type Tpthread_rwlockattr_t = struct {
  898. F__attr [2]uint32
  899. }
  900. type Tpthread_attr_t = struct {
  901. F__u struct {
  902. F__vi [0][9]int32
  903. F__s [0][9]uint32
  904. F__i [9]int32
  905. }
  906. }
  907. type Tpthread_mutex_t = struct {
  908. F__u struct {
  909. F__vi [0][6]int32
  910. F__p [0][6]uintptr
  911. F__i [6]int32
  912. }
  913. F__ccgo_room int32
  914. }
  915. type Tpthread_cond_t = struct {
  916. F__u struct {
  917. F__vi [0][12]int32
  918. F__p [0][12]uintptr
  919. F__i [12]int32
  920. }
  921. }
  922. type Tpthread_rwlock_t = struct {
  923. F__u struct {
  924. F__vi [0][8]int32
  925. F__p [0][8]uintptr
  926. F__i [8]int32
  927. }
  928. }
  929. type Tpthread_barrier_t = struct {
  930. F__u struct {
  931. F__vi [0][5]int32
  932. F__p [0][5]uintptr
  933. F__i [5]int32
  934. }
  935. }
  936. type Tu_int8_t = uint8
  937. type Tu_int16_t = uint16
  938. type Tu_int32_t = uint32
  939. type Tcaddr_t = uintptr
  940. type Tu_char = uint8
  941. type Tu_short = uint16
  942. type Tushort = uint16
  943. type Tu_int = uint32
  944. type Tuint = uint32
  945. type Tu_long = uint32
  946. type Tulong = uint32
  947. type Tquad_t = int64
  948. type Tu_quad_t = uint64
  949. type Tuint16_t = uint16
  950. type Tuint32_t = uint32
  951. type Tuint64_t = uint64
  952. type Ttimeval = struct {
  953. F__ccgo_align [0]uint32
  954. Ftv_sec Ttime_t
  955. Ftv_usec Tsuseconds_t
  956. }
  957. type Ttimespec = struct {
  958. F__ccgo_align [0]uint32
  959. Ftv_sec Ttime_t
  960. Ftv_nsec int32
  961. F__ccgo12 uint32
  962. }
  963. type Tsigset_t = struct {
  964. F__bits [32]uint32
  965. }
  966. type t__sigset_t = Tsigset_t
  967. type Tfd_mask = uint32
  968. type Tfd_set = struct {
  969. Ffds_bits [32]uint32
  970. }
  971. type Tva_list = uintptr
  972. type Tintptr_t = int32
  973. type Talloc_func = uintptr
  974. type Tfree_func = uintptr
  975. type Tz_stream = struct {
  976. Fnext_in uintptr
  977. Favail_in TuInt
  978. Ftotal_in TuLong
  979. Fnext_out uintptr
  980. Favail_out TuInt
  981. Ftotal_out TuLong
  982. Fmsg uintptr
  983. Fstate uintptr
  984. Fzalloc Talloc_func
  985. Fzfree Tfree_func
  986. Fopaque Tvoidpf
  987. Fdata_type int32
  988. Fadler TuLong
  989. Freserved TuLong
  990. }
  991. type Tz_stream_s = Tz_stream
  992. type Tz_streamp = uintptr
  993. type Tgz_header = struct {
  994. Ftext int32
  995. Ftime TuLong
  996. Fxflags int32
  997. Fos int32
  998. Fextra uintptr
  999. Fextra_len TuInt
  1000. Fextra_max TuInt
  1001. Fname uintptr
  1002. Fname_max TuInt
  1003. Fcomment uintptr
  1004. Fcomm_max TuInt
  1005. Fhcrc int32
  1006. Fdone int32
  1007. }
  1008. type Tgz_header_s = Tgz_header
  1009. type Tgz_headerp = uintptr
  1010. type Tin_func = uintptr
  1011. type Tout_func = uintptr
  1012. type TgzFile = uintptr
  1013. type TgzFile_s = struct {
  1014. F__ccgo_align [0]uint32
  1015. Fhave uint32
  1016. Fnext uintptr
  1017. Fpos Toff_t
  1018. }
  1019. type Tlocale_t = uintptr
  1020. type Tdiv_t = struct {
  1021. Fquot int32
  1022. Frem int32
  1023. }
  1024. type Tldiv_t = struct {
  1025. Fquot int32
  1026. Frem int32
  1027. }
  1028. type Tlldiv_t = struct {
  1029. F__ccgo_align [0]uint32
  1030. Fquot int64
  1031. Frem int64
  1032. }
  1033. type Tuch = uint8
  1034. type Tuchf = uint8
  1035. type Tush = uint16
  1036. type Tushf = uint16
  1037. type Tulg = uint32
  1038. /* Reverse the bytes in a 32-bit value */
  1039. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  1040. /* use NO_DIVIDE if your processor does not do division in hardware --
  1041. try it both ways to see which is faster */
  1042. // C documentation
  1043. //
  1044. // /* ========================================================================= */
  1045. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  1046. var n, sum2, v3 uint32
  1047. var v1, v5 Tz_size_t
  1048. var v2, v6 uintptr
  1049. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  1050. /* split Adler-32 into component sums */
  1051. sum2 = adler >> libc.Int32FromInt32(16) & uint32(0xffff)
  1052. adler &= uint32(0xffff)
  1053. /* in case user likes doing a byte at a time, keep it fast */
  1054. if len1 == uint32(1) {
  1055. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  1056. if adler >= uint32(65521) {
  1057. adler -= uint32(65521)
  1058. }
  1059. sum2 += adler
  1060. if sum2 >= uint32(65521) {
  1061. sum2 -= uint32(65521)
  1062. }
  1063. return adler | sum2<<int32(16)
  1064. }
  1065. /* initial Adler-32 value (deferred check for len == 1 speed) */
  1066. if buf == uintptr(m_Z_NULL) {
  1067. return uint32(1)
  1068. }
  1069. /* in case short lengths are provided, keep it somewhat fast */
  1070. if len1 < uint32(16) {
  1071. for {
  1072. v1 = len1
  1073. len1--
  1074. if !(v1 != 0) {
  1075. break
  1076. }
  1077. v2 = buf
  1078. buf++
  1079. adler += uint32(*(*TBytef)(unsafe.Pointer(v2)))
  1080. sum2 += adler
  1081. }
  1082. if adler >= uint32(65521) {
  1083. adler -= uint32(65521)
  1084. }
  1085. sum2 %= uint32(65521) /* only added so many BASE's */
  1086. return adler | sum2<<int32(16)
  1087. }
  1088. /* do length NMAX blocks -- requires just one modulo operation */
  1089. for len1 >= uint32(m_NMAX) {
  1090. len1 -= uint32(m_NMAX)
  1091. n = libc.Uint32FromInt32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  1092. for {
  1093. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  1094. sum2 += adler
  1095. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1096. sum2 += adler
  1097. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1098. sum2 += adler
  1099. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1100. sum2 += adler
  1101. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1102. sum2 += adler
  1103. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1104. sum2 += adler
  1105. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1106. sum2 += adler
  1107. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1108. sum2 += adler
  1109. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1110. sum2 += adler
  1111. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1112. sum2 += adler
  1113. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1114. sum2 += adler
  1115. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1116. sum2 += adler
  1117. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1118. sum2 += adler
  1119. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1120. sum2 += adler
  1121. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1122. sum2 += adler
  1123. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1124. sum2 += adler /* 16 sums unrolled */
  1125. buf += uintptr(16)
  1126. goto _4
  1127. _4:
  1128. ;
  1129. n--
  1130. v3 = n
  1131. if !(v3 != 0) {
  1132. break
  1133. }
  1134. }
  1135. adler %= uint32(65521)
  1136. sum2 %= uint32(65521)
  1137. }
  1138. /* do remaining bytes (less than NMAX, still just one modulo) */
  1139. if len1 != 0 { /* avoid modulos if none remaining */
  1140. for len1 >= uint32(16) {
  1141. len1 -= uint32(16)
  1142. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  1143. sum2 += adler
  1144. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1145. sum2 += adler
  1146. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1147. sum2 += adler
  1148. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1149. sum2 += adler
  1150. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1151. sum2 += adler
  1152. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1153. sum2 += adler
  1154. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1155. sum2 += adler
  1156. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1157. sum2 += adler
  1158. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1159. sum2 += adler
  1160. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1161. sum2 += adler
  1162. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1163. sum2 += adler
  1164. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1165. sum2 += adler
  1166. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1167. sum2 += adler
  1168. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1169. sum2 += adler
  1170. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1171. sum2 += adler
  1172. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1173. sum2 += adler
  1174. buf += uintptr(16)
  1175. }
  1176. for {
  1177. v5 = len1
  1178. len1--
  1179. if !(v5 != 0) {
  1180. break
  1181. }
  1182. v6 = buf
  1183. buf++
  1184. adler += uint32(*(*TBytef)(unsafe.Pointer(v6)))
  1185. sum2 += adler
  1186. }
  1187. adler %= uint32(65521)
  1188. sum2 %= uint32(65521)
  1189. }
  1190. /* return recombined sums */
  1191. return adler | sum2<<int32(16)
  1192. }
  1193. // C documentation
  1194. //
  1195. // /* ========================================================================= */
  1196. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  1197. return Xadler32_z(tls, adler, buf, len1)
  1198. }
  1199. // C documentation
  1200. //
  1201. // /* ========================================================================= */
  1202. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1203. var rem, sum1, sum2 uint32
  1204. _, _, _ = rem, sum1, sum2
  1205. /* for negative len, return invalid adler32 as a clue for debugging */
  1206. if len2 < 0 {
  1207. return uint32(0xffffffff)
  1208. }
  1209. /* the derivation of this formula is left as an exercise for the reader */
  1210. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  1211. rem = libc.Uint32FromInt64(len2)
  1212. sum1 = adler1 & uint32(0xffff)
  1213. sum2 = rem * sum1
  1214. sum2 %= uint32(65521)
  1215. sum1 += adler2&uint32(0xffff) + uint32(65521) - uint32(1)
  1216. sum2 += adler1>>libc.Int32FromInt32(16)&uint32(0xffff) + adler2>>libc.Int32FromInt32(16)&uint32(0xffff) + uint32(65521) - rem
  1217. if sum1 >= uint32(65521) {
  1218. sum1 -= uint32(65521)
  1219. }
  1220. if sum1 >= uint32(65521) {
  1221. sum1 -= uint32(65521)
  1222. }
  1223. if sum2 >= libc.Uint32FromUint32(65521)<<libc.Int32FromInt32(1) {
  1224. sum2 -= libc.Uint32FromUint32(65521) << libc.Int32FromInt32(1)
  1225. }
  1226. if sum2 >= uint32(65521) {
  1227. sum2 -= uint32(65521)
  1228. }
  1229. return sum1 | sum2<<int32(16)
  1230. }
  1231. // C documentation
  1232. //
  1233. // /* ========================================================================= */
  1234. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1235. return _adler32_combine_(tls, adler1, adler2, len2)
  1236. }
  1237. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1238. return _adler32_combine_(tls, adler1, adler2, len2)
  1239. }
  1240. const m_N = 5
  1241. const m_POLY = 3988292384
  1242. /* Reverse the bytes in a 32-bit value */
  1243. /*
  1244. A CRC of a message is computed on N braids of words in the message, where
  1245. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  1246. running sparse CRCs are calculated respectively on each braid, at these
  1247. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1248. This is done starting at a word boundary, and continues until as many blocks
  1249. of N * W bytes as are available have been processed. The results are combined
  1250. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1251. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1252. more #if blocks, extending the patterns apparent in the code. In addition,
  1253. crc32.h would need to be regenerated, if the maximum N value is increased.
  1254. N and W are chosen empirically by benchmarking the execution time on a given
  1255. processor. The choices for N and W below were based on testing on Intel Kaby
  1256. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1257. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1258. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1259. They were all tested with either gcc or clang, all using the -O3 optimization
  1260. level. Your mileage may vary.
  1261. */
  1262. /* Define N */
  1263. /*
  1264. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1265. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1266. that bytes are eight bits.
  1267. */
  1268. // C documentation
  1269. //
  1270. // /*
  1271. // Define W and the associated z_word_t type. If W is not defined, then a
  1272. // braided calculation is not used, and the associated tables and code are not
  1273. // compiled.
  1274. // */
  1275. type Tz_word_t = uint32
  1276. /* If available, use the ARM processor CRC32 instruction. */
  1277. // C documentation
  1278. //
  1279. // /*
  1280. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1281. // self-respecting compiler will optimize this to a single machine byte-swap
  1282. // instruction, if one is available. This assumes that word_t is either 32 bits
  1283. // or 64 bits.
  1284. // */
  1285. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1286. return word&uint32(0xff000000)>>int32(24) | word&uint32(0xff0000)>>int32(8) | word&uint32(0xff00)<<int32(8) | word&uint32(0xff)<<int32(24)
  1287. }
  1288. var _crc_table = [256]Tz_crc_t{
  1289. 1: uint32(0x77073096),
  1290. 2: uint32(0xee0e612c),
  1291. 3: uint32(0x990951ba),
  1292. 4: uint32(0x076dc419),
  1293. 5: uint32(0x706af48f),
  1294. 6: uint32(0xe963a535),
  1295. 7: uint32(0x9e6495a3),
  1296. 8: uint32(0x0edb8832),
  1297. 9: uint32(0x79dcb8a4),
  1298. 10: uint32(0xe0d5e91e),
  1299. 11: uint32(0x97d2d988),
  1300. 12: uint32(0x09b64c2b),
  1301. 13: uint32(0x7eb17cbd),
  1302. 14: uint32(0xe7b82d07),
  1303. 15: uint32(0x90bf1d91),
  1304. 16: uint32(0x1db71064),
  1305. 17: uint32(0x6ab020f2),
  1306. 18: uint32(0xf3b97148),
  1307. 19: uint32(0x84be41de),
  1308. 20: uint32(0x1adad47d),
  1309. 21: uint32(0x6ddde4eb),
  1310. 22: uint32(0xf4d4b551),
  1311. 23: uint32(0x83d385c7),
  1312. 24: uint32(0x136c9856),
  1313. 25: uint32(0x646ba8c0),
  1314. 26: uint32(0xfd62f97a),
  1315. 27: uint32(0x8a65c9ec),
  1316. 28: uint32(0x14015c4f),
  1317. 29: uint32(0x63066cd9),
  1318. 30: uint32(0xfa0f3d63),
  1319. 31: uint32(0x8d080df5),
  1320. 32: uint32(0x3b6e20c8),
  1321. 33: uint32(0x4c69105e),
  1322. 34: uint32(0xd56041e4),
  1323. 35: uint32(0xa2677172),
  1324. 36: uint32(0x3c03e4d1),
  1325. 37: uint32(0x4b04d447),
  1326. 38: uint32(0xd20d85fd),
  1327. 39: uint32(0xa50ab56b),
  1328. 40: uint32(0x35b5a8fa),
  1329. 41: uint32(0x42b2986c),
  1330. 42: uint32(0xdbbbc9d6),
  1331. 43: uint32(0xacbcf940),
  1332. 44: uint32(0x32d86ce3),
  1333. 45: uint32(0x45df5c75),
  1334. 46: uint32(0xdcd60dcf),
  1335. 47: uint32(0xabd13d59),
  1336. 48: uint32(0x26d930ac),
  1337. 49: uint32(0x51de003a),
  1338. 50: uint32(0xc8d75180),
  1339. 51: uint32(0xbfd06116),
  1340. 52: uint32(0x21b4f4b5),
  1341. 53: uint32(0x56b3c423),
  1342. 54: uint32(0xcfba9599),
  1343. 55: uint32(0xb8bda50f),
  1344. 56: uint32(0x2802b89e),
  1345. 57: uint32(0x5f058808),
  1346. 58: uint32(0xc60cd9b2),
  1347. 59: uint32(0xb10be924),
  1348. 60: uint32(0x2f6f7c87),
  1349. 61: uint32(0x58684c11),
  1350. 62: uint32(0xc1611dab),
  1351. 63: uint32(0xb6662d3d),
  1352. 64: uint32(0x76dc4190),
  1353. 65: uint32(0x01db7106),
  1354. 66: uint32(0x98d220bc),
  1355. 67: uint32(0xefd5102a),
  1356. 68: uint32(0x71b18589),
  1357. 69: uint32(0x06b6b51f),
  1358. 70: uint32(0x9fbfe4a5),
  1359. 71: uint32(0xe8b8d433),
  1360. 72: uint32(0x7807c9a2),
  1361. 73: uint32(0x0f00f934),
  1362. 74: uint32(0x9609a88e),
  1363. 75: uint32(0xe10e9818),
  1364. 76: uint32(0x7f6a0dbb),
  1365. 77: uint32(0x086d3d2d),
  1366. 78: uint32(0x91646c97),
  1367. 79: uint32(0xe6635c01),
  1368. 80: uint32(0x6b6b51f4),
  1369. 81: uint32(0x1c6c6162),
  1370. 82: uint32(0x856530d8),
  1371. 83: uint32(0xf262004e),
  1372. 84: uint32(0x6c0695ed),
  1373. 85: uint32(0x1b01a57b),
  1374. 86: uint32(0x8208f4c1),
  1375. 87: uint32(0xf50fc457),
  1376. 88: uint32(0x65b0d9c6),
  1377. 89: uint32(0x12b7e950),
  1378. 90: uint32(0x8bbeb8ea),
  1379. 91: uint32(0xfcb9887c),
  1380. 92: uint32(0x62dd1ddf),
  1381. 93: uint32(0x15da2d49),
  1382. 94: uint32(0x8cd37cf3),
  1383. 95: uint32(0xfbd44c65),
  1384. 96: uint32(0x4db26158),
  1385. 97: uint32(0x3ab551ce),
  1386. 98: uint32(0xa3bc0074),
  1387. 99: uint32(0xd4bb30e2),
  1388. 100: uint32(0x4adfa541),
  1389. 101: uint32(0x3dd895d7),
  1390. 102: uint32(0xa4d1c46d),
  1391. 103: uint32(0xd3d6f4fb),
  1392. 104: uint32(0x4369e96a),
  1393. 105: uint32(0x346ed9fc),
  1394. 106: uint32(0xad678846),
  1395. 107: uint32(0xda60b8d0),
  1396. 108: uint32(0x44042d73),
  1397. 109: uint32(0x33031de5),
  1398. 110: uint32(0xaa0a4c5f),
  1399. 111: uint32(0xdd0d7cc9),
  1400. 112: uint32(0x5005713c),
  1401. 113: uint32(0x270241aa),
  1402. 114: uint32(0xbe0b1010),
  1403. 115: uint32(0xc90c2086),
  1404. 116: uint32(0x5768b525),
  1405. 117: uint32(0x206f85b3),
  1406. 118: uint32(0xb966d409),
  1407. 119: uint32(0xce61e49f),
  1408. 120: uint32(0x5edef90e),
  1409. 121: uint32(0x29d9c998),
  1410. 122: uint32(0xb0d09822),
  1411. 123: uint32(0xc7d7a8b4),
  1412. 124: uint32(0x59b33d17),
  1413. 125: uint32(0x2eb40d81),
  1414. 126: uint32(0xb7bd5c3b),
  1415. 127: uint32(0xc0ba6cad),
  1416. 128: uint32(0xedb88320),
  1417. 129: uint32(0x9abfb3b6),
  1418. 130: uint32(0x03b6e20c),
  1419. 131: uint32(0x74b1d29a),
  1420. 132: uint32(0xead54739),
  1421. 133: uint32(0x9dd277af),
  1422. 134: uint32(0x04db2615),
  1423. 135: uint32(0x73dc1683),
  1424. 136: uint32(0xe3630b12),
  1425. 137: uint32(0x94643b84),
  1426. 138: uint32(0x0d6d6a3e),
  1427. 139: uint32(0x7a6a5aa8),
  1428. 140: uint32(0xe40ecf0b),
  1429. 141: uint32(0x9309ff9d),
  1430. 142: uint32(0x0a00ae27),
  1431. 143: uint32(0x7d079eb1),
  1432. 144: uint32(0xf00f9344),
  1433. 145: uint32(0x8708a3d2),
  1434. 146: uint32(0x1e01f268),
  1435. 147: uint32(0x6906c2fe),
  1436. 148: uint32(0xf762575d),
  1437. 149: uint32(0x806567cb),
  1438. 150: uint32(0x196c3671),
  1439. 151: uint32(0x6e6b06e7),
  1440. 152: uint32(0xfed41b76),
  1441. 153: uint32(0x89d32be0),
  1442. 154: uint32(0x10da7a5a),
  1443. 155: uint32(0x67dd4acc),
  1444. 156: uint32(0xf9b9df6f),
  1445. 157: uint32(0x8ebeeff9),
  1446. 158: uint32(0x17b7be43),
  1447. 159: uint32(0x60b08ed5),
  1448. 160: uint32(0xd6d6a3e8),
  1449. 161: uint32(0xa1d1937e),
  1450. 162: uint32(0x38d8c2c4),
  1451. 163: uint32(0x4fdff252),
  1452. 164: uint32(0xd1bb67f1),
  1453. 165: uint32(0xa6bc5767),
  1454. 166: uint32(0x3fb506dd),
  1455. 167: uint32(0x48b2364b),
  1456. 168: uint32(0xd80d2bda),
  1457. 169: uint32(0xaf0a1b4c),
  1458. 170: uint32(0x36034af6),
  1459. 171: uint32(0x41047a60),
  1460. 172: uint32(0xdf60efc3),
  1461. 173: uint32(0xa867df55),
  1462. 174: uint32(0x316e8eef),
  1463. 175: uint32(0x4669be79),
  1464. 176: uint32(0xcb61b38c),
  1465. 177: uint32(0xbc66831a),
  1466. 178: uint32(0x256fd2a0),
  1467. 179: uint32(0x5268e236),
  1468. 180: uint32(0xcc0c7795),
  1469. 181: uint32(0xbb0b4703),
  1470. 182: uint32(0x220216b9),
  1471. 183: uint32(0x5505262f),
  1472. 184: uint32(0xc5ba3bbe),
  1473. 185: uint32(0xb2bd0b28),
  1474. 186: uint32(0x2bb45a92),
  1475. 187: uint32(0x5cb36a04),
  1476. 188: uint32(0xc2d7ffa7),
  1477. 189: uint32(0xb5d0cf31),
  1478. 190: uint32(0x2cd99e8b),
  1479. 191: uint32(0x5bdeae1d),
  1480. 192: uint32(0x9b64c2b0),
  1481. 193: uint32(0xec63f226),
  1482. 194: uint32(0x756aa39c),
  1483. 195: uint32(0x026d930a),
  1484. 196: uint32(0x9c0906a9),
  1485. 197: uint32(0xeb0e363f),
  1486. 198: uint32(0x72076785),
  1487. 199: uint32(0x05005713),
  1488. 200: uint32(0x95bf4a82),
  1489. 201: uint32(0xe2b87a14),
  1490. 202: uint32(0x7bb12bae),
  1491. 203: uint32(0x0cb61b38),
  1492. 204: uint32(0x92d28e9b),
  1493. 205: uint32(0xe5d5be0d),
  1494. 206: uint32(0x7cdcefb7),
  1495. 207: uint32(0x0bdbdf21),
  1496. 208: uint32(0x86d3d2d4),
  1497. 209: uint32(0xf1d4e242),
  1498. 210: uint32(0x68ddb3f8),
  1499. 211: uint32(0x1fda836e),
  1500. 212: uint32(0x81be16cd),
  1501. 213: uint32(0xf6b9265b),
  1502. 214: uint32(0x6fb077e1),
  1503. 215: uint32(0x18b74777),
  1504. 216: uint32(0x88085ae6),
  1505. 217: uint32(0xff0f6a70),
  1506. 218: uint32(0x66063bca),
  1507. 219: uint32(0x11010b5c),
  1508. 220: uint32(0x8f659eff),
  1509. 221: uint32(0xf862ae69),
  1510. 222: uint32(0x616bffd3),
  1511. 223: uint32(0x166ccf45),
  1512. 224: uint32(0xa00ae278),
  1513. 225: uint32(0xd70dd2ee),
  1514. 226: uint32(0x4e048354),
  1515. 227: uint32(0x3903b3c2),
  1516. 228: uint32(0xa7672661),
  1517. 229: uint32(0xd06016f7),
  1518. 230: uint32(0x4969474d),
  1519. 231: uint32(0x3e6e77db),
  1520. 232: uint32(0xaed16a4a),
  1521. 233: uint32(0xd9d65adc),
  1522. 234: uint32(0x40df0b66),
  1523. 235: uint32(0x37d83bf0),
  1524. 236: uint32(0xa9bcae53),
  1525. 237: uint32(0xdebb9ec5),
  1526. 238: uint32(0x47b2cf7f),
  1527. 239: uint32(0x30b5ffe9),
  1528. 240: uint32(0xbdbdf21c),
  1529. 241: uint32(0xcabac28a),
  1530. 242: uint32(0x53b39330),
  1531. 243: uint32(0x24b4a3a6),
  1532. 244: uint32(0xbad03605),
  1533. 245: uint32(0xcdd70693),
  1534. 246: uint32(0x54de5729),
  1535. 247: uint32(0x23d967bf),
  1536. 248: uint32(0xb3667a2e),
  1537. 249: uint32(0xc4614ab8),
  1538. 250: uint32(0x5d681b02),
  1539. 251: uint32(0x2a6f2b94),
  1540. 252: uint32(0xb40bbe37),
  1541. 253: uint32(0xc30c8ea1),
  1542. 254: uint32(0x5a05df1b),
  1543. 255: uint32(0x2d02ef8d),
  1544. }
  1545. var _crc_big_table = [256]Tz_word_t{
  1546. 1: uint32(0x96300777),
  1547. 2: uint32(0x2c610eee),
  1548. 3: uint32(0xba510999),
  1549. 4: uint32(0x19c46d07),
  1550. 5: uint32(0x8ff46a70),
  1551. 6: uint32(0x35a563e9),
  1552. 7: uint32(0xa395649e),
  1553. 8: uint32(0x3288db0e),
  1554. 9: uint32(0xa4b8dc79),
  1555. 10: uint32(0x1ee9d5e0),
  1556. 11: uint32(0x88d9d297),
  1557. 12: uint32(0x2b4cb609),
  1558. 13: uint32(0xbd7cb17e),
  1559. 14: uint32(0x072db8e7),
  1560. 15: uint32(0x911dbf90),
  1561. 16: uint32(0x6410b71d),
  1562. 17: uint32(0xf220b06a),
  1563. 18: uint32(0x4871b9f3),
  1564. 19: uint32(0xde41be84),
  1565. 20: uint32(0x7dd4da1a),
  1566. 21: uint32(0xebe4dd6d),
  1567. 22: uint32(0x51b5d4f4),
  1568. 23: uint32(0xc785d383),
  1569. 24: uint32(0x56986c13),
  1570. 25: uint32(0xc0a86b64),
  1571. 26: uint32(0x7af962fd),
  1572. 27: uint32(0xecc9658a),
  1573. 28: uint32(0x4f5c0114),
  1574. 29: uint32(0xd96c0663),
  1575. 30: uint32(0x633d0ffa),
  1576. 31: uint32(0xf50d088d),
  1577. 32: uint32(0xc8206e3b),
  1578. 33: uint32(0x5e10694c),
  1579. 34: uint32(0xe44160d5),
  1580. 35: uint32(0x727167a2),
  1581. 36: uint32(0xd1e4033c),
  1582. 37: uint32(0x47d4044b),
  1583. 38: uint32(0xfd850dd2),
  1584. 39: uint32(0x6bb50aa5),
  1585. 40: uint32(0xfaa8b535),
  1586. 41: uint32(0x6c98b242),
  1587. 42: uint32(0xd6c9bbdb),
  1588. 43: uint32(0x40f9bcac),
  1589. 44: uint32(0xe36cd832),
  1590. 45: uint32(0x755cdf45),
  1591. 46: uint32(0xcf0dd6dc),
  1592. 47: uint32(0x593dd1ab),
  1593. 48: uint32(0xac30d926),
  1594. 49: uint32(0x3a00de51),
  1595. 50: uint32(0x8051d7c8),
  1596. 51: uint32(0x1661d0bf),
  1597. 52: uint32(0xb5f4b421),
  1598. 53: uint32(0x23c4b356),
  1599. 54: uint32(0x9995bacf),
  1600. 55: uint32(0x0fa5bdb8),
  1601. 56: uint32(0x9eb80228),
  1602. 57: uint32(0x0888055f),
  1603. 58: uint32(0xb2d90cc6),
  1604. 59: uint32(0x24e90bb1),
  1605. 60: uint32(0x877c6f2f),
  1606. 61: uint32(0x114c6858),
  1607. 62: uint32(0xab1d61c1),
  1608. 63: uint32(0x3d2d66b6),
  1609. 64: uint32(0x9041dc76),
  1610. 65: uint32(0x0671db01),
  1611. 66: uint32(0xbc20d298),
  1612. 67: uint32(0x2a10d5ef),
  1613. 68: uint32(0x8985b171),
  1614. 69: uint32(0x1fb5b606),
  1615. 70: uint32(0xa5e4bf9f),
  1616. 71: uint32(0x33d4b8e8),
  1617. 72: uint32(0xa2c90778),
  1618. 73: uint32(0x34f9000f),
  1619. 74: uint32(0x8ea80996),
  1620. 75: uint32(0x18980ee1),
  1621. 76: uint32(0xbb0d6a7f),
  1622. 77: uint32(0x2d3d6d08),
  1623. 78: uint32(0x976c6491),
  1624. 79: uint32(0x015c63e6),
  1625. 80: uint32(0xf4516b6b),
  1626. 81: uint32(0x62616c1c),
  1627. 82: uint32(0xd8306585),
  1628. 83: uint32(0x4e0062f2),
  1629. 84: uint32(0xed95066c),
  1630. 85: uint32(0x7ba5011b),
  1631. 86: uint32(0xc1f40882),
  1632. 87: uint32(0x57c40ff5),
  1633. 88: uint32(0xc6d9b065),
  1634. 89: uint32(0x50e9b712),
  1635. 90: uint32(0xeab8be8b),
  1636. 91: uint32(0x7c88b9fc),
  1637. 92: uint32(0xdf1ddd62),
  1638. 93: uint32(0x492dda15),
  1639. 94: uint32(0xf37cd38c),
  1640. 95: uint32(0x654cd4fb),
  1641. 96: uint32(0x5861b24d),
  1642. 97: uint32(0xce51b53a),
  1643. 98: uint32(0x7400bca3),
  1644. 99: uint32(0xe230bbd4),
  1645. 100: uint32(0x41a5df4a),
  1646. 101: uint32(0xd795d83d),
  1647. 102: uint32(0x6dc4d1a4),
  1648. 103: uint32(0xfbf4d6d3),
  1649. 104: uint32(0x6ae96943),
  1650. 105: uint32(0xfcd96e34),
  1651. 106: uint32(0x468867ad),
  1652. 107: uint32(0xd0b860da),
  1653. 108: uint32(0x732d0444),
  1654. 109: uint32(0xe51d0333),
  1655. 110: uint32(0x5f4c0aaa),
  1656. 111: uint32(0xc97c0ddd),
  1657. 112: uint32(0x3c710550),
  1658. 113: uint32(0xaa410227),
  1659. 114: uint32(0x10100bbe),
  1660. 115: uint32(0x86200cc9),
  1661. 116: uint32(0x25b56857),
  1662. 117: uint32(0xb3856f20),
  1663. 118: uint32(0x09d466b9),
  1664. 119: uint32(0x9fe461ce),
  1665. 120: uint32(0x0ef9de5e),
  1666. 121: uint32(0x98c9d929),
  1667. 122: uint32(0x2298d0b0),
  1668. 123: uint32(0xb4a8d7c7),
  1669. 124: uint32(0x173db359),
  1670. 125: uint32(0x810db42e),
  1671. 126: uint32(0x3b5cbdb7),
  1672. 127: uint32(0xad6cbac0),
  1673. 128: uint32(0x2083b8ed),
  1674. 129: uint32(0xb6b3bf9a),
  1675. 130: uint32(0x0ce2b603),
  1676. 131: uint32(0x9ad2b174),
  1677. 132: uint32(0x3947d5ea),
  1678. 133: uint32(0xaf77d29d),
  1679. 134: uint32(0x1526db04),
  1680. 135: uint32(0x8316dc73),
  1681. 136: uint32(0x120b63e3),
  1682. 137: uint32(0x843b6494),
  1683. 138: uint32(0x3e6a6d0d),
  1684. 139: uint32(0xa85a6a7a),
  1685. 140: uint32(0x0bcf0ee4),
  1686. 141: uint32(0x9dff0993),
  1687. 142: uint32(0x27ae000a),
  1688. 143: uint32(0xb19e077d),
  1689. 144: uint32(0x44930ff0),
  1690. 145: uint32(0xd2a30887),
  1691. 146: uint32(0x68f2011e),
  1692. 147: uint32(0xfec20669),
  1693. 148: uint32(0x5d5762f7),
  1694. 149: uint32(0xcb676580),
  1695. 150: uint32(0x71366c19),
  1696. 151: uint32(0xe7066b6e),
  1697. 152: uint32(0x761bd4fe),
  1698. 153: uint32(0xe02bd389),
  1699. 154: uint32(0x5a7ada10),
  1700. 155: uint32(0xcc4add67),
  1701. 156: uint32(0x6fdfb9f9),
  1702. 157: uint32(0xf9efbe8e),
  1703. 158: uint32(0x43beb717),
  1704. 159: uint32(0xd58eb060),
  1705. 160: uint32(0xe8a3d6d6),
  1706. 161: uint32(0x7e93d1a1),
  1707. 162: uint32(0xc4c2d838),
  1708. 163: uint32(0x52f2df4f),
  1709. 164: uint32(0xf167bbd1),
  1710. 165: uint32(0x6757bca6),
  1711. 166: uint32(0xdd06b53f),
  1712. 167: uint32(0x4b36b248),
  1713. 168: uint32(0xda2b0dd8),
  1714. 169: uint32(0x4c1b0aaf),
  1715. 170: uint32(0xf64a0336),
  1716. 171: uint32(0x607a0441),
  1717. 172: uint32(0xc3ef60df),
  1718. 173: uint32(0x55df67a8),
  1719. 174: uint32(0xef8e6e31),
  1720. 175: uint32(0x79be6946),
  1721. 176: uint32(0x8cb361cb),
  1722. 177: uint32(0x1a8366bc),
  1723. 178: uint32(0xa0d26f25),
  1724. 179: uint32(0x36e26852),
  1725. 180: uint32(0x95770ccc),
  1726. 181: uint32(0x03470bbb),
  1727. 182: uint32(0xb9160222),
  1728. 183: uint32(0x2f260555),
  1729. 184: uint32(0xbe3bbac5),
  1730. 185: uint32(0x280bbdb2),
  1731. 186: uint32(0x925ab42b),
  1732. 187: uint32(0x046ab35c),
  1733. 188: uint32(0xa7ffd7c2),
  1734. 189: uint32(0x31cfd0b5),
  1735. 190: uint32(0x8b9ed92c),
  1736. 191: uint32(0x1daede5b),
  1737. 192: uint32(0xb0c2649b),
  1738. 193: uint32(0x26f263ec),
  1739. 194: uint32(0x9ca36a75),
  1740. 195: uint32(0x0a936d02),
  1741. 196: uint32(0xa906099c),
  1742. 197: uint32(0x3f360eeb),
  1743. 198: uint32(0x85670772),
  1744. 199: uint32(0x13570005),
  1745. 200: uint32(0x824abf95),
  1746. 201: uint32(0x147ab8e2),
  1747. 202: uint32(0xae2bb17b),
  1748. 203: uint32(0x381bb60c),
  1749. 204: uint32(0x9b8ed292),
  1750. 205: uint32(0x0dbed5e5),
  1751. 206: uint32(0xb7efdc7c),
  1752. 207: uint32(0x21dfdb0b),
  1753. 208: uint32(0xd4d2d386),
  1754. 209: uint32(0x42e2d4f1),
  1755. 210: uint32(0xf8b3dd68),
  1756. 211: uint32(0x6e83da1f),
  1757. 212: uint32(0xcd16be81),
  1758. 213: uint32(0x5b26b9f6),
  1759. 214: uint32(0xe177b06f),
  1760. 215: uint32(0x7747b718),
  1761. 216: uint32(0xe65a0888),
  1762. 217: uint32(0x706a0fff),
  1763. 218: uint32(0xca3b0666),
  1764. 219: uint32(0x5c0b0111),
  1765. 220: uint32(0xff9e658f),
  1766. 221: uint32(0x69ae62f8),
  1767. 222: uint32(0xd3ff6b61),
  1768. 223: uint32(0x45cf6c16),
  1769. 224: uint32(0x78e20aa0),
  1770. 225: uint32(0xeed20dd7),
  1771. 226: uint32(0x5483044e),
  1772. 227: uint32(0xc2b30339),
  1773. 228: uint32(0x612667a7),
  1774. 229: uint32(0xf71660d0),
  1775. 230: uint32(0x4d476949),
  1776. 231: uint32(0xdb776e3e),
  1777. 232: uint32(0x4a6ad1ae),
  1778. 233: uint32(0xdc5ad6d9),
  1779. 234: uint32(0x660bdf40),
  1780. 235: uint32(0xf03bd837),
  1781. 236: uint32(0x53aebca9),
  1782. 237: uint32(0xc59ebbde),
  1783. 238: uint32(0x7fcfb247),
  1784. 239: uint32(0xe9ffb530),
  1785. 240: uint32(0x1cf2bdbd),
  1786. 241: uint32(0x8ac2baca),
  1787. 242: uint32(0x3093b353),
  1788. 243: uint32(0xa6a3b424),
  1789. 244: uint32(0x0536d0ba),
  1790. 245: uint32(0x9306d7cd),
  1791. 246: uint32(0x2957de54),
  1792. 247: uint32(0xbf67d923),
  1793. 248: uint32(0x2e7a66b3),
  1794. 249: uint32(0xb84a61c4),
  1795. 250: uint32(0x021b685d),
  1796. 251: uint32(0x942b6f2a),
  1797. 252: uint32(0x37be0bb4),
  1798. 253: uint32(0xa18e0cc3),
  1799. 254: uint32(0x1bdf055a),
  1800. 255: uint32(0x8def022d),
  1801. }
  1802. var _crc_braid_table = [4][256]Tz_crc_t{
  1803. 0: {
  1804. 1: uint32(0x65673b46),
  1805. 2: uint32(0xcace768c),
  1806. 3: uint32(0xafa94dca),
  1807. 4: uint32(0x4eedeb59),
  1808. 5: uint32(0x2b8ad01f),
  1809. 6: uint32(0x84239dd5),
  1810. 7: uint32(0xe144a693),
  1811. 8: uint32(0x9ddbd6b2),
  1812. 9: uint32(0xf8bcedf4),
  1813. 10: uint32(0x5715a03e),
  1814. 11: uint32(0x32729b78),
  1815. 12: uint32(0xd3363deb),
  1816. 13: uint32(0xb65106ad),
  1817. 14: uint32(0x19f84b67),
  1818. 15: uint32(0x7c9f7021),
  1819. 16: uint32(0xe0c6ab25),
  1820. 17: uint32(0x85a19063),
  1821. 18: uint32(0x2a08dda9),
  1822. 19: uint32(0x4f6fe6ef),
  1823. 20: uint32(0xae2b407c),
  1824. 21: uint32(0xcb4c7b3a),
  1825. 22: uint32(0x64e536f0),
  1826. 23: uint32(0x01820db6),
  1827. 24: uint32(0x7d1d7d97),
  1828. 25: uint32(0x187a46d1),
  1829. 26: uint32(0xb7d30b1b),
  1830. 27: uint32(0xd2b4305d),
  1831. 28: uint32(0x33f096ce),
  1832. 29: uint32(0x5697ad88),
  1833. 30: uint32(0xf93ee042),
  1834. 31: uint32(0x9c59db04),
  1835. 32: uint32(0x1afc500b),
  1836. 33: uint32(0x7f9b6b4d),
  1837. 34: uint32(0xd0322687),
  1838. 35: uint32(0xb5551dc1),
  1839. 36: uint32(0x5411bb52),
  1840. 37: uint32(0x31768014),
  1841. 38: uint32(0x9edfcdde),
  1842. 39: uint32(0xfbb8f698),
  1843. 40: uint32(0x872786b9),
  1844. 41: uint32(0xe240bdff),
  1845. 42: uint32(0x4de9f035),
  1846. 43: uint32(0x288ecb73),
  1847. 44: uint32(0xc9ca6de0),
  1848. 45: uint32(0xacad56a6),
  1849. 46: uint32(0x03041b6c),
  1850. 47: uint32(0x6663202a),
  1851. 48: uint32(0xfa3afb2e),
  1852. 49: uint32(0x9f5dc068),
  1853. 50: uint32(0x30f48da2),
  1854. 51: uint32(0x5593b6e4),
  1855. 52: uint32(0xb4d71077),
  1856. 53: uint32(0xd1b02b31),
  1857. 54: uint32(0x7e1966fb),
  1858. 55: uint32(0x1b7e5dbd),
  1859. 56: uint32(0x67e12d9c),
  1860. 57: uint32(0x028616da),
  1861. 58: uint32(0xad2f5b10),
  1862. 59: uint32(0xc8486056),
  1863. 60: uint32(0x290cc6c5),
  1864. 61: uint32(0x4c6bfd83),
  1865. 62: uint32(0xe3c2b049),
  1866. 63: uint32(0x86a58b0f),
  1867. 64: uint32(0x35f8a016),
  1868. 65: uint32(0x509f9b50),
  1869. 66: uint32(0xff36d69a),
  1870. 67: uint32(0x9a51eddc),
  1871. 68: uint32(0x7b154b4f),
  1872. 69: uint32(0x1e727009),
  1873. 70: uint32(0xb1db3dc3),
  1874. 71: uint32(0xd4bc0685),
  1875. 72: uint32(0xa82376a4),
  1876. 73: uint32(0xcd444de2),
  1877. 74: uint32(0x62ed0028),
  1878. 75: uint32(0x078a3b6e),
  1879. 76: uint32(0xe6ce9dfd),
  1880. 77: uint32(0x83a9a6bb),
  1881. 78: uint32(0x2c00eb71),
  1882. 79: uint32(0x4967d037),
  1883. 80: uint32(0xd53e0b33),
  1884. 81: uint32(0xb0593075),
  1885. 82: uint32(0x1ff07dbf),
  1886. 83: uint32(0x7a9746f9),
  1887. 84: uint32(0x9bd3e06a),
  1888. 85: uint32(0xfeb4db2c),
  1889. 86: uint32(0x511d96e6),
  1890. 87: uint32(0x347aada0),
  1891. 88: uint32(0x48e5dd81),
  1892. 89: uint32(0x2d82e6c7),
  1893. 90: uint32(0x822bab0d),
  1894. 91: uint32(0xe74c904b),
  1895. 92: uint32(0x060836d8),
  1896. 93: uint32(0x636f0d9e),
  1897. 94: uint32(0xccc64054),
  1898. 95: uint32(0xa9a17b12),
  1899. 96: uint32(0x2f04f01d),
  1900. 97: uint32(0x4a63cb5b),
  1901. 98: uint32(0xe5ca8691),
  1902. 99: uint32(0x80adbdd7),
  1903. 100: uint32(0x61e91b44),
  1904. 101: uint32(0x048e2002),
  1905. 102: uint32(0xab276dc8),
  1906. 103: uint32(0xce40568e),
  1907. 104: uint32(0xb2df26af),
  1908. 105: uint32(0xd7b81de9),
  1909. 106: uint32(0x78115023),
  1910. 107: uint32(0x1d766b65),
  1911. 108: uint32(0xfc32cdf6),
  1912. 109: uint32(0x9955f6b0),
  1913. 110: uint32(0x36fcbb7a),
  1914. 111: uint32(0x539b803c),
  1915. 112: uint32(0xcfc25b38),
  1916. 113: uint32(0xaaa5607e),
  1917. 114: uint32(0x050c2db4),
  1918. 115: uint32(0x606b16f2),
  1919. 116: uint32(0x812fb061),
  1920. 117: uint32(0xe4488b27),
  1921. 118: uint32(0x4be1c6ed),
  1922. 119: uint32(0x2e86fdab),
  1923. 120: uint32(0x52198d8a),
  1924. 121: uint32(0x377eb6cc),
  1925. 122: uint32(0x98d7fb06),
  1926. 123: uint32(0xfdb0c040),
  1927. 124: uint32(0x1cf466d3),
  1928. 125: uint32(0x79935d95),
  1929. 126: uint32(0xd63a105f),
  1930. 127: uint32(0xb35d2b19),
  1931. 128: uint32(0x6bf1402c),
  1932. 129: uint32(0x0e967b6a),
  1933. 130: uint32(0xa13f36a0),
  1934. 131: uint32(0xc4580de6),
  1935. 132: uint32(0x251cab75),
  1936. 133: uint32(0x407b9033),
  1937. 134: uint32(0xefd2ddf9),
  1938. 135: uint32(0x8ab5e6bf),
  1939. 136: uint32(0xf62a969e),
  1940. 137: uint32(0x934dadd8),
  1941. 138: uint32(0x3ce4e012),
  1942. 139: uint32(0x5983db54),
  1943. 140: uint32(0xb8c77dc7),
  1944. 141: uint32(0xdda04681),
  1945. 142: uint32(0x72090b4b),
  1946. 143: uint32(0x176e300d),
  1947. 144: uint32(0x8b37eb09),
  1948. 145: uint32(0xee50d04f),
  1949. 146: uint32(0x41f99d85),
  1950. 147: uint32(0x249ea6c3),
  1951. 148: uint32(0xc5da0050),
  1952. 149: uint32(0xa0bd3b16),
  1953. 150: uint32(0x0f1476dc),
  1954. 151: uint32(0x6a734d9a),
  1955. 152: uint32(0x16ec3dbb),
  1956. 153: uint32(0x738b06fd),
  1957. 154: uint32(0xdc224b37),
  1958. 155: uint32(0xb9457071),
  1959. 156: uint32(0x5801d6e2),
  1960. 157: uint32(0x3d66eda4),
  1961. 158: uint32(0x92cfa06e),
  1962. 159: uint32(0xf7a89b28),
  1963. 160: uint32(0x710d1027),
  1964. 161: uint32(0x146a2b61),
  1965. 162: uint32(0xbbc366ab),
  1966. 163: uint32(0xdea45ded),
  1967. 164: uint32(0x3fe0fb7e),
  1968. 165: uint32(0x5a87c038),
  1969. 166: uint32(0xf52e8df2),
  1970. 167: uint32(0x9049b6b4),
  1971. 168: uint32(0xecd6c695),
  1972. 169: uint32(0x89b1fdd3),
  1973. 170: uint32(0x2618b019),
  1974. 171: uint32(0x437f8b5f),
  1975. 172: uint32(0xa23b2dcc),
  1976. 173: uint32(0xc75c168a),
  1977. 174: uint32(0x68f55b40),
  1978. 175: uint32(0x0d926006),
  1979. 176: uint32(0x91cbbb02),
  1980. 177: uint32(0xf4ac8044),
  1981. 178: uint32(0x5b05cd8e),
  1982. 179: uint32(0x3e62f6c8),
  1983. 180: uint32(0xdf26505b),
  1984. 181: uint32(0xba416b1d),
  1985. 182: uint32(0x15e826d7),
  1986. 183: uint32(0x708f1d91),
  1987. 184: uint32(0x0c106db0),
  1988. 185: uint32(0x697756f6),
  1989. 186: uint32(0xc6de1b3c),
  1990. 187: uint32(0xa3b9207a),
  1991. 188: uint32(0x42fd86e9),
  1992. 189: uint32(0x279abdaf),
  1993. 190: uint32(0x8833f065),
  1994. 191: uint32(0xed54cb23),
  1995. 192: uint32(0x5e09e03a),
  1996. 193: uint32(0x3b6edb7c),
  1997. 194: uint32(0x94c796b6),
  1998. 195: uint32(0xf1a0adf0),
  1999. 196: uint32(0x10e40b63),
  2000. 197: uint32(0x75833025),
  2001. 198: uint32(0xda2a7def),
  2002. 199: uint32(0xbf4d46a9),
  2003. 200: uint32(0xc3d23688),
  2004. 201: uint32(0xa6b50dce),
  2005. 202: uint32(0x091c4004),
  2006. 203: uint32(0x6c7b7b42),
  2007. 204: uint32(0x8d3fddd1),
  2008. 205: uint32(0xe858e697),
  2009. 206: uint32(0x47f1ab5d),
  2010. 207: uint32(0x2296901b),
  2011. 208: uint32(0xbecf4b1f),
  2012. 209: uint32(0xdba87059),
  2013. 210: uint32(0x74013d93),
  2014. 211: uint32(0x116606d5),
  2015. 212: uint32(0xf022a046),
  2016. 213: uint32(0x95459b00),
  2017. 214: uint32(0x3aecd6ca),
  2018. 215: uint32(0x5f8bed8c),
  2019. 216: uint32(0x23149dad),
  2020. 217: uint32(0x4673a6eb),
  2021. 218: uint32(0xe9daeb21),
  2022. 219: uint32(0x8cbdd067),
  2023. 220: uint32(0x6df976f4),
  2024. 221: uint32(0x089e4db2),
  2025. 222: uint32(0xa7370078),
  2026. 223: uint32(0xc2503b3e),
  2027. 224: uint32(0x44f5b031),
  2028. 225: uint32(0x21928b77),
  2029. 226: uint32(0x8e3bc6bd),
  2030. 227: uint32(0xeb5cfdfb),
  2031. 228: uint32(0x0a185b68),
  2032. 229: uint32(0x6f7f602e),
  2033. 230: uint32(0xc0d62de4),
  2034. 231: uint32(0xa5b116a2),
  2035. 232: uint32(0xd92e6683),
  2036. 233: uint32(0xbc495dc5),
  2037. 234: uint32(0x13e0100f),
  2038. 235: uint32(0x76872b49),
  2039. 236: uint32(0x97c38dda),
  2040. 237: uint32(0xf2a4b69c),
  2041. 238: uint32(0x5d0dfb56),
  2042. 239: uint32(0x386ac010),
  2043. 240: uint32(0xa4331b14),
  2044. 241: uint32(0xc1542052),
  2045. 242: uint32(0x6efd6d98),
  2046. 243: uint32(0x0b9a56de),
  2047. 244: uint32(0xeadef04d),
  2048. 245: uint32(0x8fb9cb0b),
  2049. 246: uint32(0x201086c1),
  2050. 247: uint32(0x4577bd87),
  2051. 248: uint32(0x39e8cda6),
  2052. 249: uint32(0x5c8ff6e0),
  2053. 250: uint32(0xf326bb2a),
  2054. 251: uint32(0x9641806c),
  2055. 252: uint32(0x770526ff),
  2056. 253: uint32(0x12621db9),
  2057. 254: uint32(0xbdcb5073),
  2058. 255: uint32(0xd8ac6b35),
  2059. },
  2060. 1: {
  2061. 1: uint32(0xd7e28058),
  2062. 2: uint32(0x74b406f1),
  2063. 3: uint32(0xa35686a9),
  2064. 4: uint32(0xe9680de2),
  2065. 5: uint32(0x3e8a8dba),
  2066. 6: uint32(0x9ddc0b13),
  2067. 7: uint32(0x4a3e8b4b),
  2068. 8: uint32(0x09a11d85),
  2069. 9: uint32(0xde439ddd),
  2070. 10: uint32(0x7d151b74),
  2071. 11: uint32(0xaaf79b2c),
  2072. 12: uint32(0xe0c91067),
  2073. 13: uint32(0x372b903f),
  2074. 14: uint32(0x947d1696),
  2075. 15: uint32(0x439f96ce),
  2076. 16: uint32(0x13423b0a),
  2077. 17: uint32(0xc4a0bb52),
  2078. 18: uint32(0x67f63dfb),
  2079. 19: uint32(0xb014bda3),
  2080. 20: uint32(0xfa2a36e8),
  2081. 21: uint32(0x2dc8b6b0),
  2082. 22: uint32(0x8e9e3019),
  2083. 23: uint32(0x597cb041),
  2084. 24: uint32(0x1ae3268f),
  2085. 25: uint32(0xcd01a6d7),
  2086. 26: uint32(0x6e57207e),
  2087. 27: uint32(0xb9b5a026),
  2088. 28: uint32(0xf38b2b6d),
  2089. 29: uint32(0x2469ab35),
  2090. 30: uint32(0x873f2d9c),
  2091. 31: uint32(0x50ddadc4),
  2092. 32: uint32(0x26847614),
  2093. 33: uint32(0xf166f64c),
  2094. 34: uint32(0x523070e5),
  2095. 35: uint32(0x85d2f0bd),
  2096. 36: uint32(0xcfec7bf6),
  2097. 37: uint32(0x180efbae),
  2098. 38: uint32(0xbb587d07),
  2099. 39: uint32(0x6cbafd5f),
  2100. 40: uint32(0x2f256b91),
  2101. 41: uint32(0xf8c7ebc9),
  2102. 42: uint32(0x5b916d60),
  2103. 43: uint32(0x8c73ed38),
  2104. 44: uint32(0xc64d6673),
  2105. 45: uint32(0x11afe62b),
  2106. 46: uint32(0xb2f96082),
  2107. 47: uint32(0x651be0da),
  2108. 48: uint32(0x35c64d1e),
  2109. 49: uint32(0xe224cd46),
  2110. 50: uint32(0x41724bef),
  2111. 51: uint32(0x9690cbb7),
  2112. 52: uint32(0xdcae40fc),
  2113. 53: uint32(0x0b4cc0a4),
  2114. 54: uint32(0xa81a460d),
  2115. 55: uint32(0x7ff8c655),
  2116. 56: uint32(0x3c67509b),
  2117. 57: uint32(0xeb85d0c3),
  2118. 58: uint32(0x48d3566a),
  2119. 59: uint32(0x9f31d632),
  2120. 60: uint32(0xd50f5d79),
  2121. 61: uint32(0x02eddd21),
  2122. 62: uint32(0xa1bb5b88),
  2123. 63: uint32(0x7659dbd0),
  2124. 64: uint32(0x4d08ec28),
  2125. 65: uint32(0x9aea6c70),
  2126. 66: uint32(0x39bcead9),
  2127. 67: uint32(0xee5e6a81),
  2128. 68: uint32(0xa460e1ca),
  2129. 69: uint32(0x73826192),
  2130. 70: uint32(0xd0d4e73b),
  2131. 71: uint32(0x07366763),
  2132. 72: uint32(0x44a9f1ad),
  2133. 73: uint32(0x934b71f5),
  2134. 74: uint32(0x301df75c),
  2135. 75: uint32(0xe7ff7704),
  2136. 76: uint32(0xadc1fc4f),
  2137. 77: uint32(0x7a237c17),
  2138. 78: uint32(0xd975fabe),
  2139. 79: uint32(0x0e977ae6),
  2140. 80: uint32(0x5e4ad722),
  2141. 81: uint32(0x89a8577a),
  2142. 82: uint32(0x2afed1d3),
  2143. 83: uint32(0xfd1c518b),
  2144. 84: uint32(0xb722dac0),
  2145. 85: uint32(0x60c05a98),
  2146. 86: uint32(0xc396dc31),
  2147. 87: uint32(0x14745c69),
  2148. 88: uint32(0x57ebcaa7),
  2149. 89: uint32(0x80094aff),
  2150. 90: uint32(0x235fcc56),
  2151. 91: uint32(0xf4bd4c0e),
  2152. 92: uint32(0xbe83c745),
  2153. 93: uint32(0x6961471d),
  2154. 94: uint32(0xca37c1b4),
  2155. 95: uint32(0x1dd541ec),
  2156. 96: uint32(0x6b8c9a3c),
  2157. 97: uint32(0xbc6e1a64),
  2158. 98: uint32(0x1f389ccd),
  2159. 99: uint32(0xc8da1c95),
  2160. 100: uint32(0x82e497de),
  2161. 101: uint32(0x55061786),
  2162. 102: uint32(0xf650912f),
  2163. 103: uint32(0x21b21177),
  2164. 104: uint32(0x622d87b9),
  2165. 105: uint32(0xb5cf07e1),
  2166. 106: uint32(0x16998148),
  2167. 107: uint32(0xc17b0110),
  2168. 108: uint32(0x8b458a5b),
  2169. 109: uint32(0x5ca70a03),
  2170. 110: uint32(0xfff18caa),
  2171. 111: uint32(0x28130cf2),
  2172. 112: uint32(0x78cea136),
  2173. 113: uint32(0xaf2c216e),
  2174. 114: uint32(0x0c7aa7c7),
  2175. 115: uint32(0xdb98279f),
  2176. 116: uint32(0x91a6acd4),
  2177. 117: uint32(0x46442c8c),
  2178. 118: uint32(0xe512aa25),
  2179. 119: uint32(0x32f02a7d),
  2180. 120: uint32(0x716fbcb3),
  2181. 121: uint32(0xa68d3ceb),
  2182. 122: uint32(0x05dbba42),
  2183. 123: uint32(0xd2393a1a),
  2184. 124: uint32(0x9807b151),
  2185. 125: uint32(0x4fe53109),
  2186. 126: uint32(0xecb3b7a0),
  2187. 127: uint32(0x3b5137f8),
  2188. 128: uint32(0x9a11d850),
  2189. 129: uint32(0x4df35808),
  2190. 130: uint32(0xeea5dea1),
  2191. 131: uint32(0x39475ef9),
  2192. 132: uint32(0x7379d5b2),
  2193. 133: uint32(0xa49b55ea),
  2194. 134: uint32(0x07cdd343),
  2195. 135: uint32(0xd02f531b),
  2196. 136: uint32(0x93b0c5d5),
  2197. 137: uint32(0x4452458d),
  2198. 138: uint32(0xe704c324),
  2199. 139: uint32(0x30e6437c),
  2200. 140: uint32(0x7ad8c837),
  2201. 141: uint32(0xad3a486f),
  2202. 142: uint32(0x0e6ccec6),
  2203. 143: uint32(0xd98e4e9e),
  2204. 144: uint32(0x8953e35a),
  2205. 145: uint32(0x5eb16302),
  2206. 146: uint32(0xfde7e5ab),
  2207. 147: uint32(0x2a0565f3),
  2208. 148: uint32(0x603beeb8),
  2209. 149: uint32(0xb7d96ee0),
  2210. 150: uint32(0x148fe849),
  2211. 151: uint32(0xc36d6811),
  2212. 152: uint32(0x80f2fedf),
  2213. 153: uint32(0x57107e87),
  2214. 154: uint32(0xf446f82e),
  2215. 155: uint32(0x23a47876),
  2216. 156: uint32(0x699af33d),
  2217. 157: uint32(0xbe787365),
  2218. 158: uint32(0x1d2ef5cc),
  2219. 159: uint32(0xcacc7594),
  2220. 160: uint32(0xbc95ae44),
  2221. 161: uint32(0x6b772e1c),
  2222. 162: uint32(0xc821a8b5),
  2223. 163: uint32(0x1fc328ed),
  2224. 164: uint32(0x55fda3a6),
  2225. 165: uint32(0x821f23fe),
  2226. 166: uint32(0x2149a557),
  2227. 167: uint32(0xf6ab250f),
  2228. 168: uint32(0xb534b3c1),
  2229. 169: uint32(0x62d63399),
  2230. 170: uint32(0xc180b530),
  2231. 171: uint32(0x16623568),
  2232. 172: uint32(0x5c5cbe23),
  2233. 173: uint32(0x8bbe3e7b),
  2234. 174: uint32(0x28e8b8d2),
  2235. 175: uint32(0xff0a388a),
  2236. 176: uint32(0xafd7954e),
  2237. 177: uint32(0x78351516),
  2238. 178: uint32(0xdb6393bf),
  2239. 179: uint32(0x0c8113e7),
  2240. 180: uint32(0x46bf98ac),
  2241. 181: uint32(0x915d18f4),
  2242. 182: uint32(0x320b9e5d),
  2243. 183: uint32(0xe5e91e05),
  2244. 184: uint32(0xa67688cb),
  2245. 185: uint32(0x71940893),
  2246. 186: uint32(0xd2c28e3a),
  2247. 187: uint32(0x05200e62),
  2248. 188: uint32(0x4f1e8529),
  2249. 189: uint32(0x98fc0571),
  2250. 190: uint32(0x3baa83d8),
  2251. 191: uint32(0xec480380),
  2252. 192: uint32(0xd7193478),
  2253. 193: uint32(0x00fbb420),
  2254. 194: uint32(0xa3ad3289),
  2255. 195: uint32(0x744fb2d1),
  2256. 196: uint32(0x3e71399a),
  2257. 197: uint32(0xe993b9c2),
  2258. 198: uint32(0x4ac53f6b),
  2259. 199: uint32(0x9d27bf33),
  2260. 200: uint32(0xdeb829fd),
  2261. 201: uint32(0x095aa9a5),
  2262. 202: uint32(0xaa0c2f0c),
  2263. 203: uint32(0x7deeaf54),
  2264. 204: uint32(0x37d0241f),
  2265. 205: uint32(0xe032a447),
  2266. 206: uint32(0x436422ee),
  2267. 207: uint32(0x9486a2b6),
  2268. 208: uint32(0xc45b0f72),
  2269. 209: uint32(0x13b98f2a),
  2270. 210: uint32(0xb0ef0983),
  2271. 211: uint32(0x670d89db),
  2272. 212: uint32(0x2d330290),
  2273. 213: uint32(0xfad182c8),
  2274. 214: uint32(0x59870461),
  2275. 215: uint32(0x8e658439),
  2276. 216: uint32(0xcdfa12f7),
  2277. 217: uint32(0x1a1892af),
  2278. 218: uint32(0xb94e1406),
  2279. 219: uint32(0x6eac945e),
  2280. 220: uint32(0x24921f15),
  2281. 221: uint32(0xf3709f4d),
  2282. 222: uint32(0x502619e4),
  2283. 223: uint32(0x87c499bc),
  2284. 224: uint32(0xf19d426c),
  2285. 225: uint32(0x267fc234),
  2286. 226: uint32(0x8529449d),
  2287. 227: uint32(0x52cbc4c5),
  2288. 228: uint32(0x18f54f8e),
  2289. 229: uint32(0xcf17cfd6),
  2290. 230: uint32(0x6c41497f),
  2291. 231: uint32(0xbba3c927),
  2292. 232: uint32(0xf83c5fe9),
  2293. 233: uint32(0x2fdedfb1),
  2294. 234: uint32(0x8c885918),
  2295. 235: uint32(0x5b6ad940),
  2296. 236: uint32(0x1154520b),
  2297. 237: uint32(0xc6b6d253),
  2298. 238: uint32(0x65e054fa),
  2299. 239: uint32(0xb202d4a2),
  2300. 240: uint32(0xe2df7966),
  2301. 241: uint32(0x353df93e),
  2302. 242: uint32(0x966b7f97),
  2303. 243: uint32(0x4189ffcf),
  2304. 244: uint32(0x0bb77484),
  2305. 245: uint32(0xdc55f4dc),
  2306. 246: uint32(0x7f037275),
  2307. 247: uint32(0xa8e1f22d),
  2308. 248: uint32(0xeb7e64e3),
  2309. 249: uint32(0x3c9ce4bb),
  2310. 250: uint32(0x9fca6212),
  2311. 251: uint32(0x4828e24a),
  2312. 252: uint32(0x02166901),
  2313. 253: uint32(0xd5f4e959),
  2314. 254: uint32(0x76a26ff0),
  2315. 255: uint32(0xa140efa8),
  2316. },
  2317. 2: {
  2318. 1: uint32(0xef52b6e1),
  2319. 2: uint32(0x05d46b83),
  2320. 3: uint32(0xea86dd62),
  2321. 4: uint32(0x0ba8d706),
  2322. 5: uint32(0xe4fa61e7),
  2323. 6: uint32(0x0e7cbc85),
  2324. 7: uint32(0xe12e0a64),
  2325. 8: uint32(0x1751ae0c),
  2326. 9: uint32(0xf80318ed),
  2327. 10: uint32(0x1285c58f),
  2328. 11: uint32(0xfdd7736e),
  2329. 12: uint32(0x1cf9790a),
  2330. 13: uint32(0xf3abcfeb),
  2331. 14: uint32(0x192d1289),
  2332. 15: uint32(0xf67fa468),
  2333. 16: uint32(0x2ea35c18),
  2334. 17: uint32(0xc1f1eaf9),
  2335. 18: uint32(0x2b77379b),
  2336. 19: uint32(0xc425817a),
  2337. 20: uint32(0x250b8b1e),
  2338. 21: uint32(0xca593dff),
  2339. 22: uint32(0x20dfe09d),
  2340. 23: uint32(0xcf8d567c),
  2341. 24: uint32(0x39f2f214),
  2342. 25: uint32(0xd6a044f5),
  2343. 26: uint32(0x3c269997),
  2344. 27: uint32(0xd3742f76),
  2345. 28: uint32(0x325a2512),
  2346. 29: uint32(0xdd0893f3),
  2347. 30: uint32(0x378e4e91),
  2348. 31: uint32(0xd8dcf870),
  2349. 32: uint32(0x5d46b830),
  2350. 33: uint32(0xb2140ed1),
  2351. 34: uint32(0x5892d3b3),
  2352. 35: uint32(0xb7c06552),
  2353. 36: uint32(0x56ee6f36),
  2354. 37: uint32(0xb9bcd9d7),
  2355. 38: uint32(0x533a04b5),
  2356. 39: uint32(0xbc68b254),
  2357. 40: uint32(0x4a17163c),
  2358. 41: uint32(0xa545a0dd),
  2359. 42: uint32(0x4fc37dbf),
  2360. 43: uint32(0xa091cb5e),
  2361. 44: uint32(0x41bfc13a),
  2362. 45: uint32(0xaeed77db),
  2363. 46: uint32(0x446baab9),
  2364. 47: uint32(0xab391c58),
  2365. 48: uint32(0x73e5e428),
  2366. 49: uint32(0x9cb752c9),
  2367. 50: uint32(0x76318fab),
  2368. 51: uint32(0x9963394a),
  2369. 52: uint32(0x784d332e),
  2370. 53: uint32(0x971f85cf),
  2371. 54: uint32(0x7d9958ad),
  2372. 55: uint32(0x92cbee4c),
  2373. 56: uint32(0x64b44a24),
  2374. 57: uint32(0x8be6fcc5),
  2375. 58: uint32(0x616021a7),
  2376. 59: uint32(0x8e329746),
  2377. 60: uint32(0x6f1c9d22),
  2378. 61: uint32(0x804e2bc3),
  2379. 62: uint32(0x6ac8f6a1),
  2380. 63: uint32(0x859a4040),
  2381. 64: uint32(0xba8d7060),
  2382. 65: uint32(0x55dfc681),
  2383. 66: uint32(0xbf591be3),
  2384. 67: uint32(0x500bad02),
  2385. 68: uint32(0xb125a766),
  2386. 69: uint32(0x5e771187),
  2387. 70: uint32(0xb4f1cce5),
  2388. 71: uint32(0x5ba37a04),
  2389. 72: uint32(0xaddcde6c),
  2390. 73: uint32(0x428e688d),
  2391. 74: uint32(0xa808b5ef),
  2392. 75: uint32(0x475a030e),
  2393. 76: uint32(0xa674096a),
  2394. 77: uint32(0x4926bf8b),
  2395. 78: uint32(0xa3a062e9),
  2396. 79: uint32(0x4cf2d408),
  2397. 80: uint32(0x942e2c78),
  2398. 81: uint32(0x7b7c9a99),
  2399. 82: uint32(0x91fa47fb),
  2400. 83: uint32(0x7ea8f11a),
  2401. 84: uint32(0x9f86fb7e),
  2402. 85: uint32(0x70d44d9f),
  2403. 86: uint32(0x9a5290fd),
  2404. 87: uint32(0x7500261c),
  2405. 88: uint32(0x837f8274),
  2406. 89: uint32(0x6c2d3495),
  2407. 90: uint32(0x86abe9f7),
  2408. 91: uint32(0x69f95f16),
  2409. 92: uint32(0x88d75572),
  2410. 93: uint32(0x6785e393),
  2411. 94: uint32(0x8d033ef1),
  2412. 95: uint32(0x62518810),
  2413. 96: uint32(0xe7cbc850),
  2414. 97: uint32(0x08997eb1),
  2415. 98: uint32(0xe21fa3d3),
  2416. 99: uint32(0x0d4d1532),
  2417. 100: uint32(0xec631f56),
  2418. 101: uint32(0x0331a9b7),
  2419. 102: uint32(0xe9b774d5),
  2420. 103: uint32(0x06e5c234),
  2421. 104: uint32(0xf09a665c),
  2422. 105: uint32(0x1fc8d0bd),
  2423. 106: uint32(0xf54e0ddf),
  2424. 107: uint32(0x1a1cbb3e),
  2425. 108: uint32(0xfb32b15a),
  2426. 109: uint32(0x146007bb),
  2427. 110: uint32(0xfee6dad9),
  2428. 111: uint32(0x11b46c38),
  2429. 112: uint32(0xc9689448),
  2430. 113: uint32(0x263a22a9),
  2431. 114: uint32(0xccbcffcb),
  2432. 115: uint32(0x23ee492a),
  2433. 116: uint32(0xc2c0434e),
  2434. 117: uint32(0x2d92f5af),
  2435. 118: uint32(0xc71428cd),
  2436. 119: uint32(0x28469e2c),
  2437. 120: uint32(0xde393a44),
  2438. 121: uint32(0x316b8ca5),
  2439. 122: uint32(0xdbed51c7),
  2440. 123: uint32(0x34bfe726),
  2441. 124: uint32(0xd591ed42),
  2442. 125: uint32(0x3ac35ba3),
  2443. 126: uint32(0xd04586c1),
  2444. 127: uint32(0x3f173020),
  2445. 128: uint32(0xae6be681),
  2446. 129: uint32(0x41395060),
  2447. 130: uint32(0xabbf8d02),
  2448. 131: uint32(0x44ed3be3),
  2449. 132: uint32(0xa5c33187),
  2450. 133: uint32(0x4a918766),
  2451. 134: uint32(0xa0175a04),
  2452. 135: uint32(0x4f45ece5),
  2453. 136: uint32(0xb93a488d),
  2454. 137: uint32(0x5668fe6c),
  2455. 138: uint32(0xbcee230e),
  2456. 139: uint32(0x53bc95ef),
  2457. 140: uint32(0xb2929f8b),
  2458. 141: uint32(0x5dc0296a),
  2459. 142: uint32(0xb746f408),
  2460. 143: uint32(0x581442e9),
  2461. 144: uint32(0x80c8ba99),
  2462. 145: uint32(0x6f9a0c78),
  2463. 146: uint32(0x851cd11a),
  2464. 147: uint32(0x6a4e67fb),
  2465. 148: uint32(0x8b606d9f),
  2466. 149: uint32(0x6432db7e),
  2467. 150: uint32(0x8eb4061c),
  2468. 151: uint32(0x61e6b0fd),
  2469. 152: uint32(0x97991495),
  2470. 153: uint32(0x78cba274),
  2471. 154: uint32(0x924d7f16),
  2472. 155: uint32(0x7d1fc9f7),
  2473. 156: uint32(0x9c31c393),
  2474. 157: uint32(0x73637572),
  2475. 158: uint32(0x99e5a810),
  2476. 159: uint32(0x76b71ef1),
  2477. 160: uint32(0xf32d5eb1),
  2478. 161: uint32(0x1c7fe850),
  2479. 162: uint32(0xf6f93532),
  2480. 163: uint32(0x19ab83d3),
  2481. 164: uint32(0xf88589b7),
  2482. 165: uint32(0x17d73f56),
  2483. 166: uint32(0xfd51e234),
  2484. 167: uint32(0x120354d5),
  2485. 168: uint32(0xe47cf0bd),
  2486. 169: uint32(0x0b2e465c),
  2487. 170: uint32(0xe1a89b3e),
  2488. 171: uint32(0x0efa2ddf),
  2489. 172: uint32(0xefd427bb),
  2490. 173: uint32(0x0086915a),
  2491. 174: uint32(0xea004c38),
  2492. 175: uint32(0x0552fad9),
  2493. 176: uint32(0xdd8e02a9),
  2494. 177: uint32(0x32dcb448),
  2495. 178: uint32(0xd85a692a),
  2496. 179: uint32(0x3708dfcb),
  2497. 180: uint32(0xd626d5af),
  2498. 181: uint32(0x3974634e),
  2499. 182: uint32(0xd3f2be2c),
  2500. 183: uint32(0x3ca008cd),
  2501. 184: uint32(0xcadfaca5),
  2502. 185: uint32(0x258d1a44),
  2503. 186: uint32(0xcf0bc726),
  2504. 187: uint32(0x205971c7),
  2505. 188: uint32(0xc1777ba3),
  2506. 189: uint32(0x2e25cd42),
  2507. 190: uint32(0xc4a31020),
  2508. 191: uint32(0x2bf1a6c1),
  2509. 192: uint32(0x14e696e1),
  2510. 193: uint32(0xfbb42000),
  2511. 194: uint32(0x1132fd62),
  2512. 195: uint32(0xfe604b83),
  2513. 196: uint32(0x1f4e41e7),
  2514. 197: uint32(0xf01cf706),
  2515. 198: uint32(0x1a9a2a64),
  2516. 199: uint32(0xf5c89c85),
  2517. 200: uint32(0x03b738ed),
  2518. 201: uint32(0xece58e0c),
  2519. 202: uint32(0x0663536e),
  2520. 203: uint32(0xe931e58f),
  2521. 204: uint32(0x081fefeb),
  2522. 205: uint32(0xe74d590a),
  2523. 206: uint32(0x0dcb8468),
  2524. 207: uint32(0xe2993289),
  2525. 208: uint32(0x3a45caf9),
  2526. 209: uint32(0xd5177c18),
  2527. 210: uint32(0x3f91a17a),
  2528. 211: uint32(0xd0c3179b),
  2529. 212: uint32(0x31ed1dff),
  2530. 213: uint32(0xdebfab1e),
  2531. 214: uint32(0x3439767c),
  2532. 215: uint32(0xdb6bc09d),
  2533. 216: uint32(0x2d1464f5),
  2534. 217: uint32(0xc246d214),
  2535. 218: uint32(0x28c00f76),
  2536. 219: uint32(0xc792b997),
  2537. 220: uint32(0x26bcb3f3),
  2538. 221: uint32(0xc9ee0512),
  2539. 222: uint32(0x2368d870),
  2540. 223: uint32(0xcc3a6e91),
  2541. 224: uint32(0x49a02ed1),
  2542. 225: uint32(0xa6f29830),
  2543. 226: uint32(0x4c744552),
  2544. 227: uint32(0xa326f3b3),
  2545. 228: uint32(0x4208f9d7),
  2546. 229: uint32(0xad5a4f36),
  2547. 230: uint32(0x47dc9254),
  2548. 231: uint32(0xa88e24b5),
  2549. 232: uint32(0x5ef180dd),
  2550. 233: uint32(0xb1a3363c),
  2551. 234: uint32(0x5b25eb5e),
  2552. 235: uint32(0xb4775dbf),
  2553. 236: uint32(0x555957db),
  2554. 237: uint32(0xba0be13a),
  2555. 238: uint32(0x508d3c58),
  2556. 239: uint32(0xbfdf8ab9),
  2557. 240: uint32(0x670372c9),
  2558. 241: uint32(0x8851c428),
  2559. 242: uint32(0x62d7194a),
  2560. 243: uint32(0x8d85afab),
  2561. 244: uint32(0x6caba5cf),
  2562. 245: uint32(0x83f9132e),
  2563. 246: uint32(0x697fce4c),
  2564. 247: uint32(0x862d78ad),
  2565. 248: uint32(0x7052dcc5),
  2566. 249: uint32(0x9f006a24),
  2567. 250: uint32(0x7586b746),
  2568. 251: uint32(0x9ad401a7),
  2569. 252: uint32(0x7bfa0bc3),
  2570. 253: uint32(0x94a8bd22),
  2571. 254: uint32(0x7e2e6040),
  2572. 255: uint32(0x917cd6a1),
  2573. },
  2574. 3: {
  2575. 1: uint32(0x87a6cb43),
  2576. 2: uint32(0xd43c90c7),
  2577. 3: uint32(0x539a5b84),
  2578. 4: uint32(0x730827cf),
  2579. 5: uint32(0xf4aeec8c),
  2580. 6: uint32(0xa734b708),
  2581. 7: uint32(0x20927c4b),
  2582. 8: uint32(0xe6104f9e),
  2583. 9: uint32(0x61b684dd),
  2584. 10: uint32(0x322cdf59),
  2585. 11: uint32(0xb58a141a),
  2586. 12: uint32(0x95186851),
  2587. 13: uint32(0x12bea312),
  2588. 14: uint32(0x4124f896),
  2589. 15: uint32(0xc68233d5),
  2590. 16: uint32(0x1751997d),
  2591. 17: uint32(0x90f7523e),
  2592. 18: uint32(0xc36d09ba),
  2593. 19: uint32(0x44cbc2f9),
  2594. 20: uint32(0x6459beb2),
  2595. 21: uint32(0xe3ff75f1),
  2596. 22: uint32(0xb0652e75),
  2597. 23: uint32(0x37c3e536),
  2598. 24: uint32(0xf141d6e3),
  2599. 25: uint32(0x76e71da0),
  2600. 26: uint32(0x257d4624),
  2601. 27: uint32(0xa2db8d67),
  2602. 28: uint32(0x8249f12c),
  2603. 29: uint32(0x05ef3a6f),
  2604. 30: uint32(0x567561eb),
  2605. 31: uint32(0xd1d3aaa8),
  2606. 32: uint32(0x2ea332fa),
  2607. 33: uint32(0xa905f9b9),
  2608. 34: uint32(0xfa9fa23d),
  2609. 35: uint32(0x7d39697e),
  2610. 36: uint32(0x5dab1535),
  2611. 37: uint32(0xda0dde76),
  2612. 38: uint32(0x899785f2),
  2613. 39: uint32(0x0e314eb1),
  2614. 40: uint32(0xc8b37d64),
  2615. 41: uint32(0x4f15b627),
  2616. 42: uint32(0x1c8feda3),
  2617. 43: uint32(0x9b2926e0),
  2618. 44: uint32(0xbbbb5aab),
  2619. 45: uint32(0x3c1d91e8),
  2620. 46: uint32(0x6f87ca6c),
  2621. 47: uint32(0xe821012f),
  2622. 48: uint32(0x39f2ab87),
  2623. 49: uint32(0xbe5460c4),
  2624. 50: uint32(0xedce3b40),
  2625. 51: uint32(0x6a68f003),
  2626. 52: uint32(0x4afa8c48),
  2627. 53: uint32(0xcd5c470b),
  2628. 54: uint32(0x9ec61c8f),
  2629. 55: uint32(0x1960d7cc),
  2630. 56: uint32(0xdfe2e419),
  2631. 57: uint32(0x58442f5a),
  2632. 58: uint32(0x0bde74de),
  2633. 59: uint32(0x8c78bf9d),
  2634. 60: uint32(0xaceac3d6),
  2635. 61: uint32(0x2b4c0895),
  2636. 62: uint32(0x78d65311),
  2637. 63: uint32(0xff709852),
  2638. 64: uint32(0x5d4665f4),
  2639. 65: uint32(0xdae0aeb7),
  2640. 66: uint32(0x897af533),
  2641. 67: uint32(0x0edc3e70),
  2642. 68: uint32(0x2e4e423b),
  2643. 69: uint32(0xa9e88978),
  2644. 70: uint32(0xfa72d2fc),
  2645. 71: uint32(0x7dd419bf),
  2646. 72: uint32(0xbb562a6a),
  2647. 73: uint32(0x3cf0e129),
  2648. 74: uint32(0x6f6abaad),
  2649. 75: uint32(0xe8cc71ee),
  2650. 76: uint32(0xc85e0da5),
  2651. 77: uint32(0x4ff8c6e6),
  2652. 78: uint32(0x1c629d62),
  2653. 79: uint32(0x9bc45621),
  2654. 80: uint32(0x4a17fc89),
  2655. 81: uint32(0xcdb137ca),
  2656. 82: uint32(0x9e2b6c4e),
  2657. 83: uint32(0x198da70d),
  2658. 84: uint32(0x391fdb46),
  2659. 85: uint32(0xbeb91005),
  2660. 86: uint32(0xed234b81),
  2661. 87: uint32(0x6a8580c2),
  2662. 88: uint32(0xac07b317),
  2663. 89: uint32(0x2ba17854),
  2664. 90: uint32(0x783b23d0),
  2665. 91: uint32(0xff9de893),
  2666. 92: uint32(0xdf0f94d8),
  2667. 93: uint32(0x58a95f9b),
  2668. 94: uint32(0x0b33041f),
  2669. 95: uint32(0x8c95cf5c),
  2670. 96: uint32(0x73e5570e),
  2671. 97: uint32(0xf4439c4d),
  2672. 98: uint32(0xa7d9c7c9),
  2673. 99: uint32(0x207f0c8a),
  2674. 100: uint32(0x00ed70c1),
  2675. 101: uint32(0x874bbb82),
  2676. 102: uint32(0xd4d1e006),
  2677. 103: uint32(0x53772b45),
  2678. 104: uint32(0x95f51890),
  2679. 105: uint32(0x1253d3d3),
  2680. 106: uint32(0x41c98857),
  2681. 107: uint32(0xc66f4314),
  2682. 108: uint32(0xe6fd3f5f),
  2683. 109: uint32(0x615bf41c),
  2684. 110: uint32(0x32c1af98),
  2685. 111: uint32(0xb56764db),
  2686. 112: uint32(0x64b4ce73),
  2687. 113: uint32(0xe3120530),
  2688. 114: uint32(0xb0885eb4),
  2689. 115: uint32(0x372e95f7),
  2690. 116: uint32(0x17bce9bc),
  2691. 117: uint32(0x901a22ff),
  2692. 118: uint32(0xc380797b),
  2693. 119: uint32(0x4426b238),
  2694. 120: uint32(0x82a481ed),
  2695. 121: uint32(0x05024aae),
  2696. 122: uint32(0x5698112a),
  2697. 123: uint32(0xd13eda69),
  2698. 124: uint32(0xf1aca622),
  2699. 125: uint32(0x760a6d61),
  2700. 126: uint32(0x259036e5),
  2701. 127: uint32(0xa236fda6),
  2702. 128: uint32(0xba8ccbe8),
  2703. 129: uint32(0x3d2a00ab),
  2704. 130: uint32(0x6eb05b2f),
  2705. 131: uint32(0xe916906c),
  2706. 132: uint32(0xc984ec27),
  2707. 133: uint32(0x4e222764),
  2708. 134: uint32(0x1db87ce0),
  2709. 135: uint32(0x9a1eb7a3),
  2710. 136: uint32(0x5c9c8476),
  2711. 137: uint32(0xdb3a4f35),
  2712. 138: uint32(0x88a014b1),
  2713. 139: uint32(0x0f06dff2),
  2714. 140: uint32(0x2f94a3b9),
  2715. 141: uint32(0xa83268fa),
  2716. 142: uint32(0xfba8337e),
  2717. 143: uint32(0x7c0ef83d),
  2718. 144: uint32(0xaddd5295),
  2719. 145: uint32(0x2a7b99d6),
  2720. 146: uint32(0x79e1c252),
  2721. 147: uint32(0xfe470911),
  2722. 148: uint32(0xded5755a),
  2723. 149: uint32(0x5973be19),
  2724. 150: uint32(0x0ae9e59d),
  2725. 151: uint32(0x8d4f2ede),
  2726. 152: uint32(0x4bcd1d0b),
  2727. 153: uint32(0xcc6bd648),
  2728. 154: uint32(0x9ff18dcc),
  2729. 155: uint32(0x1857468f),
  2730. 156: uint32(0x38c53ac4),
  2731. 157: uint32(0xbf63f187),
  2732. 158: uint32(0xecf9aa03),
  2733. 159: uint32(0x6b5f6140),
  2734. 160: uint32(0x942ff912),
  2735. 161: uint32(0x13893251),
  2736. 162: uint32(0x401369d5),
  2737. 163: uint32(0xc7b5a296),
  2738. 164: uint32(0xe727dedd),
  2739. 165: uint32(0x6081159e),
  2740. 166: uint32(0x331b4e1a),
  2741. 167: uint32(0xb4bd8559),
  2742. 168: uint32(0x723fb68c),
  2743. 169: uint32(0xf5997dcf),
  2744. 170: uint32(0xa603264b),
  2745. 171: uint32(0x21a5ed08),
  2746. 172: uint32(0x01379143),
  2747. 173: uint32(0x86915a00),
  2748. 174: uint32(0xd50b0184),
  2749. 175: uint32(0x52adcac7),
  2750. 176: uint32(0x837e606f),
  2751. 177: uint32(0x04d8ab2c),
  2752. 178: uint32(0x5742f0a8),
  2753. 179: uint32(0xd0e43beb),
  2754. 180: uint32(0xf07647a0),
  2755. 181: uint32(0x77d08ce3),
  2756. 182: uint32(0x244ad767),
  2757. 183: uint32(0xa3ec1c24),
  2758. 184: uint32(0x656e2ff1),
  2759. 185: uint32(0xe2c8e4b2),
  2760. 186: uint32(0xb152bf36),
  2761. 187: uint32(0x36f47475),
  2762. 188: uint32(0x1666083e),
  2763. 189: uint32(0x91c0c37d),
  2764. 190: uint32(0xc25a98f9),
  2765. 191: uint32(0x45fc53ba),
  2766. 192: uint32(0xe7caae1c),
  2767. 193: uint32(0x606c655f),
  2768. 194: uint32(0x33f63edb),
  2769. 195: uint32(0xb450f598),
  2770. 196: uint32(0x94c289d3),
  2771. 197: uint32(0x13644290),
  2772. 198: uint32(0x40fe1914),
  2773. 199: uint32(0xc758d257),
  2774. 200: uint32(0x01dae182),
  2775. 201: uint32(0x867c2ac1),
  2776. 202: uint32(0xd5e67145),
  2777. 203: uint32(0x5240ba06),
  2778. 204: uint32(0x72d2c64d),
  2779. 205: uint32(0xf5740d0e),
  2780. 206: uint32(0xa6ee568a),
  2781. 207: uint32(0x21489dc9),
  2782. 208: uint32(0xf09b3761),
  2783. 209: uint32(0x773dfc22),
  2784. 210: uint32(0x24a7a7a6),
  2785. 211: uint32(0xa3016ce5),
  2786. 212: uint32(0x839310ae),
  2787. 213: uint32(0x0435dbed),
  2788. 214: uint32(0x57af8069),
  2789. 215: uint32(0xd0094b2a),
  2790. 216: uint32(0x168b78ff),
  2791. 217: uint32(0x912db3bc),
  2792. 218: uint32(0xc2b7e838),
  2793. 219: uint32(0x4511237b),
  2794. 220: uint32(0x65835f30),
  2795. 221: uint32(0xe2259473),
  2796. 222: uint32(0xb1bfcff7),
  2797. 223: uint32(0x361904b4),
  2798. 224: uint32(0xc9699ce6),
  2799. 225: uint32(0x4ecf57a5),
  2800. 226: uint32(0x1d550c21),
  2801. 227: uint32(0x9af3c762),
  2802. 228: uint32(0xba61bb29),
  2803. 229: uint32(0x3dc7706a),
  2804. 230: uint32(0x6e5d2bee),
  2805. 231: uint32(0xe9fbe0ad),
  2806. 232: uint32(0x2f79d378),
  2807. 233: uint32(0xa8df183b),
  2808. 234: uint32(0xfb4543bf),
  2809. 235: uint32(0x7ce388fc),
  2810. 236: uint32(0x5c71f4b7),
  2811. 237: uint32(0xdbd73ff4),
  2812. 238: uint32(0x884d6470),
  2813. 239: uint32(0x0febaf33),
  2814. 240: uint32(0xde38059b),
  2815. 241: uint32(0x599eced8),
  2816. 242: uint32(0x0a04955c),
  2817. 243: uint32(0x8da25e1f),
  2818. 244: uint32(0xad302254),
  2819. 245: uint32(0x2a96e917),
  2820. 246: uint32(0x790cb293),
  2821. 247: uint32(0xfeaa79d0),
  2822. 248: uint32(0x38284a05),
  2823. 249: uint32(0xbf8e8146),
  2824. 250: uint32(0xec14dac2),
  2825. 251: uint32(0x6bb21181),
  2826. 252: uint32(0x4b206dca),
  2827. 253: uint32(0xcc86a689),
  2828. 254: uint32(0x9f1cfd0d),
  2829. 255: uint32(0x18ba364e),
  2830. },
  2831. }
  2832. var _crc_braid_big_table = [4][256]Tz_word_t{
  2833. 0: {
  2834. 1: uint32(0x43cba687),
  2835. 2: uint32(0xc7903cd4),
  2836. 3: uint32(0x845b9a53),
  2837. 4: uint32(0xcf270873),
  2838. 5: uint32(0x8cecaef4),
  2839. 6: uint32(0x08b734a7),
  2840. 7: uint32(0x4b7c9220),
  2841. 8: uint32(0x9e4f10e6),
  2842. 9: uint32(0xdd84b661),
  2843. 10: uint32(0x59df2c32),
  2844. 11: uint32(0x1a148ab5),
  2845. 12: uint32(0x51681895),
  2846. 13: uint32(0x12a3be12),
  2847. 14: uint32(0x96f82441),
  2848. 15: uint32(0xd53382c6),
  2849. 16: uint32(0x7d995117),
  2850. 17: uint32(0x3e52f790),
  2851. 18: uint32(0xba096dc3),
  2852. 19: uint32(0xf9c2cb44),
  2853. 20: uint32(0xb2be5964),
  2854. 21: uint32(0xf175ffe3),
  2855. 22: uint32(0x752e65b0),
  2856. 23: uint32(0x36e5c337),
  2857. 24: uint32(0xe3d641f1),
  2858. 25: uint32(0xa01de776),
  2859. 26: uint32(0x24467d25),
  2860. 27: uint32(0x678ddba2),
  2861. 28: uint32(0x2cf14982),
  2862. 29: uint32(0x6f3aef05),
  2863. 30: uint32(0xeb617556),
  2864. 31: uint32(0xa8aad3d1),
  2865. 32: uint32(0xfa32a32e),
  2866. 33: uint32(0xb9f905a9),
  2867. 34: uint32(0x3da29ffa),
  2868. 35: uint32(0x7e69397d),
  2869. 36: uint32(0x3515ab5d),
  2870. 37: uint32(0x76de0dda),
  2871. 38: uint32(0xf2859789),
  2872. 39: uint32(0xb14e310e),
  2873. 40: uint32(0x647db3c8),
  2874. 41: uint32(0x27b6154f),
  2875. 42: uint32(0xa3ed8f1c),
  2876. 43: uint32(0xe026299b),
  2877. 44: uint32(0xab5abbbb),
  2878. 45: uint32(0xe8911d3c),
  2879. 46: uint32(0x6cca876f),
  2880. 47: uint32(0x2f0121e8),
  2881. 48: uint32(0x87abf239),
  2882. 49: uint32(0xc46054be),
  2883. 50: uint32(0x403bceed),
  2884. 51: uint32(0x03f0686a),
  2885. 52: uint32(0x488cfa4a),
  2886. 53: uint32(0x0b475ccd),
  2887. 54: uint32(0x8f1cc69e),
  2888. 55: uint32(0xccd76019),
  2889. 56: uint32(0x19e4e2df),
  2890. 57: uint32(0x5a2f4458),
  2891. 58: uint32(0xde74de0b),
  2892. 59: uint32(0x9dbf788c),
  2893. 60: uint32(0xd6c3eaac),
  2894. 61: uint32(0x95084c2b),
  2895. 62: uint32(0x1153d678),
  2896. 63: uint32(0x529870ff),
  2897. 64: uint32(0xf465465d),
  2898. 65: uint32(0xb7aee0da),
  2899. 66: uint32(0x33f57a89),
  2900. 67: uint32(0x703edc0e),
  2901. 68: uint32(0x3b424e2e),
  2902. 69: uint32(0x7889e8a9),
  2903. 70: uint32(0xfcd272fa),
  2904. 71: uint32(0xbf19d47d),
  2905. 72: uint32(0x6a2a56bb),
  2906. 73: uint32(0x29e1f03c),
  2907. 74: uint32(0xadba6a6f),
  2908. 75: uint32(0xee71cce8),
  2909. 76: uint32(0xa50d5ec8),
  2910. 77: uint32(0xe6c6f84f),
  2911. 78: uint32(0x629d621c),
  2912. 79: uint32(0x2156c49b),
  2913. 80: uint32(0x89fc174a),
  2914. 81: uint32(0xca37b1cd),
  2915. 82: uint32(0x4e6c2b9e),
  2916. 83: uint32(0x0da78d19),
  2917. 84: uint32(0x46db1f39),
  2918. 85: uint32(0x0510b9be),
  2919. 86: uint32(0x814b23ed),
  2920. 87: uint32(0xc280856a),
  2921. 88: uint32(0x17b307ac),
  2922. 89: uint32(0x5478a12b),
  2923. 90: uint32(0xd0233b78),
  2924. 91: uint32(0x93e89dff),
  2925. 92: uint32(0xd8940fdf),
  2926. 93: uint32(0x9b5fa958),
  2927. 94: uint32(0x1f04330b),
  2928. 95: uint32(0x5ccf958c),
  2929. 96: uint32(0x0e57e573),
  2930. 97: uint32(0x4d9c43f4),
  2931. 98: uint32(0xc9c7d9a7),
  2932. 99: uint32(0x8a0c7f20),
  2933. 100: uint32(0xc170ed00),
  2934. 101: uint32(0x82bb4b87),
  2935. 102: uint32(0x06e0d1d4),
  2936. 103: uint32(0x452b7753),
  2937. 104: uint32(0x9018f595),
  2938. 105: uint32(0xd3d35312),
  2939. 106: uint32(0x5788c941),
  2940. 107: uint32(0x14436fc6),
  2941. 108: uint32(0x5f3ffde6),
  2942. 109: uint32(0x1cf45b61),
  2943. 110: uint32(0x98afc132),
  2944. 111: uint32(0xdb6467b5),
  2945. 112: uint32(0x73ceb464),
  2946. 113: uint32(0x300512e3),
  2947. 114: uint32(0xb45e88b0),
  2948. 115: uint32(0xf7952e37),
  2949. 116: uint32(0xbce9bc17),
  2950. 117: uint32(0xff221a90),
  2951. 118: uint32(0x7b7980c3),
  2952. 119: uint32(0x38b22644),
  2953. 120: uint32(0xed81a482),
  2954. 121: uint32(0xae4a0205),
  2955. 122: uint32(0x2a119856),
  2956. 123: uint32(0x69da3ed1),
  2957. 124: uint32(0x22a6acf1),
  2958. 125: uint32(0x616d0a76),
  2959. 126: uint32(0xe5369025),
  2960. 127: uint32(0xa6fd36a2),
  2961. 128: uint32(0xe8cb8cba),
  2962. 129: uint32(0xab002a3d),
  2963. 130: uint32(0x2f5bb06e),
  2964. 131: uint32(0x6c9016e9),
  2965. 132: uint32(0x27ec84c9),
  2966. 133: uint32(0x6427224e),
  2967. 134: uint32(0xe07cb81d),
  2968. 135: uint32(0xa3b71e9a),
  2969. 136: uint32(0x76849c5c),
  2970. 137: uint32(0x354f3adb),
  2971. 138: uint32(0xb114a088),
  2972. 139: uint32(0xf2df060f),
  2973. 140: uint32(0xb9a3942f),
  2974. 141: uint32(0xfa6832a8),
  2975. 142: uint32(0x7e33a8fb),
  2976. 143: uint32(0x3df80e7c),
  2977. 144: uint32(0x9552ddad),
  2978. 145: uint32(0xd6997b2a),
  2979. 146: uint32(0x52c2e179),
  2980. 147: uint32(0x110947fe),
  2981. 148: uint32(0x5a75d5de),
  2982. 149: uint32(0x19be7359),
  2983. 150: uint32(0x9de5e90a),
  2984. 151: uint32(0xde2e4f8d),
  2985. 152: uint32(0x0b1dcd4b),
  2986. 153: uint32(0x48d66bcc),
  2987. 154: uint32(0xcc8df19f),
  2988. 155: uint32(0x8f465718),
  2989. 156: uint32(0xc43ac538),
  2990. 157: uint32(0x87f163bf),
  2991. 158: uint32(0x03aaf9ec),
  2992. 159: uint32(0x40615f6b),
  2993. 160: uint32(0x12f92f94),
  2994. 161: uint32(0x51328913),
  2995. 162: uint32(0xd5691340),
  2996. 163: uint32(0x96a2b5c7),
  2997. 164: uint32(0xddde27e7),
  2998. 165: uint32(0x9e158160),
  2999. 166: uint32(0x1a4e1b33),
  3000. 167: uint32(0x5985bdb4),
  3001. 168: uint32(0x8cb63f72),
  3002. 169: uint32(0xcf7d99f5),
  3003. 170: uint32(0x4b2603a6),
  3004. 171: uint32(0x08eda521),
  3005. 172: uint32(0x43913701),
  3006. 173: uint32(0x005a9186),
  3007. 174: uint32(0x84010bd5),
  3008. 175: uint32(0xc7caad52),
  3009. 176: uint32(0x6f607e83),
  3010. 177: uint32(0x2cabd804),
  3011. 178: uint32(0xa8f04257),
  3012. 179: uint32(0xeb3be4d0),
  3013. 180: uint32(0xa04776f0),
  3014. 181: uint32(0xe38cd077),
  3015. 182: uint32(0x67d74a24),
  3016. 183: uint32(0x241ceca3),
  3017. 184: uint32(0xf12f6e65),
  3018. 185: uint32(0xb2e4c8e2),
  3019. 186: uint32(0x36bf52b1),
  3020. 187: uint32(0x7574f436),
  3021. 188: uint32(0x3e086616),
  3022. 189: uint32(0x7dc3c091),
  3023. 190: uint32(0xf9985ac2),
  3024. 191: uint32(0xba53fc45),
  3025. 192: uint32(0x1caecae7),
  3026. 193: uint32(0x5f656c60),
  3027. 194: uint32(0xdb3ef633),
  3028. 195: uint32(0x98f550b4),
  3029. 196: uint32(0xd389c294),
  3030. 197: uint32(0x90426413),
  3031. 198: uint32(0x1419fe40),
  3032. 199: uint32(0x57d258c7),
  3033. 200: uint32(0x82e1da01),
  3034. 201: uint32(0xc12a7c86),
  3035. 202: uint32(0x4571e6d5),
  3036. 203: uint32(0x06ba4052),
  3037. 204: uint32(0x4dc6d272),
  3038. 205: uint32(0x0e0d74f5),
  3039. 206: uint32(0x8a56eea6),
  3040. 207: uint32(0xc99d4821),
  3041. 208: uint32(0x61379bf0),
  3042. 209: uint32(0x22fc3d77),
  3043. 210: uint32(0xa6a7a724),
  3044. 211: uint32(0xe56c01a3),
  3045. 212: uint32(0xae109383),
  3046. 213: uint32(0xeddb3504),
  3047. 214: uint32(0x6980af57),
  3048. 215: uint32(0x2a4b09d0),
  3049. 216: uint32(0xff788b16),
  3050. 217: uint32(0xbcb32d91),
  3051. 218: uint32(0x38e8b7c2),
  3052. 219: uint32(0x7b231145),
  3053. 220: uint32(0x305f8365),
  3054. 221: uint32(0x739425e2),
  3055. 222: uint32(0xf7cfbfb1),
  3056. 223: uint32(0xb4041936),
  3057. 224: uint32(0xe69c69c9),
  3058. 225: uint32(0xa557cf4e),
  3059. 226: uint32(0x210c551d),
  3060. 227: uint32(0x62c7f39a),
  3061. 228: uint32(0x29bb61ba),
  3062. 229: uint32(0x6a70c73d),
  3063. 230: uint32(0xee2b5d6e),
  3064. 231: uint32(0xade0fbe9),
  3065. 232: uint32(0x78d3792f),
  3066. 233: uint32(0x3b18dfa8),
  3067. 234: uint32(0xbf4345fb),
  3068. 235: uint32(0xfc88e37c),
  3069. 236: uint32(0xb7f4715c),
  3070. 237: uint32(0xf43fd7db),
  3071. 238: uint32(0x70644d88),
  3072. 239: uint32(0x33afeb0f),
  3073. 240: uint32(0x9b0538de),
  3074. 241: uint32(0xd8ce9e59),
  3075. 242: uint32(0x5c95040a),
  3076. 243: uint32(0x1f5ea28d),
  3077. 244: uint32(0x542230ad),
  3078. 245: uint32(0x17e9962a),
  3079. 246: uint32(0x93b20c79),
  3080. 247: uint32(0xd079aafe),
  3081. 248: uint32(0x054a2838),
  3082. 249: uint32(0x46818ebf),
  3083. 250: uint32(0xc2da14ec),
  3084. 251: uint32(0x8111b26b),
  3085. 252: uint32(0xca6d204b),
  3086. 253: uint32(0x89a686cc),
  3087. 254: uint32(0x0dfd1c9f),
  3088. 255: uint32(0x4e36ba18),
  3089. },
  3090. 1: {
  3091. 1: uint32(0xe1b652ef),
  3092. 2: uint32(0x836bd405),
  3093. 3: uint32(0x62dd86ea),
  3094. 4: uint32(0x06d7a80b),
  3095. 5: uint32(0xe761fae4),
  3096. 6: uint32(0x85bc7c0e),
  3097. 7: uint32(0x640a2ee1),
  3098. 8: uint32(0x0cae5117),
  3099. 9: uint32(0xed1803f8),
  3100. 10: uint32(0x8fc58512),
  3101. 11: uint32(0x6e73d7fd),
  3102. 12: uint32(0x0a79f91c),
  3103. 13: uint32(0xebcfabf3),
  3104. 14: uint32(0x89122d19),
  3105. 15: uint32(0x68a47ff6),
  3106. 16: uint32(0x185ca32e),
  3107. 17: uint32(0xf9eaf1c1),
  3108. 18: uint32(0x9b37772b),
  3109. 19: uint32(0x7a8125c4),
  3110. 20: uint32(0x1e8b0b25),
  3111. 21: uint32(0xff3d59ca),
  3112. 22: uint32(0x9de0df20),
  3113. 23: uint32(0x7c568dcf),
  3114. 24: uint32(0x14f2f239),
  3115. 25: uint32(0xf544a0d6),
  3116. 26: uint32(0x9799263c),
  3117. 27: uint32(0x762f74d3),
  3118. 28: uint32(0x12255a32),
  3119. 29: uint32(0xf39308dd),
  3120. 30: uint32(0x914e8e37),
  3121. 31: uint32(0x70f8dcd8),
  3122. 32: uint32(0x30b8465d),
  3123. 33: uint32(0xd10e14b2),
  3124. 34: uint32(0xb3d39258),
  3125. 35: uint32(0x5265c0b7),
  3126. 36: uint32(0x366fee56),
  3127. 37: uint32(0xd7d9bcb9),
  3128. 38: uint32(0xb5043a53),
  3129. 39: uint32(0x54b268bc),
  3130. 40: uint32(0x3c16174a),
  3131. 41: uint32(0xdda045a5),
  3132. 42: uint32(0xbf7dc34f),
  3133. 43: uint32(0x5ecb91a0),
  3134. 44: uint32(0x3ac1bf41),
  3135. 45: uint32(0xdb77edae),
  3136. 46: uint32(0xb9aa6b44),
  3137. 47: uint32(0x581c39ab),
  3138. 48: uint32(0x28e4e573),
  3139. 49: uint32(0xc952b79c),
  3140. 50: uint32(0xab8f3176),
  3141. 51: uint32(0x4a396399),
  3142. 52: uint32(0x2e334d78),
  3143. 53: uint32(0xcf851f97),
  3144. 54: uint32(0xad58997d),
  3145. 55: uint32(0x4ceecb92),
  3146. 56: uint32(0x244ab464),
  3147. 57: uint32(0xc5fce68b),
  3148. 58: uint32(0xa7216061),
  3149. 59: uint32(0x4697328e),
  3150. 60: uint32(0x229d1c6f),
  3151. 61: uint32(0xc32b4e80),
  3152. 62: uint32(0xa1f6c86a),
  3153. 63: uint32(0x40409a85),
  3154. 64: uint32(0x60708dba),
  3155. 65: uint32(0x81c6df55),
  3156. 66: uint32(0xe31b59bf),
  3157. 67: uint32(0x02ad0b50),
  3158. 68: uint32(0x66a725b1),
  3159. 69: uint32(0x8711775e),
  3160. 70: uint32(0xe5ccf1b4),
  3161. 71: uint32(0x047aa35b),
  3162. 72: uint32(0x6cdedcad),
  3163. 73: uint32(0x8d688e42),
  3164. 74: uint32(0xefb508a8),
  3165. 75: uint32(0x0e035a47),
  3166. 76: uint32(0x6a0974a6),
  3167. 77: uint32(0x8bbf2649),
  3168. 78: uint32(0xe962a0a3),
  3169. 79: uint32(0x08d4f24c),
  3170. 80: uint32(0x782c2e94),
  3171. 81: uint32(0x999a7c7b),
  3172. 82: uint32(0xfb47fa91),
  3173. 83: uint32(0x1af1a87e),
  3174. 84: uint32(0x7efb869f),
  3175. 85: uint32(0x9f4dd470),
  3176. 86: uint32(0xfd90529a),
  3177. 87: uint32(0x1c260075),
  3178. 88: uint32(0x74827f83),
  3179. 89: uint32(0x95342d6c),
  3180. 90: uint32(0xf7e9ab86),
  3181. 91: uint32(0x165ff969),
  3182. 92: uint32(0x7255d788),
  3183. 93: uint32(0x93e38567),
  3184. 94: uint32(0xf13e038d),
  3185. 95: uint32(0x10885162),
  3186. 96: uint32(0x50c8cbe7),
  3187. 97: uint32(0xb17e9908),
  3188. 98: uint32(0xd3a31fe2),
  3189. 99: uint32(0x32154d0d),
  3190. 100: uint32(0x561f63ec),
  3191. 101: uint32(0xb7a93103),
  3192. 102: uint32(0xd574b7e9),
  3193. 103: uint32(0x34c2e506),
  3194. 104: uint32(0x5c669af0),
  3195. 105: uint32(0xbdd0c81f),
  3196. 106: uint32(0xdf0d4ef5),
  3197. 107: uint32(0x3ebb1c1a),
  3198. 108: uint32(0x5ab132fb),
  3199. 109: uint32(0xbb076014),
  3200. 110: uint32(0xd9dae6fe),
  3201. 111: uint32(0x386cb411),
  3202. 112: uint32(0x489468c9),
  3203. 113: uint32(0xa9223a26),
  3204. 114: uint32(0xcbffbccc),
  3205. 115: uint32(0x2a49ee23),
  3206. 116: uint32(0x4e43c0c2),
  3207. 117: uint32(0xaff5922d),
  3208. 118: uint32(0xcd2814c7),
  3209. 119: uint32(0x2c9e4628),
  3210. 120: uint32(0x443a39de),
  3211. 121: uint32(0xa58c6b31),
  3212. 122: uint32(0xc751eddb),
  3213. 123: uint32(0x26e7bf34),
  3214. 124: uint32(0x42ed91d5),
  3215. 125: uint32(0xa35bc33a),
  3216. 126: uint32(0xc18645d0),
  3217. 127: uint32(0x2030173f),
  3218. 128: uint32(0x81e66bae),
  3219. 129: uint32(0x60503941),
  3220. 130: uint32(0x028dbfab),
  3221. 131: uint32(0xe33bed44),
  3222. 132: uint32(0x8731c3a5),
  3223. 133: uint32(0x6687914a),
  3224. 134: uint32(0x045a17a0),
  3225. 135: uint32(0xe5ec454f),
  3226. 136: uint32(0x8d483ab9),
  3227. 137: uint32(0x6cfe6856),
  3228. 138: uint32(0x0e23eebc),
  3229. 139: uint32(0xef95bc53),
  3230. 140: uint32(0x8b9f92b2),
  3231. 141: uint32(0x6a29c05d),
  3232. 142: uint32(0x08f446b7),
  3233. 143: uint32(0xe9421458),
  3234. 144: uint32(0x99bac880),
  3235. 145: uint32(0x780c9a6f),
  3236. 146: uint32(0x1ad11c85),
  3237. 147: uint32(0xfb674e6a),
  3238. 148: uint32(0x9f6d608b),
  3239. 149: uint32(0x7edb3264),
  3240. 150: uint32(0x1c06b48e),
  3241. 151: uint32(0xfdb0e661),
  3242. 152: uint32(0x95149997),
  3243. 153: uint32(0x74a2cb78),
  3244. 154: uint32(0x167f4d92),
  3245. 155: uint32(0xf7c91f7d),
  3246. 156: uint32(0x93c3319c),
  3247. 157: uint32(0x72756373),
  3248. 158: uint32(0x10a8e599),
  3249. 159: uint32(0xf11eb776),
  3250. 160: uint32(0xb15e2df3),
  3251. 161: uint32(0x50e87f1c),
  3252. 162: uint32(0x3235f9f6),
  3253. 163: uint32(0xd383ab19),
  3254. 164: uint32(0xb78985f8),
  3255. 165: uint32(0x563fd717),
  3256. 166: uint32(0x34e251fd),
  3257. 167: uint32(0xd5540312),
  3258. 168: uint32(0xbdf07ce4),
  3259. 169: uint32(0x5c462e0b),
  3260. 170: uint32(0x3e9ba8e1),
  3261. 171: uint32(0xdf2dfa0e),
  3262. 172: uint32(0xbb27d4ef),
  3263. 173: uint32(0x5a918600),
  3264. 174: uint32(0x384c00ea),
  3265. 175: uint32(0xd9fa5205),
  3266. 176: uint32(0xa9028edd),
  3267. 177: uint32(0x48b4dc32),
  3268. 178: uint32(0x2a695ad8),
  3269. 179: uint32(0xcbdf0837),
  3270. 180: uint32(0xafd526d6),
  3271. 181: uint32(0x4e637439),
  3272. 182: uint32(0x2cbef2d3),
  3273. 183: uint32(0xcd08a03c),
  3274. 184: uint32(0xa5acdfca),
  3275. 185: uint32(0x441a8d25),
  3276. 186: uint32(0x26c70bcf),
  3277. 187: uint32(0xc7715920),
  3278. 188: uint32(0xa37b77c1),
  3279. 189: uint32(0x42cd252e),
  3280. 190: uint32(0x2010a3c4),
  3281. 191: uint32(0xc1a6f12b),
  3282. 192: uint32(0xe196e614),
  3283. 193: uint32(0x0020b4fb),
  3284. 194: uint32(0x62fd3211),
  3285. 195: uint32(0x834b60fe),
  3286. 196: uint32(0xe7414e1f),
  3287. 197: uint32(0x06f71cf0),
  3288. 198: uint32(0x642a9a1a),
  3289. 199: uint32(0x859cc8f5),
  3290. 200: uint32(0xed38b703),
  3291. 201: uint32(0x0c8ee5ec),
  3292. 202: uint32(0x6e536306),
  3293. 203: uint32(0x8fe531e9),
  3294. 204: uint32(0xebef1f08),
  3295. 205: uint32(0x0a594de7),
  3296. 206: uint32(0x6884cb0d),
  3297. 207: uint32(0x893299e2),
  3298. 208: uint32(0xf9ca453a),
  3299. 209: uint32(0x187c17d5),
  3300. 210: uint32(0x7aa1913f),
  3301. 211: uint32(0x9b17c3d0),
  3302. 212: uint32(0xff1ded31),
  3303. 213: uint32(0x1eabbfde),
  3304. 214: uint32(0x7c763934),
  3305. 215: uint32(0x9dc06bdb),
  3306. 216: uint32(0xf564142d),
  3307. 217: uint32(0x14d246c2),
  3308. 218: uint32(0x760fc028),
  3309. 219: uint32(0x97b992c7),
  3310. 220: uint32(0xf3b3bc26),
  3311. 221: uint32(0x1205eec9),
  3312. 222: uint32(0x70d86823),
  3313. 223: uint32(0x916e3acc),
  3314. 224: uint32(0xd12ea049),
  3315. 225: uint32(0x3098f2a6),
  3316. 226: uint32(0x5245744c),
  3317. 227: uint32(0xb3f326a3),
  3318. 228: uint32(0xd7f90842),
  3319. 229: uint32(0x364f5aad),
  3320. 230: uint32(0x5492dc47),
  3321. 231: uint32(0xb5248ea8),
  3322. 232: uint32(0xdd80f15e),
  3323. 233: uint32(0x3c36a3b1),
  3324. 234: uint32(0x5eeb255b),
  3325. 235: uint32(0xbf5d77b4),
  3326. 236: uint32(0xdb575955),
  3327. 237: uint32(0x3ae10bba),
  3328. 238: uint32(0x583c8d50),
  3329. 239: uint32(0xb98adfbf),
  3330. 240: uint32(0xc9720367),
  3331. 241: uint32(0x28c45188),
  3332. 242: uint32(0x4a19d762),
  3333. 243: uint32(0xabaf858d),
  3334. 244: uint32(0xcfa5ab6c),
  3335. 245: uint32(0x2e13f983),
  3336. 246: uint32(0x4cce7f69),
  3337. 247: uint32(0xad782d86),
  3338. 248: uint32(0xc5dc5270),
  3339. 249: uint32(0x246a009f),
  3340. 250: uint32(0x46b78675),
  3341. 251: uint32(0xa701d49a),
  3342. 252: uint32(0xc30bfa7b),
  3343. 253: uint32(0x22bda894),
  3344. 254: uint32(0x40602e7e),
  3345. 255: uint32(0xa1d67c91),
  3346. },
  3347. 2: {
  3348. 1: uint32(0x5880e2d7),
  3349. 2: uint32(0xf106b474),
  3350. 3: uint32(0xa98656a3),
  3351. 4: uint32(0xe20d68e9),
  3352. 5: uint32(0xba8d8a3e),
  3353. 6: uint32(0x130bdc9d),
  3354. 7: uint32(0x4b8b3e4a),
  3355. 8: uint32(0x851da109),
  3356. 9: uint32(0xdd9d43de),
  3357. 10: uint32(0x741b157d),
  3358. 11: uint32(0x2c9bf7aa),
  3359. 12: uint32(0x6710c9e0),
  3360. 13: uint32(0x3f902b37),
  3361. 14: uint32(0x96167d94),
  3362. 15: uint32(0xce969f43),
  3363. 16: uint32(0x0a3b4213),
  3364. 17: uint32(0x52bba0c4),
  3365. 18: uint32(0xfb3df667),
  3366. 19: uint32(0xa3bd14b0),
  3367. 20: uint32(0xe8362afa),
  3368. 21: uint32(0xb0b6c82d),
  3369. 22: uint32(0x19309e8e),
  3370. 23: uint32(0x41b07c59),
  3371. 24: uint32(0x8f26e31a),
  3372. 25: uint32(0xd7a601cd),
  3373. 26: uint32(0x7e20576e),
  3374. 27: uint32(0x26a0b5b9),
  3375. 28: uint32(0x6d2b8bf3),
  3376. 29: uint32(0x35ab6924),
  3377. 30: uint32(0x9c2d3f87),
  3378. 31: uint32(0xc4addd50),
  3379. 32: uint32(0x14768426),
  3380. 33: uint32(0x4cf666f1),
  3381. 34: uint32(0xe5703052),
  3382. 35: uint32(0xbdf0d285),
  3383. 36: uint32(0xf67beccf),
  3384. 37: uint32(0xaefb0e18),
  3385. 38: uint32(0x077d58bb),
  3386. 39: uint32(0x5ffdba6c),
  3387. 40: uint32(0x916b252f),
  3388. 41: uint32(0xc9ebc7f8),
  3389. 42: uint32(0x606d915b),
  3390. 43: uint32(0x38ed738c),
  3391. 44: uint32(0x73664dc6),
  3392. 45: uint32(0x2be6af11),
  3393. 46: uint32(0x8260f9b2),
  3394. 47: uint32(0xdae01b65),
  3395. 48: uint32(0x1e4dc635),
  3396. 49: uint32(0x46cd24e2),
  3397. 50: uint32(0xef4b7241),
  3398. 51: uint32(0xb7cb9096),
  3399. 52: uint32(0xfc40aedc),
  3400. 53: uint32(0xa4c04c0b),
  3401. 54: uint32(0x0d461aa8),
  3402. 55: uint32(0x55c6f87f),
  3403. 56: uint32(0x9b50673c),
  3404. 57: uint32(0xc3d085eb),
  3405. 58: uint32(0x6a56d348),
  3406. 59: uint32(0x32d6319f),
  3407. 60: uint32(0x795d0fd5),
  3408. 61: uint32(0x21dded02),
  3409. 62: uint32(0x885bbba1),
  3410. 63: uint32(0xd0db5976),
  3411. 64: uint32(0x28ec084d),
  3412. 65: uint32(0x706cea9a),
  3413. 66: uint32(0xd9eabc39),
  3414. 67: uint32(0x816a5eee),
  3415. 68: uint32(0xcae160a4),
  3416. 69: uint32(0x92618273),
  3417. 70: uint32(0x3be7d4d0),
  3418. 71: uint32(0x63673607),
  3419. 72: uint32(0xadf1a944),
  3420. 73: uint32(0xf5714b93),
  3421. 74: uint32(0x5cf71d30),
  3422. 75: uint32(0x0477ffe7),
  3423. 76: uint32(0x4ffcc1ad),
  3424. 77: uint32(0x177c237a),
  3425. 78: uint32(0xbefa75d9),
  3426. 79: uint32(0xe67a970e),
  3427. 80: uint32(0x22d74a5e),
  3428. 81: uint32(0x7a57a889),
  3429. 82: uint32(0xd3d1fe2a),
  3430. 83: uint32(0x8b511cfd),
  3431. 84: uint32(0xc0da22b7),
  3432. 85: uint32(0x985ac060),
  3433. 86: uint32(0x31dc96c3),
  3434. 87: uint32(0x695c7414),
  3435. 88: uint32(0xa7caeb57),
  3436. 89: uint32(0xff4a0980),
  3437. 90: uint32(0x56cc5f23),
  3438. 91: uint32(0x0e4cbdf4),
  3439. 92: uint32(0x45c783be),
  3440. 93: uint32(0x1d476169),
  3441. 94: uint32(0xb4c137ca),
  3442. 95: uint32(0xec41d51d),
  3443. 96: uint32(0x3c9a8c6b),
  3444. 97: uint32(0x641a6ebc),
  3445. 98: uint32(0xcd9c381f),
  3446. 99: uint32(0x951cdac8),
  3447. 100: uint32(0xde97e482),
  3448. 101: uint32(0x86170655),
  3449. 102: uint32(0x2f9150f6),
  3450. 103: uint32(0x7711b221),
  3451. 104: uint32(0xb9872d62),
  3452. 105: uint32(0xe107cfb5),
  3453. 106: uint32(0x48819916),
  3454. 107: uint32(0x10017bc1),
  3455. 108: uint32(0x5b8a458b),
  3456. 109: uint32(0x030aa75c),
  3457. 110: uint32(0xaa8cf1ff),
  3458. 111: uint32(0xf20c1328),
  3459. 112: uint32(0x36a1ce78),
  3460. 113: uint32(0x6e212caf),
  3461. 114: uint32(0xc7a77a0c),
  3462. 115: uint32(0x9f2798db),
  3463. 116: uint32(0xd4aca691),
  3464. 117: uint32(0x8c2c4446),
  3465. 118: uint32(0x25aa12e5),
  3466. 119: uint32(0x7d2af032),
  3467. 120: uint32(0xb3bc6f71),
  3468. 121: uint32(0xeb3c8da6),
  3469. 122: uint32(0x42badb05),
  3470. 123: uint32(0x1a3a39d2),
  3471. 124: uint32(0x51b10798),
  3472. 125: uint32(0x0931e54f),
  3473. 126: uint32(0xa0b7b3ec),
  3474. 127: uint32(0xf837513b),
  3475. 128: uint32(0x50d8119a),
  3476. 129: uint32(0x0858f34d),
  3477. 130: uint32(0xa1dea5ee),
  3478. 131: uint32(0xf95e4739),
  3479. 132: uint32(0xb2d57973),
  3480. 133: uint32(0xea559ba4),
  3481. 134: uint32(0x43d3cd07),
  3482. 135: uint32(0x1b532fd0),
  3483. 136: uint32(0xd5c5b093),
  3484. 137: uint32(0x8d455244),
  3485. 138: uint32(0x24c304e7),
  3486. 139: uint32(0x7c43e630),
  3487. 140: uint32(0x37c8d87a),
  3488. 141: uint32(0x6f483aad),
  3489. 142: uint32(0xc6ce6c0e),
  3490. 143: uint32(0x9e4e8ed9),
  3491. 144: uint32(0x5ae35389),
  3492. 145: uint32(0x0263b15e),
  3493. 146: uint32(0xabe5e7fd),
  3494. 147: uint32(0xf365052a),
  3495. 148: uint32(0xb8ee3b60),
  3496. 149: uint32(0xe06ed9b7),
  3497. 150: uint32(0x49e88f14),
  3498. 151: uint32(0x11686dc3),
  3499. 152: uint32(0xdffef280),
  3500. 153: uint32(0x877e1057),
  3501. 154: uint32(0x2ef846f4),
  3502. 155: uint32(0x7678a423),
  3503. 156: uint32(0x3df39a69),
  3504. 157: uint32(0x657378be),
  3505. 158: uint32(0xccf52e1d),
  3506. 159: uint32(0x9475ccca),
  3507. 160: uint32(0x44ae95bc),
  3508. 161: uint32(0x1c2e776b),
  3509. 162: uint32(0xb5a821c8),
  3510. 163: uint32(0xed28c31f),
  3511. 164: uint32(0xa6a3fd55),
  3512. 165: uint32(0xfe231f82),
  3513. 166: uint32(0x57a54921),
  3514. 167: uint32(0x0f25abf6),
  3515. 168: uint32(0xc1b334b5),
  3516. 169: uint32(0x9933d662),
  3517. 170: uint32(0x30b580c1),
  3518. 171: uint32(0x68356216),
  3519. 172: uint32(0x23be5c5c),
  3520. 173: uint32(0x7b3ebe8b),
  3521. 174: uint32(0xd2b8e828),
  3522. 175: uint32(0x8a380aff),
  3523. 176: uint32(0x4e95d7af),
  3524. 177: uint32(0x16153578),
  3525. 178: uint32(0xbf9363db),
  3526. 179: uint32(0xe713810c),
  3527. 180: uint32(0xac98bf46),
  3528. 181: uint32(0xf4185d91),
  3529. 182: uint32(0x5d9e0b32),
  3530. 183: uint32(0x051ee9e5),
  3531. 184: uint32(0xcb8876a6),
  3532. 185: uint32(0x93089471),
  3533. 186: uint32(0x3a8ec2d2),
  3534. 187: uint32(0x620e2005),
  3535. 188: uint32(0x29851e4f),
  3536. 189: uint32(0x7105fc98),
  3537. 190: uint32(0xd883aa3b),
  3538. 191: uint32(0x800348ec),
  3539. 192: uint32(0x783419d7),
  3540. 193: uint32(0x20b4fb00),
  3541. 194: uint32(0x8932ada3),
  3542. 195: uint32(0xd1b24f74),
  3543. 196: uint32(0x9a39713e),
  3544. 197: uint32(0xc2b993e9),
  3545. 198: uint32(0x6b3fc54a),
  3546. 199: uint32(0x33bf279d),
  3547. 200: uint32(0xfd29b8de),
  3548. 201: uint32(0xa5a95a09),
  3549. 202: uint32(0x0c2f0caa),
  3550. 203: uint32(0x54afee7d),
  3551. 204: uint32(0x1f24d037),
  3552. 205: uint32(0x47a432e0),
  3553. 206: uint32(0xee226443),
  3554. 207: uint32(0xb6a28694),
  3555. 208: uint32(0x720f5bc4),
  3556. 209: uint32(0x2a8fb913),
  3557. 210: uint32(0x8309efb0),
  3558. 211: uint32(0xdb890d67),
  3559. 212: uint32(0x9002332d),
  3560. 213: uint32(0xc882d1fa),
  3561. 214: uint32(0x61048759),
  3562. 215: uint32(0x3984658e),
  3563. 216: uint32(0xf712facd),
  3564. 217: uint32(0xaf92181a),
  3565. 218: uint32(0x06144eb9),
  3566. 219: uint32(0x5e94ac6e),
  3567. 220: uint32(0x151f9224),
  3568. 221: uint32(0x4d9f70f3),
  3569. 222: uint32(0xe4192650),
  3570. 223: uint32(0xbc99c487),
  3571. 224: uint32(0x6c429df1),
  3572. 225: uint32(0x34c27f26),
  3573. 226: uint32(0x9d442985),
  3574. 227: uint32(0xc5c4cb52),
  3575. 228: uint32(0x8e4ff518),
  3576. 229: uint32(0xd6cf17cf),
  3577. 230: uint32(0x7f49416c),
  3578. 231: uint32(0x27c9a3bb),
  3579. 232: uint32(0xe95f3cf8),
  3580. 233: uint32(0xb1dfde2f),
  3581. 234: uint32(0x1859888c),
  3582. 235: uint32(0x40d96a5b),
  3583. 236: uint32(0x0b525411),
  3584. 237: uint32(0x53d2b6c6),
  3585. 238: uint32(0xfa54e065),
  3586. 239: uint32(0xa2d402b2),
  3587. 240: uint32(0x6679dfe2),
  3588. 241: uint32(0x3ef93d35),
  3589. 242: uint32(0x977f6b96),
  3590. 243: uint32(0xcfff8941),
  3591. 244: uint32(0x8474b70b),
  3592. 245: uint32(0xdcf455dc),
  3593. 246: uint32(0x7572037f),
  3594. 247: uint32(0x2df2e1a8),
  3595. 248: uint32(0xe3647eeb),
  3596. 249: uint32(0xbbe49c3c),
  3597. 250: uint32(0x1262ca9f),
  3598. 251: uint32(0x4ae22848),
  3599. 252: uint32(0x01691602),
  3600. 253: uint32(0x59e9f4d5),
  3601. 254: uint32(0xf06fa276),
  3602. 255: uint32(0xa8ef40a1),
  3603. },
  3604. 3: {
  3605. 1: uint32(0x463b6765),
  3606. 2: uint32(0x8c76ceca),
  3607. 3: uint32(0xca4da9af),
  3608. 4: uint32(0x59ebed4e),
  3609. 5: uint32(0x1fd08a2b),
  3610. 6: uint32(0xd59d2384),
  3611. 7: uint32(0x93a644e1),
  3612. 8: uint32(0xb2d6db9d),
  3613. 9: uint32(0xf4edbcf8),
  3614. 10: uint32(0x3ea01557),
  3615. 11: uint32(0x789b7232),
  3616. 12: uint32(0xeb3d36d3),
  3617. 13: uint32(0xad0651b6),
  3618. 14: uint32(0x674bf819),
  3619. 15: uint32(0x21709f7c),
  3620. 16: uint32(0x25abc6e0),
  3621. 17: uint32(0x6390a185),
  3622. 18: uint32(0xa9dd082a),
  3623. 19: uint32(0xefe66f4f),
  3624. 20: uint32(0x7c402bae),
  3625. 21: uint32(0x3a7b4ccb),
  3626. 22: uint32(0xf036e564),
  3627. 23: uint32(0xb60d8201),
  3628. 24: uint32(0x977d1d7d),
  3629. 25: uint32(0xd1467a18),
  3630. 26: uint32(0x1b0bd3b7),
  3631. 27: uint32(0x5d30b4d2),
  3632. 28: uint32(0xce96f033),
  3633. 29: uint32(0x88ad9756),
  3634. 30: uint32(0x42e03ef9),
  3635. 31: uint32(0x04db599c),
  3636. 32: uint32(0x0b50fc1a),
  3637. 33: uint32(0x4d6b9b7f),
  3638. 34: uint32(0x872632d0),
  3639. 35: uint32(0xc11d55b5),
  3640. 36: uint32(0x52bb1154),
  3641. 37: uint32(0x14807631),
  3642. 38: uint32(0xdecddf9e),
  3643. 39: uint32(0x98f6b8fb),
  3644. 40: uint32(0xb9862787),
  3645. 41: uint32(0xffbd40e2),
  3646. 42: uint32(0x35f0e94d),
  3647. 43: uint32(0x73cb8e28),
  3648. 44: uint32(0xe06dcac9),
  3649. 45: uint32(0xa656adac),
  3650. 46: uint32(0x6c1b0403),
  3651. 47: uint32(0x2a206366),
  3652. 48: uint32(0x2efb3afa),
  3653. 49: uint32(0x68c05d9f),
  3654. 50: uint32(0xa28df430),
  3655. 51: uint32(0xe4b69355),
  3656. 52: uint32(0x7710d7b4),
  3657. 53: uint32(0x312bb0d1),
  3658. 54: uint32(0xfb66197e),
  3659. 55: uint32(0xbd5d7e1b),
  3660. 56: uint32(0x9c2de167),
  3661. 57: uint32(0xda168602),
  3662. 58: uint32(0x105b2fad),
  3663. 59: uint32(0x566048c8),
  3664. 60: uint32(0xc5c60c29),
  3665. 61: uint32(0x83fd6b4c),
  3666. 62: uint32(0x49b0c2e3),
  3667. 63: uint32(0x0f8ba586),
  3668. 64: uint32(0x16a0f835),
  3669. 65: uint32(0x509b9f50),
  3670. 66: uint32(0x9ad636ff),
  3671. 67: uint32(0xdced519a),
  3672. 68: uint32(0x4f4b157b),
  3673. 69: uint32(0x0970721e),
  3674. 70: uint32(0xc33ddbb1),
  3675. 71: uint32(0x8506bcd4),
  3676. 72: uint32(0xa47623a8),
  3677. 73: uint32(0xe24d44cd),
  3678. 74: uint32(0x2800ed62),
  3679. 75: uint32(0x6e3b8a07),
  3680. 76: uint32(0xfd9dcee6),
  3681. 77: uint32(0xbba6a983),
  3682. 78: uint32(0x71eb002c),
  3683. 79: uint32(0x37d06749),
  3684. 80: uint32(0x330b3ed5),
  3685. 81: uint32(0x753059b0),
  3686. 82: uint32(0xbf7df01f),
  3687. 83: uint32(0xf946977a),
  3688. 84: uint32(0x6ae0d39b),
  3689. 85: uint32(0x2cdbb4fe),
  3690. 86: uint32(0xe6961d51),
  3691. 87: uint32(0xa0ad7a34),
  3692. 88: uint32(0x81dde548),
  3693. 89: uint32(0xc7e6822d),
  3694. 90: uint32(0x0dab2b82),
  3695. 91: uint32(0x4b904ce7),
  3696. 92: uint32(0xd8360806),
  3697. 93: uint32(0x9e0d6f63),
  3698. 94: uint32(0x5440c6cc),
  3699. 95: uint32(0x127ba1a9),
  3700. 96: uint32(0x1df0042f),
  3701. 97: uint32(0x5bcb634a),
  3702. 98: uint32(0x9186cae5),
  3703. 99: uint32(0xd7bdad80),
  3704. 100: uint32(0x441be961),
  3705. 101: uint32(0x02208e04),
  3706. 102: uint32(0xc86d27ab),
  3707. 103: uint32(0x8e5640ce),
  3708. 104: uint32(0xaf26dfb2),
  3709. 105: uint32(0xe91db8d7),
  3710. 106: uint32(0x23501178),
  3711. 107: uint32(0x656b761d),
  3712. 108: uint32(0xf6cd32fc),
  3713. 109: uint32(0xb0f65599),
  3714. 110: uint32(0x7abbfc36),
  3715. 111: uint32(0x3c809b53),
  3716. 112: uint32(0x385bc2cf),
  3717. 113: uint32(0x7e60a5aa),
  3718. 114: uint32(0xb42d0c05),
  3719. 115: uint32(0xf2166b60),
  3720. 116: uint32(0x61b02f81),
  3721. 117: uint32(0x278b48e4),
  3722. 118: uint32(0xedc6e14b),
  3723. 119: uint32(0xabfd862e),
  3724. 120: uint32(0x8a8d1952),
  3725. 121: uint32(0xccb67e37),
  3726. 122: uint32(0x06fbd798),
  3727. 123: uint32(0x40c0b0fd),
  3728. 124: uint32(0xd366f41c),
  3729. 125: uint32(0x955d9379),
  3730. 126: uint32(0x5f103ad6),
  3731. 127: uint32(0x192b5db3),
  3732. 128: uint32(0x2c40f16b),
  3733. 129: uint32(0x6a7b960e),
  3734. 130: uint32(0xa0363fa1),
  3735. 131: uint32(0xe60d58c4),
  3736. 132: uint32(0x75ab1c25),
  3737. 133: uint32(0x33907b40),
  3738. 134: uint32(0xf9ddd2ef),
  3739. 135: uint32(0xbfe6b58a),
  3740. 136: uint32(0x9e962af6),
  3741. 137: uint32(0xd8ad4d93),
  3742. 138: uint32(0x12e0e43c),
  3743. 139: uint32(0x54db8359),
  3744. 140: uint32(0xc77dc7b8),
  3745. 141: uint32(0x8146a0dd),
  3746. 142: uint32(0x4b0b0972),
  3747. 143: uint32(0x0d306e17),
  3748. 144: uint32(0x09eb378b),
  3749. 145: uint32(0x4fd050ee),
  3750. 146: uint32(0x859df941),
  3751. 147: uint32(0xc3a69e24),
  3752. 148: uint32(0x5000dac5),
  3753. 149: uint32(0x163bbda0),
  3754. 150: uint32(0xdc76140f),
  3755. 151: uint32(0x9a4d736a),
  3756. 152: uint32(0xbb3dec16),
  3757. 153: uint32(0xfd068b73),
  3758. 154: uint32(0x374b22dc),
  3759. 155: uint32(0x717045b9),
  3760. 156: uint32(0xe2d60158),
  3761. 157: uint32(0xa4ed663d),
  3762. 158: uint32(0x6ea0cf92),
  3763. 159: uint32(0x289ba8f7),
  3764. 160: uint32(0x27100d71),
  3765. 161: uint32(0x612b6a14),
  3766. 162: uint32(0xab66c3bb),
  3767. 163: uint32(0xed5da4de),
  3768. 164: uint32(0x7efbe03f),
  3769. 165: uint32(0x38c0875a),
  3770. 166: uint32(0xf28d2ef5),
  3771. 167: uint32(0xb4b64990),
  3772. 168: uint32(0x95c6d6ec),
  3773. 169: uint32(0xd3fdb189),
  3774. 170: uint32(0x19b01826),
  3775. 171: uint32(0x5f8b7f43),
  3776. 172: uint32(0xcc2d3ba2),
  3777. 173: uint32(0x8a165cc7),
  3778. 174: uint32(0x405bf568),
  3779. 175: uint32(0x0660920d),
  3780. 176: uint32(0x02bbcb91),
  3781. 177: uint32(0x4480acf4),
  3782. 178: uint32(0x8ecd055b),
  3783. 179: uint32(0xc8f6623e),
  3784. 180: uint32(0x5b5026df),
  3785. 181: uint32(0x1d6b41ba),
  3786. 182: uint32(0xd726e815),
  3787. 183: uint32(0x911d8f70),
  3788. 184: uint32(0xb06d100c),
  3789. 185: uint32(0xf6567769),
  3790. 186: uint32(0x3c1bdec6),
  3791. 187: uint32(0x7a20b9a3),
  3792. 188: uint32(0xe986fd42),
  3793. 189: uint32(0xafbd9a27),
  3794. 190: uint32(0x65f03388),
  3795. 191: uint32(0x23cb54ed),
  3796. 192: uint32(0x3ae0095e),
  3797. 193: uint32(0x7cdb6e3b),
  3798. 194: uint32(0xb696c794),
  3799. 195: uint32(0xf0ada0f1),
  3800. 196: uint32(0x630be410),
  3801. 197: uint32(0x25308375),
  3802. 198: uint32(0xef7d2ada),
  3803. 199: uint32(0xa9464dbf),
  3804. 200: uint32(0x8836d2c3),
  3805. 201: uint32(0xce0db5a6),
  3806. 202: uint32(0x04401c09),
  3807. 203: uint32(0x427b7b6c),
  3808. 204: uint32(0xd1dd3f8d),
  3809. 205: uint32(0x97e658e8),
  3810. 206: uint32(0x5dabf147),
  3811. 207: uint32(0x1b909622),
  3812. 208: uint32(0x1f4bcfbe),
  3813. 209: uint32(0x5970a8db),
  3814. 210: uint32(0x933d0174),
  3815. 211: uint32(0xd5066611),
  3816. 212: uint32(0x46a022f0),
  3817. 213: uint32(0x009b4595),
  3818. 214: uint32(0xcad6ec3a),
  3819. 215: uint32(0x8ced8b5f),
  3820. 216: uint32(0xad9d1423),
  3821. 217: uint32(0xeba67346),
  3822. 218: uint32(0x21ebdae9),
  3823. 219: uint32(0x67d0bd8c),
  3824. 220: uint32(0xf476f96d),
  3825. 221: uint32(0xb24d9e08),
  3826. 222: uint32(0x780037a7),
  3827. 223: uint32(0x3e3b50c2),
  3828. 224: uint32(0x31b0f544),
  3829. 225: uint32(0x778b9221),
  3830. 226: uint32(0xbdc63b8e),
  3831. 227: uint32(0xfbfd5ceb),
  3832. 228: uint32(0x685b180a),
  3833. 229: uint32(0x2e607f6f),
  3834. 230: uint32(0xe42dd6c0),
  3835. 231: uint32(0xa216b1a5),
  3836. 232: uint32(0x83662ed9),
  3837. 233: uint32(0xc55d49bc),
  3838. 234: uint32(0x0f10e013),
  3839. 235: uint32(0x492b8776),
  3840. 236: uint32(0xda8dc397),
  3841. 237: uint32(0x9cb6a4f2),
  3842. 238: uint32(0x56fb0d5d),
  3843. 239: uint32(0x10c06a38),
  3844. 240: uint32(0x141b33a4),
  3845. 241: uint32(0x522054c1),
  3846. 242: uint32(0x986dfd6e),
  3847. 243: uint32(0xde569a0b),
  3848. 244: uint32(0x4df0deea),
  3849. 245: uint32(0x0bcbb98f),
  3850. 246: uint32(0xc1861020),
  3851. 247: uint32(0x87bd7745),
  3852. 248: uint32(0xa6cde839),
  3853. 249: uint32(0xe0f68f5c),
  3854. 250: uint32(0x2abb26f3),
  3855. 251: uint32(0x6c804196),
  3856. 252: uint32(0xff260577),
  3857. 253: uint32(0xb91d6212),
  3858. 254: uint32(0x7350cbbd),
  3859. 255: uint32(0x356bacd8),
  3860. },
  3861. }
  3862. var _x2n_table = [32]Tz_crc_t{
  3863. 0: uint32(0x40000000),
  3864. 1: uint32(0x20000000),
  3865. 2: uint32(0x08000000),
  3866. 3: uint32(0x00800000),
  3867. 4: uint32(0x00008000),
  3868. 5: uint32(0xedb88320),
  3869. 6: uint32(0xb1e6b092),
  3870. 7: uint32(0xa06a2517),
  3871. 8: uint32(0xed627dae),
  3872. 9: uint32(0x88d14467),
  3873. 10: uint32(0xd7bbfe6a),
  3874. 11: uint32(0xec447f11),
  3875. 12: uint32(0x8e7ea170),
  3876. 13: uint32(0x6427800e),
  3877. 14: uint32(0x4d47bae0),
  3878. 15: uint32(0x09fe548f),
  3879. 16: uint32(0x83852d0f),
  3880. 17: uint32(0x30362f1a),
  3881. 18: uint32(0x7b5a9cc3),
  3882. 19: uint32(0x31fec169),
  3883. 20: uint32(0x9fec022a),
  3884. 21: uint32(0x6c8dedc4),
  3885. 22: uint32(0x15d6874d),
  3886. 23: uint32(0x5fde7a4e),
  3887. 24: uint32(0xbad90e37),
  3888. 25: uint32(0x2e4e5eef),
  3889. 26: uint32(0x4eaba214),
  3890. 27: uint32(0xa8a472c0),
  3891. 28: uint32(0x429a969e),
  3892. 29: uint32(0x148d302a),
  3893. 30: uint32(0xc40ba6d0),
  3894. 31: uint32(0xc4e22c3c),
  3895. }
  3896. /* CRC polynomial. */
  3897. // C documentation
  3898. //
  3899. // /*
  3900. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  3901. // reflected. For speed, this requires that a not be zero.
  3902. // */
  3903. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  3904. var m, p Tz_crc_t
  3905. var v2 uint32
  3906. _, _, _ = m, p, v2
  3907. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  3908. p = uint32(0)
  3909. for {
  3910. if a&m != 0 {
  3911. p ^= b
  3912. if a&(m-uint32(1)) == uint32(0) {
  3913. break
  3914. }
  3915. }
  3916. m >>= uint32(1)
  3917. if b&uint32(1) != 0 {
  3918. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  3919. } else {
  3920. v2 = b >> int32(1)
  3921. }
  3922. b = v2
  3923. goto _1
  3924. _1:
  3925. }
  3926. return p
  3927. }
  3928. // C documentation
  3929. //
  3930. // /*
  3931. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  3932. // initialized.
  3933. // */
  3934. func _x2nmodp(tls *libc.TLS, n Toff_t, k uint32) (r Tz_crc_t) {
  3935. var p Tz_crc_t
  3936. _ = p
  3937. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  3938. for n != 0 {
  3939. if n&int64(1) != 0 {
  3940. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  3941. }
  3942. n >>= int64(1)
  3943. k++
  3944. }
  3945. return p
  3946. }
  3947. // C documentation
  3948. //
  3949. // /* =========================================================================
  3950. // * This function can be used by asm versions of crc32(), and to force the
  3951. // * generation of the CRC tables in a threaded application.
  3952. // */
  3953. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  3954. return uintptr(unsafe.Pointer(&_crc_table))
  3955. }
  3956. /* =========================================================================
  3957. * Use ARM machine instructions if available. This will compute the CRC about
  3958. * ten times faster than the braided calculation. This code does not check for
  3959. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  3960. * only be defined if the compilation specifies an ARM processor architecture
  3961. * that has the instructions. For example, compiling with -march=armv8.1-a or
  3962. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  3963. * instructions.
  3964. */
  3965. // C documentation
  3966. //
  3967. // /*
  3968. // Return the CRC of the W bytes in the word_t data, taking the
  3969. // least-significant byte of the word as the first byte of data, without any pre
  3970. // or post conditioning. This is used to combine the CRCs of each braid.
  3971. // */
  3972. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  3973. var k int32
  3974. _ = k
  3975. k = 0
  3976. for {
  3977. if !(k < int32(4)) {
  3978. break
  3979. }
  3980. data = data>>libc.Int32FromInt32(8) ^ _crc_table[data&uint32(0xff)]
  3981. goto _1
  3982. _1:
  3983. ;
  3984. k++
  3985. }
  3986. return data
  3987. }
  3988. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  3989. var k int32
  3990. _ = k
  3991. k = 0
  3992. for {
  3993. if !(k < int32(4)) {
  3994. break
  3995. }
  3996. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(4)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint32(0xff)]
  3997. goto _1
  3998. _1:
  3999. ;
  4000. k++
  4001. }
  4002. return data
  4003. }
  4004. // C documentation
  4005. //
  4006. // /* ========================================================================= */
  4007. func Xcrc32_z(tls *libc.TLS, crc uint32, buf uintptr, len1 Tz_size_t) (r uint32) {
  4008. bp := tls.Alloc(16)
  4009. defer tls.Free(16)
  4010. var blks, v2, v4 Tz_size_t
  4011. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  4012. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  4013. var k int32
  4014. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  4015. var _ /* endian at bp+0 */ uint32
  4016. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  4017. /* Return initial CRC, if requested. */
  4018. if buf == uintptr(m_Z_NULL) {
  4019. return uint32(0)
  4020. }
  4021. /* Pre-condition the CRC */
  4022. crc = ^crc & uint32(0xffffffff)
  4023. /* If provided enough bytes, do a braided CRC calculation. */
  4024. if len1 >= libc.Uint32FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4)+libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) {
  4025. /* Compute the CRC up to a z_word_t boundary. */
  4026. for len1 != 0 && uint32(buf)&libc.Uint32FromInt32(libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) != uint32(0) {
  4027. len1--
  4028. v1 = buf
  4029. buf++
  4030. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v1))))&uint32(0xff)]
  4031. }
  4032. /* Compute the CRC on as many N z_word_t blocks as are available. */
  4033. blks = len1 / libc.Uint32FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4))
  4034. len1 -= blks * uint32(m_N) * uint32(4)
  4035. words = buf
  4036. /* Do endian check at execution time instead of compile time, since ARM
  4037. processors can change the endianness at execution time. If the
  4038. compiler knows what the endianness will be, it can optimize out the
  4039. check and the unused branch. */
  4040. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  4041. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  4042. /* Initialize the CRC for each braid. */
  4043. crc0 = crc
  4044. crc1 = uint32(0)
  4045. crc2 = uint32(0)
  4046. crc3 = uint32(0)
  4047. crc4 = uint32(0)
  4048. /*
  4049. Process the first blks-1 blocks, computing the CRCs on each braid
  4050. independently.
  4051. */
  4052. for {
  4053. blks--
  4054. v2 = blks
  4055. if !(v2 != 0) {
  4056. break
  4057. }
  4058. /* Load the word for each braid into registers. */
  4059. word0 = crc0 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  4060. word1 = crc1 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  4061. word2 = crc2 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  4062. word3 = crc3 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  4063. word4 = crc4 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  4064. words += uintptr(m_N) * 4
  4065. /* Compute and update the CRC for each word. The loop should
  4066. get unrolled. */
  4067. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint32(0xff))*4))
  4068. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint32(0xff))*4))
  4069. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint32(0xff))*4))
  4070. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint32(0xff))*4))
  4071. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint32(0xff))*4))
  4072. k = int32(1)
  4073. for {
  4074. if !(k < int32(4)) {
  4075. break
  4076. }
  4077. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4078. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4079. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4080. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4081. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4082. goto _3
  4083. _3:
  4084. ;
  4085. k++
  4086. }
  4087. }
  4088. /*
  4089. Process the last block, combining the CRCs of the N braids at the
  4090. same time.
  4091. */
  4092. crc = _crc_word(tls, crc0^*(*Tz_word_t)(unsafe.Pointer(words)))
  4093. crc = _crc_word(tls, crc1^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^crc)
  4094. crc = _crc_word(tls, crc2^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^crc)
  4095. crc = _crc_word(tls, crc3^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^crc)
  4096. crc = _crc_word(tls, crc4^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^crc)
  4097. words += uintptr(m_N) * 4
  4098. } else {
  4099. /* Initialize the CRC for each braid. */
  4100. crc01 = _byte_swap(tls, crc)
  4101. crc11 = uint32(0)
  4102. crc21 = uint32(0)
  4103. crc31 = uint32(0)
  4104. crc41 = uint32(0)
  4105. /*
  4106. Process the first blks-1 blocks, computing the CRCs on each braid
  4107. independently.
  4108. */
  4109. for {
  4110. blks--
  4111. v4 = blks
  4112. if !(v4 != 0) {
  4113. break
  4114. }
  4115. /* Load the word for each braid into registers. */
  4116. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  4117. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  4118. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  4119. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  4120. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  4121. words += uintptr(m_N) * 4
  4122. /* Compute and update the CRC for each word. The loop should
  4123. get unrolled. */
  4124. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint32(0xff))*4))
  4125. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint32(0xff))*4))
  4126. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint32(0xff))*4))
  4127. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint32(0xff))*4))
  4128. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint32(0xff))*4))
  4129. k = int32(1)
  4130. for {
  4131. if !(k < int32(4)) {
  4132. break
  4133. }
  4134. 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))
  4135. 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))
  4136. 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))
  4137. 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))
  4138. 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))
  4139. goto _5
  4140. _5:
  4141. ;
  4142. k++
  4143. }
  4144. }
  4145. /*
  4146. Process the last block, combining the CRCs of the N braids at the
  4147. same time.
  4148. */
  4149. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  4150. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^comb)
  4151. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^comb)
  4152. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^comb)
  4153. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^comb)
  4154. words += uintptr(m_N) * 4
  4155. crc = _byte_swap(tls, comb)
  4156. }
  4157. /*
  4158. Update the pointer to the remaining bytes to process.
  4159. */
  4160. buf = words
  4161. }
  4162. /* Complete the computation of the CRC on any remaining bytes. */
  4163. for len1 >= uint32(8) {
  4164. len1 -= uint32(8)
  4165. v6 = buf
  4166. buf++
  4167. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v6))))&uint32(0xff)]
  4168. v7 = buf
  4169. buf++
  4170. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v7))))&uint32(0xff)]
  4171. v8 = buf
  4172. buf++
  4173. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v8))))&uint32(0xff)]
  4174. v9 = buf
  4175. buf++
  4176. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v9))))&uint32(0xff)]
  4177. v10 = buf
  4178. buf++
  4179. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v10))))&uint32(0xff)]
  4180. v11 = buf
  4181. buf++
  4182. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v11))))&uint32(0xff)]
  4183. v12 = buf
  4184. buf++
  4185. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v12))))&uint32(0xff)]
  4186. v13 = buf
  4187. buf++
  4188. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v13))))&uint32(0xff)]
  4189. }
  4190. for len1 != 0 {
  4191. len1--
  4192. v14 = buf
  4193. buf++
  4194. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v14))))&uint32(0xff)]
  4195. }
  4196. /* Return the CRC, post-conditioned. */
  4197. return crc ^ uint32(0xffffffff)
  4198. }
  4199. // C documentation
  4200. //
  4201. // /* ========================================================================= */
  4202. func Xcrc32(tls *libc.TLS, crc uint32, buf uintptr, len1 TuInt) (r uint32) {
  4203. return Xcrc32_z(tls, crc, buf, len1)
  4204. }
  4205. // C documentation
  4206. //
  4207. // /* ========================================================================= */
  4208. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4209. return _multmodp(tls, _x2nmodp(tls, len2, uint32(3)), crc1) ^ crc2&uint32(0xffffffff)
  4210. }
  4211. // C documentation
  4212. //
  4213. // /* ========================================================================= */
  4214. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4215. return Xcrc32_combine64(tls, crc1, crc2, len2)
  4216. }
  4217. // C documentation
  4218. //
  4219. // /* ========================================================================= */
  4220. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4221. return _x2nmodp(tls, len2, uint32(3))
  4222. }
  4223. // C documentation
  4224. //
  4225. // /* ========================================================================= */
  4226. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4227. return Xcrc32_combine_gen64(tls, len2)
  4228. }
  4229. // C documentation
  4230. //
  4231. // /* ========================================================================= */
  4232. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  4233. return _multmodp(tls, op, crc1) ^ crc2&uint32(0xffffffff)
  4234. }
  4235. const m_BL_CODES = 19
  4236. const m_BUSY_STATE = 113
  4237. const m_Buf_size = 16
  4238. const m_COMMENT_STATE = 91
  4239. const m_D_CODES = 30
  4240. const m_EXTRA_STATE = 69
  4241. const m_FINISH_STATE = 666
  4242. const m_GZIP_STATE = 57
  4243. const m_HCRC_STATE = 103
  4244. const m_INIT_STATE = 42
  4245. const m_LENGTH_CODES = 29
  4246. const m_LITERALS = 256
  4247. const m_LIT_BUFS = 4
  4248. const m_MAX_BITS = 15
  4249. const m_MAX_STORED = 65535
  4250. const m_NAME_STATE = 73
  4251. const m_NIL = 0
  4252. const m_PRESET_DICT1 = 32
  4253. const m_TOO_FAR = 4096
  4254. const m_WIN_INIT = "MAX_MATCH"
  4255. const m_max_insert_length = "max_lazy_match"
  4256. type Tinternal_state = struct {
  4257. Fstrm Tz_streamp
  4258. Fstatus int32
  4259. Fpending_buf uintptr
  4260. Fpending_buf_size Tulg
  4261. Fpending_out uintptr
  4262. Fpending Tulg
  4263. Fwrap int32
  4264. Fgzhead Tgz_headerp
  4265. Fgzindex Tulg
  4266. Fmethod TByte
  4267. Flast_flush int32
  4268. Fw_size TuInt
  4269. Fw_bits TuInt
  4270. Fw_mask TuInt
  4271. Fwindow uintptr
  4272. Fwindow_size Tulg
  4273. Fprev uintptr
  4274. Fhead uintptr
  4275. Fins_h TuInt
  4276. Fhash_size TuInt
  4277. Fhash_bits TuInt
  4278. Fhash_mask TuInt
  4279. Fhash_shift TuInt
  4280. Fblock_start int32
  4281. Fmatch_length TuInt
  4282. Fprev_match TIPos
  4283. Fmatch_available int32
  4284. Fstrstart TuInt
  4285. Fmatch_start TuInt
  4286. Flookahead TuInt
  4287. Fprev_length TuInt
  4288. Fmax_chain_length TuInt
  4289. Fmax_lazy_match TuInt
  4290. Flevel int32
  4291. Fstrategy int32
  4292. Fgood_match TuInt
  4293. Fnice_match int32
  4294. Fdyn_ltree [573]Tct_data_s
  4295. Fdyn_dtree [61]Tct_data_s
  4296. Fbl_tree [39]Tct_data_s
  4297. Fl_desc Ttree_desc_s
  4298. Fd_desc Ttree_desc_s
  4299. Fbl_desc Ttree_desc_s
  4300. Fbl_count [16]Tush
  4301. Fheap [573]int32
  4302. Fheap_len int32
  4303. Fheap_max int32
  4304. Fdepth [573]Tuch
  4305. Fsym_buf uintptr
  4306. Flit_bufsize TuInt
  4307. Fsym_next TuInt
  4308. Fsym_end TuInt
  4309. Fopt_len Tulg
  4310. Fstatic_len Tulg
  4311. Fmatches TuInt
  4312. Finsert TuInt
  4313. Fbi_buf Tush
  4314. Fbi_valid int32
  4315. Fhigh_water Tulg
  4316. }
  4317. type Tct_data = struct {
  4318. Ffc struct {
  4319. Fcode [0]Tush
  4320. Ffreq Tush
  4321. }
  4322. Fdl struct {
  4323. Flen1 [0]Tush
  4324. Fdad Tush
  4325. }
  4326. }
  4327. type Tct_data_s = Tct_data
  4328. type Ttree_desc = struct {
  4329. Fdyn_tree uintptr
  4330. Fmax_code int32
  4331. Fstat_desc uintptr
  4332. }
  4333. type Ttree_desc_s = Ttree_desc
  4334. type TPos = uint16
  4335. type TPosf = uint16
  4336. type TIPos = uint32
  4337. type Tdeflate_state = struct {
  4338. Fstrm Tz_streamp
  4339. Fstatus int32
  4340. Fpending_buf uintptr
  4341. Fpending_buf_size Tulg
  4342. Fpending_out uintptr
  4343. Fpending Tulg
  4344. Fwrap int32
  4345. Fgzhead Tgz_headerp
  4346. Fgzindex Tulg
  4347. Fmethod TByte
  4348. Flast_flush int32
  4349. Fw_size TuInt
  4350. Fw_bits TuInt
  4351. Fw_mask TuInt
  4352. Fwindow uintptr
  4353. Fwindow_size Tulg
  4354. Fprev uintptr
  4355. Fhead uintptr
  4356. Fins_h TuInt
  4357. Fhash_size TuInt
  4358. Fhash_bits TuInt
  4359. Fhash_mask TuInt
  4360. Fhash_shift TuInt
  4361. Fblock_start int32
  4362. Fmatch_length TuInt
  4363. Fprev_match TIPos
  4364. Fmatch_available int32
  4365. Fstrstart TuInt
  4366. Fmatch_start TuInt
  4367. Flookahead TuInt
  4368. Fprev_length TuInt
  4369. Fmax_chain_length TuInt
  4370. Fmax_lazy_match TuInt
  4371. Flevel int32
  4372. Fstrategy int32
  4373. Fgood_match TuInt
  4374. Fnice_match int32
  4375. Fdyn_ltree [573]Tct_data_s
  4376. Fdyn_dtree [61]Tct_data_s
  4377. Fbl_tree [39]Tct_data_s
  4378. Fl_desc Ttree_desc_s
  4379. Fd_desc Ttree_desc_s
  4380. Fbl_desc Ttree_desc_s
  4381. Fbl_count [16]Tush
  4382. Fheap [573]int32
  4383. Fheap_len int32
  4384. Fheap_max int32
  4385. Fdepth [573]Tuch
  4386. Fsym_buf uintptr
  4387. Flit_bufsize TuInt
  4388. Fsym_next TuInt
  4389. Fsym_end TuInt
  4390. Fopt_len Tulg
  4391. Fstatic_len Tulg
  4392. Fmatches TuInt
  4393. Finsert TuInt
  4394. Fbi_buf Tush
  4395. Fbi_valid int32
  4396. Fhigh_water Tulg
  4397. }
  4398. /*
  4399. If you use the zlib library in a product, an acknowledgment is welcome
  4400. in the documentation of your product. If for some reason you cannot
  4401. include such an acknowledgment, I would appreciate that you keep this
  4402. copyright string in the executable of your product.
  4403. */
  4404. type Tblock_state = int32
  4405. const _need_more = 0
  4406. const /* block not completed, need more input or more output */
  4407. _block_done = 1
  4408. const /* block flush performed */
  4409. _finish_started = 2
  4410. const /* finish started, need only more output at next deflate */
  4411. _finish_done = 3
  4412. type Tcompress_func = uintptr
  4413. /* ===========================================================================
  4414. * Local data
  4415. */
  4416. /* Tail of hash chains */
  4417. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4418. // C documentation
  4419. //
  4420. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4421. // * the desired pack level (0..9). The values given below have been tuned to
  4422. // * exclude worst case performance for pathological files. Better values may be
  4423. // * found for specific files.
  4424. // */
  4425. type Tconfig = struct {
  4426. Fgood_length Tush
  4427. Fmax_lazy Tush
  4428. Fnice_length Tush
  4429. Fmax_chain Tush
  4430. Ffunc1 Tcompress_func
  4431. }
  4432. /* ===========================================================================
  4433. * Local data
  4434. */
  4435. /* Tail of hash chains */
  4436. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4437. // C documentation
  4438. //
  4439. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4440. // * the desired pack level (0..9). The values given below have been tuned to
  4441. // * exclude worst case performance for pathological files. Better values may be
  4442. // * found for specific files.
  4443. // */
  4444. type Tconfig_s = Tconfig
  4445. var _configuration_table = [10]Tconfig{
  4446. 0: {},
  4447. 1: {
  4448. Fgood_length: uint16(4),
  4449. Fmax_lazy: uint16(4),
  4450. Fnice_length: uint16(8),
  4451. Fmax_chain: uint16(4),
  4452. },
  4453. 2: {
  4454. Fgood_length: uint16(4),
  4455. Fmax_lazy: uint16(5),
  4456. Fnice_length: uint16(16),
  4457. Fmax_chain: uint16(8),
  4458. },
  4459. 3: {
  4460. Fgood_length: uint16(4),
  4461. Fmax_lazy: uint16(6),
  4462. Fnice_length: uint16(32),
  4463. Fmax_chain: uint16(32),
  4464. },
  4465. 4: {
  4466. Fgood_length: uint16(4),
  4467. Fmax_lazy: uint16(4),
  4468. Fnice_length: uint16(16),
  4469. Fmax_chain: uint16(16),
  4470. },
  4471. 5: {
  4472. Fgood_length: uint16(8),
  4473. Fmax_lazy: uint16(16),
  4474. Fnice_length: uint16(32),
  4475. Fmax_chain: uint16(32),
  4476. },
  4477. 6: {
  4478. Fgood_length: uint16(8),
  4479. Fmax_lazy: uint16(16),
  4480. Fnice_length: uint16(128),
  4481. Fmax_chain: uint16(128),
  4482. },
  4483. 7: {
  4484. Fgood_length: uint16(8),
  4485. Fmax_lazy: uint16(32),
  4486. Fnice_length: uint16(128),
  4487. Fmax_chain: uint16(256),
  4488. },
  4489. 8: {
  4490. Fgood_length: uint16(32),
  4491. Fmax_lazy: uint16(128),
  4492. Fnice_length: uint16(258),
  4493. Fmax_chain: uint16(1024),
  4494. },
  4495. 9: {
  4496. Fgood_length: uint16(32),
  4497. Fmax_lazy: uint16(258),
  4498. Fnice_length: uint16(258),
  4499. Fmax_chain: uint16(4096),
  4500. },
  4501. }
  4502. func init() {
  4503. p := unsafe.Pointer(&_configuration_table)
  4504. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  4505. *(*uintptr)(unsafe.Add(p, 20)) = __ccgo_fp(_deflate_fast)
  4506. *(*uintptr)(unsafe.Add(p, 32)) = __ccgo_fp(_deflate_fast)
  4507. *(*uintptr)(unsafe.Add(p, 44)) = __ccgo_fp(_deflate_fast)
  4508. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_slow)
  4509. *(*uintptr)(unsafe.Add(p, 68)) = __ccgo_fp(_deflate_slow)
  4510. *(*uintptr)(unsafe.Add(p, 80)) = __ccgo_fp(_deflate_slow)
  4511. *(*uintptr)(unsafe.Add(p, 92)) = __ccgo_fp(_deflate_slow)
  4512. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  4513. *(*uintptr)(unsafe.Add(p, 116)) = __ccgo_fp(_deflate_slow)
  4514. }
  4515. /* max compression */
  4516. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  4517. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  4518. * meaning.
  4519. */
  4520. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  4521. /* ===========================================================================
  4522. * Update a hash value with the given input byte
  4523. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  4524. * characters, so that a running hash key can be computed from the previous
  4525. * key instead of complete recalculation each time.
  4526. */
  4527. /* ===========================================================================
  4528. * Insert string str in the dictionary and set match_head to the previous head
  4529. * of the hash chain (the most recent string with same hash key). Return
  4530. * the previous length of the hash chain.
  4531. * If this file is compiled with -DFASTEST, the compression level is forced
  4532. * to 1, and no hash chains are maintained.
  4533. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  4534. * characters and the first MIN_MATCH bytes of str are valid (except for
  4535. * the last MIN_MATCH-1 bytes of the input file).
  4536. */
  4537. /* ===========================================================================
  4538. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  4539. * prev[] will be initialized on the fly.
  4540. */
  4541. // C documentation
  4542. //
  4543. // /* ===========================================================================
  4544. // * Slide the hash table when sliding the window down (could be avoided with 32
  4545. // * bit values at the expense of memory usage). We slide even when level == 0 to
  4546. // * keep the hash table consistent if we switch back to level > 0 later.
  4547. // */
  4548. func _slide_hash(tls *libc.TLS, s uintptr) {
  4549. var m, n, v1, v4, v5, v8 uint32
  4550. var p, v3, v7 uintptr
  4551. var wsize TuInt
  4552. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  4553. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4554. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  4555. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  4556. for {
  4557. p -= 2
  4558. v3 = p
  4559. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  4560. if m >= wsize {
  4561. v4 = m - wsize
  4562. } else {
  4563. v4 = uint32(m_NIL)
  4564. }
  4565. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  4566. goto _2
  4567. _2:
  4568. ;
  4569. n--
  4570. v1 = n
  4571. if !(v1 != 0) {
  4572. break
  4573. }
  4574. }
  4575. n = wsize
  4576. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  4577. for {
  4578. p -= 2
  4579. v7 = p
  4580. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  4581. if m >= wsize {
  4582. v8 = m - wsize
  4583. } else {
  4584. v8 = uint32(m_NIL)
  4585. }
  4586. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  4587. /* If n is not on any hash chain, prev[n] is garbage but
  4588. * its value will never be used.
  4589. */
  4590. goto _6
  4591. _6:
  4592. ;
  4593. n--
  4594. v5 = n
  4595. if !(v5 != 0) {
  4596. break
  4597. }
  4598. }
  4599. }
  4600. // C documentation
  4601. //
  4602. // /* ===========================================================================
  4603. // * Read a new buffer from the current input stream, update the adler32
  4604. // * and total number of bytes read. All deflate() input goes through
  4605. // * this function so some applications may wish to modify it to avoid
  4606. // * allocating a large strm->next_in buffer and copying from it.
  4607. // * (See also flush_pending()).
  4608. // */
  4609. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  4610. var len1 uint32
  4611. _ = len1
  4612. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4613. if len1 > size {
  4614. len1 = size
  4615. }
  4616. if len1 == uint32(0) {
  4617. return uint32(0)
  4618. }
  4619. *(*TuInt)(unsafe.Pointer(strm + 4)) -= len1
  4620. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, len1)
  4621. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  4622. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4623. } else {
  4624. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  4625. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4626. }
  4627. }
  4628. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  4629. *(*TuLong)(unsafe.Pointer(strm + 8)) += len1
  4630. return len1
  4631. }
  4632. // C documentation
  4633. //
  4634. // /* ===========================================================================
  4635. // * Fill the window when the lookahead becomes insufficient.
  4636. // * Updates strstart and lookahead.
  4637. // *
  4638. // * IN assertion: lookahead < MIN_LOOKAHEAD
  4639. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  4640. // * At least one byte has been read, or avail_in == 0; reads are
  4641. // * performed for at least two bytes (required for the zip translate_eol
  4642. // * option -- not supported here).
  4643. // */
  4644. func _fill_window(tls *libc.TLS, s uintptr) {
  4645. var curr, init1 Tulg
  4646. var more, n uint32
  4647. var str, wsize TuInt
  4648. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  4649. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4650. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(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) {
  4651. more = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4652. /* Deal with !@#$% 64K limit: */
  4653. if uint32(4) <= uint32(2) {
  4654. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  4655. more = wsize
  4656. } else {
  4657. if more == libc.Uint32FromInt32(-libc.Int32FromInt32(1)) {
  4658. /* Very unlikely, but possible on 16 bit machine if
  4659. * strstart == 0 && lookahead == 1 (input done a byte at time)
  4660. */
  4661. more--
  4662. }
  4663. }
  4664. }
  4665. /* If the window is almost full and there is insufficient lookahead,
  4666. * move the upper half to the lower one to make room in the upper half.
  4667. */
  4668. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  4669. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), wsize-more)
  4670. *(*TuInt)(unsafe.Pointer(s + 112)) -= wsize
  4671. *(*TuInt)(unsafe.Pointer(s + 108)) -= wsize /* we now have strstart >= MAX_DIST */
  4672. *(*int32)(unsafe.Pointer(s + 92)) -= libc.Int32FromUint32(wsize)
  4673. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  4674. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4675. }
  4676. _slide_hash(tls, s)
  4677. more += wsize
  4678. }
  4679. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  4680. break
  4681. }
  4682. /* If there was no sliding:
  4683. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  4684. * more == window_size - lookahead - strstart
  4685. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  4686. * => more >= window_size - 2*WSIZE + 2
  4687. * In the BIG_MEM or MMAP case (not yet supported),
  4688. * window_size == input_size + MIN_LOOKAHEAD &&
  4689. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  4690. * Otherwise, window_size == 2*WSIZE so more >= 2.
  4691. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  4692. */
  4693. 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)
  4694. *(*TuInt)(unsafe.Pointer(s + 116)) += n
  4695. /* Initialize the hash value now that we have some input: */
  4696. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  4697. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  4698. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  4699. (*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
  4700. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  4701. (*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
  4702. *(*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))
  4703. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4704. str++
  4705. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  4706. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  4707. break
  4708. }
  4709. }
  4710. }
  4711. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  4712. * but this is not important since only literal bytes will be emitted.
  4713. */
  4714. }
  4715. /* If the WIN_INIT bytes after the end of the current data have never been
  4716. * written, then zero those bytes in order to avoid memory check reports of
  4717. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  4718. * the longest match routines. Update the high water mark for the next
  4719. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  4720. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  4721. */
  4722. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  4723. curr = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4724. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  4725. /* Previous high water mark below current data -- zero WIN_INIT
  4726. * bytes or up to end of window, whichever is less.
  4727. */
  4728. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  4729. if init1 > uint32(m_MAX_MATCH) {
  4730. init1 = uint32(m_MAX_MATCH)
  4731. }
  4732. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, init1)
  4733. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  4734. } else {
  4735. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint32(m_MAX_MATCH) {
  4736. /* High water mark at or above current data, but below current data
  4737. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  4738. * to end of window, whichever is less.
  4739. */
  4740. init1 = curr + uint32(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4741. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  4742. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4743. }
  4744. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, init1)
  4745. *(*Tulg)(unsafe.Pointer(s + 5824)) += init1
  4746. }
  4747. }
  4748. }
  4749. }
  4750. // C documentation
  4751. //
  4752. // /* ========================================================================= */
  4753. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  4754. 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)
  4755. /* To do: ignore strm->next_in if we use it as window */
  4756. }
  4757. // C documentation
  4758. //
  4759. // /* ========================================================================= */
  4760. 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) {
  4761. var s uintptr
  4762. var wrap int32
  4763. _, _ = s, wrap
  4764. wrap = int32(1)
  4765. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(_my_version[0]) || libc.Uint32FromInt32(stream_size) != uint32(56) {
  4766. return -int32(6)
  4767. }
  4768. if strm == uintptr(m_Z_NULL) {
  4769. return -int32(2)
  4770. }
  4771. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  4772. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  4773. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  4774. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  4775. }
  4776. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4777. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  4778. }
  4779. if level == -int32(1) {
  4780. level = int32(6)
  4781. }
  4782. if windowBits < 0 { /* suppress zlib wrapper */
  4783. wrap = 0
  4784. if windowBits < -int32(15) {
  4785. return -int32(2)
  4786. }
  4787. windowBits = -windowBits
  4788. } else {
  4789. if windowBits > int32(15) {
  4790. wrap = int32(2) /* write gzip wrapper instead */
  4791. windowBits -= int32(16)
  4792. }
  4793. }
  4794. 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) {
  4795. return -int32(2)
  4796. }
  4797. if windowBits == int32(8) {
  4798. windowBits = int32(9)
  4799. } /* until 256-byte window bug fixed */
  4800. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(5828))
  4801. if s == uintptr(m_Z_NULL) {
  4802. return -int32(4)
  4803. }
  4804. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  4805. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  4806. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  4807. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4808. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  4809. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = libc.Uint32FromInt32(windowBits)
  4810. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  4811. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  4812. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = libc.Uint32FromInt32(memLevel) + uint32(7)
  4813. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  4814. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  4815. (*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)
  4816. (*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, libc.Uint32FromInt32(2)*libc.Uint32FromInt64(1))
  4817. (*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, libc.Uint32FromInt64(2))
  4818. (*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, libc.Uint32FromInt64(2))
  4819. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint32(0) /* nothing written to s->window yet */
  4820. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = libc.Uint32FromInt32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  4821. /* We overlay pending_buf and sym_buf. This works since the average size
  4822. * for length/distance pairs over any compressed block is assured to be 31
  4823. * bits or less.
  4824. *
  4825. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  4826. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  4827. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  4828. * possible fixed-codes length/distance pair is then 31 bits total.
  4829. *
  4830. * sym_buf starts one-fourth of the way into pending_buf. So there are
  4831. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  4832. * in sym_buf is three bytes -- two for the distance and one for the
  4833. * literal/length. As each symbol is consumed, the pointer to the next
  4834. * sym_buf value to read moves forward three bytes. From that symbol, up to
  4835. * 31 bits are written to pending_buf. The closest the written pending_buf
  4836. * bits gets to the next sym_buf symbol to read is just before the last
  4837. * code is written. At that time, 31*(n - 2) bits have been written, just
  4838. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  4839. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  4840. * symbols are written.) The closest the writing gets to what is unread is
  4841. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  4842. * can range from 128 to 32768.
  4843. *
  4844. * Therefore, at a minimum, there are 142 bits of space between what is
  4845. * written and what is read in the overlain buffers, so the symbols cannot
  4846. * be overwritten by the compressed data. That space is actually 139 bits,
  4847. * due to the three-bit fixed-code block header.
  4848. *
  4849. * That covers the case where either Z_FIXED is specified, forcing fixed
  4850. * codes, or when the use of fixed codes is chosen, because that choice
  4851. * results in a smaller compressed block than dynamic codes. That latter
  4852. * condition then assures that the above analysis also covers all dynamic
  4853. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  4854. * fewer bits than a fixed-code block would for the same set of symbols.
  4855. * Therefore its average symbol length is assured to be less than 31. So
  4856. * the compressed data for a dynamic block also cannot overwrite the
  4857. * symbols from which it is being constructed.
  4858. */
  4859. (*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, libc.Uint32FromInt32(libc.Int32FromInt32(m_LIT_BUFS)))
  4860. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize * uint32(4)
  4861. 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) {
  4862. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  4863. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  4864. XdeflateEnd(tls, strm)
  4865. return -int32(4)
  4866. }
  4867. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  4868. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  4869. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  4870. * on 16 bit machines and because stored blocks are restricted to
  4871. * 64K-1 bytes.
  4872. */
  4873. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4874. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4875. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = libc.Uint8FromInt32(method)
  4876. return XdeflateReset(tls, strm)
  4877. }
  4878. var _my_version = [6]uint8{'1', '.', '3', '.', '1'}
  4879. // C documentation
  4880. //
  4881. // /* =========================================================================
  4882. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  4883. // */
  4884. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4885. var s uintptr
  4886. _ = s
  4887. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4888. return int32(1)
  4889. }
  4890. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4891. 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) {
  4892. return int32(1)
  4893. }
  4894. return 0
  4895. }
  4896. // C documentation
  4897. //
  4898. // /* ========================================================================= */
  4899. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  4900. var avail uint32
  4901. var n, str, v1, v3 TuInt
  4902. var next, s uintptr
  4903. var wrap int32
  4904. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  4905. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  4906. return -int32(2)
  4907. }
  4908. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4909. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  4910. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4911. return -int32(2)
  4912. }
  4913. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  4914. if wrap == int32(1) {
  4915. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  4916. }
  4917. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  4918. /* if dictionary would fill window, just replace the history */
  4919. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4920. if wrap == 0 { /* already empty otherwise */
  4921. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4922. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2))
  4923. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4924. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4925. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4926. }
  4927. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  4928. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4929. }
  4930. /* insert dictionary into window and hash */
  4931. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4932. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  4933. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  4934. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  4935. _fill_window(tls, s)
  4936. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  4937. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4938. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  4939. for {
  4940. (*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
  4941. *(*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))
  4942. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4943. str++
  4944. goto _2
  4945. _2:
  4946. ;
  4947. n--
  4948. v1 = n
  4949. if !(v1 != 0) {
  4950. break
  4951. }
  4952. }
  4953. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  4954. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4955. _fill_window(tls, s)
  4956. }
  4957. *(*TuInt)(unsafe.Pointer(s + 108)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4958. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  4959. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4960. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4961. v3 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4962. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  4963. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  4964. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4965. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  4966. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  4967. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4968. return m_Z_OK
  4969. }
  4970. // C documentation
  4971. //
  4972. // /* ========================================================================= */
  4973. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  4974. var len1 TuInt
  4975. var s uintptr
  4976. _, _ = len1, s
  4977. if _deflateStateCheck(tls, strm) != 0 {
  4978. return -int32(2)
  4979. }
  4980. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4981. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4982. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4983. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4984. }
  4985. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  4986. 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), len1)
  4987. }
  4988. if dictLength != uintptr(m_Z_NULL) {
  4989. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  4990. }
  4991. return m_Z_OK
  4992. }
  4993. // C documentation
  4994. //
  4995. // /* ========================================================================= */
  4996. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4997. var s uintptr
  4998. var v1 TuLong
  4999. var v2 int32
  5000. var v3 uint32
  5001. _, _, _, _ = s, v1, v2, v3
  5002. if _deflateStateCheck(tls, strm) != 0 {
  5003. return -int32(2)
  5004. }
  5005. v1 = libc.Uint32FromInt32(0)
  5006. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  5007. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  5008. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  5009. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  5010. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5011. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint32(0)
  5012. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5013. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  5014. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  5015. }
  5016. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5017. v2 = int32(m_GZIP_STATE)
  5018. } else {
  5019. v2 = int32(m_INIT_STATE)
  5020. }
  5021. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  5022. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5023. v3 = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5024. } else {
  5025. v3 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5026. }
  5027. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  5028. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  5029. x__tr_init(tls, s)
  5030. return m_Z_OK
  5031. }
  5032. // C documentation
  5033. //
  5034. // /* ===========================================================================
  5035. // * Initialize the "longest match" routines for a new zlib stream
  5036. // */
  5037. func _lm_init(tls *libc.TLS, s uintptr) {
  5038. var v1 TuInt
  5039. _ = v1
  5040. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint32FromInt32(2) * (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  5041. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5042. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2))
  5043. /* Set the default configuration parameters:
  5044. */
  5045. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  5046. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  5047. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  5048. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  5049. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5050. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5051. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  5052. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5053. v1 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  5054. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  5055. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  5056. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  5057. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  5058. }
  5059. // C documentation
  5060. //
  5061. // /* ========================================================================= */
  5062. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5063. var ret int32
  5064. _ = ret
  5065. ret = XdeflateResetKeep(tls, strm)
  5066. if ret == m_Z_OK {
  5067. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  5068. }
  5069. return ret
  5070. }
  5071. // C documentation
  5072. //
  5073. // /* ========================================================================= */
  5074. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  5075. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  5076. return -int32(2)
  5077. }
  5078. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  5079. return m_Z_OK
  5080. }
  5081. // C documentation
  5082. //
  5083. // /* ========================================================================= */
  5084. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  5085. if _deflateStateCheck(tls, strm) != 0 {
  5086. return -int32(2)
  5087. }
  5088. if pending != uintptr(m_Z_NULL) {
  5089. *(*uint32)(unsafe.Pointer(pending)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending
  5090. }
  5091. if bits != uintptr(m_Z_NULL) {
  5092. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  5093. }
  5094. return m_Z_OK
  5095. }
  5096. // C documentation
  5097. //
  5098. // /* ========================================================================= */
  5099. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  5100. var put int32
  5101. var s, p1 uintptr
  5102. _, _, _ = put, s, p1
  5103. if _deflateStateCheck(tls, strm) != 0 {
  5104. return -int32(2)
  5105. }
  5106. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5107. 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)) {
  5108. return -int32(5)
  5109. }
  5110. for cond := true; cond; cond = bits != 0 {
  5111. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  5112. if put > bits {
  5113. put = bits
  5114. }
  5115. p1 = s + 5816
  5116. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  5117. *(*int32)(unsafe.Pointer(s + 5820)) += put
  5118. x__tr_flush_bits(tls, s)
  5119. value >>= put
  5120. bits -= put
  5121. }
  5122. return m_Z_OK
  5123. }
  5124. // C documentation
  5125. //
  5126. // /* ========================================================================= */
  5127. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  5128. var err int32
  5129. var func1 Tcompress_func
  5130. var s uintptr
  5131. _, _, _ = err, func1, s
  5132. if _deflateStateCheck(tls, strm) != 0 {
  5133. return -int32(2)
  5134. }
  5135. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5136. if level == -int32(1) {
  5137. level = int32(6)
  5138. }
  5139. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  5140. return -int32(2)
  5141. }
  5142. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  5143. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  5144. /* Flush the last buffer: */
  5145. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  5146. if err == -int32(2) {
  5147. return err
  5148. }
  5149. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)+(*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  5150. return -int32(5)
  5151. }
  5152. }
  5153. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  5154. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  5155. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  5156. _slide_hash(tls, s)
  5157. } else {
  5158. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5159. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2))
  5160. }
  5161. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  5162. }
  5163. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  5164. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  5165. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  5166. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[level].Fnice_length)
  5167. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  5168. }
  5169. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  5170. return m_Z_OK
  5171. }
  5172. // C documentation
  5173. //
  5174. // /* ========================================================================= */
  5175. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  5176. var s uintptr
  5177. _ = s
  5178. if _deflateStateCheck(tls, strm) != 0 {
  5179. return -int32(2)
  5180. }
  5181. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5182. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = libc.Uint32FromInt32(good_length)
  5183. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = libc.Uint32FromInt32(max_lazy)
  5184. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  5185. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = libc.Uint32FromInt32(max_chain)
  5186. return m_Z_OK
  5187. }
  5188. // C documentation
  5189. //
  5190. // /* =========================================================================
  5191. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  5192. // * close to exact, as well as small, upper bound on the compressed size. This
  5193. // * is an expansion of ~0.03%, plus a small constant.
  5194. // *
  5195. // * For any setting other than those defaults for windowBits and memLevel, one
  5196. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  5197. // * ~13%, plus a small constant.
  5198. // *
  5199. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  5200. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  5201. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  5202. // * expansion results from five bytes of header for each stored block.
  5203. // *
  5204. // * The larger expansion of 13% results from a window size less than or equal to
  5205. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  5206. // * the data being compressed may have slid out of the sliding window, impeding
  5207. // * a stored block from being emitted. Then the only choice is a fixed or
  5208. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  5209. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  5210. // * which this can occur is 255 (memLevel == 2).
  5211. // *
  5212. // * Shifts are used to approximate divisions, for speed.
  5213. // */
  5214. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  5215. var fixedlen, storelen, wraplen TuLong
  5216. var s, str, v3, v5 uintptr
  5217. var v1, v7 uint32
  5218. var v2 int32
  5219. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  5220. /* upper bound for fixed blocks with 9-bit literals and length 255
  5221. (memLevel == 2, which is the lowest that may not use stored blocks) --
  5222. ~13% overhead plus a small constant */
  5223. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint32(4)
  5224. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  5225. ~4% overhead plus a small constant */
  5226. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint32(7)
  5227. /* if can't get parameters, return larger bound plus a zlib wrapper */
  5228. if _deflateStateCheck(tls, strm) != 0 {
  5229. if fixedlen > storelen {
  5230. v1 = fixedlen
  5231. } else {
  5232. v1 = storelen
  5233. }
  5234. return v1 + uint32(6)
  5235. }
  5236. /* compute wrapper length */
  5237. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5238. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  5239. case 0: /* raw deflate */
  5240. wraplen = uint32(0)
  5241. case int32(1): /* zlib wrapper */
  5242. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  5243. v2 = int32(4)
  5244. } else {
  5245. v2 = 0
  5246. }
  5247. wraplen = libc.Uint32FromInt32(int32(6) + v2)
  5248. case int32(2): /* gzip wrapper */
  5249. wraplen = uint32(18)
  5250. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  5251. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5252. wraplen += uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len
  5253. }
  5254. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  5255. if str != uintptr(m_Z_NULL) {
  5256. for {
  5257. wraplen++
  5258. goto _4
  5259. _4:
  5260. ;
  5261. v3 = str
  5262. str++
  5263. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  5264. break
  5265. }
  5266. }
  5267. }
  5268. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  5269. if str != uintptr(m_Z_NULL) {
  5270. for {
  5271. wraplen++
  5272. goto _6
  5273. _6:
  5274. ;
  5275. v5 = str
  5276. str++
  5277. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  5278. break
  5279. }
  5280. }
  5281. }
  5282. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5283. wraplen += uint32(2)
  5284. }
  5285. }
  5286. default: /* for compiler happiness */
  5287. wraplen = uint32(6)
  5288. }
  5289. /* if not default parameters, return one of the conservative bounds */
  5290. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != libc.Uint32FromInt32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  5291. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  5292. v7 = fixedlen
  5293. } else {
  5294. v7 = storelen
  5295. }
  5296. return v7 + wraplen
  5297. }
  5298. /* default settings: return tight bound for that case -- ~0.03% overhead
  5299. plus a small constant */
  5300. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint32(13) - uint32(6) + wraplen
  5301. }
  5302. // C documentation
  5303. //
  5304. // /* =========================================================================
  5305. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  5306. // * IN assertion: the stream state is correct and there is enough room in
  5307. // * pending_buf.
  5308. // */
  5309. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  5310. var v1, v3 Tulg
  5311. var v2, v4 uintptr
  5312. _, _, _, _ = v1, v2, v3, v4
  5313. v2 = s + 20
  5314. v1 = *(*Tulg)(unsafe.Pointer(v2))
  5315. *(*Tulg)(unsafe.Pointer(v2))++
  5316. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  5317. v4 = s + 20
  5318. v3 = *(*Tulg)(unsafe.Pointer(v4))
  5319. *(*Tulg)(unsafe.Pointer(v4))++
  5320. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  5321. }
  5322. // C documentation
  5323. //
  5324. // /* =========================================================================
  5325. // * Flush as much pending output as possible. All deflate() output, except for
  5326. // * some deflate_stored() output, goes through this function so some
  5327. // * applications may wish to modify it to avoid allocating a large
  5328. // * strm->next_out buffer and copying into it. (See also read_buf()).
  5329. // */
  5330. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  5331. var len1 uint32
  5332. var s uintptr
  5333. _, _ = len1, s
  5334. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5335. x__tr_flush_bits(tls, s)
  5336. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5337. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  5338. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  5339. }
  5340. if len1 == uint32(0) {
  5341. return
  5342. }
  5343. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, len1)
  5344. *(*uintptr)(unsafe.Pointer(strm + 12)) += uintptr(len1)
  5345. *(*uintptr)(unsafe.Pointer(s + 16)) += uintptr(len1)
  5346. *(*TuLong)(unsafe.Pointer(strm + 20)) += len1
  5347. *(*TuInt)(unsafe.Pointer(strm + 16)) -= len1
  5348. *(*Tulg)(unsafe.Pointer(s + 20)) -= len1
  5349. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint32(0) {
  5350. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5351. }
  5352. }
  5353. /* ===========================================================================
  5354. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  5355. */
  5356. // C documentation
  5357. //
  5358. // /* ========================================================================= */
  5359. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  5360. 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
  5361. var bstate Tblock_state
  5362. var copy1, header, left, level_flags TuInt
  5363. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  5364. 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
  5365. var v3 bool
  5366. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5367. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  5368. return -int32(2)
  5369. }
  5370. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5371. 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) {
  5372. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  5373. return -libc.Int32FromInt32(2)
  5374. }
  5375. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5376. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5377. return -libc.Int32FromInt32(5)
  5378. }
  5379. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  5380. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  5381. /* Flush as much pending output as possible */
  5382. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5383. _flush_pending(tls, strm)
  5384. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5385. /* Since avail_out is 0, deflate will be called again with
  5386. * more output space, but possibly with both pending and
  5387. * avail_in equal to zero. There won't be anything to do,
  5388. * but this is not an error situation so make sure we
  5389. * return OK instead of BUF_ERROR at next call of deflate:
  5390. */
  5391. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5392. return m_Z_OK
  5393. }
  5394. /* Make sure there is something to do and avoid duplicate consecutive
  5395. * flushes. For repeated and useless calls with Z_FINISH, we keep
  5396. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  5397. */
  5398. } else {
  5399. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  5400. if flush > int32(4) {
  5401. v1 = int32(9)
  5402. } else {
  5403. v1 = 0
  5404. }
  5405. if old_flush > int32(4) {
  5406. v2 = int32(9)
  5407. } else {
  5408. v2 = 0
  5409. }
  5410. }
  5411. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  5412. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5413. return -libc.Int32FromInt32(5)
  5414. }
  5415. }
  5416. /* User must not provide more input after the first FINISH: */
  5417. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  5418. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5419. return -libc.Int32FromInt32(5)
  5420. }
  5421. /* Write the header */
  5422. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  5423. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5424. }
  5425. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  5426. /* zlib header */
  5427. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  5428. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5429. level_flags = uint32(0)
  5430. } else {
  5431. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  5432. level_flags = uint32(1)
  5433. } else {
  5434. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  5435. level_flags = uint32(2)
  5436. } else {
  5437. level_flags = uint32(3)
  5438. }
  5439. }
  5440. }
  5441. header |= level_flags << libc.Int32FromInt32(6)
  5442. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5443. header |= uint32(m_PRESET_DICT1)
  5444. }
  5445. header += uint32(31) - header%uint32(31)
  5446. _putShortMSB(tls, s, header)
  5447. /* Save the adler32 of the preset dictionary: */
  5448. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5449. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5450. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint32FromInt32(0xffff)))
  5451. }
  5452. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5453. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5454. /* Compression must start with an empty pending buffer */
  5455. _flush_pending(tls, strm)
  5456. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5457. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5458. return m_Z_OK
  5459. }
  5460. }
  5461. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  5462. /* gzip header */
  5463. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5464. v5 = s + 20
  5465. v4 = *(*Tulg)(unsafe.Pointer(v5))
  5466. *(*Tulg)(unsafe.Pointer(v5))++
  5467. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromInt32(31))
  5468. v7 = s + 20
  5469. v6 = *(*Tulg)(unsafe.Pointer(v7))
  5470. *(*Tulg)(unsafe.Pointer(v7))++
  5471. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromInt32(139))
  5472. v9 = s + 20
  5473. v8 = *(*Tulg)(unsafe.Pointer(v9))
  5474. *(*Tulg)(unsafe.Pointer(v9))++
  5475. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromInt32(8))
  5476. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  5477. v11 = s + 20
  5478. v10 = *(*Tulg)(unsafe.Pointer(v11))
  5479. *(*Tulg)(unsafe.Pointer(v11))++
  5480. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5481. v13 = s + 20
  5482. v12 = *(*Tulg)(unsafe.Pointer(v13))
  5483. *(*Tulg)(unsafe.Pointer(v13))++
  5484. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5485. v15 = s + 20
  5486. v14 = *(*Tulg)(unsafe.Pointer(v15))
  5487. *(*Tulg)(unsafe.Pointer(v15))++
  5488. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5489. v17 = s + 20
  5490. v16 = *(*Tulg)(unsafe.Pointer(v17))
  5491. *(*Tulg)(unsafe.Pointer(v17))++
  5492. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5493. v19 = s + 20
  5494. v18 = *(*Tulg)(unsafe.Pointer(v19))
  5495. *(*Tulg)(unsafe.Pointer(v19))++
  5496. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5497. v21 = s + 20
  5498. v20 = *(*Tulg)(unsafe.Pointer(v21))
  5499. *(*Tulg)(unsafe.Pointer(v21))++
  5500. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5501. v22 = int32(2)
  5502. } else {
  5503. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5504. v23 = int32(4)
  5505. } else {
  5506. v23 = 0
  5507. }
  5508. v22 = v23
  5509. }
  5510. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(v22)
  5511. v25 = s + 20
  5512. v24 = *(*Tulg)(unsafe.Pointer(v25))
  5513. *(*Tulg)(unsafe.Pointer(v25))++
  5514. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromInt32(m_OS_CODE))
  5515. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5516. /* Compression must start with an empty pending buffer */
  5517. _flush_pending(tls, strm)
  5518. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5519. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5520. return m_Z_OK
  5521. }
  5522. } else {
  5523. v27 = s + 20
  5524. v26 = *(*Tulg)(unsafe.Pointer(v27))
  5525. *(*Tulg)(unsafe.Pointer(v27))++
  5526. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  5527. v28 = int32(1)
  5528. } else {
  5529. v28 = 0
  5530. }
  5531. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5532. v29 = int32(2)
  5533. } else {
  5534. v29 = 0
  5535. }
  5536. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  5537. v30 = 0
  5538. } else {
  5539. v30 = int32(4)
  5540. }
  5541. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  5542. v31 = 0
  5543. } else {
  5544. v31 = int32(8)
  5545. }
  5546. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  5547. v32 = 0
  5548. } else {
  5549. v32 = int32(16)
  5550. }
  5551. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(v28 + v29 + v30 + v31 + v32)
  5552. v34 = s + 20
  5553. v33 = *(*Tulg)(unsafe.Pointer(v34))
  5554. *(*Tulg)(unsafe.Pointer(v34))++
  5555. *(*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.Uint32FromInt32(0xff))
  5556. v36 = s + 20
  5557. v35 = *(*Tulg)(unsafe.Pointer(v36))
  5558. *(*Tulg)(unsafe.Pointer(v36))++
  5559. *(*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.Uint32FromInt32(0xff))
  5560. v38 = s + 20
  5561. v37 = *(*Tulg)(unsafe.Pointer(v38))
  5562. *(*Tulg)(unsafe.Pointer(v38))++
  5563. *(*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.Uint32FromInt32(0xff))
  5564. v40 = s + 20
  5565. v39 = *(*Tulg)(unsafe.Pointer(v40))
  5566. *(*Tulg)(unsafe.Pointer(v40))++
  5567. *(*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.Uint32FromInt32(0xff))
  5568. v42 = s + 20
  5569. v41 = *(*Tulg)(unsafe.Pointer(v42))
  5570. *(*Tulg)(unsafe.Pointer(v42))++
  5571. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5572. v43 = int32(2)
  5573. } else {
  5574. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5575. v44 = int32(4)
  5576. } else {
  5577. v44 = 0
  5578. }
  5579. v43 = v44
  5580. }
  5581. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = libc.Uint8FromInt32(v43)
  5582. v46 = s + 20
  5583. v45 = *(*Tulg)(unsafe.Pointer(v46))
  5584. *(*Tulg)(unsafe.Pointer(v46))++
  5585. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = libc.Uint8FromInt32((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  5586. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5587. v48 = s + 20
  5588. v47 = *(*Tulg)(unsafe.Pointer(v48))
  5589. *(*Tulg)(unsafe.Pointer(v48))++
  5590. *(*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))
  5591. v50 = s + 20
  5592. v49 = *(*Tulg)(unsafe.Pointer(v50))
  5593. *(*Tulg)(unsafe.Pointer(v50))++
  5594. *(*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))
  5595. }
  5596. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5597. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5598. }
  5599. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  5600. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  5601. }
  5602. }
  5603. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  5604. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5605. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  5606. left = uint32((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex
  5607. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+left > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5608. copy1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5609. 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), copy1)
  5610. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  5611. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5612. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg)
  5613. }
  5614. *(*Tulg)(unsafe.Pointer(s + 32)) += copy1
  5615. _flush_pending(tls, strm)
  5616. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5617. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5618. return m_Z_OK
  5619. }
  5620. beg = uint32(0)
  5621. left -= copy1
  5622. }
  5623. 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), left)
  5624. *(*Tulg)(unsafe.Pointer(s + 20)) += left
  5625. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5626. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg)
  5627. }
  5628. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  5629. }
  5630. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  5631. }
  5632. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  5633. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  5634. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5635. for cond := true; cond; cond = val != 0 {
  5636. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5637. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5638. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1)
  5639. }
  5640. _flush_pending(tls, strm)
  5641. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5642. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5643. return m_Z_OK
  5644. }
  5645. beg1 = uint32(0)
  5646. }
  5647. v52 = s + 32
  5648. v51 = *(*Tulg)(unsafe.Pointer(v52))
  5649. *(*Tulg)(unsafe.Pointer(v52))++
  5650. val = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  5651. v54 = s + 20
  5652. v53 = *(*Tulg)(unsafe.Pointer(v54))
  5653. *(*Tulg)(unsafe.Pointer(v54))++
  5654. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = libc.Uint8FromInt32(val)
  5655. }
  5656. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5657. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1)
  5658. }
  5659. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  5660. }
  5661. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  5662. }
  5663. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  5664. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  5665. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5666. for cond := true; cond; cond = val1 != 0 {
  5667. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5668. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5669. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2)
  5670. }
  5671. _flush_pending(tls, strm)
  5672. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5673. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5674. return m_Z_OK
  5675. }
  5676. beg2 = uint32(0)
  5677. }
  5678. v56 = s + 32
  5679. v55 = *(*Tulg)(unsafe.Pointer(v56))
  5680. *(*Tulg)(unsafe.Pointer(v56))++
  5681. val1 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  5682. v58 = s + 20
  5683. v57 = *(*Tulg)(unsafe.Pointer(v58))
  5684. *(*Tulg)(unsafe.Pointer(v58))++
  5685. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = libc.Uint8FromInt32(val1)
  5686. }
  5687. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5688. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2)
  5689. }
  5690. }
  5691. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  5692. }
  5693. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  5694. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5695. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint32(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5696. _flush_pending(tls, strm)
  5697. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5698. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5699. return m_Z_OK
  5700. }
  5701. }
  5702. v60 = s + 20
  5703. v59 = *(*Tulg)(unsafe.Pointer(v60))
  5704. *(*Tulg)(unsafe.Pointer(v60))++
  5705. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint32FromInt32(0xff))
  5706. v62 = s + 20
  5707. v61 = *(*Tulg)(unsafe.Pointer(v62))
  5708. *(*Tulg)(unsafe.Pointer(v62))++
  5709. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5710. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  5711. }
  5712. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5713. /* Compression must start with an empty pending buffer */
  5714. _flush_pending(tls, strm)
  5715. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5716. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5717. return m_Z_OK
  5718. }
  5719. }
  5720. /* Start a new block or continue the current one.
  5721. */
  5722. 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) {
  5723. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  5724. v63 = _deflate_stored(tls, s, flush)
  5725. } else {
  5726. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  5727. v64 = _deflate_huff(tls, s, flush)
  5728. } else {
  5729. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  5730. v65 = _deflate_rle(tls, s, flush)
  5731. } else {
  5732. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  5733. }
  5734. v64 = v65
  5735. }
  5736. v63 = v64
  5737. }
  5738. bstate = v63
  5739. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  5740. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  5741. }
  5742. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  5743. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5744. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  5745. }
  5746. return m_Z_OK
  5747. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  5748. * of deflate should use the same flush parameter to make sure
  5749. * that the flush is complete. So we don't have to output an
  5750. * empty block here, this will be done at next call. This also
  5751. * ensures that for a very small output buffer, we emit at most
  5752. * one empty block.
  5753. */
  5754. }
  5755. if bstate == int32(_block_done) {
  5756. if flush == int32(m_Z_PARTIAL_FLUSH) {
  5757. x__tr_align(tls, s)
  5758. } else {
  5759. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  5760. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint32(0), 0)
  5761. /* For a full flush, this empty block will be recognized
  5762. * as a special marker by inflate_sync().
  5763. */
  5764. if flush == int32(m_Z_FULL_FLUSH) {
  5765. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5766. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint32(2)) /* forget history */
  5767. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5768. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5769. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5770. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5771. }
  5772. }
  5773. }
  5774. }
  5775. _flush_pending(tls, strm)
  5776. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5777. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  5778. return m_Z_OK
  5779. }
  5780. }
  5781. }
  5782. if flush != int32(m_Z_FINISH) {
  5783. return m_Z_OK
  5784. }
  5785. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  5786. return int32(m_Z_STREAM_END)
  5787. }
  5788. /* Write the trailer */
  5789. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5790. v67 = s + 20
  5791. v66 = *(*Tulg)(unsafe.Pointer(v67))
  5792. *(*Tulg)(unsafe.Pointer(v67))++
  5793. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint32FromInt32(0xff))
  5794. v69 = s + 20
  5795. v68 = *(*Tulg)(unsafe.Pointer(v69))
  5796. *(*Tulg)(unsafe.Pointer(v69))++
  5797. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5798. v71 = s + 20
  5799. v70 = *(*Tulg)(unsafe.Pointer(v71))
  5800. *(*Tulg)(unsafe.Pointer(v71))++
  5801. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  5802. v73 = s + 20
  5803. v72 = *(*Tulg)(unsafe.Pointer(v73))
  5804. *(*Tulg)(unsafe.Pointer(v73))++
  5805. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  5806. v75 = s + 20
  5807. v74 = *(*Tulg)(unsafe.Pointer(v75))
  5808. *(*Tulg)(unsafe.Pointer(v75))++
  5809. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint32FromInt32(0xff))
  5810. v77 = s + 20
  5811. v76 = *(*Tulg)(unsafe.Pointer(v77))
  5812. *(*Tulg)(unsafe.Pointer(v77))++
  5813. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  5814. v79 = s + 20
  5815. v78 = *(*Tulg)(unsafe.Pointer(v79))
  5816. *(*Tulg)(unsafe.Pointer(v79))++
  5817. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  5818. v81 = s + 20
  5819. v80 = *(*Tulg)(unsafe.Pointer(v81))
  5820. *(*Tulg)(unsafe.Pointer(v81))++
  5821. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  5822. } else {
  5823. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5824. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint32FromInt32(0xffff)))
  5825. }
  5826. _flush_pending(tls, strm)
  5827. /* If avail_out is zero, the application will call deflate again
  5828. * to flush the rest.
  5829. */
  5830. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  5831. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  5832. } /* write the trailer only once! */
  5833. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  5834. v82 = m_Z_OK
  5835. } else {
  5836. v82 = int32(m_Z_STREAM_END)
  5837. }
  5838. return v82
  5839. }
  5840. // C documentation
  5841. //
  5842. // /* ========================================================================= */
  5843. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5844. var status, v1 int32
  5845. _, _ = status, v1
  5846. if _deflateStateCheck(tls, strm) != 0 {
  5847. return -int32(2)
  5848. }
  5849. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  5850. /* Deallocate in reverse order of allocations: */
  5851. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  5852. (*(*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)
  5853. }
  5854. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  5855. (*(*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)
  5856. }
  5857. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  5858. (*(*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)
  5859. }
  5860. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  5861. (*(*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)
  5862. }
  5863. (*(*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)
  5864. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  5865. if status == int32(m_BUSY_STATE) {
  5866. v1 = -int32(3)
  5867. } else {
  5868. v1 = m_Z_OK
  5869. }
  5870. return v1
  5871. }
  5872. // C documentation
  5873. //
  5874. // /* =========================================================================
  5875. // * Copy the source state to the destination state.
  5876. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  5877. // * doesn't have enough memory anyway to duplicate compression states).
  5878. // */
  5879. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  5880. var ds, ss uintptr
  5881. _, _ = ds, ss
  5882. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  5883. return -int32(2)
  5884. }
  5885. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  5886. libc.Xmemcpy(tls, dest, source, uint32(56))
  5887. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(5828))
  5888. if ds == uintptr(m_Z_NULL) {
  5889. return -int32(4)
  5890. }
  5891. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  5892. libc.Xmemcpy(tls, ds, ss, uint32(5828))
  5893. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  5894. (*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, libc.Uint32FromInt32(2)*libc.Uint32FromInt64(1))
  5895. (*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, libc.Uint32FromInt64(2))
  5896. (*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, libc.Uint32FromInt64(2))
  5897. (*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, libc.Uint32FromInt32(libc.Int32FromInt32(m_LIT_BUFS)))
  5898. 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) {
  5899. XdeflateEnd(tls, dest)
  5900. return -int32(4)
  5901. }
  5902. /* following zmemcpy do not work for 16-bit MSDOS */
  5903. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2)*uint32(1))
  5904. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))
  5905. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size*uint32(2))
  5906. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize*uint32(m_LIT_BUFS))
  5907. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int32((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int32((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  5908. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  5909. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 148
  5910. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2440
  5911. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2684
  5912. return m_Z_OK
  5913. }
  5914. // C documentation
  5915. //
  5916. // /* ===========================================================================
  5917. // * Set match_start to the longest match starting at the given string and
  5918. // * return its length. Matches shorter or equal to prev_length are discarded,
  5919. // * in which case the result is equal to prev_length and match_start is
  5920. // * garbage.
  5921. // * IN assertions: cur_match is the head of the hash chain for the current
  5922. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  5923. // * OUT assertion: the match length is not greater than s->lookahead.
  5924. // */
  5925. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  5926. var best_len, len1, nice_match int32
  5927. var chain_length, v1, v3 uint32
  5928. var limit, v2 TIPos
  5929. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  5930. var scan_end, scan_end1 TByte
  5931. var wmask TuInt
  5932. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  5933. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5934. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  5935. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  5936. best_len = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  5937. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  5938. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  5939. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  5940. } else {
  5941. v1 = uint32(m_NIL)
  5942. } /* stop if match long enough */
  5943. limit = v1
  5944. /* Stop when cur_match becomes <= limit. To simplify the code,
  5945. * we prevent matches with the string of window index 0.
  5946. */
  5947. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  5948. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  5949. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  5950. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5951. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5952. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  5953. * It is easy to get rid of this optimization if necessary.
  5954. */
  5955. /* Do not waste too much time if we already have a good match: */
  5956. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  5957. chain_length >>= uint32(2)
  5958. }
  5959. /* Do not look for matches beyond the end of the input. This is necessary
  5960. * to make deflate deterministic.
  5961. */
  5962. if libc.Uint32FromInt32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5963. nice_match = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  5964. }
  5965. for {
  5966. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  5967. /* Skip to next match if the match length cannot increase
  5968. * or if the match length is less than 2. Note that the checks below
  5969. * for insufficient lookahead only occur occasionally for performance
  5970. * reasons. Therefore uninitialized memory will be accessed, and
  5971. * conditional jumps will be made that depend on those values.
  5972. * However the length of the match is limited to the lookahead, so
  5973. * the output of deflate is not affected by the uninitialized values.
  5974. */
  5975. if v7 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != libc.Int32FromUint8(scan_end) || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != libc.Int32FromUint8(scan_end1) || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(match))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  5976. match++
  5977. v6 = match
  5978. }
  5979. if v7 || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v6))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  5980. goto _5
  5981. }
  5982. /* The check at best_len - 1 can be removed because it will be made
  5983. * again later. (This heuristic is not always a win.)
  5984. * It is not necessary to compare scan[2] and match[2] since they
  5985. * are always equal when the other bytes match, given that
  5986. * the hash keys are equal and that HASH_BITS >= 8.
  5987. */
  5988. scan += uintptr(2)
  5989. /* The check at best_len - 1 can be removed because it will be made
  5990. * again later. (This heuristic is not always a win.)
  5991. * It is not necessary to compare scan[2] and match[2] since they
  5992. * are always equal when the other bytes match, given that
  5993. * the hash keys are equal and that HASH_BITS >= 8.
  5994. */
  5995. match++
  5996. /* We check for insufficient lookahead only every 8th comparison;
  5997. * the 256th check will be made at strstart + 258.
  5998. */
  5999. for {
  6000. goto _31
  6001. _31:
  6002. ;
  6003. scan++
  6004. v8 = scan
  6005. match++
  6006. v9 = match
  6007. if v12 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v8))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  6008. scan++
  6009. v10 = scan
  6010. match++
  6011. v11 = match
  6012. }
  6013. if v15 = v12 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v10))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  6014. scan++
  6015. v13 = scan
  6016. match++
  6017. v14 = match
  6018. }
  6019. if v18 = v15 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v13))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  6020. scan++
  6021. v16 = scan
  6022. match++
  6023. v17 = match
  6024. }
  6025. if v21 = v18 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v16))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  6026. scan++
  6027. v19 = scan
  6028. match++
  6029. v20 = match
  6030. }
  6031. if v24 = v21 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v19))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  6032. scan++
  6033. v22 = scan
  6034. match++
  6035. v23 = match
  6036. }
  6037. if v27 = v24 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v22))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  6038. scan++
  6039. v25 = scan
  6040. match++
  6041. v26 = match
  6042. }
  6043. if v30 = v27 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v25))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  6044. scan++
  6045. v28 = scan
  6046. match++
  6047. v29 = match
  6048. }
  6049. if !(v30 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v28))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  6050. break
  6051. }
  6052. }
  6053. len1 = int32(m_MAX_MATCH) - (int32(strend) - int32(scan))
  6054. scan = strend - uintptr(m_MAX_MATCH)
  6055. if len1 > best_len {
  6056. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  6057. best_len = len1
  6058. if len1 >= nice_match {
  6059. break
  6060. }
  6061. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  6062. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  6063. }
  6064. goto _5
  6065. _5:
  6066. ;
  6067. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  6068. cur_match = v2
  6069. if v4 = v2 > limit; v4 {
  6070. chain_length--
  6071. v3 = chain_length
  6072. }
  6073. if !(v4 && v3 != uint32(0)) {
  6074. break
  6075. }
  6076. }
  6077. if libc.Uint32FromInt32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6078. return libc.Uint32FromInt32(best_len)
  6079. }
  6080. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6081. }
  6082. /* ===========================================================================
  6083. * Flush the current block, with given end-of-file flag.
  6084. * IN assertion: strstart is set to the end of the current match.
  6085. */
  6086. /* Same but force premature exit if necessary. */
  6087. /* Maximum stored block length in deflate format (not including header). */
  6088. /* Minimum of a and b. */
  6089. // C documentation
  6090. //
  6091. // /* ===========================================================================
  6092. // * Copy without compression as much as possible from the input stream, return
  6093. // * the current block state.
  6094. // *
  6095. // * In case deflateParams() is used to later switch to a non-zero compression
  6096. // * level, s->matches (otherwise unused when storing) keeps track of the number
  6097. // * of hash table slides to perform. If s->matches is 1, then one hash table
  6098. // * slide will be done when switching. If s->matches is 2, the maximum value
  6099. // * allowed here, then the hash table will be cleared, since two or more slides
  6100. // * is the same as a clear.
  6101. // *
  6102. // * deflate_stored() is written to minimize the number of times an input byte is
  6103. // * copied. It is most efficient with large input and output buffers, which
  6104. // * maximizes the opportunities to have a single copy from next_in to next_out.
  6105. // */
  6106. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6107. var have, last, left, len1, min_block, used, v1, v4, v6, v7, v8, v9 uint32
  6108. var v10, v12, v2 int32
  6109. var p11, p3, p5 uintptr
  6110. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v10, v12, v2, v4, v6, v7, v8, v9, p11, p3, p5
  6111. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint32(5) > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6112. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6113. } else {
  6114. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint32(5)
  6115. }
  6116. /* Smallest worthy block size when not flushing or finishing. By default
  6117. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  6118. * large input and output buffers, the stored block size will be larger.
  6119. */
  6120. min_block = v1
  6121. last = uint32(0)
  6122. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6123. for cond := true; cond; cond = last == uint32(0) {
  6124. /* Set len to the maximum size block that we can copy directly with the
  6125. * available input data and output space. Set left to how much of that
  6126. * would be copied from what's left in the window.
  6127. */
  6128. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  6129. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6130. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  6131. break
  6132. }
  6133. /* maximum stored block length that will fit in avail_out: */
  6134. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  6135. left = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)) /* bytes left in window */
  6136. if len1 > left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6137. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6138. } /* limit len to the input */
  6139. if len1 > have {
  6140. len1 = have
  6141. } /* limit len to the output */
  6142. /* If the stored block would be less than min_block in length, or if
  6143. * unable to copy all of the available input when flushing, then try
  6144. * copying to the window and the pending buffer instead. Also don't
  6145. * write an empty block when flushing -- deflate() does that.
  6146. */
  6147. 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) {
  6148. break
  6149. }
  6150. /* Make a dummy stored block in pending to get the header bytes,
  6151. * including any pending bits. This also updates the debugging counts.
  6152. */
  6153. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6154. v2 = int32(1)
  6155. } else {
  6156. v2 = 0
  6157. }
  6158. last = libc.Uint32FromInt32(v2)
  6159. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint32(0), libc.Int32FromUint32(last))
  6160. /* Replace the lengths in the dummy stored block with len. */
  6161. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(4)))) = uint8(len1)
  6162. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(3)))) = uint8(len1 >> int32(8))
  6163. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(2)))) = uint8(^len1)
  6164. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(1)))) = uint8(^len1 >> int32(8))
  6165. /* Write the stored block header bytes. */
  6166. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6167. /* Copy uncompressed bytes from the window to next_out. */
  6168. if left != 0 {
  6169. if left > len1 {
  6170. left = len1
  6171. }
  6172. 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), left)
  6173. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 12)) += uintptr(left)
  6174. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 16)) -= left
  6175. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 20)) += left
  6176. p3 = s + 92
  6177. *(*int32)(unsafe.Pointer(p3)) = int32(uint32(*(*int32)(unsafe.Pointer(p3))) + left)
  6178. len1 -= left
  6179. }
  6180. /* Copy uncompressed bytes directly from next_in to next_out, updating
  6181. * the check value.
  6182. */
  6183. if len1 != 0 {
  6184. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  6185. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 12)) += uintptr(len1)
  6186. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 16)) -= len1
  6187. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 20)) += len1
  6188. }
  6189. }
  6190. /* Update the sliding window with the last s->w_size bytes of the copied
  6191. * data, or append all of the copied data to the existing window if less
  6192. * than s->w_size bytes were copied. Also update the number of bytes to
  6193. * insert in the hash tables, in the event that deflateParams() switches to
  6194. * a non-zero compression level.
  6195. */
  6196. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  6197. if used != 0 {
  6198. /* If any input was used, then no unused input remains in the window,
  6199. * therefore s->block_start == s->strstart.
  6200. */
  6201. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  6202. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  6203. 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), (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6204. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6205. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6206. } else {
  6207. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart <= used {
  6208. /* Slide the window down. */
  6209. *(*TuInt)(unsafe.Pointer(s + 108)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6210. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6211. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6212. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6213. } /* add a pending slide_hash() */
  6214. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6215. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6216. }
  6217. }
  6218. 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), used)
  6219. *(*TuInt)(unsafe.Pointer(s + 108)) += used
  6220. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6221. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6222. } else {
  6223. v4 = used
  6224. }
  6225. *(*TuInt)(unsafe.Pointer(s + 5812)) += v4
  6226. }
  6227. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6228. }
  6229. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6230. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6231. }
  6232. /* If the last block was written to next_out, then done. */
  6233. if last != 0 {
  6234. return int32(_finish_done)
  6235. }
  6236. /* If flushing and all input has been consumed, then done. */
  6237. 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) && libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  6238. return int32(_block_done)
  6239. }
  6240. /* Fill the window with any remaining input. */
  6241. have = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6242. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  6243. /* Slide the window down. */
  6244. p5 = s + 92
  6245. *(*int32)(unsafe.Pointer(p5)) = int32(uint32(*(*int32)(unsafe.Pointer(p5))) - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6246. *(*TuInt)(unsafe.Pointer(s + 108)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6247. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6248. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6249. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6250. } /* add a pending slide_hash() */
  6251. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  6252. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6253. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6254. }
  6255. }
  6256. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6257. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6258. }
  6259. if have != 0 {
  6260. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  6261. *(*TuInt)(unsafe.Pointer(s + 108)) += have
  6262. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6263. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6264. } else {
  6265. v6 = have
  6266. }
  6267. *(*TuInt)(unsafe.Pointer(s + 5812)) += v6
  6268. }
  6269. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6270. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6271. }
  6272. /* There was not enough avail_out to write a complete worthy or flushed
  6273. * stored block to next_out. Write a stored block to pending instead, if we
  6274. * have enough input for a worthy block, or if flushing and there is enough
  6275. * room for the remaining input as a stored block in the pending buffer.
  6276. */
  6277. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6278. /* maximum stored block length that will fit in pending: */
  6279. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-have > libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_STORED)) {
  6280. v7 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_STORED))
  6281. } else {
  6282. v7 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - have
  6283. }
  6284. have = v7
  6285. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6286. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6287. } else {
  6288. v8 = have
  6289. }
  6290. min_block = v8
  6291. left = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6292. 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 {
  6293. if left > have {
  6294. v9 = have
  6295. } else {
  6296. v9 = left
  6297. }
  6298. len1 = v9
  6299. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  6300. v10 = int32(1)
  6301. } else {
  6302. v10 = 0
  6303. }
  6304. last = libc.Uint32FromInt32(v10)
  6305. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), len1, libc.Int32FromUint32(last))
  6306. p11 = s + 92
  6307. *(*int32)(unsafe.Pointer(p11)) = int32(uint32(*(*int32)(unsafe.Pointer(p11))) + len1)
  6308. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6309. }
  6310. /* We've done all we can with the available input and output. */
  6311. if last != 0 {
  6312. v12 = int32(_finish_started)
  6313. } else {
  6314. v12 = int32(_need_more)
  6315. }
  6316. return v12
  6317. }
  6318. // C documentation
  6319. //
  6320. // /* ===========================================================================
  6321. // * Compress as much as possible from the input stream, return the current
  6322. // * block state.
  6323. // * This function does not perform lazy evaluation of matches and inserts
  6324. // * new strings in the dictionary only for unmatched strings or for short
  6325. // * matches. It is used only for the fast compression options.
  6326. // */
  6327. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6328. var bflush, v9 int32
  6329. var cc, len1 Tuch
  6330. var dist Tush
  6331. var hash_head TIPos
  6332. var v10, v14, v16, v18, v3, v5, v7 TuInt
  6333. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  6334. var v13, v2 TPosf
  6335. var v21 uint32
  6336. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6337. for {
  6338. /* Make sure that we always have enough lookahead, except
  6339. * at the end of the input file. We need MAX_MATCH bytes
  6340. * for the next match, plus MIN_MATCH bytes to insert the
  6341. * string following the next match.
  6342. */
  6343. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6344. _fill_window(tls, s)
  6345. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6346. return int32(_need_more)
  6347. }
  6348. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6349. break
  6350. } /* flush the current block */
  6351. }
  6352. /* Insert the string window[strstart .. strstart + 2] in the
  6353. * dictionary, and set hash_head to the head of the hash chain:
  6354. */
  6355. hash_head = uint32(m_NIL)
  6356. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6357. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6358. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6359. *(*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
  6360. hash_head = uint32(v2)
  6361. *(*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)
  6362. }
  6363. /* Find the longest match, discarding those <= prev_length.
  6364. * At this point we have always match_length < MIN_MATCH
  6365. */
  6366. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6367. /* To simplify the code, we prevent matches with the string
  6368. * of window index 0 (in particular we have to avoid a match
  6369. * of the string with itself at the start of the input file).
  6370. */
  6371. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6372. /* longest_match() sets match_start */
  6373. }
  6374. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6375. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6376. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  6377. v4 = s + 5792
  6378. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6379. *(*TuInt)(unsafe.Pointer(v4))++
  6380. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6381. v6 = s + 5792
  6382. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6383. *(*TuInt)(unsafe.Pointer(v6))++
  6384. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6385. v8 = s + 5792
  6386. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6387. *(*TuInt)(unsafe.Pointer(v8))++
  6388. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6389. dist--
  6390. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6391. if libc.Int32FromUint16(dist) < int32(256) {
  6392. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6393. } else {
  6394. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6395. }
  6396. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v9)*4))++
  6397. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6398. *(*TuInt)(unsafe.Pointer(s + 116)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6399. /* Insert new strings in the hash table only if the match length
  6400. * is not too large. This saves time but degrades compression.
  6401. */
  6402. 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) {
  6403. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  6404. for {
  6405. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6406. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6407. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6408. *(*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
  6409. hash_head = uint32(v13)
  6410. *(*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)
  6411. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  6412. * always MIN_MATCH bytes ahead.
  6413. */
  6414. goto _12
  6415. _12:
  6416. ;
  6417. v11 = s + 96
  6418. *(*TuInt)(unsafe.Pointer(v11))--
  6419. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6420. if !(v10 != uint32(0)) {
  6421. break
  6422. }
  6423. }
  6424. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6425. } else {
  6426. *(*TuInt)(unsafe.Pointer(s + 108)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6427. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6428. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  6429. (*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
  6430. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  6431. * matter since it will be recomputed at next deflate call.
  6432. */
  6433. }
  6434. } else {
  6435. /* No match, output a literal byte */
  6436. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6437. v15 = s + 5792
  6438. v14 = *(*TuInt)(unsafe.Pointer(v15))
  6439. *(*TuInt)(unsafe.Pointer(v15))++
  6440. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  6441. v17 = s + 5792
  6442. v16 = *(*TuInt)(unsafe.Pointer(v17))
  6443. *(*TuInt)(unsafe.Pointer(v17))++
  6444. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  6445. v19 = s + 5792
  6446. v18 = *(*TuInt)(unsafe.Pointer(v19))
  6447. *(*TuInt)(unsafe.Pointer(v19))++
  6448. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  6449. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6450. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6451. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6452. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6453. }
  6454. if bflush != 0 {
  6455. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6456. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6457. } else {
  6458. v20 = libc.UintptrFromInt32(m_Z_NULL)
  6459. }
  6460. x__tr_flush_block(tls, s, v20, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6461. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6462. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6463. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6464. return int32(_need_more)
  6465. }
  6466. }
  6467. goto _1
  6468. _1:
  6469. }
  6470. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6471. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6472. } else {
  6473. v21 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6474. }
  6475. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  6476. if flush == int32(m_Z_FINISH) {
  6477. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6478. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6479. } else {
  6480. v22 = libc.UintptrFromInt32(m_Z_NULL)
  6481. }
  6482. x__tr_flush_block(tls, s, v22, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6483. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6484. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6485. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6486. return int32(_finish_started)
  6487. }
  6488. return int32(_finish_done)
  6489. }
  6490. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6491. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6492. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6493. } else {
  6494. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6495. }
  6496. x__tr_flush_block(tls, s, v23, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6497. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6498. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6499. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6500. return int32(_need_more)
  6501. }
  6502. }
  6503. return int32(_block_done)
  6504. }
  6505. // C documentation
  6506. //
  6507. // /* ===========================================================================
  6508. // * Same as above, but achieves better compression. We use a lazy
  6509. // * evaluation for matches: a match is finally adopted only if there is
  6510. // * no better match at the next window position.
  6511. // */
  6512. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6513. var bflush, v9 int32
  6514. var cc, cc1, len1 Tuch
  6515. var dist Tush
  6516. var hash_head TIPos
  6517. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  6518. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  6519. var v15, v2 TPosf
  6520. var v30 uint32
  6521. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6522. /* Process the input block. */
  6523. for {
  6524. /* Make sure that we always have enough lookahead, except
  6525. * at the end of the input file. We need MAX_MATCH bytes
  6526. * for the next match, plus MIN_MATCH bytes to insert the
  6527. * string following the next match.
  6528. */
  6529. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6530. _fill_window(tls, s)
  6531. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  6532. return int32(_need_more)
  6533. }
  6534. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6535. break
  6536. } /* flush the current block */
  6537. }
  6538. /* Insert the string window[strstart .. strstart + 2] in the
  6539. * dictionary, and set hash_head to the head of the hash chain:
  6540. */
  6541. hash_head = uint32(m_NIL)
  6542. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6543. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6544. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6545. *(*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
  6546. hash_head = uint32(v2)
  6547. *(*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)
  6548. }
  6549. /* Find the longest match, discarding those <= prev_length.
  6550. */
  6551. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6552. /* Find the longest match, discarding those <= prev_length.
  6553. */
  6554. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  6555. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6556. 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-libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6557. /* To simplify the code, we prevent matches with the string
  6558. * of window index 0 (in particular we have to avoid a match
  6559. * of the string with itself at the start of the input file).
  6560. */
  6561. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6562. /* longest_match() sets match_start */
  6563. 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)) {
  6564. /* If prev_match is also MIN_MATCH, match_start is garbage
  6565. * but we will ignore the current match anyway.
  6566. */
  6567. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6568. }
  6569. }
  6570. /* If there was a match at the previous step and the current
  6571. * match is not better, output the previous match:
  6572. */
  6573. 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 {
  6574. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  6575. /* Do not insert strings in hash table beyond this. */
  6576. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6577. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  6578. v4 = s + 5792
  6579. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6580. *(*TuInt)(unsafe.Pointer(v4))++
  6581. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6582. v6 = s + 5792
  6583. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6584. *(*TuInt)(unsafe.Pointer(v6))++
  6585. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6586. v8 = s + 5792
  6587. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6588. *(*TuInt)(unsafe.Pointer(v8))++
  6589. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6590. dist--
  6591. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6592. if libc.Int32FromUint16(dist) < int32(256) {
  6593. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6594. } else {
  6595. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6596. }
  6597. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v9)*4))++
  6598. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6599. /* Insert in hash table all strings up to the end of the match.
  6600. * strstart - 1 and strstart are already inserted. If there is not
  6601. * enough lookahead, the last two strings are not inserted in
  6602. * the hash table.
  6603. */
  6604. *(*TuInt)(unsafe.Pointer(s + 116)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  6605. *(*TuInt)(unsafe.Pointer(s + 120)) -= uint32(2)
  6606. for {
  6607. v14 = s + 108
  6608. *(*TuInt)(unsafe.Pointer(v14))++
  6609. v13 = *(*TuInt)(unsafe.Pointer(v14))
  6610. if v13 <= max_insert {
  6611. (*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+libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6612. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6613. *(*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
  6614. hash_head = uint32(v15)
  6615. *(*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)
  6616. }
  6617. goto _12
  6618. _12:
  6619. ;
  6620. v11 = s + 120
  6621. *(*TuInt)(unsafe.Pointer(v11))--
  6622. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6623. if !(v10 != uint32(0)) {
  6624. break
  6625. }
  6626. }
  6627. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6628. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6629. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6630. if bflush != 0 {
  6631. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6632. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6633. } else {
  6634. v16 = libc.UintptrFromInt32(m_Z_NULL)
  6635. }
  6636. x__tr_flush_block(tls, s, v16, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6637. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6638. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6639. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6640. return int32(_need_more)
  6641. }
  6642. }
  6643. } else {
  6644. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6645. /* If there was no match at the previous position, output a
  6646. * single literal. If there was a match but the current match
  6647. * is longer, truncate the previous match to a single literal.
  6648. */
  6649. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6650. v18 = s + 5792
  6651. v17 = *(*TuInt)(unsafe.Pointer(v18))
  6652. *(*TuInt)(unsafe.Pointer(v18))++
  6653. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  6654. v20 = s + 5792
  6655. v19 = *(*TuInt)(unsafe.Pointer(v20))
  6656. *(*TuInt)(unsafe.Pointer(v20))++
  6657. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  6658. v22 = s + 5792
  6659. v21 = *(*TuInt)(unsafe.Pointer(v22))
  6660. *(*TuInt)(unsafe.Pointer(v22))++
  6661. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  6662. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6663. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6664. if bflush != 0 {
  6665. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6666. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6667. } else {
  6668. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6669. }
  6670. x__tr_flush_block(tls, s, v23, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6671. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6672. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6673. }
  6674. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6675. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6676. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6677. return int32(_need_more)
  6678. }
  6679. } else {
  6680. /* There is no previous match to compare with, wait for
  6681. * the next step to decide.
  6682. */
  6683. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  6684. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6685. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6686. }
  6687. }
  6688. goto _1
  6689. _1:
  6690. }
  6691. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6692. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6693. v25 = s + 5792
  6694. v24 = *(*TuInt)(unsafe.Pointer(v25))
  6695. *(*TuInt)(unsafe.Pointer(v25))++
  6696. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  6697. v27 = s + 5792
  6698. v26 = *(*TuInt)(unsafe.Pointer(v27))
  6699. *(*TuInt)(unsafe.Pointer(v27))++
  6700. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  6701. v29 = s + 5792
  6702. v28 = *(*TuInt)(unsafe.Pointer(v29))
  6703. *(*TuInt)(unsafe.Pointer(v29))++
  6704. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  6705. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc1)*4))++
  6706. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6707. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6708. }
  6709. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6710. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6711. } else {
  6712. v30 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6713. }
  6714. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  6715. if flush == int32(m_Z_FINISH) {
  6716. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6717. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6718. } else {
  6719. v31 = libc.UintptrFromInt32(m_Z_NULL)
  6720. }
  6721. x__tr_flush_block(tls, s, v31, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6722. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6723. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6724. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6725. return int32(_finish_started)
  6726. }
  6727. return int32(_finish_done)
  6728. }
  6729. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6730. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6731. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6732. } else {
  6733. v32 = libc.UintptrFromInt32(m_Z_NULL)
  6734. }
  6735. x__tr_flush_block(tls, s, v32, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6736. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6737. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6738. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6739. return int32(_need_more)
  6740. }
  6741. }
  6742. return int32(_block_done)
  6743. }
  6744. // C documentation
  6745. //
  6746. // /* ===========================================================================
  6747. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  6748. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  6749. // * deflate switches away from Z_RLE.)
  6750. // */
  6751. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6752. var bflush, v29 int32
  6753. var cc, len1 Tuch
  6754. var dist Tush
  6755. var prev, v23, v25, v27, v30, v32, v34 TuInt
  6756. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  6757. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  6758. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6759. for {
  6760. /* Make sure that we always have enough lookahead, except
  6761. * at the end of the input file. We need MAX_MATCH bytes
  6762. * for the longest run, plus one for the unrolled loop.
  6763. */
  6764. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  6765. _fill_window(tls, s)
  6766. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  6767. return int32(_need_more)
  6768. }
  6769. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6770. break
  6771. } /* flush the current block */
  6772. }
  6773. /* See how many times the previous byte repeats */
  6774. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6775. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  6776. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  6777. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  6778. scan++
  6779. v2 = scan
  6780. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  6781. scan++
  6782. v3 = scan
  6783. }
  6784. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  6785. scan++
  6786. v5 = scan
  6787. }
  6788. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  6789. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  6790. for {
  6791. goto _22
  6792. _22:
  6793. ;
  6794. scan++
  6795. v7 = scan
  6796. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  6797. scan++
  6798. v8 = scan
  6799. }
  6800. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  6801. scan++
  6802. v10 = scan
  6803. }
  6804. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  6805. scan++
  6806. v12 = scan
  6807. }
  6808. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  6809. scan++
  6810. v14 = scan
  6811. }
  6812. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  6813. scan++
  6814. v16 = scan
  6815. }
  6816. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  6817. scan++
  6818. v18 = scan
  6819. }
  6820. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  6821. scan++
  6822. v20 = scan
  6823. }
  6824. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  6825. break
  6826. }
  6827. }
  6828. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - libc.Uint32FromInt32(int32(strend)-int32(scan))
  6829. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6830. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6831. }
  6832. }
  6833. }
  6834. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  6835. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6836. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6837. dist = libc.Uint16FromInt32(libc.Int32FromInt32(1))
  6838. v24 = s + 5792
  6839. v23 = *(*TuInt)(unsafe.Pointer(v24))
  6840. *(*TuInt)(unsafe.Pointer(v24))++
  6841. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  6842. v26 = s + 5792
  6843. v25 = *(*TuInt)(unsafe.Pointer(v26))
  6844. *(*TuInt)(unsafe.Pointer(v26))++
  6845. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6846. v28 = s + 5792
  6847. v27 = *(*TuInt)(unsafe.Pointer(v28))
  6848. *(*TuInt)(unsafe.Pointer(v28))++
  6849. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  6850. dist--
  6851. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6852. if libc.Int32FromUint16(dist) < int32(256) {
  6853. v29 = libc.Int32FromUint8(x__dist_code[dist])
  6854. } else {
  6855. v29 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6856. }
  6857. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v29)*4))++
  6858. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6859. *(*TuInt)(unsafe.Pointer(s + 116)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6860. *(*TuInt)(unsafe.Pointer(s + 108)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6861. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6862. } else {
  6863. /* No match, output a literal byte */
  6864. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6865. v31 = s + 5792
  6866. v30 = *(*TuInt)(unsafe.Pointer(v31))
  6867. *(*TuInt)(unsafe.Pointer(v31))++
  6868. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  6869. v33 = s + 5792
  6870. v32 = *(*TuInt)(unsafe.Pointer(v33))
  6871. *(*TuInt)(unsafe.Pointer(v33))++
  6872. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  6873. v35 = s + 5792
  6874. v34 = *(*TuInt)(unsafe.Pointer(v35))
  6875. *(*TuInt)(unsafe.Pointer(v35))++
  6876. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  6877. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6878. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6879. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6880. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6881. }
  6882. if bflush != 0 {
  6883. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6884. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6885. } else {
  6886. v36 = libc.UintptrFromInt32(m_Z_NULL)
  6887. }
  6888. x__tr_flush_block(tls, s, v36, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6889. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6890. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6891. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6892. return int32(_need_more)
  6893. }
  6894. }
  6895. goto _1
  6896. _1:
  6897. }
  6898. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6899. if flush == int32(m_Z_FINISH) {
  6900. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6901. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6902. } else {
  6903. v37 = libc.UintptrFromInt32(m_Z_NULL)
  6904. }
  6905. x__tr_flush_block(tls, s, v37, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6906. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6907. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6908. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6909. return int32(_finish_started)
  6910. }
  6911. return int32(_finish_done)
  6912. }
  6913. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6914. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6915. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6916. } else {
  6917. v38 = libc.UintptrFromInt32(m_Z_NULL)
  6918. }
  6919. x__tr_flush_block(tls, s, v38, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6920. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6921. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6922. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6923. return int32(_need_more)
  6924. }
  6925. }
  6926. return int32(_block_done)
  6927. }
  6928. // C documentation
  6929. //
  6930. // /* ===========================================================================
  6931. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  6932. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  6933. // */
  6934. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6935. var bflush int32
  6936. var cc Tuch
  6937. var v10, v3, v5, v7, v8, v9 uintptr
  6938. var v2, v4, v6 TuInt
  6939. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6940. for {
  6941. /* Make sure that we have a literal to write. */
  6942. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6943. _fill_window(tls, s)
  6944. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6945. if flush == m_Z_NO_FLUSH {
  6946. return int32(_need_more)
  6947. }
  6948. break /* flush the current block */
  6949. }
  6950. }
  6951. /* Output a literal byte */
  6952. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6953. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6954. v3 = s + 5792
  6955. v2 = *(*TuInt)(unsafe.Pointer(v3))
  6956. *(*TuInt)(unsafe.Pointer(v3))++
  6957. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  6958. v5 = s + 5792
  6959. v4 = *(*TuInt)(unsafe.Pointer(v5))
  6960. *(*TuInt)(unsafe.Pointer(v5))++
  6961. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  6962. v7 = s + 5792
  6963. v6 = *(*TuInt)(unsafe.Pointer(v7))
  6964. *(*TuInt)(unsafe.Pointer(v7))++
  6965. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  6966. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(cc)*4))++
  6967. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6968. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6969. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6970. if bflush != 0 {
  6971. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6972. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6973. } else {
  6974. v8 = libc.UintptrFromInt32(m_Z_NULL)
  6975. }
  6976. x__tr_flush_block(tls, s, v8, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6977. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6978. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6979. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6980. return int32(_need_more)
  6981. }
  6982. }
  6983. goto _1
  6984. _1:
  6985. }
  6986. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6987. if flush == int32(m_Z_FINISH) {
  6988. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6989. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6990. } else {
  6991. v9 = libc.UintptrFromInt32(m_Z_NULL)
  6992. }
  6993. x__tr_flush_block(tls, s, v9, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6994. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6995. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6996. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6997. return int32(_finish_started)
  6998. }
  6999. return int32(_finish_done)
  7000. }
  7001. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  7002. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  7003. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  7004. } else {
  7005. v10 = libc.UintptrFromInt32(m_Z_NULL)
  7006. }
  7007. x__tr_flush_block(tls, s, v10, libc.Uint32FromInt32(libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  7008. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  7009. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7010. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  7011. return int32(_need_more)
  7012. }
  7013. }
  7014. return int32(_block_done)
  7015. }
  7016. const m_ENOUGH_DISTS = 592
  7017. const m_ENOUGH_LENS = 852
  7018. const m_PRESET_DICT2 = 0x20
  7019. type Tcode = struct {
  7020. Fop uint8
  7021. Fbits uint8
  7022. Fval uint16
  7023. }
  7024. type Tcodetype = int32
  7025. const _CODES = 0
  7026. const _LENS = 1
  7027. const _DISTS = 2
  7028. type Tinflate_mode = int32
  7029. const _HEAD = 16180
  7030. const _FLAGS = 16181
  7031. const _TIME = 16182
  7032. const _OS = 16183
  7033. const _EXLEN = 16184
  7034. const _EXTRA = 16185
  7035. const _NAME = 16186
  7036. const _COMMENT = 16187
  7037. const _HCRC = 16188
  7038. const _DICTID = 16189
  7039. const _DICT = 16190
  7040. const _TYPE = 16191
  7041. const _TYPEDO = 16192
  7042. const _STORED = 16193
  7043. const _COPY_ = 16194
  7044. const _COPY = 16195
  7045. const _TABLE = 16196
  7046. const _LENLENS = 16197
  7047. const _CODELENS = 16198
  7048. const _LEN_ = 16199
  7049. const _LEN = 16200
  7050. const _LENEXT = 16201
  7051. const _DIST = 16202
  7052. const _DISTEXT = 16203
  7053. const _MATCH = 16204
  7054. const _LIT = 16205
  7055. const _CHECK = 16206
  7056. const _LENGTH = 16207
  7057. const _DONE = 16208
  7058. const _BAD = 16209
  7059. const _MEM = 16210
  7060. const _SYNC = 16211
  7061. type Tinflate_state = struct {
  7062. Fstrm Tz_streamp
  7063. Fmode Tinflate_mode
  7064. Flast int32
  7065. Fwrap int32
  7066. Fhavedict int32
  7067. Fflags int32
  7068. Fdmax uint32
  7069. Fcheck uint32
  7070. Ftotal uint32
  7071. Fhead Tgz_headerp
  7072. Fwbits uint32
  7073. Fwsize uint32
  7074. Fwhave uint32
  7075. Fwnext uint32
  7076. Fwindow uintptr
  7077. Fhold uint32
  7078. Fbits uint32
  7079. Flength uint32
  7080. Foffset uint32
  7081. Fextra uint32
  7082. Flencode uintptr
  7083. Fdistcode uintptr
  7084. Flenbits uint32
  7085. Fdistbits uint32
  7086. Fncode uint32
  7087. Fnlen uint32
  7088. Fndist uint32
  7089. Fhave uint32
  7090. Fnext uintptr
  7091. Flens [320]uint16
  7092. Fwork [288]uint16
  7093. Fcodes [1444]Tcode
  7094. Fsane int32
  7095. Fback int32
  7096. Fwas uint32
  7097. }
  7098. // C documentation
  7099. //
  7100. // /*
  7101. // strm provides memory allocation functions in zalloc and zfree, or
  7102. // Z_NULL to use the library memory allocation functions.
  7103. //
  7104. // windowBits is in the range 8..15, and window is a user-supplied
  7105. // window and output buffer that is 2**windowBits bytes.
  7106. // */
  7107. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  7108. var state uintptr
  7109. _ = state
  7110. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint32(libc.Uint32FromInt64(56)) {
  7111. return -int32(6)
  7112. }
  7113. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  7114. return -int32(2)
  7115. }
  7116. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  7117. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  7118. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  7119. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  7120. }
  7121. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  7122. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  7123. }
  7124. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(7120))
  7125. if state == uintptr(m_Z_NULL) {
  7126. return -int32(4)
  7127. }
  7128. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  7129. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  7130. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  7131. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  7132. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  7133. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  7134. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  7135. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  7136. return m_Z_OK
  7137. }
  7138. // C documentation
  7139. //
  7140. // /*
  7141. // Return state with length and distance decoding tables and index sizes set to
  7142. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  7143. // If BUILDFIXED is defined, then instead this routine builds the tables the
  7144. // first time it's called, and returns those tables the first time and
  7145. // thereafter. This reduces the size of the code by about 2K bytes, in
  7146. // exchange for a little execution time. However, BUILDFIXED should not be
  7147. // used for threaded applications, since the rewriting of the tables and virgin
  7148. // may not be thread-safe.
  7149. // */
  7150. func _fixedtables(tls *libc.TLS, state uintptr) {
  7151. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  7152. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  7153. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  7154. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  7155. }
  7156. var _lenfix = [512]Tcode{
  7157. 0: {
  7158. Fop: uint8(96),
  7159. Fbits: uint8(7),
  7160. },
  7161. 1: {
  7162. Fbits: uint8(8),
  7163. Fval: uint16(80),
  7164. },
  7165. 2: {
  7166. Fbits: uint8(8),
  7167. Fval: uint16(16),
  7168. },
  7169. 3: {
  7170. Fop: uint8(20),
  7171. Fbits: uint8(8),
  7172. Fval: uint16(115),
  7173. },
  7174. 4: {
  7175. Fop: uint8(18),
  7176. Fbits: uint8(7),
  7177. Fval: uint16(31),
  7178. },
  7179. 5: {
  7180. Fbits: uint8(8),
  7181. Fval: uint16(112),
  7182. },
  7183. 6: {
  7184. Fbits: uint8(8),
  7185. Fval: uint16(48),
  7186. },
  7187. 7: {
  7188. Fbits: uint8(9),
  7189. Fval: uint16(192),
  7190. },
  7191. 8: {
  7192. Fop: uint8(16),
  7193. Fbits: uint8(7),
  7194. Fval: uint16(10),
  7195. },
  7196. 9: {
  7197. Fbits: uint8(8),
  7198. Fval: uint16(96),
  7199. },
  7200. 10: {
  7201. Fbits: uint8(8),
  7202. Fval: uint16(32),
  7203. },
  7204. 11: {
  7205. Fbits: uint8(9),
  7206. Fval: uint16(160),
  7207. },
  7208. 12: {
  7209. Fbits: uint8(8),
  7210. },
  7211. 13: {
  7212. Fbits: uint8(8),
  7213. Fval: uint16(128),
  7214. },
  7215. 14: {
  7216. Fbits: uint8(8),
  7217. Fval: uint16(64),
  7218. },
  7219. 15: {
  7220. Fbits: uint8(9),
  7221. Fval: uint16(224),
  7222. },
  7223. 16: {
  7224. Fop: uint8(16),
  7225. Fbits: uint8(7),
  7226. Fval: uint16(6),
  7227. },
  7228. 17: {
  7229. Fbits: uint8(8),
  7230. Fval: uint16(88),
  7231. },
  7232. 18: {
  7233. Fbits: uint8(8),
  7234. Fval: uint16(24),
  7235. },
  7236. 19: {
  7237. Fbits: uint8(9),
  7238. Fval: uint16(144),
  7239. },
  7240. 20: {
  7241. Fop: uint8(19),
  7242. Fbits: uint8(7),
  7243. Fval: uint16(59),
  7244. },
  7245. 21: {
  7246. Fbits: uint8(8),
  7247. Fval: uint16(120),
  7248. },
  7249. 22: {
  7250. Fbits: uint8(8),
  7251. Fval: uint16(56),
  7252. },
  7253. 23: {
  7254. Fbits: uint8(9),
  7255. Fval: uint16(208),
  7256. },
  7257. 24: {
  7258. Fop: uint8(17),
  7259. Fbits: uint8(7),
  7260. Fval: uint16(17),
  7261. },
  7262. 25: {
  7263. Fbits: uint8(8),
  7264. Fval: uint16(104),
  7265. },
  7266. 26: {
  7267. Fbits: uint8(8),
  7268. Fval: uint16(40),
  7269. },
  7270. 27: {
  7271. Fbits: uint8(9),
  7272. Fval: uint16(176),
  7273. },
  7274. 28: {
  7275. Fbits: uint8(8),
  7276. Fval: uint16(8),
  7277. },
  7278. 29: {
  7279. Fbits: uint8(8),
  7280. Fval: uint16(136),
  7281. },
  7282. 30: {
  7283. Fbits: uint8(8),
  7284. Fval: uint16(72),
  7285. },
  7286. 31: {
  7287. Fbits: uint8(9),
  7288. Fval: uint16(240),
  7289. },
  7290. 32: {
  7291. Fop: uint8(16),
  7292. Fbits: uint8(7),
  7293. Fval: uint16(4),
  7294. },
  7295. 33: {
  7296. Fbits: uint8(8),
  7297. Fval: uint16(84),
  7298. },
  7299. 34: {
  7300. Fbits: uint8(8),
  7301. Fval: uint16(20),
  7302. },
  7303. 35: {
  7304. Fop: uint8(21),
  7305. Fbits: uint8(8),
  7306. Fval: uint16(227),
  7307. },
  7308. 36: {
  7309. Fop: uint8(19),
  7310. Fbits: uint8(7),
  7311. Fval: uint16(43),
  7312. },
  7313. 37: {
  7314. Fbits: uint8(8),
  7315. Fval: uint16(116),
  7316. },
  7317. 38: {
  7318. Fbits: uint8(8),
  7319. Fval: uint16(52),
  7320. },
  7321. 39: {
  7322. Fbits: uint8(9),
  7323. Fval: uint16(200),
  7324. },
  7325. 40: {
  7326. Fop: uint8(17),
  7327. Fbits: uint8(7),
  7328. Fval: uint16(13),
  7329. },
  7330. 41: {
  7331. Fbits: uint8(8),
  7332. Fval: uint16(100),
  7333. },
  7334. 42: {
  7335. Fbits: uint8(8),
  7336. Fval: uint16(36),
  7337. },
  7338. 43: {
  7339. Fbits: uint8(9),
  7340. Fval: uint16(168),
  7341. },
  7342. 44: {
  7343. Fbits: uint8(8),
  7344. Fval: uint16(4),
  7345. },
  7346. 45: {
  7347. Fbits: uint8(8),
  7348. Fval: uint16(132),
  7349. },
  7350. 46: {
  7351. Fbits: uint8(8),
  7352. Fval: uint16(68),
  7353. },
  7354. 47: {
  7355. Fbits: uint8(9),
  7356. Fval: uint16(232),
  7357. },
  7358. 48: {
  7359. Fop: uint8(16),
  7360. Fbits: uint8(7),
  7361. Fval: uint16(8),
  7362. },
  7363. 49: {
  7364. Fbits: uint8(8),
  7365. Fval: uint16(92),
  7366. },
  7367. 50: {
  7368. Fbits: uint8(8),
  7369. Fval: uint16(28),
  7370. },
  7371. 51: {
  7372. Fbits: uint8(9),
  7373. Fval: uint16(152),
  7374. },
  7375. 52: {
  7376. Fop: uint8(20),
  7377. Fbits: uint8(7),
  7378. Fval: uint16(83),
  7379. },
  7380. 53: {
  7381. Fbits: uint8(8),
  7382. Fval: uint16(124),
  7383. },
  7384. 54: {
  7385. Fbits: uint8(8),
  7386. Fval: uint16(60),
  7387. },
  7388. 55: {
  7389. Fbits: uint8(9),
  7390. Fval: uint16(216),
  7391. },
  7392. 56: {
  7393. Fop: uint8(18),
  7394. Fbits: uint8(7),
  7395. Fval: uint16(23),
  7396. },
  7397. 57: {
  7398. Fbits: uint8(8),
  7399. Fval: uint16(108),
  7400. },
  7401. 58: {
  7402. Fbits: uint8(8),
  7403. Fval: uint16(44),
  7404. },
  7405. 59: {
  7406. Fbits: uint8(9),
  7407. Fval: uint16(184),
  7408. },
  7409. 60: {
  7410. Fbits: uint8(8),
  7411. Fval: uint16(12),
  7412. },
  7413. 61: {
  7414. Fbits: uint8(8),
  7415. Fval: uint16(140),
  7416. },
  7417. 62: {
  7418. Fbits: uint8(8),
  7419. Fval: uint16(76),
  7420. },
  7421. 63: {
  7422. Fbits: uint8(9),
  7423. Fval: uint16(248),
  7424. },
  7425. 64: {
  7426. Fop: uint8(16),
  7427. Fbits: uint8(7),
  7428. Fval: uint16(3),
  7429. },
  7430. 65: {
  7431. Fbits: uint8(8),
  7432. Fval: uint16(82),
  7433. },
  7434. 66: {
  7435. Fbits: uint8(8),
  7436. Fval: uint16(18),
  7437. },
  7438. 67: {
  7439. Fop: uint8(21),
  7440. Fbits: uint8(8),
  7441. Fval: uint16(163),
  7442. },
  7443. 68: {
  7444. Fop: uint8(19),
  7445. Fbits: uint8(7),
  7446. Fval: uint16(35),
  7447. },
  7448. 69: {
  7449. Fbits: uint8(8),
  7450. Fval: uint16(114),
  7451. },
  7452. 70: {
  7453. Fbits: uint8(8),
  7454. Fval: uint16(50),
  7455. },
  7456. 71: {
  7457. Fbits: uint8(9),
  7458. Fval: uint16(196),
  7459. },
  7460. 72: {
  7461. Fop: uint8(17),
  7462. Fbits: uint8(7),
  7463. Fval: uint16(11),
  7464. },
  7465. 73: {
  7466. Fbits: uint8(8),
  7467. Fval: uint16(98),
  7468. },
  7469. 74: {
  7470. Fbits: uint8(8),
  7471. Fval: uint16(34),
  7472. },
  7473. 75: {
  7474. Fbits: uint8(9),
  7475. Fval: uint16(164),
  7476. },
  7477. 76: {
  7478. Fbits: uint8(8),
  7479. Fval: uint16(2),
  7480. },
  7481. 77: {
  7482. Fbits: uint8(8),
  7483. Fval: uint16(130),
  7484. },
  7485. 78: {
  7486. Fbits: uint8(8),
  7487. Fval: uint16(66),
  7488. },
  7489. 79: {
  7490. Fbits: uint8(9),
  7491. Fval: uint16(228),
  7492. },
  7493. 80: {
  7494. Fop: uint8(16),
  7495. Fbits: uint8(7),
  7496. Fval: uint16(7),
  7497. },
  7498. 81: {
  7499. Fbits: uint8(8),
  7500. Fval: uint16(90),
  7501. },
  7502. 82: {
  7503. Fbits: uint8(8),
  7504. Fval: uint16(26),
  7505. },
  7506. 83: {
  7507. Fbits: uint8(9),
  7508. Fval: uint16(148),
  7509. },
  7510. 84: {
  7511. Fop: uint8(20),
  7512. Fbits: uint8(7),
  7513. Fval: uint16(67),
  7514. },
  7515. 85: {
  7516. Fbits: uint8(8),
  7517. Fval: uint16(122),
  7518. },
  7519. 86: {
  7520. Fbits: uint8(8),
  7521. Fval: uint16(58),
  7522. },
  7523. 87: {
  7524. Fbits: uint8(9),
  7525. Fval: uint16(212),
  7526. },
  7527. 88: {
  7528. Fop: uint8(18),
  7529. Fbits: uint8(7),
  7530. Fval: uint16(19),
  7531. },
  7532. 89: {
  7533. Fbits: uint8(8),
  7534. Fval: uint16(106),
  7535. },
  7536. 90: {
  7537. Fbits: uint8(8),
  7538. Fval: uint16(42),
  7539. },
  7540. 91: {
  7541. Fbits: uint8(9),
  7542. Fval: uint16(180),
  7543. },
  7544. 92: {
  7545. Fbits: uint8(8),
  7546. Fval: uint16(10),
  7547. },
  7548. 93: {
  7549. Fbits: uint8(8),
  7550. Fval: uint16(138),
  7551. },
  7552. 94: {
  7553. Fbits: uint8(8),
  7554. Fval: uint16(74),
  7555. },
  7556. 95: {
  7557. Fbits: uint8(9),
  7558. Fval: uint16(244),
  7559. },
  7560. 96: {
  7561. Fop: uint8(16),
  7562. Fbits: uint8(7),
  7563. Fval: uint16(5),
  7564. },
  7565. 97: {
  7566. Fbits: uint8(8),
  7567. Fval: uint16(86),
  7568. },
  7569. 98: {
  7570. Fbits: uint8(8),
  7571. Fval: uint16(22),
  7572. },
  7573. 99: {
  7574. Fop: uint8(64),
  7575. Fbits: uint8(8),
  7576. },
  7577. 100: {
  7578. Fop: uint8(19),
  7579. Fbits: uint8(7),
  7580. Fval: uint16(51),
  7581. },
  7582. 101: {
  7583. Fbits: uint8(8),
  7584. Fval: uint16(118),
  7585. },
  7586. 102: {
  7587. Fbits: uint8(8),
  7588. Fval: uint16(54),
  7589. },
  7590. 103: {
  7591. Fbits: uint8(9),
  7592. Fval: uint16(204),
  7593. },
  7594. 104: {
  7595. Fop: uint8(17),
  7596. Fbits: uint8(7),
  7597. Fval: uint16(15),
  7598. },
  7599. 105: {
  7600. Fbits: uint8(8),
  7601. Fval: uint16(102),
  7602. },
  7603. 106: {
  7604. Fbits: uint8(8),
  7605. Fval: uint16(38),
  7606. },
  7607. 107: {
  7608. Fbits: uint8(9),
  7609. Fval: uint16(172),
  7610. },
  7611. 108: {
  7612. Fbits: uint8(8),
  7613. Fval: uint16(6),
  7614. },
  7615. 109: {
  7616. Fbits: uint8(8),
  7617. Fval: uint16(134),
  7618. },
  7619. 110: {
  7620. Fbits: uint8(8),
  7621. Fval: uint16(70),
  7622. },
  7623. 111: {
  7624. Fbits: uint8(9),
  7625. Fval: uint16(236),
  7626. },
  7627. 112: {
  7628. Fop: uint8(16),
  7629. Fbits: uint8(7),
  7630. Fval: uint16(9),
  7631. },
  7632. 113: {
  7633. Fbits: uint8(8),
  7634. Fval: uint16(94),
  7635. },
  7636. 114: {
  7637. Fbits: uint8(8),
  7638. Fval: uint16(30),
  7639. },
  7640. 115: {
  7641. Fbits: uint8(9),
  7642. Fval: uint16(156),
  7643. },
  7644. 116: {
  7645. Fop: uint8(20),
  7646. Fbits: uint8(7),
  7647. Fval: uint16(99),
  7648. },
  7649. 117: {
  7650. Fbits: uint8(8),
  7651. Fval: uint16(126),
  7652. },
  7653. 118: {
  7654. Fbits: uint8(8),
  7655. Fval: uint16(62),
  7656. },
  7657. 119: {
  7658. Fbits: uint8(9),
  7659. Fval: uint16(220),
  7660. },
  7661. 120: {
  7662. Fop: uint8(18),
  7663. Fbits: uint8(7),
  7664. Fval: uint16(27),
  7665. },
  7666. 121: {
  7667. Fbits: uint8(8),
  7668. Fval: uint16(110),
  7669. },
  7670. 122: {
  7671. Fbits: uint8(8),
  7672. Fval: uint16(46),
  7673. },
  7674. 123: {
  7675. Fbits: uint8(9),
  7676. Fval: uint16(188),
  7677. },
  7678. 124: {
  7679. Fbits: uint8(8),
  7680. Fval: uint16(14),
  7681. },
  7682. 125: {
  7683. Fbits: uint8(8),
  7684. Fval: uint16(142),
  7685. },
  7686. 126: {
  7687. Fbits: uint8(8),
  7688. Fval: uint16(78),
  7689. },
  7690. 127: {
  7691. Fbits: uint8(9),
  7692. Fval: uint16(252),
  7693. },
  7694. 128: {
  7695. Fop: uint8(96),
  7696. Fbits: uint8(7),
  7697. },
  7698. 129: {
  7699. Fbits: uint8(8),
  7700. Fval: uint16(81),
  7701. },
  7702. 130: {
  7703. Fbits: uint8(8),
  7704. Fval: uint16(17),
  7705. },
  7706. 131: {
  7707. Fop: uint8(21),
  7708. Fbits: uint8(8),
  7709. Fval: uint16(131),
  7710. },
  7711. 132: {
  7712. Fop: uint8(18),
  7713. Fbits: uint8(7),
  7714. Fval: uint16(31),
  7715. },
  7716. 133: {
  7717. Fbits: uint8(8),
  7718. Fval: uint16(113),
  7719. },
  7720. 134: {
  7721. Fbits: uint8(8),
  7722. Fval: uint16(49),
  7723. },
  7724. 135: {
  7725. Fbits: uint8(9),
  7726. Fval: uint16(194),
  7727. },
  7728. 136: {
  7729. Fop: uint8(16),
  7730. Fbits: uint8(7),
  7731. Fval: uint16(10),
  7732. },
  7733. 137: {
  7734. Fbits: uint8(8),
  7735. Fval: uint16(97),
  7736. },
  7737. 138: {
  7738. Fbits: uint8(8),
  7739. Fval: uint16(33),
  7740. },
  7741. 139: {
  7742. Fbits: uint8(9),
  7743. Fval: uint16(162),
  7744. },
  7745. 140: {
  7746. Fbits: uint8(8),
  7747. Fval: uint16(1),
  7748. },
  7749. 141: {
  7750. Fbits: uint8(8),
  7751. Fval: uint16(129),
  7752. },
  7753. 142: {
  7754. Fbits: uint8(8),
  7755. Fval: uint16(65),
  7756. },
  7757. 143: {
  7758. Fbits: uint8(9),
  7759. Fval: uint16(226),
  7760. },
  7761. 144: {
  7762. Fop: uint8(16),
  7763. Fbits: uint8(7),
  7764. Fval: uint16(6),
  7765. },
  7766. 145: {
  7767. Fbits: uint8(8),
  7768. Fval: uint16(89),
  7769. },
  7770. 146: {
  7771. Fbits: uint8(8),
  7772. Fval: uint16(25),
  7773. },
  7774. 147: {
  7775. Fbits: uint8(9),
  7776. Fval: uint16(146),
  7777. },
  7778. 148: {
  7779. Fop: uint8(19),
  7780. Fbits: uint8(7),
  7781. Fval: uint16(59),
  7782. },
  7783. 149: {
  7784. Fbits: uint8(8),
  7785. Fval: uint16(121),
  7786. },
  7787. 150: {
  7788. Fbits: uint8(8),
  7789. Fval: uint16(57),
  7790. },
  7791. 151: {
  7792. Fbits: uint8(9),
  7793. Fval: uint16(210),
  7794. },
  7795. 152: {
  7796. Fop: uint8(17),
  7797. Fbits: uint8(7),
  7798. Fval: uint16(17),
  7799. },
  7800. 153: {
  7801. Fbits: uint8(8),
  7802. Fval: uint16(105),
  7803. },
  7804. 154: {
  7805. Fbits: uint8(8),
  7806. Fval: uint16(41),
  7807. },
  7808. 155: {
  7809. Fbits: uint8(9),
  7810. Fval: uint16(178),
  7811. },
  7812. 156: {
  7813. Fbits: uint8(8),
  7814. Fval: uint16(9),
  7815. },
  7816. 157: {
  7817. Fbits: uint8(8),
  7818. Fval: uint16(137),
  7819. },
  7820. 158: {
  7821. Fbits: uint8(8),
  7822. Fval: uint16(73),
  7823. },
  7824. 159: {
  7825. Fbits: uint8(9),
  7826. Fval: uint16(242),
  7827. },
  7828. 160: {
  7829. Fop: uint8(16),
  7830. Fbits: uint8(7),
  7831. Fval: uint16(4),
  7832. },
  7833. 161: {
  7834. Fbits: uint8(8),
  7835. Fval: uint16(85),
  7836. },
  7837. 162: {
  7838. Fbits: uint8(8),
  7839. Fval: uint16(21),
  7840. },
  7841. 163: {
  7842. Fop: uint8(16),
  7843. Fbits: uint8(8),
  7844. Fval: uint16(258),
  7845. },
  7846. 164: {
  7847. Fop: uint8(19),
  7848. Fbits: uint8(7),
  7849. Fval: uint16(43),
  7850. },
  7851. 165: {
  7852. Fbits: uint8(8),
  7853. Fval: uint16(117),
  7854. },
  7855. 166: {
  7856. Fbits: uint8(8),
  7857. Fval: uint16(53),
  7858. },
  7859. 167: {
  7860. Fbits: uint8(9),
  7861. Fval: uint16(202),
  7862. },
  7863. 168: {
  7864. Fop: uint8(17),
  7865. Fbits: uint8(7),
  7866. Fval: uint16(13),
  7867. },
  7868. 169: {
  7869. Fbits: uint8(8),
  7870. Fval: uint16(101),
  7871. },
  7872. 170: {
  7873. Fbits: uint8(8),
  7874. Fval: uint16(37),
  7875. },
  7876. 171: {
  7877. Fbits: uint8(9),
  7878. Fval: uint16(170),
  7879. },
  7880. 172: {
  7881. Fbits: uint8(8),
  7882. Fval: uint16(5),
  7883. },
  7884. 173: {
  7885. Fbits: uint8(8),
  7886. Fval: uint16(133),
  7887. },
  7888. 174: {
  7889. Fbits: uint8(8),
  7890. Fval: uint16(69),
  7891. },
  7892. 175: {
  7893. Fbits: uint8(9),
  7894. Fval: uint16(234),
  7895. },
  7896. 176: {
  7897. Fop: uint8(16),
  7898. Fbits: uint8(7),
  7899. Fval: uint16(8),
  7900. },
  7901. 177: {
  7902. Fbits: uint8(8),
  7903. Fval: uint16(93),
  7904. },
  7905. 178: {
  7906. Fbits: uint8(8),
  7907. Fval: uint16(29),
  7908. },
  7909. 179: {
  7910. Fbits: uint8(9),
  7911. Fval: uint16(154),
  7912. },
  7913. 180: {
  7914. Fop: uint8(20),
  7915. Fbits: uint8(7),
  7916. Fval: uint16(83),
  7917. },
  7918. 181: {
  7919. Fbits: uint8(8),
  7920. Fval: uint16(125),
  7921. },
  7922. 182: {
  7923. Fbits: uint8(8),
  7924. Fval: uint16(61),
  7925. },
  7926. 183: {
  7927. Fbits: uint8(9),
  7928. Fval: uint16(218),
  7929. },
  7930. 184: {
  7931. Fop: uint8(18),
  7932. Fbits: uint8(7),
  7933. Fval: uint16(23),
  7934. },
  7935. 185: {
  7936. Fbits: uint8(8),
  7937. Fval: uint16(109),
  7938. },
  7939. 186: {
  7940. Fbits: uint8(8),
  7941. Fval: uint16(45),
  7942. },
  7943. 187: {
  7944. Fbits: uint8(9),
  7945. Fval: uint16(186),
  7946. },
  7947. 188: {
  7948. Fbits: uint8(8),
  7949. Fval: uint16(13),
  7950. },
  7951. 189: {
  7952. Fbits: uint8(8),
  7953. Fval: uint16(141),
  7954. },
  7955. 190: {
  7956. Fbits: uint8(8),
  7957. Fval: uint16(77),
  7958. },
  7959. 191: {
  7960. Fbits: uint8(9),
  7961. Fval: uint16(250),
  7962. },
  7963. 192: {
  7964. Fop: uint8(16),
  7965. Fbits: uint8(7),
  7966. Fval: uint16(3),
  7967. },
  7968. 193: {
  7969. Fbits: uint8(8),
  7970. Fval: uint16(83),
  7971. },
  7972. 194: {
  7973. Fbits: uint8(8),
  7974. Fval: uint16(19),
  7975. },
  7976. 195: {
  7977. Fop: uint8(21),
  7978. Fbits: uint8(8),
  7979. Fval: uint16(195),
  7980. },
  7981. 196: {
  7982. Fop: uint8(19),
  7983. Fbits: uint8(7),
  7984. Fval: uint16(35),
  7985. },
  7986. 197: {
  7987. Fbits: uint8(8),
  7988. Fval: uint16(115),
  7989. },
  7990. 198: {
  7991. Fbits: uint8(8),
  7992. Fval: uint16(51),
  7993. },
  7994. 199: {
  7995. Fbits: uint8(9),
  7996. Fval: uint16(198),
  7997. },
  7998. 200: {
  7999. Fop: uint8(17),
  8000. Fbits: uint8(7),
  8001. Fval: uint16(11),
  8002. },
  8003. 201: {
  8004. Fbits: uint8(8),
  8005. Fval: uint16(99),
  8006. },
  8007. 202: {
  8008. Fbits: uint8(8),
  8009. Fval: uint16(35),
  8010. },
  8011. 203: {
  8012. Fbits: uint8(9),
  8013. Fval: uint16(166),
  8014. },
  8015. 204: {
  8016. Fbits: uint8(8),
  8017. Fval: uint16(3),
  8018. },
  8019. 205: {
  8020. Fbits: uint8(8),
  8021. Fval: uint16(131),
  8022. },
  8023. 206: {
  8024. Fbits: uint8(8),
  8025. Fval: uint16(67),
  8026. },
  8027. 207: {
  8028. Fbits: uint8(9),
  8029. Fval: uint16(230),
  8030. },
  8031. 208: {
  8032. Fop: uint8(16),
  8033. Fbits: uint8(7),
  8034. Fval: uint16(7),
  8035. },
  8036. 209: {
  8037. Fbits: uint8(8),
  8038. Fval: uint16(91),
  8039. },
  8040. 210: {
  8041. Fbits: uint8(8),
  8042. Fval: uint16(27),
  8043. },
  8044. 211: {
  8045. Fbits: uint8(9),
  8046. Fval: uint16(150),
  8047. },
  8048. 212: {
  8049. Fop: uint8(20),
  8050. Fbits: uint8(7),
  8051. Fval: uint16(67),
  8052. },
  8053. 213: {
  8054. Fbits: uint8(8),
  8055. Fval: uint16(123),
  8056. },
  8057. 214: {
  8058. Fbits: uint8(8),
  8059. Fval: uint16(59),
  8060. },
  8061. 215: {
  8062. Fbits: uint8(9),
  8063. Fval: uint16(214),
  8064. },
  8065. 216: {
  8066. Fop: uint8(18),
  8067. Fbits: uint8(7),
  8068. Fval: uint16(19),
  8069. },
  8070. 217: {
  8071. Fbits: uint8(8),
  8072. Fval: uint16(107),
  8073. },
  8074. 218: {
  8075. Fbits: uint8(8),
  8076. Fval: uint16(43),
  8077. },
  8078. 219: {
  8079. Fbits: uint8(9),
  8080. Fval: uint16(182),
  8081. },
  8082. 220: {
  8083. Fbits: uint8(8),
  8084. Fval: uint16(11),
  8085. },
  8086. 221: {
  8087. Fbits: uint8(8),
  8088. Fval: uint16(139),
  8089. },
  8090. 222: {
  8091. Fbits: uint8(8),
  8092. Fval: uint16(75),
  8093. },
  8094. 223: {
  8095. Fbits: uint8(9),
  8096. Fval: uint16(246),
  8097. },
  8098. 224: {
  8099. Fop: uint8(16),
  8100. Fbits: uint8(7),
  8101. Fval: uint16(5),
  8102. },
  8103. 225: {
  8104. Fbits: uint8(8),
  8105. Fval: uint16(87),
  8106. },
  8107. 226: {
  8108. Fbits: uint8(8),
  8109. Fval: uint16(23),
  8110. },
  8111. 227: {
  8112. Fop: uint8(64),
  8113. Fbits: uint8(8),
  8114. },
  8115. 228: {
  8116. Fop: uint8(19),
  8117. Fbits: uint8(7),
  8118. Fval: uint16(51),
  8119. },
  8120. 229: {
  8121. Fbits: uint8(8),
  8122. Fval: uint16(119),
  8123. },
  8124. 230: {
  8125. Fbits: uint8(8),
  8126. Fval: uint16(55),
  8127. },
  8128. 231: {
  8129. Fbits: uint8(9),
  8130. Fval: uint16(206),
  8131. },
  8132. 232: {
  8133. Fop: uint8(17),
  8134. Fbits: uint8(7),
  8135. Fval: uint16(15),
  8136. },
  8137. 233: {
  8138. Fbits: uint8(8),
  8139. Fval: uint16(103),
  8140. },
  8141. 234: {
  8142. Fbits: uint8(8),
  8143. Fval: uint16(39),
  8144. },
  8145. 235: {
  8146. Fbits: uint8(9),
  8147. Fval: uint16(174),
  8148. },
  8149. 236: {
  8150. Fbits: uint8(8),
  8151. Fval: uint16(7),
  8152. },
  8153. 237: {
  8154. Fbits: uint8(8),
  8155. Fval: uint16(135),
  8156. },
  8157. 238: {
  8158. Fbits: uint8(8),
  8159. Fval: uint16(71),
  8160. },
  8161. 239: {
  8162. Fbits: uint8(9),
  8163. Fval: uint16(238),
  8164. },
  8165. 240: {
  8166. Fop: uint8(16),
  8167. Fbits: uint8(7),
  8168. Fval: uint16(9),
  8169. },
  8170. 241: {
  8171. Fbits: uint8(8),
  8172. Fval: uint16(95),
  8173. },
  8174. 242: {
  8175. Fbits: uint8(8),
  8176. Fval: uint16(31),
  8177. },
  8178. 243: {
  8179. Fbits: uint8(9),
  8180. Fval: uint16(158),
  8181. },
  8182. 244: {
  8183. Fop: uint8(20),
  8184. Fbits: uint8(7),
  8185. Fval: uint16(99),
  8186. },
  8187. 245: {
  8188. Fbits: uint8(8),
  8189. Fval: uint16(127),
  8190. },
  8191. 246: {
  8192. Fbits: uint8(8),
  8193. Fval: uint16(63),
  8194. },
  8195. 247: {
  8196. Fbits: uint8(9),
  8197. Fval: uint16(222),
  8198. },
  8199. 248: {
  8200. Fop: uint8(18),
  8201. Fbits: uint8(7),
  8202. Fval: uint16(27),
  8203. },
  8204. 249: {
  8205. Fbits: uint8(8),
  8206. Fval: uint16(111),
  8207. },
  8208. 250: {
  8209. Fbits: uint8(8),
  8210. Fval: uint16(47),
  8211. },
  8212. 251: {
  8213. Fbits: uint8(9),
  8214. Fval: uint16(190),
  8215. },
  8216. 252: {
  8217. Fbits: uint8(8),
  8218. Fval: uint16(15),
  8219. },
  8220. 253: {
  8221. Fbits: uint8(8),
  8222. Fval: uint16(143),
  8223. },
  8224. 254: {
  8225. Fbits: uint8(8),
  8226. Fval: uint16(79),
  8227. },
  8228. 255: {
  8229. Fbits: uint8(9),
  8230. Fval: uint16(254),
  8231. },
  8232. 256: {
  8233. Fop: uint8(96),
  8234. Fbits: uint8(7),
  8235. },
  8236. 257: {
  8237. Fbits: uint8(8),
  8238. Fval: uint16(80),
  8239. },
  8240. 258: {
  8241. Fbits: uint8(8),
  8242. Fval: uint16(16),
  8243. },
  8244. 259: {
  8245. Fop: uint8(20),
  8246. Fbits: uint8(8),
  8247. Fval: uint16(115),
  8248. },
  8249. 260: {
  8250. Fop: uint8(18),
  8251. Fbits: uint8(7),
  8252. Fval: uint16(31),
  8253. },
  8254. 261: {
  8255. Fbits: uint8(8),
  8256. Fval: uint16(112),
  8257. },
  8258. 262: {
  8259. Fbits: uint8(8),
  8260. Fval: uint16(48),
  8261. },
  8262. 263: {
  8263. Fbits: uint8(9),
  8264. Fval: uint16(193),
  8265. },
  8266. 264: {
  8267. Fop: uint8(16),
  8268. Fbits: uint8(7),
  8269. Fval: uint16(10),
  8270. },
  8271. 265: {
  8272. Fbits: uint8(8),
  8273. Fval: uint16(96),
  8274. },
  8275. 266: {
  8276. Fbits: uint8(8),
  8277. Fval: uint16(32),
  8278. },
  8279. 267: {
  8280. Fbits: uint8(9),
  8281. Fval: uint16(161),
  8282. },
  8283. 268: {
  8284. Fbits: uint8(8),
  8285. },
  8286. 269: {
  8287. Fbits: uint8(8),
  8288. Fval: uint16(128),
  8289. },
  8290. 270: {
  8291. Fbits: uint8(8),
  8292. Fval: uint16(64),
  8293. },
  8294. 271: {
  8295. Fbits: uint8(9),
  8296. Fval: uint16(225),
  8297. },
  8298. 272: {
  8299. Fop: uint8(16),
  8300. Fbits: uint8(7),
  8301. Fval: uint16(6),
  8302. },
  8303. 273: {
  8304. Fbits: uint8(8),
  8305. Fval: uint16(88),
  8306. },
  8307. 274: {
  8308. Fbits: uint8(8),
  8309. Fval: uint16(24),
  8310. },
  8311. 275: {
  8312. Fbits: uint8(9),
  8313. Fval: uint16(145),
  8314. },
  8315. 276: {
  8316. Fop: uint8(19),
  8317. Fbits: uint8(7),
  8318. Fval: uint16(59),
  8319. },
  8320. 277: {
  8321. Fbits: uint8(8),
  8322. Fval: uint16(120),
  8323. },
  8324. 278: {
  8325. Fbits: uint8(8),
  8326. Fval: uint16(56),
  8327. },
  8328. 279: {
  8329. Fbits: uint8(9),
  8330. Fval: uint16(209),
  8331. },
  8332. 280: {
  8333. Fop: uint8(17),
  8334. Fbits: uint8(7),
  8335. Fval: uint16(17),
  8336. },
  8337. 281: {
  8338. Fbits: uint8(8),
  8339. Fval: uint16(104),
  8340. },
  8341. 282: {
  8342. Fbits: uint8(8),
  8343. Fval: uint16(40),
  8344. },
  8345. 283: {
  8346. Fbits: uint8(9),
  8347. Fval: uint16(177),
  8348. },
  8349. 284: {
  8350. Fbits: uint8(8),
  8351. Fval: uint16(8),
  8352. },
  8353. 285: {
  8354. Fbits: uint8(8),
  8355. Fval: uint16(136),
  8356. },
  8357. 286: {
  8358. Fbits: uint8(8),
  8359. Fval: uint16(72),
  8360. },
  8361. 287: {
  8362. Fbits: uint8(9),
  8363. Fval: uint16(241),
  8364. },
  8365. 288: {
  8366. Fop: uint8(16),
  8367. Fbits: uint8(7),
  8368. Fval: uint16(4),
  8369. },
  8370. 289: {
  8371. Fbits: uint8(8),
  8372. Fval: uint16(84),
  8373. },
  8374. 290: {
  8375. Fbits: uint8(8),
  8376. Fval: uint16(20),
  8377. },
  8378. 291: {
  8379. Fop: uint8(21),
  8380. Fbits: uint8(8),
  8381. Fval: uint16(227),
  8382. },
  8383. 292: {
  8384. Fop: uint8(19),
  8385. Fbits: uint8(7),
  8386. Fval: uint16(43),
  8387. },
  8388. 293: {
  8389. Fbits: uint8(8),
  8390. Fval: uint16(116),
  8391. },
  8392. 294: {
  8393. Fbits: uint8(8),
  8394. Fval: uint16(52),
  8395. },
  8396. 295: {
  8397. Fbits: uint8(9),
  8398. Fval: uint16(201),
  8399. },
  8400. 296: {
  8401. Fop: uint8(17),
  8402. Fbits: uint8(7),
  8403. Fval: uint16(13),
  8404. },
  8405. 297: {
  8406. Fbits: uint8(8),
  8407. Fval: uint16(100),
  8408. },
  8409. 298: {
  8410. Fbits: uint8(8),
  8411. Fval: uint16(36),
  8412. },
  8413. 299: {
  8414. Fbits: uint8(9),
  8415. Fval: uint16(169),
  8416. },
  8417. 300: {
  8418. Fbits: uint8(8),
  8419. Fval: uint16(4),
  8420. },
  8421. 301: {
  8422. Fbits: uint8(8),
  8423. Fval: uint16(132),
  8424. },
  8425. 302: {
  8426. Fbits: uint8(8),
  8427. Fval: uint16(68),
  8428. },
  8429. 303: {
  8430. Fbits: uint8(9),
  8431. Fval: uint16(233),
  8432. },
  8433. 304: {
  8434. Fop: uint8(16),
  8435. Fbits: uint8(7),
  8436. Fval: uint16(8),
  8437. },
  8438. 305: {
  8439. Fbits: uint8(8),
  8440. Fval: uint16(92),
  8441. },
  8442. 306: {
  8443. Fbits: uint8(8),
  8444. Fval: uint16(28),
  8445. },
  8446. 307: {
  8447. Fbits: uint8(9),
  8448. Fval: uint16(153),
  8449. },
  8450. 308: {
  8451. Fop: uint8(20),
  8452. Fbits: uint8(7),
  8453. Fval: uint16(83),
  8454. },
  8455. 309: {
  8456. Fbits: uint8(8),
  8457. Fval: uint16(124),
  8458. },
  8459. 310: {
  8460. Fbits: uint8(8),
  8461. Fval: uint16(60),
  8462. },
  8463. 311: {
  8464. Fbits: uint8(9),
  8465. Fval: uint16(217),
  8466. },
  8467. 312: {
  8468. Fop: uint8(18),
  8469. Fbits: uint8(7),
  8470. Fval: uint16(23),
  8471. },
  8472. 313: {
  8473. Fbits: uint8(8),
  8474. Fval: uint16(108),
  8475. },
  8476. 314: {
  8477. Fbits: uint8(8),
  8478. Fval: uint16(44),
  8479. },
  8480. 315: {
  8481. Fbits: uint8(9),
  8482. Fval: uint16(185),
  8483. },
  8484. 316: {
  8485. Fbits: uint8(8),
  8486. Fval: uint16(12),
  8487. },
  8488. 317: {
  8489. Fbits: uint8(8),
  8490. Fval: uint16(140),
  8491. },
  8492. 318: {
  8493. Fbits: uint8(8),
  8494. Fval: uint16(76),
  8495. },
  8496. 319: {
  8497. Fbits: uint8(9),
  8498. Fval: uint16(249),
  8499. },
  8500. 320: {
  8501. Fop: uint8(16),
  8502. Fbits: uint8(7),
  8503. Fval: uint16(3),
  8504. },
  8505. 321: {
  8506. Fbits: uint8(8),
  8507. Fval: uint16(82),
  8508. },
  8509. 322: {
  8510. Fbits: uint8(8),
  8511. Fval: uint16(18),
  8512. },
  8513. 323: {
  8514. Fop: uint8(21),
  8515. Fbits: uint8(8),
  8516. Fval: uint16(163),
  8517. },
  8518. 324: {
  8519. Fop: uint8(19),
  8520. Fbits: uint8(7),
  8521. Fval: uint16(35),
  8522. },
  8523. 325: {
  8524. Fbits: uint8(8),
  8525. Fval: uint16(114),
  8526. },
  8527. 326: {
  8528. Fbits: uint8(8),
  8529. Fval: uint16(50),
  8530. },
  8531. 327: {
  8532. Fbits: uint8(9),
  8533. Fval: uint16(197),
  8534. },
  8535. 328: {
  8536. Fop: uint8(17),
  8537. Fbits: uint8(7),
  8538. Fval: uint16(11),
  8539. },
  8540. 329: {
  8541. Fbits: uint8(8),
  8542. Fval: uint16(98),
  8543. },
  8544. 330: {
  8545. Fbits: uint8(8),
  8546. Fval: uint16(34),
  8547. },
  8548. 331: {
  8549. Fbits: uint8(9),
  8550. Fval: uint16(165),
  8551. },
  8552. 332: {
  8553. Fbits: uint8(8),
  8554. Fval: uint16(2),
  8555. },
  8556. 333: {
  8557. Fbits: uint8(8),
  8558. Fval: uint16(130),
  8559. },
  8560. 334: {
  8561. Fbits: uint8(8),
  8562. Fval: uint16(66),
  8563. },
  8564. 335: {
  8565. Fbits: uint8(9),
  8566. Fval: uint16(229),
  8567. },
  8568. 336: {
  8569. Fop: uint8(16),
  8570. Fbits: uint8(7),
  8571. Fval: uint16(7),
  8572. },
  8573. 337: {
  8574. Fbits: uint8(8),
  8575. Fval: uint16(90),
  8576. },
  8577. 338: {
  8578. Fbits: uint8(8),
  8579. Fval: uint16(26),
  8580. },
  8581. 339: {
  8582. Fbits: uint8(9),
  8583. Fval: uint16(149),
  8584. },
  8585. 340: {
  8586. Fop: uint8(20),
  8587. Fbits: uint8(7),
  8588. Fval: uint16(67),
  8589. },
  8590. 341: {
  8591. Fbits: uint8(8),
  8592. Fval: uint16(122),
  8593. },
  8594. 342: {
  8595. Fbits: uint8(8),
  8596. Fval: uint16(58),
  8597. },
  8598. 343: {
  8599. Fbits: uint8(9),
  8600. Fval: uint16(213),
  8601. },
  8602. 344: {
  8603. Fop: uint8(18),
  8604. Fbits: uint8(7),
  8605. Fval: uint16(19),
  8606. },
  8607. 345: {
  8608. Fbits: uint8(8),
  8609. Fval: uint16(106),
  8610. },
  8611. 346: {
  8612. Fbits: uint8(8),
  8613. Fval: uint16(42),
  8614. },
  8615. 347: {
  8616. Fbits: uint8(9),
  8617. Fval: uint16(181),
  8618. },
  8619. 348: {
  8620. Fbits: uint8(8),
  8621. Fval: uint16(10),
  8622. },
  8623. 349: {
  8624. Fbits: uint8(8),
  8625. Fval: uint16(138),
  8626. },
  8627. 350: {
  8628. Fbits: uint8(8),
  8629. Fval: uint16(74),
  8630. },
  8631. 351: {
  8632. Fbits: uint8(9),
  8633. Fval: uint16(245),
  8634. },
  8635. 352: {
  8636. Fop: uint8(16),
  8637. Fbits: uint8(7),
  8638. Fval: uint16(5),
  8639. },
  8640. 353: {
  8641. Fbits: uint8(8),
  8642. Fval: uint16(86),
  8643. },
  8644. 354: {
  8645. Fbits: uint8(8),
  8646. Fval: uint16(22),
  8647. },
  8648. 355: {
  8649. Fop: uint8(64),
  8650. Fbits: uint8(8),
  8651. },
  8652. 356: {
  8653. Fop: uint8(19),
  8654. Fbits: uint8(7),
  8655. Fval: uint16(51),
  8656. },
  8657. 357: {
  8658. Fbits: uint8(8),
  8659. Fval: uint16(118),
  8660. },
  8661. 358: {
  8662. Fbits: uint8(8),
  8663. Fval: uint16(54),
  8664. },
  8665. 359: {
  8666. Fbits: uint8(9),
  8667. Fval: uint16(205),
  8668. },
  8669. 360: {
  8670. Fop: uint8(17),
  8671. Fbits: uint8(7),
  8672. Fval: uint16(15),
  8673. },
  8674. 361: {
  8675. Fbits: uint8(8),
  8676. Fval: uint16(102),
  8677. },
  8678. 362: {
  8679. Fbits: uint8(8),
  8680. Fval: uint16(38),
  8681. },
  8682. 363: {
  8683. Fbits: uint8(9),
  8684. Fval: uint16(173),
  8685. },
  8686. 364: {
  8687. Fbits: uint8(8),
  8688. Fval: uint16(6),
  8689. },
  8690. 365: {
  8691. Fbits: uint8(8),
  8692. Fval: uint16(134),
  8693. },
  8694. 366: {
  8695. Fbits: uint8(8),
  8696. Fval: uint16(70),
  8697. },
  8698. 367: {
  8699. Fbits: uint8(9),
  8700. Fval: uint16(237),
  8701. },
  8702. 368: {
  8703. Fop: uint8(16),
  8704. Fbits: uint8(7),
  8705. Fval: uint16(9),
  8706. },
  8707. 369: {
  8708. Fbits: uint8(8),
  8709. Fval: uint16(94),
  8710. },
  8711. 370: {
  8712. Fbits: uint8(8),
  8713. Fval: uint16(30),
  8714. },
  8715. 371: {
  8716. Fbits: uint8(9),
  8717. Fval: uint16(157),
  8718. },
  8719. 372: {
  8720. Fop: uint8(20),
  8721. Fbits: uint8(7),
  8722. Fval: uint16(99),
  8723. },
  8724. 373: {
  8725. Fbits: uint8(8),
  8726. Fval: uint16(126),
  8727. },
  8728. 374: {
  8729. Fbits: uint8(8),
  8730. Fval: uint16(62),
  8731. },
  8732. 375: {
  8733. Fbits: uint8(9),
  8734. Fval: uint16(221),
  8735. },
  8736. 376: {
  8737. Fop: uint8(18),
  8738. Fbits: uint8(7),
  8739. Fval: uint16(27),
  8740. },
  8741. 377: {
  8742. Fbits: uint8(8),
  8743. Fval: uint16(110),
  8744. },
  8745. 378: {
  8746. Fbits: uint8(8),
  8747. Fval: uint16(46),
  8748. },
  8749. 379: {
  8750. Fbits: uint8(9),
  8751. Fval: uint16(189),
  8752. },
  8753. 380: {
  8754. Fbits: uint8(8),
  8755. Fval: uint16(14),
  8756. },
  8757. 381: {
  8758. Fbits: uint8(8),
  8759. Fval: uint16(142),
  8760. },
  8761. 382: {
  8762. Fbits: uint8(8),
  8763. Fval: uint16(78),
  8764. },
  8765. 383: {
  8766. Fbits: uint8(9),
  8767. Fval: uint16(253),
  8768. },
  8769. 384: {
  8770. Fop: uint8(96),
  8771. Fbits: uint8(7),
  8772. },
  8773. 385: {
  8774. Fbits: uint8(8),
  8775. Fval: uint16(81),
  8776. },
  8777. 386: {
  8778. Fbits: uint8(8),
  8779. Fval: uint16(17),
  8780. },
  8781. 387: {
  8782. Fop: uint8(21),
  8783. Fbits: uint8(8),
  8784. Fval: uint16(131),
  8785. },
  8786. 388: {
  8787. Fop: uint8(18),
  8788. Fbits: uint8(7),
  8789. Fval: uint16(31),
  8790. },
  8791. 389: {
  8792. Fbits: uint8(8),
  8793. Fval: uint16(113),
  8794. },
  8795. 390: {
  8796. Fbits: uint8(8),
  8797. Fval: uint16(49),
  8798. },
  8799. 391: {
  8800. Fbits: uint8(9),
  8801. Fval: uint16(195),
  8802. },
  8803. 392: {
  8804. Fop: uint8(16),
  8805. Fbits: uint8(7),
  8806. Fval: uint16(10),
  8807. },
  8808. 393: {
  8809. Fbits: uint8(8),
  8810. Fval: uint16(97),
  8811. },
  8812. 394: {
  8813. Fbits: uint8(8),
  8814. Fval: uint16(33),
  8815. },
  8816. 395: {
  8817. Fbits: uint8(9),
  8818. Fval: uint16(163),
  8819. },
  8820. 396: {
  8821. Fbits: uint8(8),
  8822. Fval: uint16(1),
  8823. },
  8824. 397: {
  8825. Fbits: uint8(8),
  8826. Fval: uint16(129),
  8827. },
  8828. 398: {
  8829. Fbits: uint8(8),
  8830. Fval: uint16(65),
  8831. },
  8832. 399: {
  8833. Fbits: uint8(9),
  8834. Fval: uint16(227),
  8835. },
  8836. 400: {
  8837. Fop: uint8(16),
  8838. Fbits: uint8(7),
  8839. Fval: uint16(6),
  8840. },
  8841. 401: {
  8842. Fbits: uint8(8),
  8843. Fval: uint16(89),
  8844. },
  8845. 402: {
  8846. Fbits: uint8(8),
  8847. Fval: uint16(25),
  8848. },
  8849. 403: {
  8850. Fbits: uint8(9),
  8851. Fval: uint16(147),
  8852. },
  8853. 404: {
  8854. Fop: uint8(19),
  8855. Fbits: uint8(7),
  8856. Fval: uint16(59),
  8857. },
  8858. 405: {
  8859. Fbits: uint8(8),
  8860. Fval: uint16(121),
  8861. },
  8862. 406: {
  8863. Fbits: uint8(8),
  8864. Fval: uint16(57),
  8865. },
  8866. 407: {
  8867. Fbits: uint8(9),
  8868. Fval: uint16(211),
  8869. },
  8870. 408: {
  8871. Fop: uint8(17),
  8872. Fbits: uint8(7),
  8873. Fval: uint16(17),
  8874. },
  8875. 409: {
  8876. Fbits: uint8(8),
  8877. Fval: uint16(105),
  8878. },
  8879. 410: {
  8880. Fbits: uint8(8),
  8881. Fval: uint16(41),
  8882. },
  8883. 411: {
  8884. Fbits: uint8(9),
  8885. Fval: uint16(179),
  8886. },
  8887. 412: {
  8888. Fbits: uint8(8),
  8889. Fval: uint16(9),
  8890. },
  8891. 413: {
  8892. Fbits: uint8(8),
  8893. Fval: uint16(137),
  8894. },
  8895. 414: {
  8896. Fbits: uint8(8),
  8897. Fval: uint16(73),
  8898. },
  8899. 415: {
  8900. Fbits: uint8(9),
  8901. Fval: uint16(243),
  8902. },
  8903. 416: {
  8904. Fop: uint8(16),
  8905. Fbits: uint8(7),
  8906. Fval: uint16(4),
  8907. },
  8908. 417: {
  8909. Fbits: uint8(8),
  8910. Fval: uint16(85),
  8911. },
  8912. 418: {
  8913. Fbits: uint8(8),
  8914. Fval: uint16(21),
  8915. },
  8916. 419: {
  8917. Fop: uint8(16),
  8918. Fbits: uint8(8),
  8919. Fval: uint16(258),
  8920. },
  8921. 420: {
  8922. Fop: uint8(19),
  8923. Fbits: uint8(7),
  8924. Fval: uint16(43),
  8925. },
  8926. 421: {
  8927. Fbits: uint8(8),
  8928. Fval: uint16(117),
  8929. },
  8930. 422: {
  8931. Fbits: uint8(8),
  8932. Fval: uint16(53),
  8933. },
  8934. 423: {
  8935. Fbits: uint8(9),
  8936. Fval: uint16(203),
  8937. },
  8938. 424: {
  8939. Fop: uint8(17),
  8940. Fbits: uint8(7),
  8941. Fval: uint16(13),
  8942. },
  8943. 425: {
  8944. Fbits: uint8(8),
  8945. Fval: uint16(101),
  8946. },
  8947. 426: {
  8948. Fbits: uint8(8),
  8949. Fval: uint16(37),
  8950. },
  8951. 427: {
  8952. Fbits: uint8(9),
  8953. Fval: uint16(171),
  8954. },
  8955. 428: {
  8956. Fbits: uint8(8),
  8957. Fval: uint16(5),
  8958. },
  8959. 429: {
  8960. Fbits: uint8(8),
  8961. Fval: uint16(133),
  8962. },
  8963. 430: {
  8964. Fbits: uint8(8),
  8965. Fval: uint16(69),
  8966. },
  8967. 431: {
  8968. Fbits: uint8(9),
  8969. Fval: uint16(235),
  8970. },
  8971. 432: {
  8972. Fop: uint8(16),
  8973. Fbits: uint8(7),
  8974. Fval: uint16(8),
  8975. },
  8976. 433: {
  8977. Fbits: uint8(8),
  8978. Fval: uint16(93),
  8979. },
  8980. 434: {
  8981. Fbits: uint8(8),
  8982. Fval: uint16(29),
  8983. },
  8984. 435: {
  8985. Fbits: uint8(9),
  8986. Fval: uint16(155),
  8987. },
  8988. 436: {
  8989. Fop: uint8(20),
  8990. Fbits: uint8(7),
  8991. Fval: uint16(83),
  8992. },
  8993. 437: {
  8994. Fbits: uint8(8),
  8995. Fval: uint16(125),
  8996. },
  8997. 438: {
  8998. Fbits: uint8(8),
  8999. Fval: uint16(61),
  9000. },
  9001. 439: {
  9002. Fbits: uint8(9),
  9003. Fval: uint16(219),
  9004. },
  9005. 440: {
  9006. Fop: uint8(18),
  9007. Fbits: uint8(7),
  9008. Fval: uint16(23),
  9009. },
  9010. 441: {
  9011. Fbits: uint8(8),
  9012. Fval: uint16(109),
  9013. },
  9014. 442: {
  9015. Fbits: uint8(8),
  9016. Fval: uint16(45),
  9017. },
  9018. 443: {
  9019. Fbits: uint8(9),
  9020. Fval: uint16(187),
  9021. },
  9022. 444: {
  9023. Fbits: uint8(8),
  9024. Fval: uint16(13),
  9025. },
  9026. 445: {
  9027. Fbits: uint8(8),
  9028. Fval: uint16(141),
  9029. },
  9030. 446: {
  9031. Fbits: uint8(8),
  9032. Fval: uint16(77),
  9033. },
  9034. 447: {
  9035. Fbits: uint8(9),
  9036. Fval: uint16(251),
  9037. },
  9038. 448: {
  9039. Fop: uint8(16),
  9040. Fbits: uint8(7),
  9041. Fval: uint16(3),
  9042. },
  9043. 449: {
  9044. Fbits: uint8(8),
  9045. Fval: uint16(83),
  9046. },
  9047. 450: {
  9048. Fbits: uint8(8),
  9049. Fval: uint16(19),
  9050. },
  9051. 451: {
  9052. Fop: uint8(21),
  9053. Fbits: uint8(8),
  9054. Fval: uint16(195),
  9055. },
  9056. 452: {
  9057. Fop: uint8(19),
  9058. Fbits: uint8(7),
  9059. Fval: uint16(35),
  9060. },
  9061. 453: {
  9062. Fbits: uint8(8),
  9063. Fval: uint16(115),
  9064. },
  9065. 454: {
  9066. Fbits: uint8(8),
  9067. Fval: uint16(51),
  9068. },
  9069. 455: {
  9070. Fbits: uint8(9),
  9071. Fval: uint16(199),
  9072. },
  9073. 456: {
  9074. Fop: uint8(17),
  9075. Fbits: uint8(7),
  9076. Fval: uint16(11),
  9077. },
  9078. 457: {
  9079. Fbits: uint8(8),
  9080. Fval: uint16(99),
  9081. },
  9082. 458: {
  9083. Fbits: uint8(8),
  9084. Fval: uint16(35),
  9085. },
  9086. 459: {
  9087. Fbits: uint8(9),
  9088. Fval: uint16(167),
  9089. },
  9090. 460: {
  9091. Fbits: uint8(8),
  9092. Fval: uint16(3),
  9093. },
  9094. 461: {
  9095. Fbits: uint8(8),
  9096. Fval: uint16(131),
  9097. },
  9098. 462: {
  9099. Fbits: uint8(8),
  9100. Fval: uint16(67),
  9101. },
  9102. 463: {
  9103. Fbits: uint8(9),
  9104. Fval: uint16(231),
  9105. },
  9106. 464: {
  9107. Fop: uint8(16),
  9108. Fbits: uint8(7),
  9109. Fval: uint16(7),
  9110. },
  9111. 465: {
  9112. Fbits: uint8(8),
  9113. Fval: uint16(91),
  9114. },
  9115. 466: {
  9116. Fbits: uint8(8),
  9117. Fval: uint16(27),
  9118. },
  9119. 467: {
  9120. Fbits: uint8(9),
  9121. Fval: uint16(151),
  9122. },
  9123. 468: {
  9124. Fop: uint8(20),
  9125. Fbits: uint8(7),
  9126. Fval: uint16(67),
  9127. },
  9128. 469: {
  9129. Fbits: uint8(8),
  9130. Fval: uint16(123),
  9131. },
  9132. 470: {
  9133. Fbits: uint8(8),
  9134. Fval: uint16(59),
  9135. },
  9136. 471: {
  9137. Fbits: uint8(9),
  9138. Fval: uint16(215),
  9139. },
  9140. 472: {
  9141. Fop: uint8(18),
  9142. Fbits: uint8(7),
  9143. Fval: uint16(19),
  9144. },
  9145. 473: {
  9146. Fbits: uint8(8),
  9147. Fval: uint16(107),
  9148. },
  9149. 474: {
  9150. Fbits: uint8(8),
  9151. Fval: uint16(43),
  9152. },
  9153. 475: {
  9154. Fbits: uint8(9),
  9155. Fval: uint16(183),
  9156. },
  9157. 476: {
  9158. Fbits: uint8(8),
  9159. Fval: uint16(11),
  9160. },
  9161. 477: {
  9162. Fbits: uint8(8),
  9163. Fval: uint16(139),
  9164. },
  9165. 478: {
  9166. Fbits: uint8(8),
  9167. Fval: uint16(75),
  9168. },
  9169. 479: {
  9170. Fbits: uint8(9),
  9171. Fval: uint16(247),
  9172. },
  9173. 480: {
  9174. Fop: uint8(16),
  9175. Fbits: uint8(7),
  9176. Fval: uint16(5),
  9177. },
  9178. 481: {
  9179. Fbits: uint8(8),
  9180. Fval: uint16(87),
  9181. },
  9182. 482: {
  9183. Fbits: uint8(8),
  9184. Fval: uint16(23),
  9185. },
  9186. 483: {
  9187. Fop: uint8(64),
  9188. Fbits: uint8(8),
  9189. },
  9190. 484: {
  9191. Fop: uint8(19),
  9192. Fbits: uint8(7),
  9193. Fval: uint16(51),
  9194. },
  9195. 485: {
  9196. Fbits: uint8(8),
  9197. Fval: uint16(119),
  9198. },
  9199. 486: {
  9200. Fbits: uint8(8),
  9201. Fval: uint16(55),
  9202. },
  9203. 487: {
  9204. Fbits: uint8(9),
  9205. Fval: uint16(207),
  9206. },
  9207. 488: {
  9208. Fop: uint8(17),
  9209. Fbits: uint8(7),
  9210. Fval: uint16(15),
  9211. },
  9212. 489: {
  9213. Fbits: uint8(8),
  9214. Fval: uint16(103),
  9215. },
  9216. 490: {
  9217. Fbits: uint8(8),
  9218. Fval: uint16(39),
  9219. },
  9220. 491: {
  9221. Fbits: uint8(9),
  9222. Fval: uint16(175),
  9223. },
  9224. 492: {
  9225. Fbits: uint8(8),
  9226. Fval: uint16(7),
  9227. },
  9228. 493: {
  9229. Fbits: uint8(8),
  9230. Fval: uint16(135),
  9231. },
  9232. 494: {
  9233. Fbits: uint8(8),
  9234. Fval: uint16(71),
  9235. },
  9236. 495: {
  9237. Fbits: uint8(9),
  9238. Fval: uint16(239),
  9239. },
  9240. 496: {
  9241. Fop: uint8(16),
  9242. Fbits: uint8(7),
  9243. Fval: uint16(9),
  9244. },
  9245. 497: {
  9246. Fbits: uint8(8),
  9247. Fval: uint16(95),
  9248. },
  9249. 498: {
  9250. Fbits: uint8(8),
  9251. Fval: uint16(31),
  9252. },
  9253. 499: {
  9254. Fbits: uint8(9),
  9255. Fval: uint16(159),
  9256. },
  9257. 500: {
  9258. Fop: uint8(20),
  9259. Fbits: uint8(7),
  9260. Fval: uint16(99),
  9261. },
  9262. 501: {
  9263. Fbits: uint8(8),
  9264. Fval: uint16(127),
  9265. },
  9266. 502: {
  9267. Fbits: uint8(8),
  9268. Fval: uint16(63),
  9269. },
  9270. 503: {
  9271. Fbits: uint8(9),
  9272. Fval: uint16(223),
  9273. },
  9274. 504: {
  9275. Fop: uint8(18),
  9276. Fbits: uint8(7),
  9277. Fval: uint16(27),
  9278. },
  9279. 505: {
  9280. Fbits: uint8(8),
  9281. Fval: uint16(111),
  9282. },
  9283. 506: {
  9284. Fbits: uint8(8),
  9285. Fval: uint16(47),
  9286. },
  9287. 507: {
  9288. Fbits: uint8(9),
  9289. Fval: uint16(191),
  9290. },
  9291. 508: {
  9292. Fbits: uint8(8),
  9293. Fval: uint16(15),
  9294. },
  9295. 509: {
  9296. Fbits: uint8(8),
  9297. Fval: uint16(143),
  9298. },
  9299. 510: {
  9300. Fbits: uint8(8),
  9301. Fval: uint16(79),
  9302. },
  9303. 511: {
  9304. Fbits: uint8(9),
  9305. Fval: uint16(255),
  9306. },
  9307. }
  9308. var _distfix = [32]Tcode{
  9309. 0: {
  9310. Fop: uint8(16),
  9311. Fbits: uint8(5),
  9312. Fval: uint16(1),
  9313. },
  9314. 1: {
  9315. Fop: uint8(23),
  9316. Fbits: uint8(5),
  9317. Fval: uint16(257),
  9318. },
  9319. 2: {
  9320. Fop: uint8(19),
  9321. Fbits: uint8(5),
  9322. Fval: uint16(17),
  9323. },
  9324. 3: {
  9325. Fop: uint8(27),
  9326. Fbits: uint8(5),
  9327. Fval: uint16(4097),
  9328. },
  9329. 4: {
  9330. Fop: uint8(17),
  9331. Fbits: uint8(5),
  9332. Fval: uint16(5),
  9333. },
  9334. 5: {
  9335. Fop: uint8(25),
  9336. Fbits: uint8(5),
  9337. Fval: uint16(1025),
  9338. },
  9339. 6: {
  9340. Fop: uint8(21),
  9341. Fbits: uint8(5),
  9342. Fval: uint16(65),
  9343. },
  9344. 7: {
  9345. Fop: uint8(29),
  9346. Fbits: uint8(5),
  9347. Fval: uint16(16385),
  9348. },
  9349. 8: {
  9350. Fop: uint8(16),
  9351. Fbits: uint8(5),
  9352. Fval: uint16(3),
  9353. },
  9354. 9: {
  9355. Fop: uint8(24),
  9356. Fbits: uint8(5),
  9357. Fval: uint16(513),
  9358. },
  9359. 10: {
  9360. Fop: uint8(20),
  9361. Fbits: uint8(5),
  9362. Fval: uint16(33),
  9363. },
  9364. 11: {
  9365. Fop: uint8(28),
  9366. Fbits: uint8(5),
  9367. Fval: uint16(8193),
  9368. },
  9369. 12: {
  9370. Fop: uint8(18),
  9371. Fbits: uint8(5),
  9372. Fval: uint16(9),
  9373. },
  9374. 13: {
  9375. Fop: uint8(26),
  9376. Fbits: uint8(5),
  9377. Fval: uint16(2049),
  9378. },
  9379. 14: {
  9380. Fop: uint8(22),
  9381. Fbits: uint8(5),
  9382. Fval: uint16(129),
  9383. },
  9384. 15: {
  9385. Fop: uint8(64),
  9386. Fbits: uint8(5),
  9387. },
  9388. 16: {
  9389. Fop: uint8(16),
  9390. Fbits: uint8(5),
  9391. Fval: uint16(2),
  9392. },
  9393. 17: {
  9394. Fop: uint8(23),
  9395. Fbits: uint8(5),
  9396. Fval: uint16(385),
  9397. },
  9398. 18: {
  9399. Fop: uint8(19),
  9400. Fbits: uint8(5),
  9401. Fval: uint16(25),
  9402. },
  9403. 19: {
  9404. Fop: uint8(27),
  9405. Fbits: uint8(5),
  9406. Fval: uint16(6145),
  9407. },
  9408. 20: {
  9409. Fop: uint8(17),
  9410. Fbits: uint8(5),
  9411. Fval: uint16(7),
  9412. },
  9413. 21: {
  9414. Fop: uint8(25),
  9415. Fbits: uint8(5),
  9416. Fval: uint16(1537),
  9417. },
  9418. 22: {
  9419. Fop: uint8(21),
  9420. Fbits: uint8(5),
  9421. Fval: uint16(97),
  9422. },
  9423. 23: {
  9424. Fop: uint8(29),
  9425. Fbits: uint8(5),
  9426. Fval: uint16(24577),
  9427. },
  9428. 24: {
  9429. Fop: uint8(16),
  9430. Fbits: uint8(5),
  9431. Fval: uint16(4),
  9432. },
  9433. 25: {
  9434. Fop: uint8(24),
  9435. Fbits: uint8(5),
  9436. Fval: uint16(769),
  9437. },
  9438. 26: {
  9439. Fop: uint8(20),
  9440. Fbits: uint8(5),
  9441. Fval: uint16(49),
  9442. },
  9443. 27: {
  9444. Fop: uint8(28),
  9445. Fbits: uint8(5),
  9446. Fval: uint16(12289),
  9447. },
  9448. 28: {
  9449. Fop: uint8(18),
  9450. Fbits: uint8(5),
  9451. Fval: uint16(13),
  9452. },
  9453. 29: {
  9454. Fop: uint8(26),
  9455. Fbits: uint8(5),
  9456. Fval: uint16(3073),
  9457. },
  9458. 30: {
  9459. Fop: uint8(22),
  9460. Fbits: uint8(5),
  9461. Fval: uint16(193),
  9462. },
  9463. 31: {
  9464. Fop: uint8(64),
  9465. Fbits: uint8(5),
  9466. },
  9467. }
  9468. /* Macros for inflateBack(): */
  9469. /* Load returned state from inflate_fast() */
  9470. /* Set state from registers for inflate_fast() */
  9471. /* Clear the input bit accumulator */
  9472. /* Assure that some input is available. If input is requested, but denied,
  9473. then return a Z_BUF_ERROR from inflateBack(). */
  9474. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  9475. with an error if there is no input available. */
  9476. /* Assure that there are at least n bits in the bit accumulator. If there is
  9477. not enough available input to do that, then return from inflateBack() with
  9478. an error. */
  9479. /* Return the low n bits of the bit accumulator (n < 16) */
  9480. /* Remove n bits from the bit accumulator */
  9481. /* Remove zero to seven bits as needed to go to a byte boundary */
  9482. /* Assure that some output space is available, by writing out the window
  9483. if it's full. If the write fails, return from inflateBack() with a
  9484. Z_BUF_ERROR. */
  9485. // C documentation
  9486. //
  9487. // /*
  9488. // strm provides the memory allocation functions and window buffer on input,
  9489. // and provides information on the unused input on return. For Z_DATA_ERROR
  9490. // returns, strm will also provide an error message.
  9491. //
  9492. // in() and out() are the call-back input and output functions. When
  9493. // inflateBack() needs more input, it calls in(). When inflateBack() has
  9494. // filled the window with output, or when it completes with data in the
  9495. // window, it calls out() to write out the data. The application must not
  9496. // change the provided input until in() is called again or inflateBack()
  9497. // returns. The application must not change the window/output buffer until
  9498. // inflateBack() returns.
  9499. //
  9500. // in() and out() are called with a descriptor parameter provided in the
  9501. // inflateBack() call. This parameter can be a structure that provides the
  9502. // information required to do the read or write, as well as accumulated
  9503. // information on the input and output such as totals and check values.
  9504. //
  9505. // in() should return zero on failure. out() should return non-zero on
  9506. // failure. If either in() or out() fails, than inflateBack() returns a
  9507. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  9508. // was in() or out() that caused in the error. Otherwise, inflateBack()
  9509. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  9510. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  9511. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  9512. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  9513. // */
  9514. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  9515. bp := tls.Alloc(16)
  9516. defer tls.Free(16)
  9517. var bits, copy1, have, hold, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  9518. 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
  9519. var here, last Tcode
  9520. var ret int32
  9521. var _ /* next at bp+0 */ uintptr
  9522. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  9523. /* Check that the strm exists and that the state was initialized */
  9524. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  9525. return -int32(2)
  9526. }
  9527. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  9528. /* Reset the state */
  9529. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  9530. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9531. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  9532. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  9533. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9534. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  9535. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9536. } else {
  9537. v1 = uint32(0)
  9538. }
  9539. have = v1
  9540. hold = uint32(0)
  9541. bits = uint32(0)
  9542. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9543. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9544. /* Inflate until end of block marked as last */
  9545. for {
  9546. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  9547. case int32(_TYPE):
  9548. goto _3
  9549. case int32(_STORED):
  9550. goto _4
  9551. case int32(_TABLE):
  9552. goto _5
  9553. case int32(_LEN):
  9554. goto _6
  9555. case int32(_DONE):
  9556. goto _7
  9557. case int32(_BAD):
  9558. goto _8
  9559. default:
  9560. goto _9
  9561. }
  9562. goto _10
  9563. _3:
  9564. ;
  9565. /* determine and dispatch block type */
  9566. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  9567. hold >>= bits & uint32(7)
  9568. bits -= bits & uint32(7)
  9569. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  9570. goto _10
  9571. }
  9572. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9573. if have == uint32(0) {
  9574. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9575. if have == uint32(0) {
  9576. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9577. ret = -int32(5)
  9578. goto inf_leave
  9579. }
  9580. }
  9581. have--
  9582. v11 = *(*uintptr)(unsafe.Pointer(bp))
  9583. *(*uintptr)(unsafe.Pointer(bp))++
  9584. hold += uint32(*(*uint8)(unsafe.Pointer(v11))) << bits
  9585. bits += uint32(8)
  9586. }
  9587. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  9588. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  9589. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  9590. switch hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  9591. case uint32(0): /* stored block */
  9592. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  9593. case uint32(1): /* fixed block */
  9594. _fixedtables(tls, state)
  9595. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  9596. case uint32(2): /* dynamic block */
  9597. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  9598. case uint32(3):
  9599. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  9600. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9601. }
  9602. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9603. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9604. goto _10
  9605. _4:
  9606. ;
  9607. /* get and verify stored block length */
  9608. _14:
  9609. ;
  9610. hold >>= bits & uint32(7)
  9611. bits -= bits & uint32(7)
  9612. goto _13
  9613. _13:
  9614. ;
  9615. if 0 != 0 {
  9616. goto _14
  9617. }
  9618. goto _12
  9619. _12:
  9620. ; /* go to byte boundary */
  9621. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  9622. if have == uint32(0) {
  9623. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9624. if have == uint32(0) {
  9625. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9626. ret = -int32(5)
  9627. goto inf_leave
  9628. }
  9629. }
  9630. have--
  9631. v15 = *(*uintptr)(unsafe.Pointer(bp))
  9632. *(*uintptr)(unsafe.Pointer(bp))++
  9633. hold += uint32(*(*uint8)(unsafe.Pointer(v15))) << bits
  9634. bits += uint32(8)
  9635. }
  9636. if hold&uint32(0xffff) != hold>>int32(16)^uint32(0xffff) {
  9637. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  9638. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9639. goto _10
  9640. }
  9641. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold & uint32(0xffff)
  9642. hold = uint32(0)
  9643. bits = uint32(0)
  9644. /* copy stored block from input to output */
  9645. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  9646. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  9647. if have == uint32(0) {
  9648. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9649. if have == uint32(0) {
  9650. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9651. ret = -int32(5)
  9652. goto inf_leave
  9653. }
  9654. }
  9655. if left == uint32(0) {
  9656. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9657. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9658. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9659. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9660. ret = -int32(5)
  9661. goto inf_leave
  9662. }
  9663. }
  9664. if copy1 > have {
  9665. copy1 = have
  9666. }
  9667. if copy1 > left {
  9668. copy1 = left
  9669. }
  9670. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), copy1)
  9671. have -= copy1
  9672. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  9673. left -= copy1
  9674. put += uintptr(copy1)
  9675. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  9676. }
  9677. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9678. goto _10
  9679. _5:
  9680. ;
  9681. /* get dynamic table entries descriptor */
  9682. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  9683. if have == uint32(0) {
  9684. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9685. if have == uint32(0) {
  9686. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9687. ret = -int32(5)
  9688. goto inf_leave
  9689. }
  9690. }
  9691. have--
  9692. v16 = *(*uintptr)(unsafe.Pointer(bp))
  9693. *(*uintptr)(unsafe.Pointer(bp))++
  9694. hold += uint32(*(*uint8)(unsafe.Pointer(v16))) << bits
  9695. bits += uint32(8)
  9696. }
  9697. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  9698. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9699. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9700. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  9701. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9702. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9703. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  9704. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  9705. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  9706. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  9707. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  9708. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9709. goto _10
  9710. }
  9711. /* get code length code lengths (not a typo) */
  9712. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9713. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  9714. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9715. if have == uint32(0) {
  9716. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9717. if have == uint32(0) {
  9718. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9719. ret = -int32(5)
  9720. goto inf_leave
  9721. }
  9722. }
  9723. have--
  9724. v17 = *(*uintptr)(unsafe.Pointer(bp))
  9725. *(*uintptr)(unsafe.Pointer(bp))++
  9726. hold += uint32(*(*uint8)(unsafe.Pointer(v17))) << bits
  9727. bits += uint32(8)
  9728. }
  9729. v19 = state + 108
  9730. v18 = *(*uint32)(unsafe.Pointer(v19))
  9731. *(*uint32)(unsafe.Pointer(v19))++
  9732. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order[v18])*2)) = uint16(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  9733. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9734. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9735. }
  9736. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  9737. v21 = state + 108
  9738. v20 = *(*uint32)(unsafe.Pointer(v21))
  9739. *(*uint32)(unsafe.Pointer(v21))++
  9740. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order[v20])*2)) = uint16(0)
  9741. }
  9742. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  9743. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9744. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  9745. ret = Xinflate_table(tls, int32(_CODES), state+116, uint32(19), state+112, state+88, state+756)
  9746. if ret != 0 {
  9747. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  9748. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9749. goto _10
  9750. }
  9751. /* get length and distance code code lengths */
  9752. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9753. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9754. for {
  9755. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9756. if uint32(here.Fbits) <= bits {
  9757. break
  9758. }
  9759. if have == uint32(0) {
  9760. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9761. if have == uint32(0) {
  9762. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9763. ret = -int32(5)
  9764. goto inf_leave
  9765. }
  9766. }
  9767. have--
  9768. v23 = *(*uintptr)(unsafe.Pointer(bp))
  9769. *(*uintptr)(unsafe.Pointer(bp))++
  9770. hold += uint32(*(*uint8)(unsafe.Pointer(v23))) << bits
  9771. bits += uint32(8)
  9772. goto _22
  9773. _22:
  9774. }
  9775. if libc.Int32FromUint16(here.Fval) < int32(16) {
  9776. hold >>= uint32(here.Fbits)
  9777. bits -= uint32(here.Fbits)
  9778. v25 = state + 108
  9779. v24 = *(*uint32)(unsafe.Pointer(v25))
  9780. *(*uint32)(unsafe.Pointer(v25))++
  9781. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v24)*2)) = here.Fval
  9782. } else {
  9783. if libc.Int32FromUint16(here.Fval) == int32(16) {
  9784. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  9785. if have == uint32(0) {
  9786. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9787. if have == uint32(0) {
  9788. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9789. ret = -int32(5)
  9790. goto inf_leave
  9791. }
  9792. }
  9793. have--
  9794. v26 = *(*uintptr)(unsafe.Pointer(bp))
  9795. *(*uintptr)(unsafe.Pointer(bp))++
  9796. hold += uint32(*(*uint8)(unsafe.Pointer(v26))) << bits
  9797. bits += uint32(8)
  9798. }
  9799. hold >>= uint32(here.Fbits)
  9800. bits -= uint32(here.Fbits)
  9801. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  9802. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9803. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9804. break
  9805. }
  9806. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 116 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  9807. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  9808. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9809. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9810. } else {
  9811. if libc.Int32FromUint16(here.Fval) == int32(17) {
  9812. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  9813. if have == uint32(0) {
  9814. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9815. if have == uint32(0) {
  9816. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9817. ret = -int32(5)
  9818. goto inf_leave
  9819. }
  9820. }
  9821. have--
  9822. v27 = *(*uintptr)(unsafe.Pointer(bp))
  9823. *(*uintptr)(unsafe.Pointer(bp))++
  9824. hold += uint32(*(*uint8)(unsafe.Pointer(v27))) << bits
  9825. bits += uint32(8)
  9826. }
  9827. hold >>= uint32(here.Fbits)
  9828. bits -= uint32(here.Fbits)
  9829. len1 = uint32(0)
  9830. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  9831. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9832. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9833. } else {
  9834. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  9835. if have == uint32(0) {
  9836. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9837. if have == uint32(0) {
  9838. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9839. ret = -int32(5)
  9840. goto inf_leave
  9841. }
  9842. }
  9843. have--
  9844. v28 = *(*uintptr)(unsafe.Pointer(bp))
  9845. *(*uintptr)(unsafe.Pointer(bp))++
  9846. hold += uint32(*(*uint8)(unsafe.Pointer(v28))) << bits
  9847. bits += uint32(8)
  9848. }
  9849. hold >>= uint32(here.Fbits)
  9850. bits -= uint32(here.Fbits)
  9851. len1 = uint32(0)
  9852. copy1 = uint32(11) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  9853. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  9854. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  9855. }
  9856. }
  9857. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9858. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9859. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9860. break
  9861. }
  9862. for {
  9863. v29 = copy1
  9864. copy1--
  9865. if !(v29 != 0) {
  9866. break
  9867. }
  9868. v31 = state + 108
  9869. v30 = *(*uint32)(unsafe.Pointer(v31))
  9870. *(*uint32)(unsafe.Pointer(v31))++
  9871. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v30)*2)) = uint16(len1)
  9872. }
  9873. }
  9874. }
  9875. /* handle error breaks in while */
  9876. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  9877. goto _10
  9878. }
  9879. /* check for end-of-block code (better have one) */
  9880. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 116 + 256*2))) == 0 {
  9881. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  9882. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9883. goto _10
  9884. }
  9885. /* build code tables -- note: do not change the lenbits or distbits
  9886. values here (9 and 6) without reading the comments in inftrees.h
  9887. concerning the ENOUGH constants, which depend on those values */
  9888. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  9889. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9890. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  9891. ret = Xinflate_table(tls, int32(_LENS), state+116, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+112, state+88, state+756)
  9892. if ret != 0 {
  9893. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  9894. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9895. goto _10
  9896. }
  9897. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9898. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  9899. ret = Xinflate_table(tls, int32(_DISTS), state+116+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+112, state+92, state+756)
  9900. if ret != 0 {
  9901. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  9902. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9903. goto _10
  9904. }
  9905. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9906. /* fallthrough */
  9907. _6:
  9908. ;
  9909. /* use inflate_fast() if we have enough input and output */
  9910. if have >= uint32(6) && left >= uint32(258) {
  9911. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  9912. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  9913. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  9914. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  9915. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  9916. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  9917. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9918. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  9919. }
  9920. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  9921. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  9922. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9923. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9924. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9925. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  9926. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  9927. goto _10
  9928. }
  9929. /* get a literal, length, or end-of-block code */
  9930. for {
  9931. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9932. if uint32(here.Fbits) <= bits {
  9933. break
  9934. }
  9935. if have == uint32(0) {
  9936. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9937. if have == uint32(0) {
  9938. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9939. ret = -int32(5)
  9940. goto inf_leave
  9941. }
  9942. }
  9943. have--
  9944. v33 = *(*uintptr)(unsafe.Pointer(bp))
  9945. *(*uintptr)(unsafe.Pointer(bp))++
  9946. hold += uint32(*(*uint8)(unsafe.Pointer(v33))) << bits
  9947. bits += uint32(8)
  9948. goto _32
  9949. _32:
  9950. }
  9951. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  9952. last = here
  9953. for {
  9954. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  9955. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  9956. break
  9957. }
  9958. if have == uint32(0) {
  9959. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9960. if have == uint32(0) {
  9961. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9962. ret = -int32(5)
  9963. goto inf_leave
  9964. }
  9965. }
  9966. have--
  9967. v35 = *(*uintptr)(unsafe.Pointer(bp))
  9968. *(*uintptr)(unsafe.Pointer(bp))++
  9969. hold += uint32(*(*uint8)(unsafe.Pointer(v35))) << bits
  9970. bits += uint32(8)
  9971. goto _34
  9972. _34:
  9973. }
  9974. hold >>= uint32(last.Fbits)
  9975. bits -= uint32(last.Fbits)
  9976. }
  9977. hold >>= uint32(here.Fbits)
  9978. bits -= uint32(here.Fbits)
  9979. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  9980. /* process literal */
  9981. if libc.Int32FromUint8(here.Fop) == 0 {
  9982. if left == uint32(0) {
  9983. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9984. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9985. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9986. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9987. ret = -int32(5)
  9988. goto inf_leave
  9989. }
  9990. }
  9991. v36 = put
  9992. put++
  9993. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  9994. left--
  9995. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9996. goto _10
  9997. }
  9998. /* process end of block */
  9999. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  10000. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10001. goto _10
  10002. }
  10003. /* invalid code */
  10004. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  10005. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  10006. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10007. goto _10
  10008. }
  10009. /* length code -- get extra bits, if any */
  10010. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  10011. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  10012. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  10013. if have == uint32(0) {
  10014. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10015. if have == uint32(0) {
  10016. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10017. ret = -int32(5)
  10018. goto inf_leave
  10019. }
  10020. }
  10021. have--
  10022. v37 = *(*uintptr)(unsafe.Pointer(bp))
  10023. *(*uintptr)(unsafe.Pointer(bp))++
  10024. hold += uint32(*(*uint8)(unsafe.Pointer(v37))) << bits
  10025. bits += uint32(8)
  10026. }
  10027. *(*uint32)(unsafe.Pointer(state + 68)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  10028. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10029. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10030. }
  10031. /* get distance code */
  10032. for {
  10033. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  10034. if uint32(here.Fbits) <= bits {
  10035. break
  10036. }
  10037. if have == uint32(0) {
  10038. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10039. if have == uint32(0) {
  10040. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10041. ret = -int32(5)
  10042. goto inf_leave
  10043. }
  10044. }
  10045. have--
  10046. v39 = *(*uintptr)(unsafe.Pointer(bp))
  10047. *(*uintptr)(unsafe.Pointer(bp))++
  10048. hold += uint32(*(*uint8)(unsafe.Pointer(v39))) << bits
  10049. bits += uint32(8)
  10050. goto _38
  10051. _38:
  10052. }
  10053. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  10054. last = here
  10055. for {
  10056. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  10057. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  10058. break
  10059. }
  10060. if have == uint32(0) {
  10061. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10062. if have == uint32(0) {
  10063. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10064. ret = -int32(5)
  10065. goto inf_leave
  10066. }
  10067. }
  10068. have--
  10069. v41 = *(*uintptr)(unsafe.Pointer(bp))
  10070. *(*uintptr)(unsafe.Pointer(bp))++
  10071. hold += uint32(*(*uint8)(unsafe.Pointer(v41))) << bits
  10072. bits += uint32(8)
  10073. goto _40
  10074. _40:
  10075. }
  10076. hold >>= uint32(last.Fbits)
  10077. bits -= uint32(last.Fbits)
  10078. }
  10079. hold >>= uint32(here.Fbits)
  10080. bits -= uint32(here.Fbits)
  10081. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  10082. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10083. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10084. goto _10
  10085. }
  10086. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  10087. /* get distance extra bits, if any */
  10088. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  10089. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  10090. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  10091. if have == uint32(0) {
  10092. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10093. if have == uint32(0) {
  10094. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10095. ret = -int32(5)
  10096. goto inf_leave
  10097. }
  10098. }
  10099. have--
  10100. v42 = *(*uintptr)(unsafe.Pointer(bp))
  10101. *(*uintptr)(unsafe.Pointer(bp))++
  10102. hold += uint32(*(*uint8)(unsafe.Pointer(v42))) << bits
  10103. bits += uint32(8)
  10104. }
  10105. *(*uint32)(unsafe.Pointer(state + 72)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  10106. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10107. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10108. }
  10109. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10110. v43 = left
  10111. } else {
  10112. v43 = uint32(0)
  10113. }
  10114. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  10115. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10116. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10117. goto _10
  10118. }
  10119. /* copy match from window to output */
  10120. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  10121. if left == uint32(0) {
  10122. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10123. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10124. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  10125. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  10126. ret = -int32(5)
  10127. goto inf_leave
  10128. }
  10129. }
  10130. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  10131. if copy1 < left {
  10132. from = put + uintptr(copy1)
  10133. copy1 = left - copy1
  10134. } else {
  10135. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  10136. copy1 = left
  10137. }
  10138. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  10139. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  10140. }
  10141. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  10142. left -= copy1
  10143. for {
  10144. v46 = put
  10145. put++
  10146. v47 = from
  10147. from++
  10148. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  10149. goto _45
  10150. _45:
  10151. ;
  10152. copy1--
  10153. v44 = copy1
  10154. if !(v44 != 0) {
  10155. break
  10156. }
  10157. }
  10158. }
  10159. goto _10
  10160. _7:
  10161. ;
  10162. /* inflate stream terminated properly */
  10163. ret = int32(m_Z_STREAM_END)
  10164. goto inf_leave
  10165. _8:
  10166. ;
  10167. ret = -int32(3)
  10168. goto inf_leave
  10169. _9:
  10170. ;
  10171. /* can't happen, but makes compilers happy */
  10172. ret = -int32(2)
  10173. goto inf_leave
  10174. _10:
  10175. ;
  10176. goto _2
  10177. _2:
  10178. }
  10179. /* Write leftover output and return unused input */
  10180. goto inf_leave
  10181. inf_leave:
  10182. ;
  10183. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10184. 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) {
  10185. ret = -int32(5)
  10186. }
  10187. }
  10188. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  10189. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  10190. return ret
  10191. }
  10192. var _order = [19]uint16{
  10193. 0: uint16(16),
  10194. 1: uint16(17),
  10195. 2: uint16(18),
  10196. 4: uint16(8),
  10197. 5: uint16(7),
  10198. 6: uint16(9),
  10199. 7: uint16(6),
  10200. 8: uint16(10),
  10201. 9: uint16(5),
  10202. 10: uint16(11),
  10203. 11: uint16(4),
  10204. 12: uint16(12),
  10205. 13: uint16(3),
  10206. 14: uint16(13),
  10207. 15: uint16(2),
  10208. 16: uint16(14),
  10209. 17: uint16(1),
  10210. 18: uint16(15),
  10211. }
  10212. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10213. 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) {
  10214. return -int32(2)
  10215. }
  10216. (*(*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)
  10217. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10218. return m_Z_OK
  10219. }
  10220. // C documentation
  10221. //
  10222. // /*
  10223. // Decode literal, length, and distance codes and write out the resulting
  10224. // literal and match bytes until either not enough input or output is
  10225. // available, an end-of-block is encountered, or a data error is encountered.
  10226. // When large enough input and output buffers are supplied to inflate(), for
  10227. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  10228. // inflate execution time is spent in this routine.
  10229. //
  10230. // Entry assumptions:
  10231. //
  10232. // state->mode == LEN
  10233. // strm->avail_in >= 6
  10234. // strm->avail_out >= 258
  10235. // start >= strm->avail_out
  10236. // state->bits < 8
  10237. //
  10238. // On return, state->mode is one of:
  10239. //
  10240. // LEN -- ran out of enough output space or enough available input
  10241. // TYPE -- reached end of block code, inflate() to interpret next block
  10242. // BAD -- error in block data
  10243. //
  10244. // Notes:
  10245. //
  10246. // - The maximum input bits used by a length/distance pair is 15 bits for the
  10247. // length code, 5 bits for the length extra, 15 bits for the distance code,
  10248. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  10249. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  10250. // checking for available input while decoding.
  10251. //
  10252. // - The maximum bytes that a single length/distance pair can output is 258
  10253. // bytes, which is the maximum length that can be coded. inflate_fast()
  10254. // requires strm->avail_out >= 258 for each loop to avoid checking for
  10255. // output space.
  10256. // */
  10257. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  10258. 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
  10259. var bits, dist, dmask, hold, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  10260. var v45, v46 int32
  10261. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  10262. /* copy state to local variables */
  10263. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10264. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  10265. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  10266. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  10267. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  10268. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  10269. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10270. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  10271. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  10272. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10273. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  10274. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  10275. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  10276. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  10277. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  10278. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  10279. /* decode literals and length/distances until end-of-block or not enough
  10280. input data or output space */
  10281. for cond := true; cond; cond = in < last && out < end {
  10282. if bits < uint32(15) {
  10283. v1 = in
  10284. in++
  10285. hold += uint32(*(*uint8)(unsafe.Pointer(v1))) << bits
  10286. bits += uint32(8)
  10287. v2 = in
  10288. in++
  10289. hold += uint32(*(*uint8)(unsafe.Pointer(v2))) << bits
  10290. bits += uint32(8)
  10291. }
  10292. here = lcode + uintptr(hold&lmask)*4
  10293. goto dolen
  10294. dolen:
  10295. ;
  10296. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10297. hold >>= op
  10298. bits -= op
  10299. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10300. if op == uint32(0) { /* literal */
  10301. v3 = out
  10302. out++
  10303. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  10304. } else {
  10305. if op&uint32(16) != 0 { /* length base */
  10306. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10307. op &= uint32(15) /* number of extra bits */
  10308. if op != 0 {
  10309. if bits < op {
  10310. v4 = in
  10311. in++
  10312. hold += uint32(*(*uint8)(unsafe.Pointer(v4))) << bits
  10313. bits += uint32(8)
  10314. }
  10315. len1 += hold & (uint32(1)<<op - uint32(1))
  10316. hold >>= op
  10317. bits -= op
  10318. }
  10319. if bits < uint32(15) {
  10320. v5 = in
  10321. in++
  10322. hold += uint32(*(*uint8)(unsafe.Pointer(v5))) << bits
  10323. bits += uint32(8)
  10324. v6 = in
  10325. in++
  10326. hold += uint32(*(*uint8)(unsafe.Pointer(v6))) << bits
  10327. bits += uint32(8)
  10328. }
  10329. here = dcode + uintptr(hold&dmask)*4
  10330. goto dodist
  10331. dodist:
  10332. ;
  10333. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10334. hold >>= op
  10335. bits -= op
  10336. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10337. if op&uint32(16) != 0 { /* distance base */
  10338. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10339. op &= uint32(15) /* number of extra bits */
  10340. if bits < op {
  10341. v7 = in
  10342. in++
  10343. hold += uint32(*(*uint8)(unsafe.Pointer(v7))) << bits
  10344. bits += uint32(8)
  10345. if bits < op {
  10346. v8 = in
  10347. in++
  10348. hold += uint32(*(*uint8)(unsafe.Pointer(v8))) << bits
  10349. bits += uint32(8)
  10350. }
  10351. }
  10352. dist += hold & (uint32(1)<<op - uint32(1))
  10353. hold >>= op
  10354. bits -= op
  10355. op = libc.Uint32FromInt32(int32(out) - int32(beg)) /* max distance in output */
  10356. if dist > op { /* see if copy from window */
  10357. op = dist - op /* distance back in window */
  10358. if op > whave {
  10359. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  10360. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10361. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10362. break
  10363. }
  10364. }
  10365. from = window
  10366. if wnext == uint32(0) { /* very common case */
  10367. from += uintptr(wsize - op)
  10368. if op < len1 { /* some from window */
  10369. len1 -= op
  10370. for {
  10371. v11 = out
  10372. out++
  10373. v12 = from
  10374. from++
  10375. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  10376. goto _10
  10377. _10:
  10378. ;
  10379. op--
  10380. v9 = op
  10381. if !(v9 != 0) {
  10382. break
  10383. }
  10384. }
  10385. from = out - uintptr(dist) /* rest from output */
  10386. }
  10387. } else {
  10388. if wnext < op { /* wrap around window */
  10389. from += uintptr(wsize + wnext - op)
  10390. op -= wnext
  10391. if op < len1 { /* some from end of window */
  10392. len1 -= op
  10393. for {
  10394. v15 = out
  10395. out++
  10396. v16 = from
  10397. from++
  10398. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  10399. goto _14
  10400. _14:
  10401. ;
  10402. op--
  10403. v13 = op
  10404. if !(v13 != 0) {
  10405. break
  10406. }
  10407. }
  10408. from = window
  10409. if wnext < len1 { /* some from start of window */
  10410. op = wnext
  10411. len1 -= op
  10412. for {
  10413. v19 = out
  10414. out++
  10415. v20 = from
  10416. from++
  10417. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  10418. goto _18
  10419. _18:
  10420. ;
  10421. op--
  10422. v17 = op
  10423. if !(v17 != 0) {
  10424. break
  10425. }
  10426. }
  10427. from = out - uintptr(dist) /* rest from output */
  10428. }
  10429. }
  10430. } else { /* contiguous in window */
  10431. from += uintptr(wnext - op)
  10432. if op < len1 { /* some from window */
  10433. len1 -= op
  10434. for {
  10435. v23 = out
  10436. out++
  10437. v24 = from
  10438. from++
  10439. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  10440. goto _22
  10441. _22:
  10442. ;
  10443. op--
  10444. v21 = op
  10445. if !(v21 != 0) {
  10446. break
  10447. }
  10448. }
  10449. from = out - uintptr(dist) /* rest from output */
  10450. }
  10451. }
  10452. }
  10453. for len1 > uint32(2) {
  10454. v25 = out
  10455. out++
  10456. v26 = from
  10457. from++
  10458. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  10459. v27 = out
  10460. out++
  10461. v28 = from
  10462. from++
  10463. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  10464. v29 = out
  10465. out++
  10466. v30 = from
  10467. from++
  10468. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  10469. len1 -= uint32(3)
  10470. }
  10471. if len1 != 0 {
  10472. v31 = out
  10473. out++
  10474. v32 = from
  10475. from++
  10476. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  10477. if len1 > uint32(1) {
  10478. v33 = out
  10479. out++
  10480. v34 = from
  10481. from++
  10482. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  10483. }
  10484. }
  10485. } else {
  10486. from = out - uintptr(dist) /* copy direct from output */
  10487. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  10488. v35 = out
  10489. out++
  10490. v36 = from
  10491. from++
  10492. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  10493. v37 = out
  10494. out++
  10495. v38 = from
  10496. from++
  10497. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  10498. v39 = out
  10499. out++
  10500. v40 = from
  10501. from++
  10502. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  10503. len1 -= uint32(3)
  10504. }
  10505. if len1 != 0 {
  10506. v41 = out
  10507. out++
  10508. v42 = from
  10509. from++
  10510. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  10511. if len1 > uint32(1) {
  10512. v43 = out
  10513. out++
  10514. v44 = from
  10515. from++
  10516. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  10517. }
  10518. }
  10519. }
  10520. } else {
  10521. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  10522. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint32(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10523. goto dodist
  10524. } else {
  10525. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10526. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10527. break
  10528. }
  10529. }
  10530. } else {
  10531. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  10532. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint32(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10533. goto dolen
  10534. } else {
  10535. if op&uint32(32) != 0 { /* end-of-block */
  10536. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10537. break
  10538. } else {
  10539. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  10540. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10541. break
  10542. }
  10543. }
  10544. }
  10545. }
  10546. }
  10547. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  10548. len1 = bits >> int32(3)
  10549. in -= uintptr(len1)
  10550. bits -= len1 << int32(3)
  10551. hold &= uint32(uint32(1)<<bits - uint32(1))
  10552. /* update state and return */
  10553. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  10554. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  10555. if in < last {
  10556. v45 = int32(5) + (int32(last) - int32(in))
  10557. } else {
  10558. v45 = int32(5) - (int32(in) - int32(last))
  10559. }
  10560. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = libc.Uint32FromInt32(v45)
  10561. if out < end {
  10562. v46 = int32(257) + (int32(end) - int32(out))
  10563. } else {
  10564. v46 = int32(257) - (int32(out) - int32(end))
  10565. }
  10566. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = libc.Uint32FromInt32(v46)
  10567. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  10568. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  10569. return
  10570. }
  10571. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10572. var state uintptr
  10573. _ = state
  10574. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10575. return int32(1)
  10576. }
  10577. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10578. if state == uintptr(m_Z_NULL) || (*Tinflate_state)(unsafe.Pointer(state)).Fstrm != strm || (*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_HEAD) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode > int32(_SYNC) {
  10579. return int32(1)
  10580. }
  10581. return 0
  10582. }
  10583. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10584. var state, v3, v4 uintptr
  10585. var v1 TuLong
  10586. var v2 uint32
  10587. _, _, _, _, _ = state, v1, v2, v3, v4
  10588. if _inflateStateCheck(tls, strm) != 0 {
  10589. return -int32(2)
  10590. }
  10591. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10592. v2 = libc.Uint32FromInt32(0)
  10593. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  10594. v1 = v2
  10595. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  10596. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  10597. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  10598. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  10599. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = libc.Uint32FromInt32((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  10600. }
  10601. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  10602. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  10603. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  10604. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  10605. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  10606. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  10607. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint32(0)
  10608. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10609. v4 = state + 1332
  10610. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  10611. v3 = v4
  10612. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  10613. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  10614. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  10615. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  10616. return m_Z_OK
  10617. }
  10618. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10619. var state uintptr
  10620. _ = state
  10621. if _inflateStateCheck(tls, strm) != 0 {
  10622. return -int32(2)
  10623. }
  10624. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10625. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  10626. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  10627. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  10628. return XinflateResetKeep(tls, strm)
  10629. }
  10630. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  10631. var state uintptr
  10632. var wrap int32
  10633. _, _ = state, wrap
  10634. /* get the state */
  10635. if _inflateStateCheck(tls, strm) != 0 {
  10636. return -int32(2)
  10637. }
  10638. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10639. /* extract wrap request from windowBits parameter */
  10640. if windowBits < 0 {
  10641. if windowBits < -int32(15) {
  10642. return -int32(2)
  10643. }
  10644. wrap = 0
  10645. windowBits = -windowBits
  10646. } else {
  10647. wrap = windowBits>>int32(4) + int32(5)
  10648. if windowBits < int32(48) {
  10649. windowBits &= int32(15)
  10650. }
  10651. }
  10652. /* set number of window bits, free window if different */
  10653. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  10654. return -int32(2)
  10655. }
  10656. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != libc.Uint32FromInt32(windowBits) {
  10657. (*(*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)
  10658. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10659. }
  10660. /* update state and reset the rest of it */
  10661. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  10662. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  10663. return XinflateReset(tls, strm)
  10664. }
  10665. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  10666. var ret int32
  10667. var state uintptr
  10668. _, _ = ret, state
  10669. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint32(libc.Uint32FromInt64(56)) {
  10670. return -int32(6)
  10671. }
  10672. if strm == uintptr(m_Z_NULL) {
  10673. return -int32(2)
  10674. }
  10675. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  10676. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  10677. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  10678. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  10679. }
  10680. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10681. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  10682. }
  10683. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(7120))
  10684. if state == uintptr(m_Z_NULL) {
  10685. return -int32(4)
  10686. }
  10687. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  10688. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  10689. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10690. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  10691. ret = XinflateReset2(tls, strm, windowBits)
  10692. if ret != m_Z_OK {
  10693. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  10694. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10695. }
  10696. return ret
  10697. }
  10698. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  10699. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  10700. }
  10701. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  10702. var state uintptr
  10703. _ = state
  10704. if _inflateStateCheck(tls, strm) != 0 {
  10705. return -int32(2)
  10706. }
  10707. if bits == 0 {
  10708. return m_Z_OK
  10709. }
  10710. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10711. if bits < 0 {
  10712. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint32(0)
  10713. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10714. return m_Z_OK
  10715. }
  10716. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+libc.Uint32FromInt32(bits) > uint32(32) {
  10717. return -int32(2)
  10718. }
  10719. value = int32(value & (libc.Int32FromInt32(1)<<bits - libc.Int32FromInt32(1)))
  10720. *(*uint32)(unsafe.Pointer(state + 60)) += uint32(libc.Uint32FromInt32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  10721. *(*uint32)(unsafe.Pointer(state + 64)) += libc.Uint32FromInt32(bits)
  10722. return m_Z_OK
  10723. }
  10724. // C documentation
  10725. //
  10726. // /*
  10727. // Return state with length and distance decoding tables and index sizes set to
  10728. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  10729. // If BUILDFIXED is defined, then instead this routine builds the tables the
  10730. // first time it's called, and returns those tables the first time and
  10731. // thereafter. This reduces the size of the code by about 2K bytes, in
  10732. // exchange for a little execution time. However, BUILDFIXED should not be
  10733. // used for threaded applications, since the rewriting of the tables and virgin
  10734. // may not be thread-safe.
  10735. // */
  10736. func _fixedtables1(tls *libc.TLS, state uintptr) {
  10737. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  10738. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  10739. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  10740. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  10741. }
  10742. var _lenfix1 = [512]Tcode{
  10743. 0: {
  10744. Fop: uint8(96),
  10745. Fbits: uint8(7),
  10746. },
  10747. 1: {
  10748. Fbits: uint8(8),
  10749. Fval: uint16(80),
  10750. },
  10751. 2: {
  10752. Fbits: uint8(8),
  10753. Fval: uint16(16),
  10754. },
  10755. 3: {
  10756. Fop: uint8(20),
  10757. Fbits: uint8(8),
  10758. Fval: uint16(115),
  10759. },
  10760. 4: {
  10761. Fop: uint8(18),
  10762. Fbits: uint8(7),
  10763. Fval: uint16(31),
  10764. },
  10765. 5: {
  10766. Fbits: uint8(8),
  10767. Fval: uint16(112),
  10768. },
  10769. 6: {
  10770. Fbits: uint8(8),
  10771. Fval: uint16(48),
  10772. },
  10773. 7: {
  10774. Fbits: uint8(9),
  10775. Fval: uint16(192),
  10776. },
  10777. 8: {
  10778. Fop: uint8(16),
  10779. Fbits: uint8(7),
  10780. Fval: uint16(10),
  10781. },
  10782. 9: {
  10783. Fbits: uint8(8),
  10784. Fval: uint16(96),
  10785. },
  10786. 10: {
  10787. Fbits: uint8(8),
  10788. Fval: uint16(32),
  10789. },
  10790. 11: {
  10791. Fbits: uint8(9),
  10792. Fval: uint16(160),
  10793. },
  10794. 12: {
  10795. Fbits: uint8(8),
  10796. },
  10797. 13: {
  10798. Fbits: uint8(8),
  10799. Fval: uint16(128),
  10800. },
  10801. 14: {
  10802. Fbits: uint8(8),
  10803. Fval: uint16(64),
  10804. },
  10805. 15: {
  10806. Fbits: uint8(9),
  10807. Fval: uint16(224),
  10808. },
  10809. 16: {
  10810. Fop: uint8(16),
  10811. Fbits: uint8(7),
  10812. Fval: uint16(6),
  10813. },
  10814. 17: {
  10815. Fbits: uint8(8),
  10816. Fval: uint16(88),
  10817. },
  10818. 18: {
  10819. Fbits: uint8(8),
  10820. Fval: uint16(24),
  10821. },
  10822. 19: {
  10823. Fbits: uint8(9),
  10824. Fval: uint16(144),
  10825. },
  10826. 20: {
  10827. Fop: uint8(19),
  10828. Fbits: uint8(7),
  10829. Fval: uint16(59),
  10830. },
  10831. 21: {
  10832. Fbits: uint8(8),
  10833. Fval: uint16(120),
  10834. },
  10835. 22: {
  10836. Fbits: uint8(8),
  10837. Fval: uint16(56),
  10838. },
  10839. 23: {
  10840. Fbits: uint8(9),
  10841. Fval: uint16(208),
  10842. },
  10843. 24: {
  10844. Fop: uint8(17),
  10845. Fbits: uint8(7),
  10846. Fval: uint16(17),
  10847. },
  10848. 25: {
  10849. Fbits: uint8(8),
  10850. Fval: uint16(104),
  10851. },
  10852. 26: {
  10853. Fbits: uint8(8),
  10854. Fval: uint16(40),
  10855. },
  10856. 27: {
  10857. Fbits: uint8(9),
  10858. Fval: uint16(176),
  10859. },
  10860. 28: {
  10861. Fbits: uint8(8),
  10862. Fval: uint16(8),
  10863. },
  10864. 29: {
  10865. Fbits: uint8(8),
  10866. Fval: uint16(136),
  10867. },
  10868. 30: {
  10869. Fbits: uint8(8),
  10870. Fval: uint16(72),
  10871. },
  10872. 31: {
  10873. Fbits: uint8(9),
  10874. Fval: uint16(240),
  10875. },
  10876. 32: {
  10877. Fop: uint8(16),
  10878. Fbits: uint8(7),
  10879. Fval: uint16(4),
  10880. },
  10881. 33: {
  10882. Fbits: uint8(8),
  10883. Fval: uint16(84),
  10884. },
  10885. 34: {
  10886. Fbits: uint8(8),
  10887. Fval: uint16(20),
  10888. },
  10889. 35: {
  10890. Fop: uint8(21),
  10891. Fbits: uint8(8),
  10892. Fval: uint16(227),
  10893. },
  10894. 36: {
  10895. Fop: uint8(19),
  10896. Fbits: uint8(7),
  10897. Fval: uint16(43),
  10898. },
  10899. 37: {
  10900. Fbits: uint8(8),
  10901. Fval: uint16(116),
  10902. },
  10903. 38: {
  10904. Fbits: uint8(8),
  10905. Fval: uint16(52),
  10906. },
  10907. 39: {
  10908. Fbits: uint8(9),
  10909. Fval: uint16(200),
  10910. },
  10911. 40: {
  10912. Fop: uint8(17),
  10913. Fbits: uint8(7),
  10914. Fval: uint16(13),
  10915. },
  10916. 41: {
  10917. Fbits: uint8(8),
  10918. Fval: uint16(100),
  10919. },
  10920. 42: {
  10921. Fbits: uint8(8),
  10922. Fval: uint16(36),
  10923. },
  10924. 43: {
  10925. Fbits: uint8(9),
  10926. Fval: uint16(168),
  10927. },
  10928. 44: {
  10929. Fbits: uint8(8),
  10930. Fval: uint16(4),
  10931. },
  10932. 45: {
  10933. Fbits: uint8(8),
  10934. Fval: uint16(132),
  10935. },
  10936. 46: {
  10937. Fbits: uint8(8),
  10938. Fval: uint16(68),
  10939. },
  10940. 47: {
  10941. Fbits: uint8(9),
  10942. Fval: uint16(232),
  10943. },
  10944. 48: {
  10945. Fop: uint8(16),
  10946. Fbits: uint8(7),
  10947. Fval: uint16(8),
  10948. },
  10949. 49: {
  10950. Fbits: uint8(8),
  10951. Fval: uint16(92),
  10952. },
  10953. 50: {
  10954. Fbits: uint8(8),
  10955. Fval: uint16(28),
  10956. },
  10957. 51: {
  10958. Fbits: uint8(9),
  10959. Fval: uint16(152),
  10960. },
  10961. 52: {
  10962. Fop: uint8(20),
  10963. Fbits: uint8(7),
  10964. Fval: uint16(83),
  10965. },
  10966. 53: {
  10967. Fbits: uint8(8),
  10968. Fval: uint16(124),
  10969. },
  10970. 54: {
  10971. Fbits: uint8(8),
  10972. Fval: uint16(60),
  10973. },
  10974. 55: {
  10975. Fbits: uint8(9),
  10976. Fval: uint16(216),
  10977. },
  10978. 56: {
  10979. Fop: uint8(18),
  10980. Fbits: uint8(7),
  10981. Fval: uint16(23),
  10982. },
  10983. 57: {
  10984. Fbits: uint8(8),
  10985. Fval: uint16(108),
  10986. },
  10987. 58: {
  10988. Fbits: uint8(8),
  10989. Fval: uint16(44),
  10990. },
  10991. 59: {
  10992. Fbits: uint8(9),
  10993. Fval: uint16(184),
  10994. },
  10995. 60: {
  10996. Fbits: uint8(8),
  10997. Fval: uint16(12),
  10998. },
  10999. 61: {
  11000. Fbits: uint8(8),
  11001. Fval: uint16(140),
  11002. },
  11003. 62: {
  11004. Fbits: uint8(8),
  11005. Fval: uint16(76),
  11006. },
  11007. 63: {
  11008. Fbits: uint8(9),
  11009. Fval: uint16(248),
  11010. },
  11011. 64: {
  11012. Fop: uint8(16),
  11013. Fbits: uint8(7),
  11014. Fval: uint16(3),
  11015. },
  11016. 65: {
  11017. Fbits: uint8(8),
  11018. Fval: uint16(82),
  11019. },
  11020. 66: {
  11021. Fbits: uint8(8),
  11022. Fval: uint16(18),
  11023. },
  11024. 67: {
  11025. Fop: uint8(21),
  11026. Fbits: uint8(8),
  11027. Fval: uint16(163),
  11028. },
  11029. 68: {
  11030. Fop: uint8(19),
  11031. Fbits: uint8(7),
  11032. Fval: uint16(35),
  11033. },
  11034. 69: {
  11035. Fbits: uint8(8),
  11036. Fval: uint16(114),
  11037. },
  11038. 70: {
  11039. Fbits: uint8(8),
  11040. Fval: uint16(50),
  11041. },
  11042. 71: {
  11043. Fbits: uint8(9),
  11044. Fval: uint16(196),
  11045. },
  11046. 72: {
  11047. Fop: uint8(17),
  11048. Fbits: uint8(7),
  11049. Fval: uint16(11),
  11050. },
  11051. 73: {
  11052. Fbits: uint8(8),
  11053. Fval: uint16(98),
  11054. },
  11055. 74: {
  11056. Fbits: uint8(8),
  11057. Fval: uint16(34),
  11058. },
  11059. 75: {
  11060. Fbits: uint8(9),
  11061. Fval: uint16(164),
  11062. },
  11063. 76: {
  11064. Fbits: uint8(8),
  11065. Fval: uint16(2),
  11066. },
  11067. 77: {
  11068. Fbits: uint8(8),
  11069. Fval: uint16(130),
  11070. },
  11071. 78: {
  11072. Fbits: uint8(8),
  11073. Fval: uint16(66),
  11074. },
  11075. 79: {
  11076. Fbits: uint8(9),
  11077. Fval: uint16(228),
  11078. },
  11079. 80: {
  11080. Fop: uint8(16),
  11081. Fbits: uint8(7),
  11082. Fval: uint16(7),
  11083. },
  11084. 81: {
  11085. Fbits: uint8(8),
  11086. Fval: uint16(90),
  11087. },
  11088. 82: {
  11089. Fbits: uint8(8),
  11090. Fval: uint16(26),
  11091. },
  11092. 83: {
  11093. Fbits: uint8(9),
  11094. Fval: uint16(148),
  11095. },
  11096. 84: {
  11097. Fop: uint8(20),
  11098. Fbits: uint8(7),
  11099. Fval: uint16(67),
  11100. },
  11101. 85: {
  11102. Fbits: uint8(8),
  11103. Fval: uint16(122),
  11104. },
  11105. 86: {
  11106. Fbits: uint8(8),
  11107. Fval: uint16(58),
  11108. },
  11109. 87: {
  11110. Fbits: uint8(9),
  11111. Fval: uint16(212),
  11112. },
  11113. 88: {
  11114. Fop: uint8(18),
  11115. Fbits: uint8(7),
  11116. Fval: uint16(19),
  11117. },
  11118. 89: {
  11119. Fbits: uint8(8),
  11120. Fval: uint16(106),
  11121. },
  11122. 90: {
  11123. Fbits: uint8(8),
  11124. Fval: uint16(42),
  11125. },
  11126. 91: {
  11127. Fbits: uint8(9),
  11128. Fval: uint16(180),
  11129. },
  11130. 92: {
  11131. Fbits: uint8(8),
  11132. Fval: uint16(10),
  11133. },
  11134. 93: {
  11135. Fbits: uint8(8),
  11136. Fval: uint16(138),
  11137. },
  11138. 94: {
  11139. Fbits: uint8(8),
  11140. Fval: uint16(74),
  11141. },
  11142. 95: {
  11143. Fbits: uint8(9),
  11144. Fval: uint16(244),
  11145. },
  11146. 96: {
  11147. Fop: uint8(16),
  11148. Fbits: uint8(7),
  11149. Fval: uint16(5),
  11150. },
  11151. 97: {
  11152. Fbits: uint8(8),
  11153. Fval: uint16(86),
  11154. },
  11155. 98: {
  11156. Fbits: uint8(8),
  11157. Fval: uint16(22),
  11158. },
  11159. 99: {
  11160. Fop: uint8(64),
  11161. Fbits: uint8(8),
  11162. },
  11163. 100: {
  11164. Fop: uint8(19),
  11165. Fbits: uint8(7),
  11166. Fval: uint16(51),
  11167. },
  11168. 101: {
  11169. Fbits: uint8(8),
  11170. Fval: uint16(118),
  11171. },
  11172. 102: {
  11173. Fbits: uint8(8),
  11174. Fval: uint16(54),
  11175. },
  11176. 103: {
  11177. Fbits: uint8(9),
  11178. Fval: uint16(204),
  11179. },
  11180. 104: {
  11181. Fop: uint8(17),
  11182. Fbits: uint8(7),
  11183. Fval: uint16(15),
  11184. },
  11185. 105: {
  11186. Fbits: uint8(8),
  11187. Fval: uint16(102),
  11188. },
  11189. 106: {
  11190. Fbits: uint8(8),
  11191. Fval: uint16(38),
  11192. },
  11193. 107: {
  11194. Fbits: uint8(9),
  11195. Fval: uint16(172),
  11196. },
  11197. 108: {
  11198. Fbits: uint8(8),
  11199. Fval: uint16(6),
  11200. },
  11201. 109: {
  11202. Fbits: uint8(8),
  11203. Fval: uint16(134),
  11204. },
  11205. 110: {
  11206. Fbits: uint8(8),
  11207. Fval: uint16(70),
  11208. },
  11209. 111: {
  11210. Fbits: uint8(9),
  11211. Fval: uint16(236),
  11212. },
  11213. 112: {
  11214. Fop: uint8(16),
  11215. Fbits: uint8(7),
  11216. Fval: uint16(9),
  11217. },
  11218. 113: {
  11219. Fbits: uint8(8),
  11220. Fval: uint16(94),
  11221. },
  11222. 114: {
  11223. Fbits: uint8(8),
  11224. Fval: uint16(30),
  11225. },
  11226. 115: {
  11227. Fbits: uint8(9),
  11228. Fval: uint16(156),
  11229. },
  11230. 116: {
  11231. Fop: uint8(20),
  11232. Fbits: uint8(7),
  11233. Fval: uint16(99),
  11234. },
  11235. 117: {
  11236. Fbits: uint8(8),
  11237. Fval: uint16(126),
  11238. },
  11239. 118: {
  11240. Fbits: uint8(8),
  11241. Fval: uint16(62),
  11242. },
  11243. 119: {
  11244. Fbits: uint8(9),
  11245. Fval: uint16(220),
  11246. },
  11247. 120: {
  11248. Fop: uint8(18),
  11249. Fbits: uint8(7),
  11250. Fval: uint16(27),
  11251. },
  11252. 121: {
  11253. Fbits: uint8(8),
  11254. Fval: uint16(110),
  11255. },
  11256. 122: {
  11257. Fbits: uint8(8),
  11258. Fval: uint16(46),
  11259. },
  11260. 123: {
  11261. Fbits: uint8(9),
  11262. Fval: uint16(188),
  11263. },
  11264. 124: {
  11265. Fbits: uint8(8),
  11266. Fval: uint16(14),
  11267. },
  11268. 125: {
  11269. Fbits: uint8(8),
  11270. Fval: uint16(142),
  11271. },
  11272. 126: {
  11273. Fbits: uint8(8),
  11274. Fval: uint16(78),
  11275. },
  11276. 127: {
  11277. Fbits: uint8(9),
  11278. Fval: uint16(252),
  11279. },
  11280. 128: {
  11281. Fop: uint8(96),
  11282. Fbits: uint8(7),
  11283. },
  11284. 129: {
  11285. Fbits: uint8(8),
  11286. Fval: uint16(81),
  11287. },
  11288. 130: {
  11289. Fbits: uint8(8),
  11290. Fval: uint16(17),
  11291. },
  11292. 131: {
  11293. Fop: uint8(21),
  11294. Fbits: uint8(8),
  11295. Fval: uint16(131),
  11296. },
  11297. 132: {
  11298. Fop: uint8(18),
  11299. Fbits: uint8(7),
  11300. Fval: uint16(31),
  11301. },
  11302. 133: {
  11303. Fbits: uint8(8),
  11304. Fval: uint16(113),
  11305. },
  11306. 134: {
  11307. Fbits: uint8(8),
  11308. Fval: uint16(49),
  11309. },
  11310. 135: {
  11311. Fbits: uint8(9),
  11312. Fval: uint16(194),
  11313. },
  11314. 136: {
  11315. Fop: uint8(16),
  11316. Fbits: uint8(7),
  11317. Fval: uint16(10),
  11318. },
  11319. 137: {
  11320. Fbits: uint8(8),
  11321. Fval: uint16(97),
  11322. },
  11323. 138: {
  11324. Fbits: uint8(8),
  11325. Fval: uint16(33),
  11326. },
  11327. 139: {
  11328. Fbits: uint8(9),
  11329. Fval: uint16(162),
  11330. },
  11331. 140: {
  11332. Fbits: uint8(8),
  11333. Fval: uint16(1),
  11334. },
  11335. 141: {
  11336. Fbits: uint8(8),
  11337. Fval: uint16(129),
  11338. },
  11339. 142: {
  11340. Fbits: uint8(8),
  11341. Fval: uint16(65),
  11342. },
  11343. 143: {
  11344. Fbits: uint8(9),
  11345. Fval: uint16(226),
  11346. },
  11347. 144: {
  11348. Fop: uint8(16),
  11349. Fbits: uint8(7),
  11350. Fval: uint16(6),
  11351. },
  11352. 145: {
  11353. Fbits: uint8(8),
  11354. Fval: uint16(89),
  11355. },
  11356. 146: {
  11357. Fbits: uint8(8),
  11358. Fval: uint16(25),
  11359. },
  11360. 147: {
  11361. Fbits: uint8(9),
  11362. Fval: uint16(146),
  11363. },
  11364. 148: {
  11365. Fop: uint8(19),
  11366. Fbits: uint8(7),
  11367. Fval: uint16(59),
  11368. },
  11369. 149: {
  11370. Fbits: uint8(8),
  11371. Fval: uint16(121),
  11372. },
  11373. 150: {
  11374. Fbits: uint8(8),
  11375. Fval: uint16(57),
  11376. },
  11377. 151: {
  11378. Fbits: uint8(9),
  11379. Fval: uint16(210),
  11380. },
  11381. 152: {
  11382. Fop: uint8(17),
  11383. Fbits: uint8(7),
  11384. Fval: uint16(17),
  11385. },
  11386. 153: {
  11387. Fbits: uint8(8),
  11388. Fval: uint16(105),
  11389. },
  11390. 154: {
  11391. Fbits: uint8(8),
  11392. Fval: uint16(41),
  11393. },
  11394. 155: {
  11395. Fbits: uint8(9),
  11396. Fval: uint16(178),
  11397. },
  11398. 156: {
  11399. Fbits: uint8(8),
  11400. Fval: uint16(9),
  11401. },
  11402. 157: {
  11403. Fbits: uint8(8),
  11404. Fval: uint16(137),
  11405. },
  11406. 158: {
  11407. Fbits: uint8(8),
  11408. Fval: uint16(73),
  11409. },
  11410. 159: {
  11411. Fbits: uint8(9),
  11412. Fval: uint16(242),
  11413. },
  11414. 160: {
  11415. Fop: uint8(16),
  11416. Fbits: uint8(7),
  11417. Fval: uint16(4),
  11418. },
  11419. 161: {
  11420. Fbits: uint8(8),
  11421. Fval: uint16(85),
  11422. },
  11423. 162: {
  11424. Fbits: uint8(8),
  11425. Fval: uint16(21),
  11426. },
  11427. 163: {
  11428. Fop: uint8(16),
  11429. Fbits: uint8(8),
  11430. Fval: uint16(258),
  11431. },
  11432. 164: {
  11433. Fop: uint8(19),
  11434. Fbits: uint8(7),
  11435. Fval: uint16(43),
  11436. },
  11437. 165: {
  11438. Fbits: uint8(8),
  11439. Fval: uint16(117),
  11440. },
  11441. 166: {
  11442. Fbits: uint8(8),
  11443. Fval: uint16(53),
  11444. },
  11445. 167: {
  11446. Fbits: uint8(9),
  11447. Fval: uint16(202),
  11448. },
  11449. 168: {
  11450. Fop: uint8(17),
  11451. Fbits: uint8(7),
  11452. Fval: uint16(13),
  11453. },
  11454. 169: {
  11455. Fbits: uint8(8),
  11456. Fval: uint16(101),
  11457. },
  11458. 170: {
  11459. Fbits: uint8(8),
  11460. Fval: uint16(37),
  11461. },
  11462. 171: {
  11463. Fbits: uint8(9),
  11464. Fval: uint16(170),
  11465. },
  11466. 172: {
  11467. Fbits: uint8(8),
  11468. Fval: uint16(5),
  11469. },
  11470. 173: {
  11471. Fbits: uint8(8),
  11472. Fval: uint16(133),
  11473. },
  11474. 174: {
  11475. Fbits: uint8(8),
  11476. Fval: uint16(69),
  11477. },
  11478. 175: {
  11479. Fbits: uint8(9),
  11480. Fval: uint16(234),
  11481. },
  11482. 176: {
  11483. Fop: uint8(16),
  11484. Fbits: uint8(7),
  11485. Fval: uint16(8),
  11486. },
  11487. 177: {
  11488. Fbits: uint8(8),
  11489. Fval: uint16(93),
  11490. },
  11491. 178: {
  11492. Fbits: uint8(8),
  11493. Fval: uint16(29),
  11494. },
  11495. 179: {
  11496. Fbits: uint8(9),
  11497. Fval: uint16(154),
  11498. },
  11499. 180: {
  11500. Fop: uint8(20),
  11501. Fbits: uint8(7),
  11502. Fval: uint16(83),
  11503. },
  11504. 181: {
  11505. Fbits: uint8(8),
  11506. Fval: uint16(125),
  11507. },
  11508. 182: {
  11509. Fbits: uint8(8),
  11510. Fval: uint16(61),
  11511. },
  11512. 183: {
  11513. Fbits: uint8(9),
  11514. Fval: uint16(218),
  11515. },
  11516. 184: {
  11517. Fop: uint8(18),
  11518. Fbits: uint8(7),
  11519. Fval: uint16(23),
  11520. },
  11521. 185: {
  11522. Fbits: uint8(8),
  11523. Fval: uint16(109),
  11524. },
  11525. 186: {
  11526. Fbits: uint8(8),
  11527. Fval: uint16(45),
  11528. },
  11529. 187: {
  11530. Fbits: uint8(9),
  11531. Fval: uint16(186),
  11532. },
  11533. 188: {
  11534. Fbits: uint8(8),
  11535. Fval: uint16(13),
  11536. },
  11537. 189: {
  11538. Fbits: uint8(8),
  11539. Fval: uint16(141),
  11540. },
  11541. 190: {
  11542. Fbits: uint8(8),
  11543. Fval: uint16(77),
  11544. },
  11545. 191: {
  11546. Fbits: uint8(9),
  11547. Fval: uint16(250),
  11548. },
  11549. 192: {
  11550. Fop: uint8(16),
  11551. Fbits: uint8(7),
  11552. Fval: uint16(3),
  11553. },
  11554. 193: {
  11555. Fbits: uint8(8),
  11556. Fval: uint16(83),
  11557. },
  11558. 194: {
  11559. Fbits: uint8(8),
  11560. Fval: uint16(19),
  11561. },
  11562. 195: {
  11563. Fop: uint8(21),
  11564. Fbits: uint8(8),
  11565. Fval: uint16(195),
  11566. },
  11567. 196: {
  11568. Fop: uint8(19),
  11569. Fbits: uint8(7),
  11570. Fval: uint16(35),
  11571. },
  11572. 197: {
  11573. Fbits: uint8(8),
  11574. Fval: uint16(115),
  11575. },
  11576. 198: {
  11577. Fbits: uint8(8),
  11578. Fval: uint16(51),
  11579. },
  11580. 199: {
  11581. Fbits: uint8(9),
  11582. Fval: uint16(198),
  11583. },
  11584. 200: {
  11585. Fop: uint8(17),
  11586. Fbits: uint8(7),
  11587. Fval: uint16(11),
  11588. },
  11589. 201: {
  11590. Fbits: uint8(8),
  11591. Fval: uint16(99),
  11592. },
  11593. 202: {
  11594. Fbits: uint8(8),
  11595. Fval: uint16(35),
  11596. },
  11597. 203: {
  11598. Fbits: uint8(9),
  11599. Fval: uint16(166),
  11600. },
  11601. 204: {
  11602. Fbits: uint8(8),
  11603. Fval: uint16(3),
  11604. },
  11605. 205: {
  11606. Fbits: uint8(8),
  11607. Fval: uint16(131),
  11608. },
  11609. 206: {
  11610. Fbits: uint8(8),
  11611. Fval: uint16(67),
  11612. },
  11613. 207: {
  11614. Fbits: uint8(9),
  11615. Fval: uint16(230),
  11616. },
  11617. 208: {
  11618. Fop: uint8(16),
  11619. Fbits: uint8(7),
  11620. Fval: uint16(7),
  11621. },
  11622. 209: {
  11623. Fbits: uint8(8),
  11624. Fval: uint16(91),
  11625. },
  11626. 210: {
  11627. Fbits: uint8(8),
  11628. Fval: uint16(27),
  11629. },
  11630. 211: {
  11631. Fbits: uint8(9),
  11632. Fval: uint16(150),
  11633. },
  11634. 212: {
  11635. Fop: uint8(20),
  11636. Fbits: uint8(7),
  11637. Fval: uint16(67),
  11638. },
  11639. 213: {
  11640. Fbits: uint8(8),
  11641. Fval: uint16(123),
  11642. },
  11643. 214: {
  11644. Fbits: uint8(8),
  11645. Fval: uint16(59),
  11646. },
  11647. 215: {
  11648. Fbits: uint8(9),
  11649. Fval: uint16(214),
  11650. },
  11651. 216: {
  11652. Fop: uint8(18),
  11653. Fbits: uint8(7),
  11654. Fval: uint16(19),
  11655. },
  11656. 217: {
  11657. Fbits: uint8(8),
  11658. Fval: uint16(107),
  11659. },
  11660. 218: {
  11661. Fbits: uint8(8),
  11662. Fval: uint16(43),
  11663. },
  11664. 219: {
  11665. Fbits: uint8(9),
  11666. Fval: uint16(182),
  11667. },
  11668. 220: {
  11669. Fbits: uint8(8),
  11670. Fval: uint16(11),
  11671. },
  11672. 221: {
  11673. Fbits: uint8(8),
  11674. Fval: uint16(139),
  11675. },
  11676. 222: {
  11677. Fbits: uint8(8),
  11678. Fval: uint16(75),
  11679. },
  11680. 223: {
  11681. Fbits: uint8(9),
  11682. Fval: uint16(246),
  11683. },
  11684. 224: {
  11685. Fop: uint8(16),
  11686. Fbits: uint8(7),
  11687. Fval: uint16(5),
  11688. },
  11689. 225: {
  11690. Fbits: uint8(8),
  11691. Fval: uint16(87),
  11692. },
  11693. 226: {
  11694. Fbits: uint8(8),
  11695. Fval: uint16(23),
  11696. },
  11697. 227: {
  11698. Fop: uint8(64),
  11699. Fbits: uint8(8),
  11700. },
  11701. 228: {
  11702. Fop: uint8(19),
  11703. Fbits: uint8(7),
  11704. Fval: uint16(51),
  11705. },
  11706. 229: {
  11707. Fbits: uint8(8),
  11708. Fval: uint16(119),
  11709. },
  11710. 230: {
  11711. Fbits: uint8(8),
  11712. Fval: uint16(55),
  11713. },
  11714. 231: {
  11715. Fbits: uint8(9),
  11716. Fval: uint16(206),
  11717. },
  11718. 232: {
  11719. Fop: uint8(17),
  11720. Fbits: uint8(7),
  11721. Fval: uint16(15),
  11722. },
  11723. 233: {
  11724. Fbits: uint8(8),
  11725. Fval: uint16(103),
  11726. },
  11727. 234: {
  11728. Fbits: uint8(8),
  11729. Fval: uint16(39),
  11730. },
  11731. 235: {
  11732. Fbits: uint8(9),
  11733. Fval: uint16(174),
  11734. },
  11735. 236: {
  11736. Fbits: uint8(8),
  11737. Fval: uint16(7),
  11738. },
  11739. 237: {
  11740. Fbits: uint8(8),
  11741. Fval: uint16(135),
  11742. },
  11743. 238: {
  11744. Fbits: uint8(8),
  11745. Fval: uint16(71),
  11746. },
  11747. 239: {
  11748. Fbits: uint8(9),
  11749. Fval: uint16(238),
  11750. },
  11751. 240: {
  11752. Fop: uint8(16),
  11753. Fbits: uint8(7),
  11754. Fval: uint16(9),
  11755. },
  11756. 241: {
  11757. Fbits: uint8(8),
  11758. Fval: uint16(95),
  11759. },
  11760. 242: {
  11761. Fbits: uint8(8),
  11762. Fval: uint16(31),
  11763. },
  11764. 243: {
  11765. Fbits: uint8(9),
  11766. Fval: uint16(158),
  11767. },
  11768. 244: {
  11769. Fop: uint8(20),
  11770. Fbits: uint8(7),
  11771. Fval: uint16(99),
  11772. },
  11773. 245: {
  11774. Fbits: uint8(8),
  11775. Fval: uint16(127),
  11776. },
  11777. 246: {
  11778. Fbits: uint8(8),
  11779. Fval: uint16(63),
  11780. },
  11781. 247: {
  11782. Fbits: uint8(9),
  11783. Fval: uint16(222),
  11784. },
  11785. 248: {
  11786. Fop: uint8(18),
  11787. Fbits: uint8(7),
  11788. Fval: uint16(27),
  11789. },
  11790. 249: {
  11791. Fbits: uint8(8),
  11792. Fval: uint16(111),
  11793. },
  11794. 250: {
  11795. Fbits: uint8(8),
  11796. Fval: uint16(47),
  11797. },
  11798. 251: {
  11799. Fbits: uint8(9),
  11800. Fval: uint16(190),
  11801. },
  11802. 252: {
  11803. Fbits: uint8(8),
  11804. Fval: uint16(15),
  11805. },
  11806. 253: {
  11807. Fbits: uint8(8),
  11808. Fval: uint16(143),
  11809. },
  11810. 254: {
  11811. Fbits: uint8(8),
  11812. Fval: uint16(79),
  11813. },
  11814. 255: {
  11815. Fbits: uint8(9),
  11816. Fval: uint16(254),
  11817. },
  11818. 256: {
  11819. Fop: uint8(96),
  11820. Fbits: uint8(7),
  11821. },
  11822. 257: {
  11823. Fbits: uint8(8),
  11824. Fval: uint16(80),
  11825. },
  11826. 258: {
  11827. Fbits: uint8(8),
  11828. Fval: uint16(16),
  11829. },
  11830. 259: {
  11831. Fop: uint8(20),
  11832. Fbits: uint8(8),
  11833. Fval: uint16(115),
  11834. },
  11835. 260: {
  11836. Fop: uint8(18),
  11837. Fbits: uint8(7),
  11838. Fval: uint16(31),
  11839. },
  11840. 261: {
  11841. Fbits: uint8(8),
  11842. Fval: uint16(112),
  11843. },
  11844. 262: {
  11845. Fbits: uint8(8),
  11846. Fval: uint16(48),
  11847. },
  11848. 263: {
  11849. Fbits: uint8(9),
  11850. Fval: uint16(193),
  11851. },
  11852. 264: {
  11853. Fop: uint8(16),
  11854. Fbits: uint8(7),
  11855. Fval: uint16(10),
  11856. },
  11857. 265: {
  11858. Fbits: uint8(8),
  11859. Fval: uint16(96),
  11860. },
  11861. 266: {
  11862. Fbits: uint8(8),
  11863. Fval: uint16(32),
  11864. },
  11865. 267: {
  11866. Fbits: uint8(9),
  11867. Fval: uint16(161),
  11868. },
  11869. 268: {
  11870. Fbits: uint8(8),
  11871. },
  11872. 269: {
  11873. Fbits: uint8(8),
  11874. Fval: uint16(128),
  11875. },
  11876. 270: {
  11877. Fbits: uint8(8),
  11878. Fval: uint16(64),
  11879. },
  11880. 271: {
  11881. Fbits: uint8(9),
  11882. Fval: uint16(225),
  11883. },
  11884. 272: {
  11885. Fop: uint8(16),
  11886. Fbits: uint8(7),
  11887. Fval: uint16(6),
  11888. },
  11889. 273: {
  11890. Fbits: uint8(8),
  11891. Fval: uint16(88),
  11892. },
  11893. 274: {
  11894. Fbits: uint8(8),
  11895. Fval: uint16(24),
  11896. },
  11897. 275: {
  11898. Fbits: uint8(9),
  11899. Fval: uint16(145),
  11900. },
  11901. 276: {
  11902. Fop: uint8(19),
  11903. Fbits: uint8(7),
  11904. Fval: uint16(59),
  11905. },
  11906. 277: {
  11907. Fbits: uint8(8),
  11908. Fval: uint16(120),
  11909. },
  11910. 278: {
  11911. Fbits: uint8(8),
  11912. Fval: uint16(56),
  11913. },
  11914. 279: {
  11915. Fbits: uint8(9),
  11916. Fval: uint16(209),
  11917. },
  11918. 280: {
  11919. Fop: uint8(17),
  11920. Fbits: uint8(7),
  11921. Fval: uint16(17),
  11922. },
  11923. 281: {
  11924. Fbits: uint8(8),
  11925. Fval: uint16(104),
  11926. },
  11927. 282: {
  11928. Fbits: uint8(8),
  11929. Fval: uint16(40),
  11930. },
  11931. 283: {
  11932. Fbits: uint8(9),
  11933. Fval: uint16(177),
  11934. },
  11935. 284: {
  11936. Fbits: uint8(8),
  11937. Fval: uint16(8),
  11938. },
  11939. 285: {
  11940. Fbits: uint8(8),
  11941. Fval: uint16(136),
  11942. },
  11943. 286: {
  11944. Fbits: uint8(8),
  11945. Fval: uint16(72),
  11946. },
  11947. 287: {
  11948. Fbits: uint8(9),
  11949. Fval: uint16(241),
  11950. },
  11951. 288: {
  11952. Fop: uint8(16),
  11953. Fbits: uint8(7),
  11954. Fval: uint16(4),
  11955. },
  11956. 289: {
  11957. Fbits: uint8(8),
  11958. Fval: uint16(84),
  11959. },
  11960. 290: {
  11961. Fbits: uint8(8),
  11962. Fval: uint16(20),
  11963. },
  11964. 291: {
  11965. Fop: uint8(21),
  11966. Fbits: uint8(8),
  11967. Fval: uint16(227),
  11968. },
  11969. 292: {
  11970. Fop: uint8(19),
  11971. Fbits: uint8(7),
  11972. Fval: uint16(43),
  11973. },
  11974. 293: {
  11975. Fbits: uint8(8),
  11976. Fval: uint16(116),
  11977. },
  11978. 294: {
  11979. Fbits: uint8(8),
  11980. Fval: uint16(52),
  11981. },
  11982. 295: {
  11983. Fbits: uint8(9),
  11984. Fval: uint16(201),
  11985. },
  11986. 296: {
  11987. Fop: uint8(17),
  11988. Fbits: uint8(7),
  11989. Fval: uint16(13),
  11990. },
  11991. 297: {
  11992. Fbits: uint8(8),
  11993. Fval: uint16(100),
  11994. },
  11995. 298: {
  11996. Fbits: uint8(8),
  11997. Fval: uint16(36),
  11998. },
  11999. 299: {
  12000. Fbits: uint8(9),
  12001. Fval: uint16(169),
  12002. },
  12003. 300: {
  12004. Fbits: uint8(8),
  12005. Fval: uint16(4),
  12006. },
  12007. 301: {
  12008. Fbits: uint8(8),
  12009. Fval: uint16(132),
  12010. },
  12011. 302: {
  12012. Fbits: uint8(8),
  12013. Fval: uint16(68),
  12014. },
  12015. 303: {
  12016. Fbits: uint8(9),
  12017. Fval: uint16(233),
  12018. },
  12019. 304: {
  12020. Fop: uint8(16),
  12021. Fbits: uint8(7),
  12022. Fval: uint16(8),
  12023. },
  12024. 305: {
  12025. Fbits: uint8(8),
  12026. Fval: uint16(92),
  12027. },
  12028. 306: {
  12029. Fbits: uint8(8),
  12030. Fval: uint16(28),
  12031. },
  12032. 307: {
  12033. Fbits: uint8(9),
  12034. Fval: uint16(153),
  12035. },
  12036. 308: {
  12037. Fop: uint8(20),
  12038. Fbits: uint8(7),
  12039. Fval: uint16(83),
  12040. },
  12041. 309: {
  12042. Fbits: uint8(8),
  12043. Fval: uint16(124),
  12044. },
  12045. 310: {
  12046. Fbits: uint8(8),
  12047. Fval: uint16(60),
  12048. },
  12049. 311: {
  12050. Fbits: uint8(9),
  12051. Fval: uint16(217),
  12052. },
  12053. 312: {
  12054. Fop: uint8(18),
  12055. Fbits: uint8(7),
  12056. Fval: uint16(23),
  12057. },
  12058. 313: {
  12059. Fbits: uint8(8),
  12060. Fval: uint16(108),
  12061. },
  12062. 314: {
  12063. Fbits: uint8(8),
  12064. Fval: uint16(44),
  12065. },
  12066. 315: {
  12067. Fbits: uint8(9),
  12068. Fval: uint16(185),
  12069. },
  12070. 316: {
  12071. Fbits: uint8(8),
  12072. Fval: uint16(12),
  12073. },
  12074. 317: {
  12075. Fbits: uint8(8),
  12076. Fval: uint16(140),
  12077. },
  12078. 318: {
  12079. Fbits: uint8(8),
  12080. Fval: uint16(76),
  12081. },
  12082. 319: {
  12083. Fbits: uint8(9),
  12084. Fval: uint16(249),
  12085. },
  12086. 320: {
  12087. Fop: uint8(16),
  12088. Fbits: uint8(7),
  12089. Fval: uint16(3),
  12090. },
  12091. 321: {
  12092. Fbits: uint8(8),
  12093. Fval: uint16(82),
  12094. },
  12095. 322: {
  12096. Fbits: uint8(8),
  12097. Fval: uint16(18),
  12098. },
  12099. 323: {
  12100. Fop: uint8(21),
  12101. Fbits: uint8(8),
  12102. Fval: uint16(163),
  12103. },
  12104. 324: {
  12105. Fop: uint8(19),
  12106. Fbits: uint8(7),
  12107. Fval: uint16(35),
  12108. },
  12109. 325: {
  12110. Fbits: uint8(8),
  12111. Fval: uint16(114),
  12112. },
  12113. 326: {
  12114. Fbits: uint8(8),
  12115. Fval: uint16(50),
  12116. },
  12117. 327: {
  12118. Fbits: uint8(9),
  12119. Fval: uint16(197),
  12120. },
  12121. 328: {
  12122. Fop: uint8(17),
  12123. Fbits: uint8(7),
  12124. Fval: uint16(11),
  12125. },
  12126. 329: {
  12127. Fbits: uint8(8),
  12128. Fval: uint16(98),
  12129. },
  12130. 330: {
  12131. Fbits: uint8(8),
  12132. Fval: uint16(34),
  12133. },
  12134. 331: {
  12135. Fbits: uint8(9),
  12136. Fval: uint16(165),
  12137. },
  12138. 332: {
  12139. Fbits: uint8(8),
  12140. Fval: uint16(2),
  12141. },
  12142. 333: {
  12143. Fbits: uint8(8),
  12144. Fval: uint16(130),
  12145. },
  12146. 334: {
  12147. Fbits: uint8(8),
  12148. Fval: uint16(66),
  12149. },
  12150. 335: {
  12151. Fbits: uint8(9),
  12152. Fval: uint16(229),
  12153. },
  12154. 336: {
  12155. Fop: uint8(16),
  12156. Fbits: uint8(7),
  12157. Fval: uint16(7),
  12158. },
  12159. 337: {
  12160. Fbits: uint8(8),
  12161. Fval: uint16(90),
  12162. },
  12163. 338: {
  12164. Fbits: uint8(8),
  12165. Fval: uint16(26),
  12166. },
  12167. 339: {
  12168. Fbits: uint8(9),
  12169. Fval: uint16(149),
  12170. },
  12171. 340: {
  12172. Fop: uint8(20),
  12173. Fbits: uint8(7),
  12174. Fval: uint16(67),
  12175. },
  12176. 341: {
  12177. Fbits: uint8(8),
  12178. Fval: uint16(122),
  12179. },
  12180. 342: {
  12181. Fbits: uint8(8),
  12182. Fval: uint16(58),
  12183. },
  12184. 343: {
  12185. Fbits: uint8(9),
  12186. Fval: uint16(213),
  12187. },
  12188. 344: {
  12189. Fop: uint8(18),
  12190. Fbits: uint8(7),
  12191. Fval: uint16(19),
  12192. },
  12193. 345: {
  12194. Fbits: uint8(8),
  12195. Fval: uint16(106),
  12196. },
  12197. 346: {
  12198. Fbits: uint8(8),
  12199. Fval: uint16(42),
  12200. },
  12201. 347: {
  12202. Fbits: uint8(9),
  12203. Fval: uint16(181),
  12204. },
  12205. 348: {
  12206. Fbits: uint8(8),
  12207. Fval: uint16(10),
  12208. },
  12209. 349: {
  12210. Fbits: uint8(8),
  12211. Fval: uint16(138),
  12212. },
  12213. 350: {
  12214. Fbits: uint8(8),
  12215. Fval: uint16(74),
  12216. },
  12217. 351: {
  12218. Fbits: uint8(9),
  12219. Fval: uint16(245),
  12220. },
  12221. 352: {
  12222. Fop: uint8(16),
  12223. Fbits: uint8(7),
  12224. Fval: uint16(5),
  12225. },
  12226. 353: {
  12227. Fbits: uint8(8),
  12228. Fval: uint16(86),
  12229. },
  12230. 354: {
  12231. Fbits: uint8(8),
  12232. Fval: uint16(22),
  12233. },
  12234. 355: {
  12235. Fop: uint8(64),
  12236. Fbits: uint8(8),
  12237. },
  12238. 356: {
  12239. Fop: uint8(19),
  12240. Fbits: uint8(7),
  12241. Fval: uint16(51),
  12242. },
  12243. 357: {
  12244. Fbits: uint8(8),
  12245. Fval: uint16(118),
  12246. },
  12247. 358: {
  12248. Fbits: uint8(8),
  12249. Fval: uint16(54),
  12250. },
  12251. 359: {
  12252. Fbits: uint8(9),
  12253. Fval: uint16(205),
  12254. },
  12255. 360: {
  12256. Fop: uint8(17),
  12257. Fbits: uint8(7),
  12258. Fval: uint16(15),
  12259. },
  12260. 361: {
  12261. Fbits: uint8(8),
  12262. Fval: uint16(102),
  12263. },
  12264. 362: {
  12265. Fbits: uint8(8),
  12266. Fval: uint16(38),
  12267. },
  12268. 363: {
  12269. Fbits: uint8(9),
  12270. Fval: uint16(173),
  12271. },
  12272. 364: {
  12273. Fbits: uint8(8),
  12274. Fval: uint16(6),
  12275. },
  12276. 365: {
  12277. Fbits: uint8(8),
  12278. Fval: uint16(134),
  12279. },
  12280. 366: {
  12281. Fbits: uint8(8),
  12282. Fval: uint16(70),
  12283. },
  12284. 367: {
  12285. Fbits: uint8(9),
  12286. Fval: uint16(237),
  12287. },
  12288. 368: {
  12289. Fop: uint8(16),
  12290. Fbits: uint8(7),
  12291. Fval: uint16(9),
  12292. },
  12293. 369: {
  12294. Fbits: uint8(8),
  12295. Fval: uint16(94),
  12296. },
  12297. 370: {
  12298. Fbits: uint8(8),
  12299. Fval: uint16(30),
  12300. },
  12301. 371: {
  12302. Fbits: uint8(9),
  12303. Fval: uint16(157),
  12304. },
  12305. 372: {
  12306. Fop: uint8(20),
  12307. Fbits: uint8(7),
  12308. Fval: uint16(99),
  12309. },
  12310. 373: {
  12311. Fbits: uint8(8),
  12312. Fval: uint16(126),
  12313. },
  12314. 374: {
  12315. Fbits: uint8(8),
  12316. Fval: uint16(62),
  12317. },
  12318. 375: {
  12319. Fbits: uint8(9),
  12320. Fval: uint16(221),
  12321. },
  12322. 376: {
  12323. Fop: uint8(18),
  12324. Fbits: uint8(7),
  12325. Fval: uint16(27),
  12326. },
  12327. 377: {
  12328. Fbits: uint8(8),
  12329. Fval: uint16(110),
  12330. },
  12331. 378: {
  12332. Fbits: uint8(8),
  12333. Fval: uint16(46),
  12334. },
  12335. 379: {
  12336. Fbits: uint8(9),
  12337. Fval: uint16(189),
  12338. },
  12339. 380: {
  12340. Fbits: uint8(8),
  12341. Fval: uint16(14),
  12342. },
  12343. 381: {
  12344. Fbits: uint8(8),
  12345. Fval: uint16(142),
  12346. },
  12347. 382: {
  12348. Fbits: uint8(8),
  12349. Fval: uint16(78),
  12350. },
  12351. 383: {
  12352. Fbits: uint8(9),
  12353. Fval: uint16(253),
  12354. },
  12355. 384: {
  12356. Fop: uint8(96),
  12357. Fbits: uint8(7),
  12358. },
  12359. 385: {
  12360. Fbits: uint8(8),
  12361. Fval: uint16(81),
  12362. },
  12363. 386: {
  12364. Fbits: uint8(8),
  12365. Fval: uint16(17),
  12366. },
  12367. 387: {
  12368. Fop: uint8(21),
  12369. Fbits: uint8(8),
  12370. Fval: uint16(131),
  12371. },
  12372. 388: {
  12373. Fop: uint8(18),
  12374. Fbits: uint8(7),
  12375. Fval: uint16(31),
  12376. },
  12377. 389: {
  12378. Fbits: uint8(8),
  12379. Fval: uint16(113),
  12380. },
  12381. 390: {
  12382. Fbits: uint8(8),
  12383. Fval: uint16(49),
  12384. },
  12385. 391: {
  12386. Fbits: uint8(9),
  12387. Fval: uint16(195),
  12388. },
  12389. 392: {
  12390. Fop: uint8(16),
  12391. Fbits: uint8(7),
  12392. Fval: uint16(10),
  12393. },
  12394. 393: {
  12395. Fbits: uint8(8),
  12396. Fval: uint16(97),
  12397. },
  12398. 394: {
  12399. Fbits: uint8(8),
  12400. Fval: uint16(33),
  12401. },
  12402. 395: {
  12403. Fbits: uint8(9),
  12404. Fval: uint16(163),
  12405. },
  12406. 396: {
  12407. Fbits: uint8(8),
  12408. Fval: uint16(1),
  12409. },
  12410. 397: {
  12411. Fbits: uint8(8),
  12412. Fval: uint16(129),
  12413. },
  12414. 398: {
  12415. Fbits: uint8(8),
  12416. Fval: uint16(65),
  12417. },
  12418. 399: {
  12419. Fbits: uint8(9),
  12420. Fval: uint16(227),
  12421. },
  12422. 400: {
  12423. Fop: uint8(16),
  12424. Fbits: uint8(7),
  12425. Fval: uint16(6),
  12426. },
  12427. 401: {
  12428. Fbits: uint8(8),
  12429. Fval: uint16(89),
  12430. },
  12431. 402: {
  12432. Fbits: uint8(8),
  12433. Fval: uint16(25),
  12434. },
  12435. 403: {
  12436. Fbits: uint8(9),
  12437. Fval: uint16(147),
  12438. },
  12439. 404: {
  12440. Fop: uint8(19),
  12441. Fbits: uint8(7),
  12442. Fval: uint16(59),
  12443. },
  12444. 405: {
  12445. Fbits: uint8(8),
  12446. Fval: uint16(121),
  12447. },
  12448. 406: {
  12449. Fbits: uint8(8),
  12450. Fval: uint16(57),
  12451. },
  12452. 407: {
  12453. Fbits: uint8(9),
  12454. Fval: uint16(211),
  12455. },
  12456. 408: {
  12457. Fop: uint8(17),
  12458. Fbits: uint8(7),
  12459. Fval: uint16(17),
  12460. },
  12461. 409: {
  12462. Fbits: uint8(8),
  12463. Fval: uint16(105),
  12464. },
  12465. 410: {
  12466. Fbits: uint8(8),
  12467. Fval: uint16(41),
  12468. },
  12469. 411: {
  12470. Fbits: uint8(9),
  12471. Fval: uint16(179),
  12472. },
  12473. 412: {
  12474. Fbits: uint8(8),
  12475. Fval: uint16(9),
  12476. },
  12477. 413: {
  12478. Fbits: uint8(8),
  12479. Fval: uint16(137),
  12480. },
  12481. 414: {
  12482. Fbits: uint8(8),
  12483. Fval: uint16(73),
  12484. },
  12485. 415: {
  12486. Fbits: uint8(9),
  12487. Fval: uint16(243),
  12488. },
  12489. 416: {
  12490. Fop: uint8(16),
  12491. Fbits: uint8(7),
  12492. Fval: uint16(4),
  12493. },
  12494. 417: {
  12495. Fbits: uint8(8),
  12496. Fval: uint16(85),
  12497. },
  12498. 418: {
  12499. Fbits: uint8(8),
  12500. Fval: uint16(21),
  12501. },
  12502. 419: {
  12503. Fop: uint8(16),
  12504. Fbits: uint8(8),
  12505. Fval: uint16(258),
  12506. },
  12507. 420: {
  12508. Fop: uint8(19),
  12509. Fbits: uint8(7),
  12510. Fval: uint16(43),
  12511. },
  12512. 421: {
  12513. Fbits: uint8(8),
  12514. Fval: uint16(117),
  12515. },
  12516. 422: {
  12517. Fbits: uint8(8),
  12518. Fval: uint16(53),
  12519. },
  12520. 423: {
  12521. Fbits: uint8(9),
  12522. Fval: uint16(203),
  12523. },
  12524. 424: {
  12525. Fop: uint8(17),
  12526. Fbits: uint8(7),
  12527. Fval: uint16(13),
  12528. },
  12529. 425: {
  12530. Fbits: uint8(8),
  12531. Fval: uint16(101),
  12532. },
  12533. 426: {
  12534. Fbits: uint8(8),
  12535. Fval: uint16(37),
  12536. },
  12537. 427: {
  12538. Fbits: uint8(9),
  12539. Fval: uint16(171),
  12540. },
  12541. 428: {
  12542. Fbits: uint8(8),
  12543. Fval: uint16(5),
  12544. },
  12545. 429: {
  12546. Fbits: uint8(8),
  12547. Fval: uint16(133),
  12548. },
  12549. 430: {
  12550. Fbits: uint8(8),
  12551. Fval: uint16(69),
  12552. },
  12553. 431: {
  12554. Fbits: uint8(9),
  12555. Fval: uint16(235),
  12556. },
  12557. 432: {
  12558. Fop: uint8(16),
  12559. Fbits: uint8(7),
  12560. Fval: uint16(8),
  12561. },
  12562. 433: {
  12563. Fbits: uint8(8),
  12564. Fval: uint16(93),
  12565. },
  12566. 434: {
  12567. Fbits: uint8(8),
  12568. Fval: uint16(29),
  12569. },
  12570. 435: {
  12571. Fbits: uint8(9),
  12572. Fval: uint16(155),
  12573. },
  12574. 436: {
  12575. Fop: uint8(20),
  12576. Fbits: uint8(7),
  12577. Fval: uint16(83),
  12578. },
  12579. 437: {
  12580. Fbits: uint8(8),
  12581. Fval: uint16(125),
  12582. },
  12583. 438: {
  12584. Fbits: uint8(8),
  12585. Fval: uint16(61),
  12586. },
  12587. 439: {
  12588. Fbits: uint8(9),
  12589. Fval: uint16(219),
  12590. },
  12591. 440: {
  12592. Fop: uint8(18),
  12593. Fbits: uint8(7),
  12594. Fval: uint16(23),
  12595. },
  12596. 441: {
  12597. Fbits: uint8(8),
  12598. Fval: uint16(109),
  12599. },
  12600. 442: {
  12601. Fbits: uint8(8),
  12602. Fval: uint16(45),
  12603. },
  12604. 443: {
  12605. Fbits: uint8(9),
  12606. Fval: uint16(187),
  12607. },
  12608. 444: {
  12609. Fbits: uint8(8),
  12610. Fval: uint16(13),
  12611. },
  12612. 445: {
  12613. Fbits: uint8(8),
  12614. Fval: uint16(141),
  12615. },
  12616. 446: {
  12617. Fbits: uint8(8),
  12618. Fval: uint16(77),
  12619. },
  12620. 447: {
  12621. Fbits: uint8(9),
  12622. Fval: uint16(251),
  12623. },
  12624. 448: {
  12625. Fop: uint8(16),
  12626. Fbits: uint8(7),
  12627. Fval: uint16(3),
  12628. },
  12629. 449: {
  12630. Fbits: uint8(8),
  12631. Fval: uint16(83),
  12632. },
  12633. 450: {
  12634. Fbits: uint8(8),
  12635. Fval: uint16(19),
  12636. },
  12637. 451: {
  12638. Fop: uint8(21),
  12639. Fbits: uint8(8),
  12640. Fval: uint16(195),
  12641. },
  12642. 452: {
  12643. Fop: uint8(19),
  12644. Fbits: uint8(7),
  12645. Fval: uint16(35),
  12646. },
  12647. 453: {
  12648. Fbits: uint8(8),
  12649. Fval: uint16(115),
  12650. },
  12651. 454: {
  12652. Fbits: uint8(8),
  12653. Fval: uint16(51),
  12654. },
  12655. 455: {
  12656. Fbits: uint8(9),
  12657. Fval: uint16(199),
  12658. },
  12659. 456: {
  12660. Fop: uint8(17),
  12661. Fbits: uint8(7),
  12662. Fval: uint16(11),
  12663. },
  12664. 457: {
  12665. Fbits: uint8(8),
  12666. Fval: uint16(99),
  12667. },
  12668. 458: {
  12669. Fbits: uint8(8),
  12670. Fval: uint16(35),
  12671. },
  12672. 459: {
  12673. Fbits: uint8(9),
  12674. Fval: uint16(167),
  12675. },
  12676. 460: {
  12677. Fbits: uint8(8),
  12678. Fval: uint16(3),
  12679. },
  12680. 461: {
  12681. Fbits: uint8(8),
  12682. Fval: uint16(131),
  12683. },
  12684. 462: {
  12685. Fbits: uint8(8),
  12686. Fval: uint16(67),
  12687. },
  12688. 463: {
  12689. Fbits: uint8(9),
  12690. Fval: uint16(231),
  12691. },
  12692. 464: {
  12693. Fop: uint8(16),
  12694. Fbits: uint8(7),
  12695. Fval: uint16(7),
  12696. },
  12697. 465: {
  12698. Fbits: uint8(8),
  12699. Fval: uint16(91),
  12700. },
  12701. 466: {
  12702. Fbits: uint8(8),
  12703. Fval: uint16(27),
  12704. },
  12705. 467: {
  12706. Fbits: uint8(9),
  12707. Fval: uint16(151),
  12708. },
  12709. 468: {
  12710. Fop: uint8(20),
  12711. Fbits: uint8(7),
  12712. Fval: uint16(67),
  12713. },
  12714. 469: {
  12715. Fbits: uint8(8),
  12716. Fval: uint16(123),
  12717. },
  12718. 470: {
  12719. Fbits: uint8(8),
  12720. Fval: uint16(59),
  12721. },
  12722. 471: {
  12723. Fbits: uint8(9),
  12724. Fval: uint16(215),
  12725. },
  12726. 472: {
  12727. Fop: uint8(18),
  12728. Fbits: uint8(7),
  12729. Fval: uint16(19),
  12730. },
  12731. 473: {
  12732. Fbits: uint8(8),
  12733. Fval: uint16(107),
  12734. },
  12735. 474: {
  12736. Fbits: uint8(8),
  12737. Fval: uint16(43),
  12738. },
  12739. 475: {
  12740. Fbits: uint8(9),
  12741. Fval: uint16(183),
  12742. },
  12743. 476: {
  12744. Fbits: uint8(8),
  12745. Fval: uint16(11),
  12746. },
  12747. 477: {
  12748. Fbits: uint8(8),
  12749. Fval: uint16(139),
  12750. },
  12751. 478: {
  12752. Fbits: uint8(8),
  12753. Fval: uint16(75),
  12754. },
  12755. 479: {
  12756. Fbits: uint8(9),
  12757. Fval: uint16(247),
  12758. },
  12759. 480: {
  12760. Fop: uint8(16),
  12761. Fbits: uint8(7),
  12762. Fval: uint16(5),
  12763. },
  12764. 481: {
  12765. Fbits: uint8(8),
  12766. Fval: uint16(87),
  12767. },
  12768. 482: {
  12769. Fbits: uint8(8),
  12770. Fval: uint16(23),
  12771. },
  12772. 483: {
  12773. Fop: uint8(64),
  12774. Fbits: uint8(8),
  12775. },
  12776. 484: {
  12777. Fop: uint8(19),
  12778. Fbits: uint8(7),
  12779. Fval: uint16(51),
  12780. },
  12781. 485: {
  12782. Fbits: uint8(8),
  12783. Fval: uint16(119),
  12784. },
  12785. 486: {
  12786. Fbits: uint8(8),
  12787. Fval: uint16(55),
  12788. },
  12789. 487: {
  12790. Fbits: uint8(9),
  12791. Fval: uint16(207),
  12792. },
  12793. 488: {
  12794. Fop: uint8(17),
  12795. Fbits: uint8(7),
  12796. Fval: uint16(15),
  12797. },
  12798. 489: {
  12799. Fbits: uint8(8),
  12800. Fval: uint16(103),
  12801. },
  12802. 490: {
  12803. Fbits: uint8(8),
  12804. Fval: uint16(39),
  12805. },
  12806. 491: {
  12807. Fbits: uint8(9),
  12808. Fval: uint16(175),
  12809. },
  12810. 492: {
  12811. Fbits: uint8(8),
  12812. Fval: uint16(7),
  12813. },
  12814. 493: {
  12815. Fbits: uint8(8),
  12816. Fval: uint16(135),
  12817. },
  12818. 494: {
  12819. Fbits: uint8(8),
  12820. Fval: uint16(71),
  12821. },
  12822. 495: {
  12823. Fbits: uint8(9),
  12824. Fval: uint16(239),
  12825. },
  12826. 496: {
  12827. Fop: uint8(16),
  12828. Fbits: uint8(7),
  12829. Fval: uint16(9),
  12830. },
  12831. 497: {
  12832. Fbits: uint8(8),
  12833. Fval: uint16(95),
  12834. },
  12835. 498: {
  12836. Fbits: uint8(8),
  12837. Fval: uint16(31),
  12838. },
  12839. 499: {
  12840. Fbits: uint8(9),
  12841. Fval: uint16(159),
  12842. },
  12843. 500: {
  12844. Fop: uint8(20),
  12845. Fbits: uint8(7),
  12846. Fval: uint16(99),
  12847. },
  12848. 501: {
  12849. Fbits: uint8(8),
  12850. Fval: uint16(127),
  12851. },
  12852. 502: {
  12853. Fbits: uint8(8),
  12854. Fval: uint16(63),
  12855. },
  12856. 503: {
  12857. Fbits: uint8(9),
  12858. Fval: uint16(223),
  12859. },
  12860. 504: {
  12861. Fop: uint8(18),
  12862. Fbits: uint8(7),
  12863. Fval: uint16(27),
  12864. },
  12865. 505: {
  12866. Fbits: uint8(8),
  12867. Fval: uint16(111),
  12868. },
  12869. 506: {
  12870. Fbits: uint8(8),
  12871. Fval: uint16(47),
  12872. },
  12873. 507: {
  12874. Fbits: uint8(9),
  12875. Fval: uint16(191),
  12876. },
  12877. 508: {
  12878. Fbits: uint8(8),
  12879. Fval: uint16(15),
  12880. },
  12881. 509: {
  12882. Fbits: uint8(8),
  12883. Fval: uint16(143),
  12884. },
  12885. 510: {
  12886. Fbits: uint8(8),
  12887. Fval: uint16(79),
  12888. },
  12889. 511: {
  12890. Fbits: uint8(9),
  12891. Fval: uint16(255),
  12892. },
  12893. }
  12894. var _distfix1 = [32]Tcode{
  12895. 0: {
  12896. Fop: uint8(16),
  12897. Fbits: uint8(5),
  12898. Fval: uint16(1),
  12899. },
  12900. 1: {
  12901. Fop: uint8(23),
  12902. Fbits: uint8(5),
  12903. Fval: uint16(257),
  12904. },
  12905. 2: {
  12906. Fop: uint8(19),
  12907. Fbits: uint8(5),
  12908. Fval: uint16(17),
  12909. },
  12910. 3: {
  12911. Fop: uint8(27),
  12912. Fbits: uint8(5),
  12913. Fval: uint16(4097),
  12914. },
  12915. 4: {
  12916. Fop: uint8(17),
  12917. Fbits: uint8(5),
  12918. Fval: uint16(5),
  12919. },
  12920. 5: {
  12921. Fop: uint8(25),
  12922. Fbits: uint8(5),
  12923. Fval: uint16(1025),
  12924. },
  12925. 6: {
  12926. Fop: uint8(21),
  12927. Fbits: uint8(5),
  12928. Fval: uint16(65),
  12929. },
  12930. 7: {
  12931. Fop: uint8(29),
  12932. Fbits: uint8(5),
  12933. Fval: uint16(16385),
  12934. },
  12935. 8: {
  12936. Fop: uint8(16),
  12937. Fbits: uint8(5),
  12938. Fval: uint16(3),
  12939. },
  12940. 9: {
  12941. Fop: uint8(24),
  12942. Fbits: uint8(5),
  12943. Fval: uint16(513),
  12944. },
  12945. 10: {
  12946. Fop: uint8(20),
  12947. Fbits: uint8(5),
  12948. Fval: uint16(33),
  12949. },
  12950. 11: {
  12951. Fop: uint8(28),
  12952. Fbits: uint8(5),
  12953. Fval: uint16(8193),
  12954. },
  12955. 12: {
  12956. Fop: uint8(18),
  12957. Fbits: uint8(5),
  12958. Fval: uint16(9),
  12959. },
  12960. 13: {
  12961. Fop: uint8(26),
  12962. Fbits: uint8(5),
  12963. Fval: uint16(2049),
  12964. },
  12965. 14: {
  12966. Fop: uint8(22),
  12967. Fbits: uint8(5),
  12968. Fval: uint16(129),
  12969. },
  12970. 15: {
  12971. Fop: uint8(64),
  12972. Fbits: uint8(5),
  12973. },
  12974. 16: {
  12975. Fop: uint8(16),
  12976. Fbits: uint8(5),
  12977. Fval: uint16(2),
  12978. },
  12979. 17: {
  12980. Fop: uint8(23),
  12981. Fbits: uint8(5),
  12982. Fval: uint16(385),
  12983. },
  12984. 18: {
  12985. Fop: uint8(19),
  12986. Fbits: uint8(5),
  12987. Fval: uint16(25),
  12988. },
  12989. 19: {
  12990. Fop: uint8(27),
  12991. Fbits: uint8(5),
  12992. Fval: uint16(6145),
  12993. },
  12994. 20: {
  12995. Fop: uint8(17),
  12996. Fbits: uint8(5),
  12997. Fval: uint16(7),
  12998. },
  12999. 21: {
  13000. Fop: uint8(25),
  13001. Fbits: uint8(5),
  13002. Fval: uint16(1537),
  13003. },
  13004. 22: {
  13005. Fop: uint8(21),
  13006. Fbits: uint8(5),
  13007. Fval: uint16(97),
  13008. },
  13009. 23: {
  13010. Fop: uint8(29),
  13011. Fbits: uint8(5),
  13012. Fval: uint16(24577),
  13013. },
  13014. 24: {
  13015. Fop: uint8(16),
  13016. Fbits: uint8(5),
  13017. Fval: uint16(4),
  13018. },
  13019. 25: {
  13020. Fop: uint8(24),
  13021. Fbits: uint8(5),
  13022. Fval: uint16(769),
  13023. },
  13024. 26: {
  13025. Fop: uint8(20),
  13026. Fbits: uint8(5),
  13027. Fval: uint16(49),
  13028. },
  13029. 27: {
  13030. Fop: uint8(28),
  13031. Fbits: uint8(5),
  13032. Fval: uint16(12289),
  13033. },
  13034. 28: {
  13035. Fop: uint8(18),
  13036. Fbits: uint8(5),
  13037. Fval: uint16(13),
  13038. },
  13039. 29: {
  13040. Fop: uint8(26),
  13041. Fbits: uint8(5),
  13042. Fval: uint16(3073),
  13043. },
  13044. 30: {
  13045. Fop: uint8(22),
  13046. Fbits: uint8(5),
  13047. Fval: uint16(193),
  13048. },
  13049. 31: {
  13050. Fop: uint8(64),
  13051. Fbits: uint8(5),
  13052. },
  13053. }
  13054. // C documentation
  13055. //
  13056. // /*
  13057. // Update the window with the last wsize (normally 32K) bytes written before
  13058. // returning. If window does not exist yet, create it. This is only called
  13059. // when a window is already in use, or when output has been written during this
  13060. // inflate call, but the end of the deflate stream has not been reached yet.
  13061. // It is also called to create a window for dictionary data when a dictionary
  13062. // is loaded.
  13063. //
  13064. // Providing output buffers larger than 32K to inflate() should provide a speed
  13065. // advantage, since only the last 32K of output is copied to the sliding window
  13066. // upon return from inflate(), and since all distances after the first 32K of
  13067. // output will fall in the output data, making match copies simpler and faster.
  13068. // The advantage may be dependent on the size of the processor's data caches.
  13069. // */
  13070. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  13071. var dist uint32
  13072. var state uintptr
  13073. _, _ = dist, state
  13074. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13075. /* if it hasn't been done already, allocate space for the window */
  13076. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  13077. (*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, libc.Uint32FromInt64(1))
  13078. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  13079. return int32(1)
  13080. }
  13081. }
  13082. /* if window not in use yet, initialize */
  13083. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  13084. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  13085. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13086. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  13087. }
  13088. /* copy state->wsize or less output bytes into the circular window */
  13089. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13090. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  13091. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13092. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13093. } else {
  13094. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  13095. if dist > copy1 {
  13096. dist = copy1
  13097. }
  13098. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), dist)
  13099. copy1 -= dist
  13100. if copy1 != 0 {
  13101. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), copy1)
  13102. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  13103. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13104. } else {
  13105. *(*uint32)(unsafe.Pointer(state + 52)) += dist
  13106. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13107. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13108. }
  13109. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13110. *(*uint32)(unsafe.Pointer(state + 48)) += dist
  13111. }
  13112. }
  13113. }
  13114. return 0
  13115. }
  13116. /* Macros for inflate(): */
  13117. /* check function to use adler32() for zlib or crc32() for gzip */
  13118. /* check macros for header crc */
  13119. /* Load registers with state in inflate() for speed */
  13120. /* Restore state from registers in inflate() */
  13121. /* Clear the input bit accumulator */
  13122. /* Get a byte of input into the bit accumulator, or return from inflate()
  13123. if there is no input available. */
  13124. /* Assure that there are at least n bits in the bit accumulator. If there is
  13125. not enough available input to do that, then return from inflate(). */
  13126. /* Return the low n bits of the bit accumulator (n < 16) */
  13127. /* Remove n bits from the bit accumulator */
  13128. /* Remove zero to seven bits as needed to go to a byte boundary */
  13129. /*
  13130. inflate() uses a state machine to process as much input data and generate as
  13131. much output data as possible before returning. The state machine is
  13132. structured roughly as follows:
  13133. for (;;) switch (state) {
  13134. ...
  13135. case STATEn:
  13136. if (not enough input data or output space to make progress)
  13137. return;
  13138. ... make progress ...
  13139. state = STATEm;
  13140. break;
  13141. ...
  13142. }
  13143. so when inflate() is called again, the same case is attempted again, and
  13144. if the appropriate resources are provided, the machine proceeds to the
  13145. next state. The NEEDBITS() macro is usually the way the state evaluates
  13146. whether it can proceed or should return. NEEDBITS() does the return if
  13147. the requested bits are not available. The typical use of the BITS macros
  13148. is:
  13149. NEEDBITS(n);
  13150. ... do something with BITS(n) ...
  13151. DROPBITS(n);
  13152. where NEEDBITS(n) either returns from inflate() if there isn't enough
  13153. input left to load n bits into the accumulator, or it continues. BITS(n)
  13154. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  13155. the low n bits off the accumulator. INITBITS() clears the accumulator
  13156. and sets the number of available bits to zero. BYTEBITS() discards just
  13157. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  13158. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  13159. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  13160. if there is no input available. The decoding of variable length codes uses
  13161. PULLBYTE() directly in order to pull just enough bytes to decode the next
  13162. code, and no more.
  13163. Some states loop until they get enough input, making sure that enough
  13164. state information is maintained to continue the loop where it left off
  13165. if NEEDBITS() returns in the loop. For example, want, need, and keep
  13166. would all have to actually be part of the saved state in case NEEDBITS()
  13167. returns:
  13168. case STATEw:
  13169. while (want < need) {
  13170. NEEDBITS(n);
  13171. keep[want++] = BITS(n);
  13172. DROPBITS(n);
  13173. }
  13174. state = STATEx;
  13175. case STATEx:
  13176. As shown above, if the next state is also the next case, then the break
  13177. is omitted.
  13178. A state may also return if there is not enough output space available to
  13179. complete that state. Those states are copying stored data, writing a
  13180. literal byte, and copying a matching string.
  13181. When returning, a "goto inf_leave" is used to update the total counters,
  13182. update the check value, and determine whether any progress has been made
  13183. during that inflate() call in order to return the proper return code.
  13184. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  13185. When there is a window, goto inf_leave will update the window with the last
  13186. output written. If a goto inf_leave occurs in the middle of decompression
  13187. and there is no window currently, goto inf_leave will create one and copy
  13188. output to the window for the next call of inflate().
  13189. In this implementation, the flush parameter of inflate() only affects the
  13190. return code (per zlib.h). inflate() always writes as much as possible to
  13191. strm->next_out, given the space available and the provided input--the effect
  13192. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  13193. the allocation of and copying into a sliding window until necessary, which
  13194. provides the effect documented in zlib.h for Z_FINISH when the entire input
  13195. stream available. So the only thing the flush parameter actually does is:
  13196. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  13197. will return Z_BUF_ERROR if it has not reached the end of the stream.
  13198. */
  13199. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  13200. bp := tls.Alloc(16)
  13201. defer tls.Free(16)
  13202. var bits, copy1, have, hold, in, left, len1, out, v101, v102, v37, v46, v48, v49, v50, v52, v53, v56, v58, v59, v64, v66, v70, v75, v76, v90, v96, v97, v98 uint32
  13203. 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
  13204. var here, last Tcode
  13205. var ret, v103, v104, v105, v38 int32
  13206. var v47, v99 bool
  13207. var _ /* hbuf at bp+0 */ [4]uint8
  13208. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  13209. 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) {
  13210. return -int32(2)
  13211. }
  13212. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13213. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13214. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13215. } /* skip check */
  13216. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13217. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13218. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13219. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13220. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13221. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13222. in = have
  13223. out = left
  13224. ret = m_Z_OK
  13225. for {
  13226. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  13227. case int32(_HEAD):
  13228. goto _2
  13229. case int32(_FLAGS):
  13230. goto _3
  13231. case int32(_TIME):
  13232. goto _4
  13233. case int32(_OS):
  13234. goto _5
  13235. case int32(_EXLEN):
  13236. goto _6
  13237. case int32(_EXTRA):
  13238. goto _7
  13239. case int32(_NAME):
  13240. goto _8
  13241. case int32(_COMMENT):
  13242. goto _9
  13243. case int32(_HCRC):
  13244. goto _10
  13245. case int32(_DICTID):
  13246. goto _11
  13247. case int32(_DICT):
  13248. goto _12
  13249. case int32(_TYPE):
  13250. goto _13
  13251. case int32(_TYPEDO):
  13252. goto _14
  13253. case int32(_STORED):
  13254. goto _15
  13255. case int32(_COPY_):
  13256. goto _16
  13257. case int32(_COPY):
  13258. goto _17
  13259. case int32(_TABLE):
  13260. goto _18
  13261. case int32(_LENLENS):
  13262. goto _19
  13263. case int32(_CODELENS):
  13264. goto _20
  13265. case int32(_LEN_):
  13266. goto _21
  13267. case int32(_LEN):
  13268. goto _22
  13269. case int32(_LENEXT):
  13270. goto _23
  13271. case int32(_DIST):
  13272. goto _24
  13273. case int32(_DISTEXT):
  13274. goto _25
  13275. case int32(_MATCH):
  13276. goto _26
  13277. case int32(_LIT):
  13278. goto _27
  13279. case int32(_CHECK):
  13280. goto _28
  13281. case int32(_LENGTH):
  13282. goto _29
  13283. case int32(_DONE):
  13284. goto _30
  13285. case int32(_BAD):
  13286. goto _31
  13287. case int32(_MEM):
  13288. goto _32
  13289. default:
  13290. goto _33
  13291. case int32(_SYNC):
  13292. goto _34
  13293. }
  13294. goto _35
  13295. _2:
  13296. ;
  13297. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  13298. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13299. goto _35
  13300. }
  13301. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13302. if have == uint32(0) {
  13303. goto inf_leave
  13304. }
  13305. have--
  13306. v36 = next
  13307. next++
  13308. hold += uint32(*(*uint8)(unsafe.Pointer(v36))) << bits
  13309. bits += uint32(8)
  13310. }
  13311. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint32(0x8b1f) { /* gzip header */
  13312. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13313. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  13314. }
  13315. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  13316. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13317. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13318. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13319. hold = uint32(0)
  13320. bits = uint32(0)
  13321. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  13322. goto _35
  13323. }
  13324. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13325. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  13326. }
  13327. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint32(hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint32(31) != 0 {
  13328. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 308
  13329. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13330. goto _35
  13331. }
  13332. if hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  13333. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13334. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13335. goto _35
  13336. }
  13337. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13338. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13339. len1 = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  13340. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13341. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  13342. }
  13343. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  13344. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 358
  13345. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13346. goto _35
  13347. }
  13348. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  13349. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  13350. v37 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  13351. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  13352. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  13353. if hold&uint32(0x200) != 0 {
  13354. v38 = int32(_DICTID)
  13355. } else {
  13356. v38 = int32(_TYPE)
  13357. }
  13358. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  13359. hold = uint32(0)
  13360. bits = uint32(0)
  13361. goto _35
  13362. _3:
  13363. ;
  13364. _41:
  13365. ;
  13366. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13367. if have == uint32(0) {
  13368. goto inf_leave
  13369. }
  13370. have--
  13371. v42 = next
  13372. next++
  13373. hold += uint32(*(*uint8)(unsafe.Pointer(v42))) << bits
  13374. bits += uint32(8)
  13375. }
  13376. goto _40
  13377. _40:
  13378. ;
  13379. if 0 != 0 {
  13380. goto _41
  13381. }
  13382. goto _39
  13383. _39:
  13384. ;
  13385. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = libc.Int32FromUint32(hold)
  13386. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  13387. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13388. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13389. goto _35
  13390. }
  13391. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  13392. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 378
  13393. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13394. goto _35
  13395. }
  13396. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13397. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = libc.Int32FromUint32(hold >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(1))
  13398. }
  13399. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13400. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13401. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13402. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13403. }
  13404. hold = uint32(0)
  13405. bits = uint32(0)
  13406. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  13407. /* fallthrough */
  13408. _4:
  13409. ;
  13410. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13411. if have == uint32(0) {
  13412. goto inf_leave
  13413. }
  13414. have--
  13415. v43 = next
  13416. next++
  13417. hold += uint32(*(*uint8)(unsafe.Pointer(v43))) << bits
  13418. bits += uint32(8)
  13419. }
  13420. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13421. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  13422. }
  13423. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13424. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13425. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13426. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  13427. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  13428. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  13429. }
  13430. hold = uint32(0)
  13431. bits = uint32(0)
  13432. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  13433. /* fallthrough */
  13434. _5:
  13435. ;
  13436. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13437. if have == uint32(0) {
  13438. goto inf_leave
  13439. }
  13440. have--
  13441. v44 = next
  13442. next++
  13443. hold += uint32(*(*uint8)(unsafe.Pointer(v44))) << bits
  13444. bits += uint32(8)
  13445. }
  13446. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13447. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = libc.Int32FromUint32(hold & libc.Uint32FromInt32(0xff))
  13448. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = libc.Int32FromUint32(hold >> libc.Int32FromInt32(8))
  13449. }
  13450. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13451. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13452. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13453. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13454. }
  13455. hold = uint32(0)
  13456. bits = uint32(0)
  13457. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  13458. /* fallthrough */
  13459. _6:
  13460. ;
  13461. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13462. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13463. if have == uint32(0) {
  13464. goto inf_leave
  13465. }
  13466. have--
  13467. v45 = next
  13468. next++
  13469. hold += uint32(*(*uint8)(unsafe.Pointer(v45))) << bits
  13470. bits += uint32(8)
  13471. }
  13472. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold
  13473. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13474. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = hold
  13475. }
  13476. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13477. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13478. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13479. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13480. }
  13481. hold = uint32(0)
  13482. bits = uint32(0)
  13483. } else {
  13484. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13485. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  13486. }
  13487. }
  13488. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  13489. /* fallthrough */
  13490. _7:
  13491. ;
  13492. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13493. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13494. if copy1 > have {
  13495. copy1 = have
  13496. }
  13497. if copy1 != 0 {
  13498. 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 {
  13499. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13500. len1 = v46
  13501. }
  13502. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13503. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13504. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  13505. } else {
  13506. v48 = copy1
  13507. }
  13508. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, v48)
  13509. }
  13510. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13511. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13512. }
  13513. have -= copy1
  13514. next += uintptr(copy1)
  13515. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  13516. }
  13517. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  13518. goto inf_leave
  13519. }
  13520. }
  13521. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13522. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  13523. /* fallthrough */
  13524. _8:
  13525. ;
  13526. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  13527. if have == uint32(0) {
  13528. goto inf_leave
  13529. }
  13530. copy1 = uint32(0)
  13531. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13532. v49 = copy1
  13533. copy1++
  13534. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  13535. 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 {
  13536. v51 = state + 68
  13537. v50 = *(*uint32)(unsafe.Pointer(v51))
  13538. *(*uint32)(unsafe.Pointer(v51))++
  13539. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  13540. }
  13541. }
  13542. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13543. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13544. }
  13545. have -= copy1
  13546. next += uintptr(copy1)
  13547. if len1 != 0 {
  13548. goto inf_leave
  13549. }
  13550. } else {
  13551. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13552. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  13553. }
  13554. }
  13555. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13556. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  13557. /* fallthrough */
  13558. _9:
  13559. ;
  13560. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  13561. if have == uint32(0) {
  13562. goto inf_leave
  13563. }
  13564. copy1 = uint32(0)
  13565. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13566. v52 = copy1
  13567. copy1++
  13568. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  13569. 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 {
  13570. v54 = state + 68
  13571. v53 = *(*uint32)(unsafe.Pointer(v54))
  13572. *(*uint32)(unsafe.Pointer(v54))++
  13573. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  13574. }
  13575. }
  13576. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13577. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13578. }
  13579. have -= copy1
  13580. next += uintptr(copy1)
  13581. if len1 != 0 {
  13582. goto inf_leave
  13583. }
  13584. } else {
  13585. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13586. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  13587. }
  13588. }
  13589. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  13590. /* fallthrough */
  13591. _10:
  13592. ;
  13593. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  13594. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13595. if have == uint32(0) {
  13596. goto inf_leave
  13597. }
  13598. have--
  13599. v55 = next
  13600. next++
  13601. hold += uint32(*(*uint8)(unsafe.Pointer(v55))) << bits
  13602. bits += uint32(8)
  13603. }
  13604. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint32(0xffff) {
  13605. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 403
  13606. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13607. goto _35
  13608. }
  13609. hold = uint32(0)
  13610. bits = uint32(0)
  13611. }
  13612. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13613. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  13614. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  13615. }
  13616. v56 = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  13617. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  13618. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  13619. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13620. goto _35
  13621. _11:
  13622. ;
  13623. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13624. if have == uint32(0) {
  13625. goto inf_leave
  13626. }
  13627. have--
  13628. v57 = next
  13629. next++
  13630. hold += uint32(*(*uint8)(unsafe.Pointer(v57))) << bits
  13631. bits += uint32(8)
  13632. }
  13633. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint32FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xff00) + hold&libc.Uint32FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint32FromInt32(0xff)<<libc.Int32FromInt32(24)
  13634. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  13635. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  13636. hold = uint32(0)
  13637. bits = uint32(0)
  13638. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  13639. /* fallthrough */
  13640. _12:
  13641. ;
  13642. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  13643. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13644. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13645. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13646. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13647. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13648. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13649. return int32(m_Z_NEED_DICT)
  13650. }
  13651. v59 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  13652. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  13653. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  13654. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13655. /* fallthrough */
  13656. _13:
  13657. ;
  13658. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  13659. goto inf_leave
  13660. }
  13661. /* fallthrough */
  13662. _14:
  13663. ;
  13664. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13665. hold >>= bits & uint32(7)
  13666. bits -= bits & uint32(7)
  13667. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  13668. goto _35
  13669. }
  13670. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13671. if have == uint32(0) {
  13672. goto inf_leave
  13673. }
  13674. have--
  13675. v60 = next
  13676. next++
  13677. hold += uint32(*(*uint8)(unsafe.Pointer(v60))) << bits
  13678. bits += uint32(8)
  13679. }
  13680. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  13681. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  13682. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  13683. switch hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  13684. case uint32(0): /* stored block */
  13685. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  13686. case uint32(1): /* fixed block */
  13687. _fixedtables1(tls, state)
  13688. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  13689. if flush == int32(m_Z_TREES) {
  13690. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13691. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13692. goto inf_leave
  13693. }
  13694. case uint32(2): /* dynamic block */
  13695. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  13696. case uint32(3):
  13697. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  13698. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13699. }
  13700. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13701. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13702. goto _35
  13703. _15:
  13704. ;
  13705. hold >>= bits & uint32(7)
  13706. bits -= bits & uint32(7) /* go to byte boundary */
  13707. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13708. if have == uint32(0) {
  13709. goto inf_leave
  13710. }
  13711. have--
  13712. v61 = next
  13713. next++
  13714. hold += uint32(*(*uint8)(unsafe.Pointer(v61))) << bits
  13715. bits += uint32(8)
  13716. }
  13717. if hold&uint32(0xffff) != hold>>int32(16)^uint32(0xffff) {
  13718. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  13719. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13720. goto _35
  13721. }
  13722. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold & uint32(0xffff)
  13723. hold = uint32(0)
  13724. bits = uint32(0)
  13725. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  13726. if flush == int32(m_Z_TREES) {
  13727. goto inf_leave
  13728. }
  13729. /* fallthrough */
  13730. _16:
  13731. ;
  13732. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  13733. /* fallthrough */
  13734. _17:
  13735. ;
  13736. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13737. if copy1 != 0 {
  13738. if copy1 > have {
  13739. copy1 = have
  13740. }
  13741. if copy1 > left {
  13742. copy1 = left
  13743. }
  13744. if copy1 == uint32(0) {
  13745. goto inf_leave
  13746. }
  13747. libc.Xmemcpy(tls, put, next, copy1)
  13748. have -= copy1
  13749. next += uintptr(copy1)
  13750. left -= copy1
  13751. put += uintptr(copy1)
  13752. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  13753. goto _35
  13754. }
  13755. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13756. goto _35
  13757. _18:
  13758. ;
  13759. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  13760. if have == uint32(0) {
  13761. goto inf_leave
  13762. }
  13763. have--
  13764. v62 = next
  13765. next++
  13766. hold += uint32(*(*uint8)(unsafe.Pointer(v62))) << bits
  13767. bits += uint32(8)
  13768. }
  13769. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  13770. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13771. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13772. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  13773. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13774. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13775. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  13776. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13777. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13778. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  13779. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  13780. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13781. goto _35
  13782. }
  13783. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13784. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  13785. /* fallthrough */
  13786. _19:
  13787. ;
  13788. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  13789. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13790. if have == uint32(0) {
  13791. goto inf_leave
  13792. }
  13793. have--
  13794. v63 = next
  13795. next++
  13796. hold += uint32(*(*uint8)(unsafe.Pointer(v63))) << bits
  13797. bits += uint32(8)
  13798. }
  13799. v65 = state + 108
  13800. v64 = *(*uint32)(unsafe.Pointer(v65))
  13801. *(*uint32)(unsafe.Pointer(v65))++
  13802. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order1[v64])*2)) = uint16(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  13803. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13804. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13805. }
  13806. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  13807. v67 = state + 108
  13808. v66 = *(*uint32)(unsafe.Pointer(v67))
  13809. *(*uint32)(unsafe.Pointer(v67))++
  13810. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(_order1[v66])*2)) = uint16(0)
  13811. }
  13812. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  13813. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13814. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  13815. ret = Xinflate_table(tls, int32(_CODES), state+116, uint32(19), state+112, state+88, state+756)
  13816. if ret != 0 {
  13817. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  13818. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13819. goto _35
  13820. }
  13821. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13822. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  13823. /* fallthrough */
  13824. _20:
  13825. ;
  13826. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13827. for {
  13828. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13829. if uint32(here.Fbits) <= bits {
  13830. break
  13831. }
  13832. if have == uint32(0) {
  13833. goto inf_leave
  13834. }
  13835. have--
  13836. v69 = next
  13837. next++
  13838. hold += uint32(*(*uint8)(unsafe.Pointer(v69))) << bits
  13839. bits += uint32(8)
  13840. goto _68
  13841. _68:
  13842. }
  13843. if libc.Int32FromUint16(here.Fval) < int32(16) {
  13844. hold >>= uint32(here.Fbits)
  13845. bits -= uint32(here.Fbits)
  13846. v71 = state + 108
  13847. v70 = *(*uint32)(unsafe.Pointer(v71))
  13848. *(*uint32)(unsafe.Pointer(v71))++
  13849. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v70)*2)) = here.Fval
  13850. } else {
  13851. if libc.Int32FromUint16(here.Fval) == int32(16) {
  13852. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  13853. if have == uint32(0) {
  13854. goto inf_leave
  13855. }
  13856. have--
  13857. v72 = next
  13858. next++
  13859. hold += uint32(*(*uint8)(unsafe.Pointer(v72))) << bits
  13860. bits += uint32(8)
  13861. }
  13862. hold >>= uint32(here.Fbits)
  13863. bits -= uint32(here.Fbits)
  13864. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  13865. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13866. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13867. break
  13868. }
  13869. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 116 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  13870. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  13871. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13872. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13873. } else {
  13874. if libc.Int32FromUint16(here.Fval) == int32(17) {
  13875. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  13876. if have == uint32(0) {
  13877. goto inf_leave
  13878. }
  13879. have--
  13880. v73 = next
  13881. next++
  13882. hold += uint32(*(*uint8)(unsafe.Pointer(v73))) << bits
  13883. bits += uint32(8)
  13884. }
  13885. hold >>= uint32(here.Fbits)
  13886. bits -= uint32(here.Fbits)
  13887. len1 = uint32(0)
  13888. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  13889. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13890. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13891. } else {
  13892. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  13893. if have == uint32(0) {
  13894. goto inf_leave
  13895. }
  13896. have--
  13897. v74 = next
  13898. next++
  13899. hold += uint32(*(*uint8)(unsafe.Pointer(v74))) << bits
  13900. bits += uint32(8)
  13901. }
  13902. hold >>= uint32(here.Fbits)
  13903. bits -= uint32(here.Fbits)
  13904. len1 = uint32(0)
  13905. copy1 = uint32(11) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  13906. hold >>= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  13907. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  13908. }
  13909. }
  13910. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13911. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13912. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13913. break
  13914. }
  13915. for {
  13916. v75 = copy1
  13917. copy1--
  13918. if !(v75 != 0) {
  13919. break
  13920. }
  13921. v77 = state + 108
  13922. v76 = *(*uint32)(unsafe.Pointer(v77))
  13923. *(*uint32)(unsafe.Pointer(v77))++
  13924. *(*uint16)(unsafe.Pointer(state + 116 + uintptr(v76)*2)) = uint16(len1)
  13925. }
  13926. }
  13927. }
  13928. /* handle error breaks in while */
  13929. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  13930. goto _35
  13931. }
  13932. /* check for end-of-block code (better have one) */
  13933. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 116 + 256*2))) == 0 {
  13934. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  13935. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13936. goto _35
  13937. }
  13938. /* build code tables -- note: do not change the lenbits or distbits
  13939. values here (9 and 6) without reading the comments in inftrees.h
  13940. concerning the ENOUGH constants, which depend on those values */
  13941. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1332
  13942. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13943. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  13944. ret = Xinflate_table(tls, int32(_LENS), state+116, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+112, state+88, state+756)
  13945. if ret != 0 {
  13946. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  13947. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13948. goto _35
  13949. }
  13950. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13951. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  13952. ret = Xinflate_table(tls, int32(_DISTS), state+116+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+112, state+92, state+756)
  13953. if ret != 0 {
  13954. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  13955. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13956. goto _35
  13957. }
  13958. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  13959. if flush == int32(m_Z_TREES) {
  13960. goto inf_leave
  13961. }
  13962. /* fallthrough */
  13963. _21:
  13964. ;
  13965. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  13966. /* fallthrough */
  13967. _22:
  13968. ;
  13969. if have >= uint32(6) && left >= uint32(258) {
  13970. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13971. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13972. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13973. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13974. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13975. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13976. Xinflate_fast(tls, strm, out)
  13977. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13978. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13979. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13980. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13981. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13982. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13983. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13984. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13985. }
  13986. goto _35
  13987. }
  13988. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  13989. for {
  13990. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13991. if uint32(here.Fbits) <= bits {
  13992. break
  13993. }
  13994. if have == uint32(0) {
  13995. goto inf_leave
  13996. }
  13997. have--
  13998. v79 = next
  13999. next++
  14000. hold += uint32(*(*uint8)(unsafe.Pointer(v79))) << bits
  14001. bits += uint32(8)
  14002. goto _78
  14003. _78:
  14004. }
  14005. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  14006. last = here
  14007. for {
  14008. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  14009. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  14010. break
  14011. }
  14012. if have == uint32(0) {
  14013. goto inf_leave
  14014. }
  14015. have--
  14016. v81 = next
  14017. next++
  14018. hold += uint32(*(*uint8)(unsafe.Pointer(v81))) << bits
  14019. bits += uint32(8)
  14020. goto _80
  14021. _80:
  14022. }
  14023. hold >>= uint32(last.Fbits)
  14024. bits -= uint32(last.Fbits)
  14025. *(*int32)(unsafe.Pointer(state + 7112)) += libc.Int32FromUint8(last.Fbits)
  14026. }
  14027. hold >>= uint32(here.Fbits)
  14028. bits -= uint32(here.Fbits)
  14029. *(*int32)(unsafe.Pointer(state + 7112)) += libc.Int32FromUint8(here.Fbits)
  14030. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  14031. if libc.Int32FromUint8(here.Fop) == 0 {
  14032. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  14033. goto _35
  14034. }
  14035. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  14036. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  14037. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14038. goto _35
  14039. }
  14040. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  14041. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  14042. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14043. goto _35
  14044. }
  14045. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  14046. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  14047. /* fallthrough */
  14048. _23:
  14049. ;
  14050. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  14051. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  14052. if have == uint32(0) {
  14053. goto inf_leave
  14054. }
  14055. have--
  14056. v82 = next
  14057. next++
  14058. hold += uint32(*(*uint8)(unsafe.Pointer(v82))) << bits
  14059. bits += uint32(8)
  14060. }
  14061. *(*uint32)(unsafe.Pointer(state + 68)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  14062. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14063. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14064. p83 = state + 7112
  14065. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14066. }
  14067. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14068. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  14069. /* fallthrough */
  14070. _24:
  14071. ;
  14072. for {
  14073. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  14074. if uint32(here.Fbits) <= bits {
  14075. break
  14076. }
  14077. if have == uint32(0) {
  14078. goto inf_leave
  14079. }
  14080. have--
  14081. v85 = next
  14082. next++
  14083. hold += uint32(*(*uint8)(unsafe.Pointer(v85))) << bits
  14084. bits += uint32(8)
  14085. goto _84
  14086. _84:
  14087. }
  14088. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  14089. last = here
  14090. for {
  14091. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  14092. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  14093. break
  14094. }
  14095. if have == uint32(0) {
  14096. goto inf_leave
  14097. }
  14098. have--
  14099. v87 = next
  14100. next++
  14101. hold += uint32(*(*uint8)(unsafe.Pointer(v87))) << bits
  14102. bits += uint32(8)
  14103. goto _86
  14104. _86:
  14105. }
  14106. hold >>= uint32(last.Fbits)
  14107. bits -= uint32(last.Fbits)
  14108. *(*int32)(unsafe.Pointer(state + 7112)) += libc.Int32FromUint8(last.Fbits)
  14109. }
  14110. hold >>= uint32(here.Fbits)
  14111. bits -= uint32(here.Fbits)
  14112. *(*int32)(unsafe.Pointer(state + 7112)) += libc.Int32FromUint8(here.Fbits)
  14113. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  14114. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  14115. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14116. goto _35
  14117. }
  14118. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  14119. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  14120. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  14121. /* fallthrough */
  14122. _25:
  14123. ;
  14124. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  14125. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  14126. if have == uint32(0) {
  14127. goto inf_leave
  14128. }
  14129. have--
  14130. v88 = next
  14131. next++
  14132. hold += uint32(*(*uint8)(unsafe.Pointer(v88))) << bits
  14133. bits += uint32(8)
  14134. }
  14135. *(*uint32)(unsafe.Pointer(state + 72)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  14136. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14137. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14138. p89 = state + 7112
  14139. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14140. }
  14141. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  14142. /* fallthrough */
  14143. _26:
  14144. ;
  14145. if left == uint32(0) {
  14146. goto inf_leave
  14147. }
  14148. copy1 = out - left
  14149. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  14150. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  14151. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  14152. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  14153. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  14154. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14155. goto _35
  14156. }
  14157. }
  14158. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  14159. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14160. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  14161. } else {
  14162. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  14163. }
  14164. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  14165. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14166. }
  14167. } else { /* copy from output */
  14168. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  14169. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14170. }
  14171. if copy1 > left {
  14172. copy1 = left
  14173. }
  14174. left -= copy1
  14175. *(*uint32)(unsafe.Pointer(state + 68)) -= copy1
  14176. for {
  14177. v92 = put
  14178. put++
  14179. v93 = from
  14180. from++
  14181. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  14182. goto _91
  14183. _91:
  14184. ;
  14185. copy1--
  14186. v90 = copy1
  14187. if !(v90 != 0) {
  14188. break
  14189. }
  14190. }
  14191. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  14192. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14193. }
  14194. goto _35
  14195. _27:
  14196. ;
  14197. if left == uint32(0) {
  14198. goto inf_leave
  14199. }
  14200. v94 = put
  14201. put++
  14202. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  14203. left--
  14204. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14205. goto _35
  14206. _28:
  14207. ;
  14208. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14209. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14210. if have == uint32(0) {
  14211. goto inf_leave
  14212. }
  14213. have--
  14214. v95 = next
  14215. next++
  14216. hold += uint32(*(*uint8)(unsafe.Pointer(v95))) << bits
  14217. bits += uint32(8)
  14218. }
  14219. out -= left
  14220. *(*TuLong)(unsafe.Pointer(strm + 20)) += out
  14221. *(*uint32)(unsafe.Pointer(state + 32)) += out
  14222. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14223. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14224. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14225. } else {
  14226. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14227. }
  14228. v96 = v97
  14229. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  14230. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  14231. }
  14232. out = left
  14233. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  14234. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14235. v98 = hold
  14236. } else {
  14237. v98 = hold>>int32(24)&uint32(0xff) + hold>>int32(8)&uint32(0xff00) + hold&uint32(0xff00)<<int32(8) + hold&uint32(0xff)<<int32(24)
  14238. }
  14239. }
  14240. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14241. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 423
  14242. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14243. goto _35
  14244. }
  14245. hold = uint32(0)
  14246. bits = uint32(0)
  14247. }
  14248. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  14249. /* fallthrough */
  14250. _29:
  14251. ;
  14252. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14253. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14254. if have == uint32(0) {
  14255. goto inf_leave
  14256. }
  14257. have--
  14258. v100 = next
  14259. next++
  14260. hold += uint32(*(*uint8)(unsafe.Pointer(v100))) << bits
  14261. bits += uint32(8)
  14262. }
  14263. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint32(0xffffffff) {
  14264. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 444
  14265. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14266. goto _35
  14267. }
  14268. hold = uint32(0)
  14269. bits = uint32(0)
  14270. }
  14271. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  14272. /* fallthrough */
  14273. _30:
  14274. ;
  14275. ret = int32(m_Z_STREAM_END)
  14276. goto inf_leave
  14277. _31:
  14278. ;
  14279. ret = -int32(3)
  14280. goto inf_leave
  14281. _32:
  14282. ;
  14283. return -int32(4)
  14284. _34:
  14285. ;
  14286. /* fallthrough */
  14287. _33:
  14288. ;
  14289. return -int32(2)
  14290. _35:
  14291. ;
  14292. goto _1
  14293. _1:
  14294. }
  14295. /*
  14296. Return from inflate(), updating the total counts and the check value.
  14297. If there was no progress during the inflate() call, return a buffer
  14298. error. Call updatewindow() to create and/or update the window state.
  14299. Note: a memory error from inflate() is non-recoverable.
  14300. */
  14301. goto inf_leave
  14302. inf_leave:
  14303. ;
  14304. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  14305. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  14306. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  14307. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  14308. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  14309. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  14310. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize != 0 || out != (*Tz_stream)(unsafe.Pointer(strm)).Favail_out && (*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_BAD) && ((*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_CHECK) || flush != int32(m_Z_FINISH)) {
  14311. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  14312. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14313. return -int32(4)
  14314. }
  14315. }
  14316. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  14317. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  14318. *(*TuLong)(unsafe.Pointer(strm + 8)) += in
  14319. *(*TuLong)(unsafe.Pointer(strm + 20)) += out
  14320. *(*uint32)(unsafe.Pointer(state + 32)) += out
  14321. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14322. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14323. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14324. } else {
  14325. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14326. }
  14327. v101 = v102
  14328. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  14329. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  14330. }
  14331. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  14332. v103 = int32(64)
  14333. } else {
  14334. v103 = 0
  14335. }
  14336. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  14337. v104 = int32(128)
  14338. } else {
  14339. v104 = 0
  14340. }
  14341. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  14342. v105 = int32(256)
  14343. } else {
  14344. v105 = 0
  14345. }
  14346. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = libc.Int32FromUint32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  14347. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  14348. ret = -int32(5)
  14349. }
  14350. return ret
  14351. }
  14352. var _order1 = [19]uint16{
  14353. 0: uint16(16),
  14354. 1: uint16(17),
  14355. 2: uint16(18),
  14356. 4: uint16(8),
  14357. 5: uint16(7),
  14358. 6: uint16(9),
  14359. 7: uint16(6),
  14360. 8: uint16(10),
  14361. 9: uint16(5),
  14362. 10: uint16(11),
  14363. 11: uint16(4),
  14364. 12: uint16(12),
  14365. 13: uint16(3),
  14366. 14: uint16(13),
  14367. 15: uint16(2),
  14368. 16: uint16(14),
  14369. 17: uint16(1),
  14370. 18: uint16(15),
  14371. }
  14372. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14373. var state uintptr
  14374. _ = state
  14375. if _inflateStateCheck(tls, strm) != 0 {
  14376. return -int32(2)
  14377. }
  14378. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14379. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14380. (*(*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)
  14381. }
  14382. (*(*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)
  14383. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  14384. return m_Z_OK
  14385. }
  14386. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  14387. var state uintptr
  14388. _ = state
  14389. /* check state */
  14390. if _inflateStateCheck(tls, strm) != 0 {
  14391. return -int32(2)
  14392. }
  14393. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14394. /* copy dictionary */
  14395. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  14396. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext)
  14397. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, (*Tinflate_state)(unsafe.Pointer(state)).Fwnext)
  14398. }
  14399. if dictLength != uintptr(m_Z_NULL) {
  14400. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  14401. }
  14402. return m_Z_OK
  14403. }
  14404. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  14405. var dictid uint32
  14406. var ret int32
  14407. var state uintptr
  14408. _, _, _ = dictid, ret, state
  14409. /* check state */
  14410. if _inflateStateCheck(tls, strm) != 0 {
  14411. return -int32(2)
  14412. }
  14413. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14414. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  14415. return -int32(2)
  14416. }
  14417. /* check for correct dictionary identifier */
  14418. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  14419. dictid = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  14420. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  14421. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14422. return -int32(3)
  14423. }
  14424. }
  14425. /* copy dictionary to window using updatewindow(), which will amend the
  14426. existing dictionary if appropriate */
  14427. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  14428. if ret != 0 {
  14429. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14430. return -int32(4)
  14431. }
  14432. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  14433. return m_Z_OK
  14434. }
  14435. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  14436. var state uintptr
  14437. _ = state
  14438. /* check state */
  14439. if _inflateStateCheck(tls, strm) != 0 {
  14440. return -int32(2)
  14441. }
  14442. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14443. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  14444. return -int32(2)
  14445. }
  14446. /* save header structure */
  14447. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  14448. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  14449. return m_Z_OK
  14450. }
  14451. // C documentation
  14452. //
  14453. // /*
  14454. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  14455. // or when out of input. When called, *have is the number of pattern bytes
  14456. // found in order so far, in 0..3. On return *have is updated to the new
  14457. // state. If on return *have equals four, then the pattern was found and the
  14458. // return value is how many bytes were read including the last byte of the
  14459. // pattern. If *have is less than four, then the pattern has not been found
  14460. // yet and the return value is len. In the latter case, syncsearch() can be
  14461. // called again with more data and the *have state. *have is initialized to
  14462. // zero for the first call.
  14463. // */
  14464. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  14465. var got, next uint32
  14466. var v1 int32
  14467. _, _, _ = got, next, v1
  14468. got = *(*uint32)(unsafe.Pointer(have))
  14469. next = uint32(0)
  14470. for next < len1 && got < uint32(4) {
  14471. if got < uint32(2) {
  14472. v1 = 0
  14473. } else {
  14474. v1 = int32(0xff)
  14475. }
  14476. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  14477. got++
  14478. } else {
  14479. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  14480. got = uint32(0)
  14481. } else {
  14482. got = uint32(4) - got
  14483. }
  14484. }
  14485. next++
  14486. }
  14487. *(*uint32)(unsafe.Pointer(have)) = got
  14488. return next
  14489. }
  14490. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14491. bp := tls.Alloc(16)
  14492. defer tls.Free(16)
  14493. var flags int32
  14494. var in, len1, out, v1 uint32
  14495. var state uintptr
  14496. var _ /* buf at bp+0 */ [4]uint8
  14497. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  14498. /* check parameters */
  14499. if _inflateStateCheck(tls, strm) != 0 {
  14500. return -int32(2)
  14501. }
  14502. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14503. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  14504. return -int32(5)
  14505. }
  14506. /* if first time, start search in bit buffer */
  14507. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  14508. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  14509. *(*uint32)(unsafe.Pointer(state + 60)) >>= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  14510. *(*uint32)(unsafe.Pointer(state + 64)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  14511. len1 = uint32(0)
  14512. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  14513. v1 = len1
  14514. len1++
  14515. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  14516. *(*uint32)(unsafe.Pointer(state + 60)) >>= uint32(8)
  14517. *(*uint32)(unsafe.Pointer(state + 64)) -= uint32(8)
  14518. }
  14519. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  14520. _syncsearch(tls, state+108, bp, len1)
  14521. }
  14522. /* search available input */
  14523. len1 = _syncsearch(tls, state+108, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  14524. *(*TuInt)(unsafe.Pointer(strm + 4)) -= len1
  14525. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  14526. *(*TuLong)(unsafe.Pointer(strm + 8)) += len1
  14527. /* return no joy or set up to restart inflate() on a new block */
  14528. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  14529. return -int32(3)
  14530. }
  14531. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  14532. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  14533. } else {
  14534. *(*int32)(unsafe.Pointer(state + 12)) &= ^libc.Int32FromInt32(4)
  14535. } /* no point in computing a check value now */
  14536. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  14537. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  14538. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  14539. XinflateReset(tls, strm)
  14540. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  14541. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  14542. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  14543. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14544. return m_Z_OK
  14545. }
  14546. // C documentation
  14547. //
  14548. // /*
  14549. // Returns true if inflate is currently at the end of a block generated by
  14550. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  14551. // implementation to provide an additional safety check. PPP uses
  14552. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  14553. // block. When decompressing, PPP checks that at the end of input packet,
  14554. // inflate is waiting for these length bytes.
  14555. // */
  14556. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14557. var state uintptr
  14558. _ = state
  14559. if _inflateStateCheck(tls, strm) != 0 {
  14560. return -int32(2)
  14561. }
  14562. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14563. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  14564. }
  14565. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  14566. var copy1, state, window uintptr
  14567. var wsize uint32
  14568. _, _, _, _ = copy1, state, window, wsize
  14569. /* check input */
  14570. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  14571. return -int32(2)
  14572. }
  14573. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  14574. /* allocate space */
  14575. 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, libc.Uint32FromInt32(libc.Int32FromInt32(1)), libc.Uint32FromInt64(7120))
  14576. if copy1 == uintptr(m_Z_NULL) {
  14577. return -int32(4)
  14578. }
  14579. window = uintptr(m_Z_NULL)
  14580. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14581. 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, libc.Uint32FromInt64(1))
  14582. if window == uintptr(m_Z_NULL) {
  14583. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  14584. return -int32(4)
  14585. }
  14586. }
  14587. /* copy state */
  14588. libc.Xmemcpy(tls, dest, source, uint32(56))
  14589. libc.Xmemcpy(tls, copy1, state, uint32(7120))
  14590. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  14591. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1332 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1332+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  14592. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1332 + uintptr((int32((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1332))/4)*4
  14593. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1332 + uintptr((int32((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1332))/4)*4
  14594. }
  14595. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1332 + uintptr((int32((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1332))/4)*4
  14596. if window != uintptr(m_Z_NULL) {
  14597. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14598. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, wsize)
  14599. }
  14600. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  14601. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  14602. return m_Z_OK
  14603. }
  14604. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  14605. var state uintptr
  14606. _ = state
  14607. if _inflateStateCheck(tls, strm) != 0 {
  14608. return -int32(2)
  14609. }
  14610. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14611. _ = subvert
  14612. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  14613. return -int32(3)
  14614. }
  14615. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  14616. var state uintptr
  14617. _ = state
  14618. if _inflateStateCheck(tls, strm) != 0 {
  14619. return -int32(2)
  14620. }
  14621. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14622. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14623. *(*int32)(unsafe.Pointer(state + 12)) |= int32(4)
  14624. } else {
  14625. *(*int32)(unsafe.Pointer(state + 12)) &= ^libc.Int32FromInt32(4)
  14626. }
  14627. return m_Z_OK
  14628. }
  14629. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14630. var state uintptr
  14631. var v1, v2 uint32
  14632. _, _, _ = state, v1, v2
  14633. if _inflateStateCheck(tls, strm) != 0 {
  14634. return -(libc.Int32FromInt32(1) << libc.Int32FromInt32(16))
  14635. }
  14636. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14637. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  14638. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14639. } else {
  14640. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  14641. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14642. } else {
  14643. v2 = uint32(0)
  14644. }
  14645. v1 = v2
  14646. }
  14647. return libc.Int32FromUint32(libc.Uint32FromInt32(libc.Int32FromUint32(libc.Uint32FromInt32((*Tinflate_state)(unsafe.Pointer(state)).Fback)<<libc.Int32FromInt32(16))) + v1)
  14648. }
  14649. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint32) {
  14650. var state uintptr
  14651. _ = state
  14652. if _inflateStateCheck(tls, strm) != 0 {
  14653. return libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  14654. }
  14655. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14656. return libc.Uint32FromInt32((int32((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1332)) / 4)
  14657. }
  14658. const m_MAXBITS = 15
  14659. /*
  14660. If you use the zlib library in a product, an acknowledgment is welcome
  14661. in the documentation of your product. If for some reason you cannot
  14662. include such an acknowledgment, I would appreciate that you keep this
  14663. copyright string in the executable of your product.
  14664. */
  14665. // C documentation
  14666. //
  14667. // /*
  14668. // Build a set of tables to decode the provided canonical Huffman code.
  14669. // The code lengths are lens[0..codes-1]. The result starts at *table,
  14670. // whose indices are 0..2^bits-1. work is a writable array of at least
  14671. // lens shorts, which is used as a work area. type is the type of code
  14672. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  14673. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  14674. // on return points to the next available entry's address. bits is the
  14675. // requested root table index bits, and on return it is the actual root
  14676. // table index bits. It will differ if the request is greater than the
  14677. // longest code or if it is less than the shortest code.
  14678. // */
  14679. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  14680. bp := tls.Alloc(64)
  14681. defer tls.Free(64)
  14682. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  14683. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  14684. var here Tcode
  14685. var left int32
  14686. var v12, v16 uint16
  14687. var _ /* count at bp+0 */ [16]uint16
  14688. var _ /* offs at bp+32 */ [16]uint16
  14689. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  14690. /*
  14691. Process a set of code lengths to create a canonical Huffman code. The
  14692. code lengths are lens[0..codes-1]. Each length corresponds to the
  14693. symbols 0..codes-1. The Huffman code is generated by first sorting the
  14694. symbols by length from short to long, and retaining the symbol order
  14695. for codes with equal lengths. Then the code starts with all zero bits
  14696. for the first code of the shortest length, and the codes are integer
  14697. increments for the same length, and zeros are appended as the length
  14698. increases. For the deflate format, these bits are stored backwards
  14699. from their more natural integer increment ordering, and so when the
  14700. decoding tables are built in the large loop below, the integer codes
  14701. are incremented backwards.
  14702. This routine assumes, but does not check, that all of the entries in
  14703. lens[] are in the range 0..MAXBITS. The caller must assure this.
  14704. 1..MAXBITS is interpreted as that code length. zero means that that
  14705. symbol does not occur in this code.
  14706. The codes are sorted by computing a count of codes for each length,
  14707. creating from that a table of starting indices for each length in the
  14708. sorted table, and then entering the symbols in order in the sorted
  14709. table. The sorted table is work[], with that space being provided by
  14710. the caller.
  14711. The length counts are used for other purposes as well, i.e. finding
  14712. the minimum and maximum length codes, determining if there are any
  14713. codes at all, checking for a valid set of lengths, and looking ahead
  14714. at length counts to determine sub-table sizes when building the
  14715. decoding tables.
  14716. */
  14717. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  14718. len1 = uint32(0)
  14719. for {
  14720. if !(len1 <= uint32(m_MAXBITS)) {
  14721. break
  14722. }
  14723. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  14724. goto _1
  14725. _1:
  14726. ;
  14727. len1++
  14728. }
  14729. sym = uint32(0)
  14730. for {
  14731. if !(sym < codes) {
  14732. break
  14733. }
  14734. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  14735. goto _2
  14736. _2:
  14737. ;
  14738. sym++
  14739. }
  14740. /* bound code lengths, force root to be within code lengths */
  14741. root = *(*uint32)(unsafe.Pointer(bits))
  14742. max = uint32(m_MAXBITS)
  14743. for {
  14744. if !(max >= uint32(1)) {
  14745. break
  14746. }
  14747. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  14748. break
  14749. }
  14750. goto _3
  14751. _3:
  14752. ;
  14753. max--
  14754. }
  14755. if root > max {
  14756. root = max
  14757. }
  14758. if max == uint32(0) { /* no symbols to code at all */
  14759. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14760. here.Fbits = libc.Uint8FromInt32(1)
  14761. here.Fval = libc.Uint16FromInt32(0)
  14762. v5 = table
  14763. v4 = *(*uintptr)(unsafe.Pointer(v5))
  14764. *(*uintptr)(unsafe.Pointer(v5)) += 4
  14765. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  14766. v7 = table
  14767. v6 = *(*uintptr)(unsafe.Pointer(v7))
  14768. *(*uintptr)(unsafe.Pointer(v7)) += 4
  14769. *(*Tcode)(unsafe.Pointer(v6)) = here
  14770. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  14771. return 0 /* no symbols, but wait for decoding to report error */
  14772. }
  14773. min = uint32(1)
  14774. for {
  14775. if !(min < max) {
  14776. break
  14777. }
  14778. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  14779. break
  14780. }
  14781. goto _8
  14782. _8:
  14783. ;
  14784. min++
  14785. }
  14786. if root < min {
  14787. root = min
  14788. }
  14789. /* check for an over-subscribed or incomplete set of lengths */
  14790. left = int32(1)
  14791. len1 = uint32(1)
  14792. for {
  14793. if !(len1 <= uint32(m_MAXBITS)) {
  14794. break
  14795. }
  14796. left <<= int32(1)
  14797. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  14798. if left < 0 {
  14799. return -int32(1)
  14800. } /* over-subscribed */
  14801. goto _9
  14802. _9:
  14803. ;
  14804. len1++
  14805. }
  14806. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  14807. return -int32(1)
  14808. } /* incomplete set */
  14809. /* generate offsets into symbol table for each length for sorting */
  14810. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  14811. len1 = uint32(1)
  14812. for {
  14813. if !(len1 < uint32(m_MAXBITS)) {
  14814. break
  14815. }
  14816. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = libc.Uint16FromInt32(libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  14817. goto _10
  14818. _10:
  14819. ;
  14820. len1++
  14821. }
  14822. /* sort symbols by length, by symbol order within each length */
  14823. sym = uint32(0)
  14824. for {
  14825. if !(sym < codes) {
  14826. break
  14827. }
  14828. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  14829. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  14830. v12 = *(*uint16)(unsafe.Pointer(v13))
  14831. *(*uint16)(unsafe.Pointer(v13))++
  14832. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  14833. }
  14834. goto _11
  14835. _11:
  14836. ;
  14837. sym++
  14838. }
  14839. /*
  14840. Create and fill in decoding tables. In this loop, the table being
  14841. filled is at next and has curr index bits. The code being used is huff
  14842. with length len. That code is converted to an index by dropping drop
  14843. bits off of the bottom. For codes where len is less than drop + curr,
  14844. those top drop + curr - len bits are incremented through all values to
  14845. fill the table with replicated entries.
  14846. root is the number of index bits for the root table. When len exceeds
  14847. root, sub-tables are created pointed to by the root entry with an index
  14848. of the low root bits of huff. This is saved in low to check for when a
  14849. new sub-table should be started. drop is zero when the root table is
  14850. being filled, and drop is root when sub-tables are being filled.
  14851. When a new sub-table is needed, it is necessary to look ahead in the
  14852. code lengths to determine what size sub-table is needed. The length
  14853. counts are used for this, and so count[] is decremented as codes are
  14854. entered in the tables.
  14855. used keeps track of how many table entries have been allocated from the
  14856. provided *table space. It is checked for LENS and DIST tables against
  14857. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  14858. the initial root table size constants. See the comments in inftrees.h
  14859. for more information.
  14860. sym increments through all symbols, and the loop terminates when
  14861. all codes of length max, i.e. all codes, have been processed. This
  14862. routine permits incomplete codes, so another loop after this one fills
  14863. in the rest of the decoding tables with invalid code markers.
  14864. */
  14865. /* set up for code type */
  14866. switch type1 {
  14867. case int32(_CODES):
  14868. v14 = work
  14869. extra = v14
  14870. base = v14 /* dummy value--not used */
  14871. match = uint32(20)
  14872. case int32(_LENS):
  14873. base = uintptr(unsafe.Pointer(&_lbase))
  14874. extra = uintptr(unsafe.Pointer(&_lext))
  14875. match = uint32(257)
  14876. default: /* DISTS */
  14877. base = uintptr(unsafe.Pointer(&_dbase))
  14878. extra = uintptr(unsafe.Pointer(&_dext))
  14879. match = uint32(0)
  14880. }
  14881. /* initialize state for loop */
  14882. huff = uint32(0) /* starting code */
  14883. sym = uint32(0) /* starting code symbol */
  14884. len1 = min /* starting code length */
  14885. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  14886. curr = root /* current table index bits */
  14887. drop = uint32(0) /* current bits to drop from code for index */
  14888. low = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  14889. used = uint32(1) << root /* use root table entries */
  14890. mask = used - uint32(1) /* mask for comparing low */
  14891. /* check available table space */
  14892. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14893. return int32(1)
  14894. }
  14895. /* process all codes and make table entries */
  14896. for {
  14897. /* create table entry */
  14898. here.Fbits = uint8(len1 - drop)
  14899. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  14900. here.Fop = libc.Uint8FromInt32(0)
  14901. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  14902. } else {
  14903. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  14904. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  14905. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  14906. } else {
  14907. here.Fop = libc.Uint8FromInt32(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  14908. here.Fval = uint16(0)
  14909. }
  14910. }
  14911. /* replicate for those indices with low len bits equal to huff */
  14912. incr = uint32(1) << (len1 - drop)
  14913. fill = uint32(1) << curr
  14914. min = fill /* save offset to next table */
  14915. for cond := true; cond; cond = fill != uint32(0) {
  14916. fill -= incr
  14917. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  14918. }
  14919. /* backwards increment the len-bit code huff */
  14920. incr = uint32(1) << (len1 - uint32(1))
  14921. for huff&incr != 0 {
  14922. incr >>= uint32(1)
  14923. }
  14924. if incr != uint32(0) {
  14925. huff &= incr - uint32(1)
  14926. huff += incr
  14927. } else {
  14928. huff = uint32(0)
  14929. }
  14930. /* go to next symbol, update count, len */
  14931. sym++
  14932. v17 = bp + uintptr(len1)*2
  14933. *(*uint16)(unsafe.Pointer(v17))--
  14934. v16 = *(*uint16)(unsafe.Pointer(v17))
  14935. if libc.Int32FromUint16(v16) == 0 {
  14936. if len1 == max {
  14937. break
  14938. }
  14939. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  14940. }
  14941. /* create new sub-table if needed */
  14942. if len1 > root && huff&mask != low {
  14943. /* if first time, transition to sub-tables */
  14944. if drop == uint32(0) {
  14945. drop = root
  14946. }
  14947. /* increment past last table */
  14948. next += uintptr(min) * 4 /* here min is 1 << curr */
  14949. /* determine length of next table */
  14950. curr = len1 - drop
  14951. left = libc.Int32FromInt32(1) << curr
  14952. for curr+drop < max {
  14953. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  14954. if left <= 0 {
  14955. break
  14956. }
  14957. curr++
  14958. left <<= int32(1)
  14959. }
  14960. /* check for enough space */
  14961. used += uint32(1) << curr
  14962. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14963. return int32(1)
  14964. }
  14965. /* point entry in root table to sub-table */
  14966. low = huff & mask
  14967. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  14968. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  14969. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = libc.Uint16FromInt32((int32(next) - int32(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  14970. }
  14971. goto _15
  14972. _15:
  14973. }
  14974. /* fill in remaining table entry if code is incomplete (guaranteed to have
  14975. at most one remaining entry, since if the code is incomplete, the
  14976. maximum code length that was allowed to get this far is one bit) */
  14977. if huff != uint32(0) {
  14978. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14979. here.Fbits = uint8(len1 - drop)
  14980. here.Fval = libc.Uint16FromInt32(0)
  14981. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  14982. }
  14983. /* set return parameters */
  14984. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  14985. *(*uint32)(unsafe.Pointer(bits)) = root
  14986. return 0
  14987. }
  14988. var _lbase = [31]uint16{
  14989. 0: uint16(3),
  14990. 1: uint16(4),
  14991. 2: uint16(5),
  14992. 3: uint16(6),
  14993. 4: uint16(7),
  14994. 5: uint16(8),
  14995. 6: uint16(9),
  14996. 7: uint16(10),
  14997. 8: uint16(11),
  14998. 9: uint16(13),
  14999. 10: uint16(15),
  15000. 11: uint16(17),
  15001. 12: uint16(19),
  15002. 13: uint16(23),
  15003. 14: uint16(27),
  15004. 15: uint16(31),
  15005. 16: uint16(35),
  15006. 17: uint16(43),
  15007. 18: uint16(51),
  15008. 19: uint16(59),
  15009. 20: uint16(67),
  15010. 21: uint16(83),
  15011. 22: uint16(99),
  15012. 23: uint16(115),
  15013. 24: uint16(131),
  15014. 25: uint16(163),
  15015. 26: uint16(195),
  15016. 27: uint16(227),
  15017. 28: uint16(258),
  15018. }
  15019. var _lext = [31]uint16{
  15020. 0: uint16(16),
  15021. 1: uint16(16),
  15022. 2: uint16(16),
  15023. 3: uint16(16),
  15024. 4: uint16(16),
  15025. 5: uint16(16),
  15026. 6: uint16(16),
  15027. 7: uint16(16),
  15028. 8: uint16(17),
  15029. 9: uint16(17),
  15030. 10: uint16(17),
  15031. 11: uint16(17),
  15032. 12: uint16(18),
  15033. 13: uint16(18),
  15034. 14: uint16(18),
  15035. 15: uint16(18),
  15036. 16: uint16(19),
  15037. 17: uint16(19),
  15038. 18: uint16(19),
  15039. 19: uint16(19),
  15040. 20: uint16(20),
  15041. 21: uint16(20),
  15042. 22: uint16(20),
  15043. 23: uint16(20),
  15044. 24: uint16(21),
  15045. 25: uint16(21),
  15046. 26: uint16(21),
  15047. 27: uint16(21),
  15048. 28: uint16(16),
  15049. 29: uint16(203),
  15050. 30: uint16(77),
  15051. }
  15052. var _dbase = [32]uint16{
  15053. 0: uint16(1),
  15054. 1: uint16(2),
  15055. 2: uint16(3),
  15056. 3: uint16(4),
  15057. 4: uint16(5),
  15058. 5: uint16(7),
  15059. 6: uint16(9),
  15060. 7: uint16(13),
  15061. 8: uint16(17),
  15062. 9: uint16(25),
  15063. 10: uint16(33),
  15064. 11: uint16(49),
  15065. 12: uint16(65),
  15066. 13: uint16(97),
  15067. 14: uint16(129),
  15068. 15: uint16(193),
  15069. 16: uint16(257),
  15070. 17: uint16(385),
  15071. 18: uint16(513),
  15072. 19: uint16(769),
  15073. 20: uint16(1025),
  15074. 21: uint16(1537),
  15075. 22: uint16(2049),
  15076. 23: uint16(3073),
  15077. 24: uint16(4097),
  15078. 25: uint16(6145),
  15079. 26: uint16(8193),
  15080. 27: uint16(12289),
  15081. 28: uint16(16385),
  15082. 29: uint16(24577),
  15083. }
  15084. var _dext = [32]uint16{
  15085. 0: uint16(16),
  15086. 1: uint16(16),
  15087. 2: uint16(16),
  15088. 3: uint16(16),
  15089. 4: uint16(17),
  15090. 5: uint16(17),
  15091. 6: uint16(18),
  15092. 7: uint16(18),
  15093. 8: uint16(19),
  15094. 9: uint16(19),
  15095. 10: uint16(20),
  15096. 11: uint16(20),
  15097. 12: uint16(21),
  15098. 13: uint16(21),
  15099. 14: uint16(22),
  15100. 15: uint16(22),
  15101. 16: uint16(23),
  15102. 17: uint16(23),
  15103. 18: uint16(24),
  15104. 19: uint16(24),
  15105. 20: uint16(25),
  15106. 21: uint16(25),
  15107. 22: uint16(26),
  15108. 23: uint16(26),
  15109. 24: uint16(27),
  15110. 25: uint16(27),
  15111. 26: uint16(28),
  15112. 27: uint16(28),
  15113. 28: uint16(29),
  15114. 29: uint16(29),
  15115. 30: uint16(64),
  15116. 31: uint16(64),
  15117. }
  15118. const m_DIST_CODE_LEN = 512
  15119. const m_END_BLOCK = 256
  15120. const m_MAX_BL_BITS = 7
  15121. const m_REPZ_11_138 = 18
  15122. const m_REPZ_3_10 = 17
  15123. const m_REP_3_6 = 16
  15124. const m_SMALLEST = 1
  15125. const m_TCONST = "const"
  15126. type Tstatic_tree_desc = struct {
  15127. Fstatic_tree uintptr
  15128. Fextra_bits uintptr
  15129. Fextra_base int32
  15130. Felems int32
  15131. Fmax_length int32
  15132. }
  15133. type Tstatic_tree_desc_s = Tstatic_tree_desc
  15134. /* ===========================================================================
  15135. * Constants
  15136. */
  15137. /* Bit length codes must not exceed MAX_BL_BITS bits */
  15138. /* end of block literal code */
  15139. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  15140. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  15141. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  15142. var _extra_lbits = [29]int32{
  15143. 8: int32(1),
  15144. 9: int32(1),
  15145. 10: int32(1),
  15146. 11: int32(1),
  15147. 12: int32(2),
  15148. 13: int32(2),
  15149. 14: int32(2),
  15150. 15: int32(2),
  15151. 16: int32(3),
  15152. 17: int32(3),
  15153. 18: int32(3),
  15154. 19: int32(3),
  15155. 20: int32(4),
  15156. 21: int32(4),
  15157. 22: int32(4),
  15158. 23: int32(4),
  15159. 24: int32(5),
  15160. 25: int32(5),
  15161. 26: int32(5),
  15162. 27: int32(5),
  15163. }
  15164. var _extra_dbits = [30]int32{
  15165. 4: int32(1),
  15166. 5: int32(1),
  15167. 6: int32(2),
  15168. 7: int32(2),
  15169. 8: int32(3),
  15170. 9: int32(3),
  15171. 10: int32(4),
  15172. 11: int32(4),
  15173. 12: int32(5),
  15174. 13: int32(5),
  15175. 14: int32(6),
  15176. 15: int32(6),
  15177. 16: int32(7),
  15178. 17: int32(7),
  15179. 18: int32(8),
  15180. 19: int32(8),
  15181. 20: int32(9),
  15182. 21: int32(9),
  15183. 22: int32(10),
  15184. 23: int32(10),
  15185. 24: int32(11),
  15186. 25: int32(11),
  15187. 26: int32(12),
  15188. 27: int32(12),
  15189. 28: int32(13),
  15190. 29: int32(13),
  15191. }
  15192. var _extra_blbits = [19]int32{
  15193. 16: int32(2),
  15194. 17: int32(3),
  15195. 18: int32(7),
  15196. }
  15197. var _bl_order = [19]Tuch{
  15198. 0: uint8(16),
  15199. 1: uint8(17),
  15200. 2: uint8(18),
  15201. 4: uint8(8),
  15202. 5: uint8(7),
  15203. 6: uint8(9),
  15204. 7: uint8(6),
  15205. 8: uint8(10),
  15206. 9: uint8(5),
  15207. 10: uint8(11),
  15208. 11: uint8(4),
  15209. 12: uint8(12),
  15210. 13: uint8(3),
  15211. 14: uint8(13),
  15212. 15: uint8(2),
  15213. 16: uint8(14),
  15214. 17: uint8(1),
  15215. 18: uint8(15),
  15216. }
  15217. var _static_ltree = [288]Tct_data{
  15218. 0: {
  15219. Ffc: *(*struct {
  15220. Fcode [0]Tush
  15221. Ffreq Tush
  15222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  15223. Fdl: *(*struct {
  15224. Flen1 [0]Tush
  15225. Fdad Tush
  15226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15227. },
  15228. 1: {
  15229. Ffc: *(*struct {
  15230. Fcode [0]Tush
  15231. Ffreq Tush
  15232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  15233. Fdl: *(*struct {
  15234. Flen1 [0]Tush
  15235. Fdad Tush
  15236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15237. },
  15238. 2: {
  15239. Ffc: *(*struct {
  15240. Fcode [0]Tush
  15241. Ffreq Tush
  15242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  15243. Fdl: *(*struct {
  15244. Flen1 [0]Tush
  15245. Fdad Tush
  15246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15247. },
  15248. 3: {
  15249. Ffc: *(*struct {
  15250. Fcode [0]Tush
  15251. Ffreq Tush
  15252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  15253. Fdl: *(*struct {
  15254. Flen1 [0]Tush
  15255. Fdad Tush
  15256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15257. },
  15258. 4: {
  15259. Ffc: *(*struct {
  15260. Fcode [0]Tush
  15261. Ffreq Tush
  15262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  15263. Fdl: *(*struct {
  15264. Flen1 [0]Tush
  15265. Fdad Tush
  15266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15267. },
  15268. 5: {
  15269. Ffc: *(*struct {
  15270. Fcode [0]Tush
  15271. Ffreq Tush
  15272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  15273. Fdl: *(*struct {
  15274. Flen1 [0]Tush
  15275. Fdad Tush
  15276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15277. },
  15278. 6: {
  15279. Ffc: *(*struct {
  15280. Fcode [0]Tush
  15281. Ffreq Tush
  15282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  15283. Fdl: *(*struct {
  15284. Flen1 [0]Tush
  15285. Fdad Tush
  15286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15287. },
  15288. 7: {
  15289. Ffc: *(*struct {
  15290. Fcode [0]Tush
  15291. Ffreq Tush
  15292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  15293. Fdl: *(*struct {
  15294. Flen1 [0]Tush
  15295. Fdad Tush
  15296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15297. },
  15298. 8: {
  15299. Ffc: *(*struct {
  15300. Fcode [0]Tush
  15301. Ffreq Tush
  15302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  15303. Fdl: *(*struct {
  15304. Flen1 [0]Tush
  15305. Fdad Tush
  15306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15307. },
  15308. 9: {
  15309. Ffc: *(*struct {
  15310. Fcode [0]Tush
  15311. Ffreq Tush
  15312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  15313. Fdl: *(*struct {
  15314. Flen1 [0]Tush
  15315. Fdad Tush
  15316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15317. },
  15318. 10: {
  15319. Ffc: *(*struct {
  15320. Fcode [0]Tush
  15321. Ffreq Tush
  15322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  15323. Fdl: *(*struct {
  15324. Flen1 [0]Tush
  15325. Fdad Tush
  15326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15327. },
  15328. 11: {
  15329. Ffc: *(*struct {
  15330. Fcode [0]Tush
  15331. Ffreq Tush
  15332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  15333. Fdl: *(*struct {
  15334. Flen1 [0]Tush
  15335. Fdad Tush
  15336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15337. },
  15338. 12: {
  15339. Ffc: *(*struct {
  15340. Fcode [0]Tush
  15341. Ffreq Tush
  15342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  15343. Fdl: *(*struct {
  15344. Flen1 [0]Tush
  15345. Fdad Tush
  15346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15347. },
  15348. 13: {
  15349. Ffc: *(*struct {
  15350. Fcode [0]Tush
  15351. Ffreq Tush
  15352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  15353. Fdl: *(*struct {
  15354. Flen1 [0]Tush
  15355. Fdad Tush
  15356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15357. },
  15358. 14: {
  15359. Ffc: *(*struct {
  15360. Fcode [0]Tush
  15361. Ffreq Tush
  15362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  15363. Fdl: *(*struct {
  15364. Flen1 [0]Tush
  15365. Fdad Tush
  15366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15367. },
  15368. 15: {
  15369. Ffc: *(*struct {
  15370. Fcode [0]Tush
  15371. Ffreq Tush
  15372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  15373. Fdl: *(*struct {
  15374. Flen1 [0]Tush
  15375. Fdad Tush
  15376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15377. },
  15378. 16: {
  15379. Ffc: *(*struct {
  15380. Fcode [0]Tush
  15381. Ffreq Tush
  15382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  15383. Fdl: *(*struct {
  15384. Flen1 [0]Tush
  15385. Fdad Tush
  15386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15387. },
  15388. 17: {
  15389. Ffc: *(*struct {
  15390. Fcode [0]Tush
  15391. Ffreq Tush
  15392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  15393. Fdl: *(*struct {
  15394. Flen1 [0]Tush
  15395. Fdad Tush
  15396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15397. },
  15398. 18: {
  15399. Ffc: *(*struct {
  15400. Fcode [0]Tush
  15401. Ffreq Tush
  15402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  15403. Fdl: *(*struct {
  15404. Flen1 [0]Tush
  15405. Fdad Tush
  15406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15407. },
  15408. 19: {
  15409. Ffc: *(*struct {
  15410. Fcode [0]Tush
  15411. Ffreq Tush
  15412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  15413. Fdl: *(*struct {
  15414. Flen1 [0]Tush
  15415. Fdad Tush
  15416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15417. },
  15418. 20: {
  15419. Ffc: *(*struct {
  15420. Fcode [0]Tush
  15421. Ffreq Tush
  15422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  15423. Fdl: *(*struct {
  15424. Flen1 [0]Tush
  15425. Fdad Tush
  15426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15427. },
  15428. 21: {
  15429. Ffc: *(*struct {
  15430. Fcode [0]Tush
  15431. Ffreq Tush
  15432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  15433. Fdl: *(*struct {
  15434. Flen1 [0]Tush
  15435. Fdad Tush
  15436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15437. },
  15438. 22: {
  15439. Ffc: *(*struct {
  15440. Fcode [0]Tush
  15441. Ffreq Tush
  15442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  15443. Fdl: *(*struct {
  15444. Flen1 [0]Tush
  15445. Fdad Tush
  15446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15447. },
  15448. 23: {
  15449. Ffc: *(*struct {
  15450. Fcode [0]Tush
  15451. Ffreq Tush
  15452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  15453. Fdl: *(*struct {
  15454. Flen1 [0]Tush
  15455. Fdad Tush
  15456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15457. },
  15458. 24: {
  15459. Ffc: *(*struct {
  15460. Fcode [0]Tush
  15461. Ffreq Tush
  15462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  15463. Fdl: *(*struct {
  15464. Flen1 [0]Tush
  15465. Fdad Tush
  15466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15467. },
  15468. 25: {
  15469. Ffc: *(*struct {
  15470. Fcode [0]Tush
  15471. Ffreq Tush
  15472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  15473. Fdl: *(*struct {
  15474. Flen1 [0]Tush
  15475. Fdad Tush
  15476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15477. },
  15478. 26: {
  15479. Ffc: *(*struct {
  15480. Fcode [0]Tush
  15481. Ffreq Tush
  15482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  15483. Fdl: *(*struct {
  15484. Flen1 [0]Tush
  15485. Fdad Tush
  15486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15487. },
  15488. 27: {
  15489. Ffc: *(*struct {
  15490. Fcode [0]Tush
  15491. Ffreq Tush
  15492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  15493. Fdl: *(*struct {
  15494. Flen1 [0]Tush
  15495. Fdad Tush
  15496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15497. },
  15498. 28: {
  15499. Ffc: *(*struct {
  15500. Fcode [0]Tush
  15501. Ffreq Tush
  15502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  15503. Fdl: *(*struct {
  15504. Flen1 [0]Tush
  15505. Fdad Tush
  15506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15507. },
  15508. 29: {
  15509. Ffc: *(*struct {
  15510. Fcode [0]Tush
  15511. Ffreq Tush
  15512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  15513. Fdl: *(*struct {
  15514. Flen1 [0]Tush
  15515. Fdad Tush
  15516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15517. },
  15518. 30: {
  15519. Ffc: *(*struct {
  15520. Fcode [0]Tush
  15521. Ffreq Tush
  15522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  15523. Fdl: *(*struct {
  15524. Flen1 [0]Tush
  15525. Fdad Tush
  15526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15527. },
  15528. 31: {
  15529. Ffc: *(*struct {
  15530. Fcode [0]Tush
  15531. Ffreq Tush
  15532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  15533. Fdl: *(*struct {
  15534. Flen1 [0]Tush
  15535. Fdad Tush
  15536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15537. },
  15538. 32: {
  15539. Ffc: *(*struct {
  15540. Fcode [0]Tush
  15541. Ffreq Tush
  15542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  15543. Fdl: *(*struct {
  15544. Flen1 [0]Tush
  15545. Fdad Tush
  15546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15547. },
  15548. 33: {
  15549. Ffc: *(*struct {
  15550. Fcode [0]Tush
  15551. Ffreq Tush
  15552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  15553. Fdl: *(*struct {
  15554. Flen1 [0]Tush
  15555. Fdad Tush
  15556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15557. },
  15558. 34: {
  15559. Ffc: *(*struct {
  15560. Fcode [0]Tush
  15561. Ffreq Tush
  15562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  15563. Fdl: *(*struct {
  15564. Flen1 [0]Tush
  15565. Fdad Tush
  15566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15567. },
  15568. 35: {
  15569. Ffc: *(*struct {
  15570. Fcode [0]Tush
  15571. Ffreq Tush
  15572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  15573. Fdl: *(*struct {
  15574. Flen1 [0]Tush
  15575. Fdad Tush
  15576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15577. },
  15578. 36: {
  15579. Ffc: *(*struct {
  15580. Fcode [0]Tush
  15581. Ffreq Tush
  15582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  15583. Fdl: *(*struct {
  15584. Flen1 [0]Tush
  15585. Fdad Tush
  15586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15587. },
  15588. 37: {
  15589. Ffc: *(*struct {
  15590. Fcode [0]Tush
  15591. Ffreq Tush
  15592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  15593. Fdl: *(*struct {
  15594. Flen1 [0]Tush
  15595. Fdad Tush
  15596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15597. },
  15598. 38: {
  15599. Ffc: *(*struct {
  15600. Fcode [0]Tush
  15601. Ffreq Tush
  15602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  15603. Fdl: *(*struct {
  15604. Flen1 [0]Tush
  15605. Fdad Tush
  15606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15607. },
  15608. 39: {
  15609. Ffc: *(*struct {
  15610. Fcode [0]Tush
  15611. Ffreq Tush
  15612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  15613. Fdl: *(*struct {
  15614. Flen1 [0]Tush
  15615. Fdad Tush
  15616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15617. },
  15618. 40: {
  15619. Ffc: *(*struct {
  15620. Fcode [0]Tush
  15621. Ffreq Tush
  15622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  15623. Fdl: *(*struct {
  15624. Flen1 [0]Tush
  15625. Fdad Tush
  15626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15627. },
  15628. 41: {
  15629. Ffc: *(*struct {
  15630. Fcode [0]Tush
  15631. Ffreq Tush
  15632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  15633. Fdl: *(*struct {
  15634. Flen1 [0]Tush
  15635. Fdad Tush
  15636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15637. },
  15638. 42: {
  15639. Ffc: *(*struct {
  15640. Fcode [0]Tush
  15641. Ffreq Tush
  15642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  15643. Fdl: *(*struct {
  15644. Flen1 [0]Tush
  15645. Fdad Tush
  15646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15647. },
  15648. 43: {
  15649. Ffc: *(*struct {
  15650. Fcode [0]Tush
  15651. Ffreq Tush
  15652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  15653. Fdl: *(*struct {
  15654. Flen1 [0]Tush
  15655. Fdad Tush
  15656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15657. },
  15658. 44: {
  15659. Ffc: *(*struct {
  15660. Fcode [0]Tush
  15661. Ffreq Tush
  15662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  15663. Fdl: *(*struct {
  15664. Flen1 [0]Tush
  15665. Fdad Tush
  15666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15667. },
  15668. 45: {
  15669. Ffc: *(*struct {
  15670. Fcode [0]Tush
  15671. Ffreq Tush
  15672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  15673. Fdl: *(*struct {
  15674. Flen1 [0]Tush
  15675. Fdad Tush
  15676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15677. },
  15678. 46: {
  15679. Ffc: *(*struct {
  15680. Fcode [0]Tush
  15681. Ffreq Tush
  15682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  15683. Fdl: *(*struct {
  15684. Flen1 [0]Tush
  15685. Fdad Tush
  15686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15687. },
  15688. 47: {
  15689. Ffc: *(*struct {
  15690. Fcode [0]Tush
  15691. Ffreq Tush
  15692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  15693. Fdl: *(*struct {
  15694. Flen1 [0]Tush
  15695. Fdad Tush
  15696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15697. },
  15698. 48: {
  15699. Ffc: *(*struct {
  15700. Fcode [0]Tush
  15701. Ffreq Tush
  15702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  15703. Fdl: *(*struct {
  15704. Flen1 [0]Tush
  15705. Fdad Tush
  15706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15707. },
  15708. 49: {
  15709. Ffc: *(*struct {
  15710. Fcode [0]Tush
  15711. Ffreq Tush
  15712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  15713. Fdl: *(*struct {
  15714. Flen1 [0]Tush
  15715. Fdad Tush
  15716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15717. },
  15718. 50: {
  15719. Ffc: *(*struct {
  15720. Fcode [0]Tush
  15721. Ffreq Tush
  15722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  15723. Fdl: *(*struct {
  15724. Flen1 [0]Tush
  15725. Fdad Tush
  15726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15727. },
  15728. 51: {
  15729. Ffc: *(*struct {
  15730. Fcode [0]Tush
  15731. Ffreq Tush
  15732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  15733. Fdl: *(*struct {
  15734. Flen1 [0]Tush
  15735. Fdad Tush
  15736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15737. },
  15738. 52: {
  15739. Ffc: *(*struct {
  15740. Fcode [0]Tush
  15741. Ffreq Tush
  15742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  15743. Fdl: *(*struct {
  15744. Flen1 [0]Tush
  15745. Fdad Tush
  15746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15747. },
  15748. 53: {
  15749. Ffc: *(*struct {
  15750. Fcode [0]Tush
  15751. Ffreq Tush
  15752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  15753. Fdl: *(*struct {
  15754. Flen1 [0]Tush
  15755. Fdad Tush
  15756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15757. },
  15758. 54: {
  15759. Ffc: *(*struct {
  15760. Fcode [0]Tush
  15761. Ffreq Tush
  15762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  15763. Fdl: *(*struct {
  15764. Flen1 [0]Tush
  15765. Fdad Tush
  15766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15767. },
  15768. 55: {
  15769. Ffc: *(*struct {
  15770. Fcode [0]Tush
  15771. Ffreq Tush
  15772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  15773. Fdl: *(*struct {
  15774. Flen1 [0]Tush
  15775. Fdad Tush
  15776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15777. },
  15778. 56: {
  15779. Ffc: *(*struct {
  15780. Fcode [0]Tush
  15781. Ffreq Tush
  15782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  15783. Fdl: *(*struct {
  15784. Flen1 [0]Tush
  15785. Fdad Tush
  15786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15787. },
  15788. 57: {
  15789. Ffc: *(*struct {
  15790. Fcode [0]Tush
  15791. Ffreq Tush
  15792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  15793. Fdl: *(*struct {
  15794. Flen1 [0]Tush
  15795. Fdad Tush
  15796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15797. },
  15798. 58: {
  15799. Ffc: *(*struct {
  15800. Fcode [0]Tush
  15801. Ffreq Tush
  15802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  15803. Fdl: *(*struct {
  15804. Flen1 [0]Tush
  15805. Fdad Tush
  15806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15807. },
  15808. 59: {
  15809. Ffc: *(*struct {
  15810. Fcode [0]Tush
  15811. Ffreq Tush
  15812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  15813. Fdl: *(*struct {
  15814. Flen1 [0]Tush
  15815. Fdad Tush
  15816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15817. },
  15818. 60: {
  15819. Ffc: *(*struct {
  15820. Fcode [0]Tush
  15821. Ffreq Tush
  15822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  15823. Fdl: *(*struct {
  15824. Flen1 [0]Tush
  15825. Fdad Tush
  15826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15827. },
  15828. 61: {
  15829. Ffc: *(*struct {
  15830. Fcode [0]Tush
  15831. Ffreq Tush
  15832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  15833. Fdl: *(*struct {
  15834. Flen1 [0]Tush
  15835. Fdad Tush
  15836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15837. },
  15838. 62: {
  15839. Ffc: *(*struct {
  15840. Fcode [0]Tush
  15841. Ffreq Tush
  15842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  15843. Fdl: *(*struct {
  15844. Flen1 [0]Tush
  15845. Fdad Tush
  15846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15847. },
  15848. 63: {
  15849. Ffc: *(*struct {
  15850. Fcode [0]Tush
  15851. Ffreq Tush
  15852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  15853. Fdl: *(*struct {
  15854. Flen1 [0]Tush
  15855. Fdad Tush
  15856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15857. },
  15858. 64: {
  15859. Ffc: *(*struct {
  15860. Fcode [0]Tush
  15861. Ffreq Tush
  15862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  15863. Fdl: *(*struct {
  15864. Flen1 [0]Tush
  15865. Fdad Tush
  15866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15867. },
  15868. 65: {
  15869. Ffc: *(*struct {
  15870. Fcode [0]Tush
  15871. Ffreq Tush
  15872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  15873. Fdl: *(*struct {
  15874. Flen1 [0]Tush
  15875. Fdad Tush
  15876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15877. },
  15878. 66: {
  15879. Ffc: *(*struct {
  15880. Fcode [0]Tush
  15881. Ffreq Tush
  15882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  15883. Fdl: *(*struct {
  15884. Flen1 [0]Tush
  15885. Fdad Tush
  15886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15887. },
  15888. 67: {
  15889. Ffc: *(*struct {
  15890. Fcode [0]Tush
  15891. Ffreq Tush
  15892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  15893. Fdl: *(*struct {
  15894. Flen1 [0]Tush
  15895. Fdad Tush
  15896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15897. },
  15898. 68: {
  15899. Ffc: *(*struct {
  15900. Fcode [0]Tush
  15901. Ffreq Tush
  15902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  15903. Fdl: *(*struct {
  15904. Flen1 [0]Tush
  15905. Fdad Tush
  15906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15907. },
  15908. 69: {
  15909. Ffc: *(*struct {
  15910. Fcode [0]Tush
  15911. Ffreq Tush
  15912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  15913. Fdl: *(*struct {
  15914. Flen1 [0]Tush
  15915. Fdad Tush
  15916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15917. },
  15918. 70: {
  15919. Ffc: *(*struct {
  15920. Fcode [0]Tush
  15921. Ffreq Tush
  15922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  15923. Fdl: *(*struct {
  15924. Flen1 [0]Tush
  15925. Fdad Tush
  15926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15927. },
  15928. 71: {
  15929. Ffc: *(*struct {
  15930. Fcode [0]Tush
  15931. Ffreq Tush
  15932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  15933. Fdl: *(*struct {
  15934. Flen1 [0]Tush
  15935. Fdad Tush
  15936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15937. },
  15938. 72: {
  15939. Ffc: *(*struct {
  15940. Fcode [0]Tush
  15941. Ffreq Tush
  15942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  15943. Fdl: *(*struct {
  15944. Flen1 [0]Tush
  15945. Fdad Tush
  15946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15947. },
  15948. 73: {
  15949. Ffc: *(*struct {
  15950. Fcode [0]Tush
  15951. Ffreq Tush
  15952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  15953. Fdl: *(*struct {
  15954. Flen1 [0]Tush
  15955. Fdad Tush
  15956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15957. },
  15958. 74: {
  15959. Ffc: *(*struct {
  15960. Fcode [0]Tush
  15961. Ffreq Tush
  15962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  15963. Fdl: *(*struct {
  15964. Flen1 [0]Tush
  15965. Fdad Tush
  15966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15967. },
  15968. 75: {
  15969. Ffc: *(*struct {
  15970. Fcode [0]Tush
  15971. Ffreq Tush
  15972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  15973. Fdl: *(*struct {
  15974. Flen1 [0]Tush
  15975. Fdad Tush
  15976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15977. },
  15978. 76: {
  15979. Ffc: *(*struct {
  15980. Fcode [0]Tush
  15981. Ffreq Tush
  15982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  15983. Fdl: *(*struct {
  15984. Flen1 [0]Tush
  15985. Fdad Tush
  15986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15987. },
  15988. 77: {
  15989. Ffc: *(*struct {
  15990. Fcode [0]Tush
  15991. Ffreq Tush
  15992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  15993. Fdl: *(*struct {
  15994. Flen1 [0]Tush
  15995. Fdad Tush
  15996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15997. },
  15998. 78: {
  15999. Ffc: *(*struct {
  16000. Fcode [0]Tush
  16001. Ffreq Tush
  16002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  16003. Fdl: *(*struct {
  16004. Flen1 [0]Tush
  16005. Fdad Tush
  16006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16007. },
  16008. 79: {
  16009. Ffc: *(*struct {
  16010. Fcode [0]Tush
  16011. Ffreq Tush
  16012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  16013. Fdl: *(*struct {
  16014. Flen1 [0]Tush
  16015. Fdad Tush
  16016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16017. },
  16018. 80: {
  16019. Ffc: *(*struct {
  16020. Fcode [0]Tush
  16021. Ffreq Tush
  16022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  16023. Fdl: *(*struct {
  16024. Flen1 [0]Tush
  16025. Fdad Tush
  16026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16027. },
  16028. 81: {
  16029. Ffc: *(*struct {
  16030. Fcode [0]Tush
  16031. Ffreq Tush
  16032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  16033. Fdl: *(*struct {
  16034. Flen1 [0]Tush
  16035. Fdad Tush
  16036. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16037. },
  16038. 82: {
  16039. Ffc: *(*struct {
  16040. Fcode [0]Tush
  16041. Ffreq Tush
  16042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  16043. Fdl: *(*struct {
  16044. Flen1 [0]Tush
  16045. Fdad Tush
  16046. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16047. },
  16048. 83: {
  16049. Ffc: *(*struct {
  16050. Fcode [0]Tush
  16051. Ffreq Tush
  16052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  16053. Fdl: *(*struct {
  16054. Flen1 [0]Tush
  16055. Fdad Tush
  16056. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16057. },
  16058. 84: {
  16059. Ffc: *(*struct {
  16060. Fcode [0]Tush
  16061. Ffreq Tush
  16062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  16063. Fdl: *(*struct {
  16064. Flen1 [0]Tush
  16065. Fdad Tush
  16066. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16067. },
  16068. 85: {
  16069. Ffc: *(*struct {
  16070. Fcode [0]Tush
  16071. Ffreq Tush
  16072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  16073. Fdl: *(*struct {
  16074. Flen1 [0]Tush
  16075. Fdad Tush
  16076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16077. },
  16078. 86: {
  16079. Ffc: *(*struct {
  16080. Fcode [0]Tush
  16081. Ffreq Tush
  16082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  16083. Fdl: *(*struct {
  16084. Flen1 [0]Tush
  16085. Fdad Tush
  16086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16087. },
  16088. 87: {
  16089. Ffc: *(*struct {
  16090. Fcode [0]Tush
  16091. Ffreq Tush
  16092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  16093. Fdl: *(*struct {
  16094. Flen1 [0]Tush
  16095. Fdad Tush
  16096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16097. },
  16098. 88: {
  16099. Ffc: *(*struct {
  16100. Fcode [0]Tush
  16101. Ffreq Tush
  16102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  16103. Fdl: *(*struct {
  16104. Flen1 [0]Tush
  16105. Fdad Tush
  16106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16107. },
  16108. 89: {
  16109. Ffc: *(*struct {
  16110. Fcode [0]Tush
  16111. Ffreq Tush
  16112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  16113. Fdl: *(*struct {
  16114. Flen1 [0]Tush
  16115. Fdad Tush
  16116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16117. },
  16118. 90: {
  16119. Ffc: *(*struct {
  16120. Fcode [0]Tush
  16121. Ffreq Tush
  16122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  16123. Fdl: *(*struct {
  16124. Flen1 [0]Tush
  16125. Fdad Tush
  16126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16127. },
  16128. 91: {
  16129. Ffc: *(*struct {
  16130. Fcode [0]Tush
  16131. Ffreq Tush
  16132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  16133. Fdl: *(*struct {
  16134. Flen1 [0]Tush
  16135. Fdad Tush
  16136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16137. },
  16138. 92: {
  16139. Ffc: *(*struct {
  16140. Fcode [0]Tush
  16141. Ffreq Tush
  16142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  16143. Fdl: *(*struct {
  16144. Flen1 [0]Tush
  16145. Fdad Tush
  16146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16147. },
  16148. 93: {
  16149. Ffc: *(*struct {
  16150. Fcode [0]Tush
  16151. Ffreq Tush
  16152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  16153. Fdl: *(*struct {
  16154. Flen1 [0]Tush
  16155. Fdad Tush
  16156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16157. },
  16158. 94: {
  16159. Ffc: *(*struct {
  16160. Fcode [0]Tush
  16161. Ffreq Tush
  16162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  16163. Fdl: *(*struct {
  16164. Flen1 [0]Tush
  16165. Fdad Tush
  16166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16167. },
  16168. 95: {
  16169. Ffc: *(*struct {
  16170. Fcode [0]Tush
  16171. Ffreq Tush
  16172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  16173. Fdl: *(*struct {
  16174. Flen1 [0]Tush
  16175. Fdad Tush
  16176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16177. },
  16178. 96: {
  16179. Ffc: *(*struct {
  16180. Fcode [0]Tush
  16181. Ffreq Tush
  16182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16183. Fdl: *(*struct {
  16184. Flen1 [0]Tush
  16185. Fdad Tush
  16186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16187. },
  16188. 97: {
  16189. Ffc: *(*struct {
  16190. Fcode [0]Tush
  16191. Ffreq Tush
  16192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  16193. Fdl: *(*struct {
  16194. Flen1 [0]Tush
  16195. Fdad Tush
  16196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16197. },
  16198. 98: {
  16199. Ffc: *(*struct {
  16200. Fcode [0]Tush
  16201. Ffreq Tush
  16202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  16203. Fdl: *(*struct {
  16204. Flen1 [0]Tush
  16205. Fdad Tush
  16206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16207. },
  16208. 99: {
  16209. Ffc: *(*struct {
  16210. Fcode [0]Tush
  16211. Ffreq Tush
  16212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  16213. Fdl: *(*struct {
  16214. Flen1 [0]Tush
  16215. Fdad Tush
  16216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16217. },
  16218. 100: {
  16219. Ffc: *(*struct {
  16220. Fcode [0]Tush
  16221. Ffreq Tush
  16222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  16223. Fdl: *(*struct {
  16224. Flen1 [0]Tush
  16225. Fdad Tush
  16226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16227. },
  16228. 101: {
  16229. Ffc: *(*struct {
  16230. Fcode [0]Tush
  16231. Ffreq Tush
  16232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  16233. Fdl: *(*struct {
  16234. Flen1 [0]Tush
  16235. Fdad Tush
  16236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16237. },
  16238. 102: {
  16239. Ffc: *(*struct {
  16240. Fcode [0]Tush
  16241. Ffreq Tush
  16242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  16243. Fdl: *(*struct {
  16244. Flen1 [0]Tush
  16245. Fdad Tush
  16246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16247. },
  16248. 103: {
  16249. Ffc: *(*struct {
  16250. Fcode [0]Tush
  16251. Ffreq Tush
  16252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  16253. Fdl: *(*struct {
  16254. Flen1 [0]Tush
  16255. Fdad Tush
  16256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16257. },
  16258. 104: {
  16259. Ffc: *(*struct {
  16260. Fcode [0]Tush
  16261. Ffreq Tush
  16262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  16263. Fdl: *(*struct {
  16264. Flen1 [0]Tush
  16265. Fdad Tush
  16266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16267. },
  16268. 105: {
  16269. Ffc: *(*struct {
  16270. Fcode [0]Tush
  16271. Ffreq Tush
  16272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  16273. Fdl: *(*struct {
  16274. Flen1 [0]Tush
  16275. Fdad Tush
  16276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16277. },
  16278. 106: {
  16279. Ffc: *(*struct {
  16280. Fcode [0]Tush
  16281. Ffreq Tush
  16282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  16283. Fdl: *(*struct {
  16284. Flen1 [0]Tush
  16285. Fdad Tush
  16286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16287. },
  16288. 107: {
  16289. Ffc: *(*struct {
  16290. Fcode [0]Tush
  16291. Ffreq Tush
  16292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  16293. Fdl: *(*struct {
  16294. Flen1 [0]Tush
  16295. Fdad Tush
  16296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16297. },
  16298. 108: {
  16299. Ffc: *(*struct {
  16300. Fcode [0]Tush
  16301. Ffreq Tush
  16302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  16303. Fdl: *(*struct {
  16304. Flen1 [0]Tush
  16305. Fdad Tush
  16306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16307. },
  16308. 109: {
  16309. Ffc: *(*struct {
  16310. Fcode [0]Tush
  16311. Ffreq Tush
  16312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  16313. Fdl: *(*struct {
  16314. Flen1 [0]Tush
  16315. Fdad Tush
  16316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16317. },
  16318. 110: {
  16319. Ffc: *(*struct {
  16320. Fcode [0]Tush
  16321. Ffreq Tush
  16322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  16323. Fdl: *(*struct {
  16324. Flen1 [0]Tush
  16325. Fdad Tush
  16326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16327. },
  16328. 111: {
  16329. Ffc: *(*struct {
  16330. Fcode [0]Tush
  16331. Ffreq Tush
  16332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  16333. Fdl: *(*struct {
  16334. Flen1 [0]Tush
  16335. Fdad Tush
  16336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16337. },
  16338. 112: {
  16339. Ffc: *(*struct {
  16340. Fcode [0]Tush
  16341. Ffreq Tush
  16342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  16343. Fdl: *(*struct {
  16344. Flen1 [0]Tush
  16345. Fdad Tush
  16346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16347. },
  16348. 113: {
  16349. Ffc: *(*struct {
  16350. Fcode [0]Tush
  16351. Ffreq Tush
  16352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  16353. Fdl: *(*struct {
  16354. Flen1 [0]Tush
  16355. Fdad Tush
  16356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16357. },
  16358. 114: {
  16359. Ffc: *(*struct {
  16360. Fcode [0]Tush
  16361. Ffreq Tush
  16362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  16363. Fdl: *(*struct {
  16364. Flen1 [0]Tush
  16365. Fdad Tush
  16366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16367. },
  16368. 115: {
  16369. Ffc: *(*struct {
  16370. Fcode [0]Tush
  16371. Ffreq Tush
  16372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  16373. Fdl: *(*struct {
  16374. Flen1 [0]Tush
  16375. Fdad Tush
  16376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16377. },
  16378. 116: {
  16379. Ffc: *(*struct {
  16380. Fcode [0]Tush
  16381. Ffreq Tush
  16382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  16383. Fdl: *(*struct {
  16384. Flen1 [0]Tush
  16385. Fdad Tush
  16386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16387. },
  16388. 117: {
  16389. Ffc: *(*struct {
  16390. Fcode [0]Tush
  16391. Ffreq Tush
  16392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  16393. Fdl: *(*struct {
  16394. Flen1 [0]Tush
  16395. Fdad Tush
  16396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16397. },
  16398. 118: {
  16399. Ffc: *(*struct {
  16400. Fcode [0]Tush
  16401. Ffreq Tush
  16402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  16403. Fdl: *(*struct {
  16404. Flen1 [0]Tush
  16405. Fdad Tush
  16406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16407. },
  16408. 119: {
  16409. Ffc: *(*struct {
  16410. Fcode [0]Tush
  16411. Ffreq Tush
  16412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  16413. Fdl: *(*struct {
  16414. Flen1 [0]Tush
  16415. Fdad Tush
  16416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16417. },
  16418. 120: {
  16419. Ffc: *(*struct {
  16420. Fcode [0]Tush
  16421. Ffreq Tush
  16422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  16423. Fdl: *(*struct {
  16424. Flen1 [0]Tush
  16425. Fdad Tush
  16426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16427. },
  16428. 121: {
  16429. Ffc: *(*struct {
  16430. Fcode [0]Tush
  16431. Ffreq Tush
  16432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  16433. Fdl: *(*struct {
  16434. Flen1 [0]Tush
  16435. Fdad Tush
  16436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16437. },
  16438. 122: {
  16439. Ffc: *(*struct {
  16440. Fcode [0]Tush
  16441. Ffreq Tush
  16442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  16443. Fdl: *(*struct {
  16444. Flen1 [0]Tush
  16445. Fdad Tush
  16446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16447. },
  16448. 123: {
  16449. Ffc: *(*struct {
  16450. Fcode [0]Tush
  16451. Ffreq Tush
  16452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  16453. Fdl: *(*struct {
  16454. Flen1 [0]Tush
  16455. Fdad Tush
  16456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16457. },
  16458. 124: {
  16459. Ffc: *(*struct {
  16460. Fcode [0]Tush
  16461. Ffreq Tush
  16462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  16463. Fdl: *(*struct {
  16464. Flen1 [0]Tush
  16465. Fdad Tush
  16466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16467. },
  16468. 125: {
  16469. Ffc: *(*struct {
  16470. Fcode [0]Tush
  16471. Ffreq Tush
  16472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  16473. Fdl: *(*struct {
  16474. Flen1 [0]Tush
  16475. Fdad Tush
  16476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16477. },
  16478. 126: {
  16479. Ffc: *(*struct {
  16480. Fcode [0]Tush
  16481. Ffreq Tush
  16482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  16483. Fdl: *(*struct {
  16484. Flen1 [0]Tush
  16485. Fdad Tush
  16486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16487. },
  16488. 127: {
  16489. Ffc: *(*struct {
  16490. Fcode [0]Tush
  16491. Ffreq Tush
  16492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  16493. Fdl: *(*struct {
  16494. Flen1 [0]Tush
  16495. Fdad Tush
  16496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16497. },
  16498. 128: {
  16499. Ffc: *(*struct {
  16500. Fcode [0]Tush
  16501. Ffreq Tush
  16502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  16503. Fdl: *(*struct {
  16504. Flen1 [0]Tush
  16505. Fdad Tush
  16506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16507. },
  16508. 129: {
  16509. Ffc: *(*struct {
  16510. Fcode [0]Tush
  16511. Ffreq Tush
  16512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  16513. Fdl: *(*struct {
  16514. Flen1 [0]Tush
  16515. Fdad Tush
  16516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16517. },
  16518. 130: {
  16519. Ffc: *(*struct {
  16520. Fcode [0]Tush
  16521. Ffreq Tush
  16522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  16523. Fdl: *(*struct {
  16524. Flen1 [0]Tush
  16525. Fdad Tush
  16526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16527. },
  16528. 131: {
  16529. Ffc: *(*struct {
  16530. Fcode [0]Tush
  16531. Ffreq Tush
  16532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  16533. Fdl: *(*struct {
  16534. Flen1 [0]Tush
  16535. Fdad Tush
  16536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16537. },
  16538. 132: {
  16539. Ffc: *(*struct {
  16540. Fcode [0]Tush
  16541. Ffreq Tush
  16542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  16543. Fdl: *(*struct {
  16544. Flen1 [0]Tush
  16545. Fdad Tush
  16546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16547. },
  16548. 133: {
  16549. Ffc: *(*struct {
  16550. Fcode [0]Tush
  16551. Ffreq Tush
  16552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  16553. Fdl: *(*struct {
  16554. Flen1 [0]Tush
  16555. Fdad Tush
  16556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16557. },
  16558. 134: {
  16559. Ffc: *(*struct {
  16560. Fcode [0]Tush
  16561. Ffreq Tush
  16562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  16563. Fdl: *(*struct {
  16564. Flen1 [0]Tush
  16565. Fdad Tush
  16566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16567. },
  16568. 135: {
  16569. Ffc: *(*struct {
  16570. Fcode [0]Tush
  16571. Ffreq Tush
  16572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  16573. Fdl: *(*struct {
  16574. Flen1 [0]Tush
  16575. Fdad Tush
  16576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16577. },
  16578. 136: {
  16579. Ffc: *(*struct {
  16580. Fcode [0]Tush
  16581. Ffreq Tush
  16582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  16583. Fdl: *(*struct {
  16584. Flen1 [0]Tush
  16585. Fdad Tush
  16586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16587. },
  16588. 137: {
  16589. Ffc: *(*struct {
  16590. Fcode [0]Tush
  16591. Ffreq Tush
  16592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  16593. Fdl: *(*struct {
  16594. Flen1 [0]Tush
  16595. Fdad Tush
  16596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16597. },
  16598. 138: {
  16599. Ffc: *(*struct {
  16600. Fcode [0]Tush
  16601. Ffreq Tush
  16602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  16603. Fdl: *(*struct {
  16604. Flen1 [0]Tush
  16605. Fdad Tush
  16606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16607. },
  16608. 139: {
  16609. Ffc: *(*struct {
  16610. Fcode [0]Tush
  16611. Ffreq Tush
  16612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  16613. Fdl: *(*struct {
  16614. Flen1 [0]Tush
  16615. Fdad Tush
  16616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16617. },
  16618. 140: {
  16619. Ffc: *(*struct {
  16620. Fcode [0]Tush
  16621. Ffreq Tush
  16622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  16623. Fdl: *(*struct {
  16624. Flen1 [0]Tush
  16625. Fdad Tush
  16626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16627. },
  16628. 141: {
  16629. Ffc: *(*struct {
  16630. Fcode [0]Tush
  16631. Ffreq Tush
  16632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  16633. Fdl: *(*struct {
  16634. Flen1 [0]Tush
  16635. Fdad Tush
  16636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16637. },
  16638. 142: {
  16639. Ffc: *(*struct {
  16640. Fcode [0]Tush
  16641. Ffreq Tush
  16642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  16643. Fdl: *(*struct {
  16644. Flen1 [0]Tush
  16645. Fdad Tush
  16646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16647. },
  16648. 143: {
  16649. Ffc: *(*struct {
  16650. Fcode [0]Tush
  16651. Ffreq Tush
  16652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  16653. Fdl: *(*struct {
  16654. Flen1 [0]Tush
  16655. Fdad Tush
  16656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16657. },
  16658. 144: {
  16659. Ffc: *(*struct {
  16660. Fcode [0]Tush
  16661. Ffreq Tush
  16662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  16663. Fdl: *(*struct {
  16664. Flen1 [0]Tush
  16665. Fdad Tush
  16666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16667. },
  16668. 145: {
  16669. Ffc: *(*struct {
  16670. Fcode [0]Tush
  16671. Ffreq Tush
  16672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  16673. Fdl: *(*struct {
  16674. Flen1 [0]Tush
  16675. Fdad Tush
  16676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16677. },
  16678. 146: {
  16679. Ffc: *(*struct {
  16680. Fcode [0]Tush
  16681. Ffreq Tush
  16682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  16683. Fdl: *(*struct {
  16684. Flen1 [0]Tush
  16685. Fdad Tush
  16686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16687. },
  16688. 147: {
  16689. Ffc: *(*struct {
  16690. Fcode [0]Tush
  16691. Ffreq Tush
  16692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  16693. Fdl: *(*struct {
  16694. Flen1 [0]Tush
  16695. Fdad Tush
  16696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16697. },
  16698. 148: {
  16699. Ffc: *(*struct {
  16700. Fcode [0]Tush
  16701. Ffreq Tush
  16702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  16703. Fdl: *(*struct {
  16704. Flen1 [0]Tush
  16705. Fdad Tush
  16706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16707. },
  16708. 149: {
  16709. Ffc: *(*struct {
  16710. Fcode [0]Tush
  16711. Ffreq Tush
  16712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  16713. Fdl: *(*struct {
  16714. Flen1 [0]Tush
  16715. Fdad Tush
  16716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16717. },
  16718. 150: {
  16719. Ffc: *(*struct {
  16720. Fcode [0]Tush
  16721. Ffreq Tush
  16722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  16723. Fdl: *(*struct {
  16724. Flen1 [0]Tush
  16725. Fdad Tush
  16726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16727. },
  16728. 151: {
  16729. Ffc: *(*struct {
  16730. Fcode [0]Tush
  16731. Ffreq Tush
  16732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  16733. Fdl: *(*struct {
  16734. Flen1 [0]Tush
  16735. Fdad Tush
  16736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16737. },
  16738. 152: {
  16739. Ffc: *(*struct {
  16740. Fcode [0]Tush
  16741. Ffreq Tush
  16742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  16743. Fdl: *(*struct {
  16744. Flen1 [0]Tush
  16745. Fdad Tush
  16746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16747. },
  16748. 153: {
  16749. Ffc: *(*struct {
  16750. Fcode [0]Tush
  16751. Ffreq Tush
  16752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  16753. Fdl: *(*struct {
  16754. Flen1 [0]Tush
  16755. Fdad Tush
  16756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16757. },
  16758. 154: {
  16759. Ffc: *(*struct {
  16760. Fcode [0]Tush
  16761. Ffreq Tush
  16762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  16763. Fdl: *(*struct {
  16764. Flen1 [0]Tush
  16765. Fdad Tush
  16766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16767. },
  16768. 155: {
  16769. Ffc: *(*struct {
  16770. Fcode [0]Tush
  16771. Ffreq Tush
  16772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  16773. Fdl: *(*struct {
  16774. Flen1 [0]Tush
  16775. Fdad Tush
  16776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16777. },
  16778. 156: {
  16779. Ffc: *(*struct {
  16780. Fcode [0]Tush
  16781. Ffreq Tush
  16782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  16783. Fdl: *(*struct {
  16784. Flen1 [0]Tush
  16785. Fdad Tush
  16786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16787. },
  16788. 157: {
  16789. Ffc: *(*struct {
  16790. Fcode [0]Tush
  16791. Ffreq Tush
  16792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  16793. Fdl: *(*struct {
  16794. Flen1 [0]Tush
  16795. Fdad Tush
  16796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16797. },
  16798. 158: {
  16799. Ffc: *(*struct {
  16800. Fcode [0]Tush
  16801. Ffreq Tush
  16802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  16803. Fdl: *(*struct {
  16804. Flen1 [0]Tush
  16805. Fdad Tush
  16806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16807. },
  16808. 159: {
  16809. Ffc: *(*struct {
  16810. Fcode [0]Tush
  16811. Ffreq Tush
  16812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  16813. Fdl: *(*struct {
  16814. Flen1 [0]Tush
  16815. Fdad Tush
  16816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16817. },
  16818. 160: {
  16819. Ffc: *(*struct {
  16820. Fcode [0]Tush
  16821. Ffreq Tush
  16822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  16823. Fdl: *(*struct {
  16824. Flen1 [0]Tush
  16825. Fdad Tush
  16826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16827. },
  16828. 161: {
  16829. Ffc: *(*struct {
  16830. Fcode [0]Tush
  16831. Ffreq Tush
  16832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  16833. Fdl: *(*struct {
  16834. Flen1 [0]Tush
  16835. Fdad Tush
  16836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16837. },
  16838. 162: {
  16839. Ffc: *(*struct {
  16840. Fcode [0]Tush
  16841. Ffreq Tush
  16842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  16843. Fdl: *(*struct {
  16844. Flen1 [0]Tush
  16845. Fdad Tush
  16846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16847. },
  16848. 163: {
  16849. Ffc: *(*struct {
  16850. Fcode [0]Tush
  16851. Ffreq Tush
  16852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  16853. Fdl: *(*struct {
  16854. Flen1 [0]Tush
  16855. Fdad Tush
  16856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16857. },
  16858. 164: {
  16859. Ffc: *(*struct {
  16860. Fcode [0]Tush
  16861. Ffreq Tush
  16862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  16863. Fdl: *(*struct {
  16864. Flen1 [0]Tush
  16865. Fdad Tush
  16866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16867. },
  16868. 165: {
  16869. Ffc: *(*struct {
  16870. Fcode [0]Tush
  16871. Ffreq Tush
  16872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  16873. Fdl: *(*struct {
  16874. Flen1 [0]Tush
  16875. Fdad Tush
  16876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16877. },
  16878. 166: {
  16879. Ffc: *(*struct {
  16880. Fcode [0]Tush
  16881. Ffreq Tush
  16882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  16883. Fdl: *(*struct {
  16884. Flen1 [0]Tush
  16885. Fdad Tush
  16886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16887. },
  16888. 167: {
  16889. Ffc: *(*struct {
  16890. Fcode [0]Tush
  16891. Ffreq Tush
  16892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  16893. Fdl: *(*struct {
  16894. Flen1 [0]Tush
  16895. Fdad Tush
  16896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16897. },
  16898. 168: {
  16899. Ffc: *(*struct {
  16900. Fcode [0]Tush
  16901. Ffreq Tush
  16902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  16903. Fdl: *(*struct {
  16904. Flen1 [0]Tush
  16905. Fdad Tush
  16906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16907. },
  16908. 169: {
  16909. Ffc: *(*struct {
  16910. Fcode [0]Tush
  16911. Ffreq Tush
  16912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  16913. Fdl: *(*struct {
  16914. Flen1 [0]Tush
  16915. Fdad Tush
  16916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16917. },
  16918. 170: {
  16919. Ffc: *(*struct {
  16920. Fcode [0]Tush
  16921. Ffreq Tush
  16922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  16923. Fdl: *(*struct {
  16924. Flen1 [0]Tush
  16925. Fdad Tush
  16926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16927. },
  16928. 171: {
  16929. Ffc: *(*struct {
  16930. Fcode [0]Tush
  16931. Ffreq Tush
  16932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  16933. Fdl: *(*struct {
  16934. Flen1 [0]Tush
  16935. Fdad Tush
  16936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16937. },
  16938. 172: {
  16939. Ffc: *(*struct {
  16940. Fcode [0]Tush
  16941. Ffreq Tush
  16942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  16943. Fdl: *(*struct {
  16944. Flen1 [0]Tush
  16945. Fdad Tush
  16946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16947. },
  16948. 173: {
  16949. Ffc: *(*struct {
  16950. Fcode [0]Tush
  16951. Ffreq Tush
  16952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  16953. Fdl: *(*struct {
  16954. Flen1 [0]Tush
  16955. Fdad Tush
  16956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16957. },
  16958. 174: {
  16959. Ffc: *(*struct {
  16960. Fcode [0]Tush
  16961. Ffreq Tush
  16962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  16963. Fdl: *(*struct {
  16964. Flen1 [0]Tush
  16965. Fdad Tush
  16966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16967. },
  16968. 175: {
  16969. Ffc: *(*struct {
  16970. Fcode [0]Tush
  16971. Ffreq Tush
  16972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  16973. Fdl: *(*struct {
  16974. Flen1 [0]Tush
  16975. Fdad Tush
  16976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16977. },
  16978. 176: {
  16979. Ffc: *(*struct {
  16980. Fcode [0]Tush
  16981. Ffreq Tush
  16982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  16983. Fdl: *(*struct {
  16984. Flen1 [0]Tush
  16985. Fdad Tush
  16986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16987. },
  16988. 177: {
  16989. Ffc: *(*struct {
  16990. Fcode [0]Tush
  16991. Ffreq Tush
  16992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  16993. Fdl: *(*struct {
  16994. Flen1 [0]Tush
  16995. Fdad Tush
  16996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16997. },
  16998. 178: {
  16999. Ffc: *(*struct {
  17000. Fcode [0]Tush
  17001. Ffreq Tush
  17002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  17003. Fdl: *(*struct {
  17004. Flen1 [0]Tush
  17005. Fdad Tush
  17006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17007. },
  17008. 179: {
  17009. Ffc: *(*struct {
  17010. Fcode [0]Tush
  17011. Ffreq Tush
  17012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  17013. Fdl: *(*struct {
  17014. Flen1 [0]Tush
  17015. Fdad Tush
  17016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17017. },
  17018. 180: {
  17019. Ffc: *(*struct {
  17020. Fcode [0]Tush
  17021. Ffreq Tush
  17022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  17023. Fdl: *(*struct {
  17024. Flen1 [0]Tush
  17025. Fdad Tush
  17026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17027. },
  17028. 181: {
  17029. Ffc: *(*struct {
  17030. Fcode [0]Tush
  17031. Ffreq Tush
  17032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  17033. Fdl: *(*struct {
  17034. Flen1 [0]Tush
  17035. Fdad Tush
  17036. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17037. },
  17038. 182: {
  17039. Ffc: *(*struct {
  17040. Fcode [0]Tush
  17041. Ffreq Tush
  17042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  17043. Fdl: *(*struct {
  17044. Flen1 [0]Tush
  17045. Fdad Tush
  17046. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17047. },
  17048. 183: {
  17049. Ffc: *(*struct {
  17050. Fcode [0]Tush
  17051. Ffreq Tush
  17052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  17053. Fdl: *(*struct {
  17054. Flen1 [0]Tush
  17055. Fdad Tush
  17056. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17057. },
  17058. 184: {
  17059. Ffc: *(*struct {
  17060. Fcode [0]Tush
  17061. Ffreq Tush
  17062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  17063. Fdl: *(*struct {
  17064. Flen1 [0]Tush
  17065. Fdad Tush
  17066. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17067. },
  17068. 185: {
  17069. Ffc: *(*struct {
  17070. Fcode [0]Tush
  17071. Ffreq Tush
  17072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  17073. Fdl: *(*struct {
  17074. Flen1 [0]Tush
  17075. Fdad Tush
  17076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17077. },
  17078. 186: {
  17079. Ffc: *(*struct {
  17080. Fcode [0]Tush
  17081. Ffreq Tush
  17082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  17083. Fdl: *(*struct {
  17084. Flen1 [0]Tush
  17085. Fdad Tush
  17086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17087. },
  17088. 187: {
  17089. Ffc: *(*struct {
  17090. Fcode [0]Tush
  17091. Ffreq Tush
  17092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  17093. Fdl: *(*struct {
  17094. Flen1 [0]Tush
  17095. Fdad Tush
  17096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17097. },
  17098. 188: {
  17099. Ffc: *(*struct {
  17100. Fcode [0]Tush
  17101. Ffreq Tush
  17102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  17103. Fdl: *(*struct {
  17104. Flen1 [0]Tush
  17105. Fdad Tush
  17106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17107. },
  17108. 189: {
  17109. Ffc: *(*struct {
  17110. Fcode [0]Tush
  17111. Ffreq Tush
  17112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  17113. Fdl: *(*struct {
  17114. Flen1 [0]Tush
  17115. Fdad Tush
  17116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17117. },
  17118. 190: {
  17119. Ffc: *(*struct {
  17120. Fcode [0]Tush
  17121. Ffreq Tush
  17122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  17123. Fdl: *(*struct {
  17124. Flen1 [0]Tush
  17125. Fdad Tush
  17126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17127. },
  17128. 191: {
  17129. Ffc: *(*struct {
  17130. Fcode [0]Tush
  17131. Ffreq Tush
  17132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  17133. Fdl: *(*struct {
  17134. Flen1 [0]Tush
  17135. Fdad Tush
  17136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17137. },
  17138. 192: {
  17139. Ffc: *(*struct {
  17140. Fcode [0]Tush
  17141. Ffreq Tush
  17142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17143. Fdl: *(*struct {
  17144. Flen1 [0]Tush
  17145. Fdad Tush
  17146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17147. },
  17148. 193: {
  17149. Ffc: *(*struct {
  17150. Fcode [0]Tush
  17151. Ffreq Tush
  17152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  17153. Fdl: *(*struct {
  17154. Flen1 [0]Tush
  17155. Fdad Tush
  17156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17157. },
  17158. 194: {
  17159. Ffc: *(*struct {
  17160. Fcode [0]Tush
  17161. Ffreq Tush
  17162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  17163. Fdl: *(*struct {
  17164. Flen1 [0]Tush
  17165. Fdad Tush
  17166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17167. },
  17168. 195: {
  17169. Ffc: *(*struct {
  17170. Fcode [0]Tush
  17171. Ffreq Tush
  17172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  17173. Fdl: *(*struct {
  17174. Flen1 [0]Tush
  17175. Fdad Tush
  17176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17177. },
  17178. 196: {
  17179. Ffc: *(*struct {
  17180. Fcode [0]Tush
  17181. Ffreq Tush
  17182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  17183. Fdl: *(*struct {
  17184. Flen1 [0]Tush
  17185. Fdad Tush
  17186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17187. },
  17188. 197: {
  17189. Ffc: *(*struct {
  17190. Fcode [0]Tush
  17191. Ffreq Tush
  17192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  17193. Fdl: *(*struct {
  17194. Flen1 [0]Tush
  17195. Fdad Tush
  17196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17197. },
  17198. 198: {
  17199. Ffc: *(*struct {
  17200. Fcode [0]Tush
  17201. Ffreq Tush
  17202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  17203. Fdl: *(*struct {
  17204. Flen1 [0]Tush
  17205. Fdad Tush
  17206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17207. },
  17208. 199: {
  17209. Ffc: *(*struct {
  17210. Fcode [0]Tush
  17211. Ffreq Tush
  17212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  17213. Fdl: *(*struct {
  17214. Flen1 [0]Tush
  17215. Fdad Tush
  17216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17217. },
  17218. 200: {
  17219. Ffc: *(*struct {
  17220. Fcode [0]Tush
  17221. Ffreq Tush
  17222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  17223. Fdl: *(*struct {
  17224. Flen1 [0]Tush
  17225. Fdad Tush
  17226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17227. },
  17228. 201: {
  17229. Ffc: *(*struct {
  17230. Fcode [0]Tush
  17231. Ffreq Tush
  17232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  17233. Fdl: *(*struct {
  17234. Flen1 [0]Tush
  17235. Fdad Tush
  17236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17237. },
  17238. 202: {
  17239. Ffc: *(*struct {
  17240. Fcode [0]Tush
  17241. Ffreq Tush
  17242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  17243. Fdl: *(*struct {
  17244. Flen1 [0]Tush
  17245. Fdad Tush
  17246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17247. },
  17248. 203: {
  17249. Ffc: *(*struct {
  17250. Fcode [0]Tush
  17251. Ffreq Tush
  17252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  17253. Fdl: *(*struct {
  17254. Flen1 [0]Tush
  17255. Fdad Tush
  17256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17257. },
  17258. 204: {
  17259. Ffc: *(*struct {
  17260. Fcode [0]Tush
  17261. Ffreq Tush
  17262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  17263. Fdl: *(*struct {
  17264. Flen1 [0]Tush
  17265. Fdad Tush
  17266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17267. },
  17268. 205: {
  17269. Ffc: *(*struct {
  17270. Fcode [0]Tush
  17271. Ffreq Tush
  17272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  17273. Fdl: *(*struct {
  17274. Flen1 [0]Tush
  17275. Fdad Tush
  17276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17277. },
  17278. 206: {
  17279. Ffc: *(*struct {
  17280. Fcode [0]Tush
  17281. Ffreq Tush
  17282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  17283. Fdl: *(*struct {
  17284. Flen1 [0]Tush
  17285. Fdad Tush
  17286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17287. },
  17288. 207: {
  17289. Ffc: *(*struct {
  17290. Fcode [0]Tush
  17291. Ffreq Tush
  17292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  17293. Fdl: *(*struct {
  17294. Flen1 [0]Tush
  17295. Fdad Tush
  17296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17297. },
  17298. 208: {
  17299. Ffc: *(*struct {
  17300. Fcode [0]Tush
  17301. Ffreq Tush
  17302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  17303. Fdl: *(*struct {
  17304. Flen1 [0]Tush
  17305. Fdad Tush
  17306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17307. },
  17308. 209: {
  17309. Ffc: *(*struct {
  17310. Fcode [0]Tush
  17311. Ffreq Tush
  17312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  17313. Fdl: *(*struct {
  17314. Flen1 [0]Tush
  17315. Fdad Tush
  17316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17317. },
  17318. 210: {
  17319. Ffc: *(*struct {
  17320. Fcode [0]Tush
  17321. Ffreq Tush
  17322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  17323. Fdl: *(*struct {
  17324. Flen1 [0]Tush
  17325. Fdad Tush
  17326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17327. },
  17328. 211: {
  17329. Ffc: *(*struct {
  17330. Fcode [0]Tush
  17331. Ffreq Tush
  17332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  17333. Fdl: *(*struct {
  17334. Flen1 [0]Tush
  17335. Fdad Tush
  17336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17337. },
  17338. 212: {
  17339. Ffc: *(*struct {
  17340. Fcode [0]Tush
  17341. Ffreq Tush
  17342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  17343. Fdl: *(*struct {
  17344. Flen1 [0]Tush
  17345. Fdad Tush
  17346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17347. },
  17348. 213: {
  17349. Ffc: *(*struct {
  17350. Fcode [0]Tush
  17351. Ffreq Tush
  17352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  17353. Fdl: *(*struct {
  17354. Flen1 [0]Tush
  17355. Fdad Tush
  17356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17357. },
  17358. 214: {
  17359. Ffc: *(*struct {
  17360. Fcode [0]Tush
  17361. Ffreq Tush
  17362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  17363. Fdl: *(*struct {
  17364. Flen1 [0]Tush
  17365. Fdad Tush
  17366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17367. },
  17368. 215: {
  17369. Ffc: *(*struct {
  17370. Fcode [0]Tush
  17371. Ffreq Tush
  17372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  17373. Fdl: *(*struct {
  17374. Flen1 [0]Tush
  17375. Fdad Tush
  17376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17377. },
  17378. 216: {
  17379. Ffc: *(*struct {
  17380. Fcode [0]Tush
  17381. Ffreq Tush
  17382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  17383. Fdl: *(*struct {
  17384. Flen1 [0]Tush
  17385. Fdad Tush
  17386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17387. },
  17388. 217: {
  17389. Ffc: *(*struct {
  17390. Fcode [0]Tush
  17391. Ffreq Tush
  17392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  17393. Fdl: *(*struct {
  17394. Flen1 [0]Tush
  17395. Fdad Tush
  17396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17397. },
  17398. 218: {
  17399. Ffc: *(*struct {
  17400. Fcode [0]Tush
  17401. Ffreq Tush
  17402. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  17403. Fdl: *(*struct {
  17404. Flen1 [0]Tush
  17405. Fdad Tush
  17406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17407. },
  17408. 219: {
  17409. Ffc: *(*struct {
  17410. Fcode [0]Tush
  17411. Ffreq Tush
  17412. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  17413. Fdl: *(*struct {
  17414. Flen1 [0]Tush
  17415. Fdad Tush
  17416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17417. },
  17418. 220: {
  17419. Ffc: *(*struct {
  17420. Fcode [0]Tush
  17421. Ffreq Tush
  17422. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  17423. Fdl: *(*struct {
  17424. Flen1 [0]Tush
  17425. Fdad Tush
  17426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17427. },
  17428. 221: {
  17429. Ffc: *(*struct {
  17430. Fcode [0]Tush
  17431. Ffreq Tush
  17432. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  17433. Fdl: *(*struct {
  17434. Flen1 [0]Tush
  17435. Fdad Tush
  17436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17437. },
  17438. 222: {
  17439. Ffc: *(*struct {
  17440. Fcode [0]Tush
  17441. Ffreq Tush
  17442. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  17443. Fdl: *(*struct {
  17444. Flen1 [0]Tush
  17445. Fdad Tush
  17446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17447. },
  17448. 223: {
  17449. Ffc: *(*struct {
  17450. Fcode [0]Tush
  17451. Ffreq Tush
  17452. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  17453. Fdl: *(*struct {
  17454. Flen1 [0]Tush
  17455. Fdad Tush
  17456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17457. },
  17458. 224: {
  17459. Ffc: *(*struct {
  17460. Fcode [0]Tush
  17461. Ffreq Tush
  17462. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  17463. Fdl: *(*struct {
  17464. Flen1 [0]Tush
  17465. Fdad Tush
  17466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17467. },
  17468. 225: {
  17469. Ffc: *(*struct {
  17470. Fcode [0]Tush
  17471. Ffreq Tush
  17472. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  17473. Fdl: *(*struct {
  17474. Flen1 [0]Tush
  17475. Fdad Tush
  17476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17477. },
  17478. 226: {
  17479. Ffc: *(*struct {
  17480. Fcode [0]Tush
  17481. Ffreq Tush
  17482. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  17483. Fdl: *(*struct {
  17484. Flen1 [0]Tush
  17485. Fdad Tush
  17486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17487. },
  17488. 227: {
  17489. Ffc: *(*struct {
  17490. Fcode [0]Tush
  17491. Ffreq Tush
  17492. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  17493. Fdl: *(*struct {
  17494. Flen1 [0]Tush
  17495. Fdad Tush
  17496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17497. },
  17498. 228: {
  17499. Ffc: *(*struct {
  17500. Fcode [0]Tush
  17501. Ffreq Tush
  17502. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  17503. Fdl: *(*struct {
  17504. Flen1 [0]Tush
  17505. Fdad Tush
  17506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17507. },
  17508. 229: {
  17509. Ffc: *(*struct {
  17510. Fcode [0]Tush
  17511. Ffreq Tush
  17512. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  17513. Fdl: *(*struct {
  17514. Flen1 [0]Tush
  17515. Fdad Tush
  17516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17517. },
  17518. 230: {
  17519. Ffc: *(*struct {
  17520. Fcode [0]Tush
  17521. Ffreq Tush
  17522. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  17523. Fdl: *(*struct {
  17524. Flen1 [0]Tush
  17525. Fdad Tush
  17526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17527. },
  17528. 231: {
  17529. Ffc: *(*struct {
  17530. Fcode [0]Tush
  17531. Ffreq Tush
  17532. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  17533. Fdl: *(*struct {
  17534. Flen1 [0]Tush
  17535. Fdad Tush
  17536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17537. },
  17538. 232: {
  17539. Ffc: *(*struct {
  17540. Fcode [0]Tush
  17541. Ffreq Tush
  17542. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  17543. Fdl: *(*struct {
  17544. Flen1 [0]Tush
  17545. Fdad Tush
  17546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17547. },
  17548. 233: {
  17549. Ffc: *(*struct {
  17550. Fcode [0]Tush
  17551. Ffreq Tush
  17552. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  17553. Fdl: *(*struct {
  17554. Flen1 [0]Tush
  17555. Fdad Tush
  17556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17557. },
  17558. 234: {
  17559. Ffc: *(*struct {
  17560. Fcode [0]Tush
  17561. Ffreq Tush
  17562. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  17563. Fdl: *(*struct {
  17564. Flen1 [0]Tush
  17565. Fdad Tush
  17566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17567. },
  17568. 235: {
  17569. Ffc: *(*struct {
  17570. Fcode [0]Tush
  17571. Ffreq Tush
  17572. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  17573. Fdl: *(*struct {
  17574. Flen1 [0]Tush
  17575. Fdad Tush
  17576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17577. },
  17578. 236: {
  17579. Ffc: *(*struct {
  17580. Fcode [0]Tush
  17581. Ffreq Tush
  17582. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  17583. Fdl: *(*struct {
  17584. Flen1 [0]Tush
  17585. Fdad Tush
  17586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17587. },
  17588. 237: {
  17589. Ffc: *(*struct {
  17590. Fcode [0]Tush
  17591. Ffreq Tush
  17592. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  17593. Fdl: *(*struct {
  17594. Flen1 [0]Tush
  17595. Fdad Tush
  17596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17597. },
  17598. 238: {
  17599. Ffc: *(*struct {
  17600. Fcode [0]Tush
  17601. Ffreq Tush
  17602. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  17603. Fdl: *(*struct {
  17604. Flen1 [0]Tush
  17605. Fdad Tush
  17606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17607. },
  17608. 239: {
  17609. Ffc: *(*struct {
  17610. Fcode [0]Tush
  17611. Ffreq Tush
  17612. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  17613. Fdl: *(*struct {
  17614. Flen1 [0]Tush
  17615. Fdad Tush
  17616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17617. },
  17618. 240: {
  17619. Ffc: *(*struct {
  17620. Fcode [0]Tush
  17621. Ffreq Tush
  17622. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  17623. Fdl: *(*struct {
  17624. Flen1 [0]Tush
  17625. Fdad Tush
  17626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17627. },
  17628. 241: {
  17629. Ffc: *(*struct {
  17630. Fcode [0]Tush
  17631. Ffreq Tush
  17632. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  17633. Fdl: *(*struct {
  17634. Flen1 [0]Tush
  17635. Fdad Tush
  17636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17637. },
  17638. 242: {
  17639. Ffc: *(*struct {
  17640. Fcode [0]Tush
  17641. Ffreq Tush
  17642. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  17643. Fdl: *(*struct {
  17644. Flen1 [0]Tush
  17645. Fdad Tush
  17646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17647. },
  17648. 243: {
  17649. Ffc: *(*struct {
  17650. Fcode [0]Tush
  17651. Ffreq Tush
  17652. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  17653. Fdl: *(*struct {
  17654. Flen1 [0]Tush
  17655. Fdad Tush
  17656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17657. },
  17658. 244: {
  17659. Ffc: *(*struct {
  17660. Fcode [0]Tush
  17661. Ffreq Tush
  17662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  17663. Fdl: *(*struct {
  17664. Flen1 [0]Tush
  17665. Fdad Tush
  17666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17667. },
  17668. 245: {
  17669. Ffc: *(*struct {
  17670. Fcode [0]Tush
  17671. Ffreq Tush
  17672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  17673. Fdl: *(*struct {
  17674. Flen1 [0]Tush
  17675. Fdad Tush
  17676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17677. },
  17678. 246: {
  17679. Ffc: *(*struct {
  17680. Fcode [0]Tush
  17681. Ffreq Tush
  17682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  17683. Fdl: *(*struct {
  17684. Flen1 [0]Tush
  17685. Fdad Tush
  17686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17687. },
  17688. 247: {
  17689. Ffc: *(*struct {
  17690. Fcode [0]Tush
  17691. Ffreq Tush
  17692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  17693. Fdl: *(*struct {
  17694. Flen1 [0]Tush
  17695. Fdad Tush
  17696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17697. },
  17698. 248: {
  17699. Ffc: *(*struct {
  17700. Fcode [0]Tush
  17701. Ffreq Tush
  17702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  17703. Fdl: *(*struct {
  17704. Flen1 [0]Tush
  17705. Fdad Tush
  17706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17707. },
  17708. 249: {
  17709. Ffc: *(*struct {
  17710. Fcode [0]Tush
  17711. Ffreq Tush
  17712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  17713. Fdl: *(*struct {
  17714. Flen1 [0]Tush
  17715. Fdad Tush
  17716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17717. },
  17718. 250: {
  17719. Ffc: *(*struct {
  17720. Fcode [0]Tush
  17721. Ffreq Tush
  17722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  17723. Fdl: *(*struct {
  17724. Flen1 [0]Tush
  17725. Fdad Tush
  17726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17727. },
  17728. 251: {
  17729. Ffc: *(*struct {
  17730. Fcode [0]Tush
  17731. Ffreq Tush
  17732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  17733. Fdl: *(*struct {
  17734. Flen1 [0]Tush
  17735. Fdad Tush
  17736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17737. },
  17738. 252: {
  17739. Ffc: *(*struct {
  17740. Fcode [0]Tush
  17741. Ffreq Tush
  17742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  17743. Fdl: *(*struct {
  17744. Flen1 [0]Tush
  17745. Fdad Tush
  17746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17747. },
  17748. 253: {
  17749. Ffc: *(*struct {
  17750. Fcode [0]Tush
  17751. Ffreq Tush
  17752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  17753. Fdl: *(*struct {
  17754. Flen1 [0]Tush
  17755. Fdad Tush
  17756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17757. },
  17758. 254: {
  17759. Ffc: *(*struct {
  17760. Fcode [0]Tush
  17761. Ffreq Tush
  17762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  17763. Fdl: *(*struct {
  17764. Flen1 [0]Tush
  17765. Fdad Tush
  17766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17767. },
  17768. 255: {
  17769. Ffc: *(*struct {
  17770. Fcode [0]Tush
  17771. Ffreq Tush
  17772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  17773. Fdl: *(*struct {
  17774. Flen1 [0]Tush
  17775. Fdad Tush
  17776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17777. },
  17778. 256: {
  17779. Fdl: *(*struct {
  17780. Flen1 [0]Tush
  17781. Fdad Tush
  17782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17783. },
  17784. 257: {
  17785. Ffc: *(*struct {
  17786. Fcode [0]Tush
  17787. Ffreq Tush
  17788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  17789. Fdl: *(*struct {
  17790. Flen1 [0]Tush
  17791. Fdad Tush
  17792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17793. },
  17794. 258: {
  17795. Ffc: *(*struct {
  17796. Fcode [0]Tush
  17797. Ffreq Tush
  17798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  17799. Fdl: *(*struct {
  17800. Flen1 [0]Tush
  17801. Fdad Tush
  17802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17803. },
  17804. 259: {
  17805. Ffc: *(*struct {
  17806. Fcode [0]Tush
  17807. Ffreq Tush
  17808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  17809. Fdl: *(*struct {
  17810. Flen1 [0]Tush
  17811. Fdad Tush
  17812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17813. },
  17814. 260: {
  17815. Ffc: *(*struct {
  17816. Fcode [0]Tush
  17817. Ffreq Tush
  17818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17819. Fdl: *(*struct {
  17820. Flen1 [0]Tush
  17821. Fdad Tush
  17822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17823. },
  17824. 261: {
  17825. Ffc: *(*struct {
  17826. Fcode [0]Tush
  17827. Ffreq Tush
  17828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  17829. Fdl: *(*struct {
  17830. Flen1 [0]Tush
  17831. Fdad Tush
  17832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17833. },
  17834. 262: {
  17835. Ffc: *(*struct {
  17836. Fcode [0]Tush
  17837. Ffreq Tush
  17838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  17839. Fdl: *(*struct {
  17840. Flen1 [0]Tush
  17841. Fdad Tush
  17842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17843. },
  17844. 263: {
  17845. Ffc: *(*struct {
  17846. Fcode [0]Tush
  17847. Ffreq Tush
  17848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  17849. Fdl: *(*struct {
  17850. Flen1 [0]Tush
  17851. Fdad Tush
  17852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17853. },
  17854. 264: {
  17855. Ffc: *(*struct {
  17856. Fcode [0]Tush
  17857. Ffreq Tush
  17858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17859. Fdl: *(*struct {
  17860. Flen1 [0]Tush
  17861. Fdad Tush
  17862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17863. },
  17864. 265: {
  17865. Ffc: *(*struct {
  17866. Fcode [0]Tush
  17867. Ffreq Tush
  17868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  17869. Fdl: *(*struct {
  17870. Flen1 [0]Tush
  17871. Fdad Tush
  17872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17873. },
  17874. 266: {
  17875. Ffc: *(*struct {
  17876. Fcode [0]Tush
  17877. Ffreq Tush
  17878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  17879. Fdl: *(*struct {
  17880. Flen1 [0]Tush
  17881. Fdad Tush
  17882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17883. },
  17884. 267: {
  17885. Ffc: *(*struct {
  17886. Fcode [0]Tush
  17887. Ffreq Tush
  17888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  17889. Fdl: *(*struct {
  17890. Flen1 [0]Tush
  17891. Fdad Tush
  17892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17893. },
  17894. 268: {
  17895. Ffc: *(*struct {
  17896. Fcode [0]Tush
  17897. Ffreq Tush
  17898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  17899. Fdl: *(*struct {
  17900. Flen1 [0]Tush
  17901. Fdad Tush
  17902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17903. },
  17904. 269: {
  17905. Ffc: *(*struct {
  17906. Fcode [0]Tush
  17907. Ffreq Tush
  17908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  17909. Fdl: *(*struct {
  17910. Flen1 [0]Tush
  17911. Fdad Tush
  17912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17913. },
  17914. 270: {
  17915. Ffc: *(*struct {
  17916. Fcode [0]Tush
  17917. Ffreq Tush
  17918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  17919. Fdl: *(*struct {
  17920. Flen1 [0]Tush
  17921. Fdad Tush
  17922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17923. },
  17924. 271: {
  17925. Ffc: *(*struct {
  17926. Fcode [0]Tush
  17927. Ffreq Tush
  17928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  17929. Fdl: *(*struct {
  17930. Flen1 [0]Tush
  17931. Fdad Tush
  17932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17933. },
  17934. 272: {
  17935. Ffc: *(*struct {
  17936. Fcode [0]Tush
  17937. Ffreq Tush
  17938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  17939. Fdl: *(*struct {
  17940. Flen1 [0]Tush
  17941. Fdad Tush
  17942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17943. },
  17944. 273: {
  17945. Ffc: *(*struct {
  17946. Fcode [0]Tush
  17947. Ffreq Tush
  17948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  17949. Fdl: *(*struct {
  17950. Flen1 [0]Tush
  17951. Fdad Tush
  17952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17953. },
  17954. 274: {
  17955. Ffc: *(*struct {
  17956. Fcode [0]Tush
  17957. Ffreq Tush
  17958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  17959. Fdl: *(*struct {
  17960. Flen1 [0]Tush
  17961. Fdad Tush
  17962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17963. },
  17964. 275: {
  17965. Ffc: *(*struct {
  17966. Fcode [0]Tush
  17967. Ffreq Tush
  17968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  17969. Fdl: *(*struct {
  17970. Flen1 [0]Tush
  17971. Fdad Tush
  17972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17973. },
  17974. 276: {
  17975. Ffc: *(*struct {
  17976. Fcode [0]Tush
  17977. Ffreq Tush
  17978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  17979. Fdl: *(*struct {
  17980. Flen1 [0]Tush
  17981. Fdad Tush
  17982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17983. },
  17984. 277: {
  17985. Ffc: *(*struct {
  17986. Fcode [0]Tush
  17987. Ffreq Tush
  17988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  17989. Fdl: *(*struct {
  17990. Flen1 [0]Tush
  17991. Fdad Tush
  17992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17993. },
  17994. 278: {
  17995. Ffc: *(*struct {
  17996. Fcode [0]Tush
  17997. Ffreq Tush
  17998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  17999. Fdl: *(*struct {
  18000. Flen1 [0]Tush
  18001. Fdad Tush
  18002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18003. },
  18004. 279: {
  18005. Ffc: *(*struct {
  18006. Fcode [0]Tush
  18007. Ffreq Tush
  18008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  18009. Fdl: *(*struct {
  18010. Flen1 [0]Tush
  18011. Fdad Tush
  18012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18013. },
  18014. 280: {
  18015. Ffc: *(*struct {
  18016. Fcode [0]Tush
  18017. Ffreq Tush
  18018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  18019. Fdl: *(*struct {
  18020. Flen1 [0]Tush
  18021. Fdad Tush
  18022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18023. },
  18024. 281: {
  18025. Ffc: *(*struct {
  18026. Fcode [0]Tush
  18027. Ffreq Tush
  18028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  18029. Fdl: *(*struct {
  18030. Flen1 [0]Tush
  18031. Fdad Tush
  18032. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18033. },
  18034. 282: {
  18035. Ffc: *(*struct {
  18036. Fcode [0]Tush
  18037. Ffreq Tush
  18038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  18039. Fdl: *(*struct {
  18040. Flen1 [0]Tush
  18041. Fdad Tush
  18042. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18043. },
  18044. 283: {
  18045. Ffc: *(*struct {
  18046. Fcode [0]Tush
  18047. Ffreq Tush
  18048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  18049. Fdl: *(*struct {
  18050. Flen1 [0]Tush
  18051. Fdad Tush
  18052. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18053. },
  18054. 284: {
  18055. Ffc: *(*struct {
  18056. Fcode [0]Tush
  18057. Ffreq Tush
  18058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  18059. Fdl: *(*struct {
  18060. Flen1 [0]Tush
  18061. Fdad Tush
  18062. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18063. },
  18064. 285: {
  18065. Ffc: *(*struct {
  18066. Fcode [0]Tush
  18067. Ffreq Tush
  18068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  18069. Fdl: *(*struct {
  18070. Flen1 [0]Tush
  18071. Fdad Tush
  18072. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18073. },
  18074. 286: {
  18075. Ffc: *(*struct {
  18076. Fcode [0]Tush
  18077. Ffreq Tush
  18078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  18079. Fdl: *(*struct {
  18080. Flen1 [0]Tush
  18081. Fdad Tush
  18082. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18083. },
  18084. 287: {
  18085. Ffc: *(*struct {
  18086. Fcode [0]Tush
  18087. Ffreq Tush
  18088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  18089. Fdl: *(*struct {
  18090. Flen1 [0]Tush
  18091. Fdad Tush
  18092. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18093. },
  18094. }
  18095. var _static_dtree = [30]Tct_data{
  18096. 0: {
  18097. Fdl: *(*struct {
  18098. Flen1 [0]Tush
  18099. Fdad Tush
  18100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18101. },
  18102. 1: {
  18103. Ffc: *(*struct {
  18104. Fcode [0]Tush
  18105. Ffreq Tush
  18106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  18107. Fdl: *(*struct {
  18108. Flen1 [0]Tush
  18109. Fdad Tush
  18110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18111. },
  18112. 2: {
  18113. Ffc: *(*struct {
  18114. Fcode [0]Tush
  18115. Ffreq Tush
  18116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18117. Fdl: *(*struct {
  18118. Flen1 [0]Tush
  18119. Fdad Tush
  18120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18121. },
  18122. 3: {
  18123. Ffc: *(*struct {
  18124. Fcode [0]Tush
  18125. Ffreq Tush
  18126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  18127. Fdl: *(*struct {
  18128. Flen1 [0]Tush
  18129. Fdad Tush
  18130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18131. },
  18132. 4: {
  18133. Ffc: *(*struct {
  18134. Fcode [0]Tush
  18135. Ffreq Tush
  18136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  18137. Fdl: *(*struct {
  18138. Flen1 [0]Tush
  18139. Fdad Tush
  18140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18141. },
  18142. 5: {
  18143. Ffc: *(*struct {
  18144. Fcode [0]Tush
  18145. Ffreq Tush
  18146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  18147. Fdl: *(*struct {
  18148. Flen1 [0]Tush
  18149. Fdad Tush
  18150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18151. },
  18152. 6: {
  18153. Ffc: *(*struct {
  18154. Fcode [0]Tush
  18155. Ffreq Tush
  18156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  18157. Fdl: *(*struct {
  18158. Flen1 [0]Tush
  18159. Fdad Tush
  18160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18161. },
  18162. 7: {
  18163. Ffc: *(*struct {
  18164. Fcode [0]Tush
  18165. Ffreq Tush
  18166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  18167. Fdl: *(*struct {
  18168. Flen1 [0]Tush
  18169. Fdad Tush
  18170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18171. },
  18172. 8: {
  18173. Ffc: *(*struct {
  18174. Fcode [0]Tush
  18175. Ffreq Tush
  18176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  18177. Fdl: *(*struct {
  18178. Flen1 [0]Tush
  18179. Fdad Tush
  18180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18181. },
  18182. 9: {
  18183. Ffc: *(*struct {
  18184. Fcode [0]Tush
  18185. Ffreq Tush
  18186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  18187. Fdl: *(*struct {
  18188. Flen1 [0]Tush
  18189. Fdad Tush
  18190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18191. },
  18192. 10: {
  18193. Ffc: *(*struct {
  18194. Fcode [0]Tush
  18195. Ffreq Tush
  18196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  18197. Fdl: *(*struct {
  18198. Flen1 [0]Tush
  18199. Fdad Tush
  18200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18201. },
  18202. 11: {
  18203. Ffc: *(*struct {
  18204. Fcode [0]Tush
  18205. Ffreq Tush
  18206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  18207. Fdl: *(*struct {
  18208. Flen1 [0]Tush
  18209. Fdad Tush
  18210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18211. },
  18212. 12: {
  18213. Ffc: *(*struct {
  18214. Fcode [0]Tush
  18215. Ffreq Tush
  18216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  18217. Fdl: *(*struct {
  18218. Flen1 [0]Tush
  18219. Fdad Tush
  18220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18221. },
  18222. 13: {
  18223. Ffc: *(*struct {
  18224. Fcode [0]Tush
  18225. Ffreq Tush
  18226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  18227. Fdl: *(*struct {
  18228. Flen1 [0]Tush
  18229. Fdad Tush
  18230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18231. },
  18232. 14: {
  18233. Ffc: *(*struct {
  18234. Fcode [0]Tush
  18235. Ffreq Tush
  18236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  18237. Fdl: *(*struct {
  18238. Flen1 [0]Tush
  18239. Fdad Tush
  18240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18241. },
  18242. 15: {
  18243. Ffc: *(*struct {
  18244. Fcode [0]Tush
  18245. Ffreq Tush
  18246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  18247. Fdl: *(*struct {
  18248. Flen1 [0]Tush
  18249. Fdad Tush
  18250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18251. },
  18252. 16: {
  18253. Ffc: *(*struct {
  18254. Fcode [0]Tush
  18255. Ffreq Tush
  18256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  18257. Fdl: *(*struct {
  18258. Flen1 [0]Tush
  18259. Fdad Tush
  18260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18261. },
  18262. 17: {
  18263. Ffc: *(*struct {
  18264. Fcode [0]Tush
  18265. Ffreq Tush
  18266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  18267. Fdl: *(*struct {
  18268. Flen1 [0]Tush
  18269. Fdad Tush
  18270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18271. },
  18272. 18: {
  18273. Ffc: *(*struct {
  18274. Fcode [0]Tush
  18275. Ffreq Tush
  18276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18277. Fdl: *(*struct {
  18278. Flen1 [0]Tush
  18279. Fdad Tush
  18280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18281. },
  18282. 19: {
  18283. Ffc: *(*struct {
  18284. Fcode [0]Tush
  18285. Ffreq Tush
  18286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  18287. Fdl: *(*struct {
  18288. Flen1 [0]Tush
  18289. Fdad Tush
  18290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18291. },
  18292. 20: {
  18293. Ffc: *(*struct {
  18294. Fcode [0]Tush
  18295. Ffreq Tush
  18296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18297. Fdl: *(*struct {
  18298. Flen1 [0]Tush
  18299. Fdad Tush
  18300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18301. },
  18302. 21: {
  18303. Ffc: *(*struct {
  18304. Fcode [0]Tush
  18305. Ffreq Tush
  18306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  18307. Fdl: *(*struct {
  18308. Flen1 [0]Tush
  18309. Fdad Tush
  18310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18311. },
  18312. 22: {
  18313. Ffc: *(*struct {
  18314. Fcode [0]Tush
  18315. Ffreq Tush
  18316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  18317. Fdl: *(*struct {
  18318. Flen1 [0]Tush
  18319. Fdad Tush
  18320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18321. },
  18322. 23: {
  18323. Ffc: *(*struct {
  18324. Fcode [0]Tush
  18325. Ffreq Tush
  18326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  18327. Fdl: *(*struct {
  18328. Flen1 [0]Tush
  18329. Fdad Tush
  18330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18331. },
  18332. 24: {
  18333. Ffc: *(*struct {
  18334. Fcode [0]Tush
  18335. Ffreq Tush
  18336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  18337. Fdl: *(*struct {
  18338. Flen1 [0]Tush
  18339. Fdad Tush
  18340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18341. },
  18342. 25: {
  18343. Ffc: *(*struct {
  18344. Fcode [0]Tush
  18345. Ffreq Tush
  18346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  18347. Fdl: *(*struct {
  18348. Flen1 [0]Tush
  18349. Fdad Tush
  18350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18351. },
  18352. 26: {
  18353. Ffc: *(*struct {
  18354. Fcode [0]Tush
  18355. Ffreq Tush
  18356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18357. Fdl: *(*struct {
  18358. Flen1 [0]Tush
  18359. Fdad Tush
  18360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18361. },
  18362. 27: {
  18363. Ffc: *(*struct {
  18364. Fcode [0]Tush
  18365. Ffreq Tush
  18366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18367. Fdl: *(*struct {
  18368. Flen1 [0]Tush
  18369. Fdad Tush
  18370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18371. },
  18372. 28: {
  18373. Ffc: *(*struct {
  18374. Fcode [0]Tush
  18375. Ffreq Tush
  18376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18377. Fdl: *(*struct {
  18378. Flen1 [0]Tush
  18379. Fdad Tush
  18380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18381. },
  18382. 29: {
  18383. Ffc: *(*struct {
  18384. Fcode [0]Tush
  18385. Ffreq Tush
  18386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  18387. Fdl: *(*struct {
  18388. Flen1 [0]Tush
  18389. Fdad Tush
  18390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18391. },
  18392. }
  18393. var _base_length = [29]int32{
  18394. 1: int32(1),
  18395. 2: int32(2),
  18396. 3: int32(3),
  18397. 4: int32(4),
  18398. 5: int32(5),
  18399. 6: int32(6),
  18400. 7: int32(7),
  18401. 8: int32(8),
  18402. 9: int32(10),
  18403. 10: int32(12),
  18404. 11: int32(14),
  18405. 12: int32(16),
  18406. 13: int32(20),
  18407. 14: int32(24),
  18408. 15: int32(28),
  18409. 16: int32(32),
  18410. 17: int32(40),
  18411. 18: int32(48),
  18412. 19: int32(56),
  18413. 20: int32(64),
  18414. 21: int32(80),
  18415. 22: int32(96),
  18416. 23: int32(112),
  18417. 24: int32(128),
  18418. 25: int32(160),
  18419. 26: int32(192),
  18420. 27: int32(224),
  18421. }
  18422. var _base_dist = [30]int32{
  18423. 1: int32(1),
  18424. 2: int32(2),
  18425. 3: int32(3),
  18426. 4: int32(4),
  18427. 5: int32(6),
  18428. 6: int32(8),
  18429. 7: int32(12),
  18430. 8: int32(16),
  18431. 9: int32(24),
  18432. 10: int32(32),
  18433. 11: int32(48),
  18434. 12: int32(64),
  18435. 13: int32(96),
  18436. 14: int32(128),
  18437. 15: int32(192),
  18438. 16: int32(256),
  18439. 17: int32(384),
  18440. 18: int32(512),
  18441. 19: int32(768),
  18442. 20: int32(1024),
  18443. 21: int32(1536),
  18444. 22: int32(2048),
  18445. 23: int32(3072),
  18446. 24: int32(4096),
  18447. 25: int32(6144),
  18448. 26: int32(8192),
  18449. 27: int32(12288),
  18450. 28: int32(16384),
  18451. 29: int32(24576),
  18452. }
  18453. var _static_l_desc = Tstatic_tree_desc{
  18454. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  18455. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  18456. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  18457. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  18458. Fmax_length: int32(m_MAX_BITS),
  18459. }
  18460. var _static_d_desc = Tstatic_tree_desc{
  18461. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  18462. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  18463. Felems: int32(m_D_CODES),
  18464. Fmax_length: int32(m_MAX_BITS),
  18465. }
  18466. var _static_bl_desc = Tstatic_tree_desc{
  18467. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  18468. Felems: int32(m_BL_CODES),
  18469. Fmax_length: int32(m_MAX_BL_BITS),
  18470. }
  18471. /* ===========================================================================
  18472. * Output a short LSB first on the stream.
  18473. * IN assertion: there is enough room in pendingBuf.
  18474. */
  18475. // C documentation
  18476. //
  18477. // /* ===========================================================================
  18478. // * Reverse the first len bits of a code, using straightforward code (a faster
  18479. // * method would use a table)
  18480. // * IN assertion: 1 <= len <= 15
  18481. // */
  18482. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  18483. var res uint32
  18484. var v1 int32
  18485. _, _ = res, v1
  18486. res = uint32(0)
  18487. for {
  18488. res |= code & uint32(1)
  18489. code >>= uint32(1)
  18490. res <<= uint32(1)
  18491. goto _2
  18492. _2:
  18493. ;
  18494. len1--
  18495. v1 = len1
  18496. if !(v1 > 0) {
  18497. break
  18498. }
  18499. }
  18500. return res >> int32(1)
  18501. }
  18502. // C documentation
  18503. //
  18504. // /* ===========================================================================
  18505. // * Flush the bit buffer, keeping at most 7 bits in it.
  18506. // */
  18507. func _bi_flush(tls *libc.TLS, s uintptr) {
  18508. var v1, v3, v5 Tulg
  18509. var v2, v4, v6, p7 uintptr
  18510. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  18511. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  18512. v2 = s + 20
  18513. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18514. *(*Tulg)(unsafe.Pointer(v2))++
  18515. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18516. v4 = s + 20
  18517. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18518. *(*Tulg)(unsafe.Pointer(v4))++
  18519. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18520. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18521. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18522. } else {
  18523. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  18524. v6 = s + 20
  18525. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18526. *(*Tulg)(unsafe.Pointer(v6))++
  18527. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18528. p7 = s + 5816
  18529. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  18530. *(*int32)(unsafe.Pointer(s + 5820)) -= int32(8)
  18531. }
  18532. }
  18533. }
  18534. // C documentation
  18535. //
  18536. // /* ===========================================================================
  18537. // * Flush the bit buffer and align the output on a byte boundary
  18538. // */
  18539. func _bi_windup(tls *libc.TLS, s uintptr) {
  18540. var v1, v3, v5 Tulg
  18541. var v2, v4, v6 uintptr
  18542. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  18543. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  18544. v2 = s + 20
  18545. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18546. *(*Tulg)(unsafe.Pointer(v2))++
  18547. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  18548. v4 = s + 20
  18549. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18550. *(*Tulg)(unsafe.Pointer(v4))++
  18551. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  18552. } else {
  18553. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  18554. v6 = s + 20
  18555. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18556. *(*Tulg)(unsafe.Pointer(v6))++
  18557. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18558. }
  18559. }
  18560. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18561. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18562. }
  18563. // C documentation
  18564. //
  18565. // /* ===========================================================================
  18566. // * Generate the codes for a given tree and bit counts (which need not be
  18567. // * optimal).
  18568. // * IN assertion: the array bl_count contains the bit length statistics for
  18569. // * the given tree and the field len is set for all tree elements.
  18570. // * OUT assertion: the field code is set for all tree elements of non
  18571. // * zero code length.
  18572. // */
  18573. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  18574. bp := tls.Alloc(32)
  18575. defer tls.Free(32)
  18576. var bits, len1, n int32
  18577. var code uint32
  18578. var v3 Tush
  18579. var v4 uintptr
  18580. var _ /* next_code at bp+0 */ [16]Tush
  18581. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  18582. code = uint32(0) /* code index */
  18583. /* The distribution counts are first used to generate the code values
  18584. * without bit reversal.
  18585. */
  18586. bits = int32(1)
  18587. for {
  18588. if !(bits <= int32(m_MAX_BITS)) {
  18589. break
  18590. }
  18591. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  18592. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  18593. goto _1
  18594. _1:
  18595. ;
  18596. bits++
  18597. }
  18598. /* Check that the bit counts in bl_count are consistent. The last code
  18599. * must be all ones.
  18600. */
  18601. n = 0
  18602. for {
  18603. if !(n <= max_code) {
  18604. break
  18605. }
  18606. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  18607. if len1 == 0 {
  18608. goto _2
  18609. }
  18610. /* Now reverse the bits */
  18611. v4 = bp + uintptr(len1)*2
  18612. v3 = *(*Tush)(unsafe.Pointer(v4))
  18613. *(*Tush)(unsafe.Pointer(v4))++
  18614. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  18615. goto _2
  18616. _2:
  18617. ;
  18618. n++
  18619. }
  18620. }
  18621. /* Send a code of the given tree. c and tree must not have side effects */
  18622. /* ===========================================================================
  18623. * Send a value on a given number of bits.
  18624. * IN assertion: length <= 16 and value fits in length bits.
  18625. */
  18626. /* the arguments must not have side effects */
  18627. // C documentation
  18628. //
  18629. // /* ===========================================================================
  18630. // * Initialize the various 'constant' tables.
  18631. // */
  18632. func _tr_static_init(tls *libc.TLS) {
  18633. }
  18634. /* ===========================================================================
  18635. * Generate the file trees.h describing the static trees.
  18636. */
  18637. // C documentation
  18638. //
  18639. // /* ===========================================================================
  18640. // * Initialize a new block.
  18641. // */
  18642. func _init_block(tls *libc.TLS, s uintptr) {
  18643. var n int32
  18644. var v4 Tulg
  18645. var v5 TuInt
  18646. _, _, _ = n, v4, v5 /* iterates over tree elements */
  18647. /* Initialize the trees. */
  18648. n = 0
  18649. for {
  18650. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  18651. break
  18652. }
  18653. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(n)*4)) = uint16(0)
  18654. goto _1
  18655. _1:
  18656. ;
  18657. n++
  18658. }
  18659. n = 0
  18660. for {
  18661. if !(n < int32(m_D_CODES)) {
  18662. break
  18663. }
  18664. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(n)*4)) = uint16(0)
  18665. goto _2
  18666. _2:
  18667. ;
  18668. n++
  18669. }
  18670. n = 0
  18671. for {
  18672. if !(n < int32(m_BL_CODES)) {
  18673. break
  18674. }
  18675. *(*Tush)(unsafe.Pointer(s + 2684 + uintptr(n)*4)) = uint16(0)
  18676. goto _3
  18677. _3:
  18678. ;
  18679. n++
  18680. }
  18681. *(*Tush)(unsafe.Pointer(s + 148 + 256*4)) = uint16(1)
  18682. v4 = libc.Uint32FromInt32(0)
  18683. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  18684. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  18685. v5 = libc.Uint32FromInt32(0)
  18686. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  18687. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  18688. }
  18689. // C documentation
  18690. //
  18691. // /* ===========================================================================
  18692. // * Initialize the tree data structures for a new zlib stream.
  18693. // */
  18694. func x__tr_init(tls *libc.TLS, s uintptr) {
  18695. _tr_static_init(tls)
  18696. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 148
  18697. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  18698. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2440
  18699. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  18700. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2684
  18701. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  18702. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18703. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18704. /* Initialize the first block of the first file: */
  18705. _init_block(tls, s)
  18706. }
  18707. /* Index within the heap array of least frequent node in the Huffman tree */
  18708. /* ===========================================================================
  18709. * Remove the smallest element from the heap and recreate the heap with
  18710. * one less element. Updates heap and heap_len.
  18711. */
  18712. /* ===========================================================================
  18713. * Compares to subtrees, using the tree depth as tie breaker when
  18714. * the subtrees have equal frequency. This minimizes the worst case length.
  18715. */
  18716. // C documentation
  18717. //
  18718. // /* ===========================================================================
  18719. // * Restore the heap property by moving down the tree starting at node k,
  18720. // * exchanging a node with the smallest of its two sons if necessary, stopping
  18721. // * when the heap property is re-established (each father smaller than its
  18722. // * two sons).
  18723. // */
  18724. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  18725. var j, v int32
  18726. _, _ = j, v
  18727. v = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(k)*4))
  18728. j = k << int32(1) /* left son of k */
  18729. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  18730. /* Set j to the smallest of the two sons: */
  18731. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j+int32(1))*4)))*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j+int32(1))*4)))*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j+int32(1))*4)))))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4))))))) {
  18732. j++
  18733. }
  18734. /* Exit if v is smaller than both sons */
  18735. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(v)))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4)))))) {
  18736. break
  18737. }
  18738. /* Exchange v with the smallest son */
  18739. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(j)*4))
  18740. k = j
  18741. /* And continue down the tree, setting j to the left son of k */
  18742. j <<= int32(1)
  18743. }
  18744. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(k)*4)) = v
  18745. }
  18746. // C documentation
  18747. //
  18748. // /* ===========================================================================
  18749. // * Compute the optimal bit lengths for a tree and update the total bit length
  18750. // * for the current block.
  18751. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  18752. // * above are the tree nodes sorted by increasing frequency.
  18753. // * OUT assertions: the field len is set to the optimal bit length, the
  18754. // * array bl_count contains the frequencies for each bit length.
  18755. // * The length opt_len is updated; static_len is also updated if stree is
  18756. // * not null.
  18757. // */
  18758. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  18759. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  18760. var extra, stree, tree, p3 uintptr
  18761. var f Tush
  18762. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  18763. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18764. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  18765. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18766. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  18767. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  18768. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  18769. overflow = 0 /* number of elements with bit length too large */
  18770. bits = 0
  18771. for {
  18772. if !(bits <= int32(m_MAX_BITS)) {
  18773. break
  18774. }
  18775. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2)) = uint16(0)
  18776. goto _1
  18777. _1:
  18778. ;
  18779. bits++
  18780. }
  18781. /* In a first pass, compute the optimal bit lengths (which may
  18782. * overflow in the case of the bit length tree).
  18783. */
  18784. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2908 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  18785. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  18786. for {
  18787. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  18788. break
  18789. }
  18790. n = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(h)*4))
  18791. bits = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  18792. if bits > max_length {
  18793. bits = max_length
  18794. overflow++
  18795. }
  18796. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = libc.Uint16FromInt32(bits)
  18797. /* We overwrite tree[n].Dad which is no longer needed */
  18798. if n > max_code {
  18799. goto _2
  18800. } /* not a leaf node */
  18801. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2))++
  18802. xbits = 0
  18803. if n >= base {
  18804. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  18805. }
  18806. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  18807. *(*Tulg)(unsafe.Pointer(s + 5800)) += uint32(f) * uint32(libc.Uint32FromInt32(bits+xbits))
  18808. if stree != 0 {
  18809. *(*Tulg)(unsafe.Pointer(s + 5804)) += uint32(f) * uint32(libc.Uint32FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  18810. }
  18811. goto _2
  18812. _2:
  18813. ;
  18814. h++
  18815. }
  18816. if overflow == 0 {
  18817. return
  18818. }
  18819. /* This happens for example on obj2 and pic of the Calgary corpus */
  18820. /* Find the first bit length which could increase: */
  18821. for cond := true; cond; cond = overflow > 0 {
  18822. bits = max_length - int32(1)
  18823. for libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2))) == 0 {
  18824. bits--
  18825. }
  18826. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2))-- /* move one leaf down the tree */
  18827. p3 = s + 2876 + uintptr(bits+int32(1))*2
  18828. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  18829. *(*Tush)(unsafe.Pointer(s + 2876 + uintptr(max_length)*2))--
  18830. /* The brother of the overflow item also moves one step up,
  18831. * but this does not affect bl_count[max_length]
  18832. */
  18833. overflow -= int32(2)
  18834. }
  18835. /* Now recompute all bit lengths, scanning in increasing frequency.
  18836. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  18837. * lengths instead of fixing only the wrong ones. This idea is taken
  18838. * from 'ar' written by Haruhiko Okumura.)
  18839. */
  18840. bits = max_length
  18841. for {
  18842. if !(bits != 0) {
  18843. break
  18844. }
  18845. n = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2876 + uintptr(bits)*2)))
  18846. for n != 0 {
  18847. h--
  18848. v5 = h
  18849. m = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v5)*4))
  18850. if m > max_code {
  18851. continue
  18852. }
  18853. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != libc.Uint32FromInt32(bits) {
  18854. *(*Tulg)(unsafe.Pointer(s + 5800)) += (libc.Uint32FromInt32(bits) - uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  18855. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = libc.Uint16FromInt32(bits)
  18856. }
  18857. n--
  18858. }
  18859. goto _4
  18860. _4:
  18861. ;
  18862. bits--
  18863. }
  18864. }
  18865. // C documentation
  18866. //
  18867. // /* ===========================================================================
  18868. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  18869. // * Update the total bit length for the current block.
  18870. // * IN assertion: the field freq is set for all tree elements.
  18871. // * OUT assertions: the fields len and code are set to the optimal bit length
  18872. // * and corresponding code. The length opt_len is updated; static_len is
  18873. // * also updated if stree is not null. The field max_code is set.
  18874. // */
  18875. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  18876. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  18877. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  18878. var v18 Tush
  18879. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  18880. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18881. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18882. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  18883. max_code = -int32(1) /* new node being created */
  18884. /* Construct the initial heap, with least frequent element in
  18885. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18886. * heap[0] is not used.
  18887. */
  18888. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  18889. /* Construct the initial heap, with least frequent element in
  18890. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18891. * heap[0] is not used.
  18892. */
  18893. (*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)
  18894. n = 0
  18895. for {
  18896. if !(n < elems) {
  18897. break
  18898. }
  18899. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  18900. v3 = s + 5200
  18901. *(*int32)(unsafe.Pointer(v3))++
  18902. v2 = *(*int32)(unsafe.Pointer(v3))
  18903. v4 = n
  18904. max_code = v4
  18905. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v2)*4)) = v4
  18906. *(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(n))) = uint8(0)
  18907. } else {
  18908. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  18909. }
  18910. goto _1
  18911. _1:
  18912. ;
  18913. n++
  18914. }
  18915. /* The pkzip format requires that at least one distance code exists,
  18916. * and that at least one bit should be sent even if there is only one
  18917. * possible code. So to avoid special checks later on we force at least
  18918. * two codes of non zero frequency.
  18919. */
  18920. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  18921. if max_code < int32(2) {
  18922. max_code++
  18923. v7 = max_code
  18924. v6 = v7
  18925. } else {
  18926. v6 = 0
  18927. }
  18928. v5 = v6
  18929. v9 = s + 5200
  18930. *(*int32)(unsafe.Pointer(v9))++
  18931. v8 = *(*int32)(unsafe.Pointer(v9))
  18932. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v8)*4)) = v5
  18933. node = v5
  18934. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  18935. *(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(node))) = uint8(0)
  18936. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  18937. if stree != 0 {
  18938. *(*Tulg)(unsafe.Pointer(s + 5804)) -= uint32(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  18939. }
  18940. /* node is 0 or 1 so it does not have extra bits */
  18941. }
  18942. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  18943. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  18944. * establish sub-heaps of increasing lengths:
  18945. */
  18946. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  18947. for {
  18948. if !(n >= int32(1)) {
  18949. break
  18950. }
  18951. _pqdownheap(tls, s, tree, n)
  18952. goto _10
  18953. _10:
  18954. ;
  18955. n--
  18956. }
  18957. /* Construct the Huffman tree by repeatedly combining the least two
  18958. * frequent nodes.
  18959. */
  18960. node = elems /* next internal node of the tree */
  18961. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  18962. n = *(*int32)(unsafe.Pointer(s + 2908 + 1*4))
  18963. v12 = s + 5200
  18964. v11 = *(*int32)(unsafe.Pointer(v12))
  18965. *(*int32)(unsafe.Pointer(v12))--
  18966. *(*int32)(unsafe.Pointer(s + 2908 + 1*4)) = *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v11)*4))
  18967. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  18968. m = *(*int32)(unsafe.Pointer(s + 2908 + 1*4)) /* m = node of next least frequency */
  18969. v14 = s + 5204
  18970. *(*int32)(unsafe.Pointer(v14))--
  18971. v13 = *(*int32)(unsafe.Pointer(v14))
  18972. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  18973. v16 = s + 5204
  18974. *(*int32)(unsafe.Pointer(v16))--
  18975. v15 = *(*int32)(unsafe.Pointer(v16))
  18976. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v15)*4)) = m
  18977. /* Create a new node father of n and m */
  18978. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = libc.Uint16FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  18979. if libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(n)))) >= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(m)))) {
  18980. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(n))))
  18981. } else {
  18982. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(m))))
  18983. }
  18984. *(*Tuch)(unsafe.Pointer(s + 5208 + uintptr(node))) = libc.Uint8FromInt32(v17 + libc.Int32FromInt32(1))
  18985. v18 = libc.Uint16FromInt32(node)
  18986. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  18987. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  18988. /* and insert the new node in the heap */
  18989. v19 = node
  18990. node++
  18991. *(*int32)(unsafe.Pointer(s + 2908 + 1*4)) = v19
  18992. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  18993. }
  18994. v21 = s + 5204
  18995. *(*int32)(unsafe.Pointer(v21))--
  18996. v20 = *(*int32)(unsafe.Pointer(v21))
  18997. *(*int32)(unsafe.Pointer(s + 2908 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 2908 + 1*4))
  18998. /* At this point, the fields freq and dad are set. We can now
  18999. * generate the bit lengths.
  19000. */
  19001. _gen_bitlen(tls, s, desc)
  19002. /* The field len is now set, we can generate the bit codes */
  19003. _gen_codes(tls, tree, max_code, s+2876)
  19004. }
  19005. // C documentation
  19006. //
  19007. // /* ===========================================================================
  19008. // * Scan a literal or distance tree to determine the frequencies of the codes
  19009. // * in the bit length tree.
  19010. // */
  19011. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  19012. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  19013. var p3 uintptr
  19014. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  19015. prevlen = -int32(1) /* length of current code */
  19016. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  19017. count = 0 /* repeat count of the current code */
  19018. max_count = int32(7) /* max repeat count */
  19019. min_count = int32(4) /* min repeat count */
  19020. if nextlen == 0 {
  19021. max_count = int32(138)
  19022. min_count = libc.Int32FromInt32(3)
  19023. }
  19024. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  19025. n = 0
  19026. for {
  19027. if !(n <= max_code) {
  19028. break
  19029. }
  19030. curlen = nextlen
  19031. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  19032. count++
  19033. v2 = count
  19034. if v2 < max_count && curlen == nextlen {
  19035. goto _1
  19036. } else {
  19037. if count < min_count {
  19038. p3 = s + 2684 + uintptr(curlen)*4
  19039. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  19040. } else {
  19041. if curlen != 0 {
  19042. if curlen != prevlen {
  19043. *(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4))++
  19044. }
  19045. *(*Tush)(unsafe.Pointer(s + 2684 + 16*4))++
  19046. } else {
  19047. if count <= int32(10) {
  19048. *(*Tush)(unsafe.Pointer(s + 2684 + 17*4))++
  19049. } else {
  19050. *(*Tush)(unsafe.Pointer(s + 2684 + 18*4))++
  19051. }
  19052. }
  19053. }
  19054. }
  19055. count = 0
  19056. prevlen = curlen
  19057. if nextlen == 0 {
  19058. max_count = int32(138)
  19059. min_count = libc.Int32FromInt32(3)
  19060. } else {
  19061. if curlen == nextlen {
  19062. max_count = int32(6)
  19063. min_count = libc.Int32FromInt32(3)
  19064. } else {
  19065. max_count = int32(7)
  19066. min_count = libc.Int32FromInt32(4)
  19067. }
  19068. }
  19069. goto _1
  19070. _1:
  19071. ;
  19072. n++
  19073. }
  19074. }
  19075. // C documentation
  19076. //
  19077. // /* ===========================================================================
  19078. // * Send a literal or distance tree in compressed form, using the codes in
  19079. // * bl_tree.
  19080. // */
  19081. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  19082. 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
  19083. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  19084. 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
  19085. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19086. prevlen = -int32(1) /* length of current code */
  19087. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  19088. count = 0 /* repeat count of the current code */
  19089. max_count = int32(7) /* max repeat count */
  19090. min_count = int32(4) /* min repeat count */
  19091. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  19092. if nextlen == 0 {
  19093. max_count = int32(138)
  19094. min_count = libc.Int32FromInt32(3)
  19095. }
  19096. n = 0
  19097. for {
  19098. if !(n <= max_code) {
  19099. break
  19100. }
  19101. curlen = nextlen
  19102. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  19103. count++
  19104. v2 = count
  19105. if v2 < max_count && curlen == nextlen {
  19106. goto _1
  19107. } else {
  19108. if count < min_count {
  19109. for {
  19110. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4 + 2)))
  19111. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19112. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))
  19113. p5 = s + 5816
  19114. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19115. v7 = s + 20
  19116. v6 = *(*Tulg)(unsafe.Pointer(v7))
  19117. *(*Tulg)(unsafe.Pointer(v7))++
  19118. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19119. v9 = s + 20
  19120. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19121. *(*Tulg)(unsafe.Pointer(v9))++
  19122. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19123. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19124. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  19125. } else {
  19126. p10 = s + 5816
  19127. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19128. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  19129. }
  19130. goto _4
  19131. _4:
  19132. ;
  19133. count--
  19134. v3 = count
  19135. if !(v3 != 0) {
  19136. break
  19137. }
  19138. }
  19139. } else {
  19140. if curlen != 0 {
  19141. if curlen != prevlen {
  19142. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4 + 2)))
  19143. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19144. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))
  19145. p11 = s + 5816
  19146. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19147. v13 = s + 20
  19148. v12 = *(*Tulg)(unsafe.Pointer(v13))
  19149. *(*Tulg)(unsafe.Pointer(v13))++
  19150. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19151. v15 = s + 20
  19152. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19153. *(*Tulg)(unsafe.Pointer(v15))++
  19154. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19155. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19156. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  19157. } else {
  19158. p16 = s + 5816
  19159. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19160. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  19161. }
  19162. count--
  19163. }
  19164. len2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 16*4 + 2)))
  19165. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19166. val2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 16*4)))
  19167. p17 = s + 5816
  19168. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19169. v19 = s + 20
  19170. v18 = *(*Tulg)(unsafe.Pointer(v19))
  19171. *(*Tulg)(unsafe.Pointer(v19))++
  19172. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19173. v21 = s + 20
  19174. v20 = *(*Tulg)(unsafe.Pointer(v21))
  19175. *(*Tulg)(unsafe.Pointer(v21))++
  19176. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19177. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19178. *(*int32)(unsafe.Pointer(s + 5820)) += len2 - int32(m_Buf_size)
  19179. } else {
  19180. p22 = s + 5816
  19181. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19182. *(*int32)(unsafe.Pointer(s + 5820)) += len2
  19183. }
  19184. len3 = int32(2)
  19185. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19186. val3 = count - int32(3)
  19187. p23 = s + 5816
  19188. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19189. v25 = s + 20
  19190. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19191. *(*Tulg)(unsafe.Pointer(v25))++
  19192. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19193. v27 = s + 20
  19194. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19195. *(*Tulg)(unsafe.Pointer(v27))++
  19196. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19197. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19198. *(*int32)(unsafe.Pointer(s + 5820)) += len3 - int32(m_Buf_size)
  19199. } else {
  19200. p28 = s + 5816
  19201. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19202. *(*int32)(unsafe.Pointer(s + 5820)) += len3
  19203. }
  19204. } else {
  19205. if count <= int32(10) {
  19206. len4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 17*4 + 2)))
  19207. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19208. val4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 17*4)))
  19209. p29 = s + 5816
  19210. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19211. v31 = s + 20
  19212. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19213. *(*Tulg)(unsafe.Pointer(v31))++
  19214. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19215. v33 = s + 20
  19216. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19217. *(*Tulg)(unsafe.Pointer(v33))++
  19218. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19219. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19220. *(*int32)(unsafe.Pointer(s + 5820)) += len4 - int32(m_Buf_size)
  19221. } else {
  19222. p34 = s + 5816
  19223. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19224. *(*int32)(unsafe.Pointer(s + 5820)) += len4
  19225. }
  19226. len5 = int32(3)
  19227. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19228. val5 = count - int32(3)
  19229. p35 = s + 5816
  19230. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19231. v37 = s + 20
  19232. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19233. *(*Tulg)(unsafe.Pointer(v37))++
  19234. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19235. v39 = s + 20
  19236. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19237. *(*Tulg)(unsafe.Pointer(v39))++
  19238. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19239. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19240. *(*int32)(unsafe.Pointer(s + 5820)) += len5 - int32(m_Buf_size)
  19241. } else {
  19242. p40 = s + 5816
  19243. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19244. *(*int32)(unsafe.Pointer(s + 5820)) += len5
  19245. }
  19246. } else {
  19247. len6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 18*4 + 2)))
  19248. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  19249. val6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 18*4)))
  19250. p41 = s + 5816
  19251. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | libc.Int32FromUint16(libc.Uint16FromInt32(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19252. v43 = s + 20
  19253. v42 = *(*Tulg)(unsafe.Pointer(v43))
  19254. *(*Tulg)(unsafe.Pointer(v43))++
  19255. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19256. v45 = s + 20
  19257. v44 = *(*Tulg)(unsafe.Pointer(v45))
  19258. *(*Tulg)(unsafe.Pointer(v45))++
  19259. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19260. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19261. *(*int32)(unsafe.Pointer(s + 5820)) += len6 - int32(m_Buf_size)
  19262. } else {
  19263. p46 = s + 5816
  19264. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19265. *(*int32)(unsafe.Pointer(s + 5820)) += len6
  19266. }
  19267. len7 = int32(7)
  19268. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  19269. val7 = count - int32(11)
  19270. p47 = s + 5816
  19271. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | libc.Int32FromUint16(libc.Uint16FromInt32(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19272. v49 = s + 20
  19273. v48 = *(*Tulg)(unsafe.Pointer(v49))
  19274. *(*Tulg)(unsafe.Pointer(v49))++
  19275. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19276. v51 = s + 20
  19277. v50 = *(*Tulg)(unsafe.Pointer(v51))
  19278. *(*Tulg)(unsafe.Pointer(v51))++
  19279. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19280. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19281. *(*int32)(unsafe.Pointer(s + 5820)) += len7 - int32(m_Buf_size)
  19282. } else {
  19283. p52 = s + 5816
  19284. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | libc.Int32FromUint16(libc.Uint16FromInt32(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19285. *(*int32)(unsafe.Pointer(s + 5820)) += len7
  19286. }
  19287. }
  19288. }
  19289. }
  19290. }
  19291. count = 0
  19292. prevlen = curlen
  19293. if nextlen == 0 {
  19294. max_count = int32(138)
  19295. min_count = libc.Int32FromInt32(3)
  19296. } else {
  19297. if curlen == nextlen {
  19298. max_count = int32(6)
  19299. min_count = libc.Int32FromInt32(3)
  19300. } else {
  19301. max_count = int32(7)
  19302. min_count = libc.Int32FromInt32(4)
  19303. }
  19304. }
  19305. goto _1
  19306. _1:
  19307. ;
  19308. n++
  19309. }
  19310. }
  19311. // C documentation
  19312. //
  19313. // /* ===========================================================================
  19314. // * Construct the Huffman tree for the bit lengths and return the index in
  19315. // * bl_order of the last bit length code to send.
  19316. // */
  19317. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  19318. var max_blindex int32
  19319. _ = max_blindex /* index of last bit length code of non zero freq */
  19320. /* Determine the bit length frequencies for literal and distance trees */
  19321. _scan_tree(tls, s, s+148, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  19322. _scan_tree(tls, s, s+2440, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  19323. /* Build the bit length tree: */
  19324. _build_tree(tls, s, s+2864)
  19325. /* opt_len now includes the length of the tree representations, except the
  19326. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  19327. */
  19328. /* Determine the number of bit length codes to send. The pkzip format
  19329. * requires that at least 4 bit length codes be sent. (appnote.txt says
  19330. * 3 but the actual value used is 4.)
  19331. */
  19332. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  19333. for {
  19334. if !(max_blindex >= int32(3)) {
  19335. break
  19336. }
  19337. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  19338. break
  19339. }
  19340. goto _1
  19341. _1:
  19342. ;
  19343. max_blindex--
  19344. }
  19345. /* Update opt_len to include the bit length tree and counts */
  19346. *(*Tulg)(unsafe.Pointer(s + 5800)) += uint32(3)*(libc.Uint32FromInt32(max_blindex)+uint32(1)) + uint32(5) + uint32(5) + uint32(4)
  19347. return max_blindex
  19348. }
  19349. // C documentation
  19350. //
  19351. // /* ===========================================================================
  19352. // * Send the header for a block using dynamic Huffman trees: the counts, the
  19353. // * lengths of the bit length codes, the literal tree and the distance tree.
  19354. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  19355. // */
  19356. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  19357. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  19358. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  19359. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  19360. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19361. len1 = int32(5)
  19362. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19363. val = lcodes - int32(257)
  19364. p1 = s + 5816
  19365. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19366. v3 = s + 20
  19367. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19368. *(*Tulg)(unsafe.Pointer(v3))++
  19369. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19370. v5 = s + 20
  19371. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19372. *(*Tulg)(unsafe.Pointer(v5))++
  19373. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19374. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19375. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  19376. } else {
  19377. p6 = s + 5816
  19378. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19379. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  19380. } /* not +255 as stated in appnote.txt */
  19381. len11 = int32(5)
  19382. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19383. val1 = dcodes - int32(1)
  19384. p7 = s + 5816
  19385. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19386. v9 = s + 20
  19387. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19388. *(*Tulg)(unsafe.Pointer(v9))++
  19389. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19390. v11 = s + 20
  19391. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19392. *(*Tulg)(unsafe.Pointer(v11))++
  19393. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19394. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19395. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  19396. } else {
  19397. p12 = s + 5816
  19398. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | libc.Int32FromUint16(libc.Uint16FromInt32(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19399. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  19400. }
  19401. len2 = int32(4)
  19402. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19403. val2 = blcodes - int32(4)
  19404. p13 = s + 5816
  19405. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19406. v15 = s + 20
  19407. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19408. *(*Tulg)(unsafe.Pointer(v15))++
  19409. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19410. v17 = s + 20
  19411. v16 = *(*Tulg)(unsafe.Pointer(v17))
  19412. *(*Tulg)(unsafe.Pointer(v17))++
  19413. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19414. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19415. *(*int32)(unsafe.Pointer(s + 5820)) += len2 - int32(m_Buf_size)
  19416. } else {
  19417. p18 = s + 5816
  19418. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | libc.Int32FromUint16(libc.Uint16FromInt32(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19419. *(*int32)(unsafe.Pointer(s + 5820)) += len2
  19420. } /* not -3 as stated in appnote.txt */
  19421. rank = 0
  19422. for {
  19423. if !(rank < blcodes) {
  19424. break
  19425. }
  19426. len3 = int32(3)
  19427. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19428. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(_bl_order[rank])*4 + 2)))
  19429. p20 = s + 5816
  19430. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19431. v22 = s + 20
  19432. v21 = *(*Tulg)(unsafe.Pointer(v22))
  19433. *(*Tulg)(unsafe.Pointer(v22))++
  19434. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19435. v24 = s + 20
  19436. v23 = *(*Tulg)(unsafe.Pointer(v24))
  19437. *(*Tulg)(unsafe.Pointer(v24))++
  19438. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19439. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19440. *(*int32)(unsafe.Pointer(s + 5820)) += len3 - int32(m_Buf_size)
  19441. } else {
  19442. p25 = s + 5816
  19443. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2684 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19444. *(*int32)(unsafe.Pointer(s + 5820)) += len3
  19445. }
  19446. goto _19
  19447. _19:
  19448. ;
  19449. rank++
  19450. }
  19451. _send_tree(tls, s, s+148, lcodes-int32(1)) /* literal tree */
  19452. _send_tree(tls, s, s+2440, dcodes-int32(1)) /* distance tree */
  19453. }
  19454. // C documentation
  19455. //
  19456. // /* ===========================================================================
  19457. // * Send a stored block
  19458. // */
  19459. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19460. var len1, val int32
  19461. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  19462. var v11, v13, v2, v4, v7, v9 Tulg
  19463. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  19464. len1 = int32(3)
  19465. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19466. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  19467. p1 = s + 5816
  19468. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19469. v3 = s + 20
  19470. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19471. *(*Tulg)(unsafe.Pointer(v3))++
  19472. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19473. v5 = s + 20
  19474. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19475. *(*Tulg)(unsafe.Pointer(v5))++
  19476. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19477. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19478. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  19479. } else {
  19480. p6 = s + 5816
  19481. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19482. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  19483. } /* send block type */
  19484. _bi_windup(tls, s) /* align on byte boundary */
  19485. v8 = s + 20
  19486. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19487. *(*Tulg)(unsafe.Pointer(v8))++
  19488. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  19489. v10 = s + 20
  19490. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19491. *(*Tulg)(unsafe.Pointer(v10))++
  19492. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) >> libc.Int32FromInt32(8))
  19493. v12 = s + 20
  19494. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19495. *(*Tulg)(unsafe.Pointer(v12))++
  19496. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  19497. v14 = s + 20
  19498. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19499. *(*Tulg)(unsafe.Pointer(v14))++
  19500. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  19501. if stored_len != 0 {
  19502. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  19503. }
  19504. *(*Tulg)(unsafe.Pointer(s + 20)) += stored_len
  19505. }
  19506. // C documentation
  19507. //
  19508. // /* ===========================================================================
  19509. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  19510. // */
  19511. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  19512. _bi_flush(tls, s)
  19513. }
  19514. // C documentation
  19515. //
  19516. // /* ===========================================================================
  19517. // * Send one empty static block to give enough lookahead for inflate.
  19518. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  19519. // */
  19520. func x__tr_align(tls *libc.TLS, s uintptr) {
  19521. var len1, len11, val, val1 int32
  19522. var v10, v2, v4, v8 Tulg
  19523. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  19524. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  19525. len1 = int32(3)
  19526. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19527. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  19528. p1 = s + 5816
  19529. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19530. v3 = s + 20
  19531. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19532. *(*Tulg)(unsafe.Pointer(v3))++
  19533. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19534. v5 = s + 20
  19535. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19536. *(*Tulg)(unsafe.Pointer(v5))++
  19537. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19538. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19539. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  19540. } else {
  19541. p6 = s + 5816
  19542. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19543. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  19544. }
  19545. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  19546. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19547. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  19548. p7 = s + 5816
  19549. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19550. v9 = s + 20
  19551. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19552. *(*Tulg)(unsafe.Pointer(v9))++
  19553. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19554. v11 = s + 20
  19555. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19556. *(*Tulg)(unsafe.Pointer(v11))++
  19557. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19558. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19559. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  19560. } else {
  19561. p12 = s + 5816
  19562. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19563. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  19564. }
  19565. _bi_flush(tls, s)
  19566. }
  19567. // C documentation
  19568. //
  19569. // /* ===========================================================================
  19570. // * Send the block data compressed using the given Huffman trees
  19571. // */
  19572. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  19573. var code, dist, sx, v1, v2, v3 uint32
  19574. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  19575. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  19576. 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
  19577. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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) */
  19578. sx = uint32(0) /* number of extra bits to send */
  19579. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  19580. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  19581. v1 = sx
  19582. sx++
  19583. dist = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  19584. v2 = sx
  19585. sx++
  19586. dist += libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  19587. v3 = sx
  19588. sx++
  19589. lc = libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  19590. if dist == uint32(0) {
  19591. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  19592. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19593. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  19594. p4 = s + 5816
  19595. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19596. v6 = s + 20
  19597. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19598. *(*Tulg)(unsafe.Pointer(v6))++
  19599. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19600. v8 = s + 20
  19601. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19602. *(*Tulg)(unsafe.Pointer(v8))++
  19603. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19604. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19605. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  19606. } else {
  19607. p9 = s + 5816
  19608. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19609. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  19610. } /* send a literal byte */
  19611. } else {
  19612. /* Here, lc is the match length - MIN_MATCH */
  19613. code = uint32(x__length_code[lc])
  19614. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  19615. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19616. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  19617. p10 = s + 5816
  19618. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19619. v12 = s + 20
  19620. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19621. *(*Tulg)(unsafe.Pointer(v12))++
  19622. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19623. v14 = s + 20
  19624. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19625. *(*Tulg)(unsafe.Pointer(v14))++
  19626. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19627. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19628. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  19629. } else {
  19630. p15 = s + 5816
  19631. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19632. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  19633. } /* send length code */
  19634. extra = _extra_lbits[code]
  19635. if extra != 0 {
  19636. lc -= _base_length[code]
  19637. len2 = extra
  19638. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19639. val2 = lc
  19640. p16 = s + 5816
  19641. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19642. v18 = s + 20
  19643. v17 = *(*Tulg)(unsafe.Pointer(v18))
  19644. *(*Tulg)(unsafe.Pointer(v18))++
  19645. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19646. v20 = s + 20
  19647. v19 = *(*Tulg)(unsafe.Pointer(v20))
  19648. *(*Tulg)(unsafe.Pointer(v20))++
  19649. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19650. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19651. *(*int32)(unsafe.Pointer(s + 5820)) += len2 - int32(m_Buf_size)
  19652. } else {
  19653. p21 = s + 5816
  19654. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | libc.Int32FromUint16(libc.Uint16FromInt32(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19655. *(*int32)(unsafe.Pointer(s + 5820)) += len2
  19656. } /* send the extra length bits */
  19657. }
  19658. dist-- /* dist is now the match distance - 1 */
  19659. if dist < uint32(256) {
  19660. v22 = libc.Int32FromUint8(x__dist_code[dist])
  19661. } else {
  19662. v22 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19663. }
  19664. code = libc.Uint32FromInt32(v22)
  19665. len3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  19666. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19667. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  19668. p23 = s + 5816
  19669. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19670. v25 = s + 20
  19671. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19672. *(*Tulg)(unsafe.Pointer(v25))++
  19673. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19674. v27 = s + 20
  19675. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19676. *(*Tulg)(unsafe.Pointer(v27))++
  19677. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19678. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19679. *(*int32)(unsafe.Pointer(s + 5820)) += len3 - int32(m_Buf_size)
  19680. } else {
  19681. p28 = s + 5816
  19682. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19683. *(*int32)(unsafe.Pointer(s + 5820)) += len3
  19684. } /* send the distance code */
  19685. extra = _extra_dbits[code]
  19686. if extra != 0 {
  19687. dist -= libc.Uint32FromInt32(_base_dist[code])
  19688. len4 = extra
  19689. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19690. val4 = libc.Int32FromUint32(dist)
  19691. p29 = s + 5816
  19692. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19693. v31 = s + 20
  19694. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19695. *(*Tulg)(unsafe.Pointer(v31))++
  19696. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19697. v33 = s + 20
  19698. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19699. *(*Tulg)(unsafe.Pointer(v33))++
  19700. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19701. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19702. *(*int32)(unsafe.Pointer(s + 5820)) += len4 - int32(m_Buf_size)
  19703. } else {
  19704. p34 = s + 5816
  19705. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19706. *(*int32)(unsafe.Pointer(s + 5820)) += len4
  19707. } /* send the extra distance bits */
  19708. }
  19709. } /* literal or match pair ? */
  19710. /* Check for no overlay of pending_buf on needed symbols */
  19711. }
  19712. }
  19713. len5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  19714. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19715. val5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  19716. p35 = s + 5816
  19717. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19718. v37 = s + 20
  19719. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19720. *(*Tulg)(unsafe.Pointer(v37))++
  19721. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19722. v39 = s + 20
  19723. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19724. *(*Tulg)(unsafe.Pointer(v39))++
  19725. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19726. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19727. *(*int32)(unsafe.Pointer(s + 5820)) += len5 - int32(m_Buf_size)
  19728. } else {
  19729. p40 = s + 5816
  19730. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19731. *(*int32)(unsafe.Pointer(s + 5820)) += len5
  19732. }
  19733. }
  19734. // C documentation
  19735. //
  19736. // /* ===========================================================================
  19737. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  19738. // * - TEXT if the two conditions below are satisfied:
  19739. // * a) There are no non-portable control characters belonging to the
  19740. // * "block list" (0..6, 14..25, 28..31).
  19741. // * b) There is at least one printable character belonging to the
  19742. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  19743. // * - BINARY otherwise.
  19744. // * - The following partially-portable control characters form a
  19745. // * "gray list" that is ignored in this detection algorithm:
  19746. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  19747. // * IN assertion: the fields Freq of dyn_ltree are set.
  19748. // */
  19749. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  19750. var block_mask uint32
  19751. var n int32
  19752. _, _ = block_mask, n
  19753. /* block_mask is the bit mask of block-listed bytes
  19754. * set bits 0..6, 14..25, and 28..31
  19755. * 0xf3ffc07f = binary 11110011111111111100000001111111
  19756. */
  19757. block_mask = uint32(0xf3ffc07f)
  19758. /* Check for non-textual ("block-listed") bytes. */
  19759. n = 0
  19760. for {
  19761. if !(n <= int32(31)) {
  19762. break
  19763. }
  19764. if block_mask&uint32(1) != 0 && libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 148 + uintptr(n)*4))) != 0 {
  19765. return m_Z_BINARY
  19766. }
  19767. goto _1
  19768. _1:
  19769. ;
  19770. n++
  19771. block_mask >>= uint32(1)
  19772. }
  19773. /* Check for textual ("allow-listed") bytes. */
  19774. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 148 + 9*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 148 + 10*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 148 + 13*4))) != 0 {
  19775. return int32(m_Z_TEXT)
  19776. }
  19777. n = int32(32)
  19778. for {
  19779. if !(n < int32(m_LITERALS)) {
  19780. break
  19781. }
  19782. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 148 + uintptr(n)*4))) != 0 {
  19783. return int32(m_Z_TEXT)
  19784. }
  19785. goto _2
  19786. _2:
  19787. ;
  19788. n++
  19789. }
  19790. /* There are no "block-listed" or "allow-listed" bytes:
  19791. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  19792. */
  19793. return m_Z_BINARY
  19794. }
  19795. // C documentation
  19796. //
  19797. // /* ===========================================================================
  19798. // * Determine the best encoding for the current block: dynamic trees, static
  19799. // * trees or store, and write out the encoded block.
  19800. // */
  19801. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19802. var len1, len11, max_blindex, val, val1 int32
  19803. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  19804. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  19805. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19806. max_blindex = 0 /* index of last bit length code of non zero freq */
  19807. /* Build the Huffman trees unless a stored block is forced */
  19808. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  19809. /* Check if the file is binary or text */
  19810. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  19811. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  19812. }
  19813. /* Construct the literal and distance trees */
  19814. _build_tree(tls, s, s+2840)
  19815. _build_tree(tls, s, s+2852)
  19816. /* At this point, opt_len and static_len are the total bit lengths of
  19817. * the compressed block data, excluding the tree representations.
  19818. */
  19819. /* Build the bit length tree for the above two trees, and get the index
  19820. * in bl_order of the last bit length code to send.
  19821. */
  19822. max_blindex = _build_bl_tree(tls, s)
  19823. /* Determine the best encoding. Compute the block lengths in bytes. */
  19824. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint32(3) + uint32(7)) >> int32(3)
  19825. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint32(3) + uint32(7)) >> int32(3)
  19826. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  19827. opt_lenb = static_lenb
  19828. }
  19829. } else {
  19830. v1 = stored_len + libc.Uint32FromInt32(5)
  19831. static_lenb = v1
  19832. opt_lenb = v1 /* force a stored block */
  19833. }
  19834. if stored_len+uint32(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  19835. /* 4: two words for the lengths */
  19836. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  19837. * Otherwise we can't have processed more than WSIZE input bytes since
  19838. * the last block flush, because compression would have been
  19839. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  19840. * transform a block into a stored block.
  19841. */
  19842. x__tr_stored_block(tls, s, buf, stored_len, last)
  19843. } else {
  19844. if static_lenb == opt_lenb {
  19845. len1 = int32(3)
  19846. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19847. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  19848. p2 = s + 5816
  19849. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19850. v4 = s + 20
  19851. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19852. *(*Tulg)(unsafe.Pointer(v4))++
  19853. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19854. v6 = s + 20
  19855. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19856. *(*Tulg)(unsafe.Pointer(v6))++
  19857. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19858. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19859. *(*int32)(unsafe.Pointer(s + 5820)) += len1 - int32(m_Buf_size)
  19860. } else {
  19861. p7 = s + 5816
  19862. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19863. *(*int32)(unsafe.Pointer(s + 5820)) += len1
  19864. }
  19865. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  19866. } else {
  19867. len11 = int32(3)
  19868. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19869. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  19870. p8 = s + 5816
  19871. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19872. v10 = s + 20
  19873. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19874. *(*Tulg)(unsafe.Pointer(v10))++
  19875. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  19876. v12 = s + 20
  19877. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19878. *(*Tulg)(unsafe.Pointer(v12))++
  19879. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  19880. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = libc.Uint16FromInt32(libc.Int32FromUint16(libc.Uint16FromInt32(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  19881. *(*int32)(unsafe.Pointer(s + 5820)) += len11 - int32(m_Buf_size)
  19882. } else {
  19883. p13 = s + 5816
  19884. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19885. *(*int32)(unsafe.Pointer(s + 5820)) += len11
  19886. }
  19887. _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))
  19888. _compress_block(tls, s, s+148, s+2440)
  19889. }
  19890. }
  19891. /* The above check is made mod 2^32, for files larger than 512 MB
  19892. * and uLong implemented on 32 bits.
  19893. */
  19894. _init_block(tls, s)
  19895. if last != 0 {
  19896. _bi_windup(tls, s)
  19897. }
  19898. }
  19899. // C documentation
  19900. //
  19901. // /* ===========================================================================
  19902. // * Save the match info and tally the frequency counts. Return true if
  19903. // * the current block must be flushed.
  19904. // */
  19905. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  19906. var v1, v3, v5 TuInt
  19907. var v2, v4, v6 uintptr
  19908. var v7 int32
  19909. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  19910. v2 = s + 5792
  19911. v1 = *(*TuInt)(unsafe.Pointer(v2))
  19912. *(*TuInt)(unsafe.Pointer(v2))++
  19913. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  19914. v4 = s + 5792
  19915. v3 = *(*TuInt)(unsafe.Pointer(v4))
  19916. *(*TuInt)(unsafe.Pointer(v4))++
  19917. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  19918. v6 = s + 5792
  19919. v5 = *(*TuInt)(unsafe.Pointer(v6))
  19920. *(*TuInt)(unsafe.Pointer(v6))++
  19921. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  19922. if dist == uint32(0) {
  19923. /* lc is the unmatched char */
  19924. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(lc)*4))++
  19925. } else {
  19926. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  19927. /* Here, lc is the match length - MIN_MATCH */
  19928. dist-- /* dist = match distance - 1 */
  19929. *(*Tush)(unsafe.Pointer(s + 148 + uintptr(libc.Int32FromUint8(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  19930. if dist < uint32(256) {
  19931. v7 = libc.Int32FromUint8(x__dist_code[dist])
  19932. } else {
  19933. v7 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19934. }
  19935. *(*Tush)(unsafe.Pointer(s + 2440 + uintptr(v7)*4))++
  19936. }
  19937. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  19938. }
  19939. const m_AT_EACCESS = 0x200
  19940. const m_AT_EMPTY_PATH = 0x1000
  19941. const m_AT_NO_AUTOMOUNT = 0x800
  19942. const m_AT_RECURSIVE = 0x8000
  19943. const m_AT_REMOVEDIR = 0x200
  19944. const m_AT_STATX_DONT_SYNC = 0x4000
  19945. const m_AT_STATX_FORCE_SYNC = 0x2000
  19946. const m_AT_STATX_SYNC_AS_STAT = 0x0000
  19947. const m_AT_STATX_SYNC_TYPE = 0x6000
  19948. const m_AT_SYMLINK_FOLLOW = 0x400
  19949. const m_AT_SYMLINK_NOFOLLOW = 0x100
  19950. const m_BUFSIZ = 1024
  19951. const m_COPY = 1
  19952. const m_DN_ACCESS = 0x00000001
  19953. const m_DN_ATTRIB = 0x00000020
  19954. const m_DN_CREATE = 0x00000004
  19955. const m_DN_DELETE = 0x00000008
  19956. const m_DN_MODIFY = 0x00000002
  19957. const m_DN_MULTISHOT = 0x80000000
  19958. const m_DN_RENAME = 0x00000010
  19959. const m_E2BIG = 7
  19960. const m_EACCES = 13
  19961. const m_EADDRINUSE = 98
  19962. const m_EADDRNOTAVAIL = 99
  19963. const m_EADV = 68
  19964. const m_EAFNOSUPPORT = 97
  19965. const m_EAGAIN = 11
  19966. const m_EALREADY = 114
  19967. const m_EBADE = 52
  19968. const m_EBADF = 9
  19969. const m_EBADFD = 77
  19970. const m_EBADMSG = 74
  19971. const m_EBADR = 53
  19972. const m_EBADRQC = 56
  19973. const m_EBADSLT = 57
  19974. const m_EBFONT = 59
  19975. const m_EBUSY = 16
  19976. const m_ECANCELED = 125
  19977. const m_ECHILD = 10
  19978. const m_ECHRNG = 44
  19979. const m_ECOMM = 70
  19980. const m_ECONNABORTED = 103
  19981. const m_ECONNREFUSED = 111
  19982. const m_ECONNRESET = 104
  19983. const m_EDEADLK = 35
  19984. const m_EDEADLOCK = "EDEADLK"
  19985. const m_EDESTADDRREQ = 89
  19986. const m_EDOM = 33
  19987. const m_EDOTDOT = 73
  19988. const m_EDQUOT = 122
  19989. const m_EEXIST = 17
  19990. const m_EFAULT = 14
  19991. const m_EFBIG = 27
  19992. const m_EHOSTDOWN = 112
  19993. const m_EHOSTUNREACH = 113
  19994. const m_EHWPOISON = 133
  19995. const m_EIDRM = 43
  19996. const m_EILSEQ = 84
  19997. const m_EINPROGRESS = 115
  19998. const m_EINTR = 4
  19999. const m_EINVAL = 22
  20000. const m_EIO = 5
  20001. const m_EISCONN = 106
  20002. const m_EISDIR = 21
  20003. const m_EISNAM = 120
  20004. const m_EKEYEXPIRED = 127
  20005. const m_EKEYREJECTED = 129
  20006. const m_EKEYREVOKED = 128
  20007. const m_EL2HLT = 51
  20008. const m_EL2NSYNC = 45
  20009. const m_EL3HLT = 46
  20010. const m_EL3RST = 47
  20011. const m_ELIBACC = 79
  20012. const m_ELIBBAD = 80
  20013. const m_ELIBEXEC = 83
  20014. const m_ELIBMAX = 82
  20015. const m_ELIBSCN = 81
  20016. const m_ELNRNG = 48
  20017. const m_ELOOP = 40
  20018. const m_EMEDIUMTYPE = 124
  20019. const m_EMFILE = 24
  20020. const m_EMLINK = 31
  20021. const m_EMSGSIZE = 90
  20022. const m_EMULTIHOP = 72
  20023. const m_ENAMETOOLONG = 36
  20024. const m_ENAVAIL = 119
  20025. const m_ENETDOWN = 100
  20026. const m_ENETRESET = 102
  20027. const m_ENETUNREACH = 101
  20028. const m_ENFILE = 23
  20029. const m_ENOANO = 55
  20030. const m_ENOBUFS = 105
  20031. const m_ENOCSI = 50
  20032. const m_ENODATA = 61
  20033. const m_ENODEV = 19
  20034. const m_ENOENT = 2
  20035. const m_ENOEXEC = 8
  20036. const m_ENOKEY = 126
  20037. const m_ENOLCK = 37
  20038. const m_ENOLINK = 67
  20039. const m_ENOMEDIUM = 123
  20040. const m_ENOMEM = 12
  20041. const m_ENOMSG = 42
  20042. const m_ENONET = 64
  20043. const m_ENOPKG = 65
  20044. const m_ENOPROTOOPT = 92
  20045. const m_ENOSPC = 28
  20046. const m_ENOSR = 63
  20047. const m_ENOSTR = 60
  20048. const m_ENOSYS = 38
  20049. const m_ENOTBLK = 15
  20050. const m_ENOTCONN = 107
  20051. const m_ENOTDIR = 20
  20052. const m_ENOTEMPTY = 39
  20053. const m_ENOTNAM = 118
  20054. const m_ENOTRECOVERABLE = 131
  20055. const m_ENOTSOCK = 88
  20056. const m_ENOTSUP = "EOPNOTSUPP"
  20057. const m_ENOTTY = 25
  20058. const m_ENOTUNIQ = 76
  20059. const m_ENXIO = 6
  20060. const m_EOPNOTSUPP = 95
  20061. const m_EOVERFLOW = 75
  20062. const m_EOWNERDEAD = 130
  20063. const m_EPERM = 1
  20064. const m_EPFNOSUPPORT = 96
  20065. const m_EPIPE = 32
  20066. const m_EPROTO = 71
  20067. const m_EPROTONOSUPPORT = 93
  20068. const m_EPROTOTYPE = 91
  20069. const m_ERANGE = 34
  20070. const m_EREMCHG = 78
  20071. const m_EREMOTE = 66
  20072. const m_EREMOTEIO = 121
  20073. const m_ERESTART = 85
  20074. const m_ERFKILL = 132
  20075. const m_EROFS = 30
  20076. const m_ESHUTDOWN = 108
  20077. const m_ESOCKTNOSUPPORT = 94
  20078. const m_ESPIPE = 29
  20079. const m_ESRCH = 3
  20080. const m_ESRMNT = 69
  20081. const m_ESTALE = 116
  20082. const m_ESTRPIPE = 86
  20083. const m_ETIME = 62
  20084. const m_ETIMEDOUT = 110
  20085. const m_ETOOMANYREFS = 109
  20086. const m_ETXTBSY = 26
  20087. const m_EUCLEAN = 117
  20088. const m_EUNATCH = 49
  20089. const m_EUSERS = 87
  20090. const m_EWOULDBLOCK = "EAGAIN"
  20091. const m_EXDEV = 18
  20092. const m_EXFULL = 54
  20093. const m_FALLOC_FL_KEEP_SIZE = 1
  20094. const m_FALLOC_FL_PUNCH_HOLE = 2
  20095. const m_FAPPEND = "O_APPEND"
  20096. const m_FASYNC = "O_ASYNC"
  20097. const m_FD_CLOEXEC = 1
  20098. const m_FFSYNC = "O_SYNC"
  20099. const m_FILENAME_MAX = 4096
  20100. const m_FNDELAY = "O_NDELAY"
  20101. const m_FNONBLOCK = "O_NONBLOCK"
  20102. const m_FOPEN_MAX = 1000
  20103. const m_F_ADD_SEALS = 1033
  20104. const m_F_CANCELLK = 1029
  20105. const m_F_DUPFD = 0
  20106. const m_F_DUPFD_CLOEXEC = 1030
  20107. const m_F_GETFD = 1
  20108. const m_F_GETFL = 3
  20109. const m_F_GETLEASE = 1025
  20110. const m_F_GETLK = 12
  20111. const m_F_GETLK64 = "F_GETLK"
  20112. const m_F_GETOWN = 9
  20113. const m_F_GETOWNER_UIDS = 17
  20114. const m_F_GETOWN_EX = 16
  20115. const m_F_GETPIPE_SZ = 1032
  20116. const m_F_GETSIG = 11
  20117. const m_F_GET_FILE_RW_HINT = 1037
  20118. const m_F_GET_RW_HINT = 1035
  20119. const m_F_GET_SEALS = 1034
  20120. const m_F_NOTIFY = 1026
  20121. const m_F_OFD_GETLK = 36
  20122. const m_F_OFD_SETLK = 37
  20123. const m_F_OFD_SETLKW = 38
  20124. const m_F_OWNER_GID = 2
  20125. const m_F_OWNER_PGRP = 2
  20126. const m_F_OWNER_PID = 1
  20127. const m_F_OWNER_TID = 0
  20128. const m_F_RDLCK = 0
  20129. const m_F_SEAL_FUTURE_WRITE = 0x0010
  20130. const m_F_SEAL_GROW = 0x0004
  20131. const m_F_SEAL_SEAL = 0x0001
  20132. const m_F_SEAL_SHRINK = 0x0002
  20133. const m_F_SEAL_WRITE = 0x0008
  20134. const m_F_SETFD = 2
  20135. const m_F_SETFL = 4
  20136. const m_F_SETLEASE = 1024
  20137. const m_F_SETLK = 13
  20138. const m_F_SETLK64 = "F_SETLK"
  20139. const m_F_SETLKW = 14
  20140. const m_F_SETLKW64 = "F_SETLKW"
  20141. const m_F_SETOWN = 8
  20142. const m_F_SETOWN_EX = 15
  20143. const m_F_SETPIPE_SZ = 1031
  20144. const m_F_SETSIG = 10
  20145. const m_F_SET_FILE_RW_HINT = 1038
  20146. const m_F_SET_RW_HINT = 1036
  20147. const m_F_UNLCK = 2
  20148. const m_F_WRLCK = 1
  20149. const m_GZBUFSIZE = 8192
  20150. const m_GZIP = 2
  20151. const m_GZ_APPEND = 1
  20152. const m_GZ_NONE = 0
  20153. const m_GZ_READ = 7247
  20154. const m_GZ_WRITE = 31153
  20155. const m_LOOK = 0
  20156. const m_L_ctermid = 20
  20157. const m_L_cuserid = 20
  20158. const m_L_tmpnam = 20
  20159. const m_MAX_HANDLE_SZ = 128
  20160. const m_O_APPEND = 02000
  20161. const m_O_ASYNC = 020000
  20162. const m_O_CLOEXEC = 02000000
  20163. const m_O_CREAT = 0100
  20164. const m_O_DIRECT = 0200000
  20165. const m_O_DIRECTORY = 040000
  20166. const m_O_DSYNC = 010000
  20167. const m_O_EXCL = 0200
  20168. const m_O_EXEC = "O_PATH"
  20169. const m_O_LARGEFILE = 0400000
  20170. const m_O_NDELAY = "O_NONBLOCK"
  20171. const m_O_NOATIME = 01000000
  20172. const m_O_NOCTTY = 0400
  20173. const m_O_NOFOLLOW = 0100000
  20174. const m_O_NONBLOCK = 04000
  20175. const m_O_PATH = 010000000
  20176. const m_O_RDONLY = 00
  20177. const m_O_RDWR = 02
  20178. const m_O_RSYNC = 04010000
  20179. const m_O_SEARCH = "O_PATH"
  20180. const m_O_SYNC = 04010000
  20181. const m_O_TMPFILE = 020040000
  20182. const m_O_TRUNC = 01000
  20183. const m_O_TTY_INIT = 0
  20184. const m_O_WRONLY = 01
  20185. const m_POSIX_FADV_DONTNEED = 4
  20186. const m_POSIX_FADV_NOREUSE = 5
  20187. const m_POSIX_FADV_NORMAL = 0
  20188. const m_POSIX_FADV_RANDOM = 1
  20189. const m_POSIX_FADV_SEQUENTIAL = 2
  20190. const m_POSIX_FADV_WILLNEED = 3
  20191. const m_P_tmpdir = "/tmp"
  20192. const m_RWF_WRITE_LIFE_NOT_SET = 0
  20193. const m_RWH_WRITE_LIFE_EXTREME = 5
  20194. const m_RWH_WRITE_LIFE_LONG = 4
  20195. const m_RWH_WRITE_LIFE_MEDIUM = 3
  20196. const m_RWH_WRITE_LIFE_NONE = 1
  20197. const m_RWH_WRITE_LIFE_SHORT = 2
  20198. const m_SPLICE_F_GIFT = 8
  20199. const m_SPLICE_F_MORE = 4
  20200. const m_SPLICE_F_MOVE = 1
  20201. const m_SPLICE_F_NONBLOCK = 2
  20202. const m_SYNC_FILE_RANGE_WAIT_AFTER = 4
  20203. const m_SYNC_FILE_RANGE_WAIT_BEFORE = 1
  20204. const m_SYNC_FILE_RANGE_WRITE = 2
  20205. const m_S_IRGRP = 0040
  20206. const m_S_IROTH = 0004
  20207. const m_S_IRUSR = 0400
  20208. const m_S_IRWXG = 0070
  20209. const m_S_IRWXO = 0007
  20210. const m_S_IRWXU = 0700
  20211. const m_S_ISGID = 02000
  20212. const m_S_ISUID = 04000
  20213. const m_S_ISVTX = 01000
  20214. const m_S_IWGRP = 0020
  20215. const m_S_IWOTH = 0002
  20216. const m_S_IWUSR = 0200
  20217. const m_S_IXGRP = 0010
  20218. const m_S_IXOTH = 0001
  20219. const m_S_IXUSR = 0100
  20220. const m_TMP_MAX = 10000
  20221. const m__IOFBF = 0
  20222. const m__IOLBF = 1
  20223. const m__IONBF = 2
  20224. const m__LARGEFILE_SOURCE = 1
  20225. const m_creat64 = "creat"
  20226. const m_fallocate64 = "fallocate"
  20227. const m_fgetpos64 = "fgetpos"
  20228. const m_flock64 = "flock"
  20229. const m_fopen64 = "fopen"
  20230. const m_fpos64_t = "fpos_t"
  20231. const m_freopen64 = "freopen"
  20232. const m_fseeko64 = "fseeko"
  20233. const m_fsetpos64 = "fsetpos"
  20234. const m_ftello64 = "ftello"
  20235. const m_loff_t = "off_t"
  20236. const m_open64 = "open"
  20237. const m_openat64 = "openat"
  20238. const m_posix_fadvise64 = "posix_fadvise"
  20239. const m_posix_fallocate64 = "posix_fallocate"
  20240. const m_tmpfile64 = "tmpfile"
  20241. type t__isoc_va_list = uintptr
  20242. type Tfpos_t = struct {
  20243. F__ccgo_align [0]uint32
  20244. F__lldata [0]int64
  20245. F__align [0]float64
  20246. F__opaque [16]uint8
  20247. }
  20248. type T_G_fpos64_t = Tfpos_t
  20249. type Tcookie_io_functions_t = struct {
  20250. Fread uintptr
  20251. Fwrite uintptr
  20252. Fseek uintptr
  20253. Fclose1 uintptr
  20254. }
  20255. type T_IO_cookie_io_functions_t = Tcookie_io_functions_t
  20256. type Tiovec = struct {
  20257. Fiov_base uintptr
  20258. Fiov_len Tsize_t
  20259. }
  20260. type Tflock = struct {
  20261. F__ccgo_align [0]uint32
  20262. Fl_type int16
  20263. Fl_whence int16
  20264. F__ccgo_align2 [4]byte
  20265. Fl_start Toff_t
  20266. Fl_len Toff_t
  20267. Fl_pid Tpid_t
  20268. F__ccgo_pad5 [4]byte
  20269. }
  20270. type Tfile_handle = struct {
  20271. Fhandle_bytes uint32
  20272. Fhandle_type int32
  20273. }
  20274. type Tf_owner_ex = struct {
  20275. Ftype1 int32
  20276. Fpid Tpid_t
  20277. }
  20278. type Tgz_state = struct {
  20279. F__ccgo_align [0]uint32
  20280. Fx TgzFile_s
  20281. Fmode int32
  20282. Ffd int32
  20283. Fpath uintptr
  20284. Fsize uint32
  20285. Fwant uint32
  20286. Fin uintptr
  20287. Fout uintptr
  20288. Fdirect int32
  20289. Fhow int32
  20290. F__ccgo_align10 [4]byte
  20291. Fstart Toff_t
  20292. Feof int32
  20293. Fpast int32
  20294. Flevel int32
  20295. Fstrategy int32
  20296. Freset int32
  20297. F__ccgo_align16 [4]byte
  20298. Fskip Toff_t
  20299. Fseek int32
  20300. Ferr int32
  20301. Fmsg uintptr
  20302. Fstrm Tz_stream
  20303. F__ccgo_pad21 [4]byte
  20304. }
  20305. type Tgz_statep = uintptr
  20306. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  20307. return __ccgo_ts
  20308. }
  20309. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  20310. var flags TuLong
  20311. _ = flags
  20312. flags = uint32(0)
  20313. switch libc.Int32FromUint32(libc.Uint32FromInt64(4)) {
  20314. case int32(2):
  20315. case int32(4):
  20316. flags += uint32(1)
  20317. case int32(8):
  20318. flags += uint32(2)
  20319. default:
  20320. flags += uint32(3)
  20321. }
  20322. switch libc.Int32FromUint32(libc.Uint32FromInt64(4)) {
  20323. case int32(2):
  20324. case int32(4):
  20325. flags += libc.Uint32FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  20326. case int32(8):
  20327. flags += libc.Uint32FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  20328. default:
  20329. flags += libc.Uint32FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  20330. }
  20331. switch libc.Int32FromUint32(libc.Uint32FromInt64(4)) {
  20332. case int32(2):
  20333. case int32(4):
  20334. flags += libc.Uint32FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  20335. case int32(8):
  20336. flags += libc.Uint32FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  20337. default:
  20338. flags += libc.Uint32FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  20339. }
  20340. switch libc.Int32FromUint32(libc.Uint32FromInt64(8)) {
  20341. case int32(2):
  20342. case int32(4):
  20343. flags += libc.Uint32FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  20344. case int32(8):
  20345. flags += libc.Uint32FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  20346. default:
  20347. flags += libc.Uint32FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  20348. }
  20349. /*
  20350. #if defined(ASMV) || defined(ASMINF)
  20351. flags += 1 << 9;
  20352. #endif
  20353. */
  20354. return flags
  20355. }
  20356. // C documentation
  20357. //
  20358. // /* exported to allow conversion of error code to string for compress() and
  20359. // * uncompress()
  20360. // */
  20361. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  20362. var v1 int32
  20363. _ = v1
  20364. if err < -int32(6) || err > int32(2) {
  20365. v1 = int32(9)
  20366. } else {
  20367. v1 = int32(2) - err
  20368. }
  20369. return Xz_errmsg[v1]
  20370. }
  20371. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  20372. _ = opaque
  20373. return libc.Xmalloc(tls, items*size)
  20374. }
  20375. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  20376. _ = opaque
  20377. libc.Xfree(tls, ptr)
  20378. }
  20379. // C documentation
  20380. //
  20381. // /* ===========================================================================
  20382. // Compresses the source buffer into the destination buffer. The level
  20383. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  20384. // length of the source buffer. Upon entry, destLen is the total size of the
  20385. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  20386. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  20387. //
  20388. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20389. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  20390. // Z_STREAM_ERROR if the level parameter is invalid.
  20391. // */
  20392. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  20393. bp := tls.Alloc(64)
  20394. defer tls.Free(64)
  20395. var err, v3, v4 int32
  20396. var left TuLong
  20397. var max TuInt
  20398. var v1, v2 uint32
  20399. var _ /* stream at bp+0 */ Tz_stream
  20400. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  20401. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  20402. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20403. *(*TuLongf)(unsafe.Pointer(destLen)) = uint32(0)
  20404. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20405. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20406. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20407. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(56))
  20408. if err != m_Z_OK {
  20409. return err
  20410. }
  20411. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20412. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20413. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20414. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20415. for cond := true; cond; cond = err == m_Z_OK {
  20416. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20417. if left > max {
  20418. v1 = max
  20419. } else {
  20420. v1 = left
  20421. }
  20422. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20423. left -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out
  20424. }
  20425. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20426. if sourceLen > max {
  20427. v2 = max
  20428. } else {
  20429. v2 = sourceLen
  20430. }
  20431. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20432. sourceLen -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  20433. }
  20434. if sourceLen != 0 {
  20435. v3 = m_Z_NO_FLUSH
  20436. } else {
  20437. v3 = int32(m_Z_FINISH)
  20438. }
  20439. err = Xdeflate(tls, bp, v3)
  20440. }
  20441. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20442. XdeflateEnd(tls, bp)
  20443. if err == int32(m_Z_STREAM_END) {
  20444. v4 = m_Z_OK
  20445. } else {
  20446. v4 = err
  20447. }
  20448. return v4
  20449. }
  20450. // C documentation
  20451. //
  20452. // /* ===========================================================================
  20453. // */
  20454. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  20455. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  20456. }
  20457. // C documentation
  20458. //
  20459. // /* ===========================================================================
  20460. // If the default memLevel or windowBits for deflateInit() is changed, then
  20461. // this function needs to be updated.
  20462. // */
  20463. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  20464. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint32(13)
  20465. }
  20466. // C documentation
  20467. //
  20468. // /* ===========================================================================
  20469. // Decompresses the source buffer into the destination buffer. *sourceLen is
  20470. // the byte length of the source buffer. Upon entry, *destLen is the total size
  20471. // of the destination buffer, which must be large enough to hold the entire
  20472. // uncompressed data. (The size of the uncompressed data must have been saved
  20473. // previously by the compressor and transmitted to the decompressor by some
  20474. // mechanism outside the scope of this compression library.) Upon exit,
  20475. // *destLen is the size of the decompressed data and *sourceLen is the number
  20476. // of source bytes consumed. Upon return, source + *sourceLen points to the
  20477. // first unused input byte.
  20478. //
  20479. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20480. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  20481. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  20482. // an incomplete zlib stream.
  20483. // */
  20484. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  20485. bp := tls.Alloc(64)
  20486. defer tls.Free(64)
  20487. var err, v3, v4, v5 int32
  20488. var left, len1 TuLong
  20489. var max TuInt
  20490. var v1, v2 uint32
  20491. var _ /* buf at bp+56 */ [1]TByte
  20492. var _ /* stream at bp+0 */ Tz_stream
  20493. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  20494. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  20495. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  20496. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  20497. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20498. *(*TuLongf)(unsafe.Pointer(destLen)) = uint32(0)
  20499. } else {
  20500. left = uint32(1)
  20501. dest = bp + 56
  20502. }
  20503. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20504. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20505. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20506. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20507. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20508. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(56))
  20509. if err != m_Z_OK {
  20510. return err
  20511. }
  20512. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20513. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20514. for cond := true; cond; cond = err == m_Z_OK {
  20515. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20516. if left > max {
  20517. v1 = max
  20518. } else {
  20519. v1 = left
  20520. }
  20521. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20522. left -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out
  20523. }
  20524. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20525. if len1 > max {
  20526. v2 = max
  20527. } else {
  20528. v2 = len1
  20529. }
  20530. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20531. len1 -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  20532. }
  20533. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  20534. }
  20535. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  20536. if dest != bp+56 {
  20537. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20538. } else {
  20539. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  20540. left = uint32(1)
  20541. }
  20542. }
  20543. XinflateEnd(tls, bp)
  20544. if err == int32(m_Z_STREAM_END) {
  20545. v3 = m_Z_OK
  20546. } else {
  20547. if err == int32(m_Z_NEED_DICT) {
  20548. v4 = -int32(3)
  20549. } else {
  20550. if err == -int32(5) && left+(*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out != 0 {
  20551. v5 = -int32(3)
  20552. } else {
  20553. v5 = err
  20554. }
  20555. v4 = v5
  20556. }
  20557. v3 = v4
  20558. }
  20559. return v3
  20560. }
  20561. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  20562. bp := tls.Alloc(16)
  20563. defer tls.Free(16)
  20564. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  20565. return Xuncompress2(tls, dest, destLen, source, bp)
  20566. }
  20567. // C documentation
  20568. //
  20569. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  20570. // That way the other gzclose functions can be used instead to avoid linking in
  20571. // unneeded compression or decompression routines. */
  20572. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  20573. var state Tgz_statep
  20574. var v1 int32
  20575. _, _ = state, v1
  20576. if file == libc.UintptrFromInt32(0) {
  20577. return -int32(2)
  20578. }
  20579. state = file
  20580. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20581. v1 = Xgzclose_r(tls, file)
  20582. } else {
  20583. v1 = Xgzclose_w(tls, file)
  20584. }
  20585. return v1
  20586. }
  20587. const m_INT_MAX1 = 2147483647
  20588. const m_LSEEK = "lseek"
  20589. const m_O_APPEND1 = 1024
  20590. const m_O_CLOEXEC1 = 524288
  20591. const m_O_CREAT1 = 64
  20592. const m_O_EXCL1 = 128
  20593. const m_O_LARGEFILE1 = 131072
  20594. const m_O_RDONLY1 = 0
  20595. const m_O_TRUNC1 = 512
  20596. const m_O_WRONLY1 = 1
  20597. // C documentation
  20598. //
  20599. // /* Reset gzip file state */
  20600. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  20601. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  20602. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  20603. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  20604. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  20605. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  20606. } else { /* for writing ... */
  20607. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  20608. } /* no deflateReset pending */
  20609. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  20610. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  20611. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  20612. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  20613. }
  20614. // C documentation
  20615. //
  20616. // /* Open a gzip file either by name or file descriptor. */
  20617. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  20618. bp := tls.Alloc(16)
  20619. defer tls.Free(16)
  20620. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  20621. var len1 Tz_size_t
  20622. var state Tgz_statep
  20623. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  20624. cloexec = 0
  20625. exclusive = 0
  20626. /* check input */
  20627. if path == libc.UintptrFromInt32(0) {
  20628. return libc.UintptrFromInt32(0)
  20629. }
  20630. /* allocate gzFile structure to return */
  20631. state = libc.Xmalloc(tls, uint32(168))
  20632. if state == libc.UintptrFromInt32(0) {
  20633. return libc.UintptrFromInt32(0)
  20634. }
  20635. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  20636. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  20637. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  20638. /* interpret mode */
  20639. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  20640. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  20641. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  20642. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  20643. for *(*uint8)(unsafe.Pointer(mode)) != 0 {
  20644. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) <= int32('9') {
  20645. (*Tgz_state)(unsafe.Pointer(state)).Flevel = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) - int32('0')
  20646. } else {
  20647. switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) {
  20648. case int32('r'):
  20649. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  20650. case int32('w'):
  20651. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  20652. case int32('a'):
  20653. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  20654. case int32('+'): /* can't read and write at the same time */
  20655. libc.Xfree(tls, state)
  20656. return libc.UintptrFromInt32(0)
  20657. case int32('b'): /* ignore -- will request binary anyway */
  20658. case int32('e'):
  20659. cloexec = int32(1)
  20660. case int32('x'):
  20661. exclusive = int32(1)
  20662. case int32('f'):
  20663. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  20664. case int32('h'):
  20665. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  20666. case int32('R'):
  20667. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  20668. case int32('F'):
  20669. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  20670. case int32('T'):
  20671. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  20672. default: /* could consider as an error, but just ignore */
  20673. }
  20674. }
  20675. mode++
  20676. }
  20677. /* must provide an "r", "w", or "a" */
  20678. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  20679. libc.Xfree(tls, state)
  20680. return libc.UintptrFromInt32(0)
  20681. }
  20682. /* can't force transparent read */
  20683. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20684. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  20685. libc.Xfree(tls, state)
  20686. return libc.UintptrFromInt32(0)
  20687. }
  20688. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  20689. }
  20690. /* save the path name for error messages */
  20691. len1 = libc.Xstrlen(tls, path)
  20692. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint32(1))
  20693. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  20694. libc.Xfree(tls, state)
  20695. return libc.UintptrFromInt32(0)
  20696. }
  20697. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint32(1), __ccgo_ts+584, libc.VaList(bp+8, path))
  20698. /* compute the flags for open() */
  20699. if cloexec != 0 {
  20700. v1 = int32(m_O_CLOEXEC1)
  20701. } else {
  20702. v1 = 0
  20703. }
  20704. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20705. v2 = m_O_RDONLY1
  20706. } else {
  20707. if exclusive != 0 {
  20708. v3 = int32(m_O_EXCL1)
  20709. } else {
  20710. v3 = 0
  20711. }
  20712. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  20713. v4 = int32(m_O_TRUNC1)
  20714. } else {
  20715. v4 = int32(m_O_APPEND1)
  20716. }
  20717. v2 = libc.Int32FromInt32(m_O_WRONLY1) | libc.Int32FromInt32(m_O_CREAT1) | v3 | v4
  20718. }
  20719. oflag = int32(m_O_LARGEFILE1) | v1 | v2
  20720. /* open the file with the appropriate flags (or just use fd) */
  20721. if fd > -int32(1) {
  20722. v5 = fd
  20723. } else {
  20724. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  20725. }
  20726. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  20727. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  20728. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  20729. libc.Xfree(tls, state)
  20730. return libc.UintptrFromInt32(0)
  20731. }
  20732. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  20733. libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(2)) /* so gzoffset() is correct */
  20734. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  20735. }
  20736. /* save the current position for rewinding (only if reading) */
  20737. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20738. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20739. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  20740. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  20741. }
  20742. }
  20743. /* initialize stream */
  20744. _gz_reset(tls, state)
  20745. /* return stream */
  20746. return state
  20747. }
  20748. // C documentation
  20749. //
  20750. // /* -- see zlib.h -- */
  20751. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20752. return _gz_open(tls, path, -int32(1), mode)
  20753. }
  20754. // C documentation
  20755. //
  20756. // /* -- see zlib.h -- */
  20757. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20758. return _gz_open(tls, path, -int32(1), mode)
  20759. }
  20760. // C documentation
  20761. //
  20762. // /* -- see zlib.h -- */
  20763. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  20764. bp := tls.Alloc(16)
  20765. defer tls.Free(16)
  20766. var gz TgzFile
  20767. var path, v1 uintptr
  20768. var v2 bool
  20769. _, _, _, _ = gz, path, v1, v2
  20770. if v2 = fd == -int32(1); !v2 {
  20771. v1 = libc.Xmalloc(tls, libc.Uint32FromInt32(7)+libc.Uint32FromInt32(3)*libc.Uint32FromInt64(4))
  20772. path = v1
  20773. }
  20774. if v2 || v1 == libc.UintptrFromInt32(0) {
  20775. return libc.UintptrFromInt32(0)
  20776. }
  20777. libc.X__builtin_snprintf(tls, path, libc.Uint32FromInt32(7)+libc.Uint32FromInt32(3)*libc.Uint32FromInt64(4), __ccgo_ts+587, libc.VaList(bp+8, fd))
  20778. gz = _gz_open(tls, path, fd, mode)
  20779. libc.Xfree(tls, path)
  20780. return gz
  20781. }
  20782. /* -- see zlib.h -- */
  20783. // C documentation
  20784. //
  20785. // /* -- see zlib.h -- */
  20786. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  20787. var state Tgz_statep
  20788. _ = state
  20789. /* get internal structure and check integrity */
  20790. if file == libc.UintptrFromInt32(0) {
  20791. return -int32(1)
  20792. }
  20793. state = file
  20794. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20795. return -int32(1)
  20796. }
  20797. /* make sure we haven't already allocated memory */
  20798. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  20799. return -int32(1)
  20800. }
  20801. /* check and set requested size */
  20802. if size<<int32(1) < size {
  20803. return -int32(1)
  20804. } /* need to be able to double it */
  20805. if size < uint32(8) {
  20806. size = uint32(8)
  20807. } /* needed to behave well with flushing */
  20808. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  20809. return 0
  20810. }
  20811. // C documentation
  20812. //
  20813. // /* -- see zlib.h -- */
  20814. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  20815. var state Tgz_statep
  20816. _ = state
  20817. /* get internal structure */
  20818. if file == libc.UintptrFromInt32(0) {
  20819. return -int32(1)
  20820. }
  20821. state = file
  20822. /* check that we're reading and that there's no error */
  20823. 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) {
  20824. return -int32(1)
  20825. }
  20826. /* back up and start over */
  20827. if libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, 0) == int64(-int32(1)) {
  20828. return -int32(1)
  20829. }
  20830. _gz_reset(tls, state)
  20831. return 0
  20832. }
  20833. // C documentation
  20834. //
  20835. // /* -- see zlib.h -- */
  20836. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20837. var n, v1 uint32
  20838. var ret Toff_t
  20839. var state Tgz_statep
  20840. _, _, _, _ = n, ret, state, v1
  20841. /* get internal structure and check integrity */
  20842. if file == libc.UintptrFromInt32(0) {
  20843. return int64(-int32(1))
  20844. }
  20845. state = file
  20846. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20847. return int64(-int32(1))
  20848. }
  20849. /* check that there's no error */
  20850. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20851. return int64(-int32(1))
  20852. }
  20853. /* can only seek from start or relative to current position */
  20854. if whence != 0 && whence != int32(1) {
  20855. return int64(-int32(1))
  20856. }
  20857. /* normalize offset to a SEEK_CUR specification */
  20858. if whence == 0 {
  20859. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20860. } else {
  20861. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20862. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20863. }
  20864. }
  20865. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20866. /* if within raw area while reading, just go there */
  20867. 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 {
  20868. ret = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(1))
  20869. if ret == int64(-int32(1)) {
  20870. return int64(-int32(1))
  20871. }
  20872. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20873. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20874. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20875. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20876. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20877. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  20878. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  20879. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20880. }
  20881. /* calculate skip amount, rewinding if needed for back seek when reading */
  20882. if offset < 0 {
  20883. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  20884. return int64(-int32(1))
  20885. }
  20886. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20887. if offset < 0 { /* before start of file! */
  20888. return int64(-int32(1))
  20889. }
  20890. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  20891. return int64(-int32(1))
  20892. }
  20893. }
  20894. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  20895. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20896. if libc.Bool(libc.Bool(uint32(4) == uint32(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  20897. v1 = libc.Uint32FromInt64(offset)
  20898. } else {
  20899. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20900. }
  20901. n = v1
  20902. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  20903. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  20904. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  20905. offset -= libc.Int64FromUint32(n)
  20906. }
  20907. /* request skip (if not zero) */
  20908. if offset != 0 {
  20909. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  20910. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  20911. }
  20912. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  20913. }
  20914. // C documentation
  20915. //
  20916. // /* -- see zlib.h -- */
  20917. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20918. var ret Toff_t
  20919. var v1 int64
  20920. _, _ = ret, v1
  20921. ret = Xgzseek64(tls, file, offset, whence)
  20922. if ret == ret {
  20923. v1 = ret
  20924. } else {
  20925. v1 = int64(-int32(1))
  20926. }
  20927. return v1
  20928. }
  20929. // C documentation
  20930. //
  20931. // /* -- see zlib.h -- */
  20932. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20933. var state Tgz_statep
  20934. var v1 int64
  20935. _, _ = state, v1
  20936. /* get internal structure and check integrity */
  20937. if file == libc.UintptrFromInt32(0) {
  20938. return int64(-int32(1))
  20939. }
  20940. state = file
  20941. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20942. return int64(-int32(1))
  20943. }
  20944. /* return position */
  20945. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20946. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20947. } else {
  20948. v1 = 0
  20949. }
  20950. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  20951. }
  20952. // C documentation
  20953. //
  20954. // /* -- see zlib.h -- */
  20955. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20956. var ret Toff_t
  20957. var v1 int64
  20958. _, _ = ret, v1
  20959. ret = Xgztell64(tls, file)
  20960. if ret == ret {
  20961. v1 = ret
  20962. } else {
  20963. v1 = int64(-int32(1))
  20964. }
  20965. return v1
  20966. }
  20967. // C documentation
  20968. //
  20969. // /* -- see zlib.h -- */
  20970. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20971. var offset Toff_t
  20972. var state Tgz_statep
  20973. _, _ = offset, state
  20974. /* get internal structure and check integrity */
  20975. if file == libc.UintptrFromInt32(0) {
  20976. return int64(-int32(1))
  20977. }
  20978. state = file
  20979. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20980. return int64(-int32(1))
  20981. }
  20982. /* compute and return effective offset in file */
  20983. offset = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20984. if offset == int64(-int32(1)) {
  20985. return int64(-int32(1))
  20986. }
  20987. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  20988. offset -= libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  20989. } /* don't count buffered input */
  20990. return offset
  20991. }
  20992. // C documentation
  20993. //
  20994. // /* -- see zlib.h -- */
  20995. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20996. var ret Toff_t
  20997. var v1 int64
  20998. _, _ = ret, v1
  20999. ret = Xgzoffset64(tls, file)
  21000. if ret == ret {
  21001. v1 = ret
  21002. } else {
  21003. v1 = int64(-int32(1))
  21004. }
  21005. return v1
  21006. }
  21007. // C documentation
  21008. //
  21009. // /* -- see zlib.h -- */
  21010. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  21011. var state Tgz_statep
  21012. var v1 int32
  21013. _, _ = state, v1
  21014. /* get internal structure and check integrity */
  21015. if file == libc.UintptrFromInt32(0) {
  21016. return 0
  21017. }
  21018. state = file
  21019. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21020. return 0
  21021. }
  21022. /* return end-of-file state */
  21023. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21024. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  21025. } else {
  21026. v1 = 0
  21027. }
  21028. return v1
  21029. }
  21030. // C documentation
  21031. //
  21032. // /* -- see zlib.h -- */
  21033. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  21034. var state Tgz_statep
  21035. var v1, v2 uintptr
  21036. _, _, _ = state, v1, v2
  21037. /* get internal structure and check integrity */
  21038. if file == libc.UintptrFromInt32(0) {
  21039. return libc.UintptrFromInt32(0)
  21040. }
  21041. state = file
  21042. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21043. return libc.UintptrFromInt32(0)
  21044. }
  21045. /* return error information */
  21046. if errnum != libc.UintptrFromInt32(0) {
  21047. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  21048. }
  21049. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  21050. v1 = __ccgo_ts + 595
  21051. } else {
  21052. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  21053. v2 = __ccgo_ts + 494
  21054. } else {
  21055. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  21056. }
  21057. v1 = v2
  21058. }
  21059. return v1
  21060. }
  21061. // C documentation
  21062. //
  21063. // /* -- see zlib.h -- */
  21064. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  21065. var state Tgz_statep
  21066. _ = state
  21067. /* get internal structure and check integrity */
  21068. if file == libc.UintptrFromInt32(0) {
  21069. return
  21070. }
  21071. state = file
  21072. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  21073. return
  21074. }
  21075. /* clear error and end-of-file */
  21076. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21077. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  21078. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21079. }
  21080. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21081. }
  21082. // C documentation
  21083. //
  21084. // /* Create an error message in allocated memory and set state->err and
  21085. // state->msg accordingly. Free any previous error message already there. Do
  21086. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  21087. // memory). Simply save the error message as a static string. If there is an
  21088. // allocation failure constructing the error message, then convert the error to
  21089. // out of memory. */
  21090. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  21091. bp := tls.Alloc(32)
  21092. defer tls.Free(32)
  21093. var v1 uintptr
  21094. _ = v1
  21095. /* free previously allocated message and clear */
  21096. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  21097. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  21098. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  21099. }
  21100. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  21101. }
  21102. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  21103. if err != m_Z_OK && err != -int32(5) {
  21104. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21105. }
  21106. /* set error code, and if no message, then done */
  21107. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  21108. if msg == libc.UintptrFromInt32(0) {
  21109. return
  21110. }
  21111. /* for an out of memory error, return literal string when requested */
  21112. if err == -int32(4) {
  21113. return
  21114. }
  21115. /* construct error message with path */
  21116. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint32(3))
  21117. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  21118. if v1 == libc.UintptrFromInt32(0) {
  21119. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  21120. return
  21121. }
  21122. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint32(3), __ccgo_ts+609, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+616, msg))
  21123. }
  21124. // C documentation
  21125. //
  21126. // /* portably return maximum value for an int (when limits.h presumed not
  21127. // available) -- we need to do this to cover cases where 2's complement not
  21128. // used, since C standard permits 1's complement and sign-bit representations,
  21129. // otherwise we could just use ((unsigned)-1) >> 1 */
  21130. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  21131. return uint32(m_INT_MAX1)
  21132. }
  21133. const m_INT_MAX2 = 0x7fffffff
  21134. const m_O_APPEND2 = 02000
  21135. const m_O_CLOEXEC2 = 02000000
  21136. const m_O_CREAT2 = 0100
  21137. const m_O_EXCL2 = 0200
  21138. const m_O_LARGEFILE2 = 0400000
  21139. const m_O_RDONLY2 = 00
  21140. const m_O_TRUNC2 = 01000
  21141. const m_O_WRONLY2 = 01
  21142. // C documentation
  21143. //
  21144. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  21145. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  21146. // This function needs to loop on read(), since read() is not guaranteed to
  21147. // read the number of bytes requested, depending on the type of descriptor. */
  21148. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  21149. var get, max uint32
  21150. var ret int32
  21151. _, _, _ = get, max, ret
  21152. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21153. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  21154. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  21155. get = len1 - *(*uint32)(unsafe.Pointer(have))
  21156. if get > max {
  21157. get = max
  21158. }
  21159. ret = libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), get)
  21160. if ret <= 0 {
  21161. break
  21162. }
  21163. *(*uint32)(unsafe.Pointer(have)) += libc.Uint32FromInt32(ret)
  21164. }
  21165. if ret < 0 {
  21166. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21167. return -int32(1)
  21168. }
  21169. if ret == 0 {
  21170. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21171. }
  21172. return 0
  21173. }
  21174. // C documentation
  21175. //
  21176. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  21177. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  21178. // file is reached, even though there may be unused data in the buffer. Once
  21179. // that data has been used, no more attempts will be made to read the file.
  21180. // If strm->avail_in != 0, then the current data is moved to the beginning of
  21181. // the input buffer, and then the remainder of the buffer is loaded with the
  21182. // available data from the input file. */
  21183. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  21184. bp := tls.Alloc(16)
  21185. defer tls.Free(16)
  21186. var n, v1 uint32
  21187. var p, q, v3, v4 uintptr
  21188. var strm Tz_streamp
  21189. var _ /* got at bp+0 */ uint32
  21190. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  21191. strm = state + 108
  21192. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21193. return -int32(1)
  21194. }
  21195. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  21196. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  21197. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21198. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  21199. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21200. for {
  21201. v3 = p
  21202. p++
  21203. v4 = q
  21204. q++
  21205. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  21206. goto _2
  21207. _2:
  21208. ;
  21209. n--
  21210. v1 = n
  21211. if !(v1 != 0) {
  21212. break
  21213. }
  21214. }
  21215. }
  21216. 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) {
  21217. return -int32(1)
  21218. }
  21219. *(*TuInt)(unsafe.Pointer(strm + 4)) += *(*uint32)(unsafe.Pointer(bp))
  21220. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21221. }
  21222. return 0
  21223. }
  21224. // C documentation
  21225. //
  21226. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  21227. // If this is the first time in, allocate required memory. state->how will be
  21228. // left unchanged if there is no more input data available, will be set to COPY
  21229. // if there is no gzip header and direct copying will be performed, or it will
  21230. // be set to GZIP for decompression. If direct copying, then leftover input
  21231. // data from the input buffer will be copied to the output buffer. In that
  21232. // case, all further file reads will be directly to either the output buffer or
  21233. // a user buffer. If decompressing, the inflate state will be initialized.
  21234. // gz_look() will return 0 on success or -1 on failure. */
  21235. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  21236. var strm Tz_streamp
  21237. _ = strm
  21238. strm = state + 108
  21239. /* allocate read buffers and inflate memory */
  21240. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  21241. /* allocate buffers */
  21242. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant)
  21243. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1))
  21244. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21245. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21246. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21247. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21248. return -int32(1)
  21249. }
  21250. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21251. /* allocate inflate memory */
  21252. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  21253. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  21254. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  21255. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  21256. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  21257. if XinflateInit2_(tls, state+108, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(56)) != m_Z_OK { /* gunzip */
  21258. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21259. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21260. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  21261. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21262. return -int32(1)
  21263. }
  21264. }
  21265. /* get at least the magic bytes in the input buffer */
  21266. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  21267. if _gz_avail(tls, state) == -int32(1) {
  21268. return -int32(1)
  21269. }
  21270. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21271. return 0
  21272. }
  21273. }
  21274. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  21275. a logical dilemma here when considering the case of a partially written
  21276. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  21277. whether this is a single-byte file, or just a partially written gzip
  21278. file -- for here we assume that if a gzip file is being written, then
  21279. the header will be written in a single operation, so that reading a
  21280. single byte is sufficient indication that it is not a gzip file) */
  21281. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  21282. XinflateReset(tls, strm)
  21283. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  21284. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  21285. return 0
  21286. }
  21287. /* no gzip header -- if we were decoding gzip before, then this is trailing
  21288. garbage. Ignore the trailing garbage and finish. */
  21289. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  21290. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21291. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21292. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21293. return 0
  21294. }
  21295. /* doing raw i/o, copy any leftover input to output -- this assumes that
  21296. the output buffer is larger than the input buffer, which also assures
  21297. space for gzungetc() */
  21298. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21299. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  21300. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21301. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21302. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  21303. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  21304. return 0
  21305. }
  21306. // C documentation
  21307. //
  21308. // /* Decompress from input to the provided next_out and avail_out in the state.
  21309. // On return, state->x.have and state->x.next point to the just decompressed
  21310. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  21311. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  21312. // on success, -1 on failure. */
  21313. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  21314. var had uint32
  21315. var ret int32
  21316. var strm Tz_streamp
  21317. var v1 uintptr
  21318. _, _, _, _ = had, ret, strm, v1
  21319. ret = m_Z_OK
  21320. strm = state + 108
  21321. /* fill output buffer up to end of deflate stream */
  21322. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21323. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  21324. /* get more input for inflate() */
  21325. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  21326. return -int32(1)
  21327. }
  21328. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21329. Xgz_error(tls, state, -int32(5), __ccgo_ts+619)
  21330. break
  21331. }
  21332. /* decompress and handle errors */
  21333. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  21334. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  21335. Xgz_error(tls, state, -int32(2), __ccgo_ts+642)
  21336. return -int32(1)
  21337. }
  21338. if ret == -int32(4) {
  21339. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21340. return -int32(1)
  21341. }
  21342. if ret == -int32(3) { /* deflate stream invalid */
  21343. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  21344. v1 = __ccgo_ts + 681
  21345. } else {
  21346. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  21347. }
  21348. Xgz_error(tls, state, -int32(3), v1)
  21349. return -int32(1)
  21350. }
  21351. }
  21352. /* update available output */
  21353. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21354. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21355. /* if the gzip stream completed successfully, look for another */
  21356. if ret == int32(m_Z_STREAM_END) {
  21357. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  21358. }
  21359. /* good decompression */
  21360. return 0
  21361. }
  21362. // C documentation
  21363. //
  21364. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  21365. // Data is either copied from the input file or decompressed from the input
  21366. // file depending on state->how. If state->how is LOOK, then a gzip header is
  21367. // looked for to determine whether to copy or decompress. Returns -1 on error,
  21368. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  21369. // end of the input file has been reached and all data has been processed. */
  21370. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  21371. var strm Tz_streamp
  21372. _ = strm
  21373. strm = state + 108
  21374. 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) {
  21375. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  21376. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  21377. if _gz_look(tls, state) == -int32(1) {
  21378. return -int32(1)
  21379. }
  21380. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  21381. return 0
  21382. }
  21383. case int32(m_COPY): /* -> COPY */
  21384. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  21385. return -int32(1)
  21386. }
  21387. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21388. return 0
  21389. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  21390. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  21391. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21392. if _gz_decomp(tls, state) == -int32(1) {
  21393. return -int32(1)
  21394. }
  21395. }
  21396. }
  21397. return 0
  21398. }
  21399. // C documentation
  21400. //
  21401. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  21402. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21403. var n, v1 uint32
  21404. _, _ = n, v1
  21405. /* skip over len bytes or reach end-of-file, whichever comes first */
  21406. for len1 != 0 {
  21407. /* skip over whatever is in output buffer */
  21408. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21409. if libc.Bool(libc.Bool(uint32(4) == uint32(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  21410. v1 = libc.Uint32FromInt64(len1)
  21411. } else {
  21412. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21413. }
  21414. n = v1
  21415. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21416. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21417. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21418. len1 -= libc.Int64FromUint32(n)
  21419. } else {
  21420. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21421. break
  21422. } else {
  21423. /* get more output, looking for header if required */
  21424. if _gz_fetch(tls, state) == -int32(1) {
  21425. return -int32(1)
  21426. }
  21427. }
  21428. }
  21429. }
  21430. return 0
  21431. }
  21432. // C documentation
  21433. //
  21434. // /* Read len bytes into buf from file, or less than len up to the end of the
  21435. // input. Return the number of bytes read. If zero is returned, either the
  21436. // end of file was reached, or there was an error. state->err must be
  21437. // consulted in that case to determine which. */
  21438. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  21439. bp := tls.Alloc(16)
  21440. defer tls.Free(16)
  21441. var got Tz_size_t
  21442. var _ /* n at bp+0 */ uint32
  21443. _ = got
  21444. /* if len is zero, avoid unnecessary operations */
  21445. if len1 == uint32(0) {
  21446. return uint32(0)
  21447. }
  21448. /* process a skip request */
  21449. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21450. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21451. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21452. return uint32(0)
  21453. }
  21454. }
  21455. /* get len bytes to buf, or less than len if at the end */
  21456. got = uint32(0)
  21457. for cond := true; cond; cond = len1 != 0 {
  21458. /* set n to the maximum amount of len that fits in an unsigned int */
  21459. *(*uint32)(unsafe.Pointer(bp)) = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21460. if *(*uint32)(unsafe.Pointer(bp)) > len1 {
  21461. *(*uint32)(unsafe.Pointer(bp)) = len1
  21462. }
  21463. /* first just try copying data from the output buffer */
  21464. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21465. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  21466. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21467. }
  21468. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, *(*uint32)(unsafe.Pointer(bp)))
  21469. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21470. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  21471. } else {
  21472. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21473. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  21474. break
  21475. } else {
  21476. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21477. /* get more output, looking for header if required */
  21478. if _gz_fetch(tls, state) == -int32(1) {
  21479. return uint32(0)
  21480. }
  21481. continue /* no progress yet -- go back to copy above */
  21482. /* the copy above assures that we will leave with space in the
  21483. output buffer, allowing at least one gzungetc() to succeed */
  21484. } else {
  21485. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  21486. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  21487. return uint32(0)
  21488. }
  21489. } else { /* state->how == GZIP */
  21490. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  21491. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  21492. if _gz_decomp(tls, state) == -int32(1) {
  21493. return uint32(0)
  21494. }
  21495. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21496. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21497. }
  21498. }
  21499. }
  21500. }
  21501. /* update progress */
  21502. len1 -= *(*uint32)(unsafe.Pointer(bp))
  21503. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21504. got += *(*uint32)(unsafe.Pointer(bp))
  21505. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(*(*uint32)(unsafe.Pointer(bp)))
  21506. }
  21507. /* return number of bytes read into user buffer */
  21508. return got
  21509. }
  21510. // C documentation
  21511. //
  21512. // /* -- see zlib.h -- */
  21513. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  21514. var state Tgz_statep
  21515. _ = state
  21516. /* get internal structure */
  21517. if file == libc.UintptrFromInt32(0) {
  21518. return -int32(1)
  21519. }
  21520. state = file
  21521. /* check that we're reading and that there's no (serious) error */
  21522. 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) {
  21523. return -int32(1)
  21524. }
  21525. /* since an int is returned, make sure len fits in one, otherwise return
  21526. with an error (this avoids a flaw in the interface) */
  21527. if libc.Int32FromUint32(len1) < 0 {
  21528. Xgz_error(tls, state, -int32(2), __ccgo_ts+703)
  21529. return -int32(1)
  21530. }
  21531. /* read len or fewer bytes to buf */
  21532. len1 = _gz_read(tls, state, buf, len1)
  21533. /* check for an error */
  21534. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21535. return -int32(1)
  21536. }
  21537. /* return the number of bytes read (this is assured to fit in an int) */
  21538. return libc.Int32FromUint32(len1)
  21539. }
  21540. // C documentation
  21541. //
  21542. // /* -- see zlib.h -- */
  21543. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21544. var len1 Tz_size_t
  21545. var state Tgz_statep
  21546. var v1 uint32
  21547. _, _, _ = len1, state, v1
  21548. /* get internal structure */
  21549. if file == libc.UintptrFromInt32(0) {
  21550. return uint32(0)
  21551. }
  21552. state = file
  21553. /* check that we're reading and that there's no (serious) error */
  21554. 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) {
  21555. return uint32(0)
  21556. }
  21557. /* compute bytes to read -- error on overflow */
  21558. len1 = nitems * size
  21559. if size != 0 && len1/size != nitems {
  21560. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  21561. return uint32(0)
  21562. }
  21563. /* read len or fewer bytes to buf, return the number of full items read */
  21564. if len1 != 0 {
  21565. v1 = _gz_read(tls, state, buf, len1) / size
  21566. } else {
  21567. v1 = uint32(0)
  21568. }
  21569. return v1
  21570. }
  21571. // C documentation
  21572. //
  21573. // /* -- see zlib.h -- */
  21574. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  21575. bp := tls.Alloc(16)
  21576. defer tls.Free(16)
  21577. var state Tgz_statep
  21578. var v1, v2 uintptr
  21579. var v3 int32
  21580. var _ /* buf at bp+0 */ [1]uint8
  21581. _, _, _, _ = state, v1, v2, v3
  21582. /* get internal structure */
  21583. if file == libc.UintptrFromInt32(0) {
  21584. return -int32(1)
  21585. }
  21586. state = file
  21587. /* check that we're reading and that there's no (serious) error */
  21588. 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) {
  21589. return -int32(1)
  21590. }
  21591. /* try output buffer (no need to check for skip request) */
  21592. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21593. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  21594. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  21595. v2 = state + 4
  21596. v1 = *(*uintptr)(unsafe.Pointer(v2))
  21597. *(*uintptr)(unsafe.Pointer(v2))++
  21598. return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(v1)))
  21599. }
  21600. /* nothing there -- try gz_read() */
  21601. if _gz_read(tls, state, bp, uint32(1)) < uint32(1) {
  21602. v3 = -int32(1)
  21603. } else {
  21604. v3 = libc.Int32FromUint8((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  21605. }
  21606. return v3
  21607. }
  21608. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  21609. return Xgzgetc(tls, file)
  21610. }
  21611. // C documentation
  21612. //
  21613. // /* -- see zlib.h -- */
  21614. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  21615. var dest, src, v1, v2 uintptr
  21616. var state Tgz_statep
  21617. _, _, _, _, _ = dest, src, state, v1, v2
  21618. /* get internal structure */
  21619. if file == libc.UintptrFromInt32(0) {
  21620. return -int32(1)
  21621. }
  21622. state = file
  21623. /* in case this was just opened, set up the input buffer */
  21624. 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) {
  21625. _gz_look(tls, state)
  21626. }
  21627. /* check that we're reading and that there's no (serious) error */
  21628. 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) {
  21629. return -int32(1)
  21630. }
  21631. /* process a skip request */
  21632. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21633. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21634. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21635. return -int32(1)
  21636. }
  21637. }
  21638. /* can't push EOF */
  21639. if c < 0 {
  21640. return -int32(1)
  21641. }
  21642. /* if output buffer empty, put byte at end (allows more pushing) */
  21643. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21644. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  21645. (*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)
  21646. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21647. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21648. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21649. return c
  21650. }
  21651. /* if no room, give up (must have already done a gzungetc()) */
  21652. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21653. Xgz_error(tls, state, -int32(3), __ccgo_ts+767)
  21654. return -int32(1)
  21655. }
  21656. /* slide output data if needed and insert byte before existing data */
  21657. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21658. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21659. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  21660. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21661. dest--
  21662. v1 = dest
  21663. src--
  21664. v2 = src
  21665. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  21666. }
  21667. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  21668. }
  21669. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  21670. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  21671. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21672. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21673. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21674. return c
  21675. }
  21676. // C documentation
  21677. //
  21678. // /* -- see zlib.h -- */
  21679. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  21680. var eol, str uintptr
  21681. var left, n, v1 uint32
  21682. var state Tgz_statep
  21683. _, _, _, _, _, _ = eol, left, n, state, str, v1
  21684. /* check parameters and get internal structure */
  21685. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  21686. return libc.UintptrFromInt32(0)
  21687. }
  21688. state = file
  21689. /* check that we're reading and that there's no (serious) error */
  21690. 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) {
  21691. return libc.UintptrFromInt32(0)
  21692. }
  21693. /* process a skip request */
  21694. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21695. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21696. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21697. return libc.UintptrFromInt32(0)
  21698. }
  21699. }
  21700. /* copy output bytes up to new line or len - 1, whichever comes first --
  21701. append a terminating zero to the string (we don't check for a zero in
  21702. the contents, let the user worry about that) */
  21703. str = buf
  21704. left = libc.Uint32FromInt32(len1) - uint32(1)
  21705. if left != 0 {
  21706. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  21707. /* assure that something is in the output buffer */
  21708. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  21709. return libc.UintptrFromInt32(0)
  21710. } /* error */
  21711. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  21712. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  21713. break /* return what we have */
  21714. }
  21715. /* look for end-of-line in current output buffer */
  21716. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  21717. v1 = left
  21718. } else {
  21719. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21720. }
  21721. n = v1
  21722. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), n)
  21723. if eol != libc.UintptrFromInt32(0) {
  21724. n = libc.Uint32FromInt32(int32(eol)-int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  21725. }
  21726. /* copy through end-of-line, or remainder if not found */
  21727. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, n)
  21728. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21729. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21730. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21731. left -= n
  21732. buf += uintptr(n)
  21733. }
  21734. }
  21735. /* return terminated string, or if nothing, end of file */
  21736. if buf == str {
  21737. return libc.UintptrFromInt32(0)
  21738. }
  21739. *(*uint8)(unsafe.Pointer(buf)) = uint8(0)
  21740. return str
  21741. }
  21742. // C documentation
  21743. //
  21744. // /* -- see zlib.h -- */
  21745. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  21746. var state Tgz_statep
  21747. _ = state
  21748. /* get internal structure */
  21749. if file == libc.UintptrFromInt32(0) {
  21750. return 0
  21751. }
  21752. state = file
  21753. /* if the state is not known, but we can find out, then do so (this is
  21754. mainly for right after a gzopen() or gzdopen()) */
  21755. 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) {
  21756. _gz_look(tls, state)
  21757. }
  21758. /* return 1 if transparent, 0 if processing a gzip stream */
  21759. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  21760. }
  21761. // C documentation
  21762. //
  21763. // /* -- see zlib.h -- */
  21764. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  21765. var err, ret, v1, v2 int32
  21766. var state Tgz_statep
  21767. _, _, _, _, _ = err, ret, state, v1, v2
  21768. /* get internal structure */
  21769. if file == libc.UintptrFromInt32(0) {
  21770. return -int32(2)
  21771. }
  21772. state = file
  21773. /* check that we're reading */
  21774. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  21775. return -int32(2)
  21776. }
  21777. /* free memory and close file */
  21778. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21779. XinflateEnd(tls, state+108)
  21780. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21781. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21782. }
  21783. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  21784. v1 = -int32(5)
  21785. } else {
  21786. v1 = m_Z_OK
  21787. }
  21788. err = v1
  21789. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21790. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21791. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  21792. libc.Xfree(tls, state)
  21793. if ret != 0 {
  21794. v2 = -int32(1)
  21795. } else {
  21796. v2 = err
  21797. }
  21798. return v2
  21799. }
  21800. // C documentation
  21801. //
  21802. // /* Initialize state for writing a gzip file. Mark initialization by setting
  21803. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  21804. // success. */
  21805. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  21806. var ret int32
  21807. var strm Tz_streamp
  21808. _, _ = ret, strm
  21809. strm = state + 108
  21810. /* allocate input buffer (double size for gzprintf) */
  21811. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1))
  21812. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  21813. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21814. return -int32(1)
  21815. }
  21816. /* only need output buffer and deflate state if compressing */
  21817. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21818. /* allocate output buffer */
  21819. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, (*Tgz_state)(unsafe.Pointer(state)).Fwant)
  21820. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21821. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21822. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21823. return -int32(1)
  21824. }
  21825. /* allocate deflate memory, set up for gzip compression */
  21826. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  21827. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  21828. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  21829. 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(56))
  21830. if ret != m_Z_OK {
  21831. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21832. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21833. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21834. return -int32(1)
  21835. }
  21836. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  21837. }
  21838. /* mark state as initialized */
  21839. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21840. /* initialize write buffer if compressing */
  21841. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21842. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21843. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21844. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  21845. }
  21846. return 0
  21847. }
  21848. // C documentation
  21849. //
  21850. // /* Compress whatever is at avail_in and next_in and write to the output file.
  21851. // Return -1 if there is an error writing to the output file or if gz_init()
  21852. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  21853. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  21854. // reset to start a new gzip stream. If gz->direct is true, then simply write
  21855. // to the output file without compressing, and ignore flush. */
  21856. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  21857. var have, max, put, v1, v2 uint32
  21858. var ret, writ int32
  21859. var strm Tz_streamp
  21860. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  21861. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21862. strm = state + 108
  21863. /* allocate memory if this is the first time through */
  21864. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21865. return -int32(1)
  21866. }
  21867. /* write directly if requested */
  21868. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21869. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  21870. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  21871. v1 = max
  21872. } else {
  21873. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21874. }
  21875. put = v1
  21876. writ = libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, put)
  21877. if writ < 0 {
  21878. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21879. return -int32(1)
  21880. }
  21881. *(*TuInt)(unsafe.Pointer(strm + 4)) -= libc.Uint32FromInt32(writ)
  21882. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  21883. }
  21884. return 0
  21885. }
  21886. /* check for a pending reset */
  21887. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  21888. /* don't start a new gzip member unless there is data to write */
  21889. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21890. return 0
  21891. }
  21892. XdeflateReset(tls, strm)
  21893. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  21894. }
  21895. /* run deflate() on provided input until it produces no more output */
  21896. ret = m_Z_OK
  21897. for cond := true; cond; cond = have != 0 {
  21898. /* write out current buffer contents if full, or if flushing, but if
  21899. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  21900. 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)) {
  21901. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  21902. if int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > libc.Int32FromUint32(max) {
  21903. v2 = max
  21904. } else {
  21905. v2 = libc.Uint32FromInt32(int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  21906. }
  21907. put = v2
  21908. writ = libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, put)
  21909. if writ < 0 {
  21910. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21911. return -int32(1)
  21912. }
  21913. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  21914. }
  21915. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  21916. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21917. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21918. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21919. }
  21920. }
  21921. /* compress */
  21922. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21923. ret = Xdeflate(tls, strm, flush)
  21924. if ret == -int32(2) {
  21925. Xgz_error(tls, state, -int32(2), __ccgo_ts+798)
  21926. return -int32(1)
  21927. }
  21928. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21929. }
  21930. /* if that completed a deflate stream, allow another to start */
  21931. if flush == int32(m_Z_FINISH) {
  21932. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  21933. }
  21934. /* all done, no errors */
  21935. return 0
  21936. }
  21937. // C documentation
  21938. //
  21939. // /* Compress len zeros to output. Return -1 on a write error or memory
  21940. // allocation failure by gz_comp(), or 0 on success. */
  21941. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21942. var first int32
  21943. var n, v1 uint32
  21944. var strm Tz_streamp
  21945. _, _, _, _ = first, n, strm, v1
  21946. strm = state + 108
  21947. /* consume whatever's left in the input buffer */
  21948. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21949. return -int32(1)
  21950. }
  21951. /* compress len zeros (len guaranteed > 0) */
  21952. first = int32(1)
  21953. for len1 != 0 {
  21954. if libc.Bool(libc.Bool(uint32(4) == uint32(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  21955. v1 = libc.Uint32FromInt64(len1)
  21956. } else {
  21957. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21958. }
  21959. n = v1
  21960. if first != 0 {
  21961. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, n)
  21962. first = 0
  21963. }
  21964. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  21965. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21966. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21967. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21968. return -int32(1)
  21969. }
  21970. len1 -= libc.Int64FromUint32(n)
  21971. }
  21972. return 0
  21973. }
  21974. // C documentation
  21975. //
  21976. // /* Write len bytes from buf to file. Return the number of bytes written. If
  21977. // the returned value is less than len, then there was an error. */
  21978. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  21979. var copy1, have, n uint32
  21980. var put Tz_size_t
  21981. _, _, _, _ = copy1, have, n, put
  21982. put = len1
  21983. /* if len is zero, avoid unnecessary operations */
  21984. if len1 == uint32(0) {
  21985. return uint32(0)
  21986. }
  21987. /* allocate memory if this is the first time through */
  21988. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21989. return uint32(0)
  21990. }
  21991. /* check for seek request */
  21992. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21993. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21994. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21995. return uint32(0)
  21996. }
  21997. }
  21998. /* for small len, copy to input buffer, otherwise compress directly */
  21999. if len1 < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22000. /* copy to input buffer, compress when full */
  22001. for cond := true; cond; cond = len1 != 0 {
  22002. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  22003. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22004. }
  22005. have = libc.Uint32FromInt32(int32((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int32((*Tgz_state)(unsafe.Pointer(state)).Fin))
  22006. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  22007. if copy1 > len1 {
  22008. copy1 = len1
  22009. }
  22010. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, copy1)
  22011. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  22012. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(copy1)
  22013. buf = buf + uintptr(copy1)
  22014. len1 -= copy1
  22015. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22016. return uint32(0)
  22017. }
  22018. }
  22019. } else {
  22020. /* consume whatever's left in the input buffer */
  22021. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22022. return uint32(0)
  22023. }
  22024. /* directly compress user buffer to file */
  22025. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  22026. for cond := true; cond; cond = len1 != 0 {
  22027. n = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  22028. if n > len1 {
  22029. n = len1
  22030. }
  22031. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  22032. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  22033. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22034. return uint32(0)
  22035. }
  22036. len1 -= n
  22037. }
  22038. }
  22039. /* input was all buffered or compressed */
  22040. return put
  22041. }
  22042. // C documentation
  22043. //
  22044. // /* -- see zlib.h -- */
  22045. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  22046. var state Tgz_statep
  22047. _ = state
  22048. /* get internal structure */
  22049. if file == libc.UintptrFromInt32(0) {
  22050. return 0
  22051. }
  22052. state = file
  22053. /* check that we're writing and that there's no error */
  22054. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22055. return 0
  22056. }
  22057. /* since an int is returned, make sure len fits in one, otherwise return
  22058. with an error (this avoids a flaw in the interface) */
  22059. if libc.Int32FromUint32(len1) < 0 {
  22060. Xgz_error(tls, state, -int32(3), __ccgo_ts+837)
  22061. return 0
  22062. }
  22063. /* write len bytes from buf (the return value will fit in an int) */
  22064. return libc.Int32FromUint32(_gz_write(tls, state, buf, len1))
  22065. }
  22066. // C documentation
  22067. //
  22068. // /* -- see zlib.h -- */
  22069. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  22070. var len1 Tz_size_t
  22071. var state Tgz_statep
  22072. var v1 uint32
  22073. _, _, _ = len1, state, v1
  22074. /* get internal structure */
  22075. if file == libc.UintptrFromInt32(0) {
  22076. return uint32(0)
  22077. }
  22078. state = file
  22079. /* check that we're writing and that there's no error */
  22080. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22081. return uint32(0)
  22082. }
  22083. /* compute bytes to read -- error on overflow */
  22084. len1 = nitems * size
  22085. if size != 0 && len1/size != nitems {
  22086. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  22087. return uint32(0)
  22088. }
  22089. /* write len bytes to buf, return the number of full items written */
  22090. if len1 != 0 {
  22091. v1 = _gz_write(tls, state, buf, len1) / size
  22092. } else {
  22093. v1 = uint32(0)
  22094. }
  22095. return v1
  22096. }
  22097. // C documentation
  22098. //
  22099. // /* -- see zlib.h -- */
  22100. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  22101. bp := tls.Alloc(16)
  22102. defer tls.Free(16)
  22103. var have uint32
  22104. var state Tgz_statep
  22105. var strm Tz_streamp
  22106. var _ /* buf at bp+0 */ [1]uint8
  22107. _, _, _ = have, state, strm
  22108. /* get internal structure */
  22109. if file == libc.UintptrFromInt32(0) {
  22110. return -int32(1)
  22111. }
  22112. state = file
  22113. strm = state + 108
  22114. /* check that we're writing and that there's no error */
  22115. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22116. return -int32(1)
  22117. }
  22118. /* check for seek request */
  22119. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22120. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22121. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22122. return -int32(1)
  22123. }
  22124. }
  22125. /* try writing to input buffer for speed (state->size == 0 if buffer not
  22126. initialized) */
  22127. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22128. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22129. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22130. }
  22131. have = libc.Uint32FromInt32(int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int32((*Tgz_state)(unsafe.Pointer(state)).Fin))
  22132. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22133. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = libc.Uint8FromInt32(c)
  22134. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  22135. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  22136. return c & int32(0xff)
  22137. }
  22138. }
  22139. /* no room in buffer or not initialized, use gz_write() */
  22140. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = libc.Uint8FromInt32(c)
  22141. if _gz_write(tls, state, bp, uint32(1)) != uint32(1) {
  22142. return -int32(1)
  22143. }
  22144. return c & int32(0xff)
  22145. }
  22146. // C documentation
  22147. //
  22148. // /* -- see zlib.h -- */
  22149. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  22150. var len1, put Tz_size_t
  22151. var state Tgz_statep
  22152. var v1 int32
  22153. _, _, _, _ = len1, put, state, v1
  22154. /* get internal structure */
  22155. if file == libc.UintptrFromInt32(0) {
  22156. return -int32(1)
  22157. }
  22158. state = file
  22159. /* check that we're writing and that there's no error */
  22160. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22161. return -int32(1)
  22162. }
  22163. /* write string */
  22164. len1 = libc.Xstrlen(tls, s)
  22165. if libc.Int32FromUint32(len1) < 0 || len1 != len1 {
  22166. Xgz_error(tls, state, -int32(2), __ccgo_ts+874)
  22167. return -int32(1)
  22168. }
  22169. put = _gz_write(tls, state, s, len1)
  22170. if put < len1 {
  22171. v1 = -int32(1)
  22172. } else {
  22173. v1 = libc.Int32FromUint32(len1)
  22174. }
  22175. return v1
  22176. }
  22177. // C documentation
  22178. //
  22179. // /* -- see zlib.h -- */
  22180. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  22181. var left uint32
  22182. var len1 int32
  22183. var next uintptr
  22184. var state Tgz_statep
  22185. var strm Tz_streamp
  22186. _, _, _, _, _ = left, len1, next, state, strm
  22187. /* get internal structure */
  22188. if file == libc.UintptrFromInt32(0) {
  22189. return -int32(2)
  22190. }
  22191. state = file
  22192. strm = state + 108
  22193. /* check that we're writing and that there's no error */
  22194. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22195. return -int32(2)
  22196. }
  22197. /* make sure we have some buffer space */
  22198. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  22199. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22200. }
  22201. /* check for seek request */
  22202. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22203. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22204. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22205. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22206. }
  22207. }
  22208. /* do the printf() into the input buffer, put length in len -- the input
  22209. buffer is double-sized just for this function, so there is guaranteed to
  22210. be state->size bytes available after the current contents */
  22211. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22212. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22213. }
  22214. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int32((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int32((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  22215. *(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = uint8(0)
  22216. len1 = libc.X__builtin_vsnprintf(tls, next, (*Tgz_state)(unsafe.Pointer(state)).Fsize, format, va)
  22217. /* check that printf() results fit in buffer */
  22218. if len1 == 0 || libc.Uint32FromInt32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  22219. return 0
  22220. }
  22221. /* update buffer and position, compress first half if past that */
  22222. *(*TuInt)(unsafe.Pointer(strm + 4)) += libc.Uint32FromInt32(len1)
  22223. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(len1)
  22224. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22225. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22226. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22227. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22228. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22229. }
  22230. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), left)
  22231. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22232. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  22233. }
  22234. return len1
  22235. }
  22236. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  22237. var ret int32
  22238. var va Tva_list
  22239. _, _ = ret, va
  22240. va = va1
  22241. ret = Xgzvprintf(tls, file, format, va)
  22242. _ = va
  22243. return ret
  22244. }
  22245. // C documentation
  22246. //
  22247. // /* -- see zlib.h -- */
  22248. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  22249. var state Tgz_statep
  22250. _ = state
  22251. /* get internal structure */
  22252. if file == libc.UintptrFromInt32(0) {
  22253. return -int32(2)
  22254. }
  22255. state = file
  22256. /* check that we're writing and that there's no error */
  22257. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22258. return -int32(2)
  22259. }
  22260. /* check flush parameter */
  22261. if flush < 0 || flush > int32(m_Z_FINISH) {
  22262. return -int32(2)
  22263. }
  22264. /* check for seek request */
  22265. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22266. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22267. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22268. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22269. }
  22270. }
  22271. /* compress remaining data with requested flush */
  22272. _gz_comp(tls, state, flush)
  22273. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22274. }
  22275. // C documentation
  22276. //
  22277. // /* -- see zlib.h -- */
  22278. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  22279. var state Tgz_statep
  22280. var strm Tz_streamp
  22281. _, _ = state, strm
  22282. /* get internal structure */
  22283. if file == libc.UintptrFromInt32(0) {
  22284. return -int32(2)
  22285. }
  22286. state = file
  22287. strm = state + 108
  22288. /* check that we're writing and that there's no error */
  22289. 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 {
  22290. return -int32(2)
  22291. }
  22292. /* if no change is requested, then do nothing */
  22293. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  22294. return m_Z_OK
  22295. }
  22296. /* check for seek request */
  22297. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22298. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22299. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22300. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22301. }
  22302. }
  22303. /* change compression parameters for subsequent input */
  22304. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22305. /* flush previous input with previous parameters before changing */
  22306. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  22307. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22308. }
  22309. XdeflateParams(tls, strm, level, strategy)
  22310. }
  22311. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  22312. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  22313. return m_Z_OK
  22314. }
  22315. // C documentation
  22316. //
  22317. // /* -- see zlib.h -- */
  22318. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  22319. var ret int32
  22320. var state Tgz_statep
  22321. _, _ = ret, state
  22322. ret = m_Z_OK
  22323. /* get internal structure */
  22324. if file == libc.UintptrFromInt32(0) {
  22325. return -int32(2)
  22326. }
  22327. state = file
  22328. /* check that we're writing */
  22329. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22330. return -int32(2)
  22331. }
  22332. /* check for seek request */
  22333. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22334. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22335. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22336. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22337. }
  22338. }
  22339. /* flush, free memory, and close file */
  22340. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  22341. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22342. }
  22343. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22344. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  22345. XdeflateEnd(tls, state+108)
  22346. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22347. }
  22348. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22349. }
  22350. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22351. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  22352. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  22353. ret = -int32(1)
  22354. }
  22355. libc.Xfree(tls, state)
  22356. return ret
  22357. }
  22358. func __ccgo_fp(f interface{}) uintptr {
  22359. type iface [2]uintptr
  22360. return (*iface)(unsafe.Pointer(&f))[1]
  22361. }
  22362. var x__dist_code = [512]Tuch{
  22363. 1: uint8(1),
  22364. 2: uint8(2),
  22365. 3: uint8(3),
  22366. 4: uint8(4),
  22367. 5: uint8(4),
  22368. 6: uint8(5),
  22369. 7: uint8(5),
  22370. 8: uint8(6),
  22371. 9: uint8(6),
  22372. 10: uint8(6),
  22373. 11: uint8(6),
  22374. 12: uint8(7),
  22375. 13: uint8(7),
  22376. 14: uint8(7),
  22377. 15: uint8(7),
  22378. 16: uint8(8),
  22379. 17: uint8(8),
  22380. 18: uint8(8),
  22381. 19: uint8(8),
  22382. 20: uint8(8),
  22383. 21: uint8(8),
  22384. 22: uint8(8),
  22385. 23: uint8(8),
  22386. 24: uint8(9),
  22387. 25: uint8(9),
  22388. 26: uint8(9),
  22389. 27: uint8(9),
  22390. 28: uint8(9),
  22391. 29: uint8(9),
  22392. 30: uint8(9),
  22393. 31: uint8(9),
  22394. 32: uint8(10),
  22395. 33: uint8(10),
  22396. 34: uint8(10),
  22397. 35: uint8(10),
  22398. 36: uint8(10),
  22399. 37: uint8(10),
  22400. 38: uint8(10),
  22401. 39: uint8(10),
  22402. 40: uint8(10),
  22403. 41: uint8(10),
  22404. 42: uint8(10),
  22405. 43: uint8(10),
  22406. 44: uint8(10),
  22407. 45: uint8(10),
  22408. 46: uint8(10),
  22409. 47: uint8(10),
  22410. 48: uint8(11),
  22411. 49: uint8(11),
  22412. 50: uint8(11),
  22413. 51: uint8(11),
  22414. 52: uint8(11),
  22415. 53: uint8(11),
  22416. 54: uint8(11),
  22417. 55: uint8(11),
  22418. 56: uint8(11),
  22419. 57: uint8(11),
  22420. 58: uint8(11),
  22421. 59: uint8(11),
  22422. 60: uint8(11),
  22423. 61: uint8(11),
  22424. 62: uint8(11),
  22425. 63: uint8(11),
  22426. 64: uint8(12),
  22427. 65: uint8(12),
  22428. 66: uint8(12),
  22429. 67: uint8(12),
  22430. 68: uint8(12),
  22431. 69: uint8(12),
  22432. 70: uint8(12),
  22433. 71: uint8(12),
  22434. 72: uint8(12),
  22435. 73: uint8(12),
  22436. 74: uint8(12),
  22437. 75: uint8(12),
  22438. 76: uint8(12),
  22439. 77: uint8(12),
  22440. 78: uint8(12),
  22441. 79: uint8(12),
  22442. 80: uint8(12),
  22443. 81: uint8(12),
  22444. 82: uint8(12),
  22445. 83: uint8(12),
  22446. 84: uint8(12),
  22447. 85: uint8(12),
  22448. 86: uint8(12),
  22449. 87: uint8(12),
  22450. 88: uint8(12),
  22451. 89: uint8(12),
  22452. 90: uint8(12),
  22453. 91: uint8(12),
  22454. 92: uint8(12),
  22455. 93: uint8(12),
  22456. 94: uint8(12),
  22457. 95: uint8(12),
  22458. 96: uint8(13),
  22459. 97: uint8(13),
  22460. 98: uint8(13),
  22461. 99: uint8(13),
  22462. 100: uint8(13),
  22463. 101: uint8(13),
  22464. 102: uint8(13),
  22465. 103: uint8(13),
  22466. 104: uint8(13),
  22467. 105: uint8(13),
  22468. 106: uint8(13),
  22469. 107: uint8(13),
  22470. 108: uint8(13),
  22471. 109: uint8(13),
  22472. 110: uint8(13),
  22473. 111: uint8(13),
  22474. 112: uint8(13),
  22475. 113: uint8(13),
  22476. 114: uint8(13),
  22477. 115: uint8(13),
  22478. 116: uint8(13),
  22479. 117: uint8(13),
  22480. 118: uint8(13),
  22481. 119: uint8(13),
  22482. 120: uint8(13),
  22483. 121: uint8(13),
  22484. 122: uint8(13),
  22485. 123: uint8(13),
  22486. 124: uint8(13),
  22487. 125: uint8(13),
  22488. 126: uint8(13),
  22489. 127: uint8(13),
  22490. 128: uint8(14),
  22491. 129: uint8(14),
  22492. 130: uint8(14),
  22493. 131: uint8(14),
  22494. 132: uint8(14),
  22495. 133: uint8(14),
  22496. 134: uint8(14),
  22497. 135: uint8(14),
  22498. 136: uint8(14),
  22499. 137: uint8(14),
  22500. 138: uint8(14),
  22501. 139: uint8(14),
  22502. 140: uint8(14),
  22503. 141: uint8(14),
  22504. 142: uint8(14),
  22505. 143: uint8(14),
  22506. 144: uint8(14),
  22507. 145: uint8(14),
  22508. 146: uint8(14),
  22509. 147: uint8(14),
  22510. 148: uint8(14),
  22511. 149: uint8(14),
  22512. 150: uint8(14),
  22513. 151: uint8(14),
  22514. 152: uint8(14),
  22515. 153: uint8(14),
  22516. 154: uint8(14),
  22517. 155: uint8(14),
  22518. 156: uint8(14),
  22519. 157: uint8(14),
  22520. 158: uint8(14),
  22521. 159: uint8(14),
  22522. 160: uint8(14),
  22523. 161: uint8(14),
  22524. 162: uint8(14),
  22525. 163: uint8(14),
  22526. 164: uint8(14),
  22527. 165: uint8(14),
  22528. 166: uint8(14),
  22529. 167: uint8(14),
  22530. 168: uint8(14),
  22531. 169: uint8(14),
  22532. 170: uint8(14),
  22533. 171: uint8(14),
  22534. 172: uint8(14),
  22535. 173: uint8(14),
  22536. 174: uint8(14),
  22537. 175: uint8(14),
  22538. 176: uint8(14),
  22539. 177: uint8(14),
  22540. 178: uint8(14),
  22541. 179: uint8(14),
  22542. 180: uint8(14),
  22543. 181: uint8(14),
  22544. 182: uint8(14),
  22545. 183: uint8(14),
  22546. 184: uint8(14),
  22547. 185: uint8(14),
  22548. 186: uint8(14),
  22549. 187: uint8(14),
  22550. 188: uint8(14),
  22551. 189: uint8(14),
  22552. 190: uint8(14),
  22553. 191: uint8(14),
  22554. 192: uint8(15),
  22555. 193: uint8(15),
  22556. 194: uint8(15),
  22557. 195: uint8(15),
  22558. 196: uint8(15),
  22559. 197: uint8(15),
  22560. 198: uint8(15),
  22561. 199: uint8(15),
  22562. 200: uint8(15),
  22563. 201: uint8(15),
  22564. 202: uint8(15),
  22565. 203: uint8(15),
  22566. 204: uint8(15),
  22567. 205: uint8(15),
  22568. 206: uint8(15),
  22569. 207: uint8(15),
  22570. 208: uint8(15),
  22571. 209: uint8(15),
  22572. 210: uint8(15),
  22573. 211: uint8(15),
  22574. 212: uint8(15),
  22575. 213: uint8(15),
  22576. 214: uint8(15),
  22577. 215: uint8(15),
  22578. 216: uint8(15),
  22579. 217: uint8(15),
  22580. 218: uint8(15),
  22581. 219: uint8(15),
  22582. 220: uint8(15),
  22583. 221: uint8(15),
  22584. 222: uint8(15),
  22585. 223: uint8(15),
  22586. 224: uint8(15),
  22587. 225: uint8(15),
  22588. 226: uint8(15),
  22589. 227: uint8(15),
  22590. 228: uint8(15),
  22591. 229: uint8(15),
  22592. 230: uint8(15),
  22593. 231: uint8(15),
  22594. 232: uint8(15),
  22595. 233: uint8(15),
  22596. 234: uint8(15),
  22597. 235: uint8(15),
  22598. 236: uint8(15),
  22599. 237: uint8(15),
  22600. 238: uint8(15),
  22601. 239: uint8(15),
  22602. 240: uint8(15),
  22603. 241: uint8(15),
  22604. 242: uint8(15),
  22605. 243: uint8(15),
  22606. 244: uint8(15),
  22607. 245: uint8(15),
  22608. 246: uint8(15),
  22609. 247: uint8(15),
  22610. 248: uint8(15),
  22611. 249: uint8(15),
  22612. 250: uint8(15),
  22613. 251: uint8(15),
  22614. 252: uint8(15),
  22615. 253: uint8(15),
  22616. 254: uint8(15),
  22617. 255: uint8(15),
  22618. 258: uint8(16),
  22619. 259: uint8(17),
  22620. 260: uint8(18),
  22621. 261: uint8(18),
  22622. 262: uint8(19),
  22623. 263: uint8(19),
  22624. 264: uint8(20),
  22625. 265: uint8(20),
  22626. 266: uint8(20),
  22627. 267: uint8(20),
  22628. 268: uint8(21),
  22629. 269: uint8(21),
  22630. 270: uint8(21),
  22631. 271: uint8(21),
  22632. 272: uint8(22),
  22633. 273: uint8(22),
  22634. 274: uint8(22),
  22635. 275: uint8(22),
  22636. 276: uint8(22),
  22637. 277: uint8(22),
  22638. 278: uint8(22),
  22639. 279: uint8(22),
  22640. 280: uint8(23),
  22641. 281: uint8(23),
  22642. 282: uint8(23),
  22643. 283: uint8(23),
  22644. 284: uint8(23),
  22645. 285: uint8(23),
  22646. 286: uint8(23),
  22647. 287: uint8(23),
  22648. 288: uint8(24),
  22649. 289: uint8(24),
  22650. 290: uint8(24),
  22651. 291: uint8(24),
  22652. 292: uint8(24),
  22653. 293: uint8(24),
  22654. 294: uint8(24),
  22655. 295: uint8(24),
  22656. 296: uint8(24),
  22657. 297: uint8(24),
  22658. 298: uint8(24),
  22659. 299: uint8(24),
  22660. 300: uint8(24),
  22661. 301: uint8(24),
  22662. 302: uint8(24),
  22663. 303: uint8(24),
  22664. 304: uint8(25),
  22665. 305: uint8(25),
  22666. 306: uint8(25),
  22667. 307: uint8(25),
  22668. 308: uint8(25),
  22669. 309: uint8(25),
  22670. 310: uint8(25),
  22671. 311: uint8(25),
  22672. 312: uint8(25),
  22673. 313: uint8(25),
  22674. 314: uint8(25),
  22675. 315: uint8(25),
  22676. 316: uint8(25),
  22677. 317: uint8(25),
  22678. 318: uint8(25),
  22679. 319: uint8(25),
  22680. 320: uint8(26),
  22681. 321: uint8(26),
  22682. 322: uint8(26),
  22683. 323: uint8(26),
  22684. 324: uint8(26),
  22685. 325: uint8(26),
  22686. 326: uint8(26),
  22687. 327: uint8(26),
  22688. 328: uint8(26),
  22689. 329: uint8(26),
  22690. 330: uint8(26),
  22691. 331: uint8(26),
  22692. 332: uint8(26),
  22693. 333: uint8(26),
  22694. 334: uint8(26),
  22695. 335: uint8(26),
  22696. 336: uint8(26),
  22697. 337: uint8(26),
  22698. 338: uint8(26),
  22699. 339: uint8(26),
  22700. 340: uint8(26),
  22701. 341: uint8(26),
  22702. 342: uint8(26),
  22703. 343: uint8(26),
  22704. 344: uint8(26),
  22705. 345: uint8(26),
  22706. 346: uint8(26),
  22707. 347: uint8(26),
  22708. 348: uint8(26),
  22709. 349: uint8(26),
  22710. 350: uint8(26),
  22711. 351: uint8(26),
  22712. 352: uint8(27),
  22713. 353: uint8(27),
  22714. 354: uint8(27),
  22715. 355: uint8(27),
  22716. 356: uint8(27),
  22717. 357: uint8(27),
  22718. 358: uint8(27),
  22719. 359: uint8(27),
  22720. 360: uint8(27),
  22721. 361: uint8(27),
  22722. 362: uint8(27),
  22723. 363: uint8(27),
  22724. 364: uint8(27),
  22725. 365: uint8(27),
  22726. 366: uint8(27),
  22727. 367: uint8(27),
  22728. 368: uint8(27),
  22729. 369: uint8(27),
  22730. 370: uint8(27),
  22731. 371: uint8(27),
  22732. 372: uint8(27),
  22733. 373: uint8(27),
  22734. 374: uint8(27),
  22735. 375: uint8(27),
  22736. 376: uint8(27),
  22737. 377: uint8(27),
  22738. 378: uint8(27),
  22739. 379: uint8(27),
  22740. 380: uint8(27),
  22741. 381: uint8(27),
  22742. 382: uint8(27),
  22743. 383: uint8(27),
  22744. 384: uint8(28),
  22745. 385: uint8(28),
  22746. 386: uint8(28),
  22747. 387: uint8(28),
  22748. 388: uint8(28),
  22749. 389: uint8(28),
  22750. 390: uint8(28),
  22751. 391: uint8(28),
  22752. 392: uint8(28),
  22753. 393: uint8(28),
  22754. 394: uint8(28),
  22755. 395: uint8(28),
  22756. 396: uint8(28),
  22757. 397: uint8(28),
  22758. 398: uint8(28),
  22759. 399: uint8(28),
  22760. 400: uint8(28),
  22761. 401: uint8(28),
  22762. 402: uint8(28),
  22763. 403: uint8(28),
  22764. 404: uint8(28),
  22765. 405: uint8(28),
  22766. 406: uint8(28),
  22767. 407: uint8(28),
  22768. 408: uint8(28),
  22769. 409: uint8(28),
  22770. 410: uint8(28),
  22771. 411: uint8(28),
  22772. 412: uint8(28),
  22773. 413: uint8(28),
  22774. 414: uint8(28),
  22775. 415: uint8(28),
  22776. 416: uint8(28),
  22777. 417: uint8(28),
  22778. 418: uint8(28),
  22779. 419: uint8(28),
  22780. 420: uint8(28),
  22781. 421: uint8(28),
  22782. 422: uint8(28),
  22783. 423: uint8(28),
  22784. 424: uint8(28),
  22785. 425: uint8(28),
  22786. 426: uint8(28),
  22787. 427: uint8(28),
  22788. 428: uint8(28),
  22789. 429: uint8(28),
  22790. 430: uint8(28),
  22791. 431: uint8(28),
  22792. 432: uint8(28),
  22793. 433: uint8(28),
  22794. 434: uint8(28),
  22795. 435: uint8(28),
  22796. 436: uint8(28),
  22797. 437: uint8(28),
  22798. 438: uint8(28),
  22799. 439: uint8(28),
  22800. 440: uint8(28),
  22801. 441: uint8(28),
  22802. 442: uint8(28),
  22803. 443: uint8(28),
  22804. 444: uint8(28),
  22805. 445: uint8(28),
  22806. 446: uint8(28),
  22807. 447: uint8(28),
  22808. 448: uint8(29),
  22809. 449: uint8(29),
  22810. 450: uint8(29),
  22811. 451: uint8(29),
  22812. 452: uint8(29),
  22813. 453: uint8(29),
  22814. 454: uint8(29),
  22815. 455: uint8(29),
  22816. 456: uint8(29),
  22817. 457: uint8(29),
  22818. 458: uint8(29),
  22819. 459: uint8(29),
  22820. 460: uint8(29),
  22821. 461: uint8(29),
  22822. 462: uint8(29),
  22823. 463: uint8(29),
  22824. 464: uint8(29),
  22825. 465: uint8(29),
  22826. 466: uint8(29),
  22827. 467: uint8(29),
  22828. 468: uint8(29),
  22829. 469: uint8(29),
  22830. 470: uint8(29),
  22831. 471: uint8(29),
  22832. 472: uint8(29),
  22833. 473: uint8(29),
  22834. 474: uint8(29),
  22835. 475: uint8(29),
  22836. 476: uint8(29),
  22837. 477: uint8(29),
  22838. 478: uint8(29),
  22839. 479: uint8(29),
  22840. 480: uint8(29),
  22841. 481: uint8(29),
  22842. 482: uint8(29),
  22843. 483: uint8(29),
  22844. 484: uint8(29),
  22845. 485: uint8(29),
  22846. 486: uint8(29),
  22847. 487: uint8(29),
  22848. 488: uint8(29),
  22849. 489: uint8(29),
  22850. 490: uint8(29),
  22851. 491: uint8(29),
  22852. 492: uint8(29),
  22853. 493: uint8(29),
  22854. 494: uint8(29),
  22855. 495: uint8(29),
  22856. 496: uint8(29),
  22857. 497: uint8(29),
  22858. 498: uint8(29),
  22859. 499: uint8(29),
  22860. 500: uint8(29),
  22861. 501: uint8(29),
  22862. 502: uint8(29),
  22863. 503: uint8(29),
  22864. 504: uint8(29),
  22865. 505: uint8(29),
  22866. 506: uint8(29),
  22867. 507: uint8(29),
  22868. 508: uint8(29),
  22869. 509: uint8(29),
  22870. 510: uint8(29),
  22871. 511: uint8(29),
  22872. }
  22873. var x__length_code = [256]Tuch{
  22874. 1: uint8(1),
  22875. 2: uint8(2),
  22876. 3: uint8(3),
  22877. 4: uint8(4),
  22878. 5: uint8(5),
  22879. 6: uint8(6),
  22880. 7: uint8(7),
  22881. 8: uint8(8),
  22882. 9: uint8(8),
  22883. 10: uint8(9),
  22884. 11: uint8(9),
  22885. 12: uint8(10),
  22886. 13: uint8(10),
  22887. 14: uint8(11),
  22888. 15: uint8(11),
  22889. 16: uint8(12),
  22890. 17: uint8(12),
  22891. 18: uint8(12),
  22892. 19: uint8(12),
  22893. 20: uint8(13),
  22894. 21: uint8(13),
  22895. 22: uint8(13),
  22896. 23: uint8(13),
  22897. 24: uint8(14),
  22898. 25: uint8(14),
  22899. 26: uint8(14),
  22900. 27: uint8(14),
  22901. 28: uint8(15),
  22902. 29: uint8(15),
  22903. 30: uint8(15),
  22904. 31: uint8(15),
  22905. 32: uint8(16),
  22906. 33: uint8(16),
  22907. 34: uint8(16),
  22908. 35: uint8(16),
  22909. 36: uint8(16),
  22910. 37: uint8(16),
  22911. 38: uint8(16),
  22912. 39: uint8(16),
  22913. 40: uint8(17),
  22914. 41: uint8(17),
  22915. 42: uint8(17),
  22916. 43: uint8(17),
  22917. 44: uint8(17),
  22918. 45: uint8(17),
  22919. 46: uint8(17),
  22920. 47: uint8(17),
  22921. 48: uint8(18),
  22922. 49: uint8(18),
  22923. 50: uint8(18),
  22924. 51: uint8(18),
  22925. 52: uint8(18),
  22926. 53: uint8(18),
  22927. 54: uint8(18),
  22928. 55: uint8(18),
  22929. 56: uint8(19),
  22930. 57: uint8(19),
  22931. 58: uint8(19),
  22932. 59: uint8(19),
  22933. 60: uint8(19),
  22934. 61: uint8(19),
  22935. 62: uint8(19),
  22936. 63: uint8(19),
  22937. 64: uint8(20),
  22938. 65: uint8(20),
  22939. 66: uint8(20),
  22940. 67: uint8(20),
  22941. 68: uint8(20),
  22942. 69: uint8(20),
  22943. 70: uint8(20),
  22944. 71: uint8(20),
  22945. 72: uint8(20),
  22946. 73: uint8(20),
  22947. 74: uint8(20),
  22948. 75: uint8(20),
  22949. 76: uint8(20),
  22950. 77: uint8(20),
  22951. 78: uint8(20),
  22952. 79: uint8(20),
  22953. 80: uint8(21),
  22954. 81: uint8(21),
  22955. 82: uint8(21),
  22956. 83: uint8(21),
  22957. 84: uint8(21),
  22958. 85: uint8(21),
  22959. 86: uint8(21),
  22960. 87: uint8(21),
  22961. 88: uint8(21),
  22962. 89: uint8(21),
  22963. 90: uint8(21),
  22964. 91: uint8(21),
  22965. 92: uint8(21),
  22966. 93: uint8(21),
  22967. 94: uint8(21),
  22968. 95: uint8(21),
  22969. 96: uint8(22),
  22970. 97: uint8(22),
  22971. 98: uint8(22),
  22972. 99: uint8(22),
  22973. 100: uint8(22),
  22974. 101: uint8(22),
  22975. 102: uint8(22),
  22976. 103: uint8(22),
  22977. 104: uint8(22),
  22978. 105: uint8(22),
  22979. 106: uint8(22),
  22980. 107: uint8(22),
  22981. 108: uint8(22),
  22982. 109: uint8(22),
  22983. 110: uint8(22),
  22984. 111: uint8(22),
  22985. 112: uint8(23),
  22986. 113: uint8(23),
  22987. 114: uint8(23),
  22988. 115: uint8(23),
  22989. 116: uint8(23),
  22990. 117: uint8(23),
  22991. 118: uint8(23),
  22992. 119: uint8(23),
  22993. 120: uint8(23),
  22994. 121: uint8(23),
  22995. 122: uint8(23),
  22996. 123: uint8(23),
  22997. 124: uint8(23),
  22998. 125: uint8(23),
  22999. 126: uint8(23),
  23000. 127: uint8(23),
  23001. 128: uint8(24),
  23002. 129: uint8(24),
  23003. 130: uint8(24),
  23004. 131: uint8(24),
  23005. 132: uint8(24),
  23006. 133: uint8(24),
  23007. 134: uint8(24),
  23008. 135: uint8(24),
  23009. 136: uint8(24),
  23010. 137: uint8(24),
  23011. 138: uint8(24),
  23012. 139: uint8(24),
  23013. 140: uint8(24),
  23014. 141: uint8(24),
  23015. 142: uint8(24),
  23016. 143: uint8(24),
  23017. 144: uint8(24),
  23018. 145: uint8(24),
  23019. 146: uint8(24),
  23020. 147: uint8(24),
  23021. 148: uint8(24),
  23022. 149: uint8(24),
  23023. 150: uint8(24),
  23024. 151: uint8(24),
  23025. 152: uint8(24),
  23026. 153: uint8(24),
  23027. 154: uint8(24),
  23028. 155: uint8(24),
  23029. 156: uint8(24),
  23030. 157: uint8(24),
  23031. 158: uint8(24),
  23032. 159: uint8(24),
  23033. 160: uint8(25),
  23034. 161: uint8(25),
  23035. 162: uint8(25),
  23036. 163: uint8(25),
  23037. 164: uint8(25),
  23038. 165: uint8(25),
  23039. 166: uint8(25),
  23040. 167: uint8(25),
  23041. 168: uint8(25),
  23042. 169: uint8(25),
  23043. 170: uint8(25),
  23044. 171: uint8(25),
  23045. 172: uint8(25),
  23046. 173: uint8(25),
  23047. 174: uint8(25),
  23048. 175: uint8(25),
  23049. 176: uint8(25),
  23050. 177: uint8(25),
  23051. 178: uint8(25),
  23052. 179: uint8(25),
  23053. 180: uint8(25),
  23054. 181: uint8(25),
  23055. 182: uint8(25),
  23056. 183: uint8(25),
  23057. 184: uint8(25),
  23058. 185: uint8(25),
  23059. 186: uint8(25),
  23060. 187: uint8(25),
  23061. 188: uint8(25),
  23062. 189: uint8(25),
  23063. 190: uint8(25),
  23064. 191: uint8(25),
  23065. 192: uint8(26),
  23066. 193: uint8(26),
  23067. 194: uint8(26),
  23068. 195: uint8(26),
  23069. 196: uint8(26),
  23070. 197: uint8(26),
  23071. 198: uint8(26),
  23072. 199: uint8(26),
  23073. 200: uint8(26),
  23074. 201: uint8(26),
  23075. 202: uint8(26),
  23076. 203: uint8(26),
  23077. 204: uint8(26),
  23078. 205: uint8(26),
  23079. 206: uint8(26),
  23080. 207: uint8(26),
  23081. 208: uint8(26),
  23082. 209: uint8(26),
  23083. 210: uint8(26),
  23084. 211: uint8(26),
  23085. 212: uint8(26),
  23086. 213: uint8(26),
  23087. 214: uint8(26),
  23088. 215: uint8(26),
  23089. 216: uint8(26),
  23090. 217: uint8(26),
  23091. 218: uint8(26),
  23092. 219: uint8(26),
  23093. 220: uint8(26),
  23094. 221: uint8(26),
  23095. 222: uint8(26),
  23096. 223: uint8(26),
  23097. 224: uint8(27),
  23098. 225: uint8(27),
  23099. 226: uint8(27),
  23100. 227: uint8(27),
  23101. 228: uint8(27),
  23102. 229: uint8(27),
  23103. 230: uint8(27),
  23104. 231: uint8(27),
  23105. 232: uint8(27),
  23106. 233: uint8(27),
  23107. 234: uint8(27),
  23108. 235: uint8(27),
  23109. 236: uint8(27),
  23110. 237: uint8(27),
  23111. 238: uint8(27),
  23112. 239: uint8(27),
  23113. 240: uint8(27),
  23114. 241: uint8(27),
  23115. 242: uint8(27),
  23116. 243: uint8(27),
  23117. 244: uint8(27),
  23118. 245: uint8(27),
  23119. 246: uint8(27),
  23120. 247: uint8(27),
  23121. 248: uint8(27),
  23122. 249: uint8(27),
  23123. 250: uint8(27),
  23124. 251: uint8(27),
  23125. 252: uint8(27),
  23126. 253: uint8(27),
  23127. 254: uint8(27),
  23128. 255: uint8(28),
  23129. }
  23130. var Xdeflate_copyright = [68]uint8{' ', 'd', 'e', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', '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', ' '}
  23131. var Xinflate_copyright = [47]uint8{' ', 'i', 'n', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  23132. var Xz_errmsg = [10]uintptr{
  23133. 0: __ccgo_ts + 467,
  23134. 1: __ccgo_ts + 483,
  23135. 2: __ccgo_ts + 494,
  23136. 3: __ccgo_ts + 495,
  23137. 4: __ccgo_ts + 506,
  23138. 5: __ccgo_ts + 519,
  23139. 6: __ccgo_ts + 530,
  23140. 7: __ccgo_ts + 550,
  23141. 8: __ccgo_ts + 563,
  23142. 9: __ccgo_ts + 494,
  23143. }
  23144. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  23145. var __ccgo_ts1 = "1.3.1\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"