ccgo_linux_riscv64.go 712 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484
  1. // Code generated for linux/riscv64 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 && riscv64
  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 = 64
  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__GNU_SOURCE = 1
  181. const m__LARGEFILE64_SOURCE = 1
  182. const m__LP64 = 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_LP64_OFF64 = 1
  289. const m__POSIX_V7_LP64_OFF64 = 1
  290. const m__POSIX_VDISABLE = 0
  291. const m__POSIX_VERSION = 200809
  292. const m__SC_2_CHAR_TERM = 95
  293. const m__SC_2_C_BIND = 47
  294. const m__SC_2_C_DEV = 48
  295. const m__SC_2_FORT_DEV = 49
  296. const m__SC_2_FORT_RUN = 50
  297. const m__SC_2_LOCALEDEF = 52
  298. const m__SC_2_PBS = 168
  299. const m__SC_2_PBS_ACCOUNTING = 169
  300. const m__SC_2_PBS_CHECKPOINT = 175
  301. const m__SC_2_PBS_LOCATE = 170
  302. const m__SC_2_PBS_MESSAGE = 171
  303. const m__SC_2_PBS_TRACK = 172
  304. const m__SC_2_SW_DEV = 51
  305. const m__SC_2_UPE = 97
  306. const m__SC_2_VERSION = 46
  307. const m__SC_ADVISORY_INFO = 132
  308. const m__SC_AIO_LISTIO_MAX = 23
  309. const m__SC_AIO_MAX = 24
  310. const m__SC_AIO_PRIO_DELTA_MAX = 25
  311. const m__SC_ARG_MAX = 0
  312. const m__SC_ASYNCHRONOUS_IO = 12
  313. const m__SC_ATEXIT_MAX = 87
  314. const m__SC_AVPHYS_PAGES = 86
  315. const m__SC_BARRIERS = 133
  316. const m__SC_BC_BASE_MAX = 36
  317. const m__SC_BC_DIM_MAX = 37
  318. const m__SC_BC_SCALE_MAX = 38
  319. const m__SC_BC_STRING_MAX = 39
  320. const m__SC_CHILD_MAX = 1
  321. const m__SC_CLK_TCK = 2
  322. const m__SC_CLOCK_SELECTION = 137
  323. const m__SC_COLL_WEIGHTS_MAX = 40
  324. const m__SC_CPUTIME = 138
  325. const m__SC_DELAYTIMER_MAX = 26
  326. const m__SC_EXPR_NEST_MAX = 42
  327. const m__SC_FSYNC = 15
  328. const m__SC_GETGR_R_SIZE_MAX = 69
  329. const m__SC_GETPW_R_SIZE_MAX = 70
  330. const m__SC_HOST_NAME_MAX = 180
  331. const m__SC_IOV_MAX = 60
  332. const m__SC_IPV6 = 235
  333. const m__SC_JOB_CONTROL = 7
  334. const m__SC_LINE_MAX = 43
  335. const m__SC_LOGIN_NAME_MAX = 71
  336. const m__SC_MAPPED_FILES = 16
  337. const m__SC_MEMLOCK = 17
  338. const m__SC_MEMLOCK_RANGE = 18
  339. const m__SC_MEMORY_PROTECTION = 19
  340. const m__SC_MESSAGE_PASSING = 20
  341. const m__SC_MINSIGSTKSZ = 249
  342. const m__SC_MONOTONIC_CLOCK = 149
  343. const m__SC_MQ_OPEN_MAX = 27
  344. const m__SC_MQ_PRIO_MAX = 28
  345. const m__SC_NGROUPS_MAX = 3
  346. const m__SC_NPROCESSORS_CONF = 83
  347. const m__SC_NPROCESSORS_ONLN = 84
  348. const m__SC_NZERO = 109
  349. const m__SC_OPEN_MAX = 4
  350. const m__SC_PAGESIZE = 30
  351. const m__SC_PAGE_SIZE = 30
  352. const m__SC_PASS_MAX = 88
  353. const m__SC_PHYS_PAGES = 85
  354. const m__SC_PRIORITIZED_IO = 13
  355. const m__SC_PRIORITY_SCHEDULING = 10
  356. const m__SC_RAW_SOCKETS = 236
  357. const m__SC_READER_WRITER_LOCKS = 153
  358. const m__SC_REALTIME_SIGNALS = 9
  359. const m__SC_REGEXP = 155
  360. const m__SC_RE_DUP_MAX = 44
  361. const m__SC_RTSIG_MAX = 31
  362. const m__SC_SAVED_IDS = 8
  363. const m__SC_SEMAPHORES = 21
  364. const m__SC_SEM_NSEMS_MAX = 32
  365. const m__SC_SEM_VALUE_MAX = 33
  366. const m__SC_SHARED_MEMORY_OBJECTS = 22
  367. const m__SC_SHELL = 157
  368. const m__SC_SIGQUEUE_MAX = 34
  369. const m__SC_SIGSTKSZ = 250
  370. const m__SC_SPAWN = 159
  371. const m__SC_SPIN_LOCKS = 154
  372. const m__SC_SPORADIC_SERVER = 160
  373. const m__SC_SS_REPL_MAX = 241
  374. const m__SC_STREAMS = 174
  375. const m__SC_STREAM_MAX = 5
  376. const m__SC_SYMLOOP_MAX = 173
  377. const m__SC_SYNCHRONIZED_IO = 14
  378. const m__SC_THREADS = 67
  379. const m__SC_THREAD_ATTR_STACKADDR = 77
  380. const m__SC_THREAD_ATTR_STACKSIZE = 78
  381. const m__SC_THREAD_CPUTIME = 139
  382. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 73
  383. const m__SC_THREAD_KEYS_MAX = 74
  384. const m__SC_THREAD_PRIORITY_SCHEDULING = 79
  385. const m__SC_THREAD_PRIO_INHERIT = 80
  386. const m__SC_THREAD_PRIO_PROTECT = 81
  387. const m__SC_THREAD_PROCESS_SHARED = 82
  388. const m__SC_THREAD_ROBUST_PRIO_INHERIT = 247
  389. const m__SC_THREAD_ROBUST_PRIO_PROTECT = 248
  390. const m__SC_THREAD_SAFE_FUNCTIONS = 68
  391. const m__SC_THREAD_SPORADIC_SERVER = 161
  392. const m__SC_THREAD_STACK_MIN = 75
  393. const m__SC_THREAD_THREADS_MAX = 76
  394. const m__SC_TIMEOUTS = 164
  395. const m__SC_TIMERS = 11
  396. const m__SC_TIMER_MAX = 35
  397. const m__SC_TRACE = 181
  398. const m__SC_TRACE_EVENT_FILTER = 182
  399. const m__SC_TRACE_EVENT_NAME_MAX = 242
  400. const m__SC_TRACE_INHERIT = 183
  401. const m__SC_TRACE_LOG = 184
  402. const m__SC_TRACE_NAME_MAX = 243
  403. const m__SC_TRACE_SYS_MAX = 244
  404. const m__SC_TRACE_USER_EVENT_MAX = 245
  405. const m__SC_TTY_NAME_MAX = 72
  406. const m__SC_TYPED_MEMORY_OBJECTS = 165
  407. const m__SC_TZNAME_MAX = 6
  408. const m__SC_UIO_MAXIOV = 60
  409. const m__SC_V6_ILP32_OFF32 = 176
  410. const m__SC_V6_ILP32_OFFBIG = 177
  411. const m__SC_V6_LP64_OFF64 = 178
  412. const m__SC_V6_LPBIG_OFFBIG = 179
  413. const m__SC_V7_ILP32_OFF32 = 237
  414. const m__SC_V7_ILP32_OFFBIG = 238
  415. const m__SC_V7_LP64_OFF64 = 239
  416. const m__SC_V7_LPBIG_OFFBIG = 240
  417. const m__SC_VERSION = 29
  418. const m__SC_XBS5_ILP32_OFF32 = 125
  419. const m__SC_XBS5_ILP32_OFFBIG = 126
  420. const m__SC_XBS5_LP64_OFF64 = 127
  421. const m__SC_XBS5_LPBIG_OFFBIG = 128
  422. const m__SC_XOPEN_CRYPT = 92
  423. const m__SC_XOPEN_ENH_I18N = 93
  424. const m__SC_XOPEN_LEGACY = 129
  425. const m__SC_XOPEN_REALTIME = 130
  426. const m__SC_XOPEN_REALTIME_THREADS = 131
  427. const m__SC_XOPEN_SHM = 94
  428. const m__SC_XOPEN_STREAMS = 246
  429. const m__SC_XOPEN_UNIX = 91
  430. const m__SC_XOPEN_VERSION = 89
  431. const m__SC_XOPEN_XCU_VERSION = 90
  432. const m__SC_XOPEN_XPG2 = 98
  433. const m__SC_XOPEN_XPG3 = 99
  434. const m__SC_XOPEN_XPG4 = 100
  435. const m__STDC_PREDEF_H = 1
  436. const m__XOPEN_ENH_I18N = 1
  437. const m__XOPEN_IOV_MAX = 16
  438. const m__XOPEN_NAME_MAX = 255
  439. const m__XOPEN_PATH_MAX = 1024
  440. const m__XOPEN_UNIX = 1
  441. const m__XOPEN_VERSION = 700
  442. const m___ATOMIC_ACQUIRE = 2
  443. const m___ATOMIC_ACQ_REL = 4
  444. const m___ATOMIC_CONSUME = 1
  445. const m___ATOMIC_RELAXED = 0
  446. const m___ATOMIC_RELEASE = 3
  447. const m___ATOMIC_SEQ_CST = 5
  448. const m___BIGGEST_ALIGNMENT__ = 16
  449. const m___BIG_ENDIAN = 4321
  450. const m___BYTE_ORDER = 1234
  451. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  452. const m___CCGO__ = 1
  453. const m___CHAR_BIT__ = 8
  454. const m___CHAR_UNSIGNED__ = 1
  455. const m___DBL_DECIMAL_DIG__ = 17
  456. const m___DBL_DIG__ = 15
  457. const m___DBL_HAS_DENORM__ = 1
  458. const m___DBL_HAS_INFINITY__ = 1
  459. const m___DBL_HAS_QUIET_NAN__ = 1
  460. const m___DBL_IS_IEC_60559__ = 1
  461. const m___DBL_MANT_DIG__ = 53
  462. const m___DBL_MAX_10_EXP__ = 308
  463. const m___DBL_MAX_EXP__ = 1024
  464. const m___DECIMAL_DIG__ = 36
  465. const m___DEC_EVAL_METHOD__ = 2
  466. const m___ELF__ = 1
  467. const m___FINITE_MATH_ONLY__ = 0
  468. const m___FLOAT_WORD_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  469. const m___FLT128_DECIMAL_DIG__ = 36
  470. const m___FLT128_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  471. const m___FLT128_DIG__ = 33
  472. const m___FLT128_EPSILON__ = 1.92592994438723585305597794258492732e-34
  473. const m___FLT128_HAS_DENORM__ = 1
  474. const m___FLT128_HAS_INFINITY__ = 1
  475. const m___FLT128_HAS_QUIET_NAN__ = 1
  476. const m___FLT128_IS_IEC_60559__ = 1
  477. const m___FLT128_MANT_DIG__ = 113
  478. const m___FLT128_MAX_10_EXP__ = 4932
  479. const m___FLT128_MAX_EXP__ = 16384
  480. const m___FLT128_MAX__ = "1.18973149535723176508575932662800702e+4932"
  481. const m___FLT128_MIN__ = 3.36210314311209350626267781732175260e-4932
  482. const m___FLT128_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  483. const m___FLT16_DECIMAL_DIG__ = 5
  484. const m___FLT16_DENORM_MIN__ = 5.96046447753906250000000000000000000e-8
  485. const m___FLT16_DIG__ = 3
  486. const m___FLT16_EPSILON__ = 9.76562500000000000000000000000000000e-4
  487. const m___FLT16_HAS_DENORM__ = 1
  488. const m___FLT16_HAS_INFINITY__ = 1
  489. const m___FLT16_HAS_QUIET_NAN__ = 1
  490. const m___FLT16_IS_IEC_60559__ = 1
  491. const m___FLT16_MANT_DIG__ = 11
  492. const m___FLT16_MAX_10_EXP__ = 4
  493. const m___FLT16_MAX_EXP__ = 16
  494. const m___FLT16_MAX__ = 6.55040000000000000000000000000000000e+4
  495. const m___FLT16_MIN__ = 6.10351562500000000000000000000000000e-5
  496. const m___FLT16_NORM_MAX__ = 6.55040000000000000000000000000000000e+4
  497. const m___FLT32X_DECIMAL_DIG__ = 17
  498. const m___FLT32X_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  499. const m___FLT32X_DIG__ = 15
  500. const m___FLT32X_EPSILON__ = 2.22044604925031308084726333618164062e-16
  501. const m___FLT32X_HAS_DENORM__ = 1
  502. const m___FLT32X_HAS_INFINITY__ = 1
  503. const m___FLT32X_HAS_QUIET_NAN__ = 1
  504. const m___FLT32X_IS_IEC_60559__ = 1
  505. const m___FLT32X_MANT_DIG__ = 53
  506. const m___FLT32X_MAX_10_EXP__ = 308
  507. const m___FLT32X_MAX_EXP__ = 1024
  508. const m___FLT32X_MAX__ = 1.79769313486231570814527423731704357e+308
  509. const m___FLT32X_MIN__ = 2.22507385850720138309023271733240406e-308
  510. const m___FLT32X_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  511. const m___FLT32_DECIMAL_DIG__ = 9
  512. const m___FLT32_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  513. const m___FLT32_DIG__ = 6
  514. const m___FLT32_EPSILON__ = 1.19209289550781250000000000000000000e-7
  515. const m___FLT32_HAS_DENORM__ = 1
  516. const m___FLT32_HAS_INFINITY__ = 1
  517. const m___FLT32_HAS_QUIET_NAN__ = 1
  518. const m___FLT32_IS_IEC_60559__ = 1
  519. const m___FLT32_MANT_DIG__ = 24
  520. const m___FLT32_MAX_10_EXP__ = 38
  521. const m___FLT32_MAX_EXP__ = 128
  522. const m___FLT32_MAX__ = 3.40282346638528859811704183484516925e+38
  523. const m___FLT32_MIN__ = 1.17549435082228750796873653722224568e-38
  524. const m___FLT32_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  525. const m___FLT64X_DECIMAL_DIG__ = 36
  526. const m___FLT64X_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  527. const m___FLT64X_DIG__ = 33
  528. const m___FLT64X_EPSILON__ = 1.92592994438723585305597794258492732e-34
  529. const m___FLT64X_HAS_DENORM__ = 1
  530. const m___FLT64X_HAS_INFINITY__ = 1
  531. const m___FLT64X_HAS_QUIET_NAN__ = 1
  532. const m___FLT64X_IS_IEC_60559__ = 1
  533. const m___FLT64X_MANT_DIG__ = 113
  534. const m___FLT64X_MAX_10_EXP__ = 4932
  535. const m___FLT64X_MAX_EXP__ = 16384
  536. const m___FLT64X_MAX__ = "1.18973149535723176508575932662800702e+4932"
  537. const m___FLT64X_MIN__ = 3.36210314311209350626267781732175260e-4932
  538. const m___FLT64X_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  539. const m___FLT64_DECIMAL_DIG__ = 17
  540. const m___FLT64_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  541. const m___FLT64_DIG__ = 15
  542. const m___FLT64_EPSILON__ = 2.22044604925031308084726333618164062e-16
  543. const m___FLT64_HAS_DENORM__ = 1
  544. const m___FLT64_HAS_INFINITY__ = 1
  545. const m___FLT64_HAS_QUIET_NAN__ = 1
  546. const m___FLT64_IS_IEC_60559__ = 1
  547. const m___FLT64_MANT_DIG__ = 53
  548. const m___FLT64_MAX_10_EXP__ = 308
  549. const m___FLT64_MAX_EXP__ = 1024
  550. const m___FLT64_MAX__ = 1.79769313486231570814527423731704357e+308
  551. const m___FLT64_MIN__ = 2.22507385850720138309023271733240406e-308
  552. const m___FLT64_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  553. const m___FLT_DECIMAL_DIG__ = 9
  554. const m___FLT_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  555. const m___FLT_DIG__ = 6
  556. const m___FLT_EPSILON__ = 1.19209289550781250000000000000000000e-7
  557. const m___FLT_EVAL_METHOD_TS_18661_3__ = 0
  558. const m___FLT_EVAL_METHOD__ = 0
  559. const m___FLT_HAS_DENORM__ = 1
  560. const m___FLT_HAS_INFINITY__ = 1
  561. const m___FLT_HAS_QUIET_NAN__ = 1
  562. const m___FLT_IS_IEC_60559__ = 1
  563. const m___FLT_MANT_DIG__ = 24
  564. const m___FLT_MAX_10_EXP__ = 38
  565. const m___FLT_MAX_EXP__ = 128
  566. const m___FLT_MAX__ = 3.40282346638528859811704183484516925e+38
  567. const m___FLT_MIN__ = 1.17549435082228750796873653722224568e-38
  568. const m___FLT_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  569. const m___FLT_RADIX__ = 2
  570. const m___FP_FAST_FMA = 1
  571. const m___FP_FAST_FMAF = 1
  572. const m___FP_FAST_FMAF32 = 1
  573. const m___FP_FAST_FMAF32x = 1
  574. const m___FP_FAST_FMAF64 = 1
  575. const m___FUNCTION__ = "__func__"
  576. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  577. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  578. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  579. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  580. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  581. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  582. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  583. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  584. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  585. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  586. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  587. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  588. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  589. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  590. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  591. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  592. const m___GCC_IEC_559 = 2
  593. const m___GCC_IEC_559_COMPLEX = 2
  594. const m___GNUC_EXECUTION_CHARSET_NAME = "UTF-8"
  595. const m___GNUC_MINOR__ = 2
  596. const m___GNUC_PATCHLEVEL__ = 0
  597. const m___GNUC_STDC_INLINE__ = 1
  598. const m___GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-32LE"
  599. const m___GNUC__ = 14
  600. const m___GXX_ABI_VERSION = 1019
  601. const m___INT16_MAX__ = 0x7fff
  602. const m___INT32_MAX__ = 0x7fffffff
  603. const m___INT32_TYPE__ = "int"
  604. const m___INT64_MAX__ = 0x7fffffffffffffff
  605. const m___INT8_MAX__ = 0x7f
  606. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  607. const m___INTMAX_WIDTH__ = 64
  608. const m___INTPTR_MAX__ = 0x7fffffffffffffff
  609. const m___INTPTR_WIDTH__ = 64
  610. const m___INT_FAST16_MAX__ = 0x7fffffffffffffff
  611. const m___INT_FAST16_WIDTH__ = 64
  612. const m___INT_FAST32_MAX__ = 0x7fffffffffffffff
  613. const m___INT_FAST32_WIDTH__ = 64
  614. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  615. const m___INT_FAST64_WIDTH__ = 64
  616. const m___INT_FAST8_MAX__ = 0x7f
  617. const m___INT_FAST8_WIDTH__ = 8
  618. const m___INT_LEAST16_MAX__ = 0x7fff
  619. const m___INT_LEAST16_WIDTH__ = 16
  620. const m___INT_LEAST32_MAX__ = 0x7fffffff
  621. const m___INT_LEAST32_TYPE__ = "int"
  622. const m___INT_LEAST32_WIDTH__ = 32
  623. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  624. const m___INT_LEAST64_WIDTH__ = 64
  625. const m___INT_LEAST8_MAX__ = 0x7f
  626. const m___INT_LEAST8_WIDTH__ = 8
  627. const m___INT_MAX__ = 0x7fffffff
  628. const m___INT_WIDTH__ = 32
  629. const m___LDBL_DECIMAL_DIG__ = 36
  630. const m___LDBL_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  631. const m___LDBL_DIG__ = 33
  632. const m___LDBL_EPSILON__ = 1.92592994438723585305597794258492732e-34
  633. const m___LDBL_HAS_DENORM__ = 1
  634. const m___LDBL_HAS_INFINITY__ = 1
  635. const m___LDBL_HAS_QUIET_NAN__ = 1
  636. const m___LDBL_IS_IEC_60559__ = 1
  637. const m___LDBL_MANT_DIG__ = 113
  638. const m___LDBL_MAX_10_EXP__ = 4932
  639. const m___LDBL_MAX_EXP__ = 16384
  640. const m___LDBL_MAX__ = "1.18973149535723176508575932662800702e+4932"
  641. const m___LDBL_MIN__ = 3.36210314311209350626267781732175260e-4932
  642. const m___LDBL_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  643. const m___LITTLE_ENDIAN = 1234
  644. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  645. const m___LONG_LONG_WIDTH__ = 64
  646. const m___LONG_MAX = 0x7fffffffffffffff
  647. const m___LONG_MAX__ = 0x7fffffffffffffff
  648. const m___LONG_WIDTH__ = 64
  649. const m___LP64__ = 1
  650. const m___NO_INLINE__ = 1
  651. const m___ORDER_BIG_ENDIAN__ = 4321
  652. const m___ORDER_LITTLE_ENDIAN__ = 1234
  653. const m___ORDER_PDP_ENDIAN__ = 3412
  654. const m___PDP_ENDIAN = 3412
  655. const m___PIC__ = 2
  656. const m___PIE__ = 2
  657. const m___PRAGMA_REDEFINE_EXTNAME = 1
  658. const m___PRETTY_FUNCTION__ = "__func__"
  659. const m___PTRDIFF_MAX__ = 0x7fffffffffffffff
  660. const m___PTRDIFF_WIDTH__ = 64
  661. const m___SCHAR_MAX__ = 0x7f
  662. const m___SCHAR_WIDTH__ = 8
  663. const m___SHRT_MAX__ = 0x7fff
  664. const m___SHRT_WIDTH__ = 16
  665. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  666. const m___SIG_ATOMIC_TYPE__ = "int"
  667. const m___SIG_ATOMIC_WIDTH__ = 32
  668. const m___SIZEOF_DOUBLE__ = 8
  669. const m___SIZEOF_FLOAT__ = 4
  670. const m___SIZEOF_INT128__ = 16
  671. const m___SIZEOF_INT__ = 4
  672. const m___SIZEOF_LONG_DOUBLE__ = 8
  673. const m___SIZEOF_LONG_LONG__ = 8
  674. const m___SIZEOF_LONG__ = 8
  675. const m___SIZEOF_POINTER__ = 8
  676. const m___SIZEOF_PTRDIFF_T__ = 8
  677. const m___SIZEOF_SHORT__ = 2
  678. const m___SIZEOF_SIZE_T__ = 8
  679. const m___SIZEOF_WCHAR_T__ = 4
  680. const m___SIZEOF_WINT_T__ = 4
  681. const m___SIZE_MAX__ = 0xffffffffffffffff
  682. const m___SIZE_WIDTH__ = 64
  683. const m___STDC_HOSTED__ = 1
  684. const m___STDC_IEC_559_COMPLEX__ = 1
  685. const m___STDC_IEC_559__ = 1
  686. const m___STDC_IEC_60559_BFP__ = 201404
  687. const m___STDC_IEC_60559_COMPLEX__ = 201404
  688. const m___STDC_ISO_10646__ = 201706
  689. const m___STDC_UTF_16__ = 1
  690. const m___STDC_UTF_32__ = 1
  691. const m___STDC_VERSION__ = 201710
  692. const m___STDC__ = 1
  693. const m___UINT16_MAX__ = 0xffff
  694. const m___UINT32_MAX__ = 0xffffffff
  695. const m___UINT64_MAX__ = 0xffffffffffffffff
  696. const m___UINT8_MAX__ = 0xff
  697. const m___UINTMAX_MAX__ = 0xffffffffffffffff
  698. const m___UINTPTR_MAX__ = 0xffffffffffffffff
  699. const m___UINT_FAST16_MAX__ = 0xffffffffffffffff
  700. const m___UINT_FAST32_MAX__ = 0xffffffffffffffff
  701. const m___UINT_FAST64_MAX__ = 0xffffffffffffffff
  702. const m___UINT_FAST8_MAX__ = 0xff
  703. const m___UINT_LEAST16_MAX__ = 0xffff
  704. const m___UINT_LEAST32_MAX__ = 0xffffffff
  705. const m___UINT_LEAST64_MAX__ = 0xffffffffffffffff
  706. const m___UINT_LEAST8_MAX__ = 0xff
  707. const m___USE_TIME_BITS64 = 1
  708. const m___VERSION__ = "14.2.0"
  709. const m___WCHAR_MAX__ = 0x7fffffff
  710. const m___WCHAR_TYPE__ = "int"
  711. const m___WCHAR_WIDTH__ = 32
  712. const m___WINT_MAX__ = 0xffffffff
  713. const m___WINT_MIN__ = 0
  714. const m___WINT_WIDTH__ = 32
  715. const m___gnu_linux__ = 1
  716. const m___inline = "inline"
  717. const m___linux = 1
  718. const m___linux__ = 1
  719. const m___pic__ = 2
  720. const m___pie__ = 2
  721. const m___restrict = "restrict"
  722. const m___restrict_arr = "restrict"
  723. const m___riscv = 1
  724. const m___riscv_a = 2001000
  725. const m___riscv_arch_test = 1
  726. const m___riscv_atomic = 1
  727. const m___riscv_c = 2000000
  728. const m___riscv_cmodel_medany = 1
  729. const m___riscv_compressed = 1
  730. const m___riscv_d = 2002000
  731. const m___riscv_div = 1
  732. const m___riscv_f = 2002000
  733. const m___riscv_fdiv = 1
  734. const m___riscv_flen = 64
  735. const m___riscv_float_abi_double = 1
  736. const m___riscv_fsqrt = 1
  737. const m___riscv_i = 2001000
  738. const m___riscv_m = 2000000
  739. const m___riscv_misaligned_slow = 1
  740. const m___riscv_mul = 1
  741. const m___riscv_muldiv = 1
  742. const m___riscv_xlen = 64
  743. const m___riscv_zicsr = 2000000
  744. const m___riscv_zifencei = 2000000
  745. const m___unix = 1
  746. const m___unix__ = 1
  747. const m_alloca = "__builtin_alloca"
  748. const m_blkcnt64_t = "blkcnt_t"
  749. const m_fsblkcnt64_t = "fsblkcnt_t"
  750. const m_fsfilcnt64_t = "fsfilcnt_t"
  751. const m_ftruncate64 = "ftruncate"
  752. const m_ino64_t = "ino_t"
  753. const m_linux = 1
  754. const m_local = "static"
  755. const m_lockf64 = "lockf"
  756. const m_lseek64 = "lseek"
  757. const m_mkostemp64 = "mkostemp"
  758. const m_mkostemps64 = "mkostemps"
  759. const m_mkstemp64 = "mkstemp"
  760. const m_mkstemps64 = "mkstemps"
  761. const m_off64_t = "off_t"
  762. const m_pread64 = "pread"
  763. const m_pwrite64 = "pwrite"
  764. const m_truncate64 = "truncate"
  765. const m_unix = 1
  766. const m_z_off64_t = "z_off_t"
  767. const m_z_off_t = "off_t"
  768. const m_zmemcmp = "memcmp"
  769. const m_zmemcpy = "memcpy"
  770. type t__builtin_va_list = uintptr
  771. type t__predefined_size_t = uint64
  772. type t__predefined_wchar_t = int32
  773. type t__predefined_ptrdiff_t = int64
  774. type Twchar_t = int32
  775. type Tmax_align_t = struct {
  776. F__ll int64
  777. F__ld float64
  778. }
  779. type Tsize_t = uint64
  780. type Tptrdiff_t = int64
  781. type Tz_size_t = uint64
  782. type TByte = uint8
  783. type TuInt = uint32
  784. type TuLong = uint64
  785. type TBytef = uint8
  786. type Tcharf = uint8
  787. type Tintf = int32
  788. type TuIntf = uint32
  789. type TuLongf = uint64
  790. type Tvoidpc = uintptr
  791. type Tvoidpf = uintptr
  792. type Tvoidp = uintptr
  793. type Tz_crc_t = uint32
  794. type Tblksize_t = int32
  795. type Tnlink_t = uint32
  796. type Tssize_t = int64
  797. type Tregister_t = int64
  798. type Ttime_t = int64
  799. type Tsuseconds_t = int64
  800. type Tint8_t = int8
  801. type Tint16_t = int16
  802. type Tint32_t = int32
  803. type Tint64_t = int64
  804. type Tu_int64_t = uint64
  805. type Tmode_t = uint32
  806. type Toff_t = int64
  807. type Tino_t = uint64
  808. type Tdev_t = uint64
  809. type Tblkcnt_t = int64
  810. type Tfsblkcnt_t = uint64
  811. type Tfsfilcnt_t = uint64
  812. type Ttimer_t = uintptr
  813. type Tclockid_t = int32
  814. type Tclock_t = int64
  815. type Tpid_t = int32
  816. type Tid_t = uint32
  817. type Tuid_t = uint32
  818. type Tgid_t = uint32
  819. type Tkey_t = int32
  820. type Tuseconds_t = uint32
  821. type Tpthread_t = uintptr
  822. type Tpthread_once_t = int32
  823. type Tpthread_key_t = uint32
  824. type Tpthread_spinlock_t = int32
  825. type Tpthread_mutexattr_t = struct {
  826. F__attr uint32
  827. }
  828. type Tpthread_condattr_t = struct {
  829. F__attr uint32
  830. }
  831. type Tpthread_barrierattr_t = struct {
  832. F__attr uint32
  833. }
  834. type Tpthread_rwlockattr_t = struct {
  835. F__attr [2]uint32
  836. }
  837. type Tpthread_attr_t = struct {
  838. F__u struct {
  839. F__vi [0][14]int32
  840. F__s [0][7]uint64
  841. F__i [14]int32
  842. }
  843. }
  844. type Tpthread_mutex_t = struct {
  845. F__u struct {
  846. F__vi [0][10]int32
  847. F__p [0][5]uintptr
  848. F__i [10]int32
  849. }
  850. }
  851. type Tpthread_cond_t = struct {
  852. F__u struct {
  853. F__vi [0][12]int32
  854. F__p [0][6]uintptr
  855. F__i [12]int32
  856. }
  857. }
  858. type Tpthread_rwlock_t = struct {
  859. F__u struct {
  860. F__vi [0][14]int32
  861. F__p [0][7]uintptr
  862. F__i [14]int32
  863. }
  864. }
  865. type Tpthread_barrier_t = struct {
  866. F__u struct {
  867. F__vi [0][8]int32
  868. F__p [0][4]uintptr
  869. F__i [8]int32
  870. }
  871. }
  872. type Tu_int8_t = uint8
  873. type Tu_int16_t = uint16
  874. type Tu_int32_t = uint32
  875. type Tcaddr_t = uintptr
  876. type Tu_char = uint8
  877. type Tu_short = uint16
  878. type Tushort = uint16
  879. type Tu_int = uint32
  880. type Tuint = uint32
  881. type Tu_long = uint64
  882. type Tulong = uint64
  883. type Tquad_t = int64
  884. type Tu_quad_t = uint64
  885. type Tuint16_t = uint16
  886. type Tuint32_t = uint32
  887. type Tuint64_t = uint64
  888. type Ttimeval = struct {
  889. Ftv_sec Ttime_t
  890. Ftv_usec Tsuseconds_t
  891. }
  892. type Ttimespec = struct {
  893. Ftv_sec Ttime_t
  894. Ftv_nsec int64
  895. }
  896. type Tsigset_t = struct {
  897. F__bits [16]uint64
  898. }
  899. type t__sigset_t = Tsigset_t
  900. type Tfd_mask = uint64
  901. type Tfd_set = struct {
  902. Ffds_bits [16]uint64
  903. }
  904. type Tva_list = uintptr
  905. type Tintptr_t = int64
  906. type Talloc_func = uintptr
  907. type Tfree_func = uintptr
  908. type Tz_stream = struct {
  909. Fnext_in uintptr
  910. Favail_in TuInt
  911. Ftotal_in TuLong
  912. Fnext_out uintptr
  913. Favail_out TuInt
  914. Ftotal_out TuLong
  915. Fmsg uintptr
  916. Fstate uintptr
  917. Fzalloc Talloc_func
  918. Fzfree Tfree_func
  919. Fopaque Tvoidpf
  920. Fdata_type int32
  921. Fadler TuLong
  922. Freserved TuLong
  923. }
  924. type Tz_stream_s = Tz_stream
  925. type Tz_streamp = uintptr
  926. type Tgz_header = struct {
  927. Ftext int32
  928. Ftime TuLong
  929. Fxflags int32
  930. Fos int32
  931. Fextra uintptr
  932. Fextra_len TuInt
  933. Fextra_max TuInt
  934. Fname uintptr
  935. Fname_max TuInt
  936. Fcomment uintptr
  937. Fcomm_max TuInt
  938. Fhcrc int32
  939. Fdone int32
  940. }
  941. type Tgz_header_s = Tgz_header
  942. type Tgz_headerp = uintptr
  943. type Tin_func = uintptr
  944. type Tout_func = uintptr
  945. type TgzFile = uintptr
  946. type TgzFile_s = struct {
  947. Fhave uint32
  948. Fnext uintptr
  949. Fpos Toff_t
  950. }
  951. type Tlocale_t = uintptr
  952. type Tdiv_t = struct {
  953. Fquot int32
  954. Frem int32
  955. }
  956. type Tldiv_t = struct {
  957. Fquot int64
  958. Frem int64
  959. }
  960. type Tlldiv_t = struct {
  961. Fquot int64
  962. Frem int64
  963. }
  964. type Tuch = uint8
  965. type Tuchf = uint8
  966. type Tush = uint16
  967. type Tushf = uint16
  968. type Tulg = uint64
  969. /* Reverse the bytes in a 32-bit value */
  970. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  971. /* use NO_DIVIDE if your processor does not do division in hardware --
  972. try it both ways to see which is faster */
  973. // C documentation
  974. //
  975. // /* ========================================================================= */
  976. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  977. var n, v3 uint32
  978. var sum2 uint64
  979. var v1, v5 Tz_size_t
  980. var v2, v6 uintptr
  981. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  982. /* split Adler-32 into component sums */
  983. sum2 = adler >> libc.Int32FromInt32(16) & uint64(0xffff)
  984. adler &= uint64(0xffff)
  985. /* in case user likes doing a byte at a time, keep it fast */
  986. if len1 == uint64(1) {
  987. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  988. if adler >= uint64(65521) {
  989. adler -= uint64(65521)
  990. }
  991. sum2 += adler
  992. if sum2 >= uint64(65521) {
  993. sum2 -= uint64(65521)
  994. }
  995. return adler | sum2<<int32(16)
  996. }
  997. /* initial Adler-32 value (deferred check for len == 1 speed) */
  998. if buf == uintptr(m_Z_NULL) {
  999. return uint64(1)
  1000. }
  1001. /* in case short lengths are provided, keep it somewhat fast */
  1002. if len1 < uint64(16) {
  1003. for {
  1004. v1 = len1
  1005. len1--
  1006. if !(v1 != 0) {
  1007. break
  1008. }
  1009. v2 = buf
  1010. buf++
  1011. adler += uint64(*(*TBytef)(unsafe.Pointer(v2)))
  1012. sum2 += adler
  1013. }
  1014. if adler >= uint64(65521) {
  1015. adler -= uint64(65521)
  1016. }
  1017. sum2 %= uint64(65521) /* only added so many BASE's */
  1018. return adler | sum2<<int32(16)
  1019. }
  1020. /* do length NMAX blocks -- requires just one modulo operation */
  1021. for len1 >= uint64(m_NMAX) {
  1022. len1 -= uint64(m_NMAX)
  1023. n = libc.Uint32FromInt32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  1024. for {
  1025. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1026. sum2 += adler
  1027. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1028. sum2 += adler
  1029. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1030. sum2 += adler
  1031. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1032. sum2 += adler
  1033. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1034. sum2 += adler
  1035. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1036. sum2 += adler
  1037. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1038. sum2 += adler
  1039. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1040. sum2 += adler
  1041. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1042. sum2 += adler
  1043. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1044. sum2 += adler
  1045. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1046. sum2 += adler
  1047. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1048. sum2 += adler
  1049. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1050. sum2 += adler
  1051. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1052. sum2 += adler
  1053. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1054. sum2 += adler
  1055. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1056. sum2 += adler /* 16 sums unrolled */
  1057. buf += uintptr(16)
  1058. goto _4
  1059. _4:
  1060. ;
  1061. n--
  1062. v3 = n
  1063. if !(v3 != 0) {
  1064. break
  1065. }
  1066. }
  1067. adler %= uint64(65521)
  1068. sum2 %= uint64(65521)
  1069. }
  1070. /* do remaining bytes (less than NMAX, still just one modulo) */
  1071. if len1 != 0 { /* avoid modulos if none remaining */
  1072. for len1 >= uint64(16) {
  1073. len1 -= uint64(16)
  1074. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1075. sum2 += adler
  1076. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1077. sum2 += adler
  1078. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1079. sum2 += adler
  1080. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1081. sum2 += adler
  1082. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1083. sum2 += adler
  1084. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1085. sum2 += adler
  1086. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1087. sum2 += adler
  1088. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1089. sum2 += adler
  1090. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1091. sum2 += adler
  1092. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1093. sum2 += adler
  1094. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1095. sum2 += adler
  1096. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1097. sum2 += adler
  1098. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1099. sum2 += adler
  1100. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1101. sum2 += adler
  1102. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1103. sum2 += adler
  1104. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1105. sum2 += adler
  1106. buf += uintptr(16)
  1107. }
  1108. for {
  1109. v5 = len1
  1110. len1--
  1111. if !(v5 != 0) {
  1112. break
  1113. }
  1114. v6 = buf
  1115. buf++
  1116. adler += uint64(*(*TBytef)(unsafe.Pointer(v6)))
  1117. sum2 += adler
  1118. }
  1119. adler %= uint64(65521)
  1120. sum2 %= uint64(65521)
  1121. }
  1122. /* return recombined sums */
  1123. return adler | sum2<<int32(16)
  1124. }
  1125. // C documentation
  1126. //
  1127. // /* ========================================================================= */
  1128. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  1129. return Xadler32_z(tls, adler, buf, uint64(len1))
  1130. }
  1131. // C documentation
  1132. //
  1133. // /* ========================================================================= */
  1134. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1135. var rem uint32
  1136. var sum1, sum2 uint64
  1137. _, _, _ = rem, sum1, sum2
  1138. /* for negative len, return invalid adler32 as a clue for debugging */
  1139. if len2 < 0 {
  1140. return uint64(0xffffffff)
  1141. }
  1142. /* the derivation of this formula is left as an exercise for the reader */
  1143. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  1144. rem = libc.Uint32FromInt64(len2)
  1145. sum1 = adler1 & uint64(0xffff)
  1146. sum2 = uint64(rem) * sum1
  1147. sum2 %= uint64(65521)
  1148. sum1 += adler2&uint64(0xffff) + uint64(65521) - uint64(1)
  1149. sum2 += adler1>>libc.Int32FromInt32(16)&uint64(0xffff) + adler2>>libc.Int32FromInt32(16)&uint64(0xffff) + uint64(65521) - uint64(rem)
  1150. if sum1 >= uint64(65521) {
  1151. sum1 -= uint64(65521)
  1152. }
  1153. if sum1 >= uint64(65521) {
  1154. sum1 -= uint64(65521)
  1155. }
  1156. if sum2 >= libc.Uint64FromUint32(65521)<<libc.Int32FromInt32(1) {
  1157. sum2 -= libc.Uint64FromUint32(65521) << libc.Int32FromInt32(1)
  1158. }
  1159. if sum2 >= uint64(65521) {
  1160. sum2 -= uint64(65521)
  1161. }
  1162. return sum1 | sum2<<int32(16)
  1163. }
  1164. // C documentation
  1165. //
  1166. // /* ========================================================================= */
  1167. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1168. return _adler32_combine_(tls, adler1, adler2, len2)
  1169. }
  1170. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1171. return _adler32_combine_(tls, adler1, adler2, len2)
  1172. }
  1173. const m_N = 5
  1174. const m_POLY = 3988292384
  1175. /* Reverse the bytes in a 32-bit value */
  1176. /*
  1177. A CRC of a message is computed on N braids of words in the message, where
  1178. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  1179. running sparse CRCs are calculated respectively on each braid, at these
  1180. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1181. This is done starting at a word boundary, and continues until as many blocks
  1182. of N * W bytes as are available have been processed. The results are combined
  1183. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1184. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1185. more #if blocks, extending the patterns apparent in the code. In addition,
  1186. crc32.h would need to be regenerated, if the maximum N value is increased.
  1187. N and W are chosen empirically by benchmarking the execution time on a given
  1188. processor. The choices for N and W below were based on testing on Intel Kaby
  1189. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1190. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1191. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1192. They were all tested with either gcc or clang, all using the -O3 optimization
  1193. level. Your mileage may vary.
  1194. */
  1195. /* Define N */
  1196. /*
  1197. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1198. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1199. that bytes are eight bits.
  1200. */
  1201. // C documentation
  1202. //
  1203. // /*
  1204. // Define W and the associated z_word_t type. If W is not defined, then a
  1205. // braided calculation is not used, and the associated tables and code are not
  1206. // compiled.
  1207. // */
  1208. type Tz_word_t = uint32
  1209. /* If available, use the ARM processor CRC32 instruction. */
  1210. // C documentation
  1211. //
  1212. // /*
  1213. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1214. // self-respecting compiler will optimize this to a single machine byte-swap
  1215. // instruction, if one is available. This assumes that word_t is either 32 bits
  1216. // or 64 bits.
  1217. // */
  1218. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1219. return word&uint32(0xff000000)>>int32(24) | word&uint32(0xff0000)>>int32(8) | word&uint32(0xff00)<<int32(8) | word&uint32(0xff)<<int32(24)
  1220. }
  1221. var _crc_table = [256]Tz_crc_t{
  1222. 1: uint32(0x77073096),
  1223. 2: uint32(0xee0e612c),
  1224. 3: uint32(0x990951ba),
  1225. 4: uint32(0x076dc419),
  1226. 5: uint32(0x706af48f),
  1227. 6: uint32(0xe963a535),
  1228. 7: uint32(0x9e6495a3),
  1229. 8: uint32(0x0edb8832),
  1230. 9: uint32(0x79dcb8a4),
  1231. 10: uint32(0xe0d5e91e),
  1232. 11: uint32(0x97d2d988),
  1233. 12: uint32(0x09b64c2b),
  1234. 13: uint32(0x7eb17cbd),
  1235. 14: uint32(0xe7b82d07),
  1236. 15: uint32(0x90bf1d91),
  1237. 16: uint32(0x1db71064),
  1238. 17: uint32(0x6ab020f2),
  1239. 18: uint32(0xf3b97148),
  1240. 19: uint32(0x84be41de),
  1241. 20: uint32(0x1adad47d),
  1242. 21: uint32(0x6ddde4eb),
  1243. 22: uint32(0xf4d4b551),
  1244. 23: uint32(0x83d385c7),
  1245. 24: uint32(0x136c9856),
  1246. 25: uint32(0x646ba8c0),
  1247. 26: uint32(0xfd62f97a),
  1248. 27: uint32(0x8a65c9ec),
  1249. 28: uint32(0x14015c4f),
  1250. 29: uint32(0x63066cd9),
  1251. 30: uint32(0xfa0f3d63),
  1252. 31: uint32(0x8d080df5),
  1253. 32: uint32(0x3b6e20c8),
  1254. 33: uint32(0x4c69105e),
  1255. 34: uint32(0xd56041e4),
  1256. 35: uint32(0xa2677172),
  1257. 36: uint32(0x3c03e4d1),
  1258. 37: uint32(0x4b04d447),
  1259. 38: uint32(0xd20d85fd),
  1260. 39: uint32(0xa50ab56b),
  1261. 40: uint32(0x35b5a8fa),
  1262. 41: uint32(0x42b2986c),
  1263. 42: uint32(0xdbbbc9d6),
  1264. 43: uint32(0xacbcf940),
  1265. 44: uint32(0x32d86ce3),
  1266. 45: uint32(0x45df5c75),
  1267. 46: uint32(0xdcd60dcf),
  1268. 47: uint32(0xabd13d59),
  1269. 48: uint32(0x26d930ac),
  1270. 49: uint32(0x51de003a),
  1271. 50: uint32(0xc8d75180),
  1272. 51: uint32(0xbfd06116),
  1273. 52: uint32(0x21b4f4b5),
  1274. 53: uint32(0x56b3c423),
  1275. 54: uint32(0xcfba9599),
  1276. 55: uint32(0xb8bda50f),
  1277. 56: uint32(0x2802b89e),
  1278. 57: uint32(0x5f058808),
  1279. 58: uint32(0xc60cd9b2),
  1280. 59: uint32(0xb10be924),
  1281. 60: uint32(0x2f6f7c87),
  1282. 61: uint32(0x58684c11),
  1283. 62: uint32(0xc1611dab),
  1284. 63: uint32(0xb6662d3d),
  1285. 64: uint32(0x76dc4190),
  1286. 65: uint32(0x01db7106),
  1287. 66: uint32(0x98d220bc),
  1288. 67: uint32(0xefd5102a),
  1289. 68: uint32(0x71b18589),
  1290. 69: uint32(0x06b6b51f),
  1291. 70: uint32(0x9fbfe4a5),
  1292. 71: uint32(0xe8b8d433),
  1293. 72: uint32(0x7807c9a2),
  1294. 73: uint32(0x0f00f934),
  1295. 74: uint32(0x9609a88e),
  1296. 75: uint32(0xe10e9818),
  1297. 76: uint32(0x7f6a0dbb),
  1298. 77: uint32(0x086d3d2d),
  1299. 78: uint32(0x91646c97),
  1300. 79: uint32(0xe6635c01),
  1301. 80: uint32(0x6b6b51f4),
  1302. 81: uint32(0x1c6c6162),
  1303. 82: uint32(0x856530d8),
  1304. 83: uint32(0xf262004e),
  1305. 84: uint32(0x6c0695ed),
  1306. 85: uint32(0x1b01a57b),
  1307. 86: uint32(0x8208f4c1),
  1308. 87: uint32(0xf50fc457),
  1309. 88: uint32(0x65b0d9c6),
  1310. 89: uint32(0x12b7e950),
  1311. 90: uint32(0x8bbeb8ea),
  1312. 91: uint32(0xfcb9887c),
  1313. 92: uint32(0x62dd1ddf),
  1314. 93: uint32(0x15da2d49),
  1315. 94: uint32(0x8cd37cf3),
  1316. 95: uint32(0xfbd44c65),
  1317. 96: uint32(0x4db26158),
  1318. 97: uint32(0x3ab551ce),
  1319. 98: uint32(0xa3bc0074),
  1320. 99: uint32(0xd4bb30e2),
  1321. 100: uint32(0x4adfa541),
  1322. 101: uint32(0x3dd895d7),
  1323. 102: uint32(0xa4d1c46d),
  1324. 103: uint32(0xd3d6f4fb),
  1325. 104: uint32(0x4369e96a),
  1326. 105: uint32(0x346ed9fc),
  1327. 106: uint32(0xad678846),
  1328. 107: uint32(0xda60b8d0),
  1329. 108: uint32(0x44042d73),
  1330. 109: uint32(0x33031de5),
  1331. 110: uint32(0xaa0a4c5f),
  1332. 111: uint32(0xdd0d7cc9),
  1333. 112: uint32(0x5005713c),
  1334. 113: uint32(0x270241aa),
  1335. 114: uint32(0xbe0b1010),
  1336. 115: uint32(0xc90c2086),
  1337. 116: uint32(0x5768b525),
  1338. 117: uint32(0x206f85b3),
  1339. 118: uint32(0xb966d409),
  1340. 119: uint32(0xce61e49f),
  1341. 120: uint32(0x5edef90e),
  1342. 121: uint32(0x29d9c998),
  1343. 122: uint32(0xb0d09822),
  1344. 123: uint32(0xc7d7a8b4),
  1345. 124: uint32(0x59b33d17),
  1346. 125: uint32(0x2eb40d81),
  1347. 126: uint32(0xb7bd5c3b),
  1348. 127: uint32(0xc0ba6cad),
  1349. 128: uint32(0xedb88320),
  1350. 129: uint32(0x9abfb3b6),
  1351. 130: uint32(0x03b6e20c),
  1352. 131: uint32(0x74b1d29a),
  1353. 132: uint32(0xead54739),
  1354. 133: uint32(0x9dd277af),
  1355. 134: uint32(0x04db2615),
  1356. 135: uint32(0x73dc1683),
  1357. 136: uint32(0xe3630b12),
  1358. 137: uint32(0x94643b84),
  1359. 138: uint32(0x0d6d6a3e),
  1360. 139: uint32(0x7a6a5aa8),
  1361. 140: uint32(0xe40ecf0b),
  1362. 141: uint32(0x9309ff9d),
  1363. 142: uint32(0x0a00ae27),
  1364. 143: uint32(0x7d079eb1),
  1365. 144: uint32(0xf00f9344),
  1366. 145: uint32(0x8708a3d2),
  1367. 146: uint32(0x1e01f268),
  1368. 147: uint32(0x6906c2fe),
  1369. 148: uint32(0xf762575d),
  1370. 149: uint32(0x806567cb),
  1371. 150: uint32(0x196c3671),
  1372. 151: uint32(0x6e6b06e7),
  1373. 152: uint32(0xfed41b76),
  1374. 153: uint32(0x89d32be0),
  1375. 154: uint32(0x10da7a5a),
  1376. 155: uint32(0x67dd4acc),
  1377. 156: uint32(0xf9b9df6f),
  1378. 157: uint32(0x8ebeeff9),
  1379. 158: uint32(0x17b7be43),
  1380. 159: uint32(0x60b08ed5),
  1381. 160: uint32(0xd6d6a3e8),
  1382. 161: uint32(0xa1d1937e),
  1383. 162: uint32(0x38d8c2c4),
  1384. 163: uint32(0x4fdff252),
  1385. 164: uint32(0xd1bb67f1),
  1386. 165: uint32(0xa6bc5767),
  1387. 166: uint32(0x3fb506dd),
  1388. 167: uint32(0x48b2364b),
  1389. 168: uint32(0xd80d2bda),
  1390. 169: uint32(0xaf0a1b4c),
  1391. 170: uint32(0x36034af6),
  1392. 171: uint32(0x41047a60),
  1393. 172: uint32(0xdf60efc3),
  1394. 173: uint32(0xa867df55),
  1395. 174: uint32(0x316e8eef),
  1396. 175: uint32(0x4669be79),
  1397. 176: uint32(0xcb61b38c),
  1398. 177: uint32(0xbc66831a),
  1399. 178: uint32(0x256fd2a0),
  1400. 179: uint32(0x5268e236),
  1401. 180: uint32(0xcc0c7795),
  1402. 181: uint32(0xbb0b4703),
  1403. 182: uint32(0x220216b9),
  1404. 183: uint32(0x5505262f),
  1405. 184: uint32(0xc5ba3bbe),
  1406. 185: uint32(0xb2bd0b28),
  1407. 186: uint32(0x2bb45a92),
  1408. 187: uint32(0x5cb36a04),
  1409. 188: uint32(0xc2d7ffa7),
  1410. 189: uint32(0xb5d0cf31),
  1411. 190: uint32(0x2cd99e8b),
  1412. 191: uint32(0x5bdeae1d),
  1413. 192: uint32(0x9b64c2b0),
  1414. 193: uint32(0xec63f226),
  1415. 194: uint32(0x756aa39c),
  1416. 195: uint32(0x026d930a),
  1417. 196: uint32(0x9c0906a9),
  1418. 197: uint32(0xeb0e363f),
  1419. 198: uint32(0x72076785),
  1420. 199: uint32(0x05005713),
  1421. 200: uint32(0x95bf4a82),
  1422. 201: uint32(0xe2b87a14),
  1423. 202: uint32(0x7bb12bae),
  1424. 203: uint32(0x0cb61b38),
  1425. 204: uint32(0x92d28e9b),
  1426. 205: uint32(0xe5d5be0d),
  1427. 206: uint32(0x7cdcefb7),
  1428. 207: uint32(0x0bdbdf21),
  1429. 208: uint32(0x86d3d2d4),
  1430. 209: uint32(0xf1d4e242),
  1431. 210: uint32(0x68ddb3f8),
  1432. 211: uint32(0x1fda836e),
  1433. 212: uint32(0x81be16cd),
  1434. 213: uint32(0xf6b9265b),
  1435. 214: uint32(0x6fb077e1),
  1436. 215: uint32(0x18b74777),
  1437. 216: uint32(0x88085ae6),
  1438. 217: uint32(0xff0f6a70),
  1439. 218: uint32(0x66063bca),
  1440. 219: uint32(0x11010b5c),
  1441. 220: uint32(0x8f659eff),
  1442. 221: uint32(0xf862ae69),
  1443. 222: uint32(0x616bffd3),
  1444. 223: uint32(0x166ccf45),
  1445. 224: uint32(0xa00ae278),
  1446. 225: uint32(0xd70dd2ee),
  1447. 226: uint32(0x4e048354),
  1448. 227: uint32(0x3903b3c2),
  1449. 228: uint32(0xa7672661),
  1450. 229: uint32(0xd06016f7),
  1451. 230: uint32(0x4969474d),
  1452. 231: uint32(0x3e6e77db),
  1453. 232: uint32(0xaed16a4a),
  1454. 233: uint32(0xd9d65adc),
  1455. 234: uint32(0x40df0b66),
  1456. 235: uint32(0x37d83bf0),
  1457. 236: uint32(0xa9bcae53),
  1458. 237: uint32(0xdebb9ec5),
  1459. 238: uint32(0x47b2cf7f),
  1460. 239: uint32(0x30b5ffe9),
  1461. 240: uint32(0xbdbdf21c),
  1462. 241: uint32(0xcabac28a),
  1463. 242: uint32(0x53b39330),
  1464. 243: uint32(0x24b4a3a6),
  1465. 244: uint32(0xbad03605),
  1466. 245: uint32(0xcdd70693),
  1467. 246: uint32(0x54de5729),
  1468. 247: uint32(0x23d967bf),
  1469. 248: uint32(0xb3667a2e),
  1470. 249: uint32(0xc4614ab8),
  1471. 250: uint32(0x5d681b02),
  1472. 251: uint32(0x2a6f2b94),
  1473. 252: uint32(0xb40bbe37),
  1474. 253: uint32(0xc30c8ea1),
  1475. 254: uint32(0x5a05df1b),
  1476. 255: uint32(0x2d02ef8d),
  1477. }
  1478. var _crc_big_table = [256]Tz_word_t{
  1479. 1: uint32(0x96300777),
  1480. 2: uint32(0x2c610eee),
  1481. 3: uint32(0xba510999),
  1482. 4: uint32(0x19c46d07),
  1483. 5: uint32(0x8ff46a70),
  1484. 6: uint32(0x35a563e9),
  1485. 7: uint32(0xa395649e),
  1486. 8: uint32(0x3288db0e),
  1487. 9: uint32(0xa4b8dc79),
  1488. 10: uint32(0x1ee9d5e0),
  1489. 11: uint32(0x88d9d297),
  1490. 12: uint32(0x2b4cb609),
  1491. 13: uint32(0xbd7cb17e),
  1492. 14: uint32(0x072db8e7),
  1493. 15: uint32(0x911dbf90),
  1494. 16: uint32(0x6410b71d),
  1495. 17: uint32(0xf220b06a),
  1496. 18: uint32(0x4871b9f3),
  1497. 19: uint32(0xde41be84),
  1498. 20: uint32(0x7dd4da1a),
  1499. 21: uint32(0xebe4dd6d),
  1500. 22: uint32(0x51b5d4f4),
  1501. 23: uint32(0xc785d383),
  1502. 24: uint32(0x56986c13),
  1503. 25: uint32(0xc0a86b64),
  1504. 26: uint32(0x7af962fd),
  1505. 27: uint32(0xecc9658a),
  1506. 28: uint32(0x4f5c0114),
  1507. 29: uint32(0xd96c0663),
  1508. 30: uint32(0x633d0ffa),
  1509. 31: uint32(0xf50d088d),
  1510. 32: uint32(0xc8206e3b),
  1511. 33: uint32(0x5e10694c),
  1512. 34: uint32(0xe44160d5),
  1513. 35: uint32(0x727167a2),
  1514. 36: uint32(0xd1e4033c),
  1515. 37: uint32(0x47d4044b),
  1516. 38: uint32(0xfd850dd2),
  1517. 39: uint32(0x6bb50aa5),
  1518. 40: uint32(0xfaa8b535),
  1519. 41: uint32(0x6c98b242),
  1520. 42: uint32(0xd6c9bbdb),
  1521. 43: uint32(0x40f9bcac),
  1522. 44: uint32(0xe36cd832),
  1523. 45: uint32(0x755cdf45),
  1524. 46: uint32(0xcf0dd6dc),
  1525. 47: uint32(0x593dd1ab),
  1526. 48: uint32(0xac30d926),
  1527. 49: uint32(0x3a00de51),
  1528. 50: uint32(0x8051d7c8),
  1529. 51: uint32(0x1661d0bf),
  1530. 52: uint32(0xb5f4b421),
  1531. 53: uint32(0x23c4b356),
  1532. 54: uint32(0x9995bacf),
  1533. 55: uint32(0x0fa5bdb8),
  1534. 56: uint32(0x9eb80228),
  1535. 57: uint32(0x0888055f),
  1536. 58: uint32(0xb2d90cc6),
  1537. 59: uint32(0x24e90bb1),
  1538. 60: uint32(0x877c6f2f),
  1539. 61: uint32(0x114c6858),
  1540. 62: uint32(0xab1d61c1),
  1541. 63: uint32(0x3d2d66b6),
  1542. 64: uint32(0x9041dc76),
  1543. 65: uint32(0x0671db01),
  1544. 66: uint32(0xbc20d298),
  1545. 67: uint32(0x2a10d5ef),
  1546. 68: uint32(0x8985b171),
  1547. 69: uint32(0x1fb5b606),
  1548. 70: uint32(0xa5e4bf9f),
  1549. 71: uint32(0x33d4b8e8),
  1550. 72: uint32(0xa2c90778),
  1551. 73: uint32(0x34f9000f),
  1552. 74: uint32(0x8ea80996),
  1553. 75: uint32(0x18980ee1),
  1554. 76: uint32(0xbb0d6a7f),
  1555. 77: uint32(0x2d3d6d08),
  1556. 78: uint32(0x976c6491),
  1557. 79: uint32(0x015c63e6),
  1558. 80: uint32(0xf4516b6b),
  1559. 81: uint32(0x62616c1c),
  1560. 82: uint32(0xd8306585),
  1561. 83: uint32(0x4e0062f2),
  1562. 84: uint32(0xed95066c),
  1563. 85: uint32(0x7ba5011b),
  1564. 86: uint32(0xc1f40882),
  1565. 87: uint32(0x57c40ff5),
  1566. 88: uint32(0xc6d9b065),
  1567. 89: uint32(0x50e9b712),
  1568. 90: uint32(0xeab8be8b),
  1569. 91: uint32(0x7c88b9fc),
  1570. 92: uint32(0xdf1ddd62),
  1571. 93: uint32(0x492dda15),
  1572. 94: uint32(0xf37cd38c),
  1573. 95: uint32(0x654cd4fb),
  1574. 96: uint32(0x5861b24d),
  1575. 97: uint32(0xce51b53a),
  1576. 98: uint32(0x7400bca3),
  1577. 99: uint32(0xe230bbd4),
  1578. 100: uint32(0x41a5df4a),
  1579. 101: uint32(0xd795d83d),
  1580. 102: uint32(0x6dc4d1a4),
  1581. 103: uint32(0xfbf4d6d3),
  1582. 104: uint32(0x6ae96943),
  1583. 105: uint32(0xfcd96e34),
  1584. 106: uint32(0x468867ad),
  1585. 107: uint32(0xd0b860da),
  1586. 108: uint32(0x732d0444),
  1587. 109: uint32(0xe51d0333),
  1588. 110: uint32(0x5f4c0aaa),
  1589. 111: uint32(0xc97c0ddd),
  1590. 112: uint32(0x3c710550),
  1591. 113: uint32(0xaa410227),
  1592. 114: uint32(0x10100bbe),
  1593. 115: uint32(0x86200cc9),
  1594. 116: uint32(0x25b56857),
  1595. 117: uint32(0xb3856f20),
  1596. 118: uint32(0x09d466b9),
  1597. 119: uint32(0x9fe461ce),
  1598. 120: uint32(0x0ef9de5e),
  1599. 121: uint32(0x98c9d929),
  1600. 122: uint32(0x2298d0b0),
  1601. 123: uint32(0xb4a8d7c7),
  1602. 124: uint32(0x173db359),
  1603. 125: uint32(0x810db42e),
  1604. 126: uint32(0x3b5cbdb7),
  1605. 127: uint32(0xad6cbac0),
  1606. 128: uint32(0x2083b8ed),
  1607. 129: uint32(0xb6b3bf9a),
  1608. 130: uint32(0x0ce2b603),
  1609. 131: uint32(0x9ad2b174),
  1610. 132: uint32(0x3947d5ea),
  1611. 133: uint32(0xaf77d29d),
  1612. 134: uint32(0x1526db04),
  1613. 135: uint32(0x8316dc73),
  1614. 136: uint32(0x120b63e3),
  1615. 137: uint32(0x843b6494),
  1616. 138: uint32(0x3e6a6d0d),
  1617. 139: uint32(0xa85a6a7a),
  1618. 140: uint32(0x0bcf0ee4),
  1619. 141: uint32(0x9dff0993),
  1620. 142: uint32(0x27ae000a),
  1621. 143: uint32(0xb19e077d),
  1622. 144: uint32(0x44930ff0),
  1623. 145: uint32(0xd2a30887),
  1624. 146: uint32(0x68f2011e),
  1625. 147: uint32(0xfec20669),
  1626. 148: uint32(0x5d5762f7),
  1627. 149: uint32(0xcb676580),
  1628. 150: uint32(0x71366c19),
  1629. 151: uint32(0xe7066b6e),
  1630. 152: uint32(0x761bd4fe),
  1631. 153: uint32(0xe02bd389),
  1632. 154: uint32(0x5a7ada10),
  1633. 155: uint32(0xcc4add67),
  1634. 156: uint32(0x6fdfb9f9),
  1635. 157: uint32(0xf9efbe8e),
  1636. 158: uint32(0x43beb717),
  1637. 159: uint32(0xd58eb060),
  1638. 160: uint32(0xe8a3d6d6),
  1639. 161: uint32(0x7e93d1a1),
  1640. 162: uint32(0xc4c2d838),
  1641. 163: uint32(0x52f2df4f),
  1642. 164: uint32(0xf167bbd1),
  1643. 165: uint32(0x6757bca6),
  1644. 166: uint32(0xdd06b53f),
  1645. 167: uint32(0x4b36b248),
  1646. 168: uint32(0xda2b0dd8),
  1647. 169: uint32(0x4c1b0aaf),
  1648. 170: uint32(0xf64a0336),
  1649. 171: uint32(0x607a0441),
  1650. 172: uint32(0xc3ef60df),
  1651. 173: uint32(0x55df67a8),
  1652. 174: uint32(0xef8e6e31),
  1653. 175: uint32(0x79be6946),
  1654. 176: uint32(0x8cb361cb),
  1655. 177: uint32(0x1a8366bc),
  1656. 178: uint32(0xa0d26f25),
  1657. 179: uint32(0x36e26852),
  1658. 180: uint32(0x95770ccc),
  1659. 181: uint32(0x03470bbb),
  1660. 182: uint32(0xb9160222),
  1661. 183: uint32(0x2f260555),
  1662. 184: uint32(0xbe3bbac5),
  1663. 185: uint32(0x280bbdb2),
  1664. 186: uint32(0x925ab42b),
  1665. 187: uint32(0x046ab35c),
  1666. 188: uint32(0xa7ffd7c2),
  1667. 189: uint32(0x31cfd0b5),
  1668. 190: uint32(0x8b9ed92c),
  1669. 191: uint32(0x1daede5b),
  1670. 192: uint32(0xb0c2649b),
  1671. 193: uint32(0x26f263ec),
  1672. 194: uint32(0x9ca36a75),
  1673. 195: uint32(0x0a936d02),
  1674. 196: uint32(0xa906099c),
  1675. 197: uint32(0x3f360eeb),
  1676. 198: uint32(0x85670772),
  1677. 199: uint32(0x13570005),
  1678. 200: uint32(0x824abf95),
  1679. 201: uint32(0x147ab8e2),
  1680. 202: uint32(0xae2bb17b),
  1681. 203: uint32(0x381bb60c),
  1682. 204: uint32(0x9b8ed292),
  1683. 205: uint32(0x0dbed5e5),
  1684. 206: uint32(0xb7efdc7c),
  1685. 207: uint32(0x21dfdb0b),
  1686. 208: uint32(0xd4d2d386),
  1687. 209: uint32(0x42e2d4f1),
  1688. 210: uint32(0xf8b3dd68),
  1689. 211: uint32(0x6e83da1f),
  1690. 212: uint32(0xcd16be81),
  1691. 213: uint32(0x5b26b9f6),
  1692. 214: uint32(0xe177b06f),
  1693. 215: uint32(0x7747b718),
  1694. 216: uint32(0xe65a0888),
  1695. 217: uint32(0x706a0fff),
  1696. 218: uint32(0xca3b0666),
  1697. 219: uint32(0x5c0b0111),
  1698. 220: uint32(0xff9e658f),
  1699. 221: uint32(0x69ae62f8),
  1700. 222: uint32(0xd3ff6b61),
  1701. 223: uint32(0x45cf6c16),
  1702. 224: uint32(0x78e20aa0),
  1703. 225: uint32(0xeed20dd7),
  1704. 226: uint32(0x5483044e),
  1705. 227: uint32(0xc2b30339),
  1706. 228: uint32(0x612667a7),
  1707. 229: uint32(0xf71660d0),
  1708. 230: uint32(0x4d476949),
  1709. 231: uint32(0xdb776e3e),
  1710. 232: uint32(0x4a6ad1ae),
  1711. 233: uint32(0xdc5ad6d9),
  1712. 234: uint32(0x660bdf40),
  1713. 235: uint32(0xf03bd837),
  1714. 236: uint32(0x53aebca9),
  1715. 237: uint32(0xc59ebbde),
  1716. 238: uint32(0x7fcfb247),
  1717. 239: uint32(0xe9ffb530),
  1718. 240: uint32(0x1cf2bdbd),
  1719. 241: uint32(0x8ac2baca),
  1720. 242: uint32(0x3093b353),
  1721. 243: uint32(0xa6a3b424),
  1722. 244: uint32(0x0536d0ba),
  1723. 245: uint32(0x9306d7cd),
  1724. 246: uint32(0x2957de54),
  1725. 247: uint32(0xbf67d923),
  1726. 248: uint32(0x2e7a66b3),
  1727. 249: uint32(0xb84a61c4),
  1728. 250: uint32(0x021b685d),
  1729. 251: uint32(0x942b6f2a),
  1730. 252: uint32(0x37be0bb4),
  1731. 253: uint32(0xa18e0cc3),
  1732. 254: uint32(0x1bdf055a),
  1733. 255: uint32(0x8def022d),
  1734. }
  1735. var _crc_braid_table = [4][256]Tz_crc_t{
  1736. 0: {
  1737. 1: uint32(0x65673b46),
  1738. 2: uint32(0xcace768c),
  1739. 3: uint32(0xafa94dca),
  1740. 4: uint32(0x4eedeb59),
  1741. 5: uint32(0x2b8ad01f),
  1742. 6: uint32(0x84239dd5),
  1743. 7: uint32(0xe144a693),
  1744. 8: uint32(0x9ddbd6b2),
  1745. 9: uint32(0xf8bcedf4),
  1746. 10: uint32(0x5715a03e),
  1747. 11: uint32(0x32729b78),
  1748. 12: uint32(0xd3363deb),
  1749. 13: uint32(0xb65106ad),
  1750. 14: uint32(0x19f84b67),
  1751. 15: uint32(0x7c9f7021),
  1752. 16: uint32(0xe0c6ab25),
  1753. 17: uint32(0x85a19063),
  1754. 18: uint32(0x2a08dda9),
  1755. 19: uint32(0x4f6fe6ef),
  1756. 20: uint32(0xae2b407c),
  1757. 21: uint32(0xcb4c7b3a),
  1758. 22: uint32(0x64e536f0),
  1759. 23: uint32(0x01820db6),
  1760. 24: uint32(0x7d1d7d97),
  1761. 25: uint32(0x187a46d1),
  1762. 26: uint32(0xb7d30b1b),
  1763. 27: uint32(0xd2b4305d),
  1764. 28: uint32(0x33f096ce),
  1765. 29: uint32(0x5697ad88),
  1766. 30: uint32(0xf93ee042),
  1767. 31: uint32(0x9c59db04),
  1768. 32: uint32(0x1afc500b),
  1769. 33: uint32(0x7f9b6b4d),
  1770. 34: uint32(0xd0322687),
  1771. 35: uint32(0xb5551dc1),
  1772. 36: uint32(0x5411bb52),
  1773. 37: uint32(0x31768014),
  1774. 38: uint32(0x9edfcdde),
  1775. 39: uint32(0xfbb8f698),
  1776. 40: uint32(0x872786b9),
  1777. 41: uint32(0xe240bdff),
  1778. 42: uint32(0x4de9f035),
  1779. 43: uint32(0x288ecb73),
  1780. 44: uint32(0xc9ca6de0),
  1781. 45: uint32(0xacad56a6),
  1782. 46: uint32(0x03041b6c),
  1783. 47: uint32(0x6663202a),
  1784. 48: uint32(0xfa3afb2e),
  1785. 49: uint32(0x9f5dc068),
  1786. 50: uint32(0x30f48da2),
  1787. 51: uint32(0x5593b6e4),
  1788. 52: uint32(0xb4d71077),
  1789. 53: uint32(0xd1b02b31),
  1790. 54: uint32(0x7e1966fb),
  1791. 55: uint32(0x1b7e5dbd),
  1792. 56: uint32(0x67e12d9c),
  1793. 57: uint32(0x028616da),
  1794. 58: uint32(0xad2f5b10),
  1795. 59: uint32(0xc8486056),
  1796. 60: uint32(0x290cc6c5),
  1797. 61: uint32(0x4c6bfd83),
  1798. 62: uint32(0xe3c2b049),
  1799. 63: uint32(0x86a58b0f),
  1800. 64: uint32(0x35f8a016),
  1801. 65: uint32(0x509f9b50),
  1802. 66: uint32(0xff36d69a),
  1803. 67: uint32(0x9a51eddc),
  1804. 68: uint32(0x7b154b4f),
  1805. 69: uint32(0x1e727009),
  1806. 70: uint32(0xb1db3dc3),
  1807. 71: uint32(0xd4bc0685),
  1808. 72: uint32(0xa82376a4),
  1809. 73: uint32(0xcd444de2),
  1810. 74: uint32(0x62ed0028),
  1811. 75: uint32(0x078a3b6e),
  1812. 76: uint32(0xe6ce9dfd),
  1813. 77: uint32(0x83a9a6bb),
  1814. 78: uint32(0x2c00eb71),
  1815. 79: uint32(0x4967d037),
  1816. 80: uint32(0xd53e0b33),
  1817. 81: uint32(0xb0593075),
  1818. 82: uint32(0x1ff07dbf),
  1819. 83: uint32(0x7a9746f9),
  1820. 84: uint32(0x9bd3e06a),
  1821. 85: uint32(0xfeb4db2c),
  1822. 86: uint32(0x511d96e6),
  1823. 87: uint32(0x347aada0),
  1824. 88: uint32(0x48e5dd81),
  1825. 89: uint32(0x2d82e6c7),
  1826. 90: uint32(0x822bab0d),
  1827. 91: uint32(0xe74c904b),
  1828. 92: uint32(0x060836d8),
  1829. 93: uint32(0x636f0d9e),
  1830. 94: uint32(0xccc64054),
  1831. 95: uint32(0xa9a17b12),
  1832. 96: uint32(0x2f04f01d),
  1833. 97: uint32(0x4a63cb5b),
  1834. 98: uint32(0xe5ca8691),
  1835. 99: uint32(0x80adbdd7),
  1836. 100: uint32(0x61e91b44),
  1837. 101: uint32(0x048e2002),
  1838. 102: uint32(0xab276dc8),
  1839. 103: uint32(0xce40568e),
  1840. 104: uint32(0xb2df26af),
  1841. 105: uint32(0xd7b81de9),
  1842. 106: uint32(0x78115023),
  1843. 107: uint32(0x1d766b65),
  1844. 108: uint32(0xfc32cdf6),
  1845. 109: uint32(0x9955f6b0),
  1846. 110: uint32(0x36fcbb7a),
  1847. 111: uint32(0x539b803c),
  1848. 112: uint32(0xcfc25b38),
  1849. 113: uint32(0xaaa5607e),
  1850. 114: uint32(0x050c2db4),
  1851. 115: uint32(0x606b16f2),
  1852. 116: uint32(0x812fb061),
  1853. 117: uint32(0xe4488b27),
  1854. 118: uint32(0x4be1c6ed),
  1855. 119: uint32(0x2e86fdab),
  1856. 120: uint32(0x52198d8a),
  1857. 121: uint32(0x377eb6cc),
  1858. 122: uint32(0x98d7fb06),
  1859. 123: uint32(0xfdb0c040),
  1860. 124: uint32(0x1cf466d3),
  1861. 125: uint32(0x79935d95),
  1862. 126: uint32(0xd63a105f),
  1863. 127: uint32(0xb35d2b19),
  1864. 128: uint32(0x6bf1402c),
  1865. 129: uint32(0x0e967b6a),
  1866. 130: uint32(0xa13f36a0),
  1867. 131: uint32(0xc4580de6),
  1868. 132: uint32(0x251cab75),
  1869. 133: uint32(0x407b9033),
  1870. 134: uint32(0xefd2ddf9),
  1871. 135: uint32(0x8ab5e6bf),
  1872. 136: uint32(0xf62a969e),
  1873. 137: uint32(0x934dadd8),
  1874. 138: uint32(0x3ce4e012),
  1875. 139: uint32(0x5983db54),
  1876. 140: uint32(0xb8c77dc7),
  1877. 141: uint32(0xdda04681),
  1878. 142: uint32(0x72090b4b),
  1879. 143: uint32(0x176e300d),
  1880. 144: uint32(0x8b37eb09),
  1881. 145: uint32(0xee50d04f),
  1882. 146: uint32(0x41f99d85),
  1883. 147: uint32(0x249ea6c3),
  1884. 148: uint32(0xc5da0050),
  1885. 149: uint32(0xa0bd3b16),
  1886. 150: uint32(0x0f1476dc),
  1887. 151: uint32(0x6a734d9a),
  1888. 152: uint32(0x16ec3dbb),
  1889. 153: uint32(0x738b06fd),
  1890. 154: uint32(0xdc224b37),
  1891. 155: uint32(0xb9457071),
  1892. 156: uint32(0x5801d6e2),
  1893. 157: uint32(0x3d66eda4),
  1894. 158: uint32(0x92cfa06e),
  1895. 159: uint32(0xf7a89b28),
  1896. 160: uint32(0x710d1027),
  1897. 161: uint32(0x146a2b61),
  1898. 162: uint32(0xbbc366ab),
  1899. 163: uint32(0xdea45ded),
  1900. 164: uint32(0x3fe0fb7e),
  1901. 165: uint32(0x5a87c038),
  1902. 166: uint32(0xf52e8df2),
  1903. 167: uint32(0x9049b6b4),
  1904. 168: uint32(0xecd6c695),
  1905. 169: uint32(0x89b1fdd3),
  1906. 170: uint32(0x2618b019),
  1907. 171: uint32(0x437f8b5f),
  1908. 172: uint32(0xa23b2dcc),
  1909. 173: uint32(0xc75c168a),
  1910. 174: uint32(0x68f55b40),
  1911. 175: uint32(0x0d926006),
  1912. 176: uint32(0x91cbbb02),
  1913. 177: uint32(0xf4ac8044),
  1914. 178: uint32(0x5b05cd8e),
  1915. 179: uint32(0x3e62f6c8),
  1916. 180: uint32(0xdf26505b),
  1917. 181: uint32(0xba416b1d),
  1918. 182: uint32(0x15e826d7),
  1919. 183: uint32(0x708f1d91),
  1920. 184: uint32(0x0c106db0),
  1921. 185: uint32(0x697756f6),
  1922. 186: uint32(0xc6de1b3c),
  1923. 187: uint32(0xa3b9207a),
  1924. 188: uint32(0x42fd86e9),
  1925. 189: uint32(0x279abdaf),
  1926. 190: uint32(0x8833f065),
  1927. 191: uint32(0xed54cb23),
  1928. 192: uint32(0x5e09e03a),
  1929. 193: uint32(0x3b6edb7c),
  1930. 194: uint32(0x94c796b6),
  1931. 195: uint32(0xf1a0adf0),
  1932. 196: uint32(0x10e40b63),
  1933. 197: uint32(0x75833025),
  1934. 198: uint32(0xda2a7def),
  1935. 199: uint32(0xbf4d46a9),
  1936. 200: uint32(0xc3d23688),
  1937. 201: uint32(0xa6b50dce),
  1938. 202: uint32(0x091c4004),
  1939. 203: uint32(0x6c7b7b42),
  1940. 204: uint32(0x8d3fddd1),
  1941. 205: uint32(0xe858e697),
  1942. 206: uint32(0x47f1ab5d),
  1943. 207: uint32(0x2296901b),
  1944. 208: uint32(0xbecf4b1f),
  1945. 209: uint32(0xdba87059),
  1946. 210: uint32(0x74013d93),
  1947. 211: uint32(0x116606d5),
  1948. 212: uint32(0xf022a046),
  1949. 213: uint32(0x95459b00),
  1950. 214: uint32(0x3aecd6ca),
  1951. 215: uint32(0x5f8bed8c),
  1952. 216: uint32(0x23149dad),
  1953. 217: uint32(0x4673a6eb),
  1954. 218: uint32(0xe9daeb21),
  1955. 219: uint32(0x8cbdd067),
  1956. 220: uint32(0x6df976f4),
  1957. 221: uint32(0x089e4db2),
  1958. 222: uint32(0xa7370078),
  1959. 223: uint32(0xc2503b3e),
  1960. 224: uint32(0x44f5b031),
  1961. 225: uint32(0x21928b77),
  1962. 226: uint32(0x8e3bc6bd),
  1963. 227: uint32(0xeb5cfdfb),
  1964. 228: uint32(0x0a185b68),
  1965. 229: uint32(0x6f7f602e),
  1966. 230: uint32(0xc0d62de4),
  1967. 231: uint32(0xa5b116a2),
  1968. 232: uint32(0xd92e6683),
  1969. 233: uint32(0xbc495dc5),
  1970. 234: uint32(0x13e0100f),
  1971. 235: uint32(0x76872b49),
  1972. 236: uint32(0x97c38dda),
  1973. 237: uint32(0xf2a4b69c),
  1974. 238: uint32(0x5d0dfb56),
  1975. 239: uint32(0x386ac010),
  1976. 240: uint32(0xa4331b14),
  1977. 241: uint32(0xc1542052),
  1978. 242: uint32(0x6efd6d98),
  1979. 243: uint32(0x0b9a56de),
  1980. 244: uint32(0xeadef04d),
  1981. 245: uint32(0x8fb9cb0b),
  1982. 246: uint32(0x201086c1),
  1983. 247: uint32(0x4577bd87),
  1984. 248: uint32(0x39e8cda6),
  1985. 249: uint32(0x5c8ff6e0),
  1986. 250: uint32(0xf326bb2a),
  1987. 251: uint32(0x9641806c),
  1988. 252: uint32(0x770526ff),
  1989. 253: uint32(0x12621db9),
  1990. 254: uint32(0xbdcb5073),
  1991. 255: uint32(0xd8ac6b35),
  1992. },
  1993. 1: {
  1994. 1: uint32(0xd7e28058),
  1995. 2: uint32(0x74b406f1),
  1996. 3: uint32(0xa35686a9),
  1997. 4: uint32(0xe9680de2),
  1998. 5: uint32(0x3e8a8dba),
  1999. 6: uint32(0x9ddc0b13),
  2000. 7: uint32(0x4a3e8b4b),
  2001. 8: uint32(0x09a11d85),
  2002. 9: uint32(0xde439ddd),
  2003. 10: uint32(0x7d151b74),
  2004. 11: uint32(0xaaf79b2c),
  2005. 12: uint32(0xe0c91067),
  2006. 13: uint32(0x372b903f),
  2007. 14: uint32(0x947d1696),
  2008. 15: uint32(0x439f96ce),
  2009. 16: uint32(0x13423b0a),
  2010. 17: uint32(0xc4a0bb52),
  2011. 18: uint32(0x67f63dfb),
  2012. 19: uint32(0xb014bda3),
  2013. 20: uint32(0xfa2a36e8),
  2014. 21: uint32(0x2dc8b6b0),
  2015. 22: uint32(0x8e9e3019),
  2016. 23: uint32(0x597cb041),
  2017. 24: uint32(0x1ae3268f),
  2018. 25: uint32(0xcd01a6d7),
  2019. 26: uint32(0x6e57207e),
  2020. 27: uint32(0xb9b5a026),
  2021. 28: uint32(0xf38b2b6d),
  2022. 29: uint32(0x2469ab35),
  2023. 30: uint32(0x873f2d9c),
  2024. 31: uint32(0x50ddadc4),
  2025. 32: uint32(0x26847614),
  2026. 33: uint32(0xf166f64c),
  2027. 34: uint32(0x523070e5),
  2028. 35: uint32(0x85d2f0bd),
  2029. 36: uint32(0xcfec7bf6),
  2030. 37: uint32(0x180efbae),
  2031. 38: uint32(0xbb587d07),
  2032. 39: uint32(0x6cbafd5f),
  2033. 40: uint32(0x2f256b91),
  2034. 41: uint32(0xf8c7ebc9),
  2035. 42: uint32(0x5b916d60),
  2036. 43: uint32(0x8c73ed38),
  2037. 44: uint32(0xc64d6673),
  2038. 45: uint32(0x11afe62b),
  2039. 46: uint32(0xb2f96082),
  2040. 47: uint32(0x651be0da),
  2041. 48: uint32(0x35c64d1e),
  2042. 49: uint32(0xe224cd46),
  2043. 50: uint32(0x41724bef),
  2044. 51: uint32(0x9690cbb7),
  2045. 52: uint32(0xdcae40fc),
  2046. 53: uint32(0x0b4cc0a4),
  2047. 54: uint32(0xa81a460d),
  2048. 55: uint32(0x7ff8c655),
  2049. 56: uint32(0x3c67509b),
  2050. 57: uint32(0xeb85d0c3),
  2051. 58: uint32(0x48d3566a),
  2052. 59: uint32(0x9f31d632),
  2053. 60: uint32(0xd50f5d79),
  2054. 61: uint32(0x02eddd21),
  2055. 62: uint32(0xa1bb5b88),
  2056. 63: uint32(0x7659dbd0),
  2057. 64: uint32(0x4d08ec28),
  2058. 65: uint32(0x9aea6c70),
  2059. 66: uint32(0x39bcead9),
  2060. 67: uint32(0xee5e6a81),
  2061. 68: uint32(0xa460e1ca),
  2062. 69: uint32(0x73826192),
  2063. 70: uint32(0xd0d4e73b),
  2064. 71: uint32(0x07366763),
  2065. 72: uint32(0x44a9f1ad),
  2066. 73: uint32(0x934b71f5),
  2067. 74: uint32(0x301df75c),
  2068. 75: uint32(0xe7ff7704),
  2069. 76: uint32(0xadc1fc4f),
  2070. 77: uint32(0x7a237c17),
  2071. 78: uint32(0xd975fabe),
  2072. 79: uint32(0x0e977ae6),
  2073. 80: uint32(0x5e4ad722),
  2074. 81: uint32(0x89a8577a),
  2075. 82: uint32(0x2afed1d3),
  2076. 83: uint32(0xfd1c518b),
  2077. 84: uint32(0xb722dac0),
  2078. 85: uint32(0x60c05a98),
  2079. 86: uint32(0xc396dc31),
  2080. 87: uint32(0x14745c69),
  2081. 88: uint32(0x57ebcaa7),
  2082. 89: uint32(0x80094aff),
  2083. 90: uint32(0x235fcc56),
  2084. 91: uint32(0xf4bd4c0e),
  2085. 92: uint32(0xbe83c745),
  2086. 93: uint32(0x6961471d),
  2087. 94: uint32(0xca37c1b4),
  2088. 95: uint32(0x1dd541ec),
  2089. 96: uint32(0x6b8c9a3c),
  2090. 97: uint32(0xbc6e1a64),
  2091. 98: uint32(0x1f389ccd),
  2092. 99: uint32(0xc8da1c95),
  2093. 100: uint32(0x82e497de),
  2094. 101: uint32(0x55061786),
  2095. 102: uint32(0xf650912f),
  2096. 103: uint32(0x21b21177),
  2097. 104: uint32(0x622d87b9),
  2098. 105: uint32(0xb5cf07e1),
  2099. 106: uint32(0x16998148),
  2100. 107: uint32(0xc17b0110),
  2101. 108: uint32(0x8b458a5b),
  2102. 109: uint32(0x5ca70a03),
  2103. 110: uint32(0xfff18caa),
  2104. 111: uint32(0x28130cf2),
  2105. 112: uint32(0x78cea136),
  2106. 113: uint32(0xaf2c216e),
  2107. 114: uint32(0x0c7aa7c7),
  2108. 115: uint32(0xdb98279f),
  2109. 116: uint32(0x91a6acd4),
  2110. 117: uint32(0x46442c8c),
  2111. 118: uint32(0xe512aa25),
  2112. 119: uint32(0x32f02a7d),
  2113. 120: uint32(0x716fbcb3),
  2114. 121: uint32(0xa68d3ceb),
  2115. 122: uint32(0x05dbba42),
  2116. 123: uint32(0xd2393a1a),
  2117. 124: uint32(0x9807b151),
  2118. 125: uint32(0x4fe53109),
  2119. 126: uint32(0xecb3b7a0),
  2120. 127: uint32(0x3b5137f8),
  2121. 128: uint32(0x9a11d850),
  2122. 129: uint32(0x4df35808),
  2123. 130: uint32(0xeea5dea1),
  2124. 131: uint32(0x39475ef9),
  2125. 132: uint32(0x7379d5b2),
  2126. 133: uint32(0xa49b55ea),
  2127. 134: uint32(0x07cdd343),
  2128. 135: uint32(0xd02f531b),
  2129. 136: uint32(0x93b0c5d5),
  2130. 137: uint32(0x4452458d),
  2131. 138: uint32(0xe704c324),
  2132. 139: uint32(0x30e6437c),
  2133. 140: uint32(0x7ad8c837),
  2134. 141: uint32(0xad3a486f),
  2135. 142: uint32(0x0e6ccec6),
  2136. 143: uint32(0xd98e4e9e),
  2137. 144: uint32(0x8953e35a),
  2138. 145: uint32(0x5eb16302),
  2139. 146: uint32(0xfde7e5ab),
  2140. 147: uint32(0x2a0565f3),
  2141. 148: uint32(0x603beeb8),
  2142. 149: uint32(0xb7d96ee0),
  2143. 150: uint32(0x148fe849),
  2144. 151: uint32(0xc36d6811),
  2145. 152: uint32(0x80f2fedf),
  2146. 153: uint32(0x57107e87),
  2147. 154: uint32(0xf446f82e),
  2148. 155: uint32(0x23a47876),
  2149. 156: uint32(0x699af33d),
  2150. 157: uint32(0xbe787365),
  2151. 158: uint32(0x1d2ef5cc),
  2152. 159: uint32(0xcacc7594),
  2153. 160: uint32(0xbc95ae44),
  2154. 161: uint32(0x6b772e1c),
  2155. 162: uint32(0xc821a8b5),
  2156. 163: uint32(0x1fc328ed),
  2157. 164: uint32(0x55fda3a6),
  2158. 165: uint32(0x821f23fe),
  2159. 166: uint32(0x2149a557),
  2160. 167: uint32(0xf6ab250f),
  2161. 168: uint32(0xb534b3c1),
  2162. 169: uint32(0x62d63399),
  2163. 170: uint32(0xc180b530),
  2164. 171: uint32(0x16623568),
  2165. 172: uint32(0x5c5cbe23),
  2166. 173: uint32(0x8bbe3e7b),
  2167. 174: uint32(0x28e8b8d2),
  2168. 175: uint32(0xff0a388a),
  2169. 176: uint32(0xafd7954e),
  2170. 177: uint32(0x78351516),
  2171. 178: uint32(0xdb6393bf),
  2172. 179: uint32(0x0c8113e7),
  2173. 180: uint32(0x46bf98ac),
  2174. 181: uint32(0x915d18f4),
  2175. 182: uint32(0x320b9e5d),
  2176. 183: uint32(0xe5e91e05),
  2177. 184: uint32(0xa67688cb),
  2178. 185: uint32(0x71940893),
  2179. 186: uint32(0xd2c28e3a),
  2180. 187: uint32(0x05200e62),
  2181. 188: uint32(0x4f1e8529),
  2182. 189: uint32(0x98fc0571),
  2183. 190: uint32(0x3baa83d8),
  2184. 191: uint32(0xec480380),
  2185. 192: uint32(0xd7193478),
  2186. 193: uint32(0x00fbb420),
  2187. 194: uint32(0xa3ad3289),
  2188. 195: uint32(0x744fb2d1),
  2189. 196: uint32(0x3e71399a),
  2190. 197: uint32(0xe993b9c2),
  2191. 198: uint32(0x4ac53f6b),
  2192. 199: uint32(0x9d27bf33),
  2193. 200: uint32(0xdeb829fd),
  2194. 201: uint32(0x095aa9a5),
  2195. 202: uint32(0xaa0c2f0c),
  2196. 203: uint32(0x7deeaf54),
  2197. 204: uint32(0x37d0241f),
  2198. 205: uint32(0xe032a447),
  2199. 206: uint32(0x436422ee),
  2200. 207: uint32(0x9486a2b6),
  2201. 208: uint32(0xc45b0f72),
  2202. 209: uint32(0x13b98f2a),
  2203. 210: uint32(0xb0ef0983),
  2204. 211: uint32(0x670d89db),
  2205. 212: uint32(0x2d330290),
  2206. 213: uint32(0xfad182c8),
  2207. 214: uint32(0x59870461),
  2208. 215: uint32(0x8e658439),
  2209. 216: uint32(0xcdfa12f7),
  2210. 217: uint32(0x1a1892af),
  2211. 218: uint32(0xb94e1406),
  2212. 219: uint32(0x6eac945e),
  2213. 220: uint32(0x24921f15),
  2214. 221: uint32(0xf3709f4d),
  2215. 222: uint32(0x502619e4),
  2216. 223: uint32(0x87c499bc),
  2217. 224: uint32(0xf19d426c),
  2218. 225: uint32(0x267fc234),
  2219. 226: uint32(0x8529449d),
  2220. 227: uint32(0x52cbc4c5),
  2221. 228: uint32(0x18f54f8e),
  2222. 229: uint32(0xcf17cfd6),
  2223. 230: uint32(0x6c41497f),
  2224. 231: uint32(0xbba3c927),
  2225. 232: uint32(0xf83c5fe9),
  2226. 233: uint32(0x2fdedfb1),
  2227. 234: uint32(0x8c885918),
  2228. 235: uint32(0x5b6ad940),
  2229. 236: uint32(0x1154520b),
  2230. 237: uint32(0xc6b6d253),
  2231. 238: uint32(0x65e054fa),
  2232. 239: uint32(0xb202d4a2),
  2233. 240: uint32(0xe2df7966),
  2234. 241: uint32(0x353df93e),
  2235. 242: uint32(0x966b7f97),
  2236. 243: uint32(0x4189ffcf),
  2237. 244: uint32(0x0bb77484),
  2238. 245: uint32(0xdc55f4dc),
  2239. 246: uint32(0x7f037275),
  2240. 247: uint32(0xa8e1f22d),
  2241. 248: uint32(0xeb7e64e3),
  2242. 249: uint32(0x3c9ce4bb),
  2243. 250: uint32(0x9fca6212),
  2244. 251: uint32(0x4828e24a),
  2245. 252: uint32(0x02166901),
  2246. 253: uint32(0xd5f4e959),
  2247. 254: uint32(0x76a26ff0),
  2248. 255: uint32(0xa140efa8),
  2249. },
  2250. 2: {
  2251. 1: uint32(0xef52b6e1),
  2252. 2: uint32(0x05d46b83),
  2253. 3: uint32(0xea86dd62),
  2254. 4: uint32(0x0ba8d706),
  2255. 5: uint32(0xe4fa61e7),
  2256. 6: uint32(0x0e7cbc85),
  2257. 7: uint32(0xe12e0a64),
  2258. 8: uint32(0x1751ae0c),
  2259. 9: uint32(0xf80318ed),
  2260. 10: uint32(0x1285c58f),
  2261. 11: uint32(0xfdd7736e),
  2262. 12: uint32(0x1cf9790a),
  2263. 13: uint32(0xf3abcfeb),
  2264. 14: uint32(0x192d1289),
  2265. 15: uint32(0xf67fa468),
  2266. 16: uint32(0x2ea35c18),
  2267. 17: uint32(0xc1f1eaf9),
  2268. 18: uint32(0x2b77379b),
  2269. 19: uint32(0xc425817a),
  2270. 20: uint32(0x250b8b1e),
  2271. 21: uint32(0xca593dff),
  2272. 22: uint32(0x20dfe09d),
  2273. 23: uint32(0xcf8d567c),
  2274. 24: uint32(0x39f2f214),
  2275. 25: uint32(0xd6a044f5),
  2276. 26: uint32(0x3c269997),
  2277. 27: uint32(0xd3742f76),
  2278. 28: uint32(0x325a2512),
  2279. 29: uint32(0xdd0893f3),
  2280. 30: uint32(0x378e4e91),
  2281. 31: uint32(0xd8dcf870),
  2282. 32: uint32(0x5d46b830),
  2283. 33: uint32(0xb2140ed1),
  2284. 34: uint32(0x5892d3b3),
  2285. 35: uint32(0xb7c06552),
  2286. 36: uint32(0x56ee6f36),
  2287. 37: uint32(0xb9bcd9d7),
  2288. 38: uint32(0x533a04b5),
  2289. 39: uint32(0xbc68b254),
  2290. 40: uint32(0x4a17163c),
  2291. 41: uint32(0xa545a0dd),
  2292. 42: uint32(0x4fc37dbf),
  2293. 43: uint32(0xa091cb5e),
  2294. 44: uint32(0x41bfc13a),
  2295. 45: uint32(0xaeed77db),
  2296. 46: uint32(0x446baab9),
  2297. 47: uint32(0xab391c58),
  2298. 48: uint32(0x73e5e428),
  2299. 49: uint32(0x9cb752c9),
  2300. 50: uint32(0x76318fab),
  2301. 51: uint32(0x9963394a),
  2302. 52: uint32(0x784d332e),
  2303. 53: uint32(0x971f85cf),
  2304. 54: uint32(0x7d9958ad),
  2305. 55: uint32(0x92cbee4c),
  2306. 56: uint32(0x64b44a24),
  2307. 57: uint32(0x8be6fcc5),
  2308. 58: uint32(0x616021a7),
  2309. 59: uint32(0x8e329746),
  2310. 60: uint32(0x6f1c9d22),
  2311. 61: uint32(0x804e2bc3),
  2312. 62: uint32(0x6ac8f6a1),
  2313. 63: uint32(0x859a4040),
  2314. 64: uint32(0xba8d7060),
  2315. 65: uint32(0x55dfc681),
  2316. 66: uint32(0xbf591be3),
  2317. 67: uint32(0x500bad02),
  2318. 68: uint32(0xb125a766),
  2319. 69: uint32(0x5e771187),
  2320. 70: uint32(0xb4f1cce5),
  2321. 71: uint32(0x5ba37a04),
  2322. 72: uint32(0xaddcde6c),
  2323. 73: uint32(0x428e688d),
  2324. 74: uint32(0xa808b5ef),
  2325. 75: uint32(0x475a030e),
  2326. 76: uint32(0xa674096a),
  2327. 77: uint32(0x4926bf8b),
  2328. 78: uint32(0xa3a062e9),
  2329. 79: uint32(0x4cf2d408),
  2330. 80: uint32(0x942e2c78),
  2331. 81: uint32(0x7b7c9a99),
  2332. 82: uint32(0x91fa47fb),
  2333. 83: uint32(0x7ea8f11a),
  2334. 84: uint32(0x9f86fb7e),
  2335. 85: uint32(0x70d44d9f),
  2336. 86: uint32(0x9a5290fd),
  2337. 87: uint32(0x7500261c),
  2338. 88: uint32(0x837f8274),
  2339. 89: uint32(0x6c2d3495),
  2340. 90: uint32(0x86abe9f7),
  2341. 91: uint32(0x69f95f16),
  2342. 92: uint32(0x88d75572),
  2343. 93: uint32(0x6785e393),
  2344. 94: uint32(0x8d033ef1),
  2345. 95: uint32(0x62518810),
  2346. 96: uint32(0xe7cbc850),
  2347. 97: uint32(0x08997eb1),
  2348. 98: uint32(0xe21fa3d3),
  2349. 99: uint32(0x0d4d1532),
  2350. 100: uint32(0xec631f56),
  2351. 101: uint32(0x0331a9b7),
  2352. 102: uint32(0xe9b774d5),
  2353. 103: uint32(0x06e5c234),
  2354. 104: uint32(0xf09a665c),
  2355. 105: uint32(0x1fc8d0bd),
  2356. 106: uint32(0xf54e0ddf),
  2357. 107: uint32(0x1a1cbb3e),
  2358. 108: uint32(0xfb32b15a),
  2359. 109: uint32(0x146007bb),
  2360. 110: uint32(0xfee6dad9),
  2361. 111: uint32(0x11b46c38),
  2362. 112: uint32(0xc9689448),
  2363. 113: uint32(0x263a22a9),
  2364. 114: uint32(0xccbcffcb),
  2365. 115: uint32(0x23ee492a),
  2366. 116: uint32(0xc2c0434e),
  2367. 117: uint32(0x2d92f5af),
  2368. 118: uint32(0xc71428cd),
  2369. 119: uint32(0x28469e2c),
  2370. 120: uint32(0xde393a44),
  2371. 121: uint32(0x316b8ca5),
  2372. 122: uint32(0xdbed51c7),
  2373. 123: uint32(0x34bfe726),
  2374. 124: uint32(0xd591ed42),
  2375. 125: uint32(0x3ac35ba3),
  2376. 126: uint32(0xd04586c1),
  2377. 127: uint32(0x3f173020),
  2378. 128: uint32(0xae6be681),
  2379. 129: uint32(0x41395060),
  2380. 130: uint32(0xabbf8d02),
  2381. 131: uint32(0x44ed3be3),
  2382. 132: uint32(0xa5c33187),
  2383. 133: uint32(0x4a918766),
  2384. 134: uint32(0xa0175a04),
  2385. 135: uint32(0x4f45ece5),
  2386. 136: uint32(0xb93a488d),
  2387. 137: uint32(0x5668fe6c),
  2388. 138: uint32(0xbcee230e),
  2389. 139: uint32(0x53bc95ef),
  2390. 140: uint32(0xb2929f8b),
  2391. 141: uint32(0x5dc0296a),
  2392. 142: uint32(0xb746f408),
  2393. 143: uint32(0x581442e9),
  2394. 144: uint32(0x80c8ba99),
  2395. 145: uint32(0x6f9a0c78),
  2396. 146: uint32(0x851cd11a),
  2397. 147: uint32(0x6a4e67fb),
  2398. 148: uint32(0x8b606d9f),
  2399. 149: uint32(0x6432db7e),
  2400. 150: uint32(0x8eb4061c),
  2401. 151: uint32(0x61e6b0fd),
  2402. 152: uint32(0x97991495),
  2403. 153: uint32(0x78cba274),
  2404. 154: uint32(0x924d7f16),
  2405. 155: uint32(0x7d1fc9f7),
  2406. 156: uint32(0x9c31c393),
  2407. 157: uint32(0x73637572),
  2408. 158: uint32(0x99e5a810),
  2409. 159: uint32(0x76b71ef1),
  2410. 160: uint32(0xf32d5eb1),
  2411. 161: uint32(0x1c7fe850),
  2412. 162: uint32(0xf6f93532),
  2413. 163: uint32(0x19ab83d3),
  2414. 164: uint32(0xf88589b7),
  2415. 165: uint32(0x17d73f56),
  2416. 166: uint32(0xfd51e234),
  2417. 167: uint32(0x120354d5),
  2418. 168: uint32(0xe47cf0bd),
  2419. 169: uint32(0x0b2e465c),
  2420. 170: uint32(0xe1a89b3e),
  2421. 171: uint32(0x0efa2ddf),
  2422. 172: uint32(0xefd427bb),
  2423. 173: uint32(0x0086915a),
  2424. 174: uint32(0xea004c38),
  2425. 175: uint32(0x0552fad9),
  2426. 176: uint32(0xdd8e02a9),
  2427. 177: uint32(0x32dcb448),
  2428. 178: uint32(0xd85a692a),
  2429. 179: uint32(0x3708dfcb),
  2430. 180: uint32(0xd626d5af),
  2431. 181: uint32(0x3974634e),
  2432. 182: uint32(0xd3f2be2c),
  2433. 183: uint32(0x3ca008cd),
  2434. 184: uint32(0xcadfaca5),
  2435. 185: uint32(0x258d1a44),
  2436. 186: uint32(0xcf0bc726),
  2437. 187: uint32(0x205971c7),
  2438. 188: uint32(0xc1777ba3),
  2439. 189: uint32(0x2e25cd42),
  2440. 190: uint32(0xc4a31020),
  2441. 191: uint32(0x2bf1a6c1),
  2442. 192: uint32(0x14e696e1),
  2443. 193: uint32(0xfbb42000),
  2444. 194: uint32(0x1132fd62),
  2445. 195: uint32(0xfe604b83),
  2446. 196: uint32(0x1f4e41e7),
  2447. 197: uint32(0xf01cf706),
  2448. 198: uint32(0x1a9a2a64),
  2449. 199: uint32(0xf5c89c85),
  2450. 200: uint32(0x03b738ed),
  2451. 201: uint32(0xece58e0c),
  2452. 202: uint32(0x0663536e),
  2453. 203: uint32(0xe931e58f),
  2454. 204: uint32(0x081fefeb),
  2455. 205: uint32(0xe74d590a),
  2456. 206: uint32(0x0dcb8468),
  2457. 207: uint32(0xe2993289),
  2458. 208: uint32(0x3a45caf9),
  2459. 209: uint32(0xd5177c18),
  2460. 210: uint32(0x3f91a17a),
  2461. 211: uint32(0xd0c3179b),
  2462. 212: uint32(0x31ed1dff),
  2463. 213: uint32(0xdebfab1e),
  2464. 214: uint32(0x3439767c),
  2465. 215: uint32(0xdb6bc09d),
  2466. 216: uint32(0x2d1464f5),
  2467. 217: uint32(0xc246d214),
  2468. 218: uint32(0x28c00f76),
  2469. 219: uint32(0xc792b997),
  2470. 220: uint32(0x26bcb3f3),
  2471. 221: uint32(0xc9ee0512),
  2472. 222: uint32(0x2368d870),
  2473. 223: uint32(0xcc3a6e91),
  2474. 224: uint32(0x49a02ed1),
  2475. 225: uint32(0xa6f29830),
  2476. 226: uint32(0x4c744552),
  2477. 227: uint32(0xa326f3b3),
  2478. 228: uint32(0x4208f9d7),
  2479. 229: uint32(0xad5a4f36),
  2480. 230: uint32(0x47dc9254),
  2481. 231: uint32(0xa88e24b5),
  2482. 232: uint32(0x5ef180dd),
  2483. 233: uint32(0xb1a3363c),
  2484. 234: uint32(0x5b25eb5e),
  2485. 235: uint32(0xb4775dbf),
  2486. 236: uint32(0x555957db),
  2487. 237: uint32(0xba0be13a),
  2488. 238: uint32(0x508d3c58),
  2489. 239: uint32(0xbfdf8ab9),
  2490. 240: uint32(0x670372c9),
  2491. 241: uint32(0x8851c428),
  2492. 242: uint32(0x62d7194a),
  2493. 243: uint32(0x8d85afab),
  2494. 244: uint32(0x6caba5cf),
  2495. 245: uint32(0x83f9132e),
  2496. 246: uint32(0x697fce4c),
  2497. 247: uint32(0x862d78ad),
  2498. 248: uint32(0x7052dcc5),
  2499. 249: uint32(0x9f006a24),
  2500. 250: uint32(0x7586b746),
  2501. 251: uint32(0x9ad401a7),
  2502. 252: uint32(0x7bfa0bc3),
  2503. 253: uint32(0x94a8bd22),
  2504. 254: uint32(0x7e2e6040),
  2505. 255: uint32(0x917cd6a1),
  2506. },
  2507. 3: {
  2508. 1: uint32(0x87a6cb43),
  2509. 2: uint32(0xd43c90c7),
  2510. 3: uint32(0x539a5b84),
  2511. 4: uint32(0x730827cf),
  2512. 5: uint32(0xf4aeec8c),
  2513. 6: uint32(0xa734b708),
  2514. 7: uint32(0x20927c4b),
  2515. 8: uint32(0xe6104f9e),
  2516. 9: uint32(0x61b684dd),
  2517. 10: uint32(0x322cdf59),
  2518. 11: uint32(0xb58a141a),
  2519. 12: uint32(0x95186851),
  2520. 13: uint32(0x12bea312),
  2521. 14: uint32(0x4124f896),
  2522. 15: uint32(0xc68233d5),
  2523. 16: uint32(0x1751997d),
  2524. 17: uint32(0x90f7523e),
  2525. 18: uint32(0xc36d09ba),
  2526. 19: uint32(0x44cbc2f9),
  2527. 20: uint32(0x6459beb2),
  2528. 21: uint32(0xe3ff75f1),
  2529. 22: uint32(0xb0652e75),
  2530. 23: uint32(0x37c3e536),
  2531. 24: uint32(0xf141d6e3),
  2532. 25: uint32(0x76e71da0),
  2533. 26: uint32(0x257d4624),
  2534. 27: uint32(0xa2db8d67),
  2535. 28: uint32(0x8249f12c),
  2536. 29: uint32(0x05ef3a6f),
  2537. 30: uint32(0x567561eb),
  2538. 31: uint32(0xd1d3aaa8),
  2539. 32: uint32(0x2ea332fa),
  2540. 33: uint32(0xa905f9b9),
  2541. 34: uint32(0xfa9fa23d),
  2542. 35: uint32(0x7d39697e),
  2543. 36: uint32(0x5dab1535),
  2544. 37: uint32(0xda0dde76),
  2545. 38: uint32(0x899785f2),
  2546. 39: uint32(0x0e314eb1),
  2547. 40: uint32(0xc8b37d64),
  2548. 41: uint32(0x4f15b627),
  2549. 42: uint32(0x1c8feda3),
  2550. 43: uint32(0x9b2926e0),
  2551. 44: uint32(0xbbbb5aab),
  2552. 45: uint32(0x3c1d91e8),
  2553. 46: uint32(0x6f87ca6c),
  2554. 47: uint32(0xe821012f),
  2555. 48: uint32(0x39f2ab87),
  2556. 49: uint32(0xbe5460c4),
  2557. 50: uint32(0xedce3b40),
  2558. 51: uint32(0x6a68f003),
  2559. 52: uint32(0x4afa8c48),
  2560. 53: uint32(0xcd5c470b),
  2561. 54: uint32(0x9ec61c8f),
  2562. 55: uint32(0x1960d7cc),
  2563. 56: uint32(0xdfe2e419),
  2564. 57: uint32(0x58442f5a),
  2565. 58: uint32(0x0bde74de),
  2566. 59: uint32(0x8c78bf9d),
  2567. 60: uint32(0xaceac3d6),
  2568. 61: uint32(0x2b4c0895),
  2569. 62: uint32(0x78d65311),
  2570. 63: uint32(0xff709852),
  2571. 64: uint32(0x5d4665f4),
  2572. 65: uint32(0xdae0aeb7),
  2573. 66: uint32(0x897af533),
  2574. 67: uint32(0x0edc3e70),
  2575. 68: uint32(0x2e4e423b),
  2576. 69: uint32(0xa9e88978),
  2577. 70: uint32(0xfa72d2fc),
  2578. 71: uint32(0x7dd419bf),
  2579. 72: uint32(0xbb562a6a),
  2580. 73: uint32(0x3cf0e129),
  2581. 74: uint32(0x6f6abaad),
  2582. 75: uint32(0xe8cc71ee),
  2583. 76: uint32(0xc85e0da5),
  2584. 77: uint32(0x4ff8c6e6),
  2585. 78: uint32(0x1c629d62),
  2586. 79: uint32(0x9bc45621),
  2587. 80: uint32(0x4a17fc89),
  2588. 81: uint32(0xcdb137ca),
  2589. 82: uint32(0x9e2b6c4e),
  2590. 83: uint32(0x198da70d),
  2591. 84: uint32(0x391fdb46),
  2592. 85: uint32(0xbeb91005),
  2593. 86: uint32(0xed234b81),
  2594. 87: uint32(0x6a8580c2),
  2595. 88: uint32(0xac07b317),
  2596. 89: uint32(0x2ba17854),
  2597. 90: uint32(0x783b23d0),
  2598. 91: uint32(0xff9de893),
  2599. 92: uint32(0xdf0f94d8),
  2600. 93: uint32(0x58a95f9b),
  2601. 94: uint32(0x0b33041f),
  2602. 95: uint32(0x8c95cf5c),
  2603. 96: uint32(0x73e5570e),
  2604. 97: uint32(0xf4439c4d),
  2605. 98: uint32(0xa7d9c7c9),
  2606. 99: uint32(0x207f0c8a),
  2607. 100: uint32(0x00ed70c1),
  2608. 101: uint32(0x874bbb82),
  2609. 102: uint32(0xd4d1e006),
  2610. 103: uint32(0x53772b45),
  2611. 104: uint32(0x95f51890),
  2612. 105: uint32(0x1253d3d3),
  2613. 106: uint32(0x41c98857),
  2614. 107: uint32(0xc66f4314),
  2615. 108: uint32(0xe6fd3f5f),
  2616. 109: uint32(0x615bf41c),
  2617. 110: uint32(0x32c1af98),
  2618. 111: uint32(0xb56764db),
  2619. 112: uint32(0x64b4ce73),
  2620. 113: uint32(0xe3120530),
  2621. 114: uint32(0xb0885eb4),
  2622. 115: uint32(0x372e95f7),
  2623. 116: uint32(0x17bce9bc),
  2624. 117: uint32(0x901a22ff),
  2625. 118: uint32(0xc380797b),
  2626. 119: uint32(0x4426b238),
  2627. 120: uint32(0x82a481ed),
  2628. 121: uint32(0x05024aae),
  2629. 122: uint32(0x5698112a),
  2630. 123: uint32(0xd13eda69),
  2631. 124: uint32(0xf1aca622),
  2632. 125: uint32(0x760a6d61),
  2633. 126: uint32(0x259036e5),
  2634. 127: uint32(0xa236fda6),
  2635. 128: uint32(0xba8ccbe8),
  2636. 129: uint32(0x3d2a00ab),
  2637. 130: uint32(0x6eb05b2f),
  2638. 131: uint32(0xe916906c),
  2639. 132: uint32(0xc984ec27),
  2640. 133: uint32(0x4e222764),
  2641. 134: uint32(0x1db87ce0),
  2642. 135: uint32(0x9a1eb7a3),
  2643. 136: uint32(0x5c9c8476),
  2644. 137: uint32(0xdb3a4f35),
  2645. 138: uint32(0x88a014b1),
  2646. 139: uint32(0x0f06dff2),
  2647. 140: uint32(0x2f94a3b9),
  2648. 141: uint32(0xa83268fa),
  2649. 142: uint32(0xfba8337e),
  2650. 143: uint32(0x7c0ef83d),
  2651. 144: uint32(0xaddd5295),
  2652. 145: uint32(0x2a7b99d6),
  2653. 146: uint32(0x79e1c252),
  2654. 147: uint32(0xfe470911),
  2655. 148: uint32(0xded5755a),
  2656. 149: uint32(0x5973be19),
  2657. 150: uint32(0x0ae9e59d),
  2658. 151: uint32(0x8d4f2ede),
  2659. 152: uint32(0x4bcd1d0b),
  2660. 153: uint32(0xcc6bd648),
  2661. 154: uint32(0x9ff18dcc),
  2662. 155: uint32(0x1857468f),
  2663. 156: uint32(0x38c53ac4),
  2664. 157: uint32(0xbf63f187),
  2665. 158: uint32(0xecf9aa03),
  2666. 159: uint32(0x6b5f6140),
  2667. 160: uint32(0x942ff912),
  2668. 161: uint32(0x13893251),
  2669. 162: uint32(0x401369d5),
  2670. 163: uint32(0xc7b5a296),
  2671. 164: uint32(0xe727dedd),
  2672. 165: uint32(0x6081159e),
  2673. 166: uint32(0x331b4e1a),
  2674. 167: uint32(0xb4bd8559),
  2675. 168: uint32(0x723fb68c),
  2676. 169: uint32(0xf5997dcf),
  2677. 170: uint32(0xa603264b),
  2678. 171: uint32(0x21a5ed08),
  2679. 172: uint32(0x01379143),
  2680. 173: uint32(0x86915a00),
  2681. 174: uint32(0xd50b0184),
  2682. 175: uint32(0x52adcac7),
  2683. 176: uint32(0x837e606f),
  2684. 177: uint32(0x04d8ab2c),
  2685. 178: uint32(0x5742f0a8),
  2686. 179: uint32(0xd0e43beb),
  2687. 180: uint32(0xf07647a0),
  2688. 181: uint32(0x77d08ce3),
  2689. 182: uint32(0x244ad767),
  2690. 183: uint32(0xa3ec1c24),
  2691. 184: uint32(0x656e2ff1),
  2692. 185: uint32(0xe2c8e4b2),
  2693. 186: uint32(0xb152bf36),
  2694. 187: uint32(0x36f47475),
  2695. 188: uint32(0x1666083e),
  2696. 189: uint32(0x91c0c37d),
  2697. 190: uint32(0xc25a98f9),
  2698. 191: uint32(0x45fc53ba),
  2699. 192: uint32(0xe7caae1c),
  2700. 193: uint32(0x606c655f),
  2701. 194: uint32(0x33f63edb),
  2702. 195: uint32(0xb450f598),
  2703. 196: uint32(0x94c289d3),
  2704. 197: uint32(0x13644290),
  2705. 198: uint32(0x40fe1914),
  2706. 199: uint32(0xc758d257),
  2707. 200: uint32(0x01dae182),
  2708. 201: uint32(0x867c2ac1),
  2709. 202: uint32(0xd5e67145),
  2710. 203: uint32(0x5240ba06),
  2711. 204: uint32(0x72d2c64d),
  2712. 205: uint32(0xf5740d0e),
  2713. 206: uint32(0xa6ee568a),
  2714. 207: uint32(0x21489dc9),
  2715. 208: uint32(0xf09b3761),
  2716. 209: uint32(0x773dfc22),
  2717. 210: uint32(0x24a7a7a6),
  2718. 211: uint32(0xa3016ce5),
  2719. 212: uint32(0x839310ae),
  2720. 213: uint32(0x0435dbed),
  2721. 214: uint32(0x57af8069),
  2722. 215: uint32(0xd0094b2a),
  2723. 216: uint32(0x168b78ff),
  2724. 217: uint32(0x912db3bc),
  2725. 218: uint32(0xc2b7e838),
  2726. 219: uint32(0x4511237b),
  2727. 220: uint32(0x65835f30),
  2728. 221: uint32(0xe2259473),
  2729. 222: uint32(0xb1bfcff7),
  2730. 223: uint32(0x361904b4),
  2731. 224: uint32(0xc9699ce6),
  2732. 225: uint32(0x4ecf57a5),
  2733. 226: uint32(0x1d550c21),
  2734. 227: uint32(0x9af3c762),
  2735. 228: uint32(0xba61bb29),
  2736. 229: uint32(0x3dc7706a),
  2737. 230: uint32(0x6e5d2bee),
  2738. 231: uint32(0xe9fbe0ad),
  2739. 232: uint32(0x2f79d378),
  2740. 233: uint32(0xa8df183b),
  2741. 234: uint32(0xfb4543bf),
  2742. 235: uint32(0x7ce388fc),
  2743. 236: uint32(0x5c71f4b7),
  2744. 237: uint32(0xdbd73ff4),
  2745. 238: uint32(0x884d6470),
  2746. 239: uint32(0x0febaf33),
  2747. 240: uint32(0xde38059b),
  2748. 241: uint32(0x599eced8),
  2749. 242: uint32(0x0a04955c),
  2750. 243: uint32(0x8da25e1f),
  2751. 244: uint32(0xad302254),
  2752. 245: uint32(0x2a96e917),
  2753. 246: uint32(0x790cb293),
  2754. 247: uint32(0xfeaa79d0),
  2755. 248: uint32(0x38284a05),
  2756. 249: uint32(0xbf8e8146),
  2757. 250: uint32(0xec14dac2),
  2758. 251: uint32(0x6bb21181),
  2759. 252: uint32(0x4b206dca),
  2760. 253: uint32(0xcc86a689),
  2761. 254: uint32(0x9f1cfd0d),
  2762. 255: uint32(0x18ba364e),
  2763. },
  2764. }
  2765. var _crc_braid_big_table = [4][256]Tz_word_t{
  2766. 0: {
  2767. 1: uint32(0x43cba687),
  2768. 2: uint32(0xc7903cd4),
  2769. 3: uint32(0x845b9a53),
  2770. 4: uint32(0xcf270873),
  2771. 5: uint32(0x8cecaef4),
  2772. 6: uint32(0x08b734a7),
  2773. 7: uint32(0x4b7c9220),
  2774. 8: uint32(0x9e4f10e6),
  2775. 9: uint32(0xdd84b661),
  2776. 10: uint32(0x59df2c32),
  2777. 11: uint32(0x1a148ab5),
  2778. 12: uint32(0x51681895),
  2779. 13: uint32(0x12a3be12),
  2780. 14: uint32(0x96f82441),
  2781. 15: uint32(0xd53382c6),
  2782. 16: uint32(0x7d995117),
  2783. 17: uint32(0x3e52f790),
  2784. 18: uint32(0xba096dc3),
  2785. 19: uint32(0xf9c2cb44),
  2786. 20: uint32(0xb2be5964),
  2787. 21: uint32(0xf175ffe3),
  2788. 22: uint32(0x752e65b0),
  2789. 23: uint32(0x36e5c337),
  2790. 24: uint32(0xe3d641f1),
  2791. 25: uint32(0xa01de776),
  2792. 26: uint32(0x24467d25),
  2793. 27: uint32(0x678ddba2),
  2794. 28: uint32(0x2cf14982),
  2795. 29: uint32(0x6f3aef05),
  2796. 30: uint32(0xeb617556),
  2797. 31: uint32(0xa8aad3d1),
  2798. 32: uint32(0xfa32a32e),
  2799. 33: uint32(0xb9f905a9),
  2800. 34: uint32(0x3da29ffa),
  2801. 35: uint32(0x7e69397d),
  2802. 36: uint32(0x3515ab5d),
  2803. 37: uint32(0x76de0dda),
  2804. 38: uint32(0xf2859789),
  2805. 39: uint32(0xb14e310e),
  2806. 40: uint32(0x647db3c8),
  2807. 41: uint32(0x27b6154f),
  2808. 42: uint32(0xa3ed8f1c),
  2809. 43: uint32(0xe026299b),
  2810. 44: uint32(0xab5abbbb),
  2811. 45: uint32(0xe8911d3c),
  2812. 46: uint32(0x6cca876f),
  2813. 47: uint32(0x2f0121e8),
  2814. 48: uint32(0x87abf239),
  2815. 49: uint32(0xc46054be),
  2816. 50: uint32(0x403bceed),
  2817. 51: uint32(0x03f0686a),
  2818. 52: uint32(0x488cfa4a),
  2819. 53: uint32(0x0b475ccd),
  2820. 54: uint32(0x8f1cc69e),
  2821. 55: uint32(0xccd76019),
  2822. 56: uint32(0x19e4e2df),
  2823. 57: uint32(0x5a2f4458),
  2824. 58: uint32(0xde74de0b),
  2825. 59: uint32(0x9dbf788c),
  2826. 60: uint32(0xd6c3eaac),
  2827. 61: uint32(0x95084c2b),
  2828. 62: uint32(0x1153d678),
  2829. 63: uint32(0x529870ff),
  2830. 64: uint32(0xf465465d),
  2831. 65: uint32(0xb7aee0da),
  2832. 66: uint32(0x33f57a89),
  2833. 67: uint32(0x703edc0e),
  2834. 68: uint32(0x3b424e2e),
  2835. 69: uint32(0x7889e8a9),
  2836. 70: uint32(0xfcd272fa),
  2837. 71: uint32(0xbf19d47d),
  2838. 72: uint32(0x6a2a56bb),
  2839. 73: uint32(0x29e1f03c),
  2840. 74: uint32(0xadba6a6f),
  2841. 75: uint32(0xee71cce8),
  2842. 76: uint32(0xa50d5ec8),
  2843. 77: uint32(0xe6c6f84f),
  2844. 78: uint32(0x629d621c),
  2845. 79: uint32(0x2156c49b),
  2846. 80: uint32(0x89fc174a),
  2847. 81: uint32(0xca37b1cd),
  2848. 82: uint32(0x4e6c2b9e),
  2849. 83: uint32(0x0da78d19),
  2850. 84: uint32(0x46db1f39),
  2851. 85: uint32(0x0510b9be),
  2852. 86: uint32(0x814b23ed),
  2853. 87: uint32(0xc280856a),
  2854. 88: uint32(0x17b307ac),
  2855. 89: uint32(0x5478a12b),
  2856. 90: uint32(0xd0233b78),
  2857. 91: uint32(0x93e89dff),
  2858. 92: uint32(0xd8940fdf),
  2859. 93: uint32(0x9b5fa958),
  2860. 94: uint32(0x1f04330b),
  2861. 95: uint32(0x5ccf958c),
  2862. 96: uint32(0x0e57e573),
  2863. 97: uint32(0x4d9c43f4),
  2864. 98: uint32(0xc9c7d9a7),
  2865. 99: uint32(0x8a0c7f20),
  2866. 100: uint32(0xc170ed00),
  2867. 101: uint32(0x82bb4b87),
  2868. 102: uint32(0x06e0d1d4),
  2869. 103: uint32(0x452b7753),
  2870. 104: uint32(0x9018f595),
  2871. 105: uint32(0xd3d35312),
  2872. 106: uint32(0x5788c941),
  2873. 107: uint32(0x14436fc6),
  2874. 108: uint32(0x5f3ffde6),
  2875. 109: uint32(0x1cf45b61),
  2876. 110: uint32(0x98afc132),
  2877. 111: uint32(0xdb6467b5),
  2878. 112: uint32(0x73ceb464),
  2879. 113: uint32(0x300512e3),
  2880. 114: uint32(0xb45e88b0),
  2881. 115: uint32(0xf7952e37),
  2882. 116: uint32(0xbce9bc17),
  2883. 117: uint32(0xff221a90),
  2884. 118: uint32(0x7b7980c3),
  2885. 119: uint32(0x38b22644),
  2886. 120: uint32(0xed81a482),
  2887. 121: uint32(0xae4a0205),
  2888. 122: uint32(0x2a119856),
  2889. 123: uint32(0x69da3ed1),
  2890. 124: uint32(0x22a6acf1),
  2891. 125: uint32(0x616d0a76),
  2892. 126: uint32(0xe5369025),
  2893. 127: uint32(0xa6fd36a2),
  2894. 128: uint32(0xe8cb8cba),
  2895. 129: uint32(0xab002a3d),
  2896. 130: uint32(0x2f5bb06e),
  2897. 131: uint32(0x6c9016e9),
  2898. 132: uint32(0x27ec84c9),
  2899. 133: uint32(0x6427224e),
  2900. 134: uint32(0xe07cb81d),
  2901. 135: uint32(0xa3b71e9a),
  2902. 136: uint32(0x76849c5c),
  2903. 137: uint32(0x354f3adb),
  2904. 138: uint32(0xb114a088),
  2905. 139: uint32(0xf2df060f),
  2906. 140: uint32(0xb9a3942f),
  2907. 141: uint32(0xfa6832a8),
  2908. 142: uint32(0x7e33a8fb),
  2909. 143: uint32(0x3df80e7c),
  2910. 144: uint32(0x9552ddad),
  2911. 145: uint32(0xd6997b2a),
  2912. 146: uint32(0x52c2e179),
  2913. 147: uint32(0x110947fe),
  2914. 148: uint32(0x5a75d5de),
  2915. 149: uint32(0x19be7359),
  2916. 150: uint32(0x9de5e90a),
  2917. 151: uint32(0xde2e4f8d),
  2918. 152: uint32(0x0b1dcd4b),
  2919. 153: uint32(0x48d66bcc),
  2920. 154: uint32(0xcc8df19f),
  2921. 155: uint32(0x8f465718),
  2922. 156: uint32(0xc43ac538),
  2923. 157: uint32(0x87f163bf),
  2924. 158: uint32(0x03aaf9ec),
  2925. 159: uint32(0x40615f6b),
  2926. 160: uint32(0x12f92f94),
  2927. 161: uint32(0x51328913),
  2928. 162: uint32(0xd5691340),
  2929. 163: uint32(0x96a2b5c7),
  2930. 164: uint32(0xddde27e7),
  2931. 165: uint32(0x9e158160),
  2932. 166: uint32(0x1a4e1b33),
  2933. 167: uint32(0x5985bdb4),
  2934. 168: uint32(0x8cb63f72),
  2935. 169: uint32(0xcf7d99f5),
  2936. 170: uint32(0x4b2603a6),
  2937. 171: uint32(0x08eda521),
  2938. 172: uint32(0x43913701),
  2939. 173: uint32(0x005a9186),
  2940. 174: uint32(0x84010bd5),
  2941. 175: uint32(0xc7caad52),
  2942. 176: uint32(0x6f607e83),
  2943. 177: uint32(0x2cabd804),
  2944. 178: uint32(0xa8f04257),
  2945. 179: uint32(0xeb3be4d0),
  2946. 180: uint32(0xa04776f0),
  2947. 181: uint32(0xe38cd077),
  2948. 182: uint32(0x67d74a24),
  2949. 183: uint32(0x241ceca3),
  2950. 184: uint32(0xf12f6e65),
  2951. 185: uint32(0xb2e4c8e2),
  2952. 186: uint32(0x36bf52b1),
  2953. 187: uint32(0x7574f436),
  2954. 188: uint32(0x3e086616),
  2955. 189: uint32(0x7dc3c091),
  2956. 190: uint32(0xf9985ac2),
  2957. 191: uint32(0xba53fc45),
  2958. 192: uint32(0x1caecae7),
  2959. 193: uint32(0x5f656c60),
  2960. 194: uint32(0xdb3ef633),
  2961. 195: uint32(0x98f550b4),
  2962. 196: uint32(0xd389c294),
  2963. 197: uint32(0x90426413),
  2964. 198: uint32(0x1419fe40),
  2965. 199: uint32(0x57d258c7),
  2966. 200: uint32(0x82e1da01),
  2967. 201: uint32(0xc12a7c86),
  2968. 202: uint32(0x4571e6d5),
  2969. 203: uint32(0x06ba4052),
  2970. 204: uint32(0x4dc6d272),
  2971. 205: uint32(0x0e0d74f5),
  2972. 206: uint32(0x8a56eea6),
  2973. 207: uint32(0xc99d4821),
  2974. 208: uint32(0x61379bf0),
  2975. 209: uint32(0x22fc3d77),
  2976. 210: uint32(0xa6a7a724),
  2977. 211: uint32(0xe56c01a3),
  2978. 212: uint32(0xae109383),
  2979. 213: uint32(0xeddb3504),
  2980. 214: uint32(0x6980af57),
  2981. 215: uint32(0x2a4b09d0),
  2982. 216: uint32(0xff788b16),
  2983. 217: uint32(0xbcb32d91),
  2984. 218: uint32(0x38e8b7c2),
  2985. 219: uint32(0x7b231145),
  2986. 220: uint32(0x305f8365),
  2987. 221: uint32(0x739425e2),
  2988. 222: uint32(0xf7cfbfb1),
  2989. 223: uint32(0xb4041936),
  2990. 224: uint32(0xe69c69c9),
  2991. 225: uint32(0xa557cf4e),
  2992. 226: uint32(0x210c551d),
  2993. 227: uint32(0x62c7f39a),
  2994. 228: uint32(0x29bb61ba),
  2995. 229: uint32(0x6a70c73d),
  2996. 230: uint32(0xee2b5d6e),
  2997. 231: uint32(0xade0fbe9),
  2998. 232: uint32(0x78d3792f),
  2999. 233: uint32(0x3b18dfa8),
  3000. 234: uint32(0xbf4345fb),
  3001. 235: uint32(0xfc88e37c),
  3002. 236: uint32(0xb7f4715c),
  3003. 237: uint32(0xf43fd7db),
  3004. 238: uint32(0x70644d88),
  3005. 239: uint32(0x33afeb0f),
  3006. 240: uint32(0x9b0538de),
  3007. 241: uint32(0xd8ce9e59),
  3008. 242: uint32(0x5c95040a),
  3009. 243: uint32(0x1f5ea28d),
  3010. 244: uint32(0x542230ad),
  3011. 245: uint32(0x17e9962a),
  3012. 246: uint32(0x93b20c79),
  3013. 247: uint32(0xd079aafe),
  3014. 248: uint32(0x054a2838),
  3015. 249: uint32(0x46818ebf),
  3016. 250: uint32(0xc2da14ec),
  3017. 251: uint32(0x8111b26b),
  3018. 252: uint32(0xca6d204b),
  3019. 253: uint32(0x89a686cc),
  3020. 254: uint32(0x0dfd1c9f),
  3021. 255: uint32(0x4e36ba18),
  3022. },
  3023. 1: {
  3024. 1: uint32(0xe1b652ef),
  3025. 2: uint32(0x836bd405),
  3026. 3: uint32(0x62dd86ea),
  3027. 4: uint32(0x06d7a80b),
  3028. 5: uint32(0xe761fae4),
  3029. 6: uint32(0x85bc7c0e),
  3030. 7: uint32(0x640a2ee1),
  3031. 8: uint32(0x0cae5117),
  3032. 9: uint32(0xed1803f8),
  3033. 10: uint32(0x8fc58512),
  3034. 11: uint32(0x6e73d7fd),
  3035. 12: uint32(0x0a79f91c),
  3036. 13: uint32(0xebcfabf3),
  3037. 14: uint32(0x89122d19),
  3038. 15: uint32(0x68a47ff6),
  3039. 16: uint32(0x185ca32e),
  3040. 17: uint32(0xf9eaf1c1),
  3041. 18: uint32(0x9b37772b),
  3042. 19: uint32(0x7a8125c4),
  3043. 20: uint32(0x1e8b0b25),
  3044. 21: uint32(0xff3d59ca),
  3045. 22: uint32(0x9de0df20),
  3046. 23: uint32(0x7c568dcf),
  3047. 24: uint32(0x14f2f239),
  3048. 25: uint32(0xf544a0d6),
  3049. 26: uint32(0x9799263c),
  3050. 27: uint32(0x762f74d3),
  3051. 28: uint32(0x12255a32),
  3052. 29: uint32(0xf39308dd),
  3053. 30: uint32(0x914e8e37),
  3054. 31: uint32(0x70f8dcd8),
  3055. 32: uint32(0x30b8465d),
  3056. 33: uint32(0xd10e14b2),
  3057. 34: uint32(0xb3d39258),
  3058. 35: uint32(0x5265c0b7),
  3059. 36: uint32(0x366fee56),
  3060. 37: uint32(0xd7d9bcb9),
  3061. 38: uint32(0xb5043a53),
  3062. 39: uint32(0x54b268bc),
  3063. 40: uint32(0x3c16174a),
  3064. 41: uint32(0xdda045a5),
  3065. 42: uint32(0xbf7dc34f),
  3066. 43: uint32(0x5ecb91a0),
  3067. 44: uint32(0x3ac1bf41),
  3068. 45: uint32(0xdb77edae),
  3069. 46: uint32(0xb9aa6b44),
  3070. 47: uint32(0x581c39ab),
  3071. 48: uint32(0x28e4e573),
  3072. 49: uint32(0xc952b79c),
  3073. 50: uint32(0xab8f3176),
  3074. 51: uint32(0x4a396399),
  3075. 52: uint32(0x2e334d78),
  3076. 53: uint32(0xcf851f97),
  3077. 54: uint32(0xad58997d),
  3078. 55: uint32(0x4ceecb92),
  3079. 56: uint32(0x244ab464),
  3080. 57: uint32(0xc5fce68b),
  3081. 58: uint32(0xa7216061),
  3082. 59: uint32(0x4697328e),
  3083. 60: uint32(0x229d1c6f),
  3084. 61: uint32(0xc32b4e80),
  3085. 62: uint32(0xa1f6c86a),
  3086. 63: uint32(0x40409a85),
  3087. 64: uint32(0x60708dba),
  3088. 65: uint32(0x81c6df55),
  3089. 66: uint32(0xe31b59bf),
  3090. 67: uint32(0x02ad0b50),
  3091. 68: uint32(0x66a725b1),
  3092. 69: uint32(0x8711775e),
  3093. 70: uint32(0xe5ccf1b4),
  3094. 71: uint32(0x047aa35b),
  3095. 72: uint32(0x6cdedcad),
  3096. 73: uint32(0x8d688e42),
  3097. 74: uint32(0xefb508a8),
  3098. 75: uint32(0x0e035a47),
  3099. 76: uint32(0x6a0974a6),
  3100. 77: uint32(0x8bbf2649),
  3101. 78: uint32(0xe962a0a3),
  3102. 79: uint32(0x08d4f24c),
  3103. 80: uint32(0x782c2e94),
  3104. 81: uint32(0x999a7c7b),
  3105. 82: uint32(0xfb47fa91),
  3106. 83: uint32(0x1af1a87e),
  3107. 84: uint32(0x7efb869f),
  3108. 85: uint32(0x9f4dd470),
  3109. 86: uint32(0xfd90529a),
  3110. 87: uint32(0x1c260075),
  3111. 88: uint32(0x74827f83),
  3112. 89: uint32(0x95342d6c),
  3113. 90: uint32(0xf7e9ab86),
  3114. 91: uint32(0x165ff969),
  3115. 92: uint32(0x7255d788),
  3116. 93: uint32(0x93e38567),
  3117. 94: uint32(0xf13e038d),
  3118. 95: uint32(0x10885162),
  3119. 96: uint32(0x50c8cbe7),
  3120. 97: uint32(0xb17e9908),
  3121. 98: uint32(0xd3a31fe2),
  3122. 99: uint32(0x32154d0d),
  3123. 100: uint32(0x561f63ec),
  3124. 101: uint32(0xb7a93103),
  3125. 102: uint32(0xd574b7e9),
  3126. 103: uint32(0x34c2e506),
  3127. 104: uint32(0x5c669af0),
  3128. 105: uint32(0xbdd0c81f),
  3129. 106: uint32(0xdf0d4ef5),
  3130. 107: uint32(0x3ebb1c1a),
  3131. 108: uint32(0x5ab132fb),
  3132. 109: uint32(0xbb076014),
  3133. 110: uint32(0xd9dae6fe),
  3134. 111: uint32(0x386cb411),
  3135. 112: uint32(0x489468c9),
  3136. 113: uint32(0xa9223a26),
  3137. 114: uint32(0xcbffbccc),
  3138. 115: uint32(0x2a49ee23),
  3139. 116: uint32(0x4e43c0c2),
  3140. 117: uint32(0xaff5922d),
  3141. 118: uint32(0xcd2814c7),
  3142. 119: uint32(0x2c9e4628),
  3143. 120: uint32(0x443a39de),
  3144. 121: uint32(0xa58c6b31),
  3145. 122: uint32(0xc751eddb),
  3146. 123: uint32(0x26e7bf34),
  3147. 124: uint32(0x42ed91d5),
  3148. 125: uint32(0xa35bc33a),
  3149. 126: uint32(0xc18645d0),
  3150. 127: uint32(0x2030173f),
  3151. 128: uint32(0x81e66bae),
  3152. 129: uint32(0x60503941),
  3153. 130: uint32(0x028dbfab),
  3154. 131: uint32(0xe33bed44),
  3155. 132: uint32(0x8731c3a5),
  3156. 133: uint32(0x6687914a),
  3157. 134: uint32(0x045a17a0),
  3158. 135: uint32(0xe5ec454f),
  3159. 136: uint32(0x8d483ab9),
  3160. 137: uint32(0x6cfe6856),
  3161. 138: uint32(0x0e23eebc),
  3162. 139: uint32(0xef95bc53),
  3163. 140: uint32(0x8b9f92b2),
  3164. 141: uint32(0x6a29c05d),
  3165. 142: uint32(0x08f446b7),
  3166. 143: uint32(0xe9421458),
  3167. 144: uint32(0x99bac880),
  3168. 145: uint32(0x780c9a6f),
  3169. 146: uint32(0x1ad11c85),
  3170. 147: uint32(0xfb674e6a),
  3171. 148: uint32(0x9f6d608b),
  3172. 149: uint32(0x7edb3264),
  3173. 150: uint32(0x1c06b48e),
  3174. 151: uint32(0xfdb0e661),
  3175. 152: uint32(0x95149997),
  3176. 153: uint32(0x74a2cb78),
  3177. 154: uint32(0x167f4d92),
  3178. 155: uint32(0xf7c91f7d),
  3179. 156: uint32(0x93c3319c),
  3180. 157: uint32(0x72756373),
  3181. 158: uint32(0x10a8e599),
  3182. 159: uint32(0xf11eb776),
  3183. 160: uint32(0xb15e2df3),
  3184. 161: uint32(0x50e87f1c),
  3185. 162: uint32(0x3235f9f6),
  3186. 163: uint32(0xd383ab19),
  3187. 164: uint32(0xb78985f8),
  3188. 165: uint32(0x563fd717),
  3189. 166: uint32(0x34e251fd),
  3190. 167: uint32(0xd5540312),
  3191. 168: uint32(0xbdf07ce4),
  3192. 169: uint32(0x5c462e0b),
  3193. 170: uint32(0x3e9ba8e1),
  3194. 171: uint32(0xdf2dfa0e),
  3195. 172: uint32(0xbb27d4ef),
  3196. 173: uint32(0x5a918600),
  3197. 174: uint32(0x384c00ea),
  3198. 175: uint32(0xd9fa5205),
  3199. 176: uint32(0xa9028edd),
  3200. 177: uint32(0x48b4dc32),
  3201. 178: uint32(0x2a695ad8),
  3202. 179: uint32(0xcbdf0837),
  3203. 180: uint32(0xafd526d6),
  3204. 181: uint32(0x4e637439),
  3205. 182: uint32(0x2cbef2d3),
  3206. 183: uint32(0xcd08a03c),
  3207. 184: uint32(0xa5acdfca),
  3208. 185: uint32(0x441a8d25),
  3209. 186: uint32(0x26c70bcf),
  3210. 187: uint32(0xc7715920),
  3211. 188: uint32(0xa37b77c1),
  3212. 189: uint32(0x42cd252e),
  3213. 190: uint32(0x2010a3c4),
  3214. 191: uint32(0xc1a6f12b),
  3215. 192: uint32(0xe196e614),
  3216. 193: uint32(0x0020b4fb),
  3217. 194: uint32(0x62fd3211),
  3218. 195: uint32(0x834b60fe),
  3219. 196: uint32(0xe7414e1f),
  3220. 197: uint32(0x06f71cf0),
  3221. 198: uint32(0x642a9a1a),
  3222. 199: uint32(0x859cc8f5),
  3223. 200: uint32(0xed38b703),
  3224. 201: uint32(0x0c8ee5ec),
  3225. 202: uint32(0x6e536306),
  3226. 203: uint32(0x8fe531e9),
  3227. 204: uint32(0xebef1f08),
  3228. 205: uint32(0x0a594de7),
  3229. 206: uint32(0x6884cb0d),
  3230. 207: uint32(0x893299e2),
  3231. 208: uint32(0xf9ca453a),
  3232. 209: uint32(0x187c17d5),
  3233. 210: uint32(0x7aa1913f),
  3234. 211: uint32(0x9b17c3d0),
  3235. 212: uint32(0xff1ded31),
  3236. 213: uint32(0x1eabbfde),
  3237. 214: uint32(0x7c763934),
  3238. 215: uint32(0x9dc06bdb),
  3239. 216: uint32(0xf564142d),
  3240. 217: uint32(0x14d246c2),
  3241. 218: uint32(0x760fc028),
  3242. 219: uint32(0x97b992c7),
  3243. 220: uint32(0xf3b3bc26),
  3244. 221: uint32(0x1205eec9),
  3245. 222: uint32(0x70d86823),
  3246. 223: uint32(0x916e3acc),
  3247. 224: uint32(0xd12ea049),
  3248. 225: uint32(0x3098f2a6),
  3249. 226: uint32(0x5245744c),
  3250. 227: uint32(0xb3f326a3),
  3251. 228: uint32(0xd7f90842),
  3252. 229: uint32(0x364f5aad),
  3253. 230: uint32(0x5492dc47),
  3254. 231: uint32(0xb5248ea8),
  3255. 232: uint32(0xdd80f15e),
  3256. 233: uint32(0x3c36a3b1),
  3257. 234: uint32(0x5eeb255b),
  3258. 235: uint32(0xbf5d77b4),
  3259. 236: uint32(0xdb575955),
  3260. 237: uint32(0x3ae10bba),
  3261. 238: uint32(0x583c8d50),
  3262. 239: uint32(0xb98adfbf),
  3263. 240: uint32(0xc9720367),
  3264. 241: uint32(0x28c45188),
  3265. 242: uint32(0x4a19d762),
  3266. 243: uint32(0xabaf858d),
  3267. 244: uint32(0xcfa5ab6c),
  3268. 245: uint32(0x2e13f983),
  3269. 246: uint32(0x4cce7f69),
  3270. 247: uint32(0xad782d86),
  3271. 248: uint32(0xc5dc5270),
  3272. 249: uint32(0x246a009f),
  3273. 250: uint32(0x46b78675),
  3274. 251: uint32(0xa701d49a),
  3275. 252: uint32(0xc30bfa7b),
  3276. 253: uint32(0x22bda894),
  3277. 254: uint32(0x40602e7e),
  3278. 255: uint32(0xa1d67c91),
  3279. },
  3280. 2: {
  3281. 1: uint32(0x5880e2d7),
  3282. 2: uint32(0xf106b474),
  3283. 3: uint32(0xa98656a3),
  3284. 4: uint32(0xe20d68e9),
  3285. 5: uint32(0xba8d8a3e),
  3286. 6: uint32(0x130bdc9d),
  3287. 7: uint32(0x4b8b3e4a),
  3288. 8: uint32(0x851da109),
  3289. 9: uint32(0xdd9d43de),
  3290. 10: uint32(0x741b157d),
  3291. 11: uint32(0x2c9bf7aa),
  3292. 12: uint32(0x6710c9e0),
  3293. 13: uint32(0x3f902b37),
  3294. 14: uint32(0x96167d94),
  3295. 15: uint32(0xce969f43),
  3296. 16: uint32(0x0a3b4213),
  3297. 17: uint32(0x52bba0c4),
  3298. 18: uint32(0xfb3df667),
  3299. 19: uint32(0xa3bd14b0),
  3300. 20: uint32(0xe8362afa),
  3301. 21: uint32(0xb0b6c82d),
  3302. 22: uint32(0x19309e8e),
  3303. 23: uint32(0x41b07c59),
  3304. 24: uint32(0x8f26e31a),
  3305. 25: uint32(0xd7a601cd),
  3306. 26: uint32(0x7e20576e),
  3307. 27: uint32(0x26a0b5b9),
  3308. 28: uint32(0x6d2b8bf3),
  3309. 29: uint32(0x35ab6924),
  3310. 30: uint32(0x9c2d3f87),
  3311. 31: uint32(0xc4addd50),
  3312. 32: uint32(0x14768426),
  3313. 33: uint32(0x4cf666f1),
  3314. 34: uint32(0xe5703052),
  3315. 35: uint32(0xbdf0d285),
  3316. 36: uint32(0xf67beccf),
  3317. 37: uint32(0xaefb0e18),
  3318. 38: uint32(0x077d58bb),
  3319. 39: uint32(0x5ffdba6c),
  3320. 40: uint32(0x916b252f),
  3321. 41: uint32(0xc9ebc7f8),
  3322. 42: uint32(0x606d915b),
  3323. 43: uint32(0x38ed738c),
  3324. 44: uint32(0x73664dc6),
  3325. 45: uint32(0x2be6af11),
  3326. 46: uint32(0x8260f9b2),
  3327. 47: uint32(0xdae01b65),
  3328. 48: uint32(0x1e4dc635),
  3329. 49: uint32(0x46cd24e2),
  3330. 50: uint32(0xef4b7241),
  3331. 51: uint32(0xb7cb9096),
  3332. 52: uint32(0xfc40aedc),
  3333. 53: uint32(0xa4c04c0b),
  3334. 54: uint32(0x0d461aa8),
  3335. 55: uint32(0x55c6f87f),
  3336. 56: uint32(0x9b50673c),
  3337. 57: uint32(0xc3d085eb),
  3338. 58: uint32(0x6a56d348),
  3339. 59: uint32(0x32d6319f),
  3340. 60: uint32(0x795d0fd5),
  3341. 61: uint32(0x21dded02),
  3342. 62: uint32(0x885bbba1),
  3343. 63: uint32(0xd0db5976),
  3344. 64: uint32(0x28ec084d),
  3345. 65: uint32(0x706cea9a),
  3346. 66: uint32(0xd9eabc39),
  3347. 67: uint32(0x816a5eee),
  3348. 68: uint32(0xcae160a4),
  3349. 69: uint32(0x92618273),
  3350. 70: uint32(0x3be7d4d0),
  3351. 71: uint32(0x63673607),
  3352. 72: uint32(0xadf1a944),
  3353. 73: uint32(0xf5714b93),
  3354. 74: uint32(0x5cf71d30),
  3355. 75: uint32(0x0477ffe7),
  3356. 76: uint32(0x4ffcc1ad),
  3357. 77: uint32(0x177c237a),
  3358. 78: uint32(0xbefa75d9),
  3359. 79: uint32(0xe67a970e),
  3360. 80: uint32(0x22d74a5e),
  3361. 81: uint32(0x7a57a889),
  3362. 82: uint32(0xd3d1fe2a),
  3363. 83: uint32(0x8b511cfd),
  3364. 84: uint32(0xc0da22b7),
  3365. 85: uint32(0x985ac060),
  3366. 86: uint32(0x31dc96c3),
  3367. 87: uint32(0x695c7414),
  3368. 88: uint32(0xa7caeb57),
  3369. 89: uint32(0xff4a0980),
  3370. 90: uint32(0x56cc5f23),
  3371. 91: uint32(0x0e4cbdf4),
  3372. 92: uint32(0x45c783be),
  3373. 93: uint32(0x1d476169),
  3374. 94: uint32(0xb4c137ca),
  3375. 95: uint32(0xec41d51d),
  3376. 96: uint32(0x3c9a8c6b),
  3377. 97: uint32(0x641a6ebc),
  3378. 98: uint32(0xcd9c381f),
  3379. 99: uint32(0x951cdac8),
  3380. 100: uint32(0xde97e482),
  3381. 101: uint32(0x86170655),
  3382. 102: uint32(0x2f9150f6),
  3383. 103: uint32(0x7711b221),
  3384. 104: uint32(0xb9872d62),
  3385. 105: uint32(0xe107cfb5),
  3386. 106: uint32(0x48819916),
  3387. 107: uint32(0x10017bc1),
  3388. 108: uint32(0x5b8a458b),
  3389. 109: uint32(0x030aa75c),
  3390. 110: uint32(0xaa8cf1ff),
  3391. 111: uint32(0xf20c1328),
  3392. 112: uint32(0x36a1ce78),
  3393. 113: uint32(0x6e212caf),
  3394. 114: uint32(0xc7a77a0c),
  3395. 115: uint32(0x9f2798db),
  3396. 116: uint32(0xd4aca691),
  3397. 117: uint32(0x8c2c4446),
  3398. 118: uint32(0x25aa12e5),
  3399. 119: uint32(0x7d2af032),
  3400. 120: uint32(0xb3bc6f71),
  3401. 121: uint32(0xeb3c8da6),
  3402. 122: uint32(0x42badb05),
  3403. 123: uint32(0x1a3a39d2),
  3404. 124: uint32(0x51b10798),
  3405. 125: uint32(0x0931e54f),
  3406. 126: uint32(0xa0b7b3ec),
  3407. 127: uint32(0xf837513b),
  3408. 128: uint32(0x50d8119a),
  3409. 129: uint32(0x0858f34d),
  3410. 130: uint32(0xa1dea5ee),
  3411. 131: uint32(0xf95e4739),
  3412. 132: uint32(0xb2d57973),
  3413. 133: uint32(0xea559ba4),
  3414. 134: uint32(0x43d3cd07),
  3415. 135: uint32(0x1b532fd0),
  3416. 136: uint32(0xd5c5b093),
  3417. 137: uint32(0x8d455244),
  3418. 138: uint32(0x24c304e7),
  3419. 139: uint32(0x7c43e630),
  3420. 140: uint32(0x37c8d87a),
  3421. 141: uint32(0x6f483aad),
  3422. 142: uint32(0xc6ce6c0e),
  3423. 143: uint32(0x9e4e8ed9),
  3424. 144: uint32(0x5ae35389),
  3425. 145: uint32(0x0263b15e),
  3426. 146: uint32(0xabe5e7fd),
  3427. 147: uint32(0xf365052a),
  3428. 148: uint32(0xb8ee3b60),
  3429. 149: uint32(0xe06ed9b7),
  3430. 150: uint32(0x49e88f14),
  3431. 151: uint32(0x11686dc3),
  3432. 152: uint32(0xdffef280),
  3433. 153: uint32(0x877e1057),
  3434. 154: uint32(0x2ef846f4),
  3435. 155: uint32(0x7678a423),
  3436. 156: uint32(0x3df39a69),
  3437. 157: uint32(0x657378be),
  3438. 158: uint32(0xccf52e1d),
  3439. 159: uint32(0x9475ccca),
  3440. 160: uint32(0x44ae95bc),
  3441. 161: uint32(0x1c2e776b),
  3442. 162: uint32(0xb5a821c8),
  3443. 163: uint32(0xed28c31f),
  3444. 164: uint32(0xa6a3fd55),
  3445. 165: uint32(0xfe231f82),
  3446. 166: uint32(0x57a54921),
  3447. 167: uint32(0x0f25abf6),
  3448. 168: uint32(0xc1b334b5),
  3449. 169: uint32(0x9933d662),
  3450. 170: uint32(0x30b580c1),
  3451. 171: uint32(0x68356216),
  3452. 172: uint32(0x23be5c5c),
  3453. 173: uint32(0x7b3ebe8b),
  3454. 174: uint32(0xd2b8e828),
  3455. 175: uint32(0x8a380aff),
  3456. 176: uint32(0x4e95d7af),
  3457. 177: uint32(0x16153578),
  3458. 178: uint32(0xbf9363db),
  3459. 179: uint32(0xe713810c),
  3460. 180: uint32(0xac98bf46),
  3461. 181: uint32(0xf4185d91),
  3462. 182: uint32(0x5d9e0b32),
  3463. 183: uint32(0x051ee9e5),
  3464. 184: uint32(0xcb8876a6),
  3465. 185: uint32(0x93089471),
  3466. 186: uint32(0x3a8ec2d2),
  3467. 187: uint32(0x620e2005),
  3468. 188: uint32(0x29851e4f),
  3469. 189: uint32(0x7105fc98),
  3470. 190: uint32(0xd883aa3b),
  3471. 191: uint32(0x800348ec),
  3472. 192: uint32(0x783419d7),
  3473. 193: uint32(0x20b4fb00),
  3474. 194: uint32(0x8932ada3),
  3475. 195: uint32(0xd1b24f74),
  3476. 196: uint32(0x9a39713e),
  3477. 197: uint32(0xc2b993e9),
  3478. 198: uint32(0x6b3fc54a),
  3479. 199: uint32(0x33bf279d),
  3480. 200: uint32(0xfd29b8de),
  3481. 201: uint32(0xa5a95a09),
  3482. 202: uint32(0x0c2f0caa),
  3483. 203: uint32(0x54afee7d),
  3484. 204: uint32(0x1f24d037),
  3485. 205: uint32(0x47a432e0),
  3486. 206: uint32(0xee226443),
  3487. 207: uint32(0xb6a28694),
  3488. 208: uint32(0x720f5bc4),
  3489. 209: uint32(0x2a8fb913),
  3490. 210: uint32(0x8309efb0),
  3491. 211: uint32(0xdb890d67),
  3492. 212: uint32(0x9002332d),
  3493. 213: uint32(0xc882d1fa),
  3494. 214: uint32(0x61048759),
  3495. 215: uint32(0x3984658e),
  3496. 216: uint32(0xf712facd),
  3497. 217: uint32(0xaf92181a),
  3498. 218: uint32(0x06144eb9),
  3499. 219: uint32(0x5e94ac6e),
  3500. 220: uint32(0x151f9224),
  3501. 221: uint32(0x4d9f70f3),
  3502. 222: uint32(0xe4192650),
  3503. 223: uint32(0xbc99c487),
  3504. 224: uint32(0x6c429df1),
  3505. 225: uint32(0x34c27f26),
  3506. 226: uint32(0x9d442985),
  3507. 227: uint32(0xc5c4cb52),
  3508. 228: uint32(0x8e4ff518),
  3509. 229: uint32(0xd6cf17cf),
  3510. 230: uint32(0x7f49416c),
  3511. 231: uint32(0x27c9a3bb),
  3512. 232: uint32(0xe95f3cf8),
  3513. 233: uint32(0xb1dfde2f),
  3514. 234: uint32(0x1859888c),
  3515. 235: uint32(0x40d96a5b),
  3516. 236: uint32(0x0b525411),
  3517. 237: uint32(0x53d2b6c6),
  3518. 238: uint32(0xfa54e065),
  3519. 239: uint32(0xa2d402b2),
  3520. 240: uint32(0x6679dfe2),
  3521. 241: uint32(0x3ef93d35),
  3522. 242: uint32(0x977f6b96),
  3523. 243: uint32(0xcfff8941),
  3524. 244: uint32(0x8474b70b),
  3525. 245: uint32(0xdcf455dc),
  3526. 246: uint32(0x7572037f),
  3527. 247: uint32(0x2df2e1a8),
  3528. 248: uint32(0xe3647eeb),
  3529. 249: uint32(0xbbe49c3c),
  3530. 250: uint32(0x1262ca9f),
  3531. 251: uint32(0x4ae22848),
  3532. 252: uint32(0x01691602),
  3533. 253: uint32(0x59e9f4d5),
  3534. 254: uint32(0xf06fa276),
  3535. 255: uint32(0xa8ef40a1),
  3536. },
  3537. 3: {
  3538. 1: uint32(0x463b6765),
  3539. 2: uint32(0x8c76ceca),
  3540. 3: uint32(0xca4da9af),
  3541. 4: uint32(0x59ebed4e),
  3542. 5: uint32(0x1fd08a2b),
  3543. 6: uint32(0xd59d2384),
  3544. 7: uint32(0x93a644e1),
  3545. 8: uint32(0xb2d6db9d),
  3546. 9: uint32(0xf4edbcf8),
  3547. 10: uint32(0x3ea01557),
  3548. 11: uint32(0x789b7232),
  3549. 12: uint32(0xeb3d36d3),
  3550. 13: uint32(0xad0651b6),
  3551. 14: uint32(0x674bf819),
  3552. 15: uint32(0x21709f7c),
  3553. 16: uint32(0x25abc6e0),
  3554. 17: uint32(0x6390a185),
  3555. 18: uint32(0xa9dd082a),
  3556. 19: uint32(0xefe66f4f),
  3557. 20: uint32(0x7c402bae),
  3558. 21: uint32(0x3a7b4ccb),
  3559. 22: uint32(0xf036e564),
  3560. 23: uint32(0xb60d8201),
  3561. 24: uint32(0x977d1d7d),
  3562. 25: uint32(0xd1467a18),
  3563. 26: uint32(0x1b0bd3b7),
  3564. 27: uint32(0x5d30b4d2),
  3565. 28: uint32(0xce96f033),
  3566. 29: uint32(0x88ad9756),
  3567. 30: uint32(0x42e03ef9),
  3568. 31: uint32(0x04db599c),
  3569. 32: uint32(0x0b50fc1a),
  3570. 33: uint32(0x4d6b9b7f),
  3571. 34: uint32(0x872632d0),
  3572. 35: uint32(0xc11d55b5),
  3573. 36: uint32(0x52bb1154),
  3574. 37: uint32(0x14807631),
  3575. 38: uint32(0xdecddf9e),
  3576. 39: uint32(0x98f6b8fb),
  3577. 40: uint32(0xb9862787),
  3578. 41: uint32(0xffbd40e2),
  3579. 42: uint32(0x35f0e94d),
  3580. 43: uint32(0x73cb8e28),
  3581. 44: uint32(0xe06dcac9),
  3582. 45: uint32(0xa656adac),
  3583. 46: uint32(0x6c1b0403),
  3584. 47: uint32(0x2a206366),
  3585. 48: uint32(0x2efb3afa),
  3586. 49: uint32(0x68c05d9f),
  3587. 50: uint32(0xa28df430),
  3588. 51: uint32(0xe4b69355),
  3589. 52: uint32(0x7710d7b4),
  3590. 53: uint32(0x312bb0d1),
  3591. 54: uint32(0xfb66197e),
  3592. 55: uint32(0xbd5d7e1b),
  3593. 56: uint32(0x9c2de167),
  3594. 57: uint32(0xda168602),
  3595. 58: uint32(0x105b2fad),
  3596. 59: uint32(0x566048c8),
  3597. 60: uint32(0xc5c60c29),
  3598. 61: uint32(0x83fd6b4c),
  3599. 62: uint32(0x49b0c2e3),
  3600. 63: uint32(0x0f8ba586),
  3601. 64: uint32(0x16a0f835),
  3602. 65: uint32(0x509b9f50),
  3603. 66: uint32(0x9ad636ff),
  3604. 67: uint32(0xdced519a),
  3605. 68: uint32(0x4f4b157b),
  3606. 69: uint32(0x0970721e),
  3607. 70: uint32(0xc33ddbb1),
  3608. 71: uint32(0x8506bcd4),
  3609. 72: uint32(0xa47623a8),
  3610. 73: uint32(0xe24d44cd),
  3611. 74: uint32(0x2800ed62),
  3612. 75: uint32(0x6e3b8a07),
  3613. 76: uint32(0xfd9dcee6),
  3614. 77: uint32(0xbba6a983),
  3615. 78: uint32(0x71eb002c),
  3616. 79: uint32(0x37d06749),
  3617. 80: uint32(0x330b3ed5),
  3618. 81: uint32(0x753059b0),
  3619. 82: uint32(0xbf7df01f),
  3620. 83: uint32(0xf946977a),
  3621. 84: uint32(0x6ae0d39b),
  3622. 85: uint32(0x2cdbb4fe),
  3623. 86: uint32(0xe6961d51),
  3624. 87: uint32(0xa0ad7a34),
  3625. 88: uint32(0x81dde548),
  3626. 89: uint32(0xc7e6822d),
  3627. 90: uint32(0x0dab2b82),
  3628. 91: uint32(0x4b904ce7),
  3629. 92: uint32(0xd8360806),
  3630. 93: uint32(0x9e0d6f63),
  3631. 94: uint32(0x5440c6cc),
  3632. 95: uint32(0x127ba1a9),
  3633. 96: uint32(0x1df0042f),
  3634. 97: uint32(0x5bcb634a),
  3635. 98: uint32(0x9186cae5),
  3636. 99: uint32(0xd7bdad80),
  3637. 100: uint32(0x441be961),
  3638. 101: uint32(0x02208e04),
  3639. 102: uint32(0xc86d27ab),
  3640. 103: uint32(0x8e5640ce),
  3641. 104: uint32(0xaf26dfb2),
  3642. 105: uint32(0xe91db8d7),
  3643. 106: uint32(0x23501178),
  3644. 107: uint32(0x656b761d),
  3645. 108: uint32(0xf6cd32fc),
  3646. 109: uint32(0xb0f65599),
  3647. 110: uint32(0x7abbfc36),
  3648. 111: uint32(0x3c809b53),
  3649. 112: uint32(0x385bc2cf),
  3650. 113: uint32(0x7e60a5aa),
  3651. 114: uint32(0xb42d0c05),
  3652. 115: uint32(0xf2166b60),
  3653. 116: uint32(0x61b02f81),
  3654. 117: uint32(0x278b48e4),
  3655. 118: uint32(0xedc6e14b),
  3656. 119: uint32(0xabfd862e),
  3657. 120: uint32(0x8a8d1952),
  3658. 121: uint32(0xccb67e37),
  3659. 122: uint32(0x06fbd798),
  3660. 123: uint32(0x40c0b0fd),
  3661. 124: uint32(0xd366f41c),
  3662. 125: uint32(0x955d9379),
  3663. 126: uint32(0x5f103ad6),
  3664. 127: uint32(0x192b5db3),
  3665. 128: uint32(0x2c40f16b),
  3666. 129: uint32(0x6a7b960e),
  3667. 130: uint32(0xa0363fa1),
  3668. 131: uint32(0xe60d58c4),
  3669. 132: uint32(0x75ab1c25),
  3670. 133: uint32(0x33907b40),
  3671. 134: uint32(0xf9ddd2ef),
  3672. 135: uint32(0xbfe6b58a),
  3673. 136: uint32(0x9e962af6),
  3674. 137: uint32(0xd8ad4d93),
  3675. 138: uint32(0x12e0e43c),
  3676. 139: uint32(0x54db8359),
  3677. 140: uint32(0xc77dc7b8),
  3678. 141: uint32(0x8146a0dd),
  3679. 142: uint32(0x4b0b0972),
  3680. 143: uint32(0x0d306e17),
  3681. 144: uint32(0x09eb378b),
  3682. 145: uint32(0x4fd050ee),
  3683. 146: uint32(0x859df941),
  3684. 147: uint32(0xc3a69e24),
  3685. 148: uint32(0x5000dac5),
  3686. 149: uint32(0x163bbda0),
  3687. 150: uint32(0xdc76140f),
  3688. 151: uint32(0x9a4d736a),
  3689. 152: uint32(0xbb3dec16),
  3690. 153: uint32(0xfd068b73),
  3691. 154: uint32(0x374b22dc),
  3692. 155: uint32(0x717045b9),
  3693. 156: uint32(0xe2d60158),
  3694. 157: uint32(0xa4ed663d),
  3695. 158: uint32(0x6ea0cf92),
  3696. 159: uint32(0x289ba8f7),
  3697. 160: uint32(0x27100d71),
  3698. 161: uint32(0x612b6a14),
  3699. 162: uint32(0xab66c3bb),
  3700. 163: uint32(0xed5da4de),
  3701. 164: uint32(0x7efbe03f),
  3702. 165: uint32(0x38c0875a),
  3703. 166: uint32(0xf28d2ef5),
  3704. 167: uint32(0xb4b64990),
  3705. 168: uint32(0x95c6d6ec),
  3706. 169: uint32(0xd3fdb189),
  3707. 170: uint32(0x19b01826),
  3708. 171: uint32(0x5f8b7f43),
  3709. 172: uint32(0xcc2d3ba2),
  3710. 173: uint32(0x8a165cc7),
  3711. 174: uint32(0x405bf568),
  3712. 175: uint32(0x0660920d),
  3713. 176: uint32(0x02bbcb91),
  3714. 177: uint32(0x4480acf4),
  3715. 178: uint32(0x8ecd055b),
  3716. 179: uint32(0xc8f6623e),
  3717. 180: uint32(0x5b5026df),
  3718. 181: uint32(0x1d6b41ba),
  3719. 182: uint32(0xd726e815),
  3720. 183: uint32(0x911d8f70),
  3721. 184: uint32(0xb06d100c),
  3722. 185: uint32(0xf6567769),
  3723. 186: uint32(0x3c1bdec6),
  3724. 187: uint32(0x7a20b9a3),
  3725. 188: uint32(0xe986fd42),
  3726. 189: uint32(0xafbd9a27),
  3727. 190: uint32(0x65f03388),
  3728. 191: uint32(0x23cb54ed),
  3729. 192: uint32(0x3ae0095e),
  3730. 193: uint32(0x7cdb6e3b),
  3731. 194: uint32(0xb696c794),
  3732. 195: uint32(0xf0ada0f1),
  3733. 196: uint32(0x630be410),
  3734. 197: uint32(0x25308375),
  3735. 198: uint32(0xef7d2ada),
  3736. 199: uint32(0xa9464dbf),
  3737. 200: uint32(0x8836d2c3),
  3738. 201: uint32(0xce0db5a6),
  3739. 202: uint32(0x04401c09),
  3740. 203: uint32(0x427b7b6c),
  3741. 204: uint32(0xd1dd3f8d),
  3742. 205: uint32(0x97e658e8),
  3743. 206: uint32(0x5dabf147),
  3744. 207: uint32(0x1b909622),
  3745. 208: uint32(0x1f4bcfbe),
  3746. 209: uint32(0x5970a8db),
  3747. 210: uint32(0x933d0174),
  3748. 211: uint32(0xd5066611),
  3749. 212: uint32(0x46a022f0),
  3750. 213: uint32(0x009b4595),
  3751. 214: uint32(0xcad6ec3a),
  3752. 215: uint32(0x8ced8b5f),
  3753. 216: uint32(0xad9d1423),
  3754. 217: uint32(0xeba67346),
  3755. 218: uint32(0x21ebdae9),
  3756. 219: uint32(0x67d0bd8c),
  3757. 220: uint32(0xf476f96d),
  3758. 221: uint32(0xb24d9e08),
  3759. 222: uint32(0x780037a7),
  3760. 223: uint32(0x3e3b50c2),
  3761. 224: uint32(0x31b0f544),
  3762. 225: uint32(0x778b9221),
  3763. 226: uint32(0xbdc63b8e),
  3764. 227: uint32(0xfbfd5ceb),
  3765. 228: uint32(0x685b180a),
  3766. 229: uint32(0x2e607f6f),
  3767. 230: uint32(0xe42dd6c0),
  3768. 231: uint32(0xa216b1a5),
  3769. 232: uint32(0x83662ed9),
  3770. 233: uint32(0xc55d49bc),
  3771. 234: uint32(0x0f10e013),
  3772. 235: uint32(0x492b8776),
  3773. 236: uint32(0xda8dc397),
  3774. 237: uint32(0x9cb6a4f2),
  3775. 238: uint32(0x56fb0d5d),
  3776. 239: uint32(0x10c06a38),
  3777. 240: uint32(0x141b33a4),
  3778. 241: uint32(0x522054c1),
  3779. 242: uint32(0x986dfd6e),
  3780. 243: uint32(0xde569a0b),
  3781. 244: uint32(0x4df0deea),
  3782. 245: uint32(0x0bcbb98f),
  3783. 246: uint32(0xc1861020),
  3784. 247: uint32(0x87bd7745),
  3785. 248: uint32(0xa6cde839),
  3786. 249: uint32(0xe0f68f5c),
  3787. 250: uint32(0x2abb26f3),
  3788. 251: uint32(0x6c804196),
  3789. 252: uint32(0xff260577),
  3790. 253: uint32(0xb91d6212),
  3791. 254: uint32(0x7350cbbd),
  3792. 255: uint32(0x356bacd8),
  3793. },
  3794. }
  3795. var _x2n_table = [32]Tz_crc_t{
  3796. 0: uint32(0x40000000),
  3797. 1: uint32(0x20000000),
  3798. 2: uint32(0x08000000),
  3799. 3: uint32(0x00800000),
  3800. 4: uint32(0x00008000),
  3801. 5: uint32(0xedb88320),
  3802. 6: uint32(0xb1e6b092),
  3803. 7: uint32(0xa06a2517),
  3804. 8: uint32(0xed627dae),
  3805. 9: uint32(0x88d14467),
  3806. 10: uint32(0xd7bbfe6a),
  3807. 11: uint32(0xec447f11),
  3808. 12: uint32(0x8e7ea170),
  3809. 13: uint32(0x6427800e),
  3810. 14: uint32(0x4d47bae0),
  3811. 15: uint32(0x09fe548f),
  3812. 16: uint32(0x83852d0f),
  3813. 17: uint32(0x30362f1a),
  3814. 18: uint32(0x7b5a9cc3),
  3815. 19: uint32(0x31fec169),
  3816. 20: uint32(0x9fec022a),
  3817. 21: uint32(0x6c8dedc4),
  3818. 22: uint32(0x15d6874d),
  3819. 23: uint32(0x5fde7a4e),
  3820. 24: uint32(0xbad90e37),
  3821. 25: uint32(0x2e4e5eef),
  3822. 26: uint32(0x4eaba214),
  3823. 27: uint32(0xa8a472c0),
  3824. 28: uint32(0x429a969e),
  3825. 29: uint32(0x148d302a),
  3826. 30: uint32(0xc40ba6d0),
  3827. 31: uint32(0xc4e22c3c),
  3828. }
  3829. /* CRC polynomial. */
  3830. // C documentation
  3831. //
  3832. // /*
  3833. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  3834. // reflected. For speed, this requires that a not be zero.
  3835. // */
  3836. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  3837. var m, p Tz_crc_t
  3838. var v2 uint32
  3839. _, _, _ = m, p, v2
  3840. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  3841. p = uint32(0)
  3842. for {
  3843. if a&m != 0 {
  3844. p ^= b
  3845. if a&(m-uint32(1)) == uint32(0) {
  3846. break
  3847. }
  3848. }
  3849. m >>= uint32(1)
  3850. if b&uint32(1) != 0 {
  3851. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  3852. } else {
  3853. v2 = b >> int32(1)
  3854. }
  3855. b = v2
  3856. goto _1
  3857. _1:
  3858. }
  3859. return p
  3860. }
  3861. // C documentation
  3862. //
  3863. // /*
  3864. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  3865. // initialized.
  3866. // */
  3867. func _x2nmodp(tls *libc.TLS, n Toff_t, k uint32) (r Tz_crc_t) {
  3868. var p Tz_crc_t
  3869. _ = p
  3870. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  3871. for n != 0 {
  3872. if n&int64(1) != 0 {
  3873. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  3874. }
  3875. n >>= int64(1)
  3876. k++
  3877. }
  3878. return p
  3879. }
  3880. // C documentation
  3881. //
  3882. // /* =========================================================================
  3883. // * This function can be used by asm versions of crc32(), and to force the
  3884. // * generation of the CRC tables in a threaded application.
  3885. // */
  3886. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  3887. return uintptr(unsafe.Pointer(&_crc_table))
  3888. }
  3889. /* =========================================================================
  3890. * Use ARM machine instructions if available. This will compute the CRC about
  3891. * ten times faster than the braided calculation. This code does not check for
  3892. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  3893. * only be defined if the compilation specifies an ARM processor architecture
  3894. * that has the instructions. For example, compiling with -march=armv8.1-a or
  3895. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  3896. * instructions.
  3897. */
  3898. // C documentation
  3899. //
  3900. // /*
  3901. // Return the CRC of the W bytes in the word_t data, taking the
  3902. // least-significant byte of the word as the first byte of data, without any pre
  3903. // or post conditioning. This is used to combine the CRCs of each braid.
  3904. // */
  3905. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  3906. var k int32
  3907. _ = k
  3908. k = 0
  3909. for {
  3910. if !(k < int32(4)) {
  3911. break
  3912. }
  3913. data = data>>libc.Int32FromInt32(8) ^ _crc_table[data&uint32(0xff)]
  3914. goto _1
  3915. _1:
  3916. ;
  3917. k++
  3918. }
  3919. return data
  3920. }
  3921. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  3922. var k int32
  3923. _ = k
  3924. k = 0
  3925. for {
  3926. if !(k < int32(4)) {
  3927. break
  3928. }
  3929. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(4)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint32(0xff)]
  3930. goto _1
  3931. _1:
  3932. ;
  3933. k++
  3934. }
  3935. return data
  3936. }
  3937. // C documentation
  3938. //
  3939. // /* ========================================================================= */
  3940. func Xcrc32_z(tls *libc.TLS, crc uint64, buf uintptr, len1 Tz_size_t) (r uint64) {
  3941. bp := tls.Alloc(16)
  3942. defer tls.Free(16)
  3943. var blks, v2, v4 Tz_size_t
  3944. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  3945. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  3946. var k int32
  3947. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  3948. var _ /* endian at bp+0 */ uint32
  3949. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  3950. /* Return initial CRC, if requested. */
  3951. if buf == uintptr(m_Z_NULL) {
  3952. return uint64(0)
  3953. }
  3954. /* Pre-condition the CRC */
  3955. crc = ^crc & uint64(0xffffffff)
  3956. /* If provided enough bytes, do a braided CRC calculation. */
  3957. if len1 >= libc.Uint64FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4)+libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) {
  3958. /* Compute the CRC up to a z_word_t boundary. */
  3959. for len1 != 0 && uint64(buf)&libc.Uint64FromInt32(libc.Int32FromInt32(4)-libc.Int32FromInt32(1)) != uint64(0) {
  3960. len1--
  3961. v1 = buf
  3962. buf++
  3963. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v1))))&uint64(0xff)])
  3964. }
  3965. /* Compute the CRC on as many N z_word_t blocks as are available. */
  3966. blks = len1 / libc.Uint64FromInt32(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(4))
  3967. len1 -= blks * uint64(m_N) * uint64(4)
  3968. words = buf
  3969. /* Do endian check at execution time instead of compile time, since ARM
  3970. processors can change the endianness at execution time. If the
  3971. compiler knows what the endianness will be, it can optimize out the
  3972. check and the unused branch. */
  3973. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  3974. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  3975. /* Initialize the CRC for each braid. */
  3976. crc0 = uint32(crc)
  3977. crc1 = uint32(0)
  3978. crc2 = uint32(0)
  3979. crc3 = uint32(0)
  3980. crc4 = uint32(0)
  3981. /*
  3982. Process the first blks-1 blocks, computing the CRCs on each braid
  3983. independently.
  3984. */
  3985. for {
  3986. blks--
  3987. v2 = blks
  3988. if !(v2 != 0) {
  3989. break
  3990. }
  3991. /* Load the word for each braid into registers. */
  3992. word0 = crc0 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  3993. word1 = crc1 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  3994. word2 = crc2 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  3995. word3 = crc3 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  3996. word4 = crc4 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  3997. words += uintptr(m_N) * 4
  3998. /* Compute and update the CRC for each word. The loop should
  3999. get unrolled. */
  4000. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint32(0xff))*4))
  4001. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint32(0xff))*4))
  4002. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint32(0xff))*4))
  4003. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint32(0xff))*4))
  4004. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint32(0xff))*4))
  4005. k = int32(1)
  4006. for {
  4007. if !(k < int32(4)) {
  4008. break
  4009. }
  4010. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4011. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4012. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4013. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4014. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint32(0xff))*4))
  4015. goto _3
  4016. _3:
  4017. ;
  4018. k++
  4019. }
  4020. }
  4021. /*
  4022. Process the last block, combining the CRCs of the N braids at the
  4023. same time.
  4024. */
  4025. crc = uint64(_crc_word(tls, crc0^*(*Tz_word_t)(unsafe.Pointer(words))))
  4026. crc = uint64(_crc_word(tls, uint32(uint64(crc1^*(*Tz_word_t)(unsafe.Pointer(words + 1*4)))^crc)))
  4027. crc = uint64(_crc_word(tls, uint32(uint64(crc2^*(*Tz_word_t)(unsafe.Pointer(words + 2*4)))^crc)))
  4028. crc = uint64(_crc_word(tls, uint32(uint64(crc3^*(*Tz_word_t)(unsafe.Pointer(words + 3*4)))^crc)))
  4029. crc = uint64(_crc_word(tls, uint32(uint64(crc4^*(*Tz_word_t)(unsafe.Pointer(words + 4*4)))^crc)))
  4030. words += uintptr(m_N) * 4
  4031. } else {
  4032. /* Initialize the CRC for each braid. */
  4033. crc01 = _byte_swap(tls, uint32(crc))
  4034. crc11 = uint32(0)
  4035. crc21 = uint32(0)
  4036. crc31 = uint32(0)
  4037. crc41 = uint32(0)
  4038. /*
  4039. Process the first blks-1 blocks, computing the CRCs on each braid
  4040. independently.
  4041. */
  4042. for {
  4043. blks--
  4044. v4 = blks
  4045. if !(v4 != 0) {
  4046. break
  4047. }
  4048. /* Load the word for each braid into registers. */
  4049. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  4050. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*4))
  4051. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*4))
  4052. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*4))
  4053. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*4))
  4054. words += uintptr(m_N) * 4
  4055. /* Compute and update the CRC for each word. The loop should
  4056. get unrolled. */
  4057. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint32(0xff))*4))
  4058. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint32(0xff))*4))
  4059. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint32(0xff))*4))
  4060. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint32(0xff))*4))
  4061. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint32(0xff))*4))
  4062. k = int32(1)
  4063. for {
  4064. if !(k < int32(4)) {
  4065. break
  4066. }
  4067. 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))
  4068. 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))
  4069. 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))
  4070. 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))
  4071. 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))
  4072. goto _5
  4073. _5:
  4074. ;
  4075. k++
  4076. }
  4077. }
  4078. /*
  4079. Process the last block, combining the CRCs of the N braids at the
  4080. same time.
  4081. */
  4082. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  4083. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*4))^comb)
  4084. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*4))^comb)
  4085. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*4))^comb)
  4086. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*4))^comb)
  4087. words += uintptr(m_N) * 4
  4088. crc = uint64(_byte_swap(tls, comb))
  4089. }
  4090. /*
  4091. Update the pointer to the remaining bytes to process.
  4092. */
  4093. buf = words
  4094. }
  4095. /* Complete the computation of the CRC on any remaining bytes. */
  4096. for len1 >= uint64(8) {
  4097. len1 -= uint64(8)
  4098. v6 = buf
  4099. buf++
  4100. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v6))))&uint64(0xff)])
  4101. v7 = buf
  4102. buf++
  4103. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v7))))&uint64(0xff)])
  4104. v8 = buf
  4105. buf++
  4106. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v8))))&uint64(0xff)])
  4107. v9 = buf
  4108. buf++
  4109. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v9))))&uint64(0xff)])
  4110. v10 = buf
  4111. buf++
  4112. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v10))))&uint64(0xff)])
  4113. v11 = buf
  4114. buf++
  4115. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v11))))&uint64(0xff)])
  4116. v12 = buf
  4117. buf++
  4118. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v12))))&uint64(0xff)])
  4119. v13 = buf
  4120. buf++
  4121. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v13))))&uint64(0xff)])
  4122. }
  4123. for len1 != 0 {
  4124. len1--
  4125. v14 = buf
  4126. buf++
  4127. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v14))))&uint64(0xff)])
  4128. }
  4129. /* Return the CRC, post-conditioned. */
  4130. return crc ^ uint64(0xffffffff)
  4131. }
  4132. // C documentation
  4133. //
  4134. // /* ========================================================================= */
  4135. func Xcrc32(tls *libc.TLS, crc uint64, buf uintptr, len1 TuInt) (r uint64) {
  4136. return Xcrc32_z(tls, crc, buf, uint64(len1))
  4137. }
  4138. // C documentation
  4139. //
  4140. // /* ========================================================================= */
  4141. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4142. return uint64(_multmodp(tls, _x2nmodp(tls, len2, uint32(3)), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  4143. }
  4144. // C documentation
  4145. //
  4146. // /* ========================================================================= */
  4147. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  4148. return Xcrc32_combine64(tls, crc1, crc2, len2)
  4149. }
  4150. // C documentation
  4151. //
  4152. // /* ========================================================================= */
  4153. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4154. return uint64(_x2nmodp(tls, len2, uint32(3)))
  4155. }
  4156. // C documentation
  4157. //
  4158. // /* ========================================================================= */
  4159. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  4160. return Xcrc32_combine_gen64(tls, len2)
  4161. }
  4162. // C documentation
  4163. //
  4164. // /* ========================================================================= */
  4165. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  4166. return uint64(_multmodp(tls, uint32(op), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  4167. }
  4168. const m_BL_CODES = 19
  4169. const m_BUSY_STATE = 113
  4170. const m_Buf_size = 16
  4171. const m_COMMENT_STATE = 91
  4172. const m_D_CODES = 30
  4173. const m_EXTRA_STATE = 69
  4174. const m_FINISH_STATE = 666
  4175. const m_GZIP_STATE = 57
  4176. const m_HCRC_STATE = 103
  4177. const m_INIT_STATE = 42
  4178. const m_LENGTH_CODES = 29
  4179. const m_LITERALS = 256
  4180. const m_LIT_BUFS = 4
  4181. const m_MAX_BITS = 15
  4182. const m_MAX_STORED = 65535
  4183. const m_NAME_STATE = 73
  4184. const m_NIL = 0
  4185. const m_PRESET_DICT1 = 32
  4186. const m_TOO_FAR = 4096
  4187. const m_WIN_INIT = "MAX_MATCH"
  4188. const m_max_insert_length = "max_lazy_match"
  4189. type Tinternal_state = struct {
  4190. Fstrm Tz_streamp
  4191. Fstatus int32
  4192. Fpending_buf uintptr
  4193. Fpending_buf_size Tulg
  4194. Fpending_out uintptr
  4195. Fpending Tulg
  4196. Fwrap int32
  4197. Fgzhead Tgz_headerp
  4198. Fgzindex Tulg
  4199. Fmethod TByte
  4200. Flast_flush int32
  4201. Fw_size TuInt
  4202. Fw_bits TuInt
  4203. Fw_mask TuInt
  4204. Fwindow uintptr
  4205. Fwindow_size Tulg
  4206. Fprev uintptr
  4207. Fhead uintptr
  4208. Fins_h TuInt
  4209. Fhash_size TuInt
  4210. Fhash_bits TuInt
  4211. Fhash_mask TuInt
  4212. Fhash_shift TuInt
  4213. Fblock_start int64
  4214. Fmatch_length TuInt
  4215. Fprev_match TIPos
  4216. Fmatch_available int32
  4217. Fstrstart TuInt
  4218. Fmatch_start TuInt
  4219. Flookahead TuInt
  4220. Fprev_length TuInt
  4221. Fmax_chain_length TuInt
  4222. Fmax_lazy_match TuInt
  4223. Flevel int32
  4224. Fstrategy int32
  4225. Fgood_match TuInt
  4226. Fnice_match int32
  4227. Fdyn_ltree [573]Tct_data_s
  4228. Fdyn_dtree [61]Tct_data_s
  4229. Fbl_tree [39]Tct_data_s
  4230. Fl_desc Ttree_desc_s
  4231. Fd_desc Ttree_desc_s
  4232. Fbl_desc Ttree_desc_s
  4233. Fbl_count [16]Tush
  4234. Fheap [573]int32
  4235. Fheap_len int32
  4236. Fheap_max int32
  4237. Fdepth [573]Tuch
  4238. Fsym_buf uintptr
  4239. Flit_bufsize TuInt
  4240. Fsym_next TuInt
  4241. Fsym_end TuInt
  4242. Fopt_len Tulg
  4243. Fstatic_len Tulg
  4244. Fmatches TuInt
  4245. Finsert TuInt
  4246. Fbi_buf Tush
  4247. Fbi_valid int32
  4248. Fhigh_water Tulg
  4249. }
  4250. type Tct_data = struct {
  4251. Ffc struct {
  4252. Fcode [0]Tush
  4253. Ffreq Tush
  4254. }
  4255. Fdl struct {
  4256. Flen1 [0]Tush
  4257. Fdad Tush
  4258. }
  4259. }
  4260. type Tct_data_s = Tct_data
  4261. type Ttree_desc = struct {
  4262. Fdyn_tree uintptr
  4263. Fmax_code int32
  4264. Fstat_desc uintptr
  4265. }
  4266. type Ttree_desc_s = Ttree_desc
  4267. type TPos = uint16
  4268. type TPosf = uint16
  4269. type TIPos = uint32
  4270. type Tdeflate_state = struct {
  4271. Fstrm Tz_streamp
  4272. Fstatus int32
  4273. Fpending_buf uintptr
  4274. Fpending_buf_size Tulg
  4275. Fpending_out uintptr
  4276. Fpending Tulg
  4277. Fwrap int32
  4278. Fgzhead Tgz_headerp
  4279. Fgzindex Tulg
  4280. Fmethod TByte
  4281. Flast_flush int32
  4282. Fw_size TuInt
  4283. Fw_bits TuInt
  4284. Fw_mask TuInt
  4285. Fwindow uintptr
  4286. Fwindow_size Tulg
  4287. Fprev uintptr
  4288. Fhead uintptr
  4289. Fins_h TuInt
  4290. Fhash_size TuInt
  4291. Fhash_bits TuInt
  4292. Fhash_mask TuInt
  4293. Fhash_shift TuInt
  4294. Fblock_start int64
  4295. Fmatch_length TuInt
  4296. Fprev_match TIPos
  4297. Fmatch_available int32
  4298. Fstrstart TuInt
  4299. Fmatch_start TuInt
  4300. Flookahead TuInt
  4301. Fprev_length TuInt
  4302. Fmax_chain_length TuInt
  4303. Fmax_lazy_match TuInt
  4304. Flevel int32
  4305. Fstrategy int32
  4306. Fgood_match TuInt
  4307. Fnice_match int32
  4308. Fdyn_ltree [573]Tct_data_s
  4309. Fdyn_dtree [61]Tct_data_s
  4310. Fbl_tree [39]Tct_data_s
  4311. Fl_desc Ttree_desc_s
  4312. Fd_desc Ttree_desc_s
  4313. Fbl_desc Ttree_desc_s
  4314. Fbl_count [16]Tush
  4315. Fheap [573]int32
  4316. Fheap_len int32
  4317. Fheap_max int32
  4318. Fdepth [573]Tuch
  4319. Fsym_buf uintptr
  4320. Flit_bufsize TuInt
  4321. Fsym_next TuInt
  4322. Fsym_end TuInt
  4323. Fopt_len Tulg
  4324. Fstatic_len Tulg
  4325. Fmatches TuInt
  4326. Finsert TuInt
  4327. Fbi_buf Tush
  4328. Fbi_valid int32
  4329. Fhigh_water Tulg
  4330. }
  4331. /*
  4332. If you use the zlib library in a product, an acknowledgment is welcome
  4333. in the documentation of your product. If for some reason you cannot
  4334. include such an acknowledgment, I would appreciate that you keep this
  4335. copyright string in the executable of your product.
  4336. */
  4337. type Tblock_state = int32
  4338. const _need_more = 0
  4339. const /* block not completed, need more input or more output */
  4340. _block_done = 1
  4341. const /* block flush performed */
  4342. _finish_started = 2
  4343. const /* finish started, need only more output at next deflate */
  4344. _finish_done = 3
  4345. type Tcompress_func = uintptr
  4346. /* ===========================================================================
  4347. * Local data
  4348. */
  4349. /* Tail of hash chains */
  4350. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4351. // C documentation
  4352. //
  4353. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4354. // * the desired pack level (0..9). The values given below have been tuned to
  4355. // * exclude worst case performance for pathological files. Better values may be
  4356. // * found for specific files.
  4357. // */
  4358. type Tconfig = struct {
  4359. Fgood_length Tush
  4360. Fmax_lazy Tush
  4361. Fnice_length Tush
  4362. Fmax_chain Tush
  4363. Ffunc1 Tcompress_func
  4364. }
  4365. /* ===========================================================================
  4366. * Local data
  4367. */
  4368. /* Tail of hash chains */
  4369. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  4370. // C documentation
  4371. //
  4372. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  4373. // * the desired pack level (0..9). The values given below have been tuned to
  4374. // * exclude worst case performance for pathological files. Better values may be
  4375. // * found for specific files.
  4376. // */
  4377. type Tconfig_s = Tconfig
  4378. var _configuration_table = [10]Tconfig{
  4379. 0: {},
  4380. 1: {
  4381. Fgood_length: uint16(4),
  4382. Fmax_lazy: uint16(4),
  4383. Fnice_length: uint16(8),
  4384. Fmax_chain: uint16(4),
  4385. },
  4386. 2: {
  4387. Fgood_length: uint16(4),
  4388. Fmax_lazy: uint16(5),
  4389. Fnice_length: uint16(16),
  4390. Fmax_chain: uint16(8),
  4391. },
  4392. 3: {
  4393. Fgood_length: uint16(4),
  4394. Fmax_lazy: uint16(6),
  4395. Fnice_length: uint16(32),
  4396. Fmax_chain: uint16(32),
  4397. },
  4398. 4: {
  4399. Fgood_length: uint16(4),
  4400. Fmax_lazy: uint16(4),
  4401. Fnice_length: uint16(16),
  4402. Fmax_chain: uint16(16),
  4403. },
  4404. 5: {
  4405. Fgood_length: uint16(8),
  4406. Fmax_lazy: uint16(16),
  4407. Fnice_length: uint16(32),
  4408. Fmax_chain: uint16(32),
  4409. },
  4410. 6: {
  4411. Fgood_length: uint16(8),
  4412. Fmax_lazy: uint16(16),
  4413. Fnice_length: uint16(128),
  4414. Fmax_chain: uint16(128),
  4415. },
  4416. 7: {
  4417. Fgood_length: uint16(8),
  4418. Fmax_lazy: uint16(32),
  4419. Fnice_length: uint16(128),
  4420. Fmax_chain: uint16(256),
  4421. },
  4422. 8: {
  4423. Fgood_length: uint16(32),
  4424. Fmax_lazy: uint16(128),
  4425. Fnice_length: uint16(258),
  4426. Fmax_chain: uint16(1024),
  4427. },
  4428. 9: {
  4429. Fgood_length: uint16(32),
  4430. Fmax_lazy: uint16(258),
  4431. Fnice_length: uint16(258),
  4432. Fmax_chain: uint16(4096),
  4433. },
  4434. }
  4435. func init() {
  4436. p := unsafe.Pointer(&_configuration_table)
  4437. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  4438. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  4439. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  4440. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  4441. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  4442. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  4443. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  4444. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  4445. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  4446. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  4447. }
  4448. /* max compression */
  4449. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  4450. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  4451. * meaning.
  4452. */
  4453. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  4454. /* ===========================================================================
  4455. * Update a hash value with the given input byte
  4456. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  4457. * characters, so that a running hash key can be computed from the previous
  4458. * key instead of complete recalculation each time.
  4459. */
  4460. /* ===========================================================================
  4461. * Insert string str in the dictionary and set match_head to the previous head
  4462. * of the hash chain (the most recent string with same hash key). Return
  4463. * the previous length of the hash chain.
  4464. * If this file is compiled with -DFASTEST, the compression level is forced
  4465. * to 1, and no hash chains are maintained.
  4466. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  4467. * characters and the first MIN_MATCH bytes of str are valid (except for
  4468. * the last MIN_MATCH-1 bytes of the input file).
  4469. */
  4470. /* ===========================================================================
  4471. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  4472. * prev[] will be initialized on the fly.
  4473. */
  4474. // C documentation
  4475. //
  4476. // /* ===========================================================================
  4477. // * Slide the hash table when sliding the window down (could be avoided with 32
  4478. // * bit values at the expense of memory usage). We slide even when level == 0 to
  4479. // * keep the hash table consistent if we switch back to level > 0 later.
  4480. // */
  4481. func _slide_hash(tls *libc.TLS, s uintptr) {
  4482. var m, n, v1, v4, v5, v8 uint32
  4483. var p, v3, v7 uintptr
  4484. var wsize TuInt
  4485. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  4486. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4487. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  4488. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  4489. for {
  4490. p -= 2
  4491. v3 = p
  4492. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  4493. if m >= wsize {
  4494. v4 = m - wsize
  4495. } else {
  4496. v4 = uint32(m_NIL)
  4497. }
  4498. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  4499. goto _2
  4500. _2:
  4501. ;
  4502. n--
  4503. v1 = n
  4504. if !(v1 != 0) {
  4505. break
  4506. }
  4507. }
  4508. n = wsize
  4509. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  4510. for {
  4511. p -= 2
  4512. v7 = p
  4513. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  4514. if m >= wsize {
  4515. v8 = m - wsize
  4516. } else {
  4517. v8 = uint32(m_NIL)
  4518. }
  4519. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  4520. /* If n is not on any hash chain, prev[n] is garbage but
  4521. * its value will never be used.
  4522. */
  4523. goto _6
  4524. _6:
  4525. ;
  4526. n--
  4527. v5 = n
  4528. if !(v5 != 0) {
  4529. break
  4530. }
  4531. }
  4532. }
  4533. // C documentation
  4534. //
  4535. // /* ===========================================================================
  4536. // * Read a new buffer from the current input stream, update the adler32
  4537. // * and total number of bytes read. All deflate() input goes through
  4538. // * this function so some applications may wish to modify it to avoid
  4539. // * allocating a large strm->next_in buffer and copying from it.
  4540. // * (See also flush_pending()).
  4541. // */
  4542. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  4543. var len1 uint32
  4544. _ = len1
  4545. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4546. if len1 > size {
  4547. len1 = size
  4548. }
  4549. if len1 == uint32(0) {
  4550. return uint32(0)
  4551. }
  4552. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  4553. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(len1))
  4554. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  4555. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4556. } else {
  4557. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  4558. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  4559. }
  4560. }
  4561. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  4562. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  4563. return len1
  4564. }
  4565. // C documentation
  4566. //
  4567. // /* ===========================================================================
  4568. // * Fill the window when the lookahead becomes insufficient.
  4569. // * Updates strstart and lookahead.
  4570. // *
  4571. // * IN assertion: lookahead < MIN_LOOKAHEAD
  4572. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  4573. // * At least one byte has been read, or avail_in == 0; reads are
  4574. // * performed for at least two bytes (required for the zip translate_eol
  4575. // * option -- not supported here).
  4576. // */
  4577. func _fill_window(tls *libc.TLS, s uintptr) {
  4578. var curr, init1 Tulg
  4579. var more, n uint32
  4580. var str, wsize TuInt
  4581. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  4582. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4583. 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) {
  4584. more = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  4585. /* Deal with !@#$% 64K limit: */
  4586. if uint64(4) <= uint64(2) {
  4587. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  4588. more = wsize
  4589. } else {
  4590. if more == libc.Uint32FromInt32(-libc.Int32FromInt32(1)) {
  4591. /* Very unlikely, but possible on 16 bit machine if
  4592. * strstart == 0 && lookahead == 1 (input done a byte at time)
  4593. */
  4594. more--
  4595. }
  4596. }
  4597. }
  4598. /* If the window is almost full and there is insufficient lookahead,
  4599. * move the upper half to the lower one to make room in the upper half.
  4600. */
  4601. 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))) {
  4602. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  4603. *(*TuInt)(unsafe.Pointer(s + 176)) -= wsize
  4604. *(*TuInt)(unsafe.Pointer(s + 172)) -= wsize /* we now have strstart >= MAX_DIST */
  4605. *(*int64)(unsafe.Pointer(s + 152)) -= libc.Int64FromUint32(wsize)
  4606. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  4607. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4608. }
  4609. _slide_hash(tls, s)
  4610. more += wsize
  4611. }
  4612. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  4613. break
  4614. }
  4615. /* If there was no sliding:
  4616. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  4617. * more == window_size - lookahead - strstart
  4618. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  4619. * => more >= window_size - 2*WSIZE + 2
  4620. * In the BIG_MEM or MMAP case (not yet supported),
  4621. * window_size == input_size + MIN_LOOKAHEAD &&
  4622. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  4623. * Otherwise, window_size == 2*WSIZE so more >= 2.
  4624. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  4625. */
  4626. 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)
  4627. *(*TuInt)(unsafe.Pointer(s + 180)) += n
  4628. /* Initialize the hash value now that we have some input: */
  4629. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  4630. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  4631. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  4632. (*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
  4633. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  4634. (*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
  4635. *(*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))
  4636. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4637. str++
  4638. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  4639. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  4640. break
  4641. }
  4642. }
  4643. }
  4644. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  4645. * but this is not important since only literal bytes will be emitted.
  4646. */
  4647. }
  4648. /* If the WIN_INIT bytes after the end of the current data have never been
  4649. * written, then zero those bytes in order to avoid memory check reports of
  4650. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  4651. * the longest match routines. Update the high water mark for the next
  4652. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  4653. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  4654. */
  4655. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  4656. curr = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  4657. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  4658. /* Previous high water mark below current data -- zero WIN_INIT
  4659. * bytes or up to end of window, whichever is less.
  4660. */
  4661. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  4662. if init1 > uint64(m_MAX_MATCH) {
  4663. init1 = uint64(m_MAX_MATCH)
  4664. }
  4665. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(uint32(init1)))
  4666. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  4667. } else {
  4668. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint64(m_MAX_MATCH) {
  4669. /* High water mark at or above current data, but below current data
  4670. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  4671. * to end of window, whichever is less.
  4672. */
  4673. init1 = curr + uint64(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4674. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  4675. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  4676. }
  4677. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(uint32(init1)))
  4678. *(*Tulg)(unsafe.Pointer(s + 5944)) += init1
  4679. }
  4680. }
  4681. }
  4682. }
  4683. // C documentation
  4684. //
  4685. // /* ========================================================================= */
  4686. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  4687. 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)
  4688. /* To do: ignore strm->next_in if we use it as window */
  4689. }
  4690. // C documentation
  4691. //
  4692. // /* ========================================================================= */
  4693. 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) {
  4694. var s uintptr
  4695. var wrap int32
  4696. _, _ = s, wrap
  4697. wrap = int32(1)
  4698. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(_my_version[0]) || libc.Uint64FromInt32(stream_size) != uint64(112) {
  4699. return -int32(6)
  4700. }
  4701. if strm == uintptr(m_Z_NULL) {
  4702. return -int32(2)
  4703. }
  4704. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  4705. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  4706. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  4707. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  4708. }
  4709. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4710. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  4711. }
  4712. if level == -int32(1) {
  4713. level = int32(6)
  4714. }
  4715. if windowBits < 0 { /* suppress zlib wrapper */
  4716. wrap = 0
  4717. if windowBits < -int32(15) {
  4718. return -int32(2)
  4719. }
  4720. windowBits = -windowBits
  4721. } else {
  4722. if windowBits > int32(15) {
  4723. wrap = int32(2) /* write gzip wrapper instead */
  4724. windowBits -= int32(16)
  4725. }
  4726. }
  4727. 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) {
  4728. return -int32(2)
  4729. }
  4730. if windowBits == int32(8) {
  4731. windowBits = int32(9)
  4732. } /* until 256-byte window bug fixed */
  4733. 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)), uint32(libc.Uint64FromInt64(5952)))
  4734. if s == uintptr(m_Z_NULL) {
  4735. return -int32(4)
  4736. }
  4737. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  4738. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  4739. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  4740. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4741. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  4742. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = libc.Uint32FromInt32(windowBits)
  4743. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  4744. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  4745. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = libc.Uint32FromInt32(memLevel) + uint32(7)
  4746. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = libc.Uint32FromInt32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  4747. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  4748. (*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)
  4749. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  4750. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  4751. (*Tdeflate_state)(unsafe.Pointer(s)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  4752. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64(0) /* nothing written to s->window yet */
  4753. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = libc.Uint32FromInt32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  4754. /* We overlay pending_buf and sym_buf. This works since the average size
  4755. * for length/distance pairs over any compressed block is assured to be 31
  4756. * bits or less.
  4757. *
  4758. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  4759. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  4760. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  4761. * possible fixed-codes length/distance pair is then 31 bits total.
  4762. *
  4763. * sym_buf starts one-fourth of the way into pending_buf. So there are
  4764. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  4765. * in sym_buf is three bytes -- two for the distance and one for the
  4766. * literal/length. As each symbol is consumed, the pointer to the next
  4767. * sym_buf value to read moves forward three bytes. From that symbol, up to
  4768. * 31 bits are written to pending_buf. The closest the written pending_buf
  4769. * bits gets to the next sym_buf symbol to read is just before the last
  4770. * code is written. At that time, 31*(n - 2) bits have been written, just
  4771. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  4772. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  4773. * symbols are written.) The closest the writing gets to what is unread is
  4774. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  4775. * can range from 128 to 32768.
  4776. *
  4777. * Therefore, at a minimum, there are 142 bits of space between what is
  4778. * written and what is read in the overlain buffers, so the symbols cannot
  4779. * be overwritten by the compressed data. That space is actually 139 bits,
  4780. * due to the three-bit fixed-code block header.
  4781. *
  4782. * That covers the case where either Z_FIXED is specified, forcing fixed
  4783. * codes, or when the use of fixed codes is chosen, because that choice
  4784. * results in a smaller compressed block than dynamic codes. That latter
  4785. * condition then assures that the above analysis also covers all dynamic
  4786. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  4787. * fewer bits than a fixed-code block would for the same set of symbols.
  4788. * Therefore its average symbol length is assured to be less than 31. So
  4789. * the compressed data for a dynamic block also cannot overwrite the
  4790. * symbols from which it is being constructed.
  4791. */
  4792. (*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)))
  4793. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize) * uint64(4)
  4794. 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) {
  4795. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  4796. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  4797. XdeflateEnd(tls, strm)
  4798. return -int32(4)
  4799. }
  4800. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  4801. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  4802. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  4803. * on 16 bit machines and because stored blocks are restricted to
  4804. * 64K-1 bytes.
  4805. */
  4806. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  4807. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  4808. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = libc.Uint8FromInt32(method)
  4809. return XdeflateReset(tls, strm)
  4810. }
  4811. var _my_version = [6]uint8{'1', '.', '3', '.', '1'}
  4812. // C documentation
  4813. //
  4814. // /* =========================================================================
  4815. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  4816. // */
  4817. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4818. var s uintptr
  4819. _ = s
  4820. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  4821. return int32(1)
  4822. }
  4823. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4824. 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) {
  4825. return int32(1)
  4826. }
  4827. return 0
  4828. }
  4829. // C documentation
  4830. //
  4831. // /* ========================================================================= */
  4832. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  4833. var avail uint32
  4834. var n, str, v1, v3 TuInt
  4835. var next, s uintptr
  4836. var wrap int32
  4837. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  4838. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  4839. return -int32(2)
  4840. }
  4841. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4842. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  4843. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  4844. return -int32(2)
  4845. }
  4846. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  4847. if wrap == int32(1) {
  4848. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  4849. }
  4850. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  4851. /* if dictionary would fill window, just replace the history */
  4852. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4853. if wrap == 0 { /* already empty otherwise */
  4854. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4855. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4856. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4857. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4858. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4859. }
  4860. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  4861. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4862. }
  4863. /* insert dictionary into window and hash */
  4864. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  4865. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  4866. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  4867. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  4868. _fill_window(tls, s)
  4869. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  4870. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  4871. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  4872. for {
  4873. (*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
  4874. *(*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))
  4875. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  4876. str++
  4877. goto _2
  4878. _2:
  4879. ;
  4880. n--
  4881. v1 = n
  4882. if !(v1 != 0) {
  4883. break
  4884. }
  4885. }
  4886. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  4887. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4888. _fill_window(tls, s)
  4889. }
  4890. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4891. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  4892. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4893. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4894. v3 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4895. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  4896. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  4897. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4898. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  4899. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  4900. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  4901. return m_Z_OK
  4902. }
  4903. // C documentation
  4904. //
  4905. // /* ========================================================================= */
  4906. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  4907. var len1 TuInt
  4908. var s uintptr
  4909. _, _ = len1, s
  4910. if _deflateStateCheck(tls, strm) != 0 {
  4911. return -int32(2)
  4912. }
  4913. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4914. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  4915. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  4916. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  4917. }
  4918. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  4919. libc.Xmemcpy(tls, dictionary, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)-uintptr(len1), uint64(len1))
  4920. }
  4921. if dictLength != uintptr(m_Z_NULL) {
  4922. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  4923. }
  4924. return m_Z_OK
  4925. }
  4926. // C documentation
  4927. //
  4928. // /* ========================================================================= */
  4929. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4930. var s uintptr
  4931. var v1 TuLong
  4932. var v2 int32
  4933. var v3 uint64
  4934. _, _, _, _ = s, v1, v2, v3
  4935. if _deflateStateCheck(tls, strm) != 0 {
  4936. return -int32(2)
  4937. }
  4938. v1 = libc.Uint64FromInt32(0)
  4939. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  4940. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  4941. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  4942. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  4943. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  4944. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint64(0)
  4945. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  4946. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  4947. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  4948. }
  4949. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4950. v2 = int32(m_GZIP_STATE)
  4951. } else {
  4952. v2 = int32(m_INIT_STATE)
  4953. }
  4954. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  4955. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  4956. v3 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4957. } else {
  4958. v3 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  4959. }
  4960. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  4961. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  4962. x__tr_init(tls, s)
  4963. return m_Z_OK
  4964. }
  4965. // C documentation
  4966. //
  4967. // /* ===========================================================================
  4968. // * Initialize the "longest match" routines for a new zlib stream
  4969. // */
  4970. func _lm_init(tls *libc.TLS, s uintptr) {
  4971. var v1 TuInt
  4972. _ = v1
  4973. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint64FromInt64(2) * uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  4974. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  4975. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  4976. /* Set the default configuration parameters:
  4977. */
  4978. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  4979. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  4980. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  4981. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  4982. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  4983. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  4984. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  4985. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  4986. v1 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  4987. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  4988. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  4989. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  4990. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  4991. }
  4992. // C documentation
  4993. //
  4994. // /* ========================================================================= */
  4995. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  4996. var ret int32
  4997. _ = ret
  4998. ret = XdeflateResetKeep(tls, strm)
  4999. if ret == m_Z_OK {
  5000. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  5001. }
  5002. return ret
  5003. }
  5004. // C documentation
  5005. //
  5006. // /* ========================================================================= */
  5007. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  5008. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  5009. return -int32(2)
  5010. }
  5011. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  5012. return m_Z_OK
  5013. }
  5014. // C documentation
  5015. //
  5016. // /* ========================================================================= */
  5017. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  5018. if _deflateStateCheck(tls, strm) != 0 {
  5019. return -int32(2)
  5020. }
  5021. if pending != uintptr(m_Z_NULL) {
  5022. *(*uint32)(unsafe.Pointer(pending)) = uint32((*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending)
  5023. }
  5024. if bits != uintptr(m_Z_NULL) {
  5025. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  5026. }
  5027. return m_Z_OK
  5028. }
  5029. // C documentation
  5030. //
  5031. // /* ========================================================================= */
  5032. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  5033. var put int32
  5034. var s, p1 uintptr
  5035. _, _, _ = put, s, p1
  5036. if _deflateStateCheck(tls, strm) != 0 {
  5037. return -int32(2)
  5038. }
  5039. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5040. 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)) {
  5041. return -int32(5)
  5042. }
  5043. for cond := true; cond; cond = bits != 0 {
  5044. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  5045. if put > bits {
  5046. put = bits
  5047. }
  5048. p1 = s + 5936
  5049. *(*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)))
  5050. *(*int32)(unsafe.Pointer(s + 5940)) += put
  5051. x__tr_flush_bits(tls, s)
  5052. value >>= put
  5053. bits -= put
  5054. }
  5055. return m_Z_OK
  5056. }
  5057. // C documentation
  5058. //
  5059. // /* ========================================================================= */
  5060. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  5061. var err int32
  5062. var func1 Tcompress_func
  5063. var s uintptr
  5064. _, _, _ = err, func1, s
  5065. if _deflateStateCheck(tls, strm) != 0 {
  5066. return -int32(2)
  5067. }
  5068. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5069. if level == -int32(1) {
  5070. level = int32(6)
  5071. }
  5072. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  5073. return -int32(2)
  5074. }
  5075. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  5076. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  5077. /* Flush the last buffer: */
  5078. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  5079. if err == -int32(2) {
  5080. return err
  5081. }
  5082. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start+libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) != 0 {
  5083. return -int32(5)
  5084. }
  5085. }
  5086. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  5087. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  5088. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  5089. _slide_hash(tls, s)
  5090. } else {
  5091. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5092. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  5093. }
  5094. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  5095. }
  5096. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  5097. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  5098. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  5099. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = libc.Int32FromUint16(_configuration_table[level].Fnice_length)
  5100. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  5101. }
  5102. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  5103. return m_Z_OK
  5104. }
  5105. // C documentation
  5106. //
  5107. // /* ========================================================================= */
  5108. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  5109. var s uintptr
  5110. _ = s
  5111. if _deflateStateCheck(tls, strm) != 0 {
  5112. return -int32(2)
  5113. }
  5114. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5115. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = libc.Uint32FromInt32(good_length)
  5116. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = libc.Uint32FromInt32(max_lazy)
  5117. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  5118. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = libc.Uint32FromInt32(max_chain)
  5119. return m_Z_OK
  5120. }
  5121. // C documentation
  5122. //
  5123. // /* =========================================================================
  5124. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  5125. // * close to exact, as well as small, upper bound on the compressed size. This
  5126. // * is an expansion of ~0.03%, plus a small constant.
  5127. // *
  5128. // * For any setting other than those defaults for windowBits and memLevel, one
  5129. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  5130. // * ~13%, plus a small constant.
  5131. // *
  5132. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  5133. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  5134. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  5135. // * expansion results from five bytes of header for each stored block.
  5136. // *
  5137. // * The larger expansion of 13% results from a window size less than or equal to
  5138. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  5139. // * the data being compressed may have slid out of the sliding window, impeding
  5140. // * a stored block from being emitted. Then the only choice is a fixed or
  5141. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  5142. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  5143. // * which this can occur is 255 (memLevel == 2).
  5144. // *
  5145. // * Shifts are used to approximate divisions, for speed.
  5146. // */
  5147. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  5148. var fixedlen, storelen, wraplen TuLong
  5149. var s, str, v3, v5 uintptr
  5150. var v1, v7 uint64
  5151. var v2 int32
  5152. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  5153. /* upper bound for fixed blocks with 9-bit literals and length 255
  5154. (memLevel == 2, which is the lowest that may not use stored blocks) --
  5155. ~13% overhead plus a small constant */
  5156. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint64(4)
  5157. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  5158. ~4% overhead plus a small constant */
  5159. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint64(7)
  5160. /* if can't get parameters, return larger bound plus a zlib wrapper */
  5161. if _deflateStateCheck(tls, strm) != 0 {
  5162. if fixedlen > storelen {
  5163. v1 = fixedlen
  5164. } else {
  5165. v1 = storelen
  5166. }
  5167. return v1 + uint64(6)
  5168. }
  5169. /* compute wrapper length */
  5170. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5171. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  5172. case 0: /* raw deflate */
  5173. wraplen = uint64(0)
  5174. case int32(1): /* zlib wrapper */
  5175. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  5176. v2 = int32(4)
  5177. } else {
  5178. v2 = 0
  5179. }
  5180. wraplen = libc.Uint64FromInt32(int32(6) + v2)
  5181. case int32(2): /* gzip wrapper */
  5182. wraplen = uint64(18)
  5183. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  5184. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5185. wraplen += uint64(uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len)
  5186. }
  5187. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  5188. if str != uintptr(m_Z_NULL) {
  5189. for {
  5190. wraplen++
  5191. goto _4
  5192. _4:
  5193. ;
  5194. v3 = str
  5195. str++
  5196. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  5197. break
  5198. }
  5199. }
  5200. }
  5201. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  5202. if str != uintptr(m_Z_NULL) {
  5203. for {
  5204. wraplen++
  5205. goto _6
  5206. _6:
  5207. ;
  5208. v5 = str
  5209. str++
  5210. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  5211. break
  5212. }
  5213. }
  5214. }
  5215. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5216. wraplen += uint64(2)
  5217. }
  5218. }
  5219. default: /* for compiler happiness */
  5220. wraplen = uint64(6)
  5221. }
  5222. /* if not default parameters, return one of the conservative bounds */
  5223. 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)) {
  5224. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  5225. v7 = fixedlen
  5226. } else {
  5227. v7 = storelen
  5228. }
  5229. return v7 + wraplen
  5230. }
  5231. /* default settings: return tight bound for that case -- ~0.03% overhead
  5232. plus a small constant */
  5233. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13) - uint64(6) + wraplen
  5234. }
  5235. // C documentation
  5236. //
  5237. // /* =========================================================================
  5238. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  5239. // * IN assertion: the stream state is correct and there is enough room in
  5240. // * pending_buf.
  5241. // */
  5242. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  5243. var v1, v3 Tulg
  5244. var v2, v4 uintptr
  5245. _, _, _, _ = v1, v2, v3, v4
  5246. v2 = s + 40
  5247. v1 = *(*Tulg)(unsafe.Pointer(v2))
  5248. *(*Tulg)(unsafe.Pointer(v2))++
  5249. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  5250. v4 = s + 40
  5251. v3 = *(*Tulg)(unsafe.Pointer(v4))
  5252. *(*Tulg)(unsafe.Pointer(v4))++
  5253. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  5254. }
  5255. // C documentation
  5256. //
  5257. // /* =========================================================================
  5258. // * Flush as much pending output as possible. All deflate() output, except for
  5259. // * some deflate_stored() output, goes through this function so some
  5260. // * applications may wish to modify it to avoid allocating a large
  5261. // * strm->next_out buffer and copying into it. (See also read_buf()).
  5262. // */
  5263. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  5264. var len1 uint32
  5265. var s uintptr
  5266. _, _ = len1, s
  5267. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5268. x__tr_flush_bits(tls, s)
  5269. len1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5270. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  5271. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  5272. }
  5273. if len1 == uint32(0) {
  5274. return
  5275. }
  5276. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(len1))
  5277. *(*uintptr)(unsafe.Pointer(strm + 24)) += uintptr(len1)
  5278. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  5279. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(len1)
  5280. *(*TuInt)(unsafe.Pointer(strm + 32)) -= len1
  5281. *(*Tulg)(unsafe.Pointer(s + 40)) -= uint64(len1)
  5282. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint64(0) {
  5283. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  5284. }
  5285. }
  5286. /* ===========================================================================
  5287. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  5288. */
  5289. // C documentation
  5290. //
  5291. // /* ========================================================================= */
  5292. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  5293. 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
  5294. var bstate Tblock_state
  5295. var copy1, header, left, level_flags TuInt
  5296. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  5297. 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
  5298. var v3 bool
  5299. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5300. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  5301. return -int32(2)
  5302. }
  5303. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  5304. 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) {
  5305. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  5306. return -libc.Int32FromInt32(2)
  5307. }
  5308. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5309. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5310. return -libc.Int32FromInt32(5)
  5311. }
  5312. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  5313. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  5314. /* Flush as much pending output as possible */
  5315. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5316. _flush_pending(tls, strm)
  5317. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5318. /* Since avail_out is 0, deflate will be called again with
  5319. * more output space, but possibly with both pending and
  5320. * avail_in equal to zero. There won't be anything to do,
  5321. * but this is not an error situation so make sure we
  5322. * return OK instead of BUF_ERROR at next call of deflate:
  5323. */
  5324. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5325. return m_Z_OK
  5326. }
  5327. /* Make sure there is something to do and avoid duplicate consecutive
  5328. * flushes. For repeated and useless calls with Z_FINISH, we keep
  5329. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  5330. */
  5331. } else {
  5332. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  5333. if flush > int32(4) {
  5334. v1 = int32(9)
  5335. } else {
  5336. v1 = 0
  5337. }
  5338. if old_flush > int32(4) {
  5339. v2 = int32(9)
  5340. } else {
  5341. v2 = 0
  5342. }
  5343. }
  5344. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  5345. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5346. return -libc.Int32FromInt32(5)
  5347. }
  5348. }
  5349. /* User must not provide more input after the first FINISH: */
  5350. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  5351. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  5352. return -libc.Int32FromInt32(5)
  5353. }
  5354. /* Write the header */
  5355. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  5356. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5357. }
  5358. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  5359. /* zlib header */
  5360. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  5361. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5362. level_flags = uint32(0)
  5363. } else {
  5364. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  5365. level_flags = uint32(1)
  5366. } else {
  5367. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  5368. level_flags = uint32(2)
  5369. } else {
  5370. level_flags = uint32(3)
  5371. }
  5372. }
  5373. }
  5374. header |= level_flags << libc.Int32FromInt32(6)
  5375. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5376. header |= uint32(m_PRESET_DICT1)
  5377. }
  5378. header += uint32(31) - header%uint32(31)
  5379. _putShortMSB(tls, s, header)
  5380. /* Save the adler32 of the preset dictionary: */
  5381. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  5382. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5383. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5384. }
  5385. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5386. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5387. /* Compression must start with an empty pending buffer */
  5388. _flush_pending(tls, strm)
  5389. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5390. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5391. return m_Z_OK
  5392. }
  5393. }
  5394. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  5395. /* gzip header */
  5396. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5397. v5 = s + 40
  5398. v4 = *(*Tulg)(unsafe.Pointer(v5))
  5399. *(*Tulg)(unsafe.Pointer(v5))++
  5400. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = libc.Uint8FromInt32(libc.Int32FromInt32(31))
  5401. v7 = s + 40
  5402. v6 = *(*Tulg)(unsafe.Pointer(v7))
  5403. *(*Tulg)(unsafe.Pointer(v7))++
  5404. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = libc.Uint8FromInt32(libc.Int32FromInt32(139))
  5405. v9 = s + 40
  5406. v8 = *(*Tulg)(unsafe.Pointer(v9))
  5407. *(*Tulg)(unsafe.Pointer(v9))++
  5408. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = libc.Uint8FromInt32(libc.Int32FromInt32(8))
  5409. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  5410. v11 = s + 40
  5411. v10 = *(*Tulg)(unsafe.Pointer(v11))
  5412. *(*Tulg)(unsafe.Pointer(v11))++
  5413. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5414. v13 = s + 40
  5415. v12 = *(*Tulg)(unsafe.Pointer(v13))
  5416. *(*Tulg)(unsafe.Pointer(v13))++
  5417. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5418. v15 = s + 40
  5419. v14 = *(*Tulg)(unsafe.Pointer(v15))
  5420. *(*Tulg)(unsafe.Pointer(v15))++
  5421. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5422. v17 = s + 40
  5423. v16 = *(*Tulg)(unsafe.Pointer(v17))
  5424. *(*Tulg)(unsafe.Pointer(v17))++
  5425. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5426. v19 = s + 40
  5427. v18 = *(*Tulg)(unsafe.Pointer(v19))
  5428. *(*Tulg)(unsafe.Pointer(v19))++
  5429. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = libc.Uint8FromInt32(libc.Int32FromInt32(0))
  5430. v21 = s + 40
  5431. v20 = *(*Tulg)(unsafe.Pointer(v21))
  5432. *(*Tulg)(unsafe.Pointer(v21))++
  5433. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5434. v22 = int32(2)
  5435. } else {
  5436. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5437. v23 = int32(4)
  5438. } else {
  5439. v23 = 0
  5440. }
  5441. v22 = v23
  5442. }
  5443. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = libc.Uint8FromInt32(v22)
  5444. v25 = s + 40
  5445. v24 = *(*Tulg)(unsafe.Pointer(v25))
  5446. *(*Tulg)(unsafe.Pointer(v25))++
  5447. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = libc.Uint8FromInt32(libc.Int32FromInt32(m_OS_CODE))
  5448. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5449. /* Compression must start with an empty pending buffer */
  5450. _flush_pending(tls, strm)
  5451. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5452. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5453. return m_Z_OK
  5454. }
  5455. } else {
  5456. v27 = s + 40
  5457. v26 = *(*Tulg)(unsafe.Pointer(v27))
  5458. *(*Tulg)(unsafe.Pointer(v27))++
  5459. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  5460. v28 = int32(1)
  5461. } else {
  5462. v28 = 0
  5463. }
  5464. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5465. v29 = int32(2)
  5466. } else {
  5467. v29 = 0
  5468. }
  5469. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  5470. v30 = 0
  5471. } else {
  5472. v30 = int32(4)
  5473. }
  5474. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  5475. v31 = 0
  5476. } else {
  5477. v31 = int32(8)
  5478. }
  5479. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  5480. v32 = 0
  5481. } else {
  5482. v32 = int32(16)
  5483. }
  5484. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = libc.Uint8FromInt32(v28 + v29 + v30 + v31 + v32)
  5485. v34 = s + 40
  5486. v33 = *(*Tulg)(unsafe.Pointer(v34))
  5487. *(*Tulg)(unsafe.Pointer(v34))++
  5488. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v33))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime & libc.Uint64FromInt32(0xff))
  5489. v36 = s + 40
  5490. v35 = *(*Tulg)(unsafe.Pointer(v36))
  5491. *(*Tulg)(unsafe.Pointer(v36))++
  5492. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v35))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5493. v38 = s + 40
  5494. v37 = *(*Tulg)(unsafe.Pointer(v38))
  5495. *(*Tulg)(unsafe.Pointer(v38))++
  5496. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v37))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5497. v40 = s + 40
  5498. v39 = *(*Tulg)(unsafe.Pointer(v40))
  5499. *(*Tulg)(unsafe.Pointer(v40))++
  5500. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v39))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5501. v42 = s + 40
  5502. v41 = *(*Tulg)(unsafe.Pointer(v42))
  5503. *(*Tulg)(unsafe.Pointer(v42))++
  5504. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  5505. v43 = int32(2)
  5506. } else {
  5507. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  5508. v44 = int32(4)
  5509. } else {
  5510. v44 = 0
  5511. }
  5512. v43 = v44
  5513. }
  5514. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = libc.Uint8FromInt32(v43)
  5515. v46 = s + 40
  5516. v45 = *(*Tulg)(unsafe.Pointer(v46))
  5517. *(*Tulg)(unsafe.Pointer(v46))++
  5518. *(*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))
  5519. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5520. v48 = s + 40
  5521. v47 = *(*Tulg)(unsafe.Pointer(v48))
  5522. *(*Tulg)(unsafe.Pointer(v48))++
  5523. *(*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))
  5524. v50 = s + 40
  5525. v49 = *(*Tulg)(unsafe.Pointer(v50))
  5526. *(*Tulg)(unsafe.Pointer(v50))++
  5527. *(*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))
  5528. }
  5529. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5530. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending))
  5531. }
  5532. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5533. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  5534. }
  5535. }
  5536. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  5537. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  5538. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  5539. left = uint32(uint64((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex)
  5540. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(left) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5541. copy1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  5542. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(copy1))
  5543. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  5544. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5545. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  5546. }
  5547. *(*Tulg)(unsafe.Pointer(s + 64)) += uint64(copy1)
  5548. _flush_pending(tls, strm)
  5549. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5550. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5551. return m_Z_OK
  5552. }
  5553. beg = uint64(0)
  5554. left -= copy1
  5555. }
  5556. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(left))
  5557. *(*Tulg)(unsafe.Pointer(s + 40)) += uint64(left)
  5558. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  5559. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg))
  5560. }
  5561. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5562. }
  5563. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  5564. }
  5565. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  5566. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  5567. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5568. for cond := true; cond; cond = val != 0 {
  5569. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5570. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5571. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  5572. }
  5573. _flush_pending(tls, strm)
  5574. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5575. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5576. return m_Z_OK
  5577. }
  5578. beg1 = uint64(0)
  5579. }
  5580. v52 = s + 64
  5581. v51 = *(*Tulg)(unsafe.Pointer(v52))
  5582. *(*Tulg)(unsafe.Pointer(v52))++
  5583. val = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  5584. v54 = s + 40
  5585. v53 = *(*Tulg)(unsafe.Pointer(v54))
  5586. *(*Tulg)(unsafe.Pointer(v54))++
  5587. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = libc.Uint8FromInt32(val)
  5588. }
  5589. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  5590. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1))
  5591. }
  5592. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  5593. }
  5594. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  5595. }
  5596. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  5597. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  5598. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  5599. for cond := true; cond; cond = val1 != 0 {
  5600. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5601. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5602. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  5603. }
  5604. _flush_pending(tls, strm)
  5605. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5606. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5607. return m_Z_OK
  5608. }
  5609. beg2 = uint64(0)
  5610. }
  5611. v56 = s + 64
  5612. v55 = *(*Tulg)(unsafe.Pointer(v56))
  5613. *(*Tulg)(unsafe.Pointer(v56))++
  5614. val1 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  5615. v58 = s + 40
  5616. v57 = *(*Tulg)(unsafe.Pointer(v58))
  5617. *(*Tulg)(unsafe.Pointer(v58))++
  5618. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = libc.Uint8FromInt32(val1)
  5619. }
  5620. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  5621. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2))
  5622. }
  5623. }
  5624. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  5625. }
  5626. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  5627. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  5628. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  5629. _flush_pending(tls, strm)
  5630. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5631. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5632. return m_Z_OK
  5633. }
  5634. }
  5635. v60 = s + 40
  5636. v59 = *(*Tulg)(unsafe.Pointer(v60))
  5637. *(*Tulg)(unsafe.Pointer(v60))++
  5638. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5639. v62 = s + 40
  5640. v61 = *(*Tulg)(unsafe.Pointer(v62))
  5641. *(*Tulg)(unsafe.Pointer(v62))++
  5642. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5643. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  5644. }
  5645. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  5646. /* Compression must start with an empty pending buffer */
  5647. _flush_pending(tls, strm)
  5648. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5649. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  5650. return m_Z_OK
  5651. }
  5652. }
  5653. /* Start a new block or continue the current one.
  5654. */
  5655. 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) {
  5656. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  5657. v63 = _deflate_stored(tls, s, flush)
  5658. } else {
  5659. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  5660. v64 = _deflate_huff(tls, s, flush)
  5661. } else {
  5662. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  5663. v65 = _deflate_rle(tls, s, flush)
  5664. } else {
  5665. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  5666. }
  5667. v64 = v65
  5668. }
  5669. v63 = v64
  5670. }
  5671. bstate = v63
  5672. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  5673. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  5674. }
  5675. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  5676. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5677. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  5678. }
  5679. return m_Z_OK
  5680. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  5681. * of deflate should use the same flush parameter to make sure
  5682. * that the flush is complete. So we don't have to output an
  5683. * empty block here, this will be done at next call. This also
  5684. * ensures that for a very small output buffer, we emit at most
  5685. * one empty block.
  5686. */
  5687. }
  5688. if bstate == int32(_block_done) {
  5689. if flush == int32(m_Z_PARTIAL_FLUSH) {
  5690. x__tr_align(tls, s)
  5691. } else {
  5692. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  5693. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), 0)
  5694. /* For a full flush, this empty block will be recognized
  5695. * as a special marker by inflate_sync().
  5696. */
  5697. if flush == int32(m_Z_FULL_FLUSH) {
  5698. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  5699. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2)) /* forget history */
  5700. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  5701. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  5702. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  5703. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  5704. }
  5705. }
  5706. }
  5707. }
  5708. _flush_pending(tls, strm)
  5709. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  5710. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  5711. return m_Z_OK
  5712. }
  5713. }
  5714. }
  5715. if flush != int32(m_Z_FINISH) {
  5716. return m_Z_OK
  5717. }
  5718. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  5719. return int32(m_Z_STREAM_END)
  5720. }
  5721. /* Write the trailer */
  5722. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  5723. v67 = s + 40
  5724. v66 = *(*Tulg)(unsafe.Pointer(v67))
  5725. *(*Tulg)(unsafe.Pointer(v67))++
  5726. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  5727. v69 = s + 40
  5728. v68 = *(*Tulg)(unsafe.Pointer(v69))
  5729. *(*Tulg)(unsafe.Pointer(v69))++
  5730. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5731. v71 = s + 40
  5732. v70 = *(*Tulg)(unsafe.Pointer(v71))
  5733. *(*Tulg)(unsafe.Pointer(v71))++
  5734. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5735. v73 = s + 40
  5736. v72 = *(*Tulg)(unsafe.Pointer(v73))
  5737. *(*Tulg)(unsafe.Pointer(v73))++
  5738. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5739. v75 = s + 40
  5740. v74 = *(*Tulg)(unsafe.Pointer(v75))
  5741. *(*Tulg)(unsafe.Pointer(v75))++
  5742. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint64FromInt32(0xff))
  5743. v77 = s + 40
  5744. v76 = *(*Tulg)(unsafe.Pointer(v77))
  5745. *(*Tulg)(unsafe.Pointer(v77))++
  5746. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(0xff))
  5747. v79 = s + 40
  5748. v78 = *(*Tulg)(unsafe.Pointer(v79))
  5749. *(*Tulg)(unsafe.Pointer(v79))++
  5750. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint64FromInt32(0xff))
  5751. v81 = s + 40
  5752. v80 = *(*Tulg)(unsafe.Pointer(v81))
  5753. *(*Tulg)(unsafe.Pointer(v81))++
  5754. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint64FromInt32(0xff))
  5755. } else {
  5756. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  5757. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  5758. }
  5759. _flush_pending(tls, strm)
  5760. /* If avail_out is zero, the application will call deflate again
  5761. * to flush the rest.
  5762. */
  5763. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  5764. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  5765. } /* write the trailer only once! */
  5766. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  5767. v82 = m_Z_OK
  5768. } else {
  5769. v82 = int32(m_Z_STREAM_END)
  5770. }
  5771. return v82
  5772. }
  5773. // C documentation
  5774. //
  5775. // /* ========================================================================= */
  5776. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  5777. var status, v1 int32
  5778. _, _ = status, v1
  5779. if _deflateStateCheck(tls, strm) != 0 {
  5780. return -int32(2)
  5781. }
  5782. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  5783. /* Deallocate in reverse order of allocations: */
  5784. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  5785. (*(*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)
  5786. }
  5787. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  5788. (*(*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)
  5789. }
  5790. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  5791. (*(*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)
  5792. }
  5793. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  5794. (*(*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)
  5795. }
  5796. (*(*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)
  5797. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  5798. if status == int32(m_BUSY_STATE) {
  5799. v1 = -int32(3)
  5800. } else {
  5801. v1 = m_Z_OK
  5802. }
  5803. return v1
  5804. }
  5805. // C documentation
  5806. //
  5807. // /* =========================================================================
  5808. // * Copy the source state to the destination state.
  5809. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  5810. // * doesn't have enough memory anyway to duplicate compression states).
  5811. // */
  5812. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  5813. var ds, ss uintptr
  5814. _, _ = ds, ss
  5815. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  5816. return -int32(2)
  5817. }
  5818. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  5819. libc.Xmemcpy(tls, dest, source, uint64(112))
  5820. 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)), uint32(libc.Uint64FromInt64(5952)))
  5821. if ds == uintptr(m_Z_NULL) {
  5822. return -int32(4)
  5823. }
  5824. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  5825. libc.Xmemcpy(tls, ds, ss, uint64(5952))
  5826. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  5827. (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  5828. (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  5829. (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  5830. (*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)))
  5831. 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) {
  5832. XdeflateEnd(tls, dest)
  5833. return -int32(4)
  5834. }
  5835. /* following zmemcpy do not work for 16-bit MSDOS */
  5836. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))*uint64(1))
  5837. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size)*uint64(2))
  5838. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size)*uint64(2))
  5839. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize*uint32(m_LIT_BUFS)))
  5840. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  5841. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  5842. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 212
  5843. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2504
  5844. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2748
  5845. return m_Z_OK
  5846. }
  5847. // C documentation
  5848. //
  5849. // /* ===========================================================================
  5850. // * Set match_start to the longest match starting at the given string and
  5851. // * return its length. Matches shorter or equal to prev_length are discarded,
  5852. // * in which case the result is equal to prev_length and match_start is
  5853. // * garbage.
  5854. // * IN assertions: cur_match is the head of the hash chain for the current
  5855. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  5856. // * OUT assertion: the match length is not greater than s->lookahead.
  5857. // */
  5858. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  5859. var best_len, len1, nice_match int32
  5860. var chain_length, v1, v3 uint32
  5861. var limit, v2 TIPos
  5862. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  5863. var scan_end, scan_end1 TByte
  5864. var wmask TuInt
  5865. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  5866. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  5867. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  5868. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  5869. best_len = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  5870. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  5871. 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)) {
  5872. 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)))
  5873. } else {
  5874. v1 = uint32(m_NIL)
  5875. } /* stop if match long enough */
  5876. limit = v1
  5877. /* Stop when cur_match becomes <= limit. To simplify the code,
  5878. * we prevent matches with the string of window index 0.
  5879. */
  5880. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  5881. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  5882. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  5883. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5884. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5885. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  5886. * It is easy to get rid of this optimization if necessary.
  5887. */
  5888. /* Do not waste too much time if we already have a good match: */
  5889. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  5890. chain_length >>= uint32(2)
  5891. }
  5892. /* Do not look for matches beyond the end of the input. This is necessary
  5893. * to make deflate deterministic.
  5894. */
  5895. if libc.Uint32FromInt32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  5896. nice_match = libc.Int32FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  5897. }
  5898. for {
  5899. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  5900. /* Skip to next match if the match length cannot increase
  5901. * or if the match length is less than 2. Note that the checks below
  5902. * for insufficient lookahead only occur occasionally for performance
  5903. * reasons. Therefore uninitialized memory will be accessed, and
  5904. * conditional jumps will be made that depend on those values.
  5905. * However the length of the match is limited to the lookahead, so
  5906. * the output of deflate is not affected by the uninitialized values.
  5907. */
  5908. 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 {
  5909. match++
  5910. v6 = match
  5911. }
  5912. if v7 || libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v6))) != libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  5913. goto _5
  5914. }
  5915. /* The check at best_len - 1 can be removed because it will be made
  5916. * again later. (This heuristic is not always a win.)
  5917. * It is not necessary to compare scan[2] and match[2] since they
  5918. * are always equal when the other bytes match, given that
  5919. * the hash keys are equal and that HASH_BITS >= 8.
  5920. */
  5921. scan += uintptr(2)
  5922. /* The check at best_len - 1 can be removed because it will be made
  5923. * again later. (This heuristic is not always a win.)
  5924. * It is not necessary to compare scan[2] and match[2] since they
  5925. * are always equal when the other bytes match, given that
  5926. * the hash keys are equal and that HASH_BITS >= 8.
  5927. */
  5928. match++
  5929. /* We check for insufficient lookahead only every 8th comparison;
  5930. * the 256th check will be made at strstart + 258.
  5931. */
  5932. for {
  5933. goto _31
  5934. _31:
  5935. ;
  5936. scan++
  5937. v8 = scan
  5938. match++
  5939. v9 = match
  5940. if v12 = libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v8))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  5941. scan++
  5942. v10 = scan
  5943. match++
  5944. v11 = match
  5945. }
  5946. if v15 = v12 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v10))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  5947. scan++
  5948. v13 = scan
  5949. match++
  5950. v14 = match
  5951. }
  5952. if v18 = v15 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v13))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  5953. scan++
  5954. v16 = scan
  5955. match++
  5956. v17 = match
  5957. }
  5958. if v21 = v18 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v16))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  5959. scan++
  5960. v19 = scan
  5961. match++
  5962. v20 = match
  5963. }
  5964. if v24 = v21 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v19))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  5965. scan++
  5966. v22 = scan
  5967. match++
  5968. v23 = match
  5969. }
  5970. if v27 = v24 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v22))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  5971. scan++
  5972. v25 = scan
  5973. match++
  5974. v26 = match
  5975. }
  5976. if v30 = v27 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v25))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  5977. scan++
  5978. v28 = scan
  5979. match++
  5980. v29 = match
  5981. }
  5982. if !(v30 && libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v28))) == libc.Int32FromUint8(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  5983. break
  5984. }
  5985. }
  5986. len1 = int32(m_MAX_MATCH) - int32(int64(strend)-int64(scan))
  5987. scan = strend - uintptr(m_MAX_MATCH)
  5988. if len1 > best_len {
  5989. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  5990. best_len = len1
  5991. if len1 >= nice_match {
  5992. break
  5993. }
  5994. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  5995. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  5996. }
  5997. goto _5
  5998. _5:
  5999. ;
  6000. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  6001. cur_match = v2
  6002. if v4 = v2 > limit; v4 {
  6003. chain_length--
  6004. v3 = chain_length
  6005. }
  6006. if !(v4 && v3 != uint32(0)) {
  6007. break
  6008. }
  6009. }
  6010. if libc.Uint32FromInt32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6011. return libc.Uint32FromInt32(best_len)
  6012. }
  6013. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6014. }
  6015. /* ===========================================================================
  6016. * Flush the current block, with given end-of-file flag.
  6017. * IN assertion: strstart is set to the end of the current match.
  6018. */
  6019. /* Same but force premature exit if necessary. */
  6020. /* Maximum stored block length in deflate format (not including header). */
  6021. /* Minimum of a and b. */
  6022. // C documentation
  6023. //
  6024. // /* ===========================================================================
  6025. // * Copy without compression as much as possible from the input stream, return
  6026. // * the current block state.
  6027. // *
  6028. // * In case deflateParams() is used to later switch to a non-zero compression
  6029. // * level, s->matches (otherwise unused when storing) keeps track of the number
  6030. // * of hash table slides to perform. If s->matches is 1, then one hash table
  6031. // * slide will be done when switching. If s->matches is 2, the maximum value
  6032. // * allowed here, then the hash table will be cleared, since two or more slides
  6033. // * is the same as a clear.
  6034. // *
  6035. // * deflate_stored() is written to minimize the number of times an input byte is
  6036. // * copied. It is most efficient with large input and output buffers, which
  6037. // * maximizes the opportunities to have a single copy from next_in to next_out.
  6038. // */
  6039. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6040. var have, last, left, len1, min_block, used, v3, v4, v6, v7 uint32
  6041. var v1, v5 uint64
  6042. var v2, v8, v9 int32
  6043. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v2, v3, v4, v5, v6, v7, v8, v9
  6044. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(5) > uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  6045. v1 = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6046. } else {
  6047. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(5)
  6048. }
  6049. /* Smallest worthy block size when not flushing or finishing. By default
  6050. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  6051. * large input and output buffers, the stored block size will be larger.
  6052. */
  6053. min_block = uint32(v1)
  6054. last = uint32(0)
  6055. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6056. for cond := true; cond; cond = last == uint32(0) {
  6057. /* Set len to the maximum size block that we can copy directly with the
  6058. * available input data and output space. Set left to how much of that
  6059. * would be copied from what's left in the window.
  6060. */
  6061. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  6062. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6063. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  6064. break
  6065. }
  6066. /* maximum stored block length that will fit in avail_out: */
  6067. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  6068. left = libc.Uint32FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  6069. if uint64(len1) > uint64(left)+uint64((*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  6070. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6071. } /* limit len to the input */
  6072. if len1 > have {
  6073. len1 = have
  6074. } /* limit len to the output */
  6075. /* If the stored block would be less than min_block in length, or if
  6076. * unable to copy all of the available input when flushing, then try
  6077. * copying to the window and the pending buffer instead. Also don't
  6078. * write an empty block when flushing -- deflate() does that.
  6079. */
  6080. 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) {
  6081. break
  6082. }
  6083. /* Make a dummy stored block in pending to get the header bytes,
  6084. * including any pending bits. This also updates the debugging counts.
  6085. */
  6086. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6087. v2 = int32(1)
  6088. } else {
  6089. v2 = 0
  6090. }
  6091. last = libc.Uint32FromInt32(v2)
  6092. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), libc.Int32FromUint32(last))
  6093. /* Replace the lengths in the dummy stored block with len. */
  6094. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(4)))) = uint8(len1)
  6095. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(3)))) = uint8(len1 >> int32(8))
  6096. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(2)))) = uint8(^len1)
  6097. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(1)))) = uint8(^len1 >> int32(8))
  6098. /* Write the stored block header bytes. */
  6099. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6100. /* Copy uncompressed bytes from the window to next_out. */
  6101. if left != 0 {
  6102. if left > len1 {
  6103. left = len1
  6104. }
  6105. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(left))
  6106. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(left)
  6107. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= left
  6108. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(left)
  6109. *(*int64)(unsafe.Pointer(s + 152)) += libc.Int64FromUint32(left)
  6110. len1 -= left
  6111. }
  6112. /* Copy uncompressed bytes directly from next_in to next_out, updating
  6113. * the check value.
  6114. */
  6115. if len1 != 0 {
  6116. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  6117. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(len1)
  6118. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= len1
  6119. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(len1)
  6120. }
  6121. }
  6122. /* Update the sliding window with the last s->w_size bytes of the copied
  6123. * data, or append all of the copied data to the existing window if less
  6124. * than s->w_size bytes were copied. Also update the number of bytes to
  6125. * insert in the hash tables, in the event that deflateParams() switches to
  6126. * a non-zero compression level.
  6127. */
  6128. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  6129. if used != 0 {
  6130. /* If any input was used, then no unused input remains in the window,
  6131. * therefore s->block_start == s->strstart.
  6132. */
  6133. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  6134. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  6135. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size))
  6136. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6137. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6138. } else {
  6139. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) <= uint64(used) {
  6140. /* Slide the window down. */
  6141. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6142. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6143. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6144. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6145. } /* add a pending slide_hash() */
  6146. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6147. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6148. }
  6149. }
  6150. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr(used), uint64(used))
  6151. *(*TuInt)(unsafe.Pointer(s + 172)) += used
  6152. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6153. v3 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6154. } else {
  6155. v3 = used
  6156. }
  6157. *(*TuInt)(unsafe.Pointer(s + 5932)) += v3
  6158. }
  6159. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6160. }
  6161. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  6162. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6163. }
  6164. /* If the last block was written to next_out, then done. */
  6165. if last != 0 {
  6166. return int32(_finish_done)
  6167. }
  6168. /* If flushing and all input has been consumed, then done. */
  6169. 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.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  6170. return int32(_block_done)
  6171. }
  6172. /* Fill the window with any remaining input. */
  6173. have = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6174. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  6175. /* Slide the window down. */
  6176. *(*int64)(unsafe.Pointer(s + 152)) -= libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  6177. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6178. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6179. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  6180. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  6181. } /* add a pending slide_hash() */
  6182. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  6183. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6184. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6185. }
  6186. }
  6187. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  6188. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  6189. }
  6190. if have != 0 {
  6191. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  6192. *(*TuInt)(unsafe.Pointer(s + 172)) += have
  6193. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  6194. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6195. } else {
  6196. v4 = have
  6197. }
  6198. *(*TuInt)(unsafe.Pointer(s + 5932)) += v4
  6199. }
  6200. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  6201. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6202. }
  6203. /* There was not enough avail_out to write a complete worthy or flushed
  6204. * stored block to next_out. Write a stored block to pending instead, if we
  6205. * have enough input for a worthy block, or if flushing and there is enough
  6206. * room for the remaining input as a stored block in the pending buffer.
  6207. */
  6208. have = libc.Uint32FromInt32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  6209. /* maximum stored block length that will fit in pending: */
  6210. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(have) > libc.Uint64FromInt32(libc.Int32FromInt32(m_MAX_STORED)) {
  6211. v5 = libc.Uint64FromInt32(libc.Int32FromInt32(m_MAX_STORED))
  6212. } else {
  6213. v5 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(have)
  6214. }
  6215. have = uint32(v5)
  6216. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6217. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6218. } else {
  6219. v6 = have
  6220. }
  6221. min_block = v6
  6222. left = libc.Uint32FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  6223. 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 {
  6224. if left > have {
  6225. v7 = have
  6226. } else {
  6227. v7 = left
  6228. }
  6229. len1 = v7
  6230. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  6231. v8 = int32(1)
  6232. } else {
  6233. v8 = 0
  6234. }
  6235. last = libc.Uint32FromInt32(v8)
  6236. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(len1), libc.Int32FromUint32(last))
  6237. *(*int64)(unsafe.Pointer(s + 152)) += libc.Int64FromUint32(len1)
  6238. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6239. }
  6240. /* We've done all we can with the available input and output. */
  6241. if last != 0 {
  6242. v9 = int32(_finish_started)
  6243. } else {
  6244. v9 = int32(_need_more)
  6245. }
  6246. return v9
  6247. }
  6248. // C documentation
  6249. //
  6250. // /* ===========================================================================
  6251. // * Compress as much as possible from the input stream, return the current
  6252. // * block state.
  6253. // * This function does not perform lazy evaluation of matches and inserts
  6254. // * new strings in the dictionary only for unmatched strings or for short
  6255. // * matches. It is used only for the fast compression options.
  6256. // */
  6257. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6258. var bflush, v9 int32
  6259. var cc, len1 Tuch
  6260. var dist Tush
  6261. var hash_head TIPos
  6262. var v10, v14, v16, v18, v3, v5, v7 TuInt
  6263. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  6264. var v13, v2 TPosf
  6265. var v21 uint32
  6266. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6267. for {
  6268. /* Make sure that we always have enough lookahead, except
  6269. * at the end of the input file. We need MAX_MATCH bytes
  6270. * for the next match, plus MIN_MATCH bytes to insert the
  6271. * string following the next match.
  6272. */
  6273. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6274. _fill_window(tls, s)
  6275. 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 {
  6276. return int32(_need_more)
  6277. }
  6278. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6279. break
  6280. } /* flush the current block */
  6281. }
  6282. /* Insert the string window[strstart .. strstart + 2] in the
  6283. * dictionary, and set hash_head to the head of the hash chain:
  6284. */
  6285. hash_head = uint32(m_NIL)
  6286. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6287. (*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
  6288. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6289. *(*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
  6290. hash_head = uint32(v2)
  6291. *(*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)
  6292. }
  6293. /* Find the longest match, discarding those <= prev_length.
  6294. * At this point we have always match_length < MIN_MATCH
  6295. */
  6296. 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)) {
  6297. /* To simplify the code, we prevent matches with the string
  6298. * of window index 0 (in particular we have to avoid a match
  6299. * of the string with itself at the start of the input file).
  6300. */
  6301. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6302. /* longest_match() sets match_start */
  6303. }
  6304. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6305. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6306. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  6307. v4 = s + 5900
  6308. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6309. *(*TuInt)(unsafe.Pointer(v4))++
  6310. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6311. v6 = s + 5900
  6312. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6313. *(*TuInt)(unsafe.Pointer(v6))++
  6314. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6315. v8 = s + 5900
  6316. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6317. *(*TuInt)(unsafe.Pointer(v8))++
  6318. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6319. dist--
  6320. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6321. if libc.Int32FromUint16(dist) < int32(256) {
  6322. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6323. } else {
  6324. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6325. }
  6326. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6327. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6328. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6329. /* Insert new strings in the hash table only if the match length
  6330. * is not too large. This saves time but degrades compression.
  6331. */
  6332. 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) {
  6333. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  6334. for {
  6335. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6336. (*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
  6337. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6338. *(*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
  6339. hash_head = uint32(v13)
  6340. *(*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)
  6341. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  6342. * always MIN_MATCH bytes ahead.
  6343. */
  6344. goto _12
  6345. _12:
  6346. ;
  6347. v11 = s + 160
  6348. *(*TuInt)(unsafe.Pointer(v11))--
  6349. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6350. if !(v10 != uint32(0)) {
  6351. break
  6352. }
  6353. }
  6354. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6355. } else {
  6356. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6357. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6358. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  6359. (*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
  6360. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  6361. * matter since it will be recomputed at next deflate call.
  6362. */
  6363. }
  6364. } else {
  6365. /* No match, output a literal byte */
  6366. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6367. v15 = s + 5900
  6368. v14 = *(*TuInt)(unsafe.Pointer(v15))
  6369. *(*TuInt)(unsafe.Pointer(v15))++
  6370. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  6371. v17 = s + 5900
  6372. v16 = *(*TuInt)(unsafe.Pointer(v17))
  6373. *(*TuInt)(unsafe.Pointer(v17))++
  6374. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  6375. v19 = s + 5900
  6376. v18 = *(*TuInt)(unsafe.Pointer(v19))
  6377. *(*TuInt)(unsafe.Pointer(v19))++
  6378. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  6379. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6380. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6381. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6382. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6383. }
  6384. if bflush != 0 {
  6385. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6386. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6387. } else {
  6388. v20 = libc.UintptrFromInt32(m_Z_NULL)
  6389. }
  6390. x__tr_flush_block(tls, s, v20, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6391. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6392. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6393. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6394. return int32(_need_more)
  6395. }
  6396. }
  6397. goto _1
  6398. _1:
  6399. }
  6400. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6401. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6402. } else {
  6403. v21 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6404. }
  6405. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  6406. if flush == int32(m_Z_FINISH) {
  6407. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6408. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6409. } else {
  6410. v22 = libc.UintptrFromInt32(m_Z_NULL)
  6411. }
  6412. x__tr_flush_block(tls, s, v22, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6413. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6414. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6415. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6416. return int32(_finish_started)
  6417. }
  6418. return int32(_finish_done)
  6419. }
  6420. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6421. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6422. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6423. } else {
  6424. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6425. }
  6426. x__tr_flush_block(tls, s, v23, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6427. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6428. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6429. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6430. return int32(_need_more)
  6431. }
  6432. }
  6433. return int32(_block_done)
  6434. }
  6435. // C documentation
  6436. //
  6437. // /* ===========================================================================
  6438. // * Same as above, but achieves better compression. We use a lazy
  6439. // * evaluation for matches: a match is finally adopted only if there is
  6440. // * no better match at the next window position.
  6441. // */
  6442. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6443. var bflush, v9 int32
  6444. var cc, cc1, len1 Tuch
  6445. var dist Tush
  6446. var hash_head TIPos
  6447. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  6448. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  6449. var v15, v2 TPosf
  6450. var v30 uint32
  6451. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6452. /* Process the input block. */
  6453. for {
  6454. /* Make sure that we always have enough lookahead, except
  6455. * at the end of the input file. We need MAX_MATCH bytes
  6456. * for the next match, plus MIN_MATCH bytes to insert the
  6457. * string following the next match.
  6458. */
  6459. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < libc.Uint32FromInt32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  6460. _fill_window(tls, s)
  6461. 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 {
  6462. return int32(_need_more)
  6463. }
  6464. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6465. break
  6466. } /* flush the current block */
  6467. }
  6468. /* Insert the string window[strstart .. strstart + 2] in the
  6469. * dictionary, and set hash_head to the head of the hash chain:
  6470. */
  6471. hash_head = uint32(m_NIL)
  6472. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6473. (*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
  6474. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6475. *(*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
  6476. hash_head = uint32(v2)
  6477. *(*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)
  6478. }
  6479. /* Find the longest match, discarding those <= prev_length.
  6480. */
  6481. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6482. /* Find the longest match, discarding those <= prev_length.
  6483. */
  6484. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  6485. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6486. 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)) {
  6487. /* To simplify the code, we prevent matches with the string
  6488. * of window index 0 (in particular we have to avoid a match
  6489. * of the string with itself at the start of the input file).
  6490. */
  6491. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  6492. /* longest_match() sets match_start */
  6493. 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)) {
  6494. /* If prev_match is also MIN_MATCH, match_start is garbage
  6495. * but we will ignore the current match anyway.
  6496. */
  6497. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6498. }
  6499. }
  6500. /* If there was a match at the previous step and the current
  6501. * match is not better, output the previous match:
  6502. */
  6503. 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 {
  6504. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  6505. /* Do not insert strings in hash table beyond this. */
  6506. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6507. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  6508. v4 = s + 5900
  6509. v3 = *(*TuInt)(unsafe.Pointer(v4))
  6510. *(*TuInt)(unsafe.Pointer(v4))++
  6511. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  6512. v6 = s + 5900
  6513. v5 = *(*TuInt)(unsafe.Pointer(v6))
  6514. *(*TuInt)(unsafe.Pointer(v6))++
  6515. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6516. v8 = s + 5900
  6517. v7 = *(*TuInt)(unsafe.Pointer(v8))
  6518. *(*TuInt)(unsafe.Pointer(v8))++
  6519. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  6520. dist--
  6521. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6522. if libc.Int32FromUint16(dist) < int32(256) {
  6523. v9 = libc.Int32FromUint8(x__dist_code[dist])
  6524. } else {
  6525. v9 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6526. }
  6527. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  6528. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6529. /* Insert in hash table all strings up to the end of the match.
  6530. * strstart - 1 and strstart are already inserted. If there is not
  6531. * enough lookahead, the last two strings are not inserted in
  6532. * the hash table.
  6533. */
  6534. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  6535. *(*TuInt)(unsafe.Pointer(s + 184)) -= uint32(2)
  6536. for {
  6537. v14 = s + 172
  6538. *(*TuInt)(unsafe.Pointer(v14))++
  6539. v13 = *(*TuInt)(unsafe.Pointer(v14))
  6540. if v13 <= max_insert {
  6541. (*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
  6542. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6543. *(*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
  6544. hash_head = uint32(v15)
  6545. *(*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)
  6546. }
  6547. goto _12
  6548. _12:
  6549. ;
  6550. v11 = s + 184
  6551. *(*TuInt)(unsafe.Pointer(v11))--
  6552. v10 = *(*TuInt)(unsafe.Pointer(v11))
  6553. if !(v10 != uint32(0)) {
  6554. break
  6555. }
  6556. }
  6557. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6558. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6559. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6560. if bflush != 0 {
  6561. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6562. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6563. } else {
  6564. v16 = libc.UintptrFromInt32(m_Z_NULL)
  6565. }
  6566. x__tr_flush_block(tls, s, v16, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6567. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6568. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6569. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6570. return int32(_need_more)
  6571. }
  6572. }
  6573. } else {
  6574. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6575. /* If there was no match at the previous position, output a
  6576. * single literal. If there was a match but the current match
  6577. * is longer, truncate the previous match to a single literal.
  6578. */
  6579. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6580. v18 = s + 5900
  6581. v17 = *(*TuInt)(unsafe.Pointer(v18))
  6582. *(*TuInt)(unsafe.Pointer(v18))++
  6583. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  6584. v20 = s + 5900
  6585. v19 = *(*TuInt)(unsafe.Pointer(v20))
  6586. *(*TuInt)(unsafe.Pointer(v20))++
  6587. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  6588. v22 = s + 5900
  6589. v21 = *(*TuInt)(unsafe.Pointer(v22))
  6590. *(*TuInt)(unsafe.Pointer(v22))++
  6591. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  6592. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6593. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6594. if bflush != 0 {
  6595. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6596. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6597. } else {
  6598. v23 = libc.UintptrFromInt32(m_Z_NULL)
  6599. }
  6600. x__tr_flush_block(tls, s, v23, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6601. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6602. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6603. }
  6604. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6605. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6606. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6607. return int32(_need_more)
  6608. }
  6609. } else {
  6610. /* There is no previous match to compare with, wait for
  6611. * the next step to decide.
  6612. */
  6613. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  6614. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6615. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6616. }
  6617. }
  6618. goto _1
  6619. _1:
  6620. }
  6621. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  6622. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  6623. v25 = s + 5900
  6624. v24 = *(*TuInt)(unsafe.Pointer(v25))
  6625. *(*TuInt)(unsafe.Pointer(v25))++
  6626. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  6627. v27 = s + 5900
  6628. v26 = *(*TuInt)(unsafe.Pointer(v27))
  6629. *(*TuInt)(unsafe.Pointer(v27))++
  6630. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  6631. v29 = s + 5900
  6632. v28 = *(*TuInt)(unsafe.Pointer(v29))
  6633. *(*TuInt)(unsafe.Pointer(v29))++
  6634. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  6635. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc1)*4))++
  6636. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6637. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6638. }
  6639. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  6640. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6641. } else {
  6642. v30 = libc.Uint32FromInt32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6643. }
  6644. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  6645. if flush == int32(m_Z_FINISH) {
  6646. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6647. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6648. } else {
  6649. v31 = libc.UintptrFromInt32(m_Z_NULL)
  6650. }
  6651. x__tr_flush_block(tls, s, v31, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6652. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6653. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6654. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6655. return int32(_finish_started)
  6656. }
  6657. return int32(_finish_done)
  6658. }
  6659. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6660. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6661. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6662. } else {
  6663. v32 = libc.UintptrFromInt32(m_Z_NULL)
  6664. }
  6665. x__tr_flush_block(tls, s, v32, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6666. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6667. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6668. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6669. return int32(_need_more)
  6670. }
  6671. }
  6672. return int32(_block_done)
  6673. }
  6674. // C documentation
  6675. //
  6676. // /* ===========================================================================
  6677. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  6678. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  6679. // * deflate switches away from Z_RLE.)
  6680. // */
  6681. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6682. var bflush, v29 int32
  6683. var cc, len1 Tuch
  6684. var dist Tush
  6685. var prev, v23, v25, v27, v30, v32, v34 TuInt
  6686. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  6687. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  6688. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  6689. for {
  6690. /* Make sure that we always have enough lookahead, except
  6691. * at the end of the input file. We need MAX_MATCH bytes
  6692. * for the longest run, plus one for the unrolled loop.
  6693. */
  6694. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  6695. _fill_window(tls, s)
  6696. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  6697. return int32(_need_more)
  6698. }
  6699. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6700. break
  6701. } /* flush the current block */
  6702. }
  6703. /* See how many times the previous byte repeats */
  6704. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6705. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  6706. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  6707. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  6708. scan++
  6709. v2 = scan
  6710. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  6711. scan++
  6712. v3 = scan
  6713. }
  6714. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  6715. scan++
  6716. v5 = scan
  6717. }
  6718. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  6719. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  6720. for {
  6721. goto _22
  6722. _22:
  6723. ;
  6724. scan++
  6725. v7 = scan
  6726. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  6727. scan++
  6728. v8 = scan
  6729. }
  6730. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  6731. scan++
  6732. v10 = scan
  6733. }
  6734. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  6735. scan++
  6736. v12 = scan
  6737. }
  6738. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  6739. scan++
  6740. v14 = scan
  6741. }
  6742. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  6743. scan++
  6744. v16 = scan
  6745. }
  6746. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  6747. scan++
  6748. v18 = scan
  6749. }
  6750. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  6751. scan++
  6752. v20 = scan
  6753. }
  6754. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  6755. break
  6756. }
  6757. }
  6758. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - libc.Uint32FromInt64(int64(strend)-int64(scan))
  6759. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  6760. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6761. }
  6762. }
  6763. }
  6764. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  6765. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  6766. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  6767. dist = libc.Uint16FromInt32(libc.Int32FromInt32(1))
  6768. v24 = s + 5900
  6769. v23 = *(*TuInt)(unsafe.Pointer(v24))
  6770. *(*TuInt)(unsafe.Pointer(v24))++
  6771. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  6772. v26 = s + 5900
  6773. v25 = *(*TuInt)(unsafe.Pointer(v26))
  6774. *(*TuInt)(unsafe.Pointer(v26))++
  6775. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = libc.Uint8FromInt32(libc.Int32FromUint16(dist) >> libc.Int32FromInt32(8))
  6776. v28 = s + 5900
  6777. v27 = *(*TuInt)(unsafe.Pointer(v28))
  6778. *(*TuInt)(unsafe.Pointer(v28))++
  6779. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  6780. dist--
  6781. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  6782. if libc.Int32FromUint16(dist) < int32(256) {
  6783. v29 = libc.Int32FromUint8(x__dist_code[dist])
  6784. } else {
  6785. v29 = libc.Int32FromUint8(x__dist_code[int32(256)+libc.Int32FromUint16(dist)>>int32(7)])
  6786. }
  6787. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v29)*4))++
  6788. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6789. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6790. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  6791. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6792. } else {
  6793. /* No match, output a literal byte */
  6794. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6795. v31 = s + 5900
  6796. v30 = *(*TuInt)(unsafe.Pointer(v31))
  6797. *(*TuInt)(unsafe.Pointer(v31))++
  6798. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  6799. v33 = s + 5900
  6800. v32 = *(*TuInt)(unsafe.Pointer(v33))
  6801. *(*TuInt)(unsafe.Pointer(v33))++
  6802. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  6803. v35 = s + 5900
  6804. v34 = *(*TuInt)(unsafe.Pointer(v35))
  6805. *(*TuInt)(unsafe.Pointer(v35))++
  6806. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  6807. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6808. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6809. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6810. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6811. }
  6812. if bflush != 0 {
  6813. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6814. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6815. } else {
  6816. v36 = libc.UintptrFromInt32(m_Z_NULL)
  6817. }
  6818. x__tr_flush_block(tls, s, v36, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6819. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6820. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6821. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6822. return int32(_need_more)
  6823. }
  6824. }
  6825. goto _1
  6826. _1:
  6827. }
  6828. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6829. if flush == int32(m_Z_FINISH) {
  6830. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6831. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6832. } else {
  6833. v37 = libc.UintptrFromInt32(m_Z_NULL)
  6834. }
  6835. x__tr_flush_block(tls, s, v37, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6836. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6837. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6838. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6839. return int32(_finish_started)
  6840. }
  6841. return int32(_finish_done)
  6842. }
  6843. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6844. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6845. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6846. } else {
  6847. v38 = libc.UintptrFromInt32(m_Z_NULL)
  6848. }
  6849. x__tr_flush_block(tls, s, v38, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6850. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6851. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6852. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6853. return int32(_need_more)
  6854. }
  6855. }
  6856. return int32(_block_done)
  6857. }
  6858. // C documentation
  6859. //
  6860. // /* ===========================================================================
  6861. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  6862. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  6863. // */
  6864. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  6865. var bflush int32
  6866. var cc Tuch
  6867. var v10, v3, v5, v7, v8, v9 uintptr
  6868. var v2, v4, v6 TuInt
  6869. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  6870. for {
  6871. /* Make sure that we have a literal to write. */
  6872. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6873. _fill_window(tls, s)
  6874. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6875. if flush == m_Z_NO_FLUSH {
  6876. return int32(_need_more)
  6877. }
  6878. break /* flush the current block */
  6879. }
  6880. }
  6881. /* Output a literal byte */
  6882. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  6883. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  6884. v3 = s + 5900
  6885. v2 = *(*TuInt)(unsafe.Pointer(v3))
  6886. *(*TuInt)(unsafe.Pointer(v3))++
  6887. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  6888. v5 = s + 5900
  6889. v4 = *(*TuInt)(unsafe.Pointer(v5))
  6890. *(*TuInt)(unsafe.Pointer(v5))++
  6891. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  6892. v7 = s + 5900
  6893. v6 = *(*TuInt)(unsafe.Pointer(v7))
  6894. *(*TuInt)(unsafe.Pointer(v7))++
  6895. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  6896. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  6897. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  6898. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  6899. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  6900. if bflush != 0 {
  6901. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6902. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6903. } else {
  6904. v8 = libc.UintptrFromInt32(m_Z_NULL)
  6905. }
  6906. x__tr_flush_block(tls, s, v8, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6907. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6908. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6909. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6910. return int32(_need_more)
  6911. }
  6912. }
  6913. goto _1
  6914. _1:
  6915. }
  6916. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6917. if flush == int32(m_Z_FINISH) {
  6918. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6919. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6920. } else {
  6921. v9 = libc.UintptrFromInt32(m_Z_NULL)
  6922. }
  6923. x__tr_flush_block(tls, s, v9, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  6924. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6925. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6926. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6927. return int32(_finish_started)
  6928. }
  6929. return int32(_finish_done)
  6930. }
  6931. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  6932. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  6933. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(libc.Uint32FromInt64((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  6934. } else {
  6935. v10 = libc.UintptrFromInt32(m_Z_NULL)
  6936. }
  6937. x__tr_flush_block(tls, s, v10, libc.Uint64FromInt64(libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  6938. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = libc.Int64FromUint32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6939. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  6940. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  6941. return int32(_need_more)
  6942. }
  6943. }
  6944. return int32(_block_done)
  6945. }
  6946. const m_ENOUGH_DISTS = 592
  6947. const m_ENOUGH_LENS = 852
  6948. const m_PRESET_DICT2 = 0x20
  6949. type Tcode = struct {
  6950. Fop uint8
  6951. Fbits uint8
  6952. Fval uint16
  6953. }
  6954. type Tcodetype = int32
  6955. const _CODES = 0
  6956. const _LENS = 1
  6957. const _DISTS = 2
  6958. type Tinflate_mode = int32
  6959. const _HEAD = 16180
  6960. const _FLAGS = 16181
  6961. const _TIME = 16182
  6962. const _OS = 16183
  6963. const _EXLEN = 16184
  6964. const _EXTRA = 16185
  6965. const _NAME = 16186
  6966. const _COMMENT = 16187
  6967. const _HCRC = 16188
  6968. const _DICTID = 16189
  6969. const _DICT = 16190
  6970. const _TYPE = 16191
  6971. const _TYPEDO = 16192
  6972. const _STORED = 16193
  6973. const _COPY_ = 16194
  6974. const _COPY = 16195
  6975. const _TABLE = 16196
  6976. const _LENLENS = 16197
  6977. const _CODELENS = 16198
  6978. const _LEN_ = 16199
  6979. const _LEN = 16200
  6980. const _LENEXT = 16201
  6981. const _DIST = 16202
  6982. const _DISTEXT = 16203
  6983. const _MATCH = 16204
  6984. const _LIT = 16205
  6985. const _CHECK = 16206
  6986. const _LENGTH = 16207
  6987. const _DONE = 16208
  6988. const _BAD = 16209
  6989. const _MEM = 16210
  6990. const _SYNC = 16211
  6991. type Tinflate_state = struct {
  6992. Fstrm Tz_streamp
  6993. Fmode Tinflate_mode
  6994. Flast int32
  6995. Fwrap int32
  6996. Fhavedict int32
  6997. Fflags int32
  6998. Fdmax uint32
  6999. Fcheck uint64
  7000. Ftotal uint64
  7001. Fhead Tgz_headerp
  7002. Fwbits uint32
  7003. Fwsize uint32
  7004. Fwhave uint32
  7005. Fwnext uint32
  7006. Fwindow uintptr
  7007. Fhold uint64
  7008. Fbits uint32
  7009. Flength uint32
  7010. Foffset uint32
  7011. Fextra uint32
  7012. Flencode uintptr
  7013. Fdistcode uintptr
  7014. Flenbits uint32
  7015. Fdistbits uint32
  7016. Fncode uint32
  7017. Fnlen uint32
  7018. Fndist uint32
  7019. Fhave uint32
  7020. Fnext uintptr
  7021. Flens [320]uint16
  7022. Fwork [288]uint16
  7023. Fcodes [1444]Tcode
  7024. Fsane int32
  7025. Fback int32
  7026. Fwas uint32
  7027. }
  7028. // C documentation
  7029. //
  7030. // /*
  7031. // strm provides memory allocation functions in zalloc and zfree, or
  7032. // Z_NULL to use the library memory allocation functions.
  7033. //
  7034. // windowBits is in the range 8..15, and window is a user-supplied
  7035. // window and output buffer that is 2**windowBits bytes.
  7036. // */
  7037. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  7038. var state uintptr
  7039. _ = state
  7040. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint64(libc.Uint64FromInt64(112)) {
  7041. return -int32(6)
  7042. }
  7043. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  7044. return -int32(2)
  7045. }
  7046. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  7047. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  7048. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  7049. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  7050. }
  7051. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  7052. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  7053. }
  7054. 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)), uint32(libc.Uint64FromInt64(7160)))
  7055. if state == uintptr(m_Z_NULL) {
  7056. return -int32(4)
  7057. }
  7058. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  7059. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  7060. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  7061. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  7062. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  7063. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  7064. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  7065. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  7066. return m_Z_OK
  7067. }
  7068. // C documentation
  7069. //
  7070. // /*
  7071. // Return state with length and distance decoding tables and index sizes set to
  7072. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  7073. // If BUILDFIXED is defined, then instead this routine builds the tables the
  7074. // first time it's called, and returns those tables the first time and
  7075. // thereafter. This reduces the size of the code by about 2K bytes, in
  7076. // exchange for a little execution time. However, BUILDFIXED should not be
  7077. // used for threaded applications, since the rewriting of the tables and virgin
  7078. // may not be thread-safe.
  7079. // */
  7080. func _fixedtables(tls *libc.TLS, state uintptr) {
  7081. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  7082. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  7083. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  7084. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  7085. }
  7086. var _lenfix = [512]Tcode{
  7087. 0: {
  7088. Fop: uint8(96),
  7089. Fbits: uint8(7),
  7090. },
  7091. 1: {
  7092. Fbits: uint8(8),
  7093. Fval: uint16(80),
  7094. },
  7095. 2: {
  7096. Fbits: uint8(8),
  7097. Fval: uint16(16),
  7098. },
  7099. 3: {
  7100. Fop: uint8(20),
  7101. Fbits: uint8(8),
  7102. Fval: uint16(115),
  7103. },
  7104. 4: {
  7105. Fop: uint8(18),
  7106. Fbits: uint8(7),
  7107. Fval: uint16(31),
  7108. },
  7109. 5: {
  7110. Fbits: uint8(8),
  7111. Fval: uint16(112),
  7112. },
  7113. 6: {
  7114. Fbits: uint8(8),
  7115. Fval: uint16(48),
  7116. },
  7117. 7: {
  7118. Fbits: uint8(9),
  7119. Fval: uint16(192),
  7120. },
  7121. 8: {
  7122. Fop: uint8(16),
  7123. Fbits: uint8(7),
  7124. Fval: uint16(10),
  7125. },
  7126. 9: {
  7127. Fbits: uint8(8),
  7128. Fval: uint16(96),
  7129. },
  7130. 10: {
  7131. Fbits: uint8(8),
  7132. Fval: uint16(32),
  7133. },
  7134. 11: {
  7135. Fbits: uint8(9),
  7136. Fval: uint16(160),
  7137. },
  7138. 12: {
  7139. Fbits: uint8(8),
  7140. },
  7141. 13: {
  7142. Fbits: uint8(8),
  7143. Fval: uint16(128),
  7144. },
  7145. 14: {
  7146. Fbits: uint8(8),
  7147. Fval: uint16(64),
  7148. },
  7149. 15: {
  7150. Fbits: uint8(9),
  7151. Fval: uint16(224),
  7152. },
  7153. 16: {
  7154. Fop: uint8(16),
  7155. Fbits: uint8(7),
  7156. Fval: uint16(6),
  7157. },
  7158. 17: {
  7159. Fbits: uint8(8),
  7160. Fval: uint16(88),
  7161. },
  7162. 18: {
  7163. Fbits: uint8(8),
  7164. Fval: uint16(24),
  7165. },
  7166. 19: {
  7167. Fbits: uint8(9),
  7168. Fval: uint16(144),
  7169. },
  7170. 20: {
  7171. Fop: uint8(19),
  7172. Fbits: uint8(7),
  7173. Fval: uint16(59),
  7174. },
  7175. 21: {
  7176. Fbits: uint8(8),
  7177. Fval: uint16(120),
  7178. },
  7179. 22: {
  7180. Fbits: uint8(8),
  7181. Fval: uint16(56),
  7182. },
  7183. 23: {
  7184. Fbits: uint8(9),
  7185. Fval: uint16(208),
  7186. },
  7187. 24: {
  7188. Fop: uint8(17),
  7189. Fbits: uint8(7),
  7190. Fval: uint16(17),
  7191. },
  7192. 25: {
  7193. Fbits: uint8(8),
  7194. Fval: uint16(104),
  7195. },
  7196. 26: {
  7197. Fbits: uint8(8),
  7198. Fval: uint16(40),
  7199. },
  7200. 27: {
  7201. Fbits: uint8(9),
  7202. Fval: uint16(176),
  7203. },
  7204. 28: {
  7205. Fbits: uint8(8),
  7206. Fval: uint16(8),
  7207. },
  7208. 29: {
  7209. Fbits: uint8(8),
  7210. Fval: uint16(136),
  7211. },
  7212. 30: {
  7213. Fbits: uint8(8),
  7214. Fval: uint16(72),
  7215. },
  7216. 31: {
  7217. Fbits: uint8(9),
  7218. Fval: uint16(240),
  7219. },
  7220. 32: {
  7221. Fop: uint8(16),
  7222. Fbits: uint8(7),
  7223. Fval: uint16(4),
  7224. },
  7225. 33: {
  7226. Fbits: uint8(8),
  7227. Fval: uint16(84),
  7228. },
  7229. 34: {
  7230. Fbits: uint8(8),
  7231. Fval: uint16(20),
  7232. },
  7233. 35: {
  7234. Fop: uint8(21),
  7235. Fbits: uint8(8),
  7236. Fval: uint16(227),
  7237. },
  7238. 36: {
  7239. Fop: uint8(19),
  7240. Fbits: uint8(7),
  7241. Fval: uint16(43),
  7242. },
  7243. 37: {
  7244. Fbits: uint8(8),
  7245. Fval: uint16(116),
  7246. },
  7247. 38: {
  7248. Fbits: uint8(8),
  7249. Fval: uint16(52),
  7250. },
  7251. 39: {
  7252. Fbits: uint8(9),
  7253. Fval: uint16(200),
  7254. },
  7255. 40: {
  7256. Fop: uint8(17),
  7257. Fbits: uint8(7),
  7258. Fval: uint16(13),
  7259. },
  7260. 41: {
  7261. Fbits: uint8(8),
  7262. Fval: uint16(100),
  7263. },
  7264. 42: {
  7265. Fbits: uint8(8),
  7266. Fval: uint16(36),
  7267. },
  7268. 43: {
  7269. Fbits: uint8(9),
  7270. Fval: uint16(168),
  7271. },
  7272. 44: {
  7273. Fbits: uint8(8),
  7274. Fval: uint16(4),
  7275. },
  7276. 45: {
  7277. Fbits: uint8(8),
  7278. Fval: uint16(132),
  7279. },
  7280. 46: {
  7281. Fbits: uint8(8),
  7282. Fval: uint16(68),
  7283. },
  7284. 47: {
  7285. Fbits: uint8(9),
  7286. Fval: uint16(232),
  7287. },
  7288. 48: {
  7289. Fop: uint8(16),
  7290. Fbits: uint8(7),
  7291. Fval: uint16(8),
  7292. },
  7293. 49: {
  7294. Fbits: uint8(8),
  7295. Fval: uint16(92),
  7296. },
  7297. 50: {
  7298. Fbits: uint8(8),
  7299. Fval: uint16(28),
  7300. },
  7301. 51: {
  7302. Fbits: uint8(9),
  7303. Fval: uint16(152),
  7304. },
  7305. 52: {
  7306. Fop: uint8(20),
  7307. Fbits: uint8(7),
  7308. Fval: uint16(83),
  7309. },
  7310. 53: {
  7311. Fbits: uint8(8),
  7312. Fval: uint16(124),
  7313. },
  7314. 54: {
  7315. Fbits: uint8(8),
  7316. Fval: uint16(60),
  7317. },
  7318. 55: {
  7319. Fbits: uint8(9),
  7320. Fval: uint16(216),
  7321. },
  7322. 56: {
  7323. Fop: uint8(18),
  7324. Fbits: uint8(7),
  7325. Fval: uint16(23),
  7326. },
  7327. 57: {
  7328. Fbits: uint8(8),
  7329. Fval: uint16(108),
  7330. },
  7331. 58: {
  7332. Fbits: uint8(8),
  7333. Fval: uint16(44),
  7334. },
  7335. 59: {
  7336. Fbits: uint8(9),
  7337. Fval: uint16(184),
  7338. },
  7339. 60: {
  7340. Fbits: uint8(8),
  7341. Fval: uint16(12),
  7342. },
  7343. 61: {
  7344. Fbits: uint8(8),
  7345. Fval: uint16(140),
  7346. },
  7347. 62: {
  7348. Fbits: uint8(8),
  7349. Fval: uint16(76),
  7350. },
  7351. 63: {
  7352. Fbits: uint8(9),
  7353. Fval: uint16(248),
  7354. },
  7355. 64: {
  7356. Fop: uint8(16),
  7357. Fbits: uint8(7),
  7358. Fval: uint16(3),
  7359. },
  7360. 65: {
  7361. Fbits: uint8(8),
  7362. Fval: uint16(82),
  7363. },
  7364. 66: {
  7365. Fbits: uint8(8),
  7366. Fval: uint16(18),
  7367. },
  7368. 67: {
  7369. Fop: uint8(21),
  7370. Fbits: uint8(8),
  7371. Fval: uint16(163),
  7372. },
  7373. 68: {
  7374. Fop: uint8(19),
  7375. Fbits: uint8(7),
  7376. Fval: uint16(35),
  7377. },
  7378. 69: {
  7379. Fbits: uint8(8),
  7380. Fval: uint16(114),
  7381. },
  7382. 70: {
  7383. Fbits: uint8(8),
  7384. Fval: uint16(50),
  7385. },
  7386. 71: {
  7387. Fbits: uint8(9),
  7388. Fval: uint16(196),
  7389. },
  7390. 72: {
  7391. Fop: uint8(17),
  7392. Fbits: uint8(7),
  7393. Fval: uint16(11),
  7394. },
  7395. 73: {
  7396. Fbits: uint8(8),
  7397. Fval: uint16(98),
  7398. },
  7399. 74: {
  7400. Fbits: uint8(8),
  7401. Fval: uint16(34),
  7402. },
  7403. 75: {
  7404. Fbits: uint8(9),
  7405. Fval: uint16(164),
  7406. },
  7407. 76: {
  7408. Fbits: uint8(8),
  7409. Fval: uint16(2),
  7410. },
  7411. 77: {
  7412. Fbits: uint8(8),
  7413. Fval: uint16(130),
  7414. },
  7415. 78: {
  7416. Fbits: uint8(8),
  7417. Fval: uint16(66),
  7418. },
  7419. 79: {
  7420. Fbits: uint8(9),
  7421. Fval: uint16(228),
  7422. },
  7423. 80: {
  7424. Fop: uint8(16),
  7425. Fbits: uint8(7),
  7426. Fval: uint16(7),
  7427. },
  7428. 81: {
  7429. Fbits: uint8(8),
  7430. Fval: uint16(90),
  7431. },
  7432. 82: {
  7433. Fbits: uint8(8),
  7434. Fval: uint16(26),
  7435. },
  7436. 83: {
  7437. Fbits: uint8(9),
  7438. Fval: uint16(148),
  7439. },
  7440. 84: {
  7441. Fop: uint8(20),
  7442. Fbits: uint8(7),
  7443. Fval: uint16(67),
  7444. },
  7445. 85: {
  7446. Fbits: uint8(8),
  7447. Fval: uint16(122),
  7448. },
  7449. 86: {
  7450. Fbits: uint8(8),
  7451. Fval: uint16(58),
  7452. },
  7453. 87: {
  7454. Fbits: uint8(9),
  7455. Fval: uint16(212),
  7456. },
  7457. 88: {
  7458. Fop: uint8(18),
  7459. Fbits: uint8(7),
  7460. Fval: uint16(19),
  7461. },
  7462. 89: {
  7463. Fbits: uint8(8),
  7464. Fval: uint16(106),
  7465. },
  7466. 90: {
  7467. Fbits: uint8(8),
  7468. Fval: uint16(42),
  7469. },
  7470. 91: {
  7471. Fbits: uint8(9),
  7472. Fval: uint16(180),
  7473. },
  7474. 92: {
  7475. Fbits: uint8(8),
  7476. Fval: uint16(10),
  7477. },
  7478. 93: {
  7479. Fbits: uint8(8),
  7480. Fval: uint16(138),
  7481. },
  7482. 94: {
  7483. Fbits: uint8(8),
  7484. Fval: uint16(74),
  7485. },
  7486. 95: {
  7487. Fbits: uint8(9),
  7488. Fval: uint16(244),
  7489. },
  7490. 96: {
  7491. Fop: uint8(16),
  7492. Fbits: uint8(7),
  7493. Fval: uint16(5),
  7494. },
  7495. 97: {
  7496. Fbits: uint8(8),
  7497. Fval: uint16(86),
  7498. },
  7499. 98: {
  7500. Fbits: uint8(8),
  7501. Fval: uint16(22),
  7502. },
  7503. 99: {
  7504. Fop: uint8(64),
  7505. Fbits: uint8(8),
  7506. },
  7507. 100: {
  7508. Fop: uint8(19),
  7509. Fbits: uint8(7),
  7510. Fval: uint16(51),
  7511. },
  7512. 101: {
  7513. Fbits: uint8(8),
  7514. Fval: uint16(118),
  7515. },
  7516. 102: {
  7517. Fbits: uint8(8),
  7518. Fval: uint16(54),
  7519. },
  7520. 103: {
  7521. Fbits: uint8(9),
  7522. Fval: uint16(204),
  7523. },
  7524. 104: {
  7525. Fop: uint8(17),
  7526. Fbits: uint8(7),
  7527. Fval: uint16(15),
  7528. },
  7529. 105: {
  7530. Fbits: uint8(8),
  7531. Fval: uint16(102),
  7532. },
  7533. 106: {
  7534. Fbits: uint8(8),
  7535. Fval: uint16(38),
  7536. },
  7537. 107: {
  7538. Fbits: uint8(9),
  7539. Fval: uint16(172),
  7540. },
  7541. 108: {
  7542. Fbits: uint8(8),
  7543. Fval: uint16(6),
  7544. },
  7545. 109: {
  7546. Fbits: uint8(8),
  7547. Fval: uint16(134),
  7548. },
  7549. 110: {
  7550. Fbits: uint8(8),
  7551. Fval: uint16(70),
  7552. },
  7553. 111: {
  7554. Fbits: uint8(9),
  7555. Fval: uint16(236),
  7556. },
  7557. 112: {
  7558. Fop: uint8(16),
  7559. Fbits: uint8(7),
  7560. Fval: uint16(9),
  7561. },
  7562. 113: {
  7563. Fbits: uint8(8),
  7564. Fval: uint16(94),
  7565. },
  7566. 114: {
  7567. Fbits: uint8(8),
  7568. Fval: uint16(30),
  7569. },
  7570. 115: {
  7571. Fbits: uint8(9),
  7572. Fval: uint16(156),
  7573. },
  7574. 116: {
  7575. Fop: uint8(20),
  7576. Fbits: uint8(7),
  7577. Fval: uint16(99),
  7578. },
  7579. 117: {
  7580. Fbits: uint8(8),
  7581. Fval: uint16(126),
  7582. },
  7583. 118: {
  7584. Fbits: uint8(8),
  7585. Fval: uint16(62),
  7586. },
  7587. 119: {
  7588. Fbits: uint8(9),
  7589. Fval: uint16(220),
  7590. },
  7591. 120: {
  7592. Fop: uint8(18),
  7593. Fbits: uint8(7),
  7594. Fval: uint16(27),
  7595. },
  7596. 121: {
  7597. Fbits: uint8(8),
  7598. Fval: uint16(110),
  7599. },
  7600. 122: {
  7601. Fbits: uint8(8),
  7602. Fval: uint16(46),
  7603. },
  7604. 123: {
  7605. Fbits: uint8(9),
  7606. Fval: uint16(188),
  7607. },
  7608. 124: {
  7609. Fbits: uint8(8),
  7610. Fval: uint16(14),
  7611. },
  7612. 125: {
  7613. Fbits: uint8(8),
  7614. Fval: uint16(142),
  7615. },
  7616. 126: {
  7617. Fbits: uint8(8),
  7618. Fval: uint16(78),
  7619. },
  7620. 127: {
  7621. Fbits: uint8(9),
  7622. Fval: uint16(252),
  7623. },
  7624. 128: {
  7625. Fop: uint8(96),
  7626. Fbits: uint8(7),
  7627. },
  7628. 129: {
  7629. Fbits: uint8(8),
  7630. Fval: uint16(81),
  7631. },
  7632. 130: {
  7633. Fbits: uint8(8),
  7634. Fval: uint16(17),
  7635. },
  7636. 131: {
  7637. Fop: uint8(21),
  7638. Fbits: uint8(8),
  7639. Fval: uint16(131),
  7640. },
  7641. 132: {
  7642. Fop: uint8(18),
  7643. Fbits: uint8(7),
  7644. Fval: uint16(31),
  7645. },
  7646. 133: {
  7647. Fbits: uint8(8),
  7648. Fval: uint16(113),
  7649. },
  7650. 134: {
  7651. Fbits: uint8(8),
  7652. Fval: uint16(49),
  7653. },
  7654. 135: {
  7655. Fbits: uint8(9),
  7656. Fval: uint16(194),
  7657. },
  7658. 136: {
  7659. Fop: uint8(16),
  7660. Fbits: uint8(7),
  7661. Fval: uint16(10),
  7662. },
  7663. 137: {
  7664. Fbits: uint8(8),
  7665. Fval: uint16(97),
  7666. },
  7667. 138: {
  7668. Fbits: uint8(8),
  7669. Fval: uint16(33),
  7670. },
  7671. 139: {
  7672. Fbits: uint8(9),
  7673. Fval: uint16(162),
  7674. },
  7675. 140: {
  7676. Fbits: uint8(8),
  7677. Fval: uint16(1),
  7678. },
  7679. 141: {
  7680. Fbits: uint8(8),
  7681. Fval: uint16(129),
  7682. },
  7683. 142: {
  7684. Fbits: uint8(8),
  7685. Fval: uint16(65),
  7686. },
  7687. 143: {
  7688. Fbits: uint8(9),
  7689. Fval: uint16(226),
  7690. },
  7691. 144: {
  7692. Fop: uint8(16),
  7693. Fbits: uint8(7),
  7694. Fval: uint16(6),
  7695. },
  7696. 145: {
  7697. Fbits: uint8(8),
  7698. Fval: uint16(89),
  7699. },
  7700. 146: {
  7701. Fbits: uint8(8),
  7702. Fval: uint16(25),
  7703. },
  7704. 147: {
  7705. Fbits: uint8(9),
  7706. Fval: uint16(146),
  7707. },
  7708. 148: {
  7709. Fop: uint8(19),
  7710. Fbits: uint8(7),
  7711. Fval: uint16(59),
  7712. },
  7713. 149: {
  7714. Fbits: uint8(8),
  7715. Fval: uint16(121),
  7716. },
  7717. 150: {
  7718. Fbits: uint8(8),
  7719. Fval: uint16(57),
  7720. },
  7721. 151: {
  7722. Fbits: uint8(9),
  7723. Fval: uint16(210),
  7724. },
  7725. 152: {
  7726. Fop: uint8(17),
  7727. Fbits: uint8(7),
  7728. Fval: uint16(17),
  7729. },
  7730. 153: {
  7731. Fbits: uint8(8),
  7732. Fval: uint16(105),
  7733. },
  7734. 154: {
  7735. Fbits: uint8(8),
  7736. Fval: uint16(41),
  7737. },
  7738. 155: {
  7739. Fbits: uint8(9),
  7740. Fval: uint16(178),
  7741. },
  7742. 156: {
  7743. Fbits: uint8(8),
  7744. Fval: uint16(9),
  7745. },
  7746. 157: {
  7747. Fbits: uint8(8),
  7748. Fval: uint16(137),
  7749. },
  7750. 158: {
  7751. Fbits: uint8(8),
  7752. Fval: uint16(73),
  7753. },
  7754. 159: {
  7755. Fbits: uint8(9),
  7756. Fval: uint16(242),
  7757. },
  7758. 160: {
  7759. Fop: uint8(16),
  7760. Fbits: uint8(7),
  7761. Fval: uint16(4),
  7762. },
  7763. 161: {
  7764. Fbits: uint8(8),
  7765. Fval: uint16(85),
  7766. },
  7767. 162: {
  7768. Fbits: uint8(8),
  7769. Fval: uint16(21),
  7770. },
  7771. 163: {
  7772. Fop: uint8(16),
  7773. Fbits: uint8(8),
  7774. Fval: uint16(258),
  7775. },
  7776. 164: {
  7777. Fop: uint8(19),
  7778. Fbits: uint8(7),
  7779. Fval: uint16(43),
  7780. },
  7781. 165: {
  7782. Fbits: uint8(8),
  7783. Fval: uint16(117),
  7784. },
  7785. 166: {
  7786. Fbits: uint8(8),
  7787. Fval: uint16(53),
  7788. },
  7789. 167: {
  7790. Fbits: uint8(9),
  7791. Fval: uint16(202),
  7792. },
  7793. 168: {
  7794. Fop: uint8(17),
  7795. Fbits: uint8(7),
  7796. Fval: uint16(13),
  7797. },
  7798. 169: {
  7799. Fbits: uint8(8),
  7800. Fval: uint16(101),
  7801. },
  7802. 170: {
  7803. Fbits: uint8(8),
  7804. Fval: uint16(37),
  7805. },
  7806. 171: {
  7807. Fbits: uint8(9),
  7808. Fval: uint16(170),
  7809. },
  7810. 172: {
  7811. Fbits: uint8(8),
  7812. Fval: uint16(5),
  7813. },
  7814. 173: {
  7815. Fbits: uint8(8),
  7816. Fval: uint16(133),
  7817. },
  7818. 174: {
  7819. Fbits: uint8(8),
  7820. Fval: uint16(69),
  7821. },
  7822. 175: {
  7823. Fbits: uint8(9),
  7824. Fval: uint16(234),
  7825. },
  7826. 176: {
  7827. Fop: uint8(16),
  7828. Fbits: uint8(7),
  7829. Fval: uint16(8),
  7830. },
  7831. 177: {
  7832. Fbits: uint8(8),
  7833. Fval: uint16(93),
  7834. },
  7835. 178: {
  7836. Fbits: uint8(8),
  7837. Fval: uint16(29),
  7838. },
  7839. 179: {
  7840. Fbits: uint8(9),
  7841. Fval: uint16(154),
  7842. },
  7843. 180: {
  7844. Fop: uint8(20),
  7845. Fbits: uint8(7),
  7846. Fval: uint16(83),
  7847. },
  7848. 181: {
  7849. Fbits: uint8(8),
  7850. Fval: uint16(125),
  7851. },
  7852. 182: {
  7853. Fbits: uint8(8),
  7854. Fval: uint16(61),
  7855. },
  7856. 183: {
  7857. Fbits: uint8(9),
  7858. Fval: uint16(218),
  7859. },
  7860. 184: {
  7861. Fop: uint8(18),
  7862. Fbits: uint8(7),
  7863. Fval: uint16(23),
  7864. },
  7865. 185: {
  7866. Fbits: uint8(8),
  7867. Fval: uint16(109),
  7868. },
  7869. 186: {
  7870. Fbits: uint8(8),
  7871. Fval: uint16(45),
  7872. },
  7873. 187: {
  7874. Fbits: uint8(9),
  7875. Fval: uint16(186),
  7876. },
  7877. 188: {
  7878. Fbits: uint8(8),
  7879. Fval: uint16(13),
  7880. },
  7881. 189: {
  7882. Fbits: uint8(8),
  7883. Fval: uint16(141),
  7884. },
  7885. 190: {
  7886. Fbits: uint8(8),
  7887. Fval: uint16(77),
  7888. },
  7889. 191: {
  7890. Fbits: uint8(9),
  7891. Fval: uint16(250),
  7892. },
  7893. 192: {
  7894. Fop: uint8(16),
  7895. Fbits: uint8(7),
  7896. Fval: uint16(3),
  7897. },
  7898. 193: {
  7899. Fbits: uint8(8),
  7900. Fval: uint16(83),
  7901. },
  7902. 194: {
  7903. Fbits: uint8(8),
  7904. Fval: uint16(19),
  7905. },
  7906. 195: {
  7907. Fop: uint8(21),
  7908. Fbits: uint8(8),
  7909. Fval: uint16(195),
  7910. },
  7911. 196: {
  7912. Fop: uint8(19),
  7913. Fbits: uint8(7),
  7914. Fval: uint16(35),
  7915. },
  7916. 197: {
  7917. Fbits: uint8(8),
  7918. Fval: uint16(115),
  7919. },
  7920. 198: {
  7921. Fbits: uint8(8),
  7922. Fval: uint16(51),
  7923. },
  7924. 199: {
  7925. Fbits: uint8(9),
  7926. Fval: uint16(198),
  7927. },
  7928. 200: {
  7929. Fop: uint8(17),
  7930. Fbits: uint8(7),
  7931. Fval: uint16(11),
  7932. },
  7933. 201: {
  7934. Fbits: uint8(8),
  7935. Fval: uint16(99),
  7936. },
  7937. 202: {
  7938. Fbits: uint8(8),
  7939. Fval: uint16(35),
  7940. },
  7941. 203: {
  7942. Fbits: uint8(9),
  7943. Fval: uint16(166),
  7944. },
  7945. 204: {
  7946. Fbits: uint8(8),
  7947. Fval: uint16(3),
  7948. },
  7949. 205: {
  7950. Fbits: uint8(8),
  7951. Fval: uint16(131),
  7952. },
  7953. 206: {
  7954. Fbits: uint8(8),
  7955. Fval: uint16(67),
  7956. },
  7957. 207: {
  7958. Fbits: uint8(9),
  7959. Fval: uint16(230),
  7960. },
  7961. 208: {
  7962. Fop: uint8(16),
  7963. Fbits: uint8(7),
  7964. Fval: uint16(7),
  7965. },
  7966. 209: {
  7967. Fbits: uint8(8),
  7968. Fval: uint16(91),
  7969. },
  7970. 210: {
  7971. Fbits: uint8(8),
  7972. Fval: uint16(27),
  7973. },
  7974. 211: {
  7975. Fbits: uint8(9),
  7976. Fval: uint16(150),
  7977. },
  7978. 212: {
  7979. Fop: uint8(20),
  7980. Fbits: uint8(7),
  7981. Fval: uint16(67),
  7982. },
  7983. 213: {
  7984. Fbits: uint8(8),
  7985. Fval: uint16(123),
  7986. },
  7987. 214: {
  7988. Fbits: uint8(8),
  7989. Fval: uint16(59),
  7990. },
  7991. 215: {
  7992. Fbits: uint8(9),
  7993. Fval: uint16(214),
  7994. },
  7995. 216: {
  7996. Fop: uint8(18),
  7997. Fbits: uint8(7),
  7998. Fval: uint16(19),
  7999. },
  8000. 217: {
  8001. Fbits: uint8(8),
  8002. Fval: uint16(107),
  8003. },
  8004. 218: {
  8005. Fbits: uint8(8),
  8006. Fval: uint16(43),
  8007. },
  8008. 219: {
  8009. Fbits: uint8(9),
  8010. Fval: uint16(182),
  8011. },
  8012. 220: {
  8013. Fbits: uint8(8),
  8014. Fval: uint16(11),
  8015. },
  8016. 221: {
  8017. Fbits: uint8(8),
  8018. Fval: uint16(139),
  8019. },
  8020. 222: {
  8021. Fbits: uint8(8),
  8022. Fval: uint16(75),
  8023. },
  8024. 223: {
  8025. Fbits: uint8(9),
  8026. Fval: uint16(246),
  8027. },
  8028. 224: {
  8029. Fop: uint8(16),
  8030. Fbits: uint8(7),
  8031. Fval: uint16(5),
  8032. },
  8033. 225: {
  8034. Fbits: uint8(8),
  8035. Fval: uint16(87),
  8036. },
  8037. 226: {
  8038. Fbits: uint8(8),
  8039. Fval: uint16(23),
  8040. },
  8041. 227: {
  8042. Fop: uint8(64),
  8043. Fbits: uint8(8),
  8044. },
  8045. 228: {
  8046. Fop: uint8(19),
  8047. Fbits: uint8(7),
  8048. Fval: uint16(51),
  8049. },
  8050. 229: {
  8051. Fbits: uint8(8),
  8052. Fval: uint16(119),
  8053. },
  8054. 230: {
  8055. Fbits: uint8(8),
  8056. Fval: uint16(55),
  8057. },
  8058. 231: {
  8059. Fbits: uint8(9),
  8060. Fval: uint16(206),
  8061. },
  8062. 232: {
  8063. Fop: uint8(17),
  8064. Fbits: uint8(7),
  8065. Fval: uint16(15),
  8066. },
  8067. 233: {
  8068. Fbits: uint8(8),
  8069. Fval: uint16(103),
  8070. },
  8071. 234: {
  8072. Fbits: uint8(8),
  8073. Fval: uint16(39),
  8074. },
  8075. 235: {
  8076. Fbits: uint8(9),
  8077. Fval: uint16(174),
  8078. },
  8079. 236: {
  8080. Fbits: uint8(8),
  8081. Fval: uint16(7),
  8082. },
  8083. 237: {
  8084. Fbits: uint8(8),
  8085. Fval: uint16(135),
  8086. },
  8087. 238: {
  8088. Fbits: uint8(8),
  8089. Fval: uint16(71),
  8090. },
  8091. 239: {
  8092. Fbits: uint8(9),
  8093. Fval: uint16(238),
  8094. },
  8095. 240: {
  8096. Fop: uint8(16),
  8097. Fbits: uint8(7),
  8098. Fval: uint16(9),
  8099. },
  8100. 241: {
  8101. Fbits: uint8(8),
  8102. Fval: uint16(95),
  8103. },
  8104. 242: {
  8105. Fbits: uint8(8),
  8106. Fval: uint16(31),
  8107. },
  8108. 243: {
  8109. Fbits: uint8(9),
  8110. Fval: uint16(158),
  8111. },
  8112. 244: {
  8113. Fop: uint8(20),
  8114. Fbits: uint8(7),
  8115. Fval: uint16(99),
  8116. },
  8117. 245: {
  8118. Fbits: uint8(8),
  8119. Fval: uint16(127),
  8120. },
  8121. 246: {
  8122. Fbits: uint8(8),
  8123. Fval: uint16(63),
  8124. },
  8125. 247: {
  8126. Fbits: uint8(9),
  8127. Fval: uint16(222),
  8128. },
  8129. 248: {
  8130. Fop: uint8(18),
  8131. Fbits: uint8(7),
  8132. Fval: uint16(27),
  8133. },
  8134. 249: {
  8135. Fbits: uint8(8),
  8136. Fval: uint16(111),
  8137. },
  8138. 250: {
  8139. Fbits: uint8(8),
  8140. Fval: uint16(47),
  8141. },
  8142. 251: {
  8143. Fbits: uint8(9),
  8144. Fval: uint16(190),
  8145. },
  8146. 252: {
  8147. Fbits: uint8(8),
  8148. Fval: uint16(15),
  8149. },
  8150. 253: {
  8151. Fbits: uint8(8),
  8152. Fval: uint16(143),
  8153. },
  8154. 254: {
  8155. Fbits: uint8(8),
  8156. Fval: uint16(79),
  8157. },
  8158. 255: {
  8159. Fbits: uint8(9),
  8160. Fval: uint16(254),
  8161. },
  8162. 256: {
  8163. Fop: uint8(96),
  8164. Fbits: uint8(7),
  8165. },
  8166. 257: {
  8167. Fbits: uint8(8),
  8168. Fval: uint16(80),
  8169. },
  8170. 258: {
  8171. Fbits: uint8(8),
  8172. Fval: uint16(16),
  8173. },
  8174. 259: {
  8175. Fop: uint8(20),
  8176. Fbits: uint8(8),
  8177. Fval: uint16(115),
  8178. },
  8179. 260: {
  8180. Fop: uint8(18),
  8181. Fbits: uint8(7),
  8182. Fval: uint16(31),
  8183. },
  8184. 261: {
  8185. Fbits: uint8(8),
  8186. Fval: uint16(112),
  8187. },
  8188. 262: {
  8189. Fbits: uint8(8),
  8190. Fval: uint16(48),
  8191. },
  8192. 263: {
  8193. Fbits: uint8(9),
  8194. Fval: uint16(193),
  8195. },
  8196. 264: {
  8197. Fop: uint8(16),
  8198. Fbits: uint8(7),
  8199. Fval: uint16(10),
  8200. },
  8201. 265: {
  8202. Fbits: uint8(8),
  8203. Fval: uint16(96),
  8204. },
  8205. 266: {
  8206. Fbits: uint8(8),
  8207. Fval: uint16(32),
  8208. },
  8209. 267: {
  8210. Fbits: uint8(9),
  8211. Fval: uint16(161),
  8212. },
  8213. 268: {
  8214. Fbits: uint8(8),
  8215. },
  8216. 269: {
  8217. Fbits: uint8(8),
  8218. Fval: uint16(128),
  8219. },
  8220. 270: {
  8221. Fbits: uint8(8),
  8222. Fval: uint16(64),
  8223. },
  8224. 271: {
  8225. Fbits: uint8(9),
  8226. Fval: uint16(225),
  8227. },
  8228. 272: {
  8229. Fop: uint8(16),
  8230. Fbits: uint8(7),
  8231. Fval: uint16(6),
  8232. },
  8233. 273: {
  8234. Fbits: uint8(8),
  8235. Fval: uint16(88),
  8236. },
  8237. 274: {
  8238. Fbits: uint8(8),
  8239. Fval: uint16(24),
  8240. },
  8241. 275: {
  8242. Fbits: uint8(9),
  8243. Fval: uint16(145),
  8244. },
  8245. 276: {
  8246. Fop: uint8(19),
  8247. Fbits: uint8(7),
  8248. Fval: uint16(59),
  8249. },
  8250. 277: {
  8251. Fbits: uint8(8),
  8252. Fval: uint16(120),
  8253. },
  8254. 278: {
  8255. Fbits: uint8(8),
  8256. Fval: uint16(56),
  8257. },
  8258. 279: {
  8259. Fbits: uint8(9),
  8260. Fval: uint16(209),
  8261. },
  8262. 280: {
  8263. Fop: uint8(17),
  8264. Fbits: uint8(7),
  8265. Fval: uint16(17),
  8266. },
  8267. 281: {
  8268. Fbits: uint8(8),
  8269. Fval: uint16(104),
  8270. },
  8271. 282: {
  8272. Fbits: uint8(8),
  8273. Fval: uint16(40),
  8274. },
  8275. 283: {
  8276. Fbits: uint8(9),
  8277. Fval: uint16(177),
  8278. },
  8279. 284: {
  8280. Fbits: uint8(8),
  8281. Fval: uint16(8),
  8282. },
  8283. 285: {
  8284. Fbits: uint8(8),
  8285. Fval: uint16(136),
  8286. },
  8287. 286: {
  8288. Fbits: uint8(8),
  8289. Fval: uint16(72),
  8290. },
  8291. 287: {
  8292. Fbits: uint8(9),
  8293. Fval: uint16(241),
  8294. },
  8295. 288: {
  8296. Fop: uint8(16),
  8297. Fbits: uint8(7),
  8298. Fval: uint16(4),
  8299. },
  8300. 289: {
  8301. Fbits: uint8(8),
  8302. Fval: uint16(84),
  8303. },
  8304. 290: {
  8305. Fbits: uint8(8),
  8306. Fval: uint16(20),
  8307. },
  8308. 291: {
  8309. Fop: uint8(21),
  8310. Fbits: uint8(8),
  8311. Fval: uint16(227),
  8312. },
  8313. 292: {
  8314. Fop: uint8(19),
  8315. Fbits: uint8(7),
  8316. Fval: uint16(43),
  8317. },
  8318. 293: {
  8319. Fbits: uint8(8),
  8320. Fval: uint16(116),
  8321. },
  8322. 294: {
  8323. Fbits: uint8(8),
  8324. Fval: uint16(52),
  8325. },
  8326. 295: {
  8327. Fbits: uint8(9),
  8328. Fval: uint16(201),
  8329. },
  8330. 296: {
  8331. Fop: uint8(17),
  8332. Fbits: uint8(7),
  8333. Fval: uint16(13),
  8334. },
  8335. 297: {
  8336. Fbits: uint8(8),
  8337. Fval: uint16(100),
  8338. },
  8339. 298: {
  8340. Fbits: uint8(8),
  8341. Fval: uint16(36),
  8342. },
  8343. 299: {
  8344. Fbits: uint8(9),
  8345. Fval: uint16(169),
  8346. },
  8347. 300: {
  8348. Fbits: uint8(8),
  8349. Fval: uint16(4),
  8350. },
  8351. 301: {
  8352. Fbits: uint8(8),
  8353. Fval: uint16(132),
  8354. },
  8355. 302: {
  8356. Fbits: uint8(8),
  8357. Fval: uint16(68),
  8358. },
  8359. 303: {
  8360. Fbits: uint8(9),
  8361. Fval: uint16(233),
  8362. },
  8363. 304: {
  8364. Fop: uint8(16),
  8365. Fbits: uint8(7),
  8366. Fval: uint16(8),
  8367. },
  8368. 305: {
  8369. Fbits: uint8(8),
  8370. Fval: uint16(92),
  8371. },
  8372. 306: {
  8373. Fbits: uint8(8),
  8374. Fval: uint16(28),
  8375. },
  8376. 307: {
  8377. Fbits: uint8(9),
  8378. Fval: uint16(153),
  8379. },
  8380. 308: {
  8381. Fop: uint8(20),
  8382. Fbits: uint8(7),
  8383. Fval: uint16(83),
  8384. },
  8385. 309: {
  8386. Fbits: uint8(8),
  8387. Fval: uint16(124),
  8388. },
  8389. 310: {
  8390. Fbits: uint8(8),
  8391. Fval: uint16(60),
  8392. },
  8393. 311: {
  8394. Fbits: uint8(9),
  8395. Fval: uint16(217),
  8396. },
  8397. 312: {
  8398. Fop: uint8(18),
  8399. Fbits: uint8(7),
  8400. Fval: uint16(23),
  8401. },
  8402. 313: {
  8403. Fbits: uint8(8),
  8404. Fval: uint16(108),
  8405. },
  8406. 314: {
  8407. Fbits: uint8(8),
  8408. Fval: uint16(44),
  8409. },
  8410. 315: {
  8411. Fbits: uint8(9),
  8412. Fval: uint16(185),
  8413. },
  8414. 316: {
  8415. Fbits: uint8(8),
  8416. Fval: uint16(12),
  8417. },
  8418. 317: {
  8419. Fbits: uint8(8),
  8420. Fval: uint16(140),
  8421. },
  8422. 318: {
  8423. Fbits: uint8(8),
  8424. Fval: uint16(76),
  8425. },
  8426. 319: {
  8427. Fbits: uint8(9),
  8428. Fval: uint16(249),
  8429. },
  8430. 320: {
  8431. Fop: uint8(16),
  8432. Fbits: uint8(7),
  8433. Fval: uint16(3),
  8434. },
  8435. 321: {
  8436. Fbits: uint8(8),
  8437. Fval: uint16(82),
  8438. },
  8439. 322: {
  8440. Fbits: uint8(8),
  8441. Fval: uint16(18),
  8442. },
  8443. 323: {
  8444. Fop: uint8(21),
  8445. Fbits: uint8(8),
  8446. Fval: uint16(163),
  8447. },
  8448. 324: {
  8449. Fop: uint8(19),
  8450. Fbits: uint8(7),
  8451. Fval: uint16(35),
  8452. },
  8453. 325: {
  8454. Fbits: uint8(8),
  8455. Fval: uint16(114),
  8456. },
  8457. 326: {
  8458. Fbits: uint8(8),
  8459. Fval: uint16(50),
  8460. },
  8461. 327: {
  8462. Fbits: uint8(9),
  8463. Fval: uint16(197),
  8464. },
  8465. 328: {
  8466. Fop: uint8(17),
  8467. Fbits: uint8(7),
  8468. Fval: uint16(11),
  8469. },
  8470. 329: {
  8471. Fbits: uint8(8),
  8472. Fval: uint16(98),
  8473. },
  8474. 330: {
  8475. Fbits: uint8(8),
  8476. Fval: uint16(34),
  8477. },
  8478. 331: {
  8479. Fbits: uint8(9),
  8480. Fval: uint16(165),
  8481. },
  8482. 332: {
  8483. Fbits: uint8(8),
  8484. Fval: uint16(2),
  8485. },
  8486. 333: {
  8487. Fbits: uint8(8),
  8488. Fval: uint16(130),
  8489. },
  8490. 334: {
  8491. Fbits: uint8(8),
  8492. Fval: uint16(66),
  8493. },
  8494. 335: {
  8495. Fbits: uint8(9),
  8496. Fval: uint16(229),
  8497. },
  8498. 336: {
  8499. Fop: uint8(16),
  8500. Fbits: uint8(7),
  8501. Fval: uint16(7),
  8502. },
  8503. 337: {
  8504. Fbits: uint8(8),
  8505. Fval: uint16(90),
  8506. },
  8507. 338: {
  8508. Fbits: uint8(8),
  8509. Fval: uint16(26),
  8510. },
  8511. 339: {
  8512. Fbits: uint8(9),
  8513. Fval: uint16(149),
  8514. },
  8515. 340: {
  8516. Fop: uint8(20),
  8517. Fbits: uint8(7),
  8518. Fval: uint16(67),
  8519. },
  8520. 341: {
  8521. Fbits: uint8(8),
  8522. Fval: uint16(122),
  8523. },
  8524. 342: {
  8525. Fbits: uint8(8),
  8526. Fval: uint16(58),
  8527. },
  8528. 343: {
  8529. Fbits: uint8(9),
  8530. Fval: uint16(213),
  8531. },
  8532. 344: {
  8533. Fop: uint8(18),
  8534. Fbits: uint8(7),
  8535. Fval: uint16(19),
  8536. },
  8537. 345: {
  8538. Fbits: uint8(8),
  8539. Fval: uint16(106),
  8540. },
  8541. 346: {
  8542. Fbits: uint8(8),
  8543. Fval: uint16(42),
  8544. },
  8545. 347: {
  8546. Fbits: uint8(9),
  8547. Fval: uint16(181),
  8548. },
  8549. 348: {
  8550. Fbits: uint8(8),
  8551. Fval: uint16(10),
  8552. },
  8553. 349: {
  8554. Fbits: uint8(8),
  8555. Fval: uint16(138),
  8556. },
  8557. 350: {
  8558. Fbits: uint8(8),
  8559. Fval: uint16(74),
  8560. },
  8561. 351: {
  8562. Fbits: uint8(9),
  8563. Fval: uint16(245),
  8564. },
  8565. 352: {
  8566. Fop: uint8(16),
  8567. Fbits: uint8(7),
  8568. Fval: uint16(5),
  8569. },
  8570. 353: {
  8571. Fbits: uint8(8),
  8572. Fval: uint16(86),
  8573. },
  8574. 354: {
  8575. Fbits: uint8(8),
  8576. Fval: uint16(22),
  8577. },
  8578. 355: {
  8579. Fop: uint8(64),
  8580. Fbits: uint8(8),
  8581. },
  8582. 356: {
  8583. Fop: uint8(19),
  8584. Fbits: uint8(7),
  8585. Fval: uint16(51),
  8586. },
  8587. 357: {
  8588. Fbits: uint8(8),
  8589. Fval: uint16(118),
  8590. },
  8591. 358: {
  8592. Fbits: uint8(8),
  8593. Fval: uint16(54),
  8594. },
  8595. 359: {
  8596. Fbits: uint8(9),
  8597. Fval: uint16(205),
  8598. },
  8599. 360: {
  8600. Fop: uint8(17),
  8601. Fbits: uint8(7),
  8602. Fval: uint16(15),
  8603. },
  8604. 361: {
  8605. Fbits: uint8(8),
  8606. Fval: uint16(102),
  8607. },
  8608. 362: {
  8609. Fbits: uint8(8),
  8610. Fval: uint16(38),
  8611. },
  8612. 363: {
  8613. Fbits: uint8(9),
  8614. Fval: uint16(173),
  8615. },
  8616. 364: {
  8617. Fbits: uint8(8),
  8618. Fval: uint16(6),
  8619. },
  8620. 365: {
  8621. Fbits: uint8(8),
  8622. Fval: uint16(134),
  8623. },
  8624. 366: {
  8625. Fbits: uint8(8),
  8626. Fval: uint16(70),
  8627. },
  8628. 367: {
  8629. Fbits: uint8(9),
  8630. Fval: uint16(237),
  8631. },
  8632. 368: {
  8633. Fop: uint8(16),
  8634. Fbits: uint8(7),
  8635. Fval: uint16(9),
  8636. },
  8637. 369: {
  8638. Fbits: uint8(8),
  8639. Fval: uint16(94),
  8640. },
  8641. 370: {
  8642. Fbits: uint8(8),
  8643. Fval: uint16(30),
  8644. },
  8645. 371: {
  8646. Fbits: uint8(9),
  8647. Fval: uint16(157),
  8648. },
  8649. 372: {
  8650. Fop: uint8(20),
  8651. Fbits: uint8(7),
  8652. Fval: uint16(99),
  8653. },
  8654. 373: {
  8655. Fbits: uint8(8),
  8656. Fval: uint16(126),
  8657. },
  8658. 374: {
  8659. Fbits: uint8(8),
  8660. Fval: uint16(62),
  8661. },
  8662. 375: {
  8663. Fbits: uint8(9),
  8664. Fval: uint16(221),
  8665. },
  8666. 376: {
  8667. Fop: uint8(18),
  8668. Fbits: uint8(7),
  8669. Fval: uint16(27),
  8670. },
  8671. 377: {
  8672. Fbits: uint8(8),
  8673. Fval: uint16(110),
  8674. },
  8675. 378: {
  8676. Fbits: uint8(8),
  8677. Fval: uint16(46),
  8678. },
  8679. 379: {
  8680. Fbits: uint8(9),
  8681. Fval: uint16(189),
  8682. },
  8683. 380: {
  8684. Fbits: uint8(8),
  8685. Fval: uint16(14),
  8686. },
  8687. 381: {
  8688. Fbits: uint8(8),
  8689. Fval: uint16(142),
  8690. },
  8691. 382: {
  8692. Fbits: uint8(8),
  8693. Fval: uint16(78),
  8694. },
  8695. 383: {
  8696. Fbits: uint8(9),
  8697. Fval: uint16(253),
  8698. },
  8699. 384: {
  8700. Fop: uint8(96),
  8701. Fbits: uint8(7),
  8702. },
  8703. 385: {
  8704. Fbits: uint8(8),
  8705. Fval: uint16(81),
  8706. },
  8707. 386: {
  8708. Fbits: uint8(8),
  8709. Fval: uint16(17),
  8710. },
  8711. 387: {
  8712. Fop: uint8(21),
  8713. Fbits: uint8(8),
  8714. Fval: uint16(131),
  8715. },
  8716. 388: {
  8717. Fop: uint8(18),
  8718. Fbits: uint8(7),
  8719. Fval: uint16(31),
  8720. },
  8721. 389: {
  8722. Fbits: uint8(8),
  8723. Fval: uint16(113),
  8724. },
  8725. 390: {
  8726. Fbits: uint8(8),
  8727. Fval: uint16(49),
  8728. },
  8729. 391: {
  8730. Fbits: uint8(9),
  8731. Fval: uint16(195),
  8732. },
  8733. 392: {
  8734. Fop: uint8(16),
  8735. Fbits: uint8(7),
  8736. Fval: uint16(10),
  8737. },
  8738. 393: {
  8739. Fbits: uint8(8),
  8740. Fval: uint16(97),
  8741. },
  8742. 394: {
  8743. Fbits: uint8(8),
  8744. Fval: uint16(33),
  8745. },
  8746. 395: {
  8747. Fbits: uint8(9),
  8748. Fval: uint16(163),
  8749. },
  8750. 396: {
  8751. Fbits: uint8(8),
  8752. Fval: uint16(1),
  8753. },
  8754. 397: {
  8755. Fbits: uint8(8),
  8756. Fval: uint16(129),
  8757. },
  8758. 398: {
  8759. Fbits: uint8(8),
  8760. Fval: uint16(65),
  8761. },
  8762. 399: {
  8763. Fbits: uint8(9),
  8764. Fval: uint16(227),
  8765. },
  8766. 400: {
  8767. Fop: uint8(16),
  8768. Fbits: uint8(7),
  8769. Fval: uint16(6),
  8770. },
  8771. 401: {
  8772. Fbits: uint8(8),
  8773. Fval: uint16(89),
  8774. },
  8775. 402: {
  8776. Fbits: uint8(8),
  8777. Fval: uint16(25),
  8778. },
  8779. 403: {
  8780. Fbits: uint8(9),
  8781. Fval: uint16(147),
  8782. },
  8783. 404: {
  8784. Fop: uint8(19),
  8785. Fbits: uint8(7),
  8786. Fval: uint16(59),
  8787. },
  8788. 405: {
  8789. Fbits: uint8(8),
  8790. Fval: uint16(121),
  8791. },
  8792. 406: {
  8793. Fbits: uint8(8),
  8794. Fval: uint16(57),
  8795. },
  8796. 407: {
  8797. Fbits: uint8(9),
  8798. Fval: uint16(211),
  8799. },
  8800. 408: {
  8801. Fop: uint8(17),
  8802. Fbits: uint8(7),
  8803. Fval: uint16(17),
  8804. },
  8805. 409: {
  8806. Fbits: uint8(8),
  8807. Fval: uint16(105),
  8808. },
  8809. 410: {
  8810. Fbits: uint8(8),
  8811. Fval: uint16(41),
  8812. },
  8813. 411: {
  8814. Fbits: uint8(9),
  8815. Fval: uint16(179),
  8816. },
  8817. 412: {
  8818. Fbits: uint8(8),
  8819. Fval: uint16(9),
  8820. },
  8821. 413: {
  8822. Fbits: uint8(8),
  8823. Fval: uint16(137),
  8824. },
  8825. 414: {
  8826. Fbits: uint8(8),
  8827. Fval: uint16(73),
  8828. },
  8829. 415: {
  8830. Fbits: uint8(9),
  8831. Fval: uint16(243),
  8832. },
  8833. 416: {
  8834. Fop: uint8(16),
  8835. Fbits: uint8(7),
  8836. Fval: uint16(4),
  8837. },
  8838. 417: {
  8839. Fbits: uint8(8),
  8840. Fval: uint16(85),
  8841. },
  8842. 418: {
  8843. Fbits: uint8(8),
  8844. Fval: uint16(21),
  8845. },
  8846. 419: {
  8847. Fop: uint8(16),
  8848. Fbits: uint8(8),
  8849. Fval: uint16(258),
  8850. },
  8851. 420: {
  8852. Fop: uint8(19),
  8853. Fbits: uint8(7),
  8854. Fval: uint16(43),
  8855. },
  8856. 421: {
  8857. Fbits: uint8(8),
  8858. Fval: uint16(117),
  8859. },
  8860. 422: {
  8861. Fbits: uint8(8),
  8862. Fval: uint16(53),
  8863. },
  8864. 423: {
  8865. Fbits: uint8(9),
  8866. Fval: uint16(203),
  8867. },
  8868. 424: {
  8869. Fop: uint8(17),
  8870. Fbits: uint8(7),
  8871. Fval: uint16(13),
  8872. },
  8873. 425: {
  8874. Fbits: uint8(8),
  8875. Fval: uint16(101),
  8876. },
  8877. 426: {
  8878. Fbits: uint8(8),
  8879. Fval: uint16(37),
  8880. },
  8881. 427: {
  8882. Fbits: uint8(9),
  8883. Fval: uint16(171),
  8884. },
  8885. 428: {
  8886. Fbits: uint8(8),
  8887. Fval: uint16(5),
  8888. },
  8889. 429: {
  8890. Fbits: uint8(8),
  8891. Fval: uint16(133),
  8892. },
  8893. 430: {
  8894. Fbits: uint8(8),
  8895. Fval: uint16(69),
  8896. },
  8897. 431: {
  8898. Fbits: uint8(9),
  8899. Fval: uint16(235),
  8900. },
  8901. 432: {
  8902. Fop: uint8(16),
  8903. Fbits: uint8(7),
  8904. Fval: uint16(8),
  8905. },
  8906. 433: {
  8907. Fbits: uint8(8),
  8908. Fval: uint16(93),
  8909. },
  8910. 434: {
  8911. Fbits: uint8(8),
  8912. Fval: uint16(29),
  8913. },
  8914. 435: {
  8915. Fbits: uint8(9),
  8916. Fval: uint16(155),
  8917. },
  8918. 436: {
  8919. Fop: uint8(20),
  8920. Fbits: uint8(7),
  8921. Fval: uint16(83),
  8922. },
  8923. 437: {
  8924. Fbits: uint8(8),
  8925. Fval: uint16(125),
  8926. },
  8927. 438: {
  8928. Fbits: uint8(8),
  8929. Fval: uint16(61),
  8930. },
  8931. 439: {
  8932. Fbits: uint8(9),
  8933. Fval: uint16(219),
  8934. },
  8935. 440: {
  8936. Fop: uint8(18),
  8937. Fbits: uint8(7),
  8938. Fval: uint16(23),
  8939. },
  8940. 441: {
  8941. Fbits: uint8(8),
  8942. Fval: uint16(109),
  8943. },
  8944. 442: {
  8945. Fbits: uint8(8),
  8946. Fval: uint16(45),
  8947. },
  8948. 443: {
  8949. Fbits: uint8(9),
  8950. Fval: uint16(187),
  8951. },
  8952. 444: {
  8953. Fbits: uint8(8),
  8954. Fval: uint16(13),
  8955. },
  8956. 445: {
  8957. Fbits: uint8(8),
  8958. Fval: uint16(141),
  8959. },
  8960. 446: {
  8961. Fbits: uint8(8),
  8962. Fval: uint16(77),
  8963. },
  8964. 447: {
  8965. Fbits: uint8(9),
  8966. Fval: uint16(251),
  8967. },
  8968. 448: {
  8969. Fop: uint8(16),
  8970. Fbits: uint8(7),
  8971. Fval: uint16(3),
  8972. },
  8973. 449: {
  8974. Fbits: uint8(8),
  8975. Fval: uint16(83),
  8976. },
  8977. 450: {
  8978. Fbits: uint8(8),
  8979. Fval: uint16(19),
  8980. },
  8981. 451: {
  8982. Fop: uint8(21),
  8983. Fbits: uint8(8),
  8984. Fval: uint16(195),
  8985. },
  8986. 452: {
  8987. Fop: uint8(19),
  8988. Fbits: uint8(7),
  8989. Fval: uint16(35),
  8990. },
  8991. 453: {
  8992. Fbits: uint8(8),
  8993. Fval: uint16(115),
  8994. },
  8995. 454: {
  8996. Fbits: uint8(8),
  8997. Fval: uint16(51),
  8998. },
  8999. 455: {
  9000. Fbits: uint8(9),
  9001. Fval: uint16(199),
  9002. },
  9003. 456: {
  9004. Fop: uint8(17),
  9005. Fbits: uint8(7),
  9006. Fval: uint16(11),
  9007. },
  9008. 457: {
  9009. Fbits: uint8(8),
  9010. Fval: uint16(99),
  9011. },
  9012. 458: {
  9013. Fbits: uint8(8),
  9014. Fval: uint16(35),
  9015. },
  9016. 459: {
  9017. Fbits: uint8(9),
  9018. Fval: uint16(167),
  9019. },
  9020. 460: {
  9021. Fbits: uint8(8),
  9022. Fval: uint16(3),
  9023. },
  9024. 461: {
  9025. Fbits: uint8(8),
  9026. Fval: uint16(131),
  9027. },
  9028. 462: {
  9029. Fbits: uint8(8),
  9030. Fval: uint16(67),
  9031. },
  9032. 463: {
  9033. Fbits: uint8(9),
  9034. Fval: uint16(231),
  9035. },
  9036. 464: {
  9037. Fop: uint8(16),
  9038. Fbits: uint8(7),
  9039. Fval: uint16(7),
  9040. },
  9041. 465: {
  9042. Fbits: uint8(8),
  9043. Fval: uint16(91),
  9044. },
  9045. 466: {
  9046. Fbits: uint8(8),
  9047. Fval: uint16(27),
  9048. },
  9049. 467: {
  9050. Fbits: uint8(9),
  9051. Fval: uint16(151),
  9052. },
  9053. 468: {
  9054. Fop: uint8(20),
  9055. Fbits: uint8(7),
  9056. Fval: uint16(67),
  9057. },
  9058. 469: {
  9059. Fbits: uint8(8),
  9060. Fval: uint16(123),
  9061. },
  9062. 470: {
  9063. Fbits: uint8(8),
  9064. Fval: uint16(59),
  9065. },
  9066. 471: {
  9067. Fbits: uint8(9),
  9068. Fval: uint16(215),
  9069. },
  9070. 472: {
  9071. Fop: uint8(18),
  9072. Fbits: uint8(7),
  9073. Fval: uint16(19),
  9074. },
  9075. 473: {
  9076. Fbits: uint8(8),
  9077. Fval: uint16(107),
  9078. },
  9079. 474: {
  9080. Fbits: uint8(8),
  9081. Fval: uint16(43),
  9082. },
  9083. 475: {
  9084. Fbits: uint8(9),
  9085. Fval: uint16(183),
  9086. },
  9087. 476: {
  9088. Fbits: uint8(8),
  9089. Fval: uint16(11),
  9090. },
  9091. 477: {
  9092. Fbits: uint8(8),
  9093. Fval: uint16(139),
  9094. },
  9095. 478: {
  9096. Fbits: uint8(8),
  9097. Fval: uint16(75),
  9098. },
  9099. 479: {
  9100. Fbits: uint8(9),
  9101. Fval: uint16(247),
  9102. },
  9103. 480: {
  9104. Fop: uint8(16),
  9105. Fbits: uint8(7),
  9106. Fval: uint16(5),
  9107. },
  9108. 481: {
  9109. Fbits: uint8(8),
  9110. Fval: uint16(87),
  9111. },
  9112. 482: {
  9113. Fbits: uint8(8),
  9114. Fval: uint16(23),
  9115. },
  9116. 483: {
  9117. Fop: uint8(64),
  9118. Fbits: uint8(8),
  9119. },
  9120. 484: {
  9121. Fop: uint8(19),
  9122. Fbits: uint8(7),
  9123. Fval: uint16(51),
  9124. },
  9125. 485: {
  9126. Fbits: uint8(8),
  9127. Fval: uint16(119),
  9128. },
  9129. 486: {
  9130. Fbits: uint8(8),
  9131. Fval: uint16(55),
  9132. },
  9133. 487: {
  9134. Fbits: uint8(9),
  9135. Fval: uint16(207),
  9136. },
  9137. 488: {
  9138. Fop: uint8(17),
  9139. Fbits: uint8(7),
  9140. Fval: uint16(15),
  9141. },
  9142. 489: {
  9143. Fbits: uint8(8),
  9144. Fval: uint16(103),
  9145. },
  9146. 490: {
  9147. Fbits: uint8(8),
  9148. Fval: uint16(39),
  9149. },
  9150. 491: {
  9151. Fbits: uint8(9),
  9152. Fval: uint16(175),
  9153. },
  9154. 492: {
  9155. Fbits: uint8(8),
  9156. Fval: uint16(7),
  9157. },
  9158. 493: {
  9159. Fbits: uint8(8),
  9160. Fval: uint16(135),
  9161. },
  9162. 494: {
  9163. Fbits: uint8(8),
  9164. Fval: uint16(71),
  9165. },
  9166. 495: {
  9167. Fbits: uint8(9),
  9168. Fval: uint16(239),
  9169. },
  9170. 496: {
  9171. Fop: uint8(16),
  9172. Fbits: uint8(7),
  9173. Fval: uint16(9),
  9174. },
  9175. 497: {
  9176. Fbits: uint8(8),
  9177. Fval: uint16(95),
  9178. },
  9179. 498: {
  9180. Fbits: uint8(8),
  9181. Fval: uint16(31),
  9182. },
  9183. 499: {
  9184. Fbits: uint8(9),
  9185. Fval: uint16(159),
  9186. },
  9187. 500: {
  9188. Fop: uint8(20),
  9189. Fbits: uint8(7),
  9190. Fval: uint16(99),
  9191. },
  9192. 501: {
  9193. Fbits: uint8(8),
  9194. Fval: uint16(127),
  9195. },
  9196. 502: {
  9197. Fbits: uint8(8),
  9198. Fval: uint16(63),
  9199. },
  9200. 503: {
  9201. Fbits: uint8(9),
  9202. Fval: uint16(223),
  9203. },
  9204. 504: {
  9205. Fop: uint8(18),
  9206. Fbits: uint8(7),
  9207. Fval: uint16(27),
  9208. },
  9209. 505: {
  9210. Fbits: uint8(8),
  9211. Fval: uint16(111),
  9212. },
  9213. 506: {
  9214. Fbits: uint8(8),
  9215. Fval: uint16(47),
  9216. },
  9217. 507: {
  9218. Fbits: uint8(9),
  9219. Fval: uint16(191),
  9220. },
  9221. 508: {
  9222. Fbits: uint8(8),
  9223. Fval: uint16(15),
  9224. },
  9225. 509: {
  9226. Fbits: uint8(8),
  9227. Fval: uint16(143),
  9228. },
  9229. 510: {
  9230. Fbits: uint8(8),
  9231. Fval: uint16(79),
  9232. },
  9233. 511: {
  9234. Fbits: uint8(9),
  9235. Fval: uint16(255),
  9236. },
  9237. }
  9238. var _distfix = [32]Tcode{
  9239. 0: {
  9240. Fop: uint8(16),
  9241. Fbits: uint8(5),
  9242. Fval: uint16(1),
  9243. },
  9244. 1: {
  9245. Fop: uint8(23),
  9246. Fbits: uint8(5),
  9247. Fval: uint16(257),
  9248. },
  9249. 2: {
  9250. Fop: uint8(19),
  9251. Fbits: uint8(5),
  9252. Fval: uint16(17),
  9253. },
  9254. 3: {
  9255. Fop: uint8(27),
  9256. Fbits: uint8(5),
  9257. Fval: uint16(4097),
  9258. },
  9259. 4: {
  9260. Fop: uint8(17),
  9261. Fbits: uint8(5),
  9262. Fval: uint16(5),
  9263. },
  9264. 5: {
  9265. Fop: uint8(25),
  9266. Fbits: uint8(5),
  9267. Fval: uint16(1025),
  9268. },
  9269. 6: {
  9270. Fop: uint8(21),
  9271. Fbits: uint8(5),
  9272. Fval: uint16(65),
  9273. },
  9274. 7: {
  9275. Fop: uint8(29),
  9276. Fbits: uint8(5),
  9277. Fval: uint16(16385),
  9278. },
  9279. 8: {
  9280. Fop: uint8(16),
  9281. Fbits: uint8(5),
  9282. Fval: uint16(3),
  9283. },
  9284. 9: {
  9285. Fop: uint8(24),
  9286. Fbits: uint8(5),
  9287. Fval: uint16(513),
  9288. },
  9289. 10: {
  9290. Fop: uint8(20),
  9291. Fbits: uint8(5),
  9292. Fval: uint16(33),
  9293. },
  9294. 11: {
  9295. Fop: uint8(28),
  9296. Fbits: uint8(5),
  9297. Fval: uint16(8193),
  9298. },
  9299. 12: {
  9300. Fop: uint8(18),
  9301. Fbits: uint8(5),
  9302. Fval: uint16(9),
  9303. },
  9304. 13: {
  9305. Fop: uint8(26),
  9306. Fbits: uint8(5),
  9307. Fval: uint16(2049),
  9308. },
  9309. 14: {
  9310. Fop: uint8(22),
  9311. Fbits: uint8(5),
  9312. Fval: uint16(129),
  9313. },
  9314. 15: {
  9315. Fop: uint8(64),
  9316. Fbits: uint8(5),
  9317. },
  9318. 16: {
  9319. Fop: uint8(16),
  9320. Fbits: uint8(5),
  9321. Fval: uint16(2),
  9322. },
  9323. 17: {
  9324. Fop: uint8(23),
  9325. Fbits: uint8(5),
  9326. Fval: uint16(385),
  9327. },
  9328. 18: {
  9329. Fop: uint8(19),
  9330. Fbits: uint8(5),
  9331. Fval: uint16(25),
  9332. },
  9333. 19: {
  9334. Fop: uint8(27),
  9335. Fbits: uint8(5),
  9336. Fval: uint16(6145),
  9337. },
  9338. 20: {
  9339. Fop: uint8(17),
  9340. Fbits: uint8(5),
  9341. Fval: uint16(7),
  9342. },
  9343. 21: {
  9344. Fop: uint8(25),
  9345. Fbits: uint8(5),
  9346. Fval: uint16(1537),
  9347. },
  9348. 22: {
  9349. Fop: uint8(21),
  9350. Fbits: uint8(5),
  9351. Fval: uint16(97),
  9352. },
  9353. 23: {
  9354. Fop: uint8(29),
  9355. Fbits: uint8(5),
  9356. Fval: uint16(24577),
  9357. },
  9358. 24: {
  9359. Fop: uint8(16),
  9360. Fbits: uint8(5),
  9361. Fval: uint16(4),
  9362. },
  9363. 25: {
  9364. Fop: uint8(24),
  9365. Fbits: uint8(5),
  9366. Fval: uint16(769),
  9367. },
  9368. 26: {
  9369. Fop: uint8(20),
  9370. Fbits: uint8(5),
  9371. Fval: uint16(49),
  9372. },
  9373. 27: {
  9374. Fop: uint8(28),
  9375. Fbits: uint8(5),
  9376. Fval: uint16(12289),
  9377. },
  9378. 28: {
  9379. Fop: uint8(18),
  9380. Fbits: uint8(5),
  9381. Fval: uint16(13),
  9382. },
  9383. 29: {
  9384. Fop: uint8(26),
  9385. Fbits: uint8(5),
  9386. Fval: uint16(3073),
  9387. },
  9388. 30: {
  9389. Fop: uint8(22),
  9390. Fbits: uint8(5),
  9391. Fval: uint16(193),
  9392. },
  9393. 31: {
  9394. Fop: uint8(64),
  9395. Fbits: uint8(5),
  9396. },
  9397. }
  9398. /* Macros for inflateBack(): */
  9399. /* Load returned state from inflate_fast() */
  9400. /* Set state from registers for inflate_fast() */
  9401. /* Clear the input bit accumulator */
  9402. /* Assure that some input is available. If input is requested, but denied,
  9403. then return a Z_BUF_ERROR from inflateBack(). */
  9404. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  9405. with an error if there is no input available. */
  9406. /* Assure that there are at least n bits in the bit accumulator. If there is
  9407. not enough available input to do that, then return from inflateBack() with
  9408. an error. */
  9409. /* Return the low n bits of the bit accumulator (n < 16) */
  9410. /* Remove n bits from the bit accumulator */
  9411. /* Remove zero to seven bits as needed to go to a byte boundary */
  9412. /* Assure that some output space is available, by writing out the window
  9413. if it's full. If the write fails, return from inflateBack() with a
  9414. Z_BUF_ERROR. */
  9415. // C documentation
  9416. //
  9417. // /*
  9418. // strm provides the memory allocation functions and window buffer on input,
  9419. // and provides information on the unused input on return. For Z_DATA_ERROR
  9420. // returns, strm will also provide an error message.
  9421. //
  9422. // in() and out() are the call-back input and output functions. When
  9423. // inflateBack() needs more input, it calls in(). When inflateBack() has
  9424. // filled the window with output, or when it completes with data in the
  9425. // window, it calls out() to write out the data. The application must not
  9426. // change the provided input until in() is called again or inflateBack()
  9427. // returns. The application must not change the window/output buffer until
  9428. // inflateBack() returns.
  9429. //
  9430. // in() and out() are called with a descriptor parameter provided in the
  9431. // inflateBack() call. This parameter can be a structure that provides the
  9432. // information required to do the read or write, as well as accumulated
  9433. // information on the input and output such as totals and check values.
  9434. //
  9435. // in() should return zero on failure. out() should return non-zero on
  9436. // failure. If either in() or out() fails, than inflateBack() returns a
  9437. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  9438. // was in() or out() that caused in the error. Otherwise, inflateBack()
  9439. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  9440. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  9441. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  9442. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  9443. // */
  9444. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  9445. bp := tls.Alloc(16)
  9446. defer tls.Free(16)
  9447. var bits, copy1, have, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  9448. 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
  9449. var here, last Tcode
  9450. var hold uint64
  9451. var ret int32
  9452. var _ /* next at bp+0 */ uintptr
  9453. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  9454. /* Check that the strm exists and that the state was initialized */
  9455. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  9456. return -int32(2)
  9457. }
  9458. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  9459. /* Reset the state */
  9460. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  9461. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9462. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  9463. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  9464. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9465. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  9466. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9467. } else {
  9468. v1 = uint32(0)
  9469. }
  9470. have = v1
  9471. hold = uint64(0)
  9472. bits = uint32(0)
  9473. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9474. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9475. /* Inflate until end of block marked as last */
  9476. for {
  9477. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  9478. case int32(_TYPE):
  9479. goto _3
  9480. case int32(_STORED):
  9481. goto _4
  9482. case int32(_TABLE):
  9483. goto _5
  9484. case int32(_LEN):
  9485. goto _6
  9486. case int32(_DONE):
  9487. goto _7
  9488. case int32(_BAD):
  9489. goto _8
  9490. default:
  9491. goto _9
  9492. }
  9493. goto _10
  9494. _3:
  9495. ;
  9496. /* determine and dispatch block type */
  9497. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  9498. hold >>= uint64(bits & uint32(7))
  9499. bits -= bits & uint32(7)
  9500. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  9501. goto _10
  9502. }
  9503. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9504. if have == uint32(0) {
  9505. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9506. if have == uint32(0) {
  9507. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9508. ret = -int32(5)
  9509. goto inf_leave
  9510. }
  9511. }
  9512. have--
  9513. v11 = *(*uintptr)(unsafe.Pointer(bp))
  9514. *(*uintptr)(unsafe.Pointer(bp))++
  9515. hold += uint64(*(*uint8)(unsafe.Pointer(v11))) << bits
  9516. bits += uint32(8)
  9517. }
  9518. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  9519. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(1))
  9520. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  9521. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  9522. case uint32(0): /* stored block */
  9523. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  9524. case uint32(1): /* fixed block */
  9525. _fixedtables(tls, state)
  9526. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  9527. case uint32(2): /* dynamic block */
  9528. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  9529. case uint32(3):
  9530. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  9531. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9532. }
  9533. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  9534. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9535. goto _10
  9536. _4:
  9537. ;
  9538. /* get and verify stored block length */
  9539. _14:
  9540. ;
  9541. hold >>= uint64(bits & uint32(7))
  9542. bits -= bits & uint32(7)
  9543. goto _13
  9544. _13:
  9545. ;
  9546. if 0 != 0 {
  9547. goto _14
  9548. }
  9549. goto _12
  9550. _12:
  9551. ; /* go to byte boundary */
  9552. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  9553. if have == uint32(0) {
  9554. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9555. if have == uint32(0) {
  9556. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9557. ret = -int32(5)
  9558. goto inf_leave
  9559. }
  9560. }
  9561. have--
  9562. v15 = *(*uintptr)(unsafe.Pointer(bp))
  9563. *(*uintptr)(unsafe.Pointer(bp))++
  9564. hold += uint64(*(*uint8)(unsafe.Pointer(v15))) << bits
  9565. bits += uint32(8)
  9566. }
  9567. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  9568. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  9569. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9570. goto _10
  9571. }
  9572. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  9573. hold = uint64(0)
  9574. bits = uint32(0)
  9575. /* copy stored block from input to output */
  9576. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  9577. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  9578. if have == uint32(0) {
  9579. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9580. if have == uint32(0) {
  9581. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9582. ret = -int32(5)
  9583. goto inf_leave
  9584. }
  9585. }
  9586. if left == uint32(0) {
  9587. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9588. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9589. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9590. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9591. ret = -int32(5)
  9592. goto inf_leave
  9593. }
  9594. }
  9595. if copy1 > have {
  9596. copy1 = have
  9597. }
  9598. if copy1 > left {
  9599. copy1 = left
  9600. }
  9601. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(copy1))
  9602. have -= copy1
  9603. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  9604. left -= copy1
  9605. put += uintptr(copy1)
  9606. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  9607. }
  9608. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9609. goto _10
  9610. _5:
  9611. ;
  9612. /* get dynamic table entries descriptor */
  9613. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  9614. if have == uint32(0) {
  9615. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9616. if have == uint32(0) {
  9617. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9618. ret = -int32(5)
  9619. goto inf_leave
  9620. }
  9621. }
  9622. have--
  9623. v16 = *(*uintptr)(unsafe.Pointer(bp))
  9624. *(*uintptr)(unsafe.Pointer(bp))++
  9625. hold += uint64(*(*uint8)(unsafe.Pointer(v16))) << bits
  9626. bits += uint32(8)
  9627. }
  9628. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  9629. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  9630. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9631. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  9632. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  9633. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  9634. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  9635. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  9636. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  9637. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  9638. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  9639. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9640. goto _10
  9641. }
  9642. /* get code length code lengths (not a typo) */
  9643. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9644. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  9645. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  9646. if have == uint32(0) {
  9647. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9648. if have == uint32(0) {
  9649. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9650. ret = -int32(5)
  9651. goto inf_leave
  9652. }
  9653. }
  9654. have--
  9655. v17 = *(*uintptr)(unsafe.Pointer(bp))
  9656. *(*uintptr)(unsafe.Pointer(bp))++
  9657. hold += uint64(*(*uint8)(unsafe.Pointer(v17))) << bits
  9658. bits += uint32(8)
  9659. }
  9660. v19 = state + 140
  9661. v18 = *(*uint32)(unsafe.Pointer(v19))
  9662. *(*uint32)(unsafe.Pointer(v19))++
  9663. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v18])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  9664. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  9665. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9666. }
  9667. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  9668. v21 = state + 140
  9669. v20 = *(*uint32)(unsafe.Pointer(v21))
  9670. *(*uint32)(unsafe.Pointer(v21))++
  9671. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v20])*2)) = uint16(0)
  9672. }
  9673. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9674. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9675. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  9676. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  9677. if ret != 0 {
  9678. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  9679. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9680. goto _10
  9681. }
  9682. /* get length and distance code code lengths */
  9683. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  9684. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9685. for {
  9686. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9687. if uint32(here.Fbits) <= bits {
  9688. break
  9689. }
  9690. if have == uint32(0) {
  9691. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9692. if have == uint32(0) {
  9693. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9694. ret = -int32(5)
  9695. goto inf_leave
  9696. }
  9697. }
  9698. have--
  9699. v23 = *(*uintptr)(unsafe.Pointer(bp))
  9700. *(*uintptr)(unsafe.Pointer(bp))++
  9701. hold += uint64(*(*uint8)(unsafe.Pointer(v23))) << bits
  9702. bits += uint32(8)
  9703. goto _22
  9704. _22:
  9705. }
  9706. if libc.Int32FromUint16(here.Fval) < int32(16) {
  9707. hold >>= uint64(here.Fbits)
  9708. bits -= uint32(here.Fbits)
  9709. v25 = state + 140
  9710. v24 = *(*uint32)(unsafe.Pointer(v25))
  9711. *(*uint32)(unsafe.Pointer(v25))++
  9712. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v24)*2)) = here.Fval
  9713. } else {
  9714. if libc.Int32FromUint16(here.Fval) == int32(16) {
  9715. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  9716. if have == uint32(0) {
  9717. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9718. if have == uint32(0) {
  9719. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9720. ret = -int32(5)
  9721. goto inf_leave
  9722. }
  9723. }
  9724. have--
  9725. v26 = *(*uintptr)(unsafe.Pointer(bp))
  9726. *(*uintptr)(unsafe.Pointer(bp))++
  9727. hold += uint64(*(*uint8)(unsafe.Pointer(v26))) << bits
  9728. bits += uint32(8)
  9729. }
  9730. hold >>= uint64(here.Fbits)
  9731. bits -= uint32(here.Fbits)
  9732. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  9733. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9734. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9735. break
  9736. }
  9737. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  9738. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  9739. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  9740. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  9741. } else {
  9742. if libc.Int32FromUint16(here.Fval) == int32(17) {
  9743. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  9744. if have == uint32(0) {
  9745. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9746. if have == uint32(0) {
  9747. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9748. ret = -int32(5)
  9749. goto inf_leave
  9750. }
  9751. }
  9752. have--
  9753. v27 = *(*uintptr)(unsafe.Pointer(bp))
  9754. *(*uintptr)(unsafe.Pointer(bp))++
  9755. hold += uint64(*(*uint8)(unsafe.Pointer(v27))) << bits
  9756. bits += uint32(8)
  9757. }
  9758. hold >>= uint64(here.Fbits)
  9759. bits -= uint32(here.Fbits)
  9760. len1 = uint32(0)
  9761. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  9762. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  9763. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  9764. } else {
  9765. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  9766. if have == uint32(0) {
  9767. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9768. if have == uint32(0) {
  9769. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9770. ret = -int32(5)
  9771. goto inf_leave
  9772. }
  9773. }
  9774. have--
  9775. v28 = *(*uintptr)(unsafe.Pointer(bp))
  9776. *(*uintptr)(unsafe.Pointer(bp))++
  9777. hold += uint64(*(*uint8)(unsafe.Pointer(v28))) << bits
  9778. bits += uint32(8)
  9779. }
  9780. hold >>= uint64(here.Fbits)
  9781. bits -= uint32(here.Fbits)
  9782. len1 = uint32(0)
  9783. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  9784. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(7))
  9785. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  9786. }
  9787. }
  9788. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  9789. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  9790. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9791. break
  9792. }
  9793. for {
  9794. v29 = copy1
  9795. copy1--
  9796. if !(v29 != 0) {
  9797. break
  9798. }
  9799. v31 = state + 140
  9800. v30 = *(*uint32)(unsafe.Pointer(v31))
  9801. *(*uint32)(unsafe.Pointer(v31))++
  9802. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v30)*2)) = uint16(len1)
  9803. }
  9804. }
  9805. }
  9806. /* handle error breaks in while */
  9807. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  9808. goto _10
  9809. }
  9810. /* check for end-of-block code (better have one) */
  9811. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  9812. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  9813. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9814. goto _10
  9815. }
  9816. /* build code tables -- note: do not change the lenbits or distbits
  9817. values here (9 and 6) without reading the comments in inftrees.h
  9818. concerning the ENOUGH constants, which depend on those values */
  9819. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  9820. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9821. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  9822. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  9823. if ret != 0 {
  9824. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  9825. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9826. goto _10
  9827. }
  9828. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  9829. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  9830. ret = Xinflate_table(tls, int32(_DISTS), state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  9831. if ret != 0 {
  9832. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  9833. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9834. goto _10
  9835. }
  9836. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9837. /* fallthrough */
  9838. _6:
  9839. ;
  9840. /* use inflate_fast() if we have enough input and output */
  9841. if have >= uint32(6) && left >= uint32(258) {
  9842. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  9843. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  9844. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  9845. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  9846. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  9847. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  9848. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  9849. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  9850. }
  9851. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  9852. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  9853. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9854. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9855. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9856. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  9857. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  9858. goto _10
  9859. }
  9860. /* get a literal, length, or end-of-block code */
  9861. for {
  9862. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  9863. if uint32(here.Fbits) <= bits {
  9864. break
  9865. }
  9866. if have == uint32(0) {
  9867. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9868. if have == uint32(0) {
  9869. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9870. ret = -int32(5)
  9871. goto inf_leave
  9872. }
  9873. }
  9874. have--
  9875. v33 = *(*uintptr)(unsafe.Pointer(bp))
  9876. *(*uintptr)(unsafe.Pointer(bp))++
  9877. hold += uint64(*(*uint8)(unsafe.Pointer(v33))) << bits
  9878. bits += uint32(8)
  9879. goto _32
  9880. _32:
  9881. }
  9882. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  9883. last = here
  9884. for {
  9885. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  9886. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  9887. break
  9888. }
  9889. if have == uint32(0) {
  9890. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9891. if have == uint32(0) {
  9892. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9893. ret = -int32(5)
  9894. goto inf_leave
  9895. }
  9896. }
  9897. have--
  9898. v35 = *(*uintptr)(unsafe.Pointer(bp))
  9899. *(*uintptr)(unsafe.Pointer(bp))++
  9900. hold += uint64(*(*uint8)(unsafe.Pointer(v35))) << bits
  9901. bits += uint32(8)
  9902. goto _34
  9903. _34:
  9904. }
  9905. hold >>= uint64(last.Fbits)
  9906. bits -= uint32(last.Fbits)
  9907. }
  9908. hold >>= uint64(here.Fbits)
  9909. bits -= uint32(here.Fbits)
  9910. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  9911. /* process literal */
  9912. if libc.Int32FromUint8(here.Fop) == 0 {
  9913. if left == uint32(0) {
  9914. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  9915. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  9916. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  9917. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  9918. ret = -int32(5)
  9919. goto inf_leave
  9920. }
  9921. }
  9922. v36 = put
  9923. put++
  9924. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  9925. left--
  9926. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  9927. goto _10
  9928. }
  9929. /* process end of block */
  9930. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  9931. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  9932. goto _10
  9933. }
  9934. /* invalid code */
  9935. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  9936. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  9937. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  9938. goto _10
  9939. }
  9940. /* length code -- get extra bits, if any */
  9941. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  9942. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  9943. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  9944. if have == uint32(0) {
  9945. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9946. if have == uint32(0) {
  9947. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9948. ret = -int32(5)
  9949. goto inf_leave
  9950. }
  9951. }
  9952. have--
  9953. v37 = *(*uintptr)(unsafe.Pointer(bp))
  9954. *(*uintptr)(unsafe.Pointer(bp))++
  9955. hold += uint64(*(*uint8)(unsafe.Pointer(v37))) << bits
  9956. bits += uint32(8)
  9957. }
  9958. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  9959. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  9960. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  9961. }
  9962. /* get distance code */
  9963. for {
  9964. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  9965. if uint32(here.Fbits) <= bits {
  9966. break
  9967. }
  9968. if have == uint32(0) {
  9969. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9970. if have == uint32(0) {
  9971. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9972. ret = -int32(5)
  9973. goto inf_leave
  9974. }
  9975. }
  9976. have--
  9977. v39 = *(*uintptr)(unsafe.Pointer(bp))
  9978. *(*uintptr)(unsafe.Pointer(bp))++
  9979. hold += uint64(*(*uint8)(unsafe.Pointer(v39))) << bits
  9980. bits += uint32(8)
  9981. goto _38
  9982. _38:
  9983. }
  9984. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  9985. last = here
  9986. for {
  9987. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  9988. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  9989. break
  9990. }
  9991. if have == uint32(0) {
  9992. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  9993. if have == uint32(0) {
  9994. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  9995. ret = -int32(5)
  9996. goto inf_leave
  9997. }
  9998. }
  9999. have--
  10000. v41 = *(*uintptr)(unsafe.Pointer(bp))
  10001. *(*uintptr)(unsafe.Pointer(bp))++
  10002. hold += uint64(*(*uint8)(unsafe.Pointer(v41))) << bits
  10003. bits += uint32(8)
  10004. goto _40
  10005. _40:
  10006. }
  10007. hold >>= uint64(last.Fbits)
  10008. bits -= uint32(last.Fbits)
  10009. }
  10010. hold >>= uint64(here.Fbits)
  10011. bits -= uint32(here.Fbits)
  10012. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  10013. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10014. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10015. goto _10
  10016. }
  10017. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  10018. /* get distance extra bits, if any */
  10019. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  10020. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  10021. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  10022. if have == uint32(0) {
  10023. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  10024. if have == uint32(0) {
  10025. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  10026. ret = -int32(5)
  10027. goto inf_leave
  10028. }
  10029. }
  10030. have--
  10031. v42 = *(*uintptr)(unsafe.Pointer(bp))
  10032. *(*uintptr)(unsafe.Pointer(bp))++
  10033. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  10034. bits += uint32(8)
  10035. }
  10036. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  10037. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  10038. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  10039. }
  10040. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10041. v43 = left
  10042. } else {
  10043. v43 = uint32(0)
  10044. }
  10045. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  10046. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10047. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10048. goto _10
  10049. }
  10050. /* copy match from window to output */
  10051. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  10052. if left == uint32(0) {
  10053. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10054. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10055. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  10056. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  10057. ret = -int32(5)
  10058. goto inf_leave
  10059. }
  10060. }
  10061. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  10062. if copy1 < left {
  10063. from = put + uintptr(copy1)
  10064. copy1 = left - copy1
  10065. } else {
  10066. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  10067. copy1 = left
  10068. }
  10069. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  10070. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  10071. }
  10072. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  10073. left -= copy1
  10074. for {
  10075. v46 = put
  10076. put++
  10077. v47 = from
  10078. from++
  10079. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  10080. goto _45
  10081. _45:
  10082. ;
  10083. copy1--
  10084. v44 = copy1
  10085. if !(v44 != 0) {
  10086. break
  10087. }
  10088. }
  10089. }
  10090. goto _10
  10091. _7:
  10092. ;
  10093. /* inflate stream terminated properly */
  10094. ret = int32(m_Z_STREAM_END)
  10095. goto inf_leave
  10096. _8:
  10097. ;
  10098. ret = -int32(3)
  10099. goto inf_leave
  10100. _9:
  10101. ;
  10102. /* can't happen, but makes compilers happy */
  10103. ret = -int32(2)
  10104. goto inf_leave
  10105. _10:
  10106. ;
  10107. goto _2
  10108. _2:
  10109. }
  10110. /* Write leftover output and return unused input */
  10111. goto inf_leave
  10112. inf_leave:
  10113. ;
  10114. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  10115. 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) {
  10116. ret = -int32(5)
  10117. }
  10118. }
  10119. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  10120. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  10121. return ret
  10122. }
  10123. var _order = [19]uint16{
  10124. 0: uint16(16),
  10125. 1: uint16(17),
  10126. 2: uint16(18),
  10127. 4: uint16(8),
  10128. 5: uint16(7),
  10129. 6: uint16(9),
  10130. 7: uint16(6),
  10131. 8: uint16(10),
  10132. 9: uint16(5),
  10133. 10: uint16(11),
  10134. 11: uint16(4),
  10135. 12: uint16(12),
  10136. 13: uint16(3),
  10137. 14: uint16(13),
  10138. 15: uint16(2),
  10139. 16: uint16(14),
  10140. 17: uint16(1),
  10141. 18: uint16(15),
  10142. }
  10143. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10144. 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) {
  10145. return -int32(2)
  10146. }
  10147. (*(*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)
  10148. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10149. return m_Z_OK
  10150. }
  10151. // C documentation
  10152. //
  10153. // /*
  10154. // Decode literal, length, and distance codes and write out the resulting
  10155. // literal and match bytes until either not enough input or output is
  10156. // available, an end-of-block is encountered, or a data error is encountered.
  10157. // When large enough input and output buffers are supplied to inflate(), for
  10158. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  10159. // inflate execution time is spent in this routine.
  10160. //
  10161. // Entry assumptions:
  10162. //
  10163. // state->mode == LEN
  10164. // strm->avail_in >= 6
  10165. // strm->avail_out >= 258
  10166. // start >= strm->avail_out
  10167. // state->bits < 8
  10168. //
  10169. // On return, state->mode is one of:
  10170. //
  10171. // LEN -- ran out of enough output space or enough available input
  10172. // TYPE -- reached end of block code, inflate() to interpret next block
  10173. // BAD -- error in block data
  10174. //
  10175. // Notes:
  10176. //
  10177. // - The maximum input bits used by a length/distance pair is 15 bits for the
  10178. // length code, 5 bits for the length extra, 15 bits for the distance code,
  10179. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  10180. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  10181. // checking for available input while decoding.
  10182. //
  10183. // - The maximum bytes that a single length/distance pair can output is 258
  10184. // bytes, which is the maximum length that can be coded. inflate_fast()
  10185. // requires strm->avail_out >= 258 for each loop to avoid checking for
  10186. // output space.
  10187. // */
  10188. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  10189. 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
  10190. var bits, dist, dmask, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  10191. var hold uint64
  10192. var v45, v46 int64
  10193. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  10194. /* copy state to local variables */
  10195. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10196. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  10197. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  10198. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  10199. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  10200. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  10201. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  10202. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  10203. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  10204. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  10205. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  10206. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  10207. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  10208. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  10209. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  10210. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  10211. /* decode literals and length/distances until end-of-block or not enough
  10212. input data or output space */
  10213. for cond := true; cond; cond = in < last && out < end {
  10214. if bits < uint32(15) {
  10215. v1 = in
  10216. in++
  10217. hold += uint64(*(*uint8)(unsafe.Pointer(v1))) << bits
  10218. bits += uint32(8)
  10219. v2 = in
  10220. in++
  10221. hold += uint64(*(*uint8)(unsafe.Pointer(v2))) << bits
  10222. bits += uint32(8)
  10223. }
  10224. here = lcode + uintptr(hold&uint64(lmask))*4
  10225. goto dolen
  10226. dolen:
  10227. ;
  10228. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10229. hold >>= uint64(op)
  10230. bits -= op
  10231. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10232. if op == uint32(0) { /* literal */
  10233. v3 = out
  10234. out++
  10235. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  10236. } else {
  10237. if op&uint32(16) != 0 { /* length base */
  10238. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10239. op &= uint32(15) /* number of extra bits */
  10240. if op != 0 {
  10241. if bits < op {
  10242. v4 = in
  10243. in++
  10244. hold += uint64(*(*uint8)(unsafe.Pointer(v4))) << bits
  10245. bits += uint32(8)
  10246. }
  10247. len1 += uint32(hold) & (uint32(1)<<op - uint32(1))
  10248. hold >>= uint64(op)
  10249. bits -= op
  10250. }
  10251. if bits < uint32(15) {
  10252. v5 = in
  10253. in++
  10254. hold += uint64(*(*uint8)(unsafe.Pointer(v5))) << bits
  10255. bits += uint32(8)
  10256. v6 = in
  10257. in++
  10258. hold += uint64(*(*uint8)(unsafe.Pointer(v6))) << bits
  10259. bits += uint32(8)
  10260. }
  10261. here = dcode + uintptr(hold&uint64(dmask))*4
  10262. goto dodist
  10263. dodist:
  10264. ;
  10265. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  10266. hold >>= uint64(op)
  10267. bits -= op
  10268. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  10269. if op&uint32(16) != 0 { /* distance base */
  10270. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  10271. op &= uint32(15) /* number of extra bits */
  10272. if bits < op {
  10273. v7 = in
  10274. in++
  10275. hold += uint64(*(*uint8)(unsafe.Pointer(v7))) << bits
  10276. bits += uint32(8)
  10277. if bits < op {
  10278. v8 = in
  10279. in++
  10280. hold += uint64(*(*uint8)(unsafe.Pointer(v8))) << bits
  10281. bits += uint32(8)
  10282. }
  10283. }
  10284. dist += uint32(hold) & (uint32(1)<<op - uint32(1))
  10285. hold >>= uint64(op)
  10286. bits -= op
  10287. op = libc.Uint32FromInt64(int64(out) - int64(beg)) /* max distance in output */
  10288. if dist > op { /* see if copy from window */
  10289. op = dist - op /* distance back in window */
  10290. if op > whave {
  10291. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  10292. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  10293. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10294. break
  10295. }
  10296. }
  10297. from = window
  10298. if wnext == uint32(0) { /* very common case */
  10299. from += uintptr(wsize - op)
  10300. if op < len1 { /* some from window */
  10301. len1 -= op
  10302. for {
  10303. v11 = out
  10304. out++
  10305. v12 = from
  10306. from++
  10307. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  10308. goto _10
  10309. _10:
  10310. ;
  10311. op--
  10312. v9 = op
  10313. if !(v9 != 0) {
  10314. break
  10315. }
  10316. }
  10317. from = out - uintptr(dist) /* rest from output */
  10318. }
  10319. } else {
  10320. if wnext < op { /* wrap around window */
  10321. from += uintptr(wsize + wnext - op)
  10322. op -= wnext
  10323. if op < len1 { /* some from end of window */
  10324. len1 -= op
  10325. for {
  10326. v15 = out
  10327. out++
  10328. v16 = from
  10329. from++
  10330. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  10331. goto _14
  10332. _14:
  10333. ;
  10334. op--
  10335. v13 = op
  10336. if !(v13 != 0) {
  10337. break
  10338. }
  10339. }
  10340. from = window
  10341. if wnext < len1 { /* some from start of window */
  10342. op = wnext
  10343. len1 -= op
  10344. for {
  10345. v19 = out
  10346. out++
  10347. v20 = from
  10348. from++
  10349. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  10350. goto _18
  10351. _18:
  10352. ;
  10353. op--
  10354. v17 = op
  10355. if !(v17 != 0) {
  10356. break
  10357. }
  10358. }
  10359. from = out - uintptr(dist) /* rest from output */
  10360. }
  10361. }
  10362. } else { /* contiguous in window */
  10363. from += uintptr(wnext - op)
  10364. if op < len1 { /* some from window */
  10365. len1 -= op
  10366. for {
  10367. v23 = out
  10368. out++
  10369. v24 = from
  10370. from++
  10371. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  10372. goto _22
  10373. _22:
  10374. ;
  10375. op--
  10376. v21 = op
  10377. if !(v21 != 0) {
  10378. break
  10379. }
  10380. }
  10381. from = out - uintptr(dist) /* rest from output */
  10382. }
  10383. }
  10384. }
  10385. for len1 > uint32(2) {
  10386. v25 = out
  10387. out++
  10388. v26 = from
  10389. from++
  10390. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  10391. v27 = out
  10392. out++
  10393. v28 = from
  10394. from++
  10395. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  10396. v29 = out
  10397. out++
  10398. v30 = from
  10399. from++
  10400. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  10401. len1 -= uint32(3)
  10402. }
  10403. if len1 != 0 {
  10404. v31 = out
  10405. out++
  10406. v32 = from
  10407. from++
  10408. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  10409. if len1 > uint32(1) {
  10410. v33 = out
  10411. out++
  10412. v34 = from
  10413. from++
  10414. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  10415. }
  10416. }
  10417. } else {
  10418. from = out - uintptr(dist) /* copy direct from output */
  10419. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  10420. v35 = out
  10421. out++
  10422. v36 = from
  10423. from++
  10424. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  10425. v37 = out
  10426. out++
  10427. v38 = from
  10428. from++
  10429. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  10430. v39 = out
  10431. out++
  10432. v40 = from
  10433. from++
  10434. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  10435. len1 -= uint32(3)
  10436. }
  10437. if len1 != 0 {
  10438. v41 = out
  10439. out++
  10440. v42 = from
  10441. from++
  10442. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  10443. if len1 > uint32(1) {
  10444. v43 = out
  10445. out++
  10446. v44 = from
  10447. from++
  10448. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  10449. }
  10450. }
  10451. }
  10452. } else {
  10453. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  10454. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10455. goto dodist
  10456. } else {
  10457. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  10458. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10459. break
  10460. }
  10461. }
  10462. } else {
  10463. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  10464. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  10465. goto dolen
  10466. } else {
  10467. if op&uint32(32) != 0 { /* end-of-block */
  10468. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  10469. break
  10470. } else {
  10471. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  10472. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  10473. break
  10474. }
  10475. }
  10476. }
  10477. }
  10478. }
  10479. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  10480. len1 = bits >> int32(3)
  10481. in -= uintptr(len1)
  10482. bits -= len1 << int32(3)
  10483. hold &= uint64(uint32(1)<<bits - uint32(1))
  10484. /* update state and return */
  10485. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  10486. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  10487. if in < last {
  10488. v45 = int64(5) + (int64(last) - int64(in))
  10489. } else {
  10490. v45 = int64(5) - (int64(in) - int64(last))
  10491. }
  10492. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = libc.Uint32FromInt64(v45)
  10493. if out < end {
  10494. v46 = int64(257) + (int64(end) - int64(out))
  10495. } else {
  10496. v46 = int64(257) - (int64(out) - int64(end))
  10497. }
  10498. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = libc.Uint32FromInt64(v46)
  10499. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  10500. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  10501. return
  10502. }
  10503. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10504. var state uintptr
  10505. _ = state
  10506. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10507. return int32(1)
  10508. }
  10509. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10510. 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) {
  10511. return int32(1)
  10512. }
  10513. return 0
  10514. }
  10515. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10516. var state, v3, v4 uintptr
  10517. var v1 TuLong
  10518. var v2 uint64
  10519. _, _, _, _, _ = state, v1, v2, v3, v4
  10520. if _inflateStateCheck(tls, strm) != 0 {
  10521. return -int32(2)
  10522. }
  10523. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10524. v2 = libc.Uint64FromInt32(0)
  10525. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  10526. v1 = v2
  10527. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  10528. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  10529. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  10530. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  10531. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = libc.Uint64FromInt32((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  10532. }
  10533. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  10534. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  10535. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  10536. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  10537. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  10538. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  10539. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10540. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10541. v4 = state + 1368
  10542. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  10543. v3 = v4
  10544. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  10545. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  10546. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  10547. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  10548. return m_Z_OK
  10549. }
  10550. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  10551. var state uintptr
  10552. _ = state
  10553. if _inflateStateCheck(tls, strm) != 0 {
  10554. return -int32(2)
  10555. }
  10556. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10557. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  10558. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  10559. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  10560. return XinflateResetKeep(tls, strm)
  10561. }
  10562. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  10563. var state uintptr
  10564. var wrap int32
  10565. _, _ = state, wrap
  10566. /* get the state */
  10567. if _inflateStateCheck(tls, strm) != 0 {
  10568. return -int32(2)
  10569. }
  10570. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10571. /* extract wrap request from windowBits parameter */
  10572. if windowBits < 0 {
  10573. if windowBits < -int32(15) {
  10574. return -int32(2)
  10575. }
  10576. wrap = 0
  10577. windowBits = -windowBits
  10578. } else {
  10579. wrap = windowBits>>int32(4) + int32(5)
  10580. if windowBits < int32(48) {
  10581. windowBits &= int32(15)
  10582. }
  10583. }
  10584. /* set number of window bits, free window if different */
  10585. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  10586. return -int32(2)
  10587. }
  10588. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != libc.Uint32FromInt32(windowBits) {
  10589. (*(*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)
  10590. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10591. }
  10592. /* update state and reset the rest of it */
  10593. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  10594. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = libc.Uint32FromInt32(windowBits)
  10595. return XinflateReset(tls, strm)
  10596. }
  10597. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  10598. var ret int32
  10599. var state uintptr
  10600. _, _ = ret, state
  10601. if version == uintptr(m_Z_NULL) || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(version))) != libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(__ccgo_ts))) || stream_size != libc.Int32FromUint64(libc.Uint64FromInt64(112)) {
  10602. return -int32(6)
  10603. }
  10604. if strm == uintptr(m_Z_NULL) {
  10605. return -int32(2)
  10606. }
  10607. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  10608. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  10609. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  10610. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  10611. }
  10612. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10613. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  10614. }
  10615. 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)), uint32(libc.Uint64FromInt64(7160)))
  10616. if state == uintptr(m_Z_NULL) {
  10617. return -int32(4)
  10618. }
  10619. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  10620. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  10621. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  10622. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  10623. ret = XinflateReset2(tls, strm, windowBits)
  10624. if ret != m_Z_OK {
  10625. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  10626. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  10627. }
  10628. return ret
  10629. }
  10630. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  10631. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  10632. }
  10633. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  10634. var state uintptr
  10635. _ = state
  10636. if _inflateStateCheck(tls, strm) != 0 {
  10637. return -int32(2)
  10638. }
  10639. if bits == 0 {
  10640. return m_Z_OK
  10641. }
  10642. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  10643. if bits < 0 {
  10644. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  10645. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  10646. return m_Z_OK
  10647. }
  10648. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+libc.Uint32FromInt32(bits) > uint32(32) {
  10649. return -int32(2)
  10650. }
  10651. value = int32(int64(value) & (libc.Int64FromInt64(1)<<bits - libc.Int64FromInt32(1)))
  10652. *(*uint64)(unsafe.Pointer(state + 80)) += uint64(libc.Uint32FromInt32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  10653. *(*uint32)(unsafe.Pointer(state + 88)) += libc.Uint32FromInt32(bits)
  10654. return m_Z_OK
  10655. }
  10656. // C documentation
  10657. //
  10658. // /*
  10659. // Return state with length and distance decoding tables and index sizes set to
  10660. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  10661. // If BUILDFIXED is defined, then instead this routine builds the tables the
  10662. // first time it's called, and returns those tables the first time and
  10663. // thereafter. This reduces the size of the code by about 2K bytes, in
  10664. // exchange for a little execution time. However, BUILDFIXED should not be
  10665. // used for threaded applications, since the rewriting of the tables and virgin
  10666. // may not be thread-safe.
  10667. // */
  10668. func _fixedtables1(tls *libc.TLS, state uintptr) {
  10669. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  10670. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  10671. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  10672. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  10673. }
  10674. var _lenfix1 = [512]Tcode{
  10675. 0: {
  10676. Fop: uint8(96),
  10677. Fbits: uint8(7),
  10678. },
  10679. 1: {
  10680. Fbits: uint8(8),
  10681. Fval: uint16(80),
  10682. },
  10683. 2: {
  10684. Fbits: uint8(8),
  10685. Fval: uint16(16),
  10686. },
  10687. 3: {
  10688. Fop: uint8(20),
  10689. Fbits: uint8(8),
  10690. Fval: uint16(115),
  10691. },
  10692. 4: {
  10693. Fop: uint8(18),
  10694. Fbits: uint8(7),
  10695. Fval: uint16(31),
  10696. },
  10697. 5: {
  10698. Fbits: uint8(8),
  10699. Fval: uint16(112),
  10700. },
  10701. 6: {
  10702. Fbits: uint8(8),
  10703. Fval: uint16(48),
  10704. },
  10705. 7: {
  10706. Fbits: uint8(9),
  10707. Fval: uint16(192),
  10708. },
  10709. 8: {
  10710. Fop: uint8(16),
  10711. Fbits: uint8(7),
  10712. Fval: uint16(10),
  10713. },
  10714. 9: {
  10715. Fbits: uint8(8),
  10716. Fval: uint16(96),
  10717. },
  10718. 10: {
  10719. Fbits: uint8(8),
  10720. Fval: uint16(32),
  10721. },
  10722. 11: {
  10723. Fbits: uint8(9),
  10724. Fval: uint16(160),
  10725. },
  10726. 12: {
  10727. Fbits: uint8(8),
  10728. },
  10729. 13: {
  10730. Fbits: uint8(8),
  10731. Fval: uint16(128),
  10732. },
  10733. 14: {
  10734. Fbits: uint8(8),
  10735. Fval: uint16(64),
  10736. },
  10737. 15: {
  10738. Fbits: uint8(9),
  10739. Fval: uint16(224),
  10740. },
  10741. 16: {
  10742. Fop: uint8(16),
  10743. Fbits: uint8(7),
  10744. Fval: uint16(6),
  10745. },
  10746. 17: {
  10747. Fbits: uint8(8),
  10748. Fval: uint16(88),
  10749. },
  10750. 18: {
  10751. Fbits: uint8(8),
  10752. Fval: uint16(24),
  10753. },
  10754. 19: {
  10755. Fbits: uint8(9),
  10756. Fval: uint16(144),
  10757. },
  10758. 20: {
  10759. Fop: uint8(19),
  10760. Fbits: uint8(7),
  10761. Fval: uint16(59),
  10762. },
  10763. 21: {
  10764. Fbits: uint8(8),
  10765. Fval: uint16(120),
  10766. },
  10767. 22: {
  10768. Fbits: uint8(8),
  10769. Fval: uint16(56),
  10770. },
  10771. 23: {
  10772. Fbits: uint8(9),
  10773. Fval: uint16(208),
  10774. },
  10775. 24: {
  10776. Fop: uint8(17),
  10777. Fbits: uint8(7),
  10778. Fval: uint16(17),
  10779. },
  10780. 25: {
  10781. Fbits: uint8(8),
  10782. Fval: uint16(104),
  10783. },
  10784. 26: {
  10785. Fbits: uint8(8),
  10786. Fval: uint16(40),
  10787. },
  10788. 27: {
  10789. Fbits: uint8(9),
  10790. Fval: uint16(176),
  10791. },
  10792. 28: {
  10793. Fbits: uint8(8),
  10794. Fval: uint16(8),
  10795. },
  10796. 29: {
  10797. Fbits: uint8(8),
  10798. Fval: uint16(136),
  10799. },
  10800. 30: {
  10801. Fbits: uint8(8),
  10802. Fval: uint16(72),
  10803. },
  10804. 31: {
  10805. Fbits: uint8(9),
  10806. Fval: uint16(240),
  10807. },
  10808. 32: {
  10809. Fop: uint8(16),
  10810. Fbits: uint8(7),
  10811. Fval: uint16(4),
  10812. },
  10813. 33: {
  10814. Fbits: uint8(8),
  10815. Fval: uint16(84),
  10816. },
  10817. 34: {
  10818. Fbits: uint8(8),
  10819. Fval: uint16(20),
  10820. },
  10821. 35: {
  10822. Fop: uint8(21),
  10823. Fbits: uint8(8),
  10824. Fval: uint16(227),
  10825. },
  10826. 36: {
  10827. Fop: uint8(19),
  10828. Fbits: uint8(7),
  10829. Fval: uint16(43),
  10830. },
  10831. 37: {
  10832. Fbits: uint8(8),
  10833. Fval: uint16(116),
  10834. },
  10835. 38: {
  10836. Fbits: uint8(8),
  10837. Fval: uint16(52),
  10838. },
  10839. 39: {
  10840. Fbits: uint8(9),
  10841. Fval: uint16(200),
  10842. },
  10843. 40: {
  10844. Fop: uint8(17),
  10845. Fbits: uint8(7),
  10846. Fval: uint16(13),
  10847. },
  10848. 41: {
  10849. Fbits: uint8(8),
  10850. Fval: uint16(100),
  10851. },
  10852. 42: {
  10853. Fbits: uint8(8),
  10854. Fval: uint16(36),
  10855. },
  10856. 43: {
  10857. Fbits: uint8(9),
  10858. Fval: uint16(168),
  10859. },
  10860. 44: {
  10861. Fbits: uint8(8),
  10862. Fval: uint16(4),
  10863. },
  10864. 45: {
  10865. Fbits: uint8(8),
  10866. Fval: uint16(132),
  10867. },
  10868. 46: {
  10869. Fbits: uint8(8),
  10870. Fval: uint16(68),
  10871. },
  10872. 47: {
  10873. Fbits: uint8(9),
  10874. Fval: uint16(232),
  10875. },
  10876. 48: {
  10877. Fop: uint8(16),
  10878. Fbits: uint8(7),
  10879. Fval: uint16(8),
  10880. },
  10881. 49: {
  10882. Fbits: uint8(8),
  10883. Fval: uint16(92),
  10884. },
  10885. 50: {
  10886. Fbits: uint8(8),
  10887. Fval: uint16(28),
  10888. },
  10889. 51: {
  10890. Fbits: uint8(9),
  10891. Fval: uint16(152),
  10892. },
  10893. 52: {
  10894. Fop: uint8(20),
  10895. Fbits: uint8(7),
  10896. Fval: uint16(83),
  10897. },
  10898. 53: {
  10899. Fbits: uint8(8),
  10900. Fval: uint16(124),
  10901. },
  10902. 54: {
  10903. Fbits: uint8(8),
  10904. Fval: uint16(60),
  10905. },
  10906. 55: {
  10907. Fbits: uint8(9),
  10908. Fval: uint16(216),
  10909. },
  10910. 56: {
  10911. Fop: uint8(18),
  10912. Fbits: uint8(7),
  10913. Fval: uint16(23),
  10914. },
  10915. 57: {
  10916. Fbits: uint8(8),
  10917. Fval: uint16(108),
  10918. },
  10919. 58: {
  10920. Fbits: uint8(8),
  10921. Fval: uint16(44),
  10922. },
  10923. 59: {
  10924. Fbits: uint8(9),
  10925. Fval: uint16(184),
  10926. },
  10927. 60: {
  10928. Fbits: uint8(8),
  10929. Fval: uint16(12),
  10930. },
  10931. 61: {
  10932. Fbits: uint8(8),
  10933. Fval: uint16(140),
  10934. },
  10935. 62: {
  10936. Fbits: uint8(8),
  10937. Fval: uint16(76),
  10938. },
  10939. 63: {
  10940. Fbits: uint8(9),
  10941. Fval: uint16(248),
  10942. },
  10943. 64: {
  10944. Fop: uint8(16),
  10945. Fbits: uint8(7),
  10946. Fval: uint16(3),
  10947. },
  10948. 65: {
  10949. Fbits: uint8(8),
  10950. Fval: uint16(82),
  10951. },
  10952. 66: {
  10953. Fbits: uint8(8),
  10954. Fval: uint16(18),
  10955. },
  10956. 67: {
  10957. Fop: uint8(21),
  10958. Fbits: uint8(8),
  10959. Fval: uint16(163),
  10960. },
  10961. 68: {
  10962. Fop: uint8(19),
  10963. Fbits: uint8(7),
  10964. Fval: uint16(35),
  10965. },
  10966. 69: {
  10967. Fbits: uint8(8),
  10968. Fval: uint16(114),
  10969. },
  10970. 70: {
  10971. Fbits: uint8(8),
  10972. Fval: uint16(50),
  10973. },
  10974. 71: {
  10975. Fbits: uint8(9),
  10976. Fval: uint16(196),
  10977. },
  10978. 72: {
  10979. Fop: uint8(17),
  10980. Fbits: uint8(7),
  10981. Fval: uint16(11),
  10982. },
  10983. 73: {
  10984. Fbits: uint8(8),
  10985. Fval: uint16(98),
  10986. },
  10987. 74: {
  10988. Fbits: uint8(8),
  10989. Fval: uint16(34),
  10990. },
  10991. 75: {
  10992. Fbits: uint8(9),
  10993. Fval: uint16(164),
  10994. },
  10995. 76: {
  10996. Fbits: uint8(8),
  10997. Fval: uint16(2),
  10998. },
  10999. 77: {
  11000. Fbits: uint8(8),
  11001. Fval: uint16(130),
  11002. },
  11003. 78: {
  11004. Fbits: uint8(8),
  11005. Fval: uint16(66),
  11006. },
  11007. 79: {
  11008. Fbits: uint8(9),
  11009. Fval: uint16(228),
  11010. },
  11011. 80: {
  11012. Fop: uint8(16),
  11013. Fbits: uint8(7),
  11014. Fval: uint16(7),
  11015. },
  11016. 81: {
  11017. Fbits: uint8(8),
  11018. Fval: uint16(90),
  11019. },
  11020. 82: {
  11021. Fbits: uint8(8),
  11022. Fval: uint16(26),
  11023. },
  11024. 83: {
  11025. Fbits: uint8(9),
  11026. Fval: uint16(148),
  11027. },
  11028. 84: {
  11029. Fop: uint8(20),
  11030. Fbits: uint8(7),
  11031. Fval: uint16(67),
  11032. },
  11033. 85: {
  11034. Fbits: uint8(8),
  11035. Fval: uint16(122),
  11036. },
  11037. 86: {
  11038. Fbits: uint8(8),
  11039. Fval: uint16(58),
  11040. },
  11041. 87: {
  11042. Fbits: uint8(9),
  11043. Fval: uint16(212),
  11044. },
  11045. 88: {
  11046. Fop: uint8(18),
  11047. Fbits: uint8(7),
  11048. Fval: uint16(19),
  11049. },
  11050. 89: {
  11051. Fbits: uint8(8),
  11052. Fval: uint16(106),
  11053. },
  11054. 90: {
  11055. Fbits: uint8(8),
  11056. Fval: uint16(42),
  11057. },
  11058. 91: {
  11059. Fbits: uint8(9),
  11060. Fval: uint16(180),
  11061. },
  11062. 92: {
  11063. Fbits: uint8(8),
  11064. Fval: uint16(10),
  11065. },
  11066. 93: {
  11067. Fbits: uint8(8),
  11068. Fval: uint16(138),
  11069. },
  11070. 94: {
  11071. Fbits: uint8(8),
  11072. Fval: uint16(74),
  11073. },
  11074. 95: {
  11075. Fbits: uint8(9),
  11076. Fval: uint16(244),
  11077. },
  11078. 96: {
  11079. Fop: uint8(16),
  11080. Fbits: uint8(7),
  11081. Fval: uint16(5),
  11082. },
  11083. 97: {
  11084. Fbits: uint8(8),
  11085. Fval: uint16(86),
  11086. },
  11087. 98: {
  11088. Fbits: uint8(8),
  11089. Fval: uint16(22),
  11090. },
  11091. 99: {
  11092. Fop: uint8(64),
  11093. Fbits: uint8(8),
  11094. },
  11095. 100: {
  11096. Fop: uint8(19),
  11097. Fbits: uint8(7),
  11098. Fval: uint16(51),
  11099. },
  11100. 101: {
  11101. Fbits: uint8(8),
  11102. Fval: uint16(118),
  11103. },
  11104. 102: {
  11105. Fbits: uint8(8),
  11106. Fval: uint16(54),
  11107. },
  11108. 103: {
  11109. Fbits: uint8(9),
  11110. Fval: uint16(204),
  11111. },
  11112. 104: {
  11113. Fop: uint8(17),
  11114. Fbits: uint8(7),
  11115. Fval: uint16(15),
  11116. },
  11117. 105: {
  11118. Fbits: uint8(8),
  11119. Fval: uint16(102),
  11120. },
  11121. 106: {
  11122. Fbits: uint8(8),
  11123. Fval: uint16(38),
  11124. },
  11125. 107: {
  11126. Fbits: uint8(9),
  11127. Fval: uint16(172),
  11128. },
  11129. 108: {
  11130. Fbits: uint8(8),
  11131. Fval: uint16(6),
  11132. },
  11133. 109: {
  11134. Fbits: uint8(8),
  11135. Fval: uint16(134),
  11136. },
  11137. 110: {
  11138. Fbits: uint8(8),
  11139. Fval: uint16(70),
  11140. },
  11141. 111: {
  11142. Fbits: uint8(9),
  11143. Fval: uint16(236),
  11144. },
  11145. 112: {
  11146. Fop: uint8(16),
  11147. Fbits: uint8(7),
  11148. Fval: uint16(9),
  11149. },
  11150. 113: {
  11151. Fbits: uint8(8),
  11152. Fval: uint16(94),
  11153. },
  11154. 114: {
  11155. Fbits: uint8(8),
  11156. Fval: uint16(30),
  11157. },
  11158. 115: {
  11159. Fbits: uint8(9),
  11160. Fval: uint16(156),
  11161. },
  11162. 116: {
  11163. Fop: uint8(20),
  11164. Fbits: uint8(7),
  11165. Fval: uint16(99),
  11166. },
  11167. 117: {
  11168. Fbits: uint8(8),
  11169. Fval: uint16(126),
  11170. },
  11171. 118: {
  11172. Fbits: uint8(8),
  11173. Fval: uint16(62),
  11174. },
  11175. 119: {
  11176. Fbits: uint8(9),
  11177. Fval: uint16(220),
  11178. },
  11179. 120: {
  11180. Fop: uint8(18),
  11181. Fbits: uint8(7),
  11182. Fval: uint16(27),
  11183. },
  11184. 121: {
  11185. Fbits: uint8(8),
  11186. Fval: uint16(110),
  11187. },
  11188. 122: {
  11189. Fbits: uint8(8),
  11190. Fval: uint16(46),
  11191. },
  11192. 123: {
  11193. Fbits: uint8(9),
  11194. Fval: uint16(188),
  11195. },
  11196. 124: {
  11197. Fbits: uint8(8),
  11198. Fval: uint16(14),
  11199. },
  11200. 125: {
  11201. Fbits: uint8(8),
  11202. Fval: uint16(142),
  11203. },
  11204. 126: {
  11205. Fbits: uint8(8),
  11206. Fval: uint16(78),
  11207. },
  11208. 127: {
  11209. Fbits: uint8(9),
  11210. Fval: uint16(252),
  11211. },
  11212. 128: {
  11213. Fop: uint8(96),
  11214. Fbits: uint8(7),
  11215. },
  11216. 129: {
  11217. Fbits: uint8(8),
  11218. Fval: uint16(81),
  11219. },
  11220. 130: {
  11221. Fbits: uint8(8),
  11222. Fval: uint16(17),
  11223. },
  11224. 131: {
  11225. Fop: uint8(21),
  11226. Fbits: uint8(8),
  11227. Fval: uint16(131),
  11228. },
  11229. 132: {
  11230. Fop: uint8(18),
  11231. Fbits: uint8(7),
  11232. Fval: uint16(31),
  11233. },
  11234. 133: {
  11235. Fbits: uint8(8),
  11236. Fval: uint16(113),
  11237. },
  11238. 134: {
  11239. Fbits: uint8(8),
  11240. Fval: uint16(49),
  11241. },
  11242. 135: {
  11243. Fbits: uint8(9),
  11244. Fval: uint16(194),
  11245. },
  11246. 136: {
  11247. Fop: uint8(16),
  11248. Fbits: uint8(7),
  11249. Fval: uint16(10),
  11250. },
  11251. 137: {
  11252. Fbits: uint8(8),
  11253. Fval: uint16(97),
  11254. },
  11255. 138: {
  11256. Fbits: uint8(8),
  11257. Fval: uint16(33),
  11258. },
  11259. 139: {
  11260. Fbits: uint8(9),
  11261. Fval: uint16(162),
  11262. },
  11263. 140: {
  11264. Fbits: uint8(8),
  11265. Fval: uint16(1),
  11266. },
  11267. 141: {
  11268. Fbits: uint8(8),
  11269. Fval: uint16(129),
  11270. },
  11271. 142: {
  11272. Fbits: uint8(8),
  11273. Fval: uint16(65),
  11274. },
  11275. 143: {
  11276. Fbits: uint8(9),
  11277. Fval: uint16(226),
  11278. },
  11279. 144: {
  11280. Fop: uint8(16),
  11281. Fbits: uint8(7),
  11282. Fval: uint16(6),
  11283. },
  11284. 145: {
  11285. Fbits: uint8(8),
  11286. Fval: uint16(89),
  11287. },
  11288. 146: {
  11289. Fbits: uint8(8),
  11290. Fval: uint16(25),
  11291. },
  11292. 147: {
  11293. Fbits: uint8(9),
  11294. Fval: uint16(146),
  11295. },
  11296. 148: {
  11297. Fop: uint8(19),
  11298. Fbits: uint8(7),
  11299. Fval: uint16(59),
  11300. },
  11301. 149: {
  11302. Fbits: uint8(8),
  11303. Fval: uint16(121),
  11304. },
  11305. 150: {
  11306. Fbits: uint8(8),
  11307. Fval: uint16(57),
  11308. },
  11309. 151: {
  11310. Fbits: uint8(9),
  11311. Fval: uint16(210),
  11312. },
  11313. 152: {
  11314. Fop: uint8(17),
  11315. Fbits: uint8(7),
  11316. Fval: uint16(17),
  11317. },
  11318. 153: {
  11319. Fbits: uint8(8),
  11320. Fval: uint16(105),
  11321. },
  11322. 154: {
  11323. Fbits: uint8(8),
  11324. Fval: uint16(41),
  11325. },
  11326. 155: {
  11327. Fbits: uint8(9),
  11328. Fval: uint16(178),
  11329. },
  11330. 156: {
  11331. Fbits: uint8(8),
  11332. Fval: uint16(9),
  11333. },
  11334. 157: {
  11335. Fbits: uint8(8),
  11336. Fval: uint16(137),
  11337. },
  11338. 158: {
  11339. Fbits: uint8(8),
  11340. Fval: uint16(73),
  11341. },
  11342. 159: {
  11343. Fbits: uint8(9),
  11344. Fval: uint16(242),
  11345. },
  11346. 160: {
  11347. Fop: uint8(16),
  11348. Fbits: uint8(7),
  11349. Fval: uint16(4),
  11350. },
  11351. 161: {
  11352. Fbits: uint8(8),
  11353. Fval: uint16(85),
  11354. },
  11355. 162: {
  11356. Fbits: uint8(8),
  11357. Fval: uint16(21),
  11358. },
  11359. 163: {
  11360. Fop: uint8(16),
  11361. Fbits: uint8(8),
  11362. Fval: uint16(258),
  11363. },
  11364. 164: {
  11365. Fop: uint8(19),
  11366. Fbits: uint8(7),
  11367. Fval: uint16(43),
  11368. },
  11369. 165: {
  11370. Fbits: uint8(8),
  11371. Fval: uint16(117),
  11372. },
  11373. 166: {
  11374. Fbits: uint8(8),
  11375. Fval: uint16(53),
  11376. },
  11377. 167: {
  11378. Fbits: uint8(9),
  11379. Fval: uint16(202),
  11380. },
  11381. 168: {
  11382. Fop: uint8(17),
  11383. Fbits: uint8(7),
  11384. Fval: uint16(13),
  11385. },
  11386. 169: {
  11387. Fbits: uint8(8),
  11388. Fval: uint16(101),
  11389. },
  11390. 170: {
  11391. Fbits: uint8(8),
  11392. Fval: uint16(37),
  11393. },
  11394. 171: {
  11395. Fbits: uint8(9),
  11396. Fval: uint16(170),
  11397. },
  11398. 172: {
  11399. Fbits: uint8(8),
  11400. Fval: uint16(5),
  11401. },
  11402. 173: {
  11403. Fbits: uint8(8),
  11404. Fval: uint16(133),
  11405. },
  11406. 174: {
  11407. Fbits: uint8(8),
  11408. Fval: uint16(69),
  11409. },
  11410. 175: {
  11411. Fbits: uint8(9),
  11412. Fval: uint16(234),
  11413. },
  11414. 176: {
  11415. Fop: uint8(16),
  11416. Fbits: uint8(7),
  11417. Fval: uint16(8),
  11418. },
  11419. 177: {
  11420. Fbits: uint8(8),
  11421. Fval: uint16(93),
  11422. },
  11423. 178: {
  11424. Fbits: uint8(8),
  11425. Fval: uint16(29),
  11426. },
  11427. 179: {
  11428. Fbits: uint8(9),
  11429. Fval: uint16(154),
  11430. },
  11431. 180: {
  11432. Fop: uint8(20),
  11433. Fbits: uint8(7),
  11434. Fval: uint16(83),
  11435. },
  11436. 181: {
  11437. Fbits: uint8(8),
  11438. Fval: uint16(125),
  11439. },
  11440. 182: {
  11441. Fbits: uint8(8),
  11442. Fval: uint16(61),
  11443. },
  11444. 183: {
  11445. Fbits: uint8(9),
  11446. Fval: uint16(218),
  11447. },
  11448. 184: {
  11449. Fop: uint8(18),
  11450. Fbits: uint8(7),
  11451. Fval: uint16(23),
  11452. },
  11453. 185: {
  11454. Fbits: uint8(8),
  11455. Fval: uint16(109),
  11456. },
  11457. 186: {
  11458. Fbits: uint8(8),
  11459. Fval: uint16(45),
  11460. },
  11461. 187: {
  11462. Fbits: uint8(9),
  11463. Fval: uint16(186),
  11464. },
  11465. 188: {
  11466. Fbits: uint8(8),
  11467. Fval: uint16(13),
  11468. },
  11469. 189: {
  11470. Fbits: uint8(8),
  11471. Fval: uint16(141),
  11472. },
  11473. 190: {
  11474. Fbits: uint8(8),
  11475. Fval: uint16(77),
  11476. },
  11477. 191: {
  11478. Fbits: uint8(9),
  11479. Fval: uint16(250),
  11480. },
  11481. 192: {
  11482. Fop: uint8(16),
  11483. Fbits: uint8(7),
  11484. Fval: uint16(3),
  11485. },
  11486. 193: {
  11487. Fbits: uint8(8),
  11488. Fval: uint16(83),
  11489. },
  11490. 194: {
  11491. Fbits: uint8(8),
  11492. Fval: uint16(19),
  11493. },
  11494. 195: {
  11495. Fop: uint8(21),
  11496. Fbits: uint8(8),
  11497. Fval: uint16(195),
  11498. },
  11499. 196: {
  11500. Fop: uint8(19),
  11501. Fbits: uint8(7),
  11502. Fval: uint16(35),
  11503. },
  11504. 197: {
  11505. Fbits: uint8(8),
  11506. Fval: uint16(115),
  11507. },
  11508. 198: {
  11509. Fbits: uint8(8),
  11510. Fval: uint16(51),
  11511. },
  11512. 199: {
  11513. Fbits: uint8(9),
  11514. Fval: uint16(198),
  11515. },
  11516. 200: {
  11517. Fop: uint8(17),
  11518. Fbits: uint8(7),
  11519. Fval: uint16(11),
  11520. },
  11521. 201: {
  11522. Fbits: uint8(8),
  11523. Fval: uint16(99),
  11524. },
  11525. 202: {
  11526. Fbits: uint8(8),
  11527. Fval: uint16(35),
  11528. },
  11529. 203: {
  11530. Fbits: uint8(9),
  11531. Fval: uint16(166),
  11532. },
  11533. 204: {
  11534. Fbits: uint8(8),
  11535. Fval: uint16(3),
  11536. },
  11537. 205: {
  11538. Fbits: uint8(8),
  11539. Fval: uint16(131),
  11540. },
  11541. 206: {
  11542. Fbits: uint8(8),
  11543. Fval: uint16(67),
  11544. },
  11545. 207: {
  11546. Fbits: uint8(9),
  11547. Fval: uint16(230),
  11548. },
  11549. 208: {
  11550. Fop: uint8(16),
  11551. Fbits: uint8(7),
  11552. Fval: uint16(7),
  11553. },
  11554. 209: {
  11555. Fbits: uint8(8),
  11556. Fval: uint16(91),
  11557. },
  11558. 210: {
  11559. Fbits: uint8(8),
  11560. Fval: uint16(27),
  11561. },
  11562. 211: {
  11563. Fbits: uint8(9),
  11564. Fval: uint16(150),
  11565. },
  11566. 212: {
  11567. Fop: uint8(20),
  11568. Fbits: uint8(7),
  11569. Fval: uint16(67),
  11570. },
  11571. 213: {
  11572. Fbits: uint8(8),
  11573. Fval: uint16(123),
  11574. },
  11575. 214: {
  11576. Fbits: uint8(8),
  11577. Fval: uint16(59),
  11578. },
  11579. 215: {
  11580. Fbits: uint8(9),
  11581. Fval: uint16(214),
  11582. },
  11583. 216: {
  11584. Fop: uint8(18),
  11585. Fbits: uint8(7),
  11586. Fval: uint16(19),
  11587. },
  11588. 217: {
  11589. Fbits: uint8(8),
  11590. Fval: uint16(107),
  11591. },
  11592. 218: {
  11593. Fbits: uint8(8),
  11594. Fval: uint16(43),
  11595. },
  11596. 219: {
  11597. Fbits: uint8(9),
  11598. Fval: uint16(182),
  11599. },
  11600. 220: {
  11601. Fbits: uint8(8),
  11602. Fval: uint16(11),
  11603. },
  11604. 221: {
  11605. Fbits: uint8(8),
  11606. Fval: uint16(139),
  11607. },
  11608. 222: {
  11609. Fbits: uint8(8),
  11610. Fval: uint16(75),
  11611. },
  11612. 223: {
  11613. Fbits: uint8(9),
  11614. Fval: uint16(246),
  11615. },
  11616. 224: {
  11617. Fop: uint8(16),
  11618. Fbits: uint8(7),
  11619. Fval: uint16(5),
  11620. },
  11621. 225: {
  11622. Fbits: uint8(8),
  11623. Fval: uint16(87),
  11624. },
  11625. 226: {
  11626. Fbits: uint8(8),
  11627. Fval: uint16(23),
  11628. },
  11629. 227: {
  11630. Fop: uint8(64),
  11631. Fbits: uint8(8),
  11632. },
  11633. 228: {
  11634. Fop: uint8(19),
  11635. Fbits: uint8(7),
  11636. Fval: uint16(51),
  11637. },
  11638. 229: {
  11639. Fbits: uint8(8),
  11640. Fval: uint16(119),
  11641. },
  11642. 230: {
  11643. Fbits: uint8(8),
  11644. Fval: uint16(55),
  11645. },
  11646. 231: {
  11647. Fbits: uint8(9),
  11648. Fval: uint16(206),
  11649. },
  11650. 232: {
  11651. Fop: uint8(17),
  11652. Fbits: uint8(7),
  11653. Fval: uint16(15),
  11654. },
  11655. 233: {
  11656. Fbits: uint8(8),
  11657. Fval: uint16(103),
  11658. },
  11659. 234: {
  11660. Fbits: uint8(8),
  11661. Fval: uint16(39),
  11662. },
  11663. 235: {
  11664. Fbits: uint8(9),
  11665. Fval: uint16(174),
  11666. },
  11667. 236: {
  11668. Fbits: uint8(8),
  11669. Fval: uint16(7),
  11670. },
  11671. 237: {
  11672. Fbits: uint8(8),
  11673. Fval: uint16(135),
  11674. },
  11675. 238: {
  11676. Fbits: uint8(8),
  11677. Fval: uint16(71),
  11678. },
  11679. 239: {
  11680. Fbits: uint8(9),
  11681. Fval: uint16(238),
  11682. },
  11683. 240: {
  11684. Fop: uint8(16),
  11685. Fbits: uint8(7),
  11686. Fval: uint16(9),
  11687. },
  11688. 241: {
  11689. Fbits: uint8(8),
  11690. Fval: uint16(95),
  11691. },
  11692. 242: {
  11693. Fbits: uint8(8),
  11694. Fval: uint16(31),
  11695. },
  11696. 243: {
  11697. Fbits: uint8(9),
  11698. Fval: uint16(158),
  11699. },
  11700. 244: {
  11701. Fop: uint8(20),
  11702. Fbits: uint8(7),
  11703. Fval: uint16(99),
  11704. },
  11705. 245: {
  11706. Fbits: uint8(8),
  11707. Fval: uint16(127),
  11708. },
  11709. 246: {
  11710. Fbits: uint8(8),
  11711. Fval: uint16(63),
  11712. },
  11713. 247: {
  11714. Fbits: uint8(9),
  11715. Fval: uint16(222),
  11716. },
  11717. 248: {
  11718. Fop: uint8(18),
  11719. Fbits: uint8(7),
  11720. Fval: uint16(27),
  11721. },
  11722. 249: {
  11723. Fbits: uint8(8),
  11724. Fval: uint16(111),
  11725. },
  11726. 250: {
  11727. Fbits: uint8(8),
  11728. Fval: uint16(47),
  11729. },
  11730. 251: {
  11731. Fbits: uint8(9),
  11732. Fval: uint16(190),
  11733. },
  11734. 252: {
  11735. Fbits: uint8(8),
  11736. Fval: uint16(15),
  11737. },
  11738. 253: {
  11739. Fbits: uint8(8),
  11740. Fval: uint16(143),
  11741. },
  11742. 254: {
  11743. Fbits: uint8(8),
  11744. Fval: uint16(79),
  11745. },
  11746. 255: {
  11747. Fbits: uint8(9),
  11748. Fval: uint16(254),
  11749. },
  11750. 256: {
  11751. Fop: uint8(96),
  11752. Fbits: uint8(7),
  11753. },
  11754. 257: {
  11755. Fbits: uint8(8),
  11756. Fval: uint16(80),
  11757. },
  11758. 258: {
  11759. Fbits: uint8(8),
  11760. Fval: uint16(16),
  11761. },
  11762. 259: {
  11763. Fop: uint8(20),
  11764. Fbits: uint8(8),
  11765. Fval: uint16(115),
  11766. },
  11767. 260: {
  11768. Fop: uint8(18),
  11769. Fbits: uint8(7),
  11770. Fval: uint16(31),
  11771. },
  11772. 261: {
  11773. Fbits: uint8(8),
  11774. Fval: uint16(112),
  11775. },
  11776. 262: {
  11777. Fbits: uint8(8),
  11778. Fval: uint16(48),
  11779. },
  11780. 263: {
  11781. Fbits: uint8(9),
  11782. Fval: uint16(193),
  11783. },
  11784. 264: {
  11785. Fop: uint8(16),
  11786. Fbits: uint8(7),
  11787. Fval: uint16(10),
  11788. },
  11789. 265: {
  11790. Fbits: uint8(8),
  11791. Fval: uint16(96),
  11792. },
  11793. 266: {
  11794. Fbits: uint8(8),
  11795. Fval: uint16(32),
  11796. },
  11797. 267: {
  11798. Fbits: uint8(9),
  11799. Fval: uint16(161),
  11800. },
  11801. 268: {
  11802. Fbits: uint8(8),
  11803. },
  11804. 269: {
  11805. Fbits: uint8(8),
  11806. Fval: uint16(128),
  11807. },
  11808. 270: {
  11809. Fbits: uint8(8),
  11810. Fval: uint16(64),
  11811. },
  11812. 271: {
  11813. Fbits: uint8(9),
  11814. Fval: uint16(225),
  11815. },
  11816. 272: {
  11817. Fop: uint8(16),
  11818. Fbits: uint8(7),
  11819. Fval: uint16(6),
  11820. },
  11821. 273: {
  11822. Fbits: uint8(8),
  11823. Fval: uint16(88),
  11824. },
  11825. 274: {
  11826. Fbits: uint8(8),
  11827. Fval: uint16(24),
  11828. },
  11829. 275: {
  11830. Fbits: uint8(9),
  11831. Fval: uint16(145),
  11832. },
  11833. 276: {
  11834. Fop: uint8(19),
  11835. Fbits: uint8(7),
  11836. Fval: uint16(59),
  11837. },
  11838. 277: {
  11839. Fbits: uint8(8),
  11840. Fval: uint16(120),
  11841. },
  11842. 278: {
  11843. Fbits: uint8(8),
  11844. Fval: uint16(56),
  11845. },
  11846. 279: {
  11847. Fbits: uint8(9),
  11848. Fval: uint16(209),
  11849. },
  11850. 280: {
  11851. Fop: uint8(17),
  11852. Fbits: uint8(7),
  11853. Fval: uint16(17),
  11854. },
  11855. 281: {
  11856. Fbits: uint8(8),
  11857. Fval: uint16(104),
  11858. },
  11859. 282: {
  11860. Fbits: uint8(8),
  11861. Fval: uint16(40),
  11862. },
  11863. 283: {
  11864. Fbits: uint8(9),
  11865. Fval: uint16(177),
  11866. },
  11867. 284: {
  11868. Fbits: uint8(8),
  11869. Fval: uint16(8),
  11870. },
  11871. 285: {
  11872. Fbits: uint8(8),
  11873. Fval: uint16(136),
  11874. },
  11875. 286: {
  11876. Fbits: uint8(8),
  11877. Fval: uint16(72),
  11878. },
  11879. 287: {
  11880. Fbits: uint8(9),
  11881. Fval: uint16(241),
  11882. },
  11883. 288: {
  11884. Fop: uint8(16),
  11885. Fbits: uint8(7),
  11886. Fval: uint16(4),
  11887. },
  11888. 289: {
  11889. Fbits: uint8(8),
  11890. Fval: uint16(84),
  11891. },
  11892. 290: {
  11893. Fbits: uint8(8),
  11894. Fval: uint16(20),
  11895. },
  11896. 291: {
  11897. Fop: uint8(21),
  11898. Fbits: uint8(8),
  11899. Fval: uint16(227),
  11900. },
  11901. 292: {
  11902. Fop: uint8(19),
  11903. Fbits: uint8(7),
  11904. Fval: uint16(43),
  11905. },
  11906. 293: {
  11907. Fbits: uint8(8),
  11908. Fval: uint16(116),
  11909. },
  11910. 294: {
  11911. Fbits: uint8(8),
  11912. Fval: uint16(52),
  11913. },
  11914. 295: {
  11915. Fbits: uint8(9),
  11916. Fval: uint16(201),
  11917. },
  11918. 296: {
  11919. Fop: uint8(17),
  11920. Fbits: uint8(7),
  11921. Fval: uint16(13),
  11922. },
  11923. 297: {
  11924. Fbits: uint8(8),
  11925. Fval: uint16(100),
  11926. },
  11927. 298: {
  11928. Fbits: uint8(8),
  11929. Fval: uint16(36),
  11930. },
  11931. 299: {
  11932. Fbits: uint8(9),
  11933. Fval: uint16(169),
  11934. },
  11935. 300: {
  11936. Fbits: uint8(8),
  11937. Fval: uint16(4),
  11938. },
  11939. 301: {
  11940. Fbits: uint8(8),
  11941. Fval: uint16(132),
  11942. },
  11943. 302: {
  11944. Fbits: uint8(8),
  11945. Fval: uint16(68),
  11946. },
  11947. 303: {
  11948. Fbits: uint8(9),
  11949. Fval: uint16(233),
  11950. },
  11951. 304: {
  11952. Fop: uint8(16),
  11953. Fbits: uint8(7),
  11954. Fval: uint16(8),
  11955. },
  11956. 305: {
  11957. Fbits: uint8(8),
  11958. Fval: uint16(92),
  11959. },
  11960. 306: {
  11961. Fbits: uint8(8),
  11962. Fval: uint16(28),
  11963. },
  11964. 307: {
  11965. Fbits: uint8(9),
  11966. Fval: uint16(153),
  11967. },
  11968. 308: {
  11969. Fop: uint8(20),
  11970. Fbits: uint8(7),
  11971. Fval: uint16(83),
  11972. },
  11973. 309: {
  11974. Fbits: uint8(8),
  11975. Fval: uint16(124),
  11976. },
  11977. 310: {
  11978. Fbits: uint8(8),
  11979. Fval: uint16(60),
  11980. },
  11981. 311: {
  11982. Fbits: uint8(9),
  11983. Fval: uint16(217),
  11984. },
  11985. 312: {
  11986. Fop: uint8(18),
  11987. Fbits: uint8(7),
  11988. Fval: uint16(23),
  11989. },
  11990. 313: {
  11991. Fbits: uint8(8),
  11992. Fval: uint16(108),
  11993. },
  11994. 314: {
  11995. Fbits: uint8(8),
  11996. Fval: uint16(44),
  11997. },
  11998. 315: {
  11999. Fbits: uint8(9),
  12000. Fval: uint16(185),
  12001. },
  12002. 316: {
  12003. Fbits: uint8(8),
  12004. Fval: uint16(12),
  12005. },
  12006. 317: {
  12007. Fbits: uint8(8),
  12008. Fval: uint16(140),
  12009. },
  12010. 318: {
  12011. Fbits: uint8(8),
  12012. Fval: uint16(76),
  12013. },
  12014. 319: {
  12015. Fbits: uint8(9),
  12016. Fval: uint16(249),
  12017. },
  12018. 320: {
  12019. Fop: uint8(16),
  12020. Fbits: uint8(7),
  12021. Fval: uint16(3),
  12022. },
  12023. 321: {
  12024. Fbits: uint8(8),
  12025. Fval: uint16(82),
  12026. },
  12027. 322: {
  12028. Fbits: uint8(8),
  12029. Fval: uint16(18),
  12030. },
  12031. 323: {
  12032. Fop: uint8(21),
  12033. Fbits: uint8(8),
  12034. Fval: uint16(163),
  12035. },
  12036. 324: {
  12037. Fop: uint8(19),
  12038. Fbits: uint8(7),
  12039. Fval: uint16(35),
  12040. },
  12041. 325: {
  12042. Fbits: uint8(8),
  12043. Fval: uint16(114),
  12044. },
  12045. 326: {
  12046. Fbits: uint8(8),
  12047. Fval: uint16(50),
  12048. },
  12049. 327: {
  12050. Fbits: uint8(9),
  12051. Fval: uint16(197),
  12052. },
  12053. 328: {
  12054. Fop: uint8(17),
  12055. Fbits: uint8(7),
  12056. Fval: uint16(11),
  12057. },
  12058. 329: {
  12059. Fbits: uint8(8),
  12060. Fval: uint16(98),
  12061. },
  12062. 330: {
  12063. Fbits: uint8(8),
  12064. Fval: uint16(34),
  12065. },
  12066. 331: {
  12067. Fbits: uint8(9),
  12068. Fval: uint16(165),
  12069. },
  12070. 332: {
  12071. Fbits: uint8(8),
  12072. Fval: uint16(2),
  12073. },
  12074. 333: {
  12075. Fbits: uint8(8),
  12076. Fval: uint16(130),
  12077. },
  12078. 334: {
  12079. Fbits: uint8(8),
  12080. Fval: uint16(66),
  12081. },
  12082. 335: {
  12083. Fbits: uint8(9),
  12084. Fval: uint16(229),
  12085. },
  12086. 336: {
  12087. Fop: uint8(16),
  12088. Fbits: uint8(7),
  12089. Fval: uint16(7),
  12090. },
  12091. 337: {
  12092. Fbits: uint8(8),
  12093. Fval: uint16(90),
  12094. },
  12095. 338: {
  12096. Fbits: uint8(8),
  12097. Fval: uint16(26),
  12098. },
  12099. 339: {
  12100. Fbits: uint8(9),
  12101. Fval: uint16(149),
  12102. },
  12103. 340: {
  12104. Fop: uint8(20),
  12105. Fbits: uint8(7),
  12106. Fval: uint16(67),
  12107. },
  12108. 341: {
  12109. Fbits: uint8(8),
  12110. Fval: uint16(122),
  12111. },
  12112. 342: {
  12113. Fbits: uint8(8),
  12114. Fval: uint16(58),
  12115. },
  12116. 343: {
  12117. Fbits: uint8(9),
  12118. Fval: uint16(213),
  12119. },
  12120. 344: {
  12121. Fop: uint8(18),
  12122. Fbits: uint8(7),
  12123. Fval: uint16(19),
  12124. },
  12125. 345: {
  12126. Fbits: uint8(8),
  12127. Fval: uint16(106),
  12128. },
  12129. 346: {
  12130. Fbits: uint8(8),
  12131. Fval: uint16(42),
  12132. },
  12133. 347: {
  12134. Fbits: uint8(9),
  12135. Fval: uint16(181),
  12136. },
  12137. 348: {
  12138. Fbits: uint8(8),
  12139. Fval: uint16(10),
  12140. },
  12141. 349: {
  12142. Fbits: uint8(8),
  12143. Fval: uint16(138),
  12144. },
  12145. 350: {
  12146. Fbits: uint8(8),
  12147. Fval: uint16(74),
  12148. },
  12149. 351: {
  12150. Fbits: uint8(9),
  12151. Fval: uint16(245),
  12152. },
  12153. 352: {
  12154. Fop: uint8(16),
  12155. Fbits: uint8(7),
  12156. Fval: uint16(5),
  12157. },
  12158. 353: {
  12159. Fbits: uint8(8),
  12160. Fval: uint16(86),
  12161. },
  12162. 354: {
  12163. Fbits: uint8(8),
  12164. Fval: uint16(22),
  12165. },
  12166. 355: {
  12167. Fop: uint8(64),
  12168. Fbits: uint8(8),
  12169. },
  12170. 356: {
  12171. Fop: uint8(19),
  12172. Fbits: uint8(7),
  12173. Fval: uint16(51),
  12174. },
  12175. 357: {
  12176. Fbits: uint8(8),
  12177. Fval: uint16(118),
  12178. },
  12179. 358: {
  12180. Fbits: uint8(8),
  12181. Fval: uint16(54),
  12182. },
  12183. 359: {
  12184. Fbits: uint8(9),
  12185. Fval: uint16(205),
  12186. },
  12187. 360: {
  12188. Fop: uint8(17),
  12189. Fbits: uint8(7),
  12190. Fval: uint16(15),
  12191. },
  12192. 361: {
  12193. Fbits: uint8(8),
  12194. Fval: uint16(102),
  12195. },
  12196. 362: {
  12197. Fbits: uint8(8),
  12198. Fval: uint16(38),
  12199. },
  12200. 363: {
  12201. Fbits: uint8(9),
  12202. Fval: uint16(173),
  12203. },
  12204. 364: {
  12205. Fbits: uint8(8),
  12206. Fval: uint16(6),
  12207. },
  12208. 365: {
  12209. Fbits: uint8(8),
  12210. Fval: uint16(134),
  12211. },
  12212. 366: {
  12213. Fbits: uint8(8),
  12214. Fval: uint16(70),
  12215. },
  12216. 367: {
  12217. Fbits: uint8(9),
  12218. Fval: uint16(237),
  12219. },
  12220. 368: {
  12221. Fop: uint8(16),
  12222. Fbits: uint8(7),
  12223. Fval: uint16(9),
  12224. },
  12225. 369: {
  12226. Fbits: uint8(8),
  12227. Fval: uint16(94),
  12228. },
  12229. 370: {
  12230. Fbits: uint8(8),
  12231. Fval: uint16(30),
  12232. },
  12233. 371: {
  12234. Fbits: uint8(9),
  12235. Fval: uint16(157),
  12236. },
  12237. 372: {
  12238. Fop: uint8(20),
  12239. Fbits: uint8(7),
  12240. Fval: uint16(99),
  12241. },
  12242. 373: {
  12243. Fbits: uint8(8),
  12244. Fval: uint16(126),
  12245. },
  12246. 374: {
  12247. Fbits: uint8(8),
  12248. Fval: uint16(62),
  12249. },
  12250. 375: {
  12251. Fbits: uint8(9),
  12252. Fval: uint16(221),
  12253. },
  12254. 376: {
  12255. Fop: uint8(18),
  12256. Fbits: uint8(7),
  12257. Fval: uint16(27),
  12258. },
  12259. 377: {
  12260. Fbits: uint8(8),
  12261. Fval: uint16(110),
  12262. },
  12263. 378: {
  12264. Fbits: uint8(8),
  12265. Fval: uint16(46),
  12266. },
  12267. 379: {
  12268. Fbits: uint8(9),
  12269. Fval: uint16(189),
  12270. },
  12271. 380: {
  12272. Fbits: uint8(8),
  12273. Fval: uint16(14),
  12274. },
  12275. 381: {
  12276. Fbits: uint8(8),
  12277. Fval: uint16(142),
  12278. },
  12279. 382: {
  12280. Fbits: uint8(8),
  12281. Fval: uint16(78),
  12282. },
  12283. 383: {
  12284. Fbits: uint8(9),
  12285. Fval: uint16(253),
  12286. },
  12287. 384: {
  12288. Fop: uint8(96),
  12289. Fbits: uint8(7),
  12290. },
  12291. 385: {
  12292. Fbits: uint8(8),
  12293. Fval: uint16(81),
  12294. },
  12295. 386: {
  12296. Fbits: uint8(8),
  12297. Fval: uint16(17),
  12298. },
  12299. 387: {
  12300. Fop: uint8(21),
  12301. Fbits: uint8(8),
  12302. Fval: uint16(131),
  12303. },
  12304. 388: {
  12305. Fop: uint8(18),
  12306. Fbits: uint8(7),
  12307. Fval: uint16(31),
  12308. },
  12309. 389: {
  12310. Fbits: uint8(8),
  12311. Fval: uint16(113),
  12312. },
  12313. 390: {
  12314. Fbits: uint8(8),
  12315. Fval: uint16(49),
  12316. },
  12317. 391: {
  12318. Fbits: uint8(9),
  12319. Fval: uint16(195),
  12320. },
  12321. 392: {
  12322. Fop: uint8(16),
  12323. Fbits: uint8(7),
  12324. Fval: uint16(10),
  12325. },
  12326. 393: {
  12327. Fbits: uint8(8),
  12328. Fval: uint16(97),
  12329. },
  12330. 394: {
  12331. Fbits: uint8(8),
  12332. Fval: uint16(33),
  12333. },
  12334. 395: {
  12335. Fbits: uint8(9),
  12336. Fval: uint16(163),
  12337. },
  12338. 396: {
  12339. Fbits: uint8(8),
  12340. Fval: uint16(1),
  12341. },
  12342. 397: {
  12343. Fbits: uint8(8),
  12344. Fval: uint16(129),
  12345. },
  12346. 398: {
  12347. Fbits: uint8(8),
  12348. Fval: uint16(65),
  12349. },
  12350. 399: {
  12351. Fbits: uint8(9),
  12352. Fval: uint16(227),
  12353. },
  12354. 400: {
  12355. Fop: uint8(16),
  12356. Fbits: uint8(7),
  12357. Fval: uint16(6),
  12358. },
  12359. 401: {
  12360. Fbits: uint8(8),
  12361. Fval: uint16(89),
  12362. },
  12363. 402: {
  12364. Fbits: uint8(8),
  12365. Fval: uint16(25),
  12366. },
  12367. 403: {
  12368. Fbits: uint8(9),
  12369. Fval: uint16(147),
  12370. },
  12371. 404: {
  12372. Fop: uint8(19),
  12373. Fbits: uint8(7),
  12374. Fval: uint16(59),
  12375. },
  12376. 405: {
  12377. Fbits: uint8(8),
  12378. Fval: uint16(121),
  12379. },
  12380. 406: {
  12381. Fbits: uint8(8),
  12382. Fval: uint16(57),
  12383. },
  12384. 407: {
  12385. Fbits: uint8(9),
  12386. Fval: uint16(211),
  12387. },
  12388. 408: {
  12389. Fop: uint8(17),
  12390. Fbits: uint8(7),
  12391. Fval: uint16(17),
  12392. },
  12393. 409: {
  12394. Fbits: uint8(8),
  12395. Fval: uint16(105),
  12396. },
  12397. 410: {
  12398. Fbits: uint8(8),
  12399. Fval: uint16(41),
  12400. },
  12401. 411: {
  12402. Fbits: uint8(9),
  12403. Fval: uint16(179),
  12404. },
  12405. 412: {
  12406. Fbits: uint8(8),
  12407. Fval: uint16(9),
  12408. },
  12409. 413: {
  12410. Fbits: uint8(8),
  12411. Fval: uint16(137),
  12412. },
  12413. 414: {
  12414. Fbits: uint8(8),
  12415. Fval: uint16(73),
  12416. },
  12417. 415: {
  12418. Fbits: uint8(9),
  12419. Fval: uint16(243),
  12420. },
  12421. 416: {
  12422. Fop: uint8(16),
  12423. Fbits: uint8(7),
  12424. Fval: uint16(4),
  12425. },
  12426. 417: {
  12427. Fbits: uint8(8),
  12428. Fval: uint16(85),
  12429. },
  12430. 418: {
  12431. Fbits: uint8(8),
  12432. Fval: uint16(21),
  12433. },
  12434. 419: {
  12435. Fop: uint8(16),
  12436. Fbits: uint8(8),
  12437. Fval: uint16(258),
  12438. },
  12439. 420: {
  12440. Fop: uint8(19),
  12441. Fbits: uint8(7),
  12442. Fval: uint16(43),
  12443. },
  12444. 421: {
  12445. Fbits: uint8(8),
  12446. Fval: uint16(117),
  12447. },
  12448. 422: {
  12449. Fbits: uint8(8),
  12450. Fval: uint16(53),
  12451. },
  12452. 423: {
  12453. Fbits: uint8(9),
  12454. Fval: uint16(203),
  12455. },
  12456. 424: {
  12457. Fop: uint8(17),
  12458. Fbits: uint8(7),
  12459. Fval: uint16(13),
  12460. },
  12461. 425: {
  12462. Fbits: uint8(8),
  12463. Fval: uint16(101),
  12464. },
  12465. 426: {
  12466. Fbits: uint8(8),
  12467. Fval: uint16(37),
  12468. },
  12469. 427: {
  12470. Fbits: uint8(9),
  12471. Fval: uint16(171),
  12472. },
  12473. 428: {
  12474. Fbits: uint8(8),
  12475. Fval: uint16(5),
  12476. },
  12477. 429: {
  12478. Fbits: uint8(8),
  12479. Fval: uint16(133),
  12480. },
  12481. 430: {
  12482. Fbits: uint8(8),
  12483. Fval: uint16(69),
  12484. },
  12485. 431: {
  12486. Fbits: uint8(9),
  12487. Fval: uint16(235),
  12488. },
  12489. 432: {
  12490. Fop: uint8(16),
  12491. Fbits: uint8(7),
  12492. Fval: uint16(8),
  12493. },
  12494. 433: {
  12495. Fbits: uint8(8),
  12496. Fval: uint16(93),
  12497. },
  12498. 434: {
  12499. Fbits: uint8(8),
  12500. Fval: uint16(29),
  12501. },
  12502. 435: {
  12503. Fbits: uint8(9),
  12504. Fval: uint16(155),
  12505. },
  12506. 436: {
  12507. Fop: uint8(20),
  12508. Fbits: uint8(7),
  12509. Fval: uint16(83),
  12510. },
  12511. 437: {
  12512. Fbits: uint8(8),
  12513. Fval: uint16(125),
  12514. },
  12515. 438: {
  12516. Fbits: uint8(8),
  12517. Fval: uint16(61),
  12518. },
  12519. 439: {
  12520. Fbits: uint8(9),
  12521. Fval: uint16(219),
  12522. },
  12523. 440: {
  12524. Fop: uint8(18),
  12525. Fbits: uint8(7),
  12526. Fval: uint16(23),
  12527. },
  12528. 441: {
  12529. Fbits: uint8(8),
  12530. Fval: uint16(109),
  12531. },
  12532. 442: {
  12533. Fbits: uint8(8),
  12534. Fval: uint16(45),
  12535. },
  12536. 443: {
  12537. Fbits: uint8(9),
  12538. Fval: uint16(187),
  12539. },
  12540. 444: {
  12541. Fbits: uint8(8),
  12542. Fval: uint16(13),
  12543. },
  12544. 445: {
  12545. Fbits: uint8(8),
  12546. Fval: uint16(141),
  12547. },
  12548. 446: {
  12549. Fbits: uint8(8),
  12550. Fval: uint16(77),
  12551. },
  12552. 447: {
  12553. Fbits: uint8(9),
  12554. Fval: uint16(251),
  12555. },
  12556. 448: {
  12557. Fop: uint8(16),
  12558. Fbits: uint8(7),
  12559. Fval: uint16(3),
  12560. },
  12561. 449: {
  12562. Fbits: uint8(8),
  12563. Fval: uint16(83),
  12564. },
  12565. 450: {
  12566. Fbits: uint8(8),
  12567. Fval: uint16(19),
  12568. },
  12569. 451: {
  12570. Fop: uint8(21),
  12571. Fbits: uint8(8),
  12572. Fval: uint16(195),
  12573. },
  12574. 452: {
  12575. Fop: uint8(19),
  12576. Fbits: uint8(7),
  12577. Fval: uint16(35),
  12578. },
  12579. 453: {
  12580. Fbits: uint8(8),
  12581. Fval: uint16(115),
  12582. },
  12583. 454: {
  12584. Fbits: uint8(8),
  12585. Fval: uint16(51),
  12586. },
  12587. 455: {
  12588. Fbits: uint8(9),
  12589. Fval: uint16(199),
  12590. },
  12591. 456: {
  12592. Fop: uint8(17),
  12593. Fbits: uint8(7),
  12594. Fval: uint16(11),
  12595. },
  12596. 457: {
  12597. Fbits: uint8(8),
  12598. Fval: uint16(99),
  12599. },
  12600. 458: {
  12601. Fbits: uint8(8),
  12602. Fval: uint16(35),
  12603. },
  12604. 459: {
  12605. Fbits: uint8(9),
  12606. Fval: uint16(167),
  12607. },
  12608. 460: {
  12609. Fbits: uint8(8),
  12610. Fval: uint16(3),
  12611. },
  12612. 461: {
  12613. Fbits: uint8(8),
  12614. Fval: uint16(131),
  12615. },
  12616. 462: {
  12617. Fbits: uint8(8),
  12618. Fval: uint16(67),
  12619. },
  12620. 463: {
  12621. Fbits: uint8(9),
  12622. Fval: uint16(231),
  12623. },
  12624. 464: {
  12625. Fop: uint8(16),
  12626. Fbits: uint8(7),
  12627. Fval: uint16(7),
  12628. },
  12629. 465: {
  12630. Fbits: uint8(8),
  12631. Fval: uint16(91),
  12632. },
  12633. 466: {
  12634. Fbits: uint8(8),
  12635. Fval: uint16(27),
  12636. },
  12637. 467: {
  12638. Fbits: uint8(9),
  12639. Fval: uint16(151),
  12640. },
  12641. 468: {
  12642. Fop: uint8(20),
  12643. Fbits: uint8(7),
  12644. Fval: uint16(67),
  12645. },
  12646. 469: {
  12647. Fbits: uint8(8),
  12648. Fval: uint16(123),
  12649. },
  12650. 470: {
  12651. Fbits: uint8(8),
  12652. Fval: uint16(59),
  12653. },
  12654. 471: {
  12655. Fbits: uint8(9),
  12656. Fval: uint16(215),
  12657. },
  12658. 472: {
  12659. Fop: uint8(18),
  12660. Fbits: uint8(7),
  12661. Fval: uint16(19),
  12662. },
  12663. 473: {
  12664. Fbits: uint8(8),
  12665. Fval: uint16(107),
  12666. },
  12667. 474: {
  12668. Fbits: uint8(8),
  12669. Fval: uint16(43),
  12670. },
  12671. 475: {
  12672. Fbits: uint8(9),
  12673. Fval: uint16(183),
  12674. },
  12675. 476: {
  12676. Fbits: uint8(8),
  12677. Fval: uint16(11),
  12678. },
  12679. 477: {
  12680. Fbits: uint8(8),
  12681. Fval: uint16(139),
  12682. },
  12683. 478: {
  12684. Fbits: uint8(8),
  12685. Fval: uint16(75),
  12686. },
  12687. 479: {
  12688. Fbits: uint8(9),
  12689. Fval: uint16(247),
  12690. },
  12691. 480: {
  12692. Fop: uint8(16),
  12693. Fbits: uint8(7),
  12694. Fval: uint16(5),
  12695. },
  12696. 481: {
  12697. Fbits: uint8(8),
  12698. Fval: uint16(87),
  12699. },
  12700. 482: {
  12701. Fbits: uint8(8),
  12702. Fval: uint16(23),
  12703. },
  12704. 483: {
  12705. Fop: uint8(64),
  12706. Fbits: uint8(8),
  12707. },
  12708. 484: {
  12709. Fop: uint8(19),
  12710. Fbits: uint8(7),
  12711. Fval: uint16(51),
  12712. },
  12713. 485: {
  12714. Fbits: uint8(8),
  12715. Fval: uint16(119),
  12716. },
  12717. 486: {
  12718. Fbits: uint8(8),
  12719. Fval: uint16(55),
  12720. },
  12721. 487: {
  12722. Fbits: uint8(9),
  12723. Fval: uint16(207),
  12724. },
  12725. 488: {
  12726. Fop: uint8(17),
  12727. Fbits: uint8(7),
  12728. Fval: uint16(15),
  12729. },
  12730. 489: {
  12731. Fbits: uint8(8),
  12732. Fval: uint16(103),
  12733. },
  12734. 490: {
  12735. Fbits: uint8(8),
  12736. Fval: uint16(39),
  12737. },
  12738. 491: {
  12739. Fbits: uint8(9),
  12740. Fval: uint16(175),
  12741. },
  12742. 492: {
  12743. Fbits: uint8(8),
  12744. Fval: uint16(7),
  12745. },
  12746. 493: {
  12747. Fbits: uint8(8),
  12748. Fval: uint16(135),
  12749. },
  12750. 494: {
  12751. Fbits: uint8(8),
  12752. Fval: uint16(71),
  12753. },
  12754. 495: {
  12755. Fbits: uint8(9),
  12756. Fval: uint16(239),
  12757. },
  12758. 496: {
  12759. Fop: uint8(16),
  12760. Fbits: uint8(7),
  12761. Fval: uint16(9),
  12762. },
  12763. 497: {
  12764. Fbits: uint8(8),
  12765. Fval: uint16(95),
  12766. },
  12767. 498: {
  12768. Fbits: uint8(8),
  12769. Fval: uint16(31),
  12770. },
  12771. 499: {
  12772. Fbits: uint8(9),
  12773. Fval: uint16(159),
  12774. },
  12775. 500: {
  12776. Fop: uint8(20),
  12777. Fbits: uint8(7),
  12778. Fval: uint16(99),
  12779. },
  12780. 501: {
  12781. Fbits: uint8(8),
  12782. Fval: uint16(127),
  12783. },
  12784. 502: {
  12785. Fbits: uint8(8),
  12786. Fval: uint16(63),
  12787. },
  12788. 503: {
  12789. Fbits: uint8(9),
  12790. Fval: uint16(223),
  12791. },
  12792. 504: {
  12793. Fop: uint8(18),
  12794. Fbits: uint8(7),
  12795. Fval: uint16(27),
  12796. },
  12797. 505: {
  12798. Fbits: uint8(8),
  12799. Fval: uint16(111),
  12800. },
  12801. 506: {
  12802. Fbits: uint8(8),
  12803. Fval: uint16(47),
  12804. },
  12805. 507: {
  12806. Fbits: uint8(9),
  12807. Fval: uint16(191),
  12808. },
  12809. 508: {
  12810. Fbits: uint8(8),
  12811. Fval: uint16(15),
  12812. },
  12813. 509: {
  12814. Fbits: uint8(8),
  12815. Fval: uint16(143),
  12816. },
  12817. 510: {
  12818. Fbits: uint8(8),
  12819. Fval: uint16(79),
  12820. },
  12821. 511: {
  12822. Fbits: uint8(9),
  12823. Fval: uint16(255),
  12824. },
  12825. }
  12826. var _distfix1 = [32]Tcode{
  12827. 0: {
  12828. Fop: uint8(16),
  12829. Fbits: uint8(5),
  12830. Fval: uint16(1),
  12831. },
  12832. 1: {
  12833. Fop: uint8(23),
  12834. Fbits: uint8(5),
  12835. Fval: uint16(257),
  12836. },
  12837. 2: {
  12838. Fop: uint8(19),
  12839. Fbits: uint8(5),
  12840. Fval: uint16(17),
  12841. },
  12842. 3: {
  12843. Fop: uint8(27),
  12844. Fbits: uint8(5),
  12845. Fval: uint16(4097),
  12846. },
  12847. 4: {
  12848. Fop: uint8(17),
  12849. Fbits: uint8(5),
  12850. Fval: uint16(5),
  12851. },
  12852. 5: {
  12853. Fop: uint8(25),
  12854. Fbits: uint8(5),
  12855. Fval: uint16(1025),
  12856. },
  12857. 6: {
  12858. Fop: uint8(21),
  12859. Fbits: uint8(5),
  12860. Fval: uint16(65),
  12861. },
  12862. 7: {
  12863. Fop: uint8(29),
  12864. Fbits: uint8(5),
  12865. Fval: uint16(16385),
  12866. },
  12867. 8: {
  12868. Fop: uint8(16),
  12869. Fbits: uint8(5),
  12870. Fval: uint16(3),
  12871. },
  12872. 9: {
  12873. Fop: uint8(24),
  12874. Fbits: uint8(5),
  12875. Fval: uint16(513),
  12876. },
  12877. 10: {
  12878. Fop: uint8(20),
  12879. Fbits: uint8(5),
  12880. Fval: uint16(33),
  12881. },
  12882. 11: {
  12883. Fop: uint8(28),
  12884. Fbits: uint8(5),
  12885. Fval: uint16(8193),
  12886. },
  12887. 12: {
  12888. Fop: uint8(18),
  12889. Fbits: uint8(5),
  12890. Fval: uint16(9),
  12891. },
  12892. 13: {
  12893. Fop: uint8(26),
  12894. Fbits: uint8(5),
  12895. Fval: uint16(2049),
  12896. },
  12897. 14: {
  12898. Fop: uint8(22),
  12899. Fbits: uint8(5),
  12900. Fval: uint16(129),
  12901. },
  12902. 15: {
  12903. Fop: uint8(64),
  12904. Fbits: uint8(5),
  12905. },
  12906. 16: {
  12907. Fop: uint8(16),
  12908. Fbits: uint8(5),
  12909. Fval: uint16(2),
  12910. },
  12911. 17: {
  12912. Fop: uint8(23),
  12913. Fbits: uint8(5),
  12914. Fval: uint16(385),
  12915. },
  12916. 18: {
  12917. Fop: uint8(19),
  12918. Fbits: uint8(5),
  12919. Fval: uint16(25),
  12920. },
  12921. 19: {
  12922. Fop: uint8(27),
  12923. Fbits: uint8(5),
  12924. Fval: uint16(6145),
  12925. },
  12926. 20: {
  12927. Fop: uint8(17),
  12928. Fbits: uint8(5),
  12929. Fval: uint16(7),
  12930. },
  12931. 21: {
  12932. Fop: uint8(25),
  12933. Fbits: uint8(5),
  12934. Fval: uint16(1537),
  12935. },
  12936. 22: {
  12937. Fop: uint8(21),
  12938. Fbits: uint8(5),
  12939. Fval: uint16(97),
  12940. },
  12941. 23: {
  12942. Fop: uint8(29),
  12943. Fbits: uint8(5),
  12944. Fval: uint16(24577),
  12945. },
  12946. 24: {
  12947. Fop: uint8(16),
  12948. Fbits: uint8(5),
  12949. Fval: uint16(4),
  12950. },
  12951. 25: {
  12952. Fop: uint8(24),
  12953. Fbits: uint8(5),
  12954. Fval: uint16(769),
  12955. },
  12956. 26: {
  12957. Fop: uint8(20),
  12958. Fbits: uint8(5),
  12959. Fval: uint16(49),
  12960. },
  12961. 27: {
  12962. Fop: uint8(28),
  12963. Fbits: uint8(5),
  12964. Fval: uint16(12289),
  12965. },
  12966. 28: {
  12967. Fop: uint8(18),
  12968. Fbits: uint8(5),
  12969. Fval: uint16(13),
  12970. },
  12971. 29: {
  12972. Fop: uint8(26),
  12973. Fbits: uint8(5),
  12974. Fval: uint16(3073),
  12975. },
  12976. 30: {
  12977. Fop: uint8(22),
  12978. Fbits: uint8(5),
  12979. Fval: uint16(193),
  12980. },
  12981. 31: {
  12982. Fop: uint8(64),
  12983. Fbits: uint8(5),
  12984. },
  12985. }
  12986. // C documentation
  12987. //
  12988. // /*
  12989. // Update the window with the last wsize (normally 32K) bytes written before
  12990. // returning. If window does not exist yet, create it. This is only called
  12991. // when a window is already in use, or when output has been written during this
  12992. // inflate call, but the end of the deflate stream has not been reached yet.
  12993. // It is also called to create a window for dictionary data when a dictionary
  12994. // is loaded.
  12995. //
  12996. // Providing output buffers larger than 32K to inflate() should provide a speed
  12997. // advantage, since only the last 32K of output is copied to the sliding window
  12998. // upon return from inflate(), and since all distances after the first 32K of
  12999. // output will fall in the output data, making match copies simpler and faster.
  13000. // The advantage may be dependent on the size of the processor's data caches.
  13001. // */
  13002. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  13003. var dist uint32
  13004. var state uintptr
  13005. _, _ = dist, state
  13006. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13007. /* if it hasn't been done already, allocate space for the window */
  13008. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  13009. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  13010. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  13011. return int32(1)
  13012. }
  13013. }
  13014. /* if window not in use yet, initialize */
  13015. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  13016. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  13017. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13018. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  13019. }
  13020. /* copy state->wsize or less output bytes into the circular window */
  13021. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13022. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  13023. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13024. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13025. } else {
  13026. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  13027. if dist > copy1 {
  13028. dist = copy1
  13029. }
  13030. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(dist))
  13031. copy1 -= dist
  13032. if copy1 != 0 {
  13033. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(copy1))
  13034. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  13035. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13036. } else {
  13037. *(*uint32)(unsafe.Pointer(state + 68)) += dist
  13038. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13039. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  13040. }
  13041. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13042. *(*uint32)(unsafe.Pointer(state + 64)) += dist
  13043. }
  13044. }
  13045. }
  13046. return 0
  13047. }
  13048. /* Macros for inflate(): */
  13049. /* check function to use adler32() for zlib or crc32() for gzip */
  13050. /* check macros for header crc */
  13051. /* Load registers with state in inflate() for speed */
  13052. /* Restore state from registers in inflate() */
  13053. /* Clear the input bit accumulator */
  13054. /* Get a byte of input into the bit accumulator, or return from inflate()
  13055. if there is no input available. */
  13056. /* Assure that there are at least n bits in the bit accumulator. If there is
  13057. not enough available input to do that, then return from inflate(). */
  13058. /* Return the low n bits of the bit accumulator (n < 16) */
  13059. /* Remove n bits from the bit accumulator */
  13060. /* Remove zero to seven bits as needed to go to a byte boundary */
  13061. /*
  13062. inflate() uses a state machine to process as much input data and generate as
  13063. much output data as possible before returning. The state machine is
  13064. structured roughly as follows:
  13065. for (;;) switch (state) {
  13066. ...
  13067. case STATEn:
  13068. if (not enough input data or output space to make progress)
  13069. return;
  13070. ... make progress ...
  13071. state = STATEm;
  13072. break;
  13073. ...
  13074. }
  13075. so when inflate() is called again, the same case is attempted again, and
  13076. if the appropriate resources are provided, the machine proceeds to the
  13077. next state. The NEEDBITS() macro is usually the way the state evaluates
  13078. whether it can proceed or should return. NEEDBITS() does the return if
  13079. the requested bits are not available. The typical use of the BITS macros
  13080. is:
  13081. NEEDBITS(n);
  13082. ... do something with BITS(n) ...
  13083. DROPBITS(n);
  13084. where NEEDBITS(n) either returns from inflate() if there isn't enough
  13085. input left to load n bits into the accumulator, or it continues. BITS(n)
  13086. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  13087. the low n bits off the accumulator. INITBITS() clears the accumulator
  13088. and sets the number of available bits to zero. BYTEBITS() discards just
  13089. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  13090. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  13091. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  13092. if there is no input available. The decoding of variable length codes uses
  13093. PULLBYTE() directly in order to pull just enough bytes to decode the next
  13094. code, and no more.
  13095. Some states loop until they get enough input, making sure that enough
  13096. state information is maintained to continue the loop where it left off
  13097. if NEEDBITS() returns in the loop. For example, want, need, and keep
  13098. would all have to actually be part of the saved state in case NEEDBITS()
  13099. returns:
  13100. case STATEw:
  13101. while (want < need) {
  13102. NEEDBITS(n);
  13103. keep[want++] = BITS(n);
  13104. DROPBITS(n);
  13105. }
  13106. state = STATEx;
  13107. case STATEx:
  13108. As shown above, if the next state is also the next case, then the break
  13109. is omitted.
  13110. A state may also return if there is not enough output space available to
  13111. complete that state. Those states are copying stored data, writing a
  13112. literal byte, and copying a matching string.
  13113. When returning, a "goto inf_leave" is used to update the total counters,
  13114. update the check value, and determine whether any progress has been made
  13115. during that inflate() call in order to return the proper return code.
  13116. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  13117. When there is a window, goto inf_leave will update the window with the last
  13118. output written. If a goto inf_leave occurs in the middle of decompression
  13119. and there is no window currently, goto inf_leave will create one and copy
  13120. output to the window for the next call of inflate().
  13121. In this implementation, the flush parameter of inflate() only affects the
  13122. return code (per zlib.h). inflate() always writes as much as possible to
  13123. strm->next_out, given the space available and the provided input--the effect
  13124. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  13125. the allocation of and copying into a sliding window until necessary, which
  13126. provides the effect documented in zlib.h for Z_FINISH when the entire input
  13127. stream available. So the only thing the flush parameter actually does is:
  13128. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  13129. will return Z_BUF_ERROR if it has not reached the end of the stream.
  13130. */
  13131. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  13132. bp := tls.Alloc(16)
  13133. defer tls.Free(16)
  13134. var bits, copy1, have, in, left, len1, out, v46, v48, v49, v50, v52, v53, v64, v66, v70, v75, v76, v90 uint32
  13135. 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
  13136. var here, last Tcode
  13137. var hold, v101, v102, v37, v56, v58, v59, v96, v97, v98 uint64
  13138. var ret, v103, v104, v105, v38 int32
  13139. var v47, v99 bool
  13140. var _ /* hbuf at bp+0 */ [4]uint8
  13141. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  13142. 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) {
  13143. return -int32(2)
  13144. }
  13145. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13146. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13147. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13148. } /* skip check */
  13149. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13150. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13151. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13152. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13153. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13154. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13155. in = have
  13156. out = left
  13157. ret = m_Z_OK
  13158. for {
  13159. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  13160. case int32(_HEAD):
  13161. goto _2
  13162. case int32(_FLAGS):
  13163. goto _3
  13164. case int32(_TIME):
  13165. goto _4
  13166. case int32(_OS):
  13167. goto _5
  13168. case int32(_EXLEN):
  13169. goto _6
  13170. case int32(_EXTRA):
  13171. goto _7
  13172. case int32(_NAME):
  13173. goto _8
  13174. case int32(_COMMENT):
  13175. goto _9
  13176. case int32(_HCRC):
  13177. goto _10
  13178. case int32(_DICTID):
  13179. goto _11
  13180. case int32(_DICT):
  13181. goto _12
  13182. case int32(_TYPE):
  13183. goto _13
  13184. case int32(_TYPEDO):
  13185. goto _14
  13186. case int32(_STORED):
  13187. goto _15
  13188. case int32(_COPY_):
  13189. goto _16
  13190. case int32(_COPY):
  13191. goto _17
  13192. case int32(_TABLE):
  13193. goto _18
  13194. case int32(_LENLENS):
  13195. goto _19
  13196. case int32(_CODELENS):
  13197. goto _20
  13198. case int32(_LEN_):
  13199. goto _21
  13200. case int32(_LEN):
  13201. goto _22
  13202. case int32(_LENEXT):
  13203. goto _23
  13204. case int32(_DIST):
  13205. goto _24
  13206. case int32(_DISTEXT):
  13207. goto _25
  13208. case int32(_MATCH):
  13209. goto _26
  13210. case int32(_LIT):
  13211. goto _27
  13212. case int32(_CHECK):
  13213. goto _28
  13214. case int32(_LENGTH):
  13215. goto _29
  13216. case int32(_DONE):
  13217. goto _30
  13218. case int32(_BAD):
  13219. goto _31
  13220. case int32(_MEM):
  13221. goto _32
  13222. default:
  13223. goto _33
  13224. case int32(_SYNC):
  13225. goto _34
  13226. }
  13227. goto _35
  13228. _2:
  13229. ;
  13230. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  13231. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  13232. goto _35
  13233. }
  13234. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13235. if have == uint32(0) {
  13236. goto inf_leave
  13237. }
  13238. have--
  13239. v36 = next
  13240. next++
  13241. hold += uint64(*(*uint8)(unsafe.Pointer(v36))) << bits
  13242. bits += uint32(8)
  13243. }
  13244. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint64(0x8b1f) { /* gzip header */
  13245. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13246. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  13247. }
  13248. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13249. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13250. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13251. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13252. hold = uint64(0)
  13253. bits = uint32(0)
  13254. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  13255. goto _35
  13256. }
  13257. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13258. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  13259. }
  13260. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint64(uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint64(31) != 0 {
  13261. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 308
  13262. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13263. goto _35
  13264. }
  13265. if uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  13266. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13267. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13268. goto _35
  13269. }
  13270. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  13271. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13272. len1 = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  13273. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  13274. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  13275. }
  13276. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  13277. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 358
  13278. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13279. goto _35
  13280. }
  13281. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  13282. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  13283. v37 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13284. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  13285. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  13286. if hold&uint64(0x200) != 0 {
  13287. v38 = int32(_DICTID)
  13288. } else {
  13289. v38 = int32(_TYPE)
  13290. }
  13291. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  13292. hold = uint64(0)
  13293. bits = uint32(0)
  13294. goto _35
  13295. _3:
  13296. ;
  13297. _41:
  13298. ;
  13299. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13300. if have == uint32(0) {
  13301. goto inf_leave
  13302. }
  13303. have--
  13304. v42 = next
  13305. next++
  13306. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  13307. bits += uint32(8)
  13308. }
  13309. goto _40
  13310. _40:
  13311. ;
  13312. if 0 != 0 {
  13313. goto _41
  13314. }
  13315. goto _39
  13316. _39:
  13317. ;
  13318. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = libc.Int32FromUint64(hold)
  13319. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  13320. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13321. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13322. goto _35
  13323. }
  13324. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  13325. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 378
  13326. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13327. goto _35
  13328. }
  13329. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13330. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = libc.Int32FromUint64(hold >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(1))
  13331. }
  13332. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13333. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13334. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13335. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13336. }
  13337. hold = uint64(0)
  13338. bits = uint32(0)
  13339. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  13340. /* fallthrough */
  13341. _4:
  13342. ;
  13343. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13344. if have == uint32(0) {
  13345. goto inf_leave
  13346. }
  13347. have--
  13348. v43 = next
  13349. next++
  13350. hold += uint64(*(*uint8)(unsafe.Pointer(v43))) << bits
  13351. bits += uint32(8)
  13352. }
  13353. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13354. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  13355. }
  13356. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13357. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13358. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13359. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  13360. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  13361. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  13362. }
  13363. hold = uint64(0)
  13364. bits = uint32(0)
  13365. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  13366. /* fallthrough */
  13367. _5:
  13368. ;
  13369. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13370. if have == uint32(0) {
  13371. goto inf_leave
  13372. }
  13373. have--
  13374. v44 = next
  13375. next++
  13376. hold += uint64(*(*uint8)(unsafe.Pointer(v44))) << bits
  13377. bits += uint32(8)
  13378. }
  13379. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13380. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = libc.Int32FromUint64(hold & libc.Uint64FromInt32(0xff))
  13381. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = libc.Int32FromUint64(hold >> libc.Int32FromInt32(8))
  13382. }
  13383. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13384. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13385. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13386. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13387. }
  13388. hold = uint64(0)
  13389. bits = uint32(0)
  13390. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  13391. /* fallthrough */
  13392. _6:
  13393. ;
  13394. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13395. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13396. if have == uint32(0) {
  13397. goto inf_leave
  13398. }
  13399. have--
  13400. v45 = next
  13401. next++
  13402. hold += uint64(*(*uint8)(unsafe.Pointer(v45))) << bits
  13403. bits += uint32(8)
  13404. }
  13405. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold)
  13406. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13407. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = uint32(hold)
  13408. }
  13409. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13410. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  13411. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  13412. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  13413. }
  13414. hold = uint64(0)
  13415. bits = uint32(0)
  13416. } else {
  13417. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13418. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  13419. }
  13420. }
  13421. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  13422. /* fallthrough */
  13423. _7:
  13424. ;
  13425. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  13426. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13427. if copy1 > have {
  13428. copy1 = have
  13429. }
  13430. if copy1 != 0 {
  13431. 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 {
  13432. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13433. len1 = v46
  13434. }
  13435. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13436. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  13437. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  13438. } else {
  13439. v48 = copy1
  13440. }
  13441. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  13442. }
  13443. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13444. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13445. }
  13446. have -= copy1
  13447. next += uintptr(copy1)
  13448. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13449. }
  13450. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  13451. goto inf_leave
  13452. }
  13453. }
  13454. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13455. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  13456. /* fallthrough */
  13457. _8:
  13458. ;
  13459. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  13460. if have == uint32(0) {
  13461. goto inf_leave
  13462. }
  13463. copy1 = uint32(0)
  13464. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13465. v49 = copy1
  13466. copy1++
  13467. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  13468. 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 {
  13469. v51 = state + 92
  13470. v50 = *(*uint32)(unsafe.Pointer(v51))
  13471. *(*uint32)(unsafe.Pointer(v51))++
  13472. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  13473. }
  13474. }
  13475. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13476. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13477. }
  13478. have -= copy1
  13479. next += uintptr(copy1)
  13480. if len1 != 0 {
  13481. goto inf_leave
  13482. }
  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)).Fname = uintptr(m_Z_NULL)
  13486. }
  13487. }
  13488. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  13489. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  13490. /* fallthrough */
  13491. _9:
  13492. ;
  13493. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  13494. if have == uint32(0) {
  13495. goto inf_leave
  13496. }
  13497. copy1 = uint32(0)
  13498. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  13499. v52 = copy1
  13500. copy1++
  13501. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  13502. 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 {
  13503. v54 = state + 92
  13504. v53 = *(*uint32)(unsafe.Pointer(v54))
  13505. *(*uint32)(unsafe.Pointer(v54))++
  13506. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  13507. }
  13508. }
  13509. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  13510. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  13511. }
  13512. have -= copy1
  13513. next += uintptr(copy1)
  13514. if len1 != 0 {
  13515. goto inf_leave
  13516. }
  13517. } else {
  13518. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13519. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  13520. }
  13521. }
  13522. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  13523. /* fallthrough */
  13524. _10:
  13525. ;
  13526. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  13527. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(16)) {
  13528. if have == uint32(0) {
  13529. goto inf_leave
  13530. }
  13531. have--
  13532. v55 = next
  13533. next++
  13534. hold += uint64(*(*uint8)(unsafe.Pointer(v55))) << bits
  13535. bits += uint32(8)
  13536. }
  13537. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint64(0xffff) {
  13538. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 403
  13539. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13540. goto _35
  13541. }
  13542. hold = uint64(0)
  13543. bits = uint32(0)
  13544. }
  13545. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  13546. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  13547. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  13548. }
  13549. v56 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13550. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  13551. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  13552. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13553. goto _35
  13554. _11:
  13555. ;
  13556. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13557. if have == uint32(0) {
  13558. goto inf_leave
  13559. }
  13560. have--
  13561. v57 = next
  13562. next++
  13563. hold += uint64(*(*uint8)(unsafe.Pointer(v57))) << bits
  13564. bits += uint32(8)
  13565. }
  13566. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint64FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint64FromInt32(0xff00) + hold&libc.Uint64FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint64FromInt32(0xff)<<libc.Int32FromInt32(24)
  13567. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  13568. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  13569. hold = uint64(0)
  13570. bits = uint32(0)
  13571. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  13572. /* fallthrough */
  13573. _12:
  13574. ;
  13575. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  13576. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13577. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13578. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13579. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13580. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13581. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13582. return int32(m_Z_NEED_DICT)
  13583. }
  13584. v59 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  13585. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  13586. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  13587. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13588. /* fallthrough */
  13589. _13:
  13590. ;
  13591. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  13592. goto inf_leave
  13593. }
  13594. /* fallthrough */
  13595. _14:
  13596. ;
  13597. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13598. hold >>= uint64(bits & uint32(7))
  13599. bits -= bits & uint32(7)
  13600. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  13601. goto _35
  13602. }
  13603. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13604. if have == uint32(0) {
  13605. goto inf_leave
  13606. }
  13607. have--
  13608. v60 = next
  13609. next++
  13610. hold += uint64(*(*uint8)(unsafe.Pointer(v60))) << bits
  13611. bits += uint32(8)
  13612. }
  13613. (*Tinflate_state)(unsafe.Pointer(state)).Flast = libc.Int32FromUint32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  13614. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(1))
  13615. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(1))
  13616. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  13617. case uint32(0): /* stored block */
  13618. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  13619. case uint32(1): /* fixed block */
  13620. _fixedtables1(tls, state)
  13621. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  13622. if flush == int32(m_Z_TREES) {
  13623. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13624. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13625. goto inf_leave
  13626. }
  13627. case uint32(2): /* dynamic block */
  13628. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  13629. case uint32(3):
  13630. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  13631. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13632. }
  13633. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13634. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13635. goto _35
  13636. _15:
  13637. ;
  13638. hold >>= uint64(bits & uint32(7))
  13639. bits -= bits & uint32(7) /* go to byte boundary */
  13640. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  13641. if have == uint32(0) {
  13642. goto inf_leave
  13643. }
  13644. have--
  13645. v61 = next
  13646. next++
  13647. hold += uint64(*(*uint8)(unsafe.Pointer(v61))) << bits
  13648. bits += uint32(8)
  13649. }
  13650. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  13651. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  13652. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13653. goto _35
  13654. }
  13655. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  13656. hold = uint64(0)
  13657. bits = uint32(0)
  13658. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  13659. if flush == int32(m_Z_TREES) {
  13660. goto inf_leave
  13661. }
  13662. /* fallthrough */
  13663. _16:
  13664. ;
  13665. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  13666. /* fallthrough */
  13667. _17:
  13668. ;
  13669. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13670. if copy1 != 0 {
  13671. if copy1 > have {
  13672. copy1 = have
  13673. }
  13674. if copy1 > left {
  13675. copy1 = left
  13676. }
  13677. if copy1 == uint32(0) {
  13678. goto inf_leave
  13679. }
  13680. libc.Xmemcpy(tls, put, next, uint64(copy1))
  13681. have -= copy1
  13682. next += uintptr(copy1)
  13683. left -= copy1
  13684. put += uintptr(copy1)
  13685. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  13686. goto _35
  13687. }
  13688. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13689. goto _35
  13690. _18:
  13691. ;
  13692. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(14)) {
  13693. if have == uint32(0) {
  13694. goto inf_leave
  13695. }
  13696. have--
  13697. v62 = next
  13698. next++
  13699. hold += uint64(*(*uint8)(unsafe.Pointer(v62))) << bits
  13700. bits += uint32(8)
  13701. }
  13702. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  13703. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  13704. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13705. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  13706. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(5))
  13707. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(5))
  13708. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  13709. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(4))
  13710. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(4))
  13711. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  13712. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  13713. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13714. goto _35
  13715. }
  13716. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13717. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  13718. /* fallthrough */
  13719. _19:
  13720. ;
  13721. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  13722. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(3)) {
  13723. if have == uint32(0) {
  13724. goto inf_leave
  13725. }
  13726. have--
  13727. v63 = next
  13728. next++
  13729. hold += uint64(*(*uint8)(unsafe.Pointer(v63))) << bits
  13730. bits += uint32(8)
  13731. }
  13732. v65 = state + 140
  13733. v64 = *(*uint32)(unsafe.Pointer(v65))
  13734. *(*uint32)(unsafe.Pointer(v65))++
  13735. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v64])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  13736. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  13737. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13738. }
  13739. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  13740. v67 = state + 140
  13741. v66 = *(*uint32)(unsafe.Pointer(v67))
  13742. *(*uint32)(unsafe.Pointer(v67))++
  13743. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v66])*2)) = uint16(0)
  13744. }
  13745. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13746. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13747. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  13748. ret = Xinflate_table(tls, int32(_CODES), state+152, uint32(19), state+144, state+120, state+792)
  13749. if ret != 0 {
  13750. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  13751. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13752. goto _35
  13753. }
  13754. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13755. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  13756. /* fallthrough */
  13757. _20:
  13758. ;
  13759. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13760. for {
  13761. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13762. if uint32(here.Fbits) <= bits {
  13763. break
  13764. }
  13765. if have == uint32(0) {
  13766. goto inf_leave
  13767. }
  13768. have--
  13769. v69 = next
  13770. next++
  13771. hold += uint64(*(*uint8)(unsafe.Pointer(v69))) << bits
  13772. bits += uint32(8)
  13773. goto _68
  13774. _68:
  13775. }
  13776. if libc.Int32FromUint16(here.Fval) < int32(16) {
  13777. hold >>= uint64(here.Fbits)
  13778. bits -= uint32(here.Fbits)
  13779. v71 = state + 140
  13780. v70 = *(*uint32)(unsafe.Pointer(v71))
  13781. *(*uint32)(unsafe.Pointer(v71))++
  13782. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v70)*2)) = here.Fval
  13783. } else {
  13784. if libc.Int32FromUint16(here.Fval) == int32(16) {
  13785. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(2)) {
  13786. if have == uint32(0) {
  13787. goto inf_leave
  13788. }
  13789. have--
  13790. v72 = next
  13791. next++
  13792. hold += uint64(*(*uint8)(unsafe.Pointer(v72))) << bits
  13793. bits += uint32(8)
  13794. }
  13795. hold >>= uint64(here.Fbits)
  13796. bits -= uint32(here.Fbits)
  13797. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  13798. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13799. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13800. break
  13801. }
  13802. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  13803. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  13804. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(2))
  13805. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(2))
  13806. } else {
  13807. if libc.Int32FromUint16(here.Fval) == int32(17) {
  13808. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(3)) {
  13809. if have == uint32(0) {
  13810. goto inf_leave
  13811. }
  13812. have--
  13813. v73 = next
  13814. next++
  13815. hold += uint64(*(*uint8)(unsafe.Pointer(v73))) << bits
  13816. bits += uint32(8)
  13817. }
  13818. hold >>= uint64(here.Fbits)
  13819. bits -= uint32(here.Fbits)
  13820. len1 = uint32(0)
  13821. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  13822. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(3))
  13823. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(3))
  13824. } else {
  13825. for bits < libc.Uint32FromInt32(libc.Int32FromUint8(here.Fbits)+libc.Int32FromInt32(7)) {
  13826. if have == uint32(0) {
  13827. goto inf_leave
  13828. }
  13829. have--
  13830. v74 = next
  13831. next++
  13832. hold += uint64(*(*uint8)(unsafe.Pointer(v74))) << bits
  13833. bits += uint32(8)
  13834. }
  13835. hold >>= uint64(here.Fbits)
  13836. bits -= uint32(here.Fbits)
  13837. len1 = uint32(0)
  13838. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  13839. hold >>= libc.Uint64FromInt32(libc.Int32FromInt32(7))
  13840. bits -= libc.Uint32FromInt32(libc.Int32FromInt32(7))
  13841. }
  13842. }
  13843. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13844. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  13845. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13846. break
  13847. }
  13848. for {
  13849. v75 = copy1
  13850. copy1--
  13851. if !(v75 != 0) {
  13852. break
  13853. }
  13854. v77 = state + 140
  13855. v76 = *(*uint32)(unsafe.Pointer(v77))
  13856. *(*uint32)(unsafe.Pointer(v77))++
  13857. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v76)*2)) = uint16(len1)
  13858. }
  13859. }
  13860. }
  13861. /* handle error breaks in while */
  13862. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  13863. goto _35
  13864. }
  13865. /* check for end-of-block code (better have one) */
  13866. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  13867. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  13868. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13869. goto _35
  13870. }
  13871. /* build code tables -- note: do not change the lenbits or distbits
  13872. values here (9 and 6) without reading the comments in inftrees.h
  13873. concerning the ENOUGH constants, which depend on those values */
  13874. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  13875. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13876. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  13877. ret = Xinflate_table(tls, int32(_LENS), state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  13878. if ret != 0 {
  13879. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  13880. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13881. goto _35
  13882. }
  13883. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13884. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  13885. ret = Xinflate_table(tls, int32(_DISTS), state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  13886. if ret != 0 {
  13887. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  13888. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13889. goto _35
  13890. }
  13891. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  13892. if flush == int32(m_Z_TREES) {
  13893. goto inf_leave
  13894. }
  13895. /* fallthrough */
  13896. _21:
  13897. ;
  13898. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  13899. /* fallthrough */
  13900. _22:
  13901. ;
  13902. if have >= uint32(6) && left >= uint32(258) {
  13903. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13904. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13905. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  13906. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13907. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13908. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13909. Xinflate_fast(tls, strm, out)
  13910. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13911. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13912. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13913. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13914. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13915. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13916. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  13917. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13918. }
  13919. goto _35
  13920. }
  13921. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  13922. for {
  13923. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13924. if uint32(here.Fbits) <= bits {
  13925. break
  13926. }
  13927. if have == uint32(0) {
  13928. goto inf_leave
  13929. }
  13930. have--
  13931. v79 = next
  13932. next++
  13933. hold += uint64(*(*uint8)(unsafe.Pointer(v79))) << bits
  13934. bits += uint32(8)
  13935. goto _78
  13936. _78:
  13937. }
  13938. if here.Fop != 0 && libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  13939. last = here
  13940. for {
  13941. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  13942. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  13943. break
  13944. }
  13945. if have == uint32(0) {
  13946. goto inf_leave
  13947. }
  13948. have--
  13949. v81 = next
  13950. next++
  13951. hold += uint64(*(*uint8)(unsafe.Pointer(v81))) << bits
  13952. bits += uint32(8)
  13953. goto _80
  13954. _80:
  13955. }
  13956. hold >>= uint64(last.Fbits)
  13957. bits -= uint32(last.Fbits)
  13958. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(last.Fbits)
  13959. }
  13960. hold >>= uint64(here.Fbits)
  13961. bits -= uint32(here.Fbits)
  13962. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(here.Fbits)
  13963. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  13964. if libc.Int32FromUint8(here.Fop) == 0 {
  13965. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  13966. goto _35
  13967. }
  13968. if libc.Int32FromUint8(here.Fop)&int32(32) != 0 {
  13969. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  13970. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13971. goto _35
  13972. }
  13973. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  13974. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  13975. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13976. goto _35
  13977. }
  13978. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  13979. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  13980. /* fallthrough */
  13981. _23:
  13982. ;
  13983. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  13984. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  13985. if have == uint32(0) {
  13986. goto inf_leave
  13987. }
  13988. have--
  13989. v82 = next
  13990. next++
  13991. hold += uint64(*(*uint8)(unsafe.Pointer(v82))) << bits
  13992. bits += uint32(8)
  13993. }
  13994. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  13995. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13996. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13997. p83 = state + 7148
  13998. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  13999. }
  14000. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14001. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  14002. /* fallthrough */
  14003. _24:
  14004. ;
  14005. for {
  14006. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(hold)&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  14007. if uint32(here.Fbits) <= bits {
  14008. break
  14009. }
  14010. if have == uint32(0) {
  14011. goto inf_leave
  14012. }
  14013. have--
  14014. v85 = next
  14015. next++
  14016. hold += uint64(*(*uint8)(unsafe.Pointer(v85))) << bits
  14017. bits += uint32(8)
  14018. goto _84
  14019. _84:
  14020. }
  14021. if libc.Int32FromUint8(here.Fop)&int32(0xf0) == 0 {
  14022. last = here
  14023. for {
  14024. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(last.Fop))-uint32(1))>>last.Fbits)*4))
  14025. if libc.Uint32FromInt32(libc.Int32FromUint8(last.Fbits)+libc.Int32FromUint8(here.Fbits)) <= bits {
  14026. break
  14027. }
  14028. if have == uint32(0) {
  14029. goto inf_leave
  14030. }
  14031. have--
  14032. v87 = next
  14033. next++
  14034. hold += uint64(*(*uint8)(unsafe.Pointer(v87))) << bits
  14035. bits += uint32(8)
  14036. goto _86
  14037. _86:
  14038. }
  14039. hold >>= uint64(last.Fbits)
  14040. bits -= uint32(last.Fbits)
  14041. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(last.Fbits)
  14042. }
  14043. hold >>= uint64(here.Fbits)
  14044. bits -= uint32(here.Fbits)
  14045. *(*int32)(unsafe.Pointer(state + 7148)) += libc.Int32FromUint8(here.Fbits)
  14046. if libc.Int32FromUint8(here.Fop)&int32(64) != 0 {
  14047. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  14048. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14049. goto _35
  14050. }
  14051. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  14052. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  14053. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  14054. /* fallthrough */
  14055. _25:
  14056. ;
  14057. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  14058. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  14059. if have == uint32(0) {
  14060. goto inf_leave
  14061. }
  14062. have--
  14063. v88 = next
  14064. next++
  14065. hold += uint64(*(*uint8)(unsafe.Pointer(v88))) << bits
  14066. bits += uint32(8)
  14067. }
  14068. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  14069. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14070. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  14071. p89 = state + 7148
  14072. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  14073. }
  14074. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  14075. /* fallthrough */
  14076. _26:
  14077. ;
  14078. if left == uint32(0) {
  14079. goto inf_leave
  14080. }
  14081. copy1 = out - left
  14082. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  14083. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  14084. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  14085. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  14086. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  14087. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14088. goto _35
  14089. }
  14090. }
  14091. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  14092. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14093. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  14094. } else {
  14095. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  14096. }
  14097. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  14098. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14099. }
  14100. } else { /* copy from output */
  14101. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  14102. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14103. }
  14104. if copy1 > left {
  14105. copy1 = left
  14106. }
  14107. left -= copy1
  14108. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  14109. for {
  14110. v92 = put
  14111. put++
  14112. v93 = from
  14113. from++
  14114. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  14115. goto _91
  14116. _91:
  14117. ;
  14118. copy1--
  14119. v90 = copy1
  14120. if !(v90 != 0) {
  14121. break
  14122. }
  14123. }
  14124. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  14125. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14126. }
  14127. goto _35
  14128. _27:
  14129. ;
  14130. if left == uint32(0) {
  14131. goto inf_leave
  14132. }
  14133. v94 = put
  14134. put++
  14135. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  14136. left--
  14137. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  14138. goto _35
  14139. _28:
  14140. ;
  14141. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14142. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14143. if have == uint32(0) {
  14144. goto inf_leave
  14145. }
  14146. have--
  14147. v95 = next
  14148. next++
  14149. hold += uint64(*(*uint8)(unsafe.Pointer(v95))) << bits
  14150. bits += uint32(8)
  14151. }
  14152. out -= left
  14153. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  14154. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  14155. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14156. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14157. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14158. } else {
  14159. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  14160. }
  14161. v96 = v97
  14162. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  14163. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  14164. }
  14165. out = left
  14166. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  14167. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14168. v98 = hold
  14169. } else {
  14170. v98 = hold>>int32(24)&uint64(0xff) + hold>>int32(8)&uint64(0xff00) + hold&uint64(0xff00)<<int32(8) + hold&uint64(0xff)<<int32(24)
  14171. }
  14172. }
  14173. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14174. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 423
  14175. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14176. goto _35
  14177. }
  14178. hold = uint64(0)
  14179. bits = uint32(0)
  14180. }
  14181. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  14182. /* fallthrough */
  14183. _29:
  14184. ;
  14185. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14186. for bits < libc.Uint32FromInt32(libc.Int32FromInt32(32)) {
  14187. if have == uint32(0) {
  14188. goto inf_leave
  14189. }
  14190. have--
  14191. v100 = next
  14192. next++
  14193. hold += uint64(*(*uint8)(unsafe.Pointer(v100))) << bits
  14194. bits += uint32(8)
  14195. }
  14196. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint64(0xffffffff) {
  14197. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 444
  14198. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14199. goto _35
  14200. }
  14201. hold = uint64(0)
  14202. bits = uint32(0)
  14203. }
  14204. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  14205. /* fallthrough */
  14206. _30:
  14207. ;
  14208. ret = int32(m_Z_STREAM_END)
  14209. goto inf_leave
  14210. _31:
  14211. ;
  14212. ret = -int32(3)
  14213. goto inf_leave
  14214. _32:
  14215. ;
  14216. return -int32(4)
  14217. _34:
  14218. ;
  14219. /* fallthrough */
  14220. _33:
  14221. ;
  14222. return -int32(2)
  14223. _35:
  14224. ;
  14225. goto _1
  14226. _1:
  14227. }
  14228. /*
  14229. Return from inflate(), updating the total counts and the check value.
  14230. If there was no progress during the inflate() call, return a buffer
  14231. error. Call updatewindow() to create and/or update the window state.
  14232. Note: a memory error from inflate() is non-recoverable.
  14233. */
  14234. goto inf_leave
  14235. inf_leave:
  14236. ;
  14237. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  14238. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  14239. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  14240. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  14241. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  14242. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  14243. 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)) {
  14244. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  14245. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14246. return -int32(4)
  14247. }
  14248. }
  14249. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  14250. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  14251. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(in)
  14252. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  14253. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  14254. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  14255. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  14256. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14257. } else {
  14258. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  14259. }
  14260. v101 = v102
  14261. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  14262. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  14263. }
  14264. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  14265. v103 = int32(64)
  14266. } else {
  14267. v103 = 0
  14268. }
  14269. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  14270. v104 = int32(128)
  14271. } else {
  14272. v104 = 0
  14273. }
  14274. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  14275. v105 = int32(256)
  14276. } else {
  14277. v105 = 0
  14278. }
  14279. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = libc.Int32FromUint32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  14280. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  14281. ret = -int32(5)
  14282. }
  14283. return ret
  14284. }
  14285. var _order1 = [19]uint16{
  14286. 0: uint16(16),
  14287. 1: uint16(17),
  14288. 2: uint16(18),
  14289. 4: uint16(8),
  14290. 5: uint16(7),
  14291. 6: uint16(9),
  14292. 7: uint16(6),
  14293. 8: uint16(10),
  14294. 9: uint16(5),
  14295. 10: uint16(11),
  14296. 11: uint16(4),
  14297. 12: uint16(12),
  14298. 13: uint16(3),
  14299. 14: uint16(13),
  14300. 15: uint16(2),
  14301. 16: uint16(14),
  14302. 17: uint16(1),
  14303. 18: uint16(15),
  14304. }
  14305. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14306. var state uintptr
  14307. _ = state
  14308. if _inflateStateCheck(tls, strm) != 0 {
  14309. return -int32(2)
  14310. }
  14311. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14312. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14313. (*(*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)
  14314. }
  14315. (*(*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)
  14316. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  14317. return m_Z_OK
  14318. }
  14319. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  14320. var state uintptr
  14321. _ = state
  14322. /* check state */
  14323. if _inflateStateCheck(tls, strm) != 0 {
  14324. return -int32(2)
  14325. }
  14326. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14327. /* copy dictionary */
  14328. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  14329. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  14330. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  14331. }
  14332. if dictLength != uintptr(m_Z_NULL) {
  14333. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  14334. }
  14335. return m_Z_OK
  14336. }
  14337. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  14338. var dictid uint64
  14339. var ret int32
  14340. var state uintptr
  14341. _, _, _ = dictid, ret, state
  14342. /* check state */
  14343. if _inflateStateCheck(tls, strm) != 0 {
  14344. return -int32(2)
  14345. }
  14346. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14347. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  14348. return -int32(2)
  14349. }
  14350. /* check for correct dictionary identifier */
  14351. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  14352. dictid = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  14353. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  14354. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  14355. return -int32(3)
  14356. }
  14357. }
  14358. /* copy dictionary to window using updatewindow(), which will amend the
  14359. existing dictionary if appropriate */
  14360. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  14361. if ret != 0 {
  14362. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  14363. return -int32(4)
  14364. }
  14365. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  14366. return m_Z_OK
  14367. }
  14368. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  14369. var state uintptr
  14370. _ = state
  14371. /* check state */
  14372. if _inflateStateCheck(tls, strm) != 0 {
  14373. return -int32(2)
  14374. }
  14375. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14376. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  14377. return -int32(2)
  14378. }
  14379. /* save header structure */
  14380. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  14381. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  14382. return m_Z_OK
  14383. }
  14384. // C documentation
  14385. //
  14386. // /*
  14387. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  14388. // or when out of input. When called, *have is the number of pattern bytes
  14389. // found in order so far, in 0..3. On return *have is updated to the new
  14390. // state. If on return *have equals four, then the pattern was found and the
  14391. // return value is how many bytes were read including the last byte of the
  14392. // pattern. If *have is less than four, then the pattern has not been found
  14393. // yet and the return value is len. In the latter case, syncsearch() can be
  14394. // called again with more data and the *have state. *have is initialized to
  14395. // zero for the first call.
  14396. // */
  14397. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  14398. var got, next uint32
  14399. var v1 int32
  14400. _, _, _ = got, next, v1
  14401. got = *(*uint32)(unsafe.Pointer(have))
  14402. next = uint32(0)
  14403. for next < len1 && got < uint32(4) {
  14404. if got < uint32(2) {
  14405. v1 = 0
  14406. } else {
  14407. v1 = int32(0xff)
  14408. }
  14409. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  14410. got++
  14411. } else {
  14412. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  14413. got = uint32(0)
  14414. } else {
  14415. got = uint32(4) - got
  14416. }
  14417. }
  14418. next++
  14419. }
  14420. *(*uint32)(unsafe.Pointer(have)) = got
  14421. return next
  14422. }
  14423. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14424. bp := tls.Alloc(16)
  14425. defer tls.Free(16)
  14426. var flags int32
  14427. var in, out uint64
  14428. var len1, v1 uint32
  14429. var state uintptr
  14430. var _ /* buf at bp+0 */ [4]uint8
  14431. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  14432. /* check parameters */
  14433. if _inflateStateCheck(tls, strm) != 0 {
  14434. return -int32(2)
  14435. }
  14436. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14437. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  14438. return -int32(5)
  14439. }
  14440. /* if first time, start search in bit buffer */
  14441. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  14442. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  14443. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7))
  14444. *(*uint32)(unsafe.Pointer(state + 88)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  14445. len1 = uint32(0)
  14446. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  14447. v1 = len1
  14448. len1++
  14449. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  14450. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64(8)
  14451. *(*uint32)(unsafe.Pointer(state + 88)) -= uint32(8)
  14452. }
  14453. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  14454. _syncsearch(tls, state+140, bp, len1)
  14455. }
  14456. /* search available input */
  14457. len1 = _syncsearch(tls, state+140, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  14458. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  14459. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  14460. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  14461. /* return no joy or set up to restart inflate() on a new block */
  14462. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  14463. return -int32(3)
  14464. }
  14465. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  14466. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  14467. } else {
  14468. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14469. } /* no point in computing a check value now */
  14470. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  14471. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  14472. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  14473. XinflateReset(tls, strm)
  14474. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  14475. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  14476. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  14477. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14478. return m_Z_OK
  14479. }
  14480. // C documentation
  14481. //
  14482. // /*
  14483. // Returns true if inflate is currently at the end of a block generated by
  14484. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  14485. // implementation to provide an additional safety check. PPP uses
  14486. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  14487. // block. When decompressing, PPP checks that at the end of input packet,
  14488. // inflate is waiting for these length bytes.
  14489. // */
  14490. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14491. var state uintptr
  14492. _ = state
  14493. if _inflateStateCheck(tls, strm) != 0 {
  14494. return -int32(2)
  14495. }
  14496. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14497. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  14498. }
  14499. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  14500. var copy1, state, window uintptr
  14501. var wsize uint32
  14502. _, _, _, _ = copy1, state, window, wsize
  14503. /* check input */
  14504. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  14505. return -int32(2)
  14506. }
  14507. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  14508. /* allocate space */
  14509. 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)), uint32(libc.Uint64FromInt64(7160)))
  14510. if copy1 == uintptr(m_Z_NULL) {
  14511. return -int32(4)
  14512. }
  14513. window = uintptr(m_Z_NULL)
  14514. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  14515. window = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  14516. if window == uintptr(m_Z_NULL) {
  14517. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  14518. return -int32(4)
  14519. }
  14520. }
  14521. /* copy state */
  14522. libc.Xmemcpy(tls, dest, source, uint64(112))
  14523. libc.Xmemcpy(tls, copy1, state, uint64(7160))
  14524. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  14525. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1368 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1368+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  14526. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14527. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14528. }
  14529. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1368))/4)*4
  14530. if window != uintptr(m_Z_NULL) {
  14531. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  14532. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(wsize))
  14533. }
  14534. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  14535. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  14536. return m_Z_OK
  14537. }
  14538. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  14539. var state uintptr
  14540. _ = state
  14541. if _inflateStateCheck(tls, strm) != 0 {
  14542. return -int32(2)
  14543. }
  14544. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14545. _ = subvert
  14546. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  14547. return -int32(3)
  14548. }
  14549. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  14550. var state uintptr
  14551. _ = state
  14552. if _inflateStateCheck(tls, strm) != 0 {
  14553. return -int32(2)
  14554. }
  14555. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14556. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  14557. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  14558. } else {
  14559. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  14560. }
  14561. return m_Z_OK
  14562. }
  14563. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int64) {
  14564. var state uintptr
  14565. var v1, v2 uint32
  14566. _, _, _ = state, v1, v2
  14567. if _inflateStateCheck(tls, strm) != 0 {
  14568. return -(libc.Int64FromInt64(1) << libc.Int32FromInt32(16))
  14569. }
  14570. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14571. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  14572. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14573. } else {
  14574. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  14575. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14576. } else {
  14577. v2 = uint32(0)
  14578. }
  14579. v1 = v2
  14580. }
  14581. return libc.Int64FromUint64(libc.Uint64FromInt64(int64((*Tinflate_state)(unsafe.Pointer(state)).Fback))<<libc.Int32FromInt32(16)) + libc.Int64FromUint32(v1)
  14582. }
  14583. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint64) {
  14584. var state uintptr
  14585. _ = state
  14586. if _inflateStateCheck(tls, strm) != 0 {
  14587. return libc.Uint64FromInt32(-libc.Int32FromInt32(1))
  14588. }
  14589. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14590. return libc.Uint64FromInt64((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1368)) / 4)
  14591. }
  14592. const m_MAXBITS = 15
  14593. /*
  14594. If you use the zlib library in a product, an acknowledgment is welcome
  14595. in the documentation of your product. If for some reason you cannot
  14596. include such an acknowledgment, I would appreciate that you keep this
  14597. copyright string in the executable of your product.
  14598. */
  14599. // C documentation
  14600. //
  14601. // /*
  14602. // Build a set of tables to decode the provided canonical Huffman code.
  14603. // The code lengths are lens[0..codes-1]. The result starts at *table,
  14604. // whose indices are 0..2^bits-1. work is a writable array of at least
  14605. // lens shorts, which is used as a work area. type is the type of code
  14606. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  14607. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  14608. // on return points to the next available entry's address. bits is the
  14609. // requested root table index bits, and on return it is the actual root
  14610. // table index bits. It will differ if the request is greater than the
  14611. // longest code or if it is less than the shortest code.
  14612. // */
  14613. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  14614. bp := tls.Alloc(64)
  14615. defer tls.Free(64)
  14616. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  14617. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  14618. var here Tcode
  14619. var left int32
  14620. var v12, v16 uint16
  14621. var _ /* count at bp+0 */ [16]uint16
  14622. var _ /* offs at bp+32 */ [16]uint16
  14623. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  14624. /*
  14625. Process a set of code lengths to create a canonical Huffman code. The
  14626. code lengths are lens[0..codes-1]. Each length corresponds to the
  14627. symbols 0..codes-1. The Huffman code is generated by first sorting the
  14628. symbols by length from short to long, and retaining the symbol order
  14629. for codes with equal lengths. Then the code starts with all zero bits
  14630. for the first code of the shortest length, and the codes are integer
  14631. increments for the same length, and zeros are appended as the length
  14632. increases. For the deflate format, these bits are stored backwards
  14633. from their more natural integer increment ordering, and so when the
  14634. decoding tables are built in the large loop below, the integer codes
  14635. are incremented backwards.
  14636. This routine assumes, but does not check, that all of the entries in
  14637. lens[] are in the range 0..MAXBITS. The caller must assure this.
  14638. 1..MAXBITS is interpreted as that code length. zero means that that
  14639. symbol does not occur in this code.
  14640. The codes are sorted by computing a count of codes for each length,
  14641. creating from that a table of starting indices for each length in the
  14642. sorted table, and then entering the symbols in order in the sorted
  14643. table. The sorted table is work[], with that space being provided by
  14644. the caller.
  14645. The length counts are used for other purposes as well, i.e. finding
  14646. the minimum and maximum length codes, determining if there are any
  14647. codes at all, checking for a valid set of lengths, and looking ahead
  14648. at length counts to determine sub-table sizes when building the
  14649. decoding tables.
  14650. */
  14651. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  14652. len1 = uint32(0)
  14653. for {
  14654. if !(len1 <= uint32(m_MAXBITS)) {
  14655. break
  14656. }
  14657. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  14658. goto _1
  14659. _1:
  14660. ;
  14661. len1++
  14662. }
  14663. sym = uint32(0)
  14664. for {
  14665. if !(sym < codes) {
  14666. break
  14667. }
  14668. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  14669. goto _2
  14670. _2:
  14671. ;
  14672. sym++
  14673. }
  14674. /* bound code lengths, force root to be within code lengths */
  14675. root = *(*uint32)(unsafe.Pointer(bits))
  14676. max = uint32(m_MAXBITS)
  14677. for {
  14678. if !(max >= uint32(1)) {
  14679. break
  14680. }
  14681. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  14682. break
  14683. }
  14684. goto _3
  14685. _3:
  14686. ;
  14687. max--
  14688. }
  14689. if root > max {
  14690. root = max
  14691. }
  14692. if max == uint32(0) { /* no symbols to code at all */
  14693. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14694. here.Fbits = libc.Uint8FromInt32(1)
  14695. here.Fval = libc.Uint16FromInt32(0)
  14696. v5 = table
  14697. v4 = *(*uintptr)(unsafe.Pointer(v5))
  14698. *(*uintptr)(unsafe.Pointer(v5)) += 4
  14699. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  14700. v7 = table
  14701. v6 = *(*uintptr)(unsafe.Pointer(v7))
  14702. *(*uintptr)(unsafe.Pointer(v7)) += 4
  14703. *(*Tcode)(unsafe.Pointer(v6)) = here
  14704. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  14705. return 0 /* no symbols, but wait for decoding to report error */
  14706. }
  14707. min = uint32(1)
  14708. for {
  14709. if !(min < max) {
  14710. break
  14711. }
  14712. if libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  14713. break
  14714. }
  14715. goto _8
  14716. _8:
  14717. ;
  14718. min++
  14719. }
  14720. if root < min {
  14721. root = min
  14722. }
  14723. /* check for an over-subscribed or incomplete set of lengths */
  14724. left = int32(1)
  14725. len1 = uint32(1)
  14726. for {
  14727. if !(len1 <= uint32(m_MAXBITS)) {
  14728. break
  14729. }
  14730. left <<= int32(1)
  14731. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  14732. if left < 0 {
  14733. return -int32(1)
  14734. } /* over-subscribed */
  14735. goto _9
  14736. _9:
  14737. ;
  14738. len1++
  14739. }
  14740. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  14741. return -int32(1)
  14742. } /* incomplete set */
  14743. /* generate offsets into symbol table for each length for sorting */
  14744. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  14745. len1 = uint32(1)
  14746. for {
  14747. if !(len1 < uint32(m_MAXBITS)) {
  14748. break
  14749. }
  14750. (*(*[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]))
  14751. goto _10
  14752. _10:
  14753. ;
  14754. len1++
  14755. }
  14756. /* sort symbols by length, by symbol order within each length */
  14757. sym = uint32(0)
  14758. for {
  14759. if !(sym < codes) {
  14760. break
  14761. }
  14762. if libc.Int32FromUint16(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  14763. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  14764. v12 = *(*uint16)(unsafe.Pointer(v13))
  14765. *(*uint16)(unsafe.Pointer(v13))++
  14766. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  14767. }
  14768. goto _11
  14769. _11:
  14770. ;
  14771. sym++
  14772. }
  14773. /*
  14774. Create and fill in decoding tables. In this loop, the table being
  14775. filled is at next and has curr index bits. The code being used is huff
  14776. with length len. That code is converted to an index by dropping drop
  14777. bits off of the bottom. For codes where len is less than drop + curr,
  14778. those top drop + curr - len bits are incremented through all values to
  14779. fill the table with replicated entries.
  14780. root is the number of index bits for the root table. When len exceeds
  14781. root, sub-tables are created pointed to by the root entry with an index
  14782. of the low root bits of huff. This is saved in low to check for when a
  14783. new sub-table should be started. drop is zero when the root table is
  14784. being filled, and drop is root when sub-tables are being filled.
  14785. When a new sub-table is needed, it is necessary to look ahead in the
  14786. code lengths to determine what size sub-table is needed. The length
  14787. counts are used for this, and so count[] is decremented as codes are
  14788. entered in the tables.
  14789. used keeps track of how many table entries have been allocated from the
  14790. provided *table space. It is checked for LENS and DIST tables against
  14791. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  14792. the initial root table size constants. See the comments in inftrees.h
  14793. for more information.
  14794. sym increments through all symbols, and the loop terminates when
  14795. all codes of length max, i.e. all codes, have been processed. This
  14796. routine permits incomplete codes, so another loop after this one fills
  14797. in the rest of the decoding tables with invalid code markers.
  14798. */
  14799. /* set up for code type */
  14800. switch type1 {
  14801. case int32(_CODES):
  14802. v14 = work
  14803. extra = v14
  14804. base = v14 /* dummy value--not used */
  14805. match = uint32(20)
  14806. case int32(_LENS):
  14807. base = uintptr(unsafe.Pointer(&_lbase))
  14808. extra = uintptr(unsafe.Pointer(&_lext))
  14809. match = uint32(257)
  14810. default: /* DISTS */
  14811. base = uintptr(unsafe.Pointer(&_dbase))
  14812. extra = uintptr(unsafe.Pointer(&_dext))
  14813. match = uint32(0)
  14814. }
  14815. /* initialize state for loop */
  14816. huff = uint32(0) /* starting code */
  14817. sym = uint32(0) /* starting code symbol */
  14818. len1 = min /* starting code length */
  14819. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  14820. curr = root /* current table index bits */
  14821. drop = uint32(0) /* current bits to drop from code for index */
  14822. low = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  14823. used = uint32(1) << root /* use root table entries */
  14824. mask = used - uint32(1) /* mask for comparing low */
  14825. /* check available table space */
  14826. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14827. return int32(1)
  14828. }
  14829. /* process all codes and make table entries */
  14830. for {
  14831. /* create table entry */
  14832. here.Fbits = uint8(len1 - drop)
  14833. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  14834. here.Fop = libc.Uint8FromInt32(0)
  14835. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  14836. } else {
  14837. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  14838. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  14839. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  14840. } else {
  14841. here.Fop = libc.Uint8FromInt32(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  14842. here.Fval = uint16(0)
  14843. }
  14844. }
  14845. /* replicate for those indices with low len bits equal to huff */
  14846. incr = uint32(1) << (len1 - drop)
  14847. fill = uint32(1) << curr
  14848. min = fill /* save offset to next table */
  14849. for cond := true; cond; cond = fill != uint32(0) {
  14850. fill -= incr
  14851. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  14852. }
  14853. /* backwards increment the len-bit code huff */
  14854. incr = uint32(1) << (len1 - uint32(1))
  14855. for huff&incr != 0 {
  14856. incr >>= uint32(1)
  14857. }
  14858. if incr != uint32(0) {
  14859. huff &= incr - uint32(1)
  14860. huff += incr
  14861. } else {
  14862. huff = uint32(0)
  14863. }
  14864. /* go to next symbol, update count, len */
  14865. sym++
  14866. v17 = bp + uintptr(len1)*2
  14867. *(*uint16)(unsafe.Pointer(v17))--
  14868. v16 = *(*uint16)(unsafe.Pointer(v17))
  14869. if libc.Int32FromUint16(v16) == 0 {
  14870. if len1 == max {
  14871. break
  14872. }
  14873. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  14874. }
  14875. /* create new sub-table if needed */
  14876. if len1 > root && huff&mask != low {
  14877. /* if first time, transition to sub-tables */
  14878. if drop == uint32(0) {
  14879. drop = root
  14880. }
  14881. /* increment past last table */
  14882. next += uintptr(min) * 4 /* here min is 1 << curr */
  14883. /* determine length of next table */
  14884. curr = len1 - drop
  14885. left = libc.Int32FromInt32(1) << curr
  14886. for curr+drop < max {
  14887. left -= libc.Int32FromUint16((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  14888. if left <= 0 {
  14889. break
  14890. }
  14891. curr++
  14892. left <<= int32(1)
  14893. }
  14894. /* check for enough space */
  14895. used += uint32(1) << curr
  14896. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  14897. return int32(1)
  14898. }
  14899. /* point entry in root table to sub-table */
  14900. low = huff & mask
  14901. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  14902. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  14903. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = libc.Uint16FromInt64((int64(next) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  14904. }
  14905. goto _15
  14906. _15:
  14907. }
  14908. /* fill in remaining table entry if code is incomplete (guaranteed to have
  14909. at most one remaining entry, since if the code is incomplete, the
  14910. maximum code length that was allowed to get this far is one bit) */
  14911. if huff != uint32(0) {
  14912. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  14913. here.Fbits = uint8(len1 - drop)
  14914. here.Fval = libc.Uint16FromInt32(0)
  14915. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  14916. }
  14917. /* set return parameters */
  14918. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  14919. *(*uint32)(unsafe.Pointer(bits)) = root
  14920. return 0
  14921. }
  14922. var _lbase = [31]uint16{
  14923. 0: uint16(3),
  14924. 1: uint16(4),
  14925. 2: uint16(5),
  14926. 3: uint16(6),
  14927. 4: uint16(7),
  14928. 5: uint16(8),
  14929. 6: uint16(9),
  14930. 7: uint16(10),
  14931. 8: uint16(11),
  14932. 9: uint16(13),
  14933. 10: uint16(15),
  14934. 11: uint16(17),
  14935. 12: uint16(19),
  14936. 13: uint16(23),
  14937. 14: uint16(27),
  14938. 15: uint16(31),
  14939. 16: uint16(35),
  14940. 17: uint16(43),
  14941. 18: uint16(51),
  14942. 19: uint16(59),
  14943. 20: uint16(67),
  14944. 21: uint16(83),
  14945. 22: uint16(99),
  14946. 23: uint16(115),
  14947. 24: uint16(131),
  14948. 25: uint16(163),
  14949. 26: uint16(195),
  14950. 27: uint16(227),
  14951. 28: uint16(258),
  14952. }
  14953. var _lext = [31]uint16{
  14954. 0: uint16(16),
  14955. 1: uint16(16),
  14956. 2: uint16(16),
  14957. 3: uint16(16),
  14958. 4: uint16(16),
  14959. 5: uint16(16),
  14960. 6: uint16(16),
  14961. 7: uint16(16),
  14962. 8: uint16(17),
  14963. 9: uint16(17),
  14964. 10: uint16(17),
  14965. 11: uint16(17),
  14966. 12: uint16(18),
  14967. 13: uint16(18),
  14968. 14: uint16(18),
  14969. 15: uint16(18),
  14970. 16: uint16(19),
  14971. 17: uint16(19),
  14972. 18: uint16(19),
  14973. 19: uint16(19),
  14974. 20: uint16(20),
  14975. 21: uint16(20),
  14976. 22: uint16(20),
  14977. 23: uint16(20),
  14978. 24: uint16(21),
  14979. 25: uint16(21),
  14980. 26: uint16(21),
  14981. 27: uint16(21),
  14982. 28: uint16(16),
  14983. 29: uint16(203),
  14984. 30: uint16(77),
  14985. }
  14986. var _dbase = [32]uint16{
  14987. 0: uint16(1),
  14988. 1: uint16(2),
  14989. 2: uint16(3),
  14990. 3: uint16(4),
  14991. 4: uint16(5),
  14992. 5: uint16(7),
  14993. 6: uint16(9),
  14994. 7: uint16(13),
  14995. 8: uint16(17),
  14996. 9: uint16(25),
  14997. 10: uint16(33),
  14998. 11: uint16(49),
  14999. 12: uint16(65),
  15000. 13: uint16(97),
  15001. 14: uint16(129),
  15002. 15: uint16(193),
  15003. 16: uint16(257),
  15004. 17: uint16(385),
  15005. 18: uint16(513),
  15006. 19: uint16(769),
  15007. 20: uint16(1025),
  15008. 21: uint16(1537),
  15009. 22: uint16(2049),
  15010. 23: uint16(3073),
  15011. 24: uint16(4097),
  15012. 25: uint16(6145),
  15013. 26: uint16(8193),
  15014. 27: uint16(12289),
  15015. 28: uint16(16385),
  15016. 29: uint16(24577),
  15017. }
  15018. var _dext = [32]uint16{
  15019. 0: uint16(16),
  15020. 1: uint16(16),
  15021. 2: uint16(16),
  15022. 3: uint16(16),
  15023. 4: uint16(17),
  15024. 5: uint16(17),
  15025. 6: uint16(18),
  15026. 7: uint16(18),
  15027. 8: uint16(19),
  15028. 9: uint16(19),
  15029. 10: uint16(20),
  15030. 11: uint16(20),
  15031. 12: uint16(21),
  15032. 13: uint16(21),
  15033. 14: uint16(22),
  15034. 15: uint16(22),
  15035. 16: uint16(23),
  15036. 17: uint16(23),
  15037. 18: uint16(24),
  15038. 19: uint16(24),
  15039. 20: uint16(25),
  15040. 21: uint16(25),
  15041. 22: uint16(26),
  15042. 23: uint16(26),
  15043. 24: uint16(27),
  15044. 25: uint16(27),
  15045. 26: uint16(28),
  15046. 27: uint16(28),
  15047. 28: uint16(29),
  15048. 29: uint16(29),
  15049. 30: uint16(64),
  15050. 31: uint16(64),
  15051. }
  15052. const m_DIST_CODE_LEN = 512
  15053. const m_END_BLOCK = 256
  15054. const m_MAX_BL_BITS = 7
  15055. const m_REPZ_11_138 = 18
  15056. const m_REPZ_3_10 = 17
  15057. const m_REP_3_6 = 16
  15058. const m_SMALLEST = 1
  15059. const m_TCONST = "const"
  15060. type Tstatic_tree_desc = struct {
  15061. Fstatic_tree uintptr
  15062. Fextra_bits uintptr
  15063. Fextra_base int32
  15064. Felems int32
  15065. Fmax_length int32
  15066. }
  15067. type Tstatic_tree_desc_s = Tstatic_tree_desc
  15068. /* ===========================================================================
  15069. * Constants
  15070. */
  15071. /* Bit length codes must not exceed MAX_BL_BITS bits */
  15072. /* end of block literal code */
  15073. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  15074. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  15075. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  15076. var _extra_lbits = [29]int32{
  15077. 8: int32(1),
  15078. 9: int32(1),
  15079. 10: int32(1),
  15080. 11: int32(1),
  15081. 12: int32(2),
  15082. 13: int32(2),
  15083. 14: int32(2),
  15084. 15: int32(2),
  15085. 16: int32(3),
  15086. 17: int32(3),
  15087. 18: int32(3),
  15088. 19: int32(3),
  15089. 20: int32(4),
  15090. 21: int32(4),
  15091. 22: int32(4),
  15092. 23: int32(4),
  15093. 24: int32(5),
  15094. 25: int32(5),
  15095. 26: int32(5),
  15096. 27: int32(5),
  15097. }
  15098. var _extra_dbits = [30]int32{
  15099. 4: int32(1),
  15100. 5: int32(1),
  15101. 6: int32(2),
  15102. 7: int32(2),
  15103. 8: int32(3),
  15104. 9: int32(3),
  15105. 10: int32(4),
  15106. 11: int32(4),
  15107. 12: int32(5),
  15108. 13: int32(5),
  15109. 14: int32(6),
  15110. 15: int32(6),
  15111. 16: int32(7),
  15112. 17: int32(7),
  15113. 18: int32(8),
  15114. 19: int32(8),
  15115. 20: int32(9),
  15116. 21: int32(9),
  15117. 22: int32(10),
  15118. 23: int32(10),
  15119. 24: int32(11),
  15120. 25: int32(11),
  15121. 26: int32(12),
  15122. 27: int32(12),
  15123. 28: int32(13),
  15124. 29: int32(13),
  15125. }
  15126. var _extra_blbits = [19]int32{
  15127. 16: int32(2),
  15128. 17: int32(3),
  15129. 18: int32(7),
  15130. }
  15131. var _bl_order = [19]Tuch{
  15132. 0: uint8(16),
  15133. 1: uint8(17),
  15134. 2: uint8(18),
  15135. 4: uint8(8),
  15136. 5: uint8(7),
  15137. 6: uint8(9),
  15138. 7: uint8(6),
  15139. 8: uint8(10),
  15140. 9: uint8(5),
  15141. 10: uint8(11),
  15142. 11: uint8(4),
  15143. 12: uint8(12),
  15144. 13: uint8(3),
  15145. 14: uint8(13),
  15146. 15: uint8(2),
  15147. 16: uint8(14),
  15148. 17: uint8(1),
  15149. 18: uint8(15),
  15150. }
  15151. var _static_ltree = [288]Tct_data{
  15152. 0: {
  15153. Ffc: *(*struct {
  15154. Fcode [0]Tush
  15155. Ffreq Tush
  15156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  15157. Fdl: *(*struct {
  15158. Flen1 [0]Tush
  15159. Fdad Tush
  15160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15161. },
  15162. 1: {
  15163. Ffc: *(*struct {
  15164. Fcode [0]Tush
  15165. Ffreq Tush
  15166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  15167. Fdl: *(*struct {
  15168. Flen1 [0]Tush
  15169. Fdad Tush
  15170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15171. },
  15172. 2: {
  15173. Ffc: *(*struct {
  15174. Fcode [0]Tush
  15175. Ffreq Tush
  15176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  15177. Fdl: *(*struct {
  15178. Flen1 [0]Tush
  15179. Fdad Tush
  15180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15181. },
  15182. 3: {
  15183. Ffc: *(*struct {
  15184. Fcode [0]Tush
  15185. Ffreq Tush
  15186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  15187. Fdl: *(*struct {
  15188. Flen1 [0]Tush
  15189. Fdad Tush
  15190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15191. },
  15192. 4: {
  15193. Ffc: *(*struct {
  15194. Fcode [0]Tush
  15195. Ffreq Tush
  15196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  15197. Fdl: *(*struct {
  15198. Flen1 [0]Tush
  15199. Fdad Tush
  15200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15201. },
  15202. 5: {
  15203. Ffc: *(*struct {
  15204. Fcode [0]Tush
  15205. Ffreq Tush
  15206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  15207. Fdl: *(*struct {
  15208. Flen1 [0]Tush
  15209. Fdad Tush
  15210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15211. },
  15212. 6: {
  15213. Ffc: *(*struct {
  15214. Fcode [0]Tush
  15215. Ffreq Tush
  15216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  15217. Fdl: *(*struct {
  15218. Flen1 [0]Tush
  15219. Fdad Tush
  15220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15221. },
  15222. 7: {
  15223. Ffc: *(*struct {
  15224. Fcode [0]Tush
  15225. Ffreq Tush
  15226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  15227. Fdl: *(*struct {
  15228. Flen1 [0]Tush
  15229. Fdad Tush
  15230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15231. },
  15232. 8: {
  15233. Ffc: *(*struct {
  15234. Fcode [0]Tush
  15235. Ffreq Tush
  15236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  15237. Fdl: *(*struct {
  15238. Flen1 [0]Tush
  15239. Fdad Tush
  15240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15241. },
  15242. 9: {
  15243. Ffc: *(*struct {
  15244. Fcode [0]Tush
  15245. Ffreq Tush
  15246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  15247. Fdl: *(*struct {
  15248. Flen1 [0]Tush
  15249. Fdad Tush
  15250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15251. },
  15252. 10: {
  15253. Ffc: *(*struct {
  15254. Fcode [0]Tush
  15255. Ffreq Tush
  15256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  15257. Fdl: *(*struct {
  15258. Flen1 [0]Tush
  15259. Fdad Tush
  15260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15261. },
  15262. 11: {
  15263. Ffc: *(*struct {
  15264. Fcode [0]Tush
  15265. Ffreq Tush
  15266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  15267. Fdl: *(*struct {
  15268. Flen1 [0]Tush
  15269. Fdad Tush
  15270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15271. },
  15272. 12: {
  15273. Ffc: *(*struct {
  15274. Fcode [0]Tush
  15275. Ffreq Tush
  15276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  15277. Fdl: *(*struct {
  15278. Flen1 [0]Tush
  15279. Fdad Tush
  15280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15281. },
  15282. 13: {
  15283. Ffc: *(*struct {
  15284. Fcode [0]Tush
  15285. Ffreq Tush
  15286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  15287. Fdl: *(*struct {
  15288. Flen1 [0]Tush
  15289. Fdad Tush
  15290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15291. },
  15292. 14: {
  15293. Ffc: *(*struct {
  15294. Fcode [0]Tush
  15295. Ffreq Tush
  15296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  15297. Fdl: *(*struct {
  15298. Flen1 [0]Tush
  15299. Fdad Tush
  15300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15301. },
  15302. 15: {
  15303. Ffc: *(*struct {
  15304. Fcode [0]Tush
  15305. Ffreq Tush
  15306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  15307. Fdl: *(*struct {
  15308. Flen1 [0]Tush
  15309. Fdad Tush
  15310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15311. },
  15312. 16: {
  15313. Ffc: *(*struct {
  15314. Fcode [0]Tush
  15315. Ffreq Tush
  15316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  15317. Fdl: *(*struct {
  15318. Flen1 [0]Tush
  15319. Fdad Tush
  15320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15321. },
  15322. 17: {
  15323. Ffc: *(*struct {
  15324. Fcode [0]Tush
  15325. Ffreq Tush
  15326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  15327. Fdl: *(*struct {
  15328. Flen1 [0]Tush
  15329. Fdad Tush
  15330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15331. },
  15332. 18: {
  15333. Ffc: *(*struct {
  15334. Fcode [0]Tush
  15335. Ffreq Tush
  15336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  15337. Fdl: *(*struct {
  15338. Flen1 [0]Tush
  15339. Fdad Tush
  15340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15341. },
  15342. 19: {
  15343. Ffc: *(*struct {
  15344. Fcode [0]Tush
  15345. Ffreq Tush
  15346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  15347. Fdl: *(*struct {
  15348. Flen1 [0]Tush
  15349. Fdad Tush
  15350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15351. },
  15352. 20: {
  15353. Ffc: *(*struct {
  15354. Fcode [0]Tush
  15355. Ffreq Tush
  15356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  15357. Fdl: *(*struct {
  15358. Flen1 [0]Tush
  15359. Fdad Tush
  15360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15361. },
  15362. 21: {
  15363. Ffc: *(*struct {
  15364. Fcode [0]Tush
  15365. Ffreq Tush
  15366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  15367. Fdl: *(*struct {
  15368. Flen1 [0]Tush
  15369. Fdad Tush
  15370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15371. },
  15372. 22: {
  15373. Ffc: *(*struct {
  15374. Fcode [0]Tush
  15375. Ffreq Tush
  15376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  15377. Fdl: *(*struct {
  15378. Flen1 [0]Tush
  15379. Fdad Tush
  15380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15381. },
  15382. 23: {
  15383. Ffc: *(*struct {
  15384. Fcode [0]Tush
  15385. Ffreq Tush
  15386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  15387. Fdl: *(*struct {
  15388. Flen1 [0]Tush
  15389. Fdad Tush
  15390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15391. },
  15392. 24: {
  15393. Ffc: *(*struct {
  15394. Fcode [0]Tush
  15395. Ffreq Tush
  15396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  15397. Fdl: *(*struct {
  15398. Flen1 [0]Tush
  15399. Fdad Tush
  15400. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15401. },
  15402. 25: {
  15403. Ffc: *(*struct {
  15404. Fcode [0]Tush
  15405. Ffreq Tush
  15406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  15407. Fdl: *(*struct {
  15408. Flen1 [0]Tush
  15409. Fdad Tush
  15410. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15411. },
  15412. 26: {
  15413. Ffc: *(*struct {
  15414. Fcode [0]Tush
  15415. Ffreq Tush
  15416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  15417. Fdl: *(*struct {
  15418. Flen1 [0]Tush
  15419. Fdad Tush
  15420. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15421. },
  15422. 27: {
  15423. Ffc: *(*struct {
  15424. Fcode [0]Tush
  15425. Ffreq Tush
  15426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  15427. Fdl: *(*struct {
  15428. Flen1 [0]Tush
  15429. Fdad Tush
  15430. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15431. },
  15432. 28: {
  15433. Ffc: *(*struct {
  15434. Fcode [0]Tush
  15435. Ffreq Tush
  15436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  15437. Fdl: *(*struct {
  15438. Flen1 [0]Tush
  15439. Fdad Tush
  15440. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15441. },
  15442. 29: {
  15443. Ffc: *(*struct {
  15444. Fcode [0]Tush
  15445. Ffreq Tush
  15446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  15447. Fdl: *(*struct {
  15448. Flen1 [0]Tush
  15449. Fdad Tush
  15450. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15451. },
  15452. 30: {
  15453. Ffc: *(*struct {
  15454. Fcode [0]Tush
  15455. Ffreq Tush
  15456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  15457. Fdl: *(*struct {
  15458. Flen1 [0]Tush
  15459. Fdad Tush
  15460. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15461. },
  15462. 31: {
  15463. Ffc: *(*struct {
  15464. Fcode [0]Tush
  15465. Ffreq Tush
  15466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  15467. Fdl: *(*struct {
  15468. Flen1 [0]Tush
  15469. Fdad Tush
  15470. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15471. },
  15472. 32: {
  15473. Ffc: *(*struct {
  15474. Fcode [0]Tush
  15475. Ffreq Tush
  15476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  15477. Fdl: *(*struct {
  15478. Flen1 [0]Tush
  15479. Fdad Tush
  15480. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15481. },
  15482. 33: {
  15483. Ffc: *(*struct {
  15484. Fcode [0]Tush
  15485. Ffreq Tush
  15486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  15487. Fdl: *(*struct {
  15488. Flen1 [0]Tush
  15489. Fdad Tush
  15490. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15491. },
  15492. 34: {
  15493. Ffc: *(*struct {
  15494. Fcode [0]Tush
  15495. Ffreq Tush
  15496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  15497. Fdl: *(*struct {
  15498. Flen1 [0]Tush
  15499. Fdad Tush
  15500. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15501. },
  15502. 35: {
  15503. Ffc: *(*struct {
  15504. Fcode [0]Tush
  15505. Ffreq Tush
  15506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  15507. Fdl: *(*struct {
  15508. Flen1 [0]Tush
  15509. Fdad Tush
  15510. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15511. },
  15512. 36: {
  15513. Ffc: *(*struct {
  15514. Fcode [0]Tush
  15515. Ffreq Tush
  15516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  15517. Fdl: *(*struct {
  15518. Flen1 [0]Tush
  15519. Fdad Tush
  15520. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15521. },
  15522. 37: {
  15523. Ffc: *(*struct {
  15524. Fcode [0]Tush
  15525. Ffreq Tush
  15526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  15527. Fdl: *(*struct {
  15528. Flen1 [0]Tush
  15529. Fdad Tush
  15530. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15531. },
  15532. 38: {
  15533. Ffc: *(*struct {
  15534. Fcode [0]Tush
  15535. Ffreq Tush
  15536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  15537. Fdl: *(*struct {
  15538. Flen1 [0]Tush
  15539. Fdad Tush
  15540. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15541. },
  15542. 39: {
  15543. Ffc: *(*struct {
  15544. Fcode [0]Tush
  15545. Ffreq Tush
  15546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  15547. Fdl: *(*struct {
  15548. Flen1 [0]Tush
  15549. Fdad Tush
  15550. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15551. },
  15552. 40: {
  15553. Ffc: *(*struct {
  15554. Fcode [0]Tush
  15555. Ffreq Tush
  15556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  15557. Fdl: *(*struct {
  15558. Flen1 [0]Tush
  15559. Fdad Tush
  15560. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15561. },
  15562. 41: {
  15563. Ffc: *(*struct {
  15564. Fcode [0]Tush
  15565. Ffreq Tush
  15566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  15567. Fdl: *(*struct {
  15568. Flen1 [0]Tush
  15569. Fdad Tush
  15570. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15571. },
  15572. 42: {
  15573. Ffc: *(*struct {
  15574. Fcode [0]Tush
  15575. Ffreq Tush
  15576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  15577. Fdl: *(*struct {
  15578. Flen1 [0]Tush
  15579. Fdad Tush
  15580. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15581. },
  15582. 43: {
  15583. Ffc: *(*struct {
  15584. Fcode [0]Tush
  15585. Ffreq Tush
  15586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  15587. Fdl: *(*struct {
  15588. Flen1 [0]Tush
  15589. Fdad Tush
  15590. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15591. },
  15592. 44: {
  15593. Ffc: *(*struct {
  15594. Fcode [0]Tush
  15595. Ffreq Tush
  15596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  15597. Fdl: *(*struct {
  15598. Flen1 [0]Tush
  15599. Fdad Tush
  15600. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15601. },
  15602. 45: {
  15603. Ffc: *(*struct {
  15604. Fcode [0]Tush
  15605. Ffreq Tush
  15606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  15607. Fdl: *(*struct {
  15608. Flen1 [0]Tush
  15609. Fdad Tush
  15610. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15611. },
  15612. 46: {
  15613. Ffc: *(*struct {
  15614. Fcode [0]Tush
  15615. Ffreq Tush
  15616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  15617. Fdl: *(*struct {
  15618. Flen1 [0]Tush
  15619. Fdad Tush
  15620. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15621. },
  15622. 47: {
  15623. Ffc: *(*struct {
  15624. Fcode [0]Tush
  15625. Ffreq Tush
  15626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  15627. Fdl: *(*struct {
  15628. Flen1 [0]Tush
  15629. Fdad Tush
  15630. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15631. },
  15632. 48: {
  15633. Ffc: *(*struct {
  15634. Fcode [0]Tush
  15635. Ffreq Tush
  15636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  15637. Fdl: *(*struct {
  15638. Flen1 [0]Tush
  15639. Fdad Tush
  15640. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15641. },
  15642. 49: {
  15643. Ffc: *(*struct {
  15644. Fcode [0]Tush
  15645. Ffreq Tush
  15646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  15647. Fdl: *(*struct {
  15648. Flen1 [0]Tush
  15649. Fdad Tush
  15650. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15651. },
  15652. 50: {
  15653. Ffc: *(*struct {
  15654. Fcode [0]Tush
  15655. Ffreq Tush
  15656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  15657. Fdl: *(*struct {
  15658. Flen1 [0]Tush
  15659. Fdad Tush
  15660. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15661. },
  15662. 51: {
  15663. Ffc: *(*struct {
  15664. Fcode [0]Tush
  15665. Ffreq Tush
  15666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  15667. Fdl: *(*struct {
  15668. Flen1 [0]Tush
  15669. Fdad Tush
  15670. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15671. },
  15672. 52: {
  15673. Ffc: *(*struct {
  15674. Fcode [0]Tush
  15675. Ffreq Tush
  15676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  15677. Fdl: *(*struct {
  15678. Flen1 [0]Tush
  15679. Fdad Tush
  15680. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15681. },
  15682. 53: {
  15683. Ffc: *(*struct {
  15684. Fcode [0]Tush
  15685. Ffreq Tush
  15686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  15687. Fdl: *(*struct {
  15688. Flen1 [0]Tush
  15689. Fdad Tush
  15690. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15691. },
  15692. 54: {
  15693. Ffc: *(*struct {
  15694. Fcode [0]Tush
  15695. Ffreq Tush
  15696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  15697. Fdl: *(*struct {
  15698. Flen1 [0]Tush
  15699. Fdad Tush
  15700. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15701. },
  15702. 55: {
  15703. Ffc: *(*struct {
  15704. Fcode [0]Tush
  15705. Ffreq Tush
  15706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  15707. Fdl: *(*struct {
  15708. Flen1 [0]Tush
  15709. Fdad Tush
  15710. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15711. },
  15712. 56: {
  15713. Ffc: *(*struct {
  15714. Fcode [0]Tush
  15715. Ffreq Tush
  15716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  15717. Fdl: *(*struct {
  15718. Flen1 [0]Tush
  15719. Fdad Tush
  15720. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15721. },
  15722. 57: {
  15723. Ffc: *(*struct {
  15724. Fcode [0]Tush
  15725. Ffreq Tush
  15726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  15727. Fdl: *(*struct {
  15728. Flen1 [0]Tush
  15729. Fdad Tush
  15730. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15731. },
  15732. 58: {
  15733. Ffc: *(*struct {
  15734. Fcode [0]Tush
  15735. Ffreq Tush
  15736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  15737. Fdl: *(*struct {
  15738. Flen1 [0]Tush
  15739. Fdad Tush
  15740. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15741. },
  15742. 59: {
  15743. Ffc: *(*struct {
  15744. Fcode [0]Tush
  15745. Ffreq Tush
  15746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  15747. Fdl: *(*struct {
  15748. Flen1 [0]Tush
  15749. Fdad Tush
  15750. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15751. },
  15752. 60: {
  15753. Ffc: *(*struct {
  15754. Fcode [0]Tush
  15755. Ffreq Tush
  15756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  15757. Fdl: *(*struct {
  15758. Flen1 [0]Tush
  15759. Fdad Tush
  15760. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15761. },
  15762. 61: {
  15763. Ffc: *(*struct {
  15764. Fcode [0]Tush
  15765. Ffreq Tush
  15766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  15767. Fdl: *(*struct {
  15768. Flen1 [0]Tush
  15769. Fdad Tush
  15770. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15771. },
  15772. 62: {
  15773. Ffc: *(*struct {
  15774. Fcode [0]Tush
  15775. Ffreq Tush
  15776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  15777. Fdl: *(*struct {
  15778. Flen1 [0]Tush
  15779. Fdad Tush
  15780. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15781. },
  15782. 63: {
  15783. Ffc: *(*struct {
  15784. Fcode [0]Tush
  15785. Ffreq Tush
  15786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  15787. Fdl: *(*struct {
  15788. Flen1 [0]Tush
  15789. Fdad Tush
  15790. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15791. },
  15792. 64: {
  15793. Ffc: *(*struct {
  15794. Fcode [0]Tush
  15795. Ffreq Tush
  15796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  15797. Fdl: *(*struct {
  15798. Flen1 [0]Tush
  15799. Fdad Tush
  15800. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15801. },
  15802. 65: {
  15803. Ffc: *(*struct {
  15804. Fcode [0]Tush
  15805. Ffreq Tush
  15806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  15807. Fdl: *(*struct {
  15808. Flen1 [0]Tush
  15809. Fdad Tush
  15810. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15811. },
  15812. 66: {
  15813. Ffc: *(*struct {
  15814. Fcode [0]Tush
  15815. Ffreq Tush
  15816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  15817. Fdl: *(*struct {
  15818. Flen1 [0]Tush
  15819. Fdad Tush
  15820. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15821. },
  15822. 67: {
  15823. Ffc: *(*struct {
  15824. Fcode [0]Tush
  15825. Ffreq Tush
  15826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  15827. Fdl: *(*struct {
  15828. Flen1 [0]Tush
  15829. Fdad Tush
  15830. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15831. },
  15832. 68: {
  15833. Ffc: *(*struct {
  15834. Fcode [0]Tush
  15835. Ffreq Tush
  15836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  15837. Fdl: *(*struct {
  15838. Flen1 [0]Tush
  15839. Fdad Tush
  15840. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15841. },
  15842. 69: {
  15843. Ffc: *(*struct {
  15844. Fcode [0]Tush
  15845. Ffreq Tush
  15846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  15847. Fdl: *(*struct {
  15848. Flen1 [0]Tush
  15849. Fdad Tush
  15850. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15851. },
  15852. 70: {
  15853. Ffc: *(*struct {
  15854. Fcode [0]Tush
  15855. Ffreq Tush
  15856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  15857. Fdl: *(*struct {
  15858. Flen1 [0]Tush
  15859. Fdad Tush
  15860. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15861. },
  15862. 71: {
  15863. Ffc: *(*struct {
  15864. Fcode [0]Tush
  15865. Ffreq Tush
  15866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  15867. Fdl: *(*struct {
  15868. Flen1 [0]Tush
  15869. Fdad Tush
  15870. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15871. },
  15872. 72: {
  15873. Ffc: *(*struct {
  15874. Fcode [0]Tush
  15875. Ffreq Tush
  15876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  15877. Fdl: *(*struct {
  15878. Flen1 [0]Tush
  15879. Fdad Tush
  15880. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15881. },
  15882. 73: {
  15883. Ffc: *(*struct {
  15884. Fcode [0]Tush
  15885. Ffreq Tush
  15886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  15887. Fdl: *(*struct {
  15888. Flen1 [0]Tush
  15889. Fdad Tush
  15890. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15891. },
  15892. 74: {
  15893. Ffc: *(*struct {
  15894. Fcode [0]Tush
  15895. Ffreq Tush
  15896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  15897. Fdl: *(*struct {
  15898. Flen1 [0]Tush
  15899. Fdad Tush
  15900. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15901. },
  15902. 75: {
  15903. Ffc: *(*struct {
  15904. Fcode [0]Tush
  15905. Ffreq Tush
  15906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  15907. Fdl: *(*struct {
  15908. Flen1 [0]Tush
  15909. Fdad Tush
  15910. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15911. },
  15912. 76: {
  15913. Ffc: *(*struct {
  15914. Fcode [0]Tush
  15915. Ffreq Tush
  15916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  15917. Fdl: *(*struct {
  15918. Flen1 [0]Tush
  15919. Fdad Tush
  15920. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15921. },
  15922. 77: {
  15923. Ffc: *(*struct {
  15924. Fcode [0]Tush
  15925. Ffreq Tush
  15926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  15927. Fdl: *(*struct {
  15928. Flen1 [0]Tush
  15929. Fdad Tush
  15930. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15931. },
  15932. 78: {
  15933. Ffc: *(*struct {
  15934. Fcode [0]Tush
  15935. Ffreq Tush
  15936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  15937. Fdl: *(*struct {
  15938. Flen1 [0]Tush
  15939. Fdad Tush
  15940. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15941. },
  15942. 79: {
  15943. Ffc: *(*struct {
  15944. Fcode [0]Tush
  15945. Ffreq Tush
  15946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  15947. Fdl: *(*struct {
  15948. Flen1 [0]Tush
  15949. Fdad Tush
  15950. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15951. },
  15952. 80: {
  15953. Ffc: *(*struct {
  15954. Fcode [0]Tush
  15955. Ffreq Tush
  15956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  15957. Fdl: *(*struct {
  15958. Flen1 [0]Tush
  15959. Fdad Tush
  15960. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15961. },
  15962. 81: {
  15963. Ffc: *(*struct {
  15964. Fcode [0]Tush
  15965. Ffreq Tush
  15966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  15967. Fdl: *(*struct {
  15968. Flen1 [0]Tush
  15969. Fdad Tush
  15970. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15971. },
  15972. 82: {
  15973. Ffc: *(*struct {
  15974. Fcode [0]Tush
  15975. Ffreq Tush
  15976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  15977. Fdl: *(*struct {
  15978. Flen1 [0]Tush
  15979. Fdad Tush
  15980. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15981. },
  15982. 83: {
  15983. Ffc: *(*struct {
  15984. Fcode [0]Tush
  15985. Ffreq Tush
  15986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  15987. Fdl: *(*struct {
  15988. Flen1 [0]Tush
  15989. Fdad Tush
  15990. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  15991. },
  15992. 84: {
  15993. Ffc: *(*struct {
  15994. Fcode [0]Tush
  15995. Ffreq Tush
  15996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  15997. Fdl: *(*struct {
  15998. Flen1 [0]Tush
  15999. Fdad Tush
  16000. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16001. },
  16002. 85: {
  16003. Ffc: *(*struct {
  16004. Fcode [0]Tush
  16005. Ffreq Tush
  16006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  16007. Fdl: *(*struct {
  16008. Flen1 [0]Tush
  16009. Fdad Tush
  16010. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16011. },
  16012. 86: {
  16013. Ffc: *(*struct {
  16014. Fcode [0]Tush
  16015. Ffreq Tush
  16016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  16017. Fdl: *(*struct {
  16018. Flen1 [0]Tush
  16019. Fdad Tush
  16020. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16021. },
  16022. 87: {
  16023. Ffc: *(*struct {
  16024. Fcode [0]Tush
  16025. Ffreq Tush
  16026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  16027. Fdl: *(*struct {
  16028. Flen1 [0]Tush
  16029. Fdad Tush
  16030. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16031. },
  16032. 88: {
  16033. Ffc: *(*struct {
  16034. Fcode [0]Tush
  16035. Ffreq Tush
  16036. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  16037. Fdl: *(*struct {
  16038. Flen1 [0]Tush
  16039. Fdad Tush
  16040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16041. },
  16042. 89: {
  16043. Ffc: *(*struct {
  16044. Fcode [0]Tush
  16045. Ffreq Tush
  16046. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  16047. Fdl: *(*struct {
  16048. Flen1 [0]Tush
  16049. Fdad Tush
  16050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16051. },
  16052. 90: {
  16053. Ffc: *(*struct {
  16054. Fcode [0]Tush
  16055. Ffreq Tush
  16056. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  16057. Fdl: *(*struct {
  16058. Flen1 [0]Tush
  16059. Fdad Tush
  16060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16061. },
  16062. 91: {
  16063. Ffc: *(*struct {
  16064. Fcode [0]Tush
  16065. Ffreq Tush
  16066. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  16067. Fdl: *(*struct {
  16068. Flen1 [0]Tush
  16069. Fdad Tush
  16070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16071. },
  16072. 92: {
  16073. Ffc: *(*struct {
  16074. Fcode [0]Tush
  16075. Ffreq Tush
  16076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  16077. Fdl: *(*struct {
  16078. Flen1 [0]Tush
  16079. Fdad Tush
  16080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16081. },
  16082. 93: {
  16083. Ffc: *(*struct {
  16084. Fcode [0]Tush
  16085. Ffreq Tush
  16086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  16087. Fdl: *(*struct {
  16088. Flen1 [0]Tush
  16089. Fdad Tush
  16090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16091. },
  16092. 94: {
  16093. Ffc: *(*struct {
  16094. Fcode [0]Tush
  16095. Ffreq Tush
  16096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  16097. Fdl: *(*struct {
  16098. Flen1 [0]Tush
  16099. Fdad Tush
  16100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16101. },
  16102. 95: {
  16103. Ffc: *(*struct {
  16104. Fcode [0]Tush
  16105. Ffreq Tush
  16106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  16107. Fdl: *(*struct {
  16108. Flen1 [0]Tush
  16109. Fdad Tush
  16110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16111. },
  16112. 96: {
  16113. Ffc: *(*struct {
  16114. Fcode [0]Tush
  16115. Ffreq Tush
  16116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16117. Fdl: *(*struct {
  16118. Flen1 [0]Tush
  16119. Fdad Tush
  16120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16121. },
  16122. 97: {
  16123. Ffc: *(*struct {
  16124. Fcode [0]Tush
  16125. Ffreq Tush
  16126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  16127. Fdl: *(*struct {
  16128. Flen1 [0]Tush
  16129. Fdad Tush
  16130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16131. },
  16132. 98: {
  16133. Ffc: *(*struct {
  16134. Fcode [0]Tush
  16135. Ffreq Tush
  16136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  16137. Fdl: *(*struct {
  16138. Flen1 [0]Tush
  16139. Fdad Tush
  16140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16141. },
  16142. 99: {
  16143. Ffc: *(*struct {
  16144. Fcode [0]Tush
  16145. Ffreq Tush
  16146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  16147. Fdl: *(*struct {
  16148. Flen1 [0]Tush
  16149. Fdad Tush
  16150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16151. },
  16152. 100: {
  16153. Ffc: *(*struct {
  16154. Fcode [0]Tush
  16155. Ffreq Tush
  16156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  16157. Fdl: *(*struct {
  16158. Flen1 [0]Tush
  16159. Fdad Tush
  16160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16161. },
  16162. 101: {
  16163. Ffc: *(*struct {
  16164. Fcode [0]Tush
  16165. Ffreq Tush
  16166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  16167. Fdl: *(*struct {
  16168. Flen1 [0]Tush
  16169. Fdad Tush
  16170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16171. },
  16172. 102: {
  16173. Ffc: *(*struct {
  16174. Fcode [0]Tush
  16175. Ffreq Tush
  16176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  16177. Fdl: *(*struct {
  16178. Flen1 [0]Tush
  16179. Fdad Tush
  16180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16181. },
  16182. 103: {
  16183. Ffc: *(*struct {
  16184. Fcode [0]Tush
  16185. Ffreq Tush
  16186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  16187. Fdl: *(*struct {
  16188. Flen1 [0]Tush
  16189. Fdad Tush
  16190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16191. },
  16192. 104: {
  16193. Ffc: *(*struct {
  16194. Fcode [0]Tush
  16195. Ffreq Tush
  16196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  16197. Fdl: *(*struct {
  16198. Flen1 [0]Tush
  16199. Fdad Tush
  16200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16201. },
  16202. 105: {
  16203. Ffc: *(*struct {
  16204. Fcode [0]Tush
  16205. Ffreq Tush
  16206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  16207. Fdl: *(*struct {
  16208. Flen1 [0]Tush
  16209. Fdad Tush
  16210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16211. },
  16212. 106: {
  16213. Ffc: *(*struct {
  16214. Fcode [0]Tush
  16215. Ffreq Tush
  16216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  16217. Fdl: *(*struct {
  16218. Flen1 [0]Tush
  16219. Fdad Tush
  16220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16221. },
  16222. 107: {
  16223. Ffc: *(*struct {
  16224. Fcode [0]Tush
  16225. Ffreq Tush
  16226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  16227. Fdl: *(*struct {
  16228. Flen1 [0]Tush
  16229. Fdad Tush
  16230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16231. },
  16232. 108: {
  16233. Ffc: *(*struct {
  16234. Fcode [0]Tush
  16235. Ffreq Tush
  16236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  16237. Fdl: *(*struct {
  16238. Flen1 [0]Tush
  16239. Fdad Tush
  16240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16241. },
  16242. 109: {
  16243. Ffc: *(*struct {
  16244. Fcode [0]Tush
  16245. Ffreq Tush
  16246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  16247. Fdl: *(*struct {
  16248. Flen1 [0]Tush
  16249. Fdad Tush
  16250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16251. },
  16252. 110: {
  16253. Ffc: *(*struct {
  16254. Fcode [0]Tush
  16255. Ffreq Tush
  16256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  16257. Fdl: *(*struct {
  16258. Flen1 [0]Tush
  16259. Fdad Tush
  16260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16261. },
  16262. 111: {
  16263. Ffc: *(*struct {
  16264. Fcode [0]Tush
  16265. Ffreq Tush
  16266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  16267. Fdl: *(*struct {
  16268. Flen1 [0]Tush
  16269. Fdad Tush
  16270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16271. },
  16272. 112: {
  16273. Ffc: *(*struct {
  16274. Fcode [0]Tush
  16275. Ffreq Tush
  16276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  16277. Fdl: *(*struct {
  16278. Flen1 [0]Tush
  16279. Fdad Tush
  16280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16281. },
  16282. 113: {
  16283. Ffc: *(*struct {
  16284. Fcode [0]Tush
  16285. Ffreq Tush
  16286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  16287. Fdl: *(*struct {
  16288. Flen1 [0]Tush
  16289. Fdad Tush
  16290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16291. },
  16292. 114: {
  16293. Ffc: *(*struct {
  16294. Fcode [0]Tush
  16295. Ffreq Tush
  16296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  16297. Fdl: *(*struct {
  16298. Flen1 [0]Tush
  16299. Fdad Tush
  16300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16301. },
  16302. 115: {
  16303. Ffc: *(*struct {
  16304. Fcode [0]Tush
  16305. Ffreq Tush
  16306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  16307. Fdl: *(*struct {
  16308. Flen1 [0]Tush
  16309. Fdad Tush
  16310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16311. },
  16312. 116: {
  16313. Ffc: *(*struct {
  16314. Fcode [0]Tush
  16315. Ffreq Tush
  16316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  16317. Fdl: *(*struct {
  16318. Flen1 [0]Tush
  16319. Fdad Tush
  16320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16321. },
  16322. 117: {
  16323. Ffc: *(*struct {
  16324. Fcode [0]Tush
  16325. Ffreq Tush
  16326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  16327. Fdl: *(*struct {
  16328. Flen1 [0]Tush
  16329. Fdad Tush
  16330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16331. },
  16332. 118: {
  16333. Ffc: *(*struct {
  16334. Fcode [0]Tush
  16335. Ffreq Tush
  16336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  16337. Fdl: *(*struct {
  16338. Flen1 [0]Tush
  16339. Fdad Tush
  16340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16341. },
  16342. 119: {
  16343. Ffc: *(*struct {
  16344. Fcode [0]Tush
  16345. Ffreq Tush
  16346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  16347. Fdl: *(*struct {
  16348. Flen1 [0]Tush
  16349. Fdad Tush
  16350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16351. },
  16352. 120: {
  16353. Ffc: *(*struct {
  16354. Fcode [0]Tush
  16355. Ffreq Tush
  16356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  16357. Fdl: *(*struct {
  16358. Flen1 [0]Tush
  16359. Fdad Tush
  16360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16361. },
  16362. 121: {
  16363. Ffc: *(*struct {
  16364. Fcode [0]Tush
  16365. Ffreq Tush
  16366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  16367. Fdl: *(*struct {
  16368. Flen1 [0]Tush
  16369. Fdad Tush
  16370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16371. },
  16372. 122: {
  16373. Ffc: *(*struct {
  16374. Fcode [0]Tush
  16375. Ffreq Tush
  16376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  16377. Fdl: *(*struct {
  16378. Flen1 [0]Tush
  16379. Fdad Tush
  16380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16381. },
  16382. 123: {
  16383. Ffc: *(*struct {
  16384. Fcode [0]Tush
  16385. Ffreq Tush
  16386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  16387. Fdl: *(*struct {
  16388. Flen1 [0]Tush
  16389. Fdad Tush
  16390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16391. },
  16392. 124: {
  16393. Ffc: *(*struct {
  16394. Fcode [0]Tush
  16395. Ffreq Tush
  16396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  16397. Fdl: *(*struct {
  16398. Flen1 [0]Tush
  16399. Fdad Tush
  16400. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16401. },
  16402. 125: {
  16403. Ffc: *(*struct {
  16404. Fcode [0]Tush
  16405. Ffreq Tush
  16406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  16407. Fdl: *(*struct {
  16408. Flen1 [0]Tush
  16409. Fdad Tush
  16410. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16411. },
  16412. 126: {
  16413. Ffc: *(*struct {
  16414. Fcode [0]Tush
  16415. Ffreq Tush
  16416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  16417. Fdl: *(*struct {
  16418. Flen1 [0]Tush
  16419. Fdad Tush
  16420. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16421. },
  16422. 127: {
  16423. Ffc: *(*struct {
  16424. Fcode [0]Tush
  16425. Ffreq Tush
  16426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  16427. Fdl: *(*struct {
  16428. Flen1 [0]Tush
  16429. Fdad Tush
  16430. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16431. },
  16432. 128: {
  16433. Ffc: *(*struct {
  16434. Fcode [0]Tush
  16435. Ffreq Tush
  16436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  16437. Fdl: *(*struct {
  16438. Flen1 [0]Tush
  16439. Fdad Tush
  16440. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16441. },
  16442. 129: {
  16443. Ffc: *(*struct {
  16444. Fcode [0]Tush
  16445. Ffreq Tush
  16446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  16447. Fdl: *(*struct {
  16448. Flen1 [0]Tush
  16449. Fdad Tush
  16450. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16451. },
  16452. 130: {
  16453. Ffc: *(*struct {
  16454. Fcode [0]Tush
  16455. Ffreq Tush
  16456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  16457. Fdl: *(*struct {
  16458. Flen1 [0]Tush
  16459. Fdad Tush
  16460. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16461. },
  16462. 131: {
  16463. Ffc: *(*struct {
  16464. Fcode [0]Tush
  16465. Ffreq Tush
  16466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  16467. Fdl: *(*struct {
  16468. Flen1 [0]Tush
  16469. Fdad Tush
  16470. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16471. },
  16472. 132: {
  16473. Ffc: *(*struct {
  16474. Fcode [0]Tush
  16475. Ffreq Tush
  16476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  16477. Fdl: *(*struct {
  16478. Flen1 [0]Tush
  16479. Fdad Tush
  16480. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16481. },
  16482. 133: {
  16483. Ffc: *(*struct {
  16484. Fcode [0]Tush
  16485. Ffreq Tush
  16486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  16487. Fdl: *(*struct {
  16488. Flen1 [0]Tush
  16489. Fdad Tush
  16490. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16491. },
  16492. 134: {
  16493. Ffc: *(*struct {
  16494. Fcode [0]Tush
  16495. Ffreq Tush
  16496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  16497. Fdl: *(*struct {
  16498. Flen1 [0]Tush
  16499. Fdad Tush
  16500. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16501. },
  16502. 135: {
  16503. Ffc: *(*struct {
  16504. Fcode [0]Tush
  16505. Ffreq Tush
  16506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  16507. Fdl: *(*struct {
  16508. Flen1 [0]Tush
  16509. Fdad Tush
  16510. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16511. },
  16512. 136: {
  16513. Ffc: *(*struct {
  16514. Fcode [0]Tush
  16515. Ffreq Tush
  16516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  16517. Fdl: *(*struct {
  16518. Flen1 [0]Tush
  16519. Fdad Tush
  16520. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16521. },
  16522. 137: {
  16523. Ffc: *(*struct {
  16524. Fcode [0]Tush
  16525. Ffreq Tush
  16526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  16527. Fdl: *(*struct {
  16528. Flen1 [0]Tush
  16529. Fdad Tush
  16530. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16531. },
  16532. 138: {
  16533. Ffc: *(*struct {
  16534. Fcode [0]Tush
  16535. Ffreq Tush
  16536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  16537. Fdl: *(*struct {
  16538. Flen1 [0]Tush
  16539. Fdad Tush
  16540. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16541. },
  16542. 139: {
  16543. Ffc: *(*struct {
  16544. Fcode [0]Tush
  16545. Ffreq Tush
  16546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  16547. Fdl: *(*struct {
  16548. Flen1 [0]Tush
  16549. Fdad Tush
  16550. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16551. },
  16552. 140: {
  16553. Ffc: *(*struct {
  16554. Fcode [0]Tush
  16555. Ffreq Tush
  16556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  16557. Fdl: *(*struct {
  16558. Flen1 [0]Tush
  16559. Fdad Tush
  16560. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16561. },
  16562. 141: {
  16563. Ffc: *(*struct {
  16564. Fcode [0]Tush
  16565. Ffreq Tush
  16566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  16567. Fdl: *(*struct {
  16568. Flen1 [0]Tush
  16569. Fdad Tush
  16570. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16571. },
  16572. 142: {
  16573. Ffc: *(*struct {
  16574. Fcode [0]Tush
  16575. Ffreq Tush
  16576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  16577. Fdl: *(*struct {
  16578. Flen1 [0]Tush
  16579. Fdad Tush
  16580. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16581. },
  16582. 143: {
  16583. Ffc: *(*struct {
  16584. Fcode [0]Tush
  16585. Ffreq Tush
  16586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  16587. Fdl: *(*struct {
  16588. Flen1 [0]Tush
  16589. Fdad Tush
  16590. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  16591. },
  16592. 144: {
  16593. Ffc: *(*struct {
  16594. Fcode [0]Tush
  16595. Ffreq Tush
  16596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  16597. Fdl: *(*struct {
  16598. Flen1 [0]Tush
  16599. Fdad Tush
  16600. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16601. },
  16602. 145: {
  16603. Ffc: *(*struct {
  16604. Fcode [0]Tush
  16605. Ffreq Tush
  16606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  16607. Fdl: *(*struct {
  16608. Flen1 [0]Tush
  16609. Fdad Tush
  16610. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16611. },
  16612. 146: {
  16613. Ffc: *(*struct {
  16614. Fcode [0]Tush
  16615. Ffreq Tush
  16616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  16617. Fdl: *(*struct {
  16618. Flen1 [0]Tush
  16619. Fdad Tush
  16620. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16621. },
  16622. 147: {
  16623. Ffc: *(*struct {
  16624. Fcode [0]Tush
  16625. Ffreq Tush
  16626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  16627. Fdl: *(*struct {
  16628. Flen1 [0]Tush
  16629. Fdad Tush
  16630. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16631. },
  16632. 148: {
  16633. Ffc: *(*struct {
  16634. Fcode [0]Tush
  16635. Ffreq Tush
  16636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  16637. Fdl: *(*struct {
  16638. Flen1 [0]Tush
  16639. Fdad Tush
  16640. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16641. },
  16642. 149: {
  16643. Ffc: *(*struct {
  16644. Fcode [0]Tush
  16645. Ffreq Tush
  16646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  16647. Fdl: *(*struct {
  16648. Flen1 [0]Tush
  16649. Fdad Tush
  16650. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16651. },
  16652. 150: {
  16653. Ffc: *(*struct {
  16654. Fcode [0]Tush
  16655. Ffreq Tush
  16656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  16657. Fdl: *(*struct {
  16658. Flen1 [0]Tush
  16659. Fdad Tush
  16660. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16661. },
  16662. 151: {
  16663. Ffc: *(*struct {
  16664. Fcode [0]Tush
  16665. Ffreq Tush
  16666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  16667. Fdl: *(*struct {
  16668. Flen1 [0]Tush
  16669. Fdad Tush
  16670. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16671. },
  16672. 152: {
  16673. Ffc: *(*struct {
  16674. Fcode [0]Tush
  16675. Ffreq Tush
  16676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  16677. Fdl: *(*struct {
  16678. Flen1 [0]Tush
  16679. Fdad Tush
  16680. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16681. },
  16682. 153: {
  16683. Ffc: *(*struct {
  16684. Fcode [0]Tush
  16685. Ffreq Tush
  16686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  16687. Fdl: *(*struct {
  16688. Flen1 [0]Tush
  16689. Fdad Tush
  16690. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16691. },
  16692. 154: {
  16693. Ffc: *(*struct {
  16694. Fcode [0]Tush
  16695. Ffreq Tush
  16696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  16697. Fdl: *(*struct {
  16698. Flen1 [0]Tush
  16699. Fdad Tush
  16700. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16701. },
  16702. 155: {
  16703. Ffc: *(*struct {
  16704. Fcode [0]Tush
  16705. Ffreq Tush
  16706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  16707. Fdl: *(*struct {
  16708. Flen1 [0]Tush
  16709. Fdad Tush
  16710. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16711. },
  16712. 156: {
  16713. Ffc: *(*struct {
  16714. Fcode [0]Tush
  16715. Ffreq Tush
  16716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  16717. Fdl: *(*struct {
  16718. Flen1 [0]Tush
  16719. Fdad Tush
  16720. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16721. },
  16722. 157: {
  16723. Ffc: *(*struct {
  16724. Fcode [0]Tush
  16725. Ffreq Tush
  16726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  16727. Fdl: *(*struct {
  16728. Flen1 [0]Tush
  16729. Fdad Tush
  16730. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16731. },
  16732. 158: {
  16733. Ffc: *(*struct {
  16734. Fcode [0]Tush
  16735. Ffreq Tush
  16736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  16737. Fdl: *(*struct {
  16738. Flen1 [0]Tush
  16739. Fdad Tush
  16740. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16741. },
  16742. 159: {
  16743. Ffc: *(*struct {
  16744. Fcode [0]Tush
  16745. Ffreq Tush
  16746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  16747. Fdl: *(*struct {
  16748. Flen1 [0]Tush
  16749. Fdad Tush
  16750. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16751. },
  16752. 160: {
  16753. Ffc: *(*struct {
  16754. Fcode [0]Tush
  16755. Ffreq Tush
  16756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  16757. Fdl: *(*struct {
  16758. Flen1 [0]Tush
  16759. Fdad Tush
  16760. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16761. },
  16762. 161: {
  16763. Ffc: *(*struct {
  16764. Fcode [0]Tush
  16765. Ffreq Tush
  16766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  16767. Fdl: *(*struct {
  16768. Flen1 [0]Tush
  16769. Fdad Tush
  16770. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16771. },
  16772. 162: {
  16773. Ffc: *(*struct {
  16774. Fcode [0]Tush
  16775. Ffreq Tush
  16776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  16777. Fdl: *(*struct {
  16778. Flen1 [0]Tush
  16779. Fdad Tush
  16780. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16781. },
  16782. 163: {
  16783. Ffc: *(*struct {
  16784. Fcode [0]Tush
  16785. Ffreq Tush
  16786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  16787. Fdl: *(*struct {
  16788. Flen1 [0]Tush
  16789. Fdad Tush
  16790. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16791. },
  16792. 164: {
  16793. Ffc: *(*struct {
  16794. Fcode [0]Tush
  16795. Ffreq Tush
  16796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  16797. Fdl: *(*struct {
  16798. Flen1 [0]Tush
  16799. Fdad Tush
  16800. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16801. },
  16802. 165: {
  16803. Ffc: *(*struct {
  16804. Fcode [0]Tush
  16805. Ffreq Tush
  16806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  16807. Fdl: *(*struct {
  16808. Flen1 [0]Tush
  16809. Fdad Tush
  16810. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16811. },
  16812. 166: {
  16813. Ffc: *(*struct {
  16814. Fcode [0]Tush
  16815. Ffreq Tush
  16816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  16817. Fdl: *(*struct {
  16818. Flen1 [0]Tush
  16819. Fdad Tush
  16820. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16821. },
  16822. 167: {
  16823. Ffc: *(*struct {
  16824. Fcode [0]Tush
  16825. Ffreq Tush
  16826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  16827. Fdl: *(*struct {
  16828. Flen1 [0]Tush
  16829. Fdad Tush
  16830. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16831. },
  16832. 168: {
  16833. Ffc: *(*struct {
  16834. Fcode [0]Tush
  16835. Ffreq Tush
  16836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  16837. Fdl: *(*struct {
  16838. Flen1 [0]Tush
  16839. Fdad Tush
  16840. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16841. },
  16842. 169: {
  16843. Ffc: *(*struct {
  16844. Fcode [0]Tush
  16845. Ffreq Tush
  16846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  16847. Fdl: *(*struct {
  16848. Flen1 [0]Tush
  16849. Fdad Tush
  16850. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16851. },
  16852. 170: {
  16853. Ffc: *(*struct {
  16854. Fcode [0]Tush
  16855. Ffreq Tush
  16856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  16857. Fdl: *(*struct {
  16858. Flen1 [0]Tush
  16859. Fdad Tush
  16860. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16861. },
  16862. 171: {
  16863. Ffc: *(*struct {
  16864. Fcode [0]Tush
  16865. Ffreq Tush
  16866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  16867. Fdl: *(*struct {
  16868. Flen1 [0]Tush
  16869. Fdad Tush
  16870. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16871. },
  16872. 172: {
  16873. Ffc: *(*struct {
  16874. Fcode [0]Tush
  16875. Ffreq Tush
  16876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  16877. Fdl: *(*struct {
  16878. Flen1 [0]Tush
  16879. Fdad Tush
  16880. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16881. },
  16882. 173: {
  16883. Ffc: *(*struct {
  16884. Fcode [0]Tush
  16885. Ffreq Tush
  16886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  16887. Fdl: *(*struct {
  16888. Flen1 [0]Tush
  16889. Fdad Tush
  16890. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16891. },
  16892. 174: {
  16893. Ffc: *(*struct {
  16894. Fcode [0]Tush
  16895. Ffreq Tush
  16896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  16897. Fdl: *(*struct {
  16898. Flen1 [0]Tush
  16899. Fdad Tush
  16900. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16901. },
  16902. 175: {
  16903. Ffc: *(*struct {
  16904. Fcode [0]Tush
  16905. Ffreq Tush
  16906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  16907. Fdl: *(*struct {
  16908. Flen1 [0]Tush
  16909. Fdad Tush
  16910. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16911. },
  16912. 176: {
  16913. Ffc: *(*struct {
  16914. Fcode [0]Tush
  16915. Ffreq Tush
  16916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  16917. Fdl: *(*struct {
  16918. Flen1 [0]Tush
  16919. Fdad Tush
  16920. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16921. },
  16922. 177: {
  16923. Ffc: *(*struct {
  16924. Fcode [0]Tush
  16925. Ffreq Tush
  16926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  16927. Fdl: *(*struct {
  16928. Flen1 [0]Tush
  16929. Fdad Tush
  16930. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16931. },
  16932. 178: {
  16933. Ffc: *(*struct {
  16934. Fcode [0]Tush
  16935. Ffreq Tush
  16936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  16937. Fdl: *(*struct {
  16938. Flen1 [0]Tush
  16939. Fdad Tush
  16940. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16941. },
  16942. 179: {
  16943. Ffc: *(*struct {
  16944. Fcode [0]Tush
  16945. Ffreq Tush
  16946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  16947. Fdl: *(*struct {
  16948. Flen1 [0]Tush
  16949. Fdad Tush
  16950. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16951. },
  16952. 180: {
  16953. Ffc: *(*struct {
  16954. Fcode [0]Tush
  16955. Ffreq Tush
  16956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  16957. Fdl: *(*struct {
  16958. Flen1 [0]Tush
  16959. Fdad Tush
  16960. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16961. },
  16962. 181: {
  16963. Ffc: *(*struct {
  16964. Fcode [0]Tush
  16965. Ffreq Tush
  16966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  16967. Fdl: *(*struct {
  16968. Flen1 [0]Tush
  16969. Fdad Tush
  16970. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16971. },
  16972. 182: {
  16973. Ffc: *(*struct {
  16974. Fcode [0]Tush
  16975. Ffreq Tush
  16976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  16977. Fdl: *(*struct {
  16978. Flen1 [0]Tush
  16979. Fdad Tush
  16980. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16981. },
  16982. 183: {
  16983. Ffc: *(*struct {
  16984. Fcode [0]Tush
  16985. Ffreq Tush
  16986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  16987. Fdl: *(*struct {
  16988. Flen1 [0]Tush
  16989. Fdad Tush
  16990. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  16991. },
  16992. 184: {
  16993. Ffc: *(*struct {
  16994. Fcode [0]Tush
  16995. Ffreq Tush
  16996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  16997. Fdl: *(*struct {
  16998. Flen1 [0]Tush
  16999. Fdad Tush
  17000. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17001. },
  17002. 185: {
  17003. Ffc: *(*struct {
  17004. Fcode [0]Tush
  17005. Ffreq Tush
  17006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  17007. Fdl: *(*struct {
  17008. Flen1 [0]Tush
  17009. Fdad Tush
  17010. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17011. },
  17012. 186: {
  17013. Ffc: *(*struct {
  17014. Fcode [0]Tush
  17015. Ffreq Tush
  17016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  17017. Fdl: *(*struct {
  17018. Flen1 [0]Tush
  17019. Fdad Tush
  17020. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17021. },
  17022. 187: {
  17023. Ffc: *(*struct {
  17024. Fcode [0]Tush
  17025. Ffreq Tush
  17026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  17027. Fdl: *(*struct {
  17028. Flen1 [0]Tush
  17029. Fdad Tush
  17030. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17031. },
  17032. 188: {
  17033. Ffc: *(*struct {
  17034. Fcode [0]Tush
  17035. Ffreq Tush
  17036. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  17037. Fdl: *(*struct {
  17038. Flen1 [0]Tush
  17039. Fdad Tush
  17040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17041. },
  17042. 189: {
  17043. Ffc: *(*struct {
  17044. Fcode [0]Tush
  17045. Ffreq Tush
  17046. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  17047. Fdl: *(*struct {
  17048. Flen1 [0]Tush
  17049. Fdad Tush
  17050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17051. },
  17052. 190: {
  17053. Ffc: *(*struct {
  17054. Fcode [0]Tush
  17055. Ffreq Tush
  17056. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  17057. Fdl: *(*struct {
  17058. Flen1 [0]Tush
  17059. Fdad Tush
  17060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17061. },
  17062. 191: {
  17063. Ffc: *(*struct {
  17064. Fcode [0]Tush
  17065. Ffreq Tush
  17066. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  17067. Fdl: *(*struct {
  17068. Flen1 [0]Tush
  17069. Fdad Tush
  17070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17071. },
  17072. 192: {
  17073. Ffc: *(*struct {
  17074. Fcode [0]Tush
  17075. Ffreq Tush
  17076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17077. Fdl: *(*struct {
  17078. Flen1 [0]Tush
  17079. Fdad Tush
  17080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17081. },
  17082. 193: {
  17083. Ffc: *(*struct {
  17084. Fcode [0]Tush
  17085. Ffreq Tush
  17086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  17087. Fdl: *(*struct {
  17088. Flen1 [0]Tush
  17089. Fdad Tush
  17090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17091. },
  17092. 194: {
  17093. Ffc: *(*struct {
  17094. Fcode [0]Tush
  17095. Ffreq Tush
  17096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  17097. Fdl: *(*struct {
  17098. Flen1 [0]Tush
  17099. Fdad Tush
  17100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17101. },
  17102. 195: {
  17103. Ffc: *(*struct {
  17104. Fcode [0]Tush
  17105. Ffreq Tush
  17106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  17107. Fdl: *(*struct {
  17108. Flen1 [0]Tush
  17109. Fdad Tush
  17110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17111. },
  17112. 196: {
  17113. Ffc: *(*struct {
  17114. Fcode [0]Tush
  17115. Ffreq Tush
  17116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  17117. Fdl: *(*struct {
  17118. Flen1 [0]Tush
  17119. Fdad Tush
  17120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17121. },
  17122. 197: {
  17123. Ffc: *(*struct {
  17124. Fcode [0]Tush
  17125. Ffreq Tush
  17126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  17127. Fdl: *(*struct {
  17128. Flen1 [0]Tush
  17129. Fdad Tush
  17130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17131. },
  17132. 198: {
  17133. Ffc: *(*struct {
  17134. Fcode [0]Tush
  17135. Ffreq Tush
  17136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  17137. Fdl: *(*struct {
  17138. Flen1 [0]Tush
  17139. Fdad Tush
  17140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17141. },
  17142. 199: {
  17143. Ffc: *(*struct {
  17144. Fcode [0]Tush
  17145. Ffreq Tush
  17146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  17147. Fdl: *(*struct {
  17148. Flen1 [0]Tush
  17149. Fdad Tush
  17150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17151. },
  17152. 200: {
  17153. Ffc: *(*struct {
  17154. Fcode [0]Tush
  17155. Ffreq Tush
  17156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  17157. Fdl: *(*struct {
  17158. Flen1 [0]Tush
  17159. Fdad Tush
  17160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17161. },
  17162. 201: {
  17163. Ffc: *(*struct {
  17164. Fcode [0]Tush
  17165. Ffreq Tush
  17166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  17167. Fdl: *(*struct {
  17168. Flen1 [0]Tush
  17169. Fdad Tush
  17170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17171. },
  17172. 202: {
  17173. Ffc: *(*struct {
  17174. Fcode [0]Tush
  17175. Ffreq Tush
  17176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  17177. Fdl: *(*struct {
  17178. Flen1 [0]Tush
  17179. Fdad Tush
  17180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17181. },
  17182. 203: {
  17183. Ffc: *(*struct {
  17184. Fcode [0]Tush
  17185. Ffreq Tush
  17186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  17187. Fdl: *(*struct {
  17188. Flen1 [0]Tush
  17189. Fdad Tush
  17190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17191. },
  17192. 204: {
  17193. Ffc: *(*struct {
  17194. Fcode [0]Tush
  17195. Ffreq Tush
  17196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  17197. Fdl: *(*struct {
  17198. Flen1 [0]Tush
  17199. Fdad Tush
  17200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17201. },
  17202. 205: {
  17203. Ffc: *(*struct {
  17204. Fcode [0]Tush
  17205. Ffreq Tush
  17206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  17207. Fdl: *(*struct {
  17208. Flen1 [0]Tush
  17209. Fdad Tush
  17210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17211. },
  17212. 206: {
  17213. Ffc: *(*struct {
  17214. Fcode [0]Tush
  17215. Ffreq Tush
  17216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  17217. Fdl: *(*struct {
  17218. Flen1 [0]Tush
  17219. Fdad Tush
  17220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17221. },
  17222. 207: {
  17223. Ffc: *(*struct {
  17224. Fcode [0]Tush
  17225. Ffreq Tush
  17226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  17227. Fdl: *(*struct {
  17228. Flen1 [0]Tush
  17229. Fdad Tush
  17230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17231. },
  17232. 208: {
  17233. Ffc: *(*struct {
  17234. Fcode [0]Tush
  17235. Ffreq Tush
  17236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  17237. Fdl: *(*struct {
  17238. Flen1 [0]Tush
  17239. Fdad Tush
  17240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17241. },
  17242. 209: {
  17243. Ffc: *(*struct {
  17244. Fcode [0]Tush
  17245. Ffreq Tush
  17246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  17247. Fdl: *(*struct {
  17248. Flen1 [0]Tush
  17249. Fdad Tush
  17250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17251. },
  17252. 210: {
  17253. Ffc: *(*struct {
  17254. Fcode [0]Tush
  17255. Ffreq Tush
  17256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  17257. Fdl: *(*struct {
  17258. Flen1 [0]Tush
  17259. Fdad Tush
  17260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17261. },
  17262. 211: {
  17263. Ffc: *(*struct {
  17264. Fcode [0]Tush
  17265. Ffreq Tush
  17266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  17267. Fdl: *(*struct {
  17268. Flen1 [0]Tush
  17269. Fdad Tush
  17270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17271. },
  17272. 212: {
  17273. Ffc: *(*struct {
  17274. Fcode [0]Tush
  17275. Ffreq Tush
  17276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  17277. Fdl: *(*struct {
  17278. Flen1 [0]Tush
  17279. Fdad Tush
  17280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17281. },
  17282. 213: {
  17283. Ffc: *(*struct {
  17284. Fcode [0]Tush
  17285. Ffreq Tush
  17286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  17287. Fdl: *(*struct {
  17288. Flen1 [0]Tush
  17289. Fdad Tush
  17290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17291. },
  17292. 214: {
  17293. Ffc: *(*struct {
  17294. Fcode [0]Tush
  17295. Ffreq Tush
  17296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  17297. Fdl: *(*struct {
  17298. Flen1 [0]Tush
  17299. Fdad Tush
  17300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17301. },
  17302. 215: {
  17303. Ffc: *(*struct {
  17304. Fcode [0]Tush
  17305. Ffreq Tush
  17306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  17307. Fdl: *(*struct {
  17308. Flen1 [0]Tush
  17309. Fdad Tush
  17310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17311. },
  17312. 216: {
  17313. Ffc: *(*struct {
  17314. Fcode [0]Tush
  17315. Ffreq Tush
  17316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  17317. Fdl: *(*struct {
  17318. Flen1 [0]Tush
  17319. Fdad Tush
  17320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17321. },
  17322. 217: {
  17323. Ffc: *(*struct {
  17324. Fcode [0]Tush
  17325. Ffreq Tush
  17326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  17327. Fdl: *(*struct {
  17328. Flen1 [0]Tush
  17329. Fdad Tush
  17330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17331. },
  17332. 218: {
  17333. Ffc: *(*struct {
  17334. Fcode [0]Tush
  17335. Ffreq Tush
  17336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  17337. Fdl: *(*struct {
  17338. Flen1 [0]Tush
  17339. Fdad Tush
  17340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17341. },
  17342. 219: {
  17343. Ffc: *(*struct {
  17344. Fcode [0]Tush
  17345. Ffreq Tush
  17346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  17347. Fdl: *(*struct {
  17348. Flen1 [0]Tush
  17349. Fdad Tush
  17350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17351. },
  17352. 220: {
  17353. Ffc: *(*struct {
  17354. Fcode [0]Tush
  17355. Ffreq Tush
  17356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  17357. Fdl: *(*struct {
  17358. Flen1 [0]Tush
  17359. Fdad Tush
  17360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17361. },
  17362. 221: {
  17363. Ffc: *(*struct {
  17364. Fcode [0]Tush
  17365. Ffreq Tush
  17366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  17367. Fdl: *(*struct {
  17368. Flen1 [0]Tush
  17369. Fdad Tush
  17370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17371. },
  17372. 222: {
  17373. Ffc: *(*struct {
  17374. Fcode [0]Tush
  17375. Ffreq Tush
  17376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  17377. Fdl: *(*struct {
  17378. Flen1 [0]Tush
  17379. Fdad Tush
  17380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17381. },
  17382. 223: {
  17383. Ffc: *(*struct {
  17384. Fcode [0]Tush
  17385. Ffreq Tush
  17386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  17387. Fdl: *(*struct {
  17388. Flen1 [0]Tush
  17389. Fdad Tush
  17390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17391. },
  17392. 224: {
  17393. Ffc: *(*struct {
  17394. Fcode [0]Tush
  17395. Ffreq Tush
  17396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  17397. Fdl: *(*struct {
  17398. Flen1 [0]Tush
  17399. Fdad Tush
  17400. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17401. },
  17402. 225: {
  17403. Ffc: *(*struct {
  17404. Fcode [0]Tush
  17405. Ffreq Tush
  17406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  17407. Fdl: *(*struct {
  17408. Flen1 [0]Tush
  17409. Fdad Tush
  17410. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17411. },
  17412. 226: {
  17413. Ffc: *(*struct {
  17414. Fcode [0]Tush
  17415. Ffreq Tush
  17416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  17417. Fdl: *(*struct {
  17418. Flen1 [0]Tush
  17419. Fdad Tush
  17420. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17421. },
  17422. 227: {
  17423. Ffc: *(*struct {
  17424. Fcode [0]Tush
  17425. Ffreq Tush
  17426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  17427. Fdl: *(*struct {
  17428. Flen1 [0]Tush
  17429. Fdad Tush
  17430. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17431. },
  17432. 228: {
  17433. Ffc: *(*struct {
  17434. Fcode [0]Tush
  17435. Ffreq Tush
  17436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  17437. Fdl: *(*struct {
  17438. Flen1 [0]Tush
  17439. Fdad Tush
  17440. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17441. },
  17442. 229: {
  17443. Ffc: *(*struct {
  17444. Fcode [0]Tush
  17445. Ffreq Tush
  17446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  17447. Fdl: *(*struct {
  17448. Flen1 [0]Tush
  17449. Fdad Tush
  17450. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17451. },
  17452. 230: {
  17453. Ffc: *(*struct {
  17454. Fcode [0]Tush
  17455. Ffreq Tush
  17456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  17457. Fdl: *(*struct {
  17458. Flen1 [0]Tush
  17459. Fdad Tush
  17460. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17461. },
  17462. 231: {
  17463. Ffc: *(*struct {
  17464. Fcode [0]Tush
  17465. Ffreq Tush
  17466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  17467. Fdl: *(*struct {
  17468. Flen1 [0]Tush
  17469. Fdad Tush
  17470. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17471. },
  17472. 232: {
  17473. Ffc: *(*struct {
  17474. Fcode [0]Tush
  17475. Ffreq Tush
  17476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  17477. Fdl: *(*struct {
  17478. Flen1 [0]Tush
  17479. Fdad Tush
  17480. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17481. },
  17482. 233: {
  17483. Ffc: *(*struct {
  17484. Fcode [0]Tush
  17485. Ffreq Tush
  17486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  17487. Fdl: *(*struct {
  17488. Flen1 [0]Tush
  17489. Fdad Tush
  17490. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17491. },
  17492. 234: {
  17493. Ffc: *(*struct {
  17494. Fcode [0]Tush
  17495. Ffreq Tush
  17496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  17497. Fdl: *(*struct {
  17498. Flen1 [0]Tush
  17499. Fdad Tush
  17500. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17501. },
  17502. 235: {
  17503. Ffc: *(*struct {
  17504. Fcode [0]Tush
  17505. Ffreq Tush
  17506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  17507. Fdl: *(*struct {
  17508. Flen1 [0]Tush
  17509. Fdad Tush
  17510. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17511. },
  17512. 236: {
  17513. Ffc: *(*struct {
  17514. Fcode [0]Tush
  17515. Ffreq Tush
  17516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  17517. Fdl: *(*struct {
  17518. Flen1 [0]Tush
  17519. Fdad Tush
  17520. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17521. },
  17522. 237: {
  17523. Ffc: *(*struct {
  17524. Fcode [0]Tush
  17525. Ffreq Tush
  17526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  17527. Fdl: *(*struct {
  17528. Flen1 [0]Tush
  17529. Fdad Tush
  17530. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17531. },
  17532. 238: {
  17533. Ffc: *(*struct {
  17534. Fcode [0]Tush
  17535. Ffreq Tush
  17536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  17537. Fdl: *(*struct {
  17538. Flen1 [0]Tush
  17539. Fdad Tush
  17540. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17541. },
  17542. 239: {
  17543. Ffc: *(*struct {
  17544. Fcode [0]Tush
  17545. Ffreq Tush
  17546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  17547. Fdl: *(*struct {
  17548. Flen1 [0]Tush
  17549. Fdad Tush
  17550. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17551. },
  17552. 240: {
  17553. Ffc: *(*struct {
  17554. Fcode [0]Tush
  17555. Ffreq Tush
  17556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  17557. Fdl: *(*struct {
  17558. Flen1 [0]Tush
  17559. Fdad Tush
  17560. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17561. },
  17562. 241: {
  17563. Ffc: *(*struct {
  17564. Fcode [0]Tush
  17565. Ffreq Tush
  17566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  17567. Fdl: *(*struct {
  17568. Flen1 [0]Tush
  17569. Fdad Tush
  17570. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17571. },
  17572. 242: {
  17573. Ffc: *(*struct {
  17574. Fcode [0]Tush
  17575. Ffreq Tush
  17576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  17577. Fdl: *(*struct {
  17578. Flen1 [0]Tush
  17579. Fdad Tush
  17580. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17581. },
  17582. 243: {
  17583. Ffc: *(*struct {
  17584. Fcode [0]Tush
  17585. Ffreq Tush
  17586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  17587. Fdl: *(*struct {
  17588. Flen1 [0]Tush
  17589. Fdad Tush
  17590. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17591. },
  17592. 244: {
  17593. Ffc: *(*struct {
  17594. Fcode [0]Tush
  17595. Ffreq Tush
  17596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  17597. Fdl: *(*struct {
  17598. Flen1 [0]Tush
  17599. Fdad Tush
  17600. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17601. },
  17602. 245: {
  17603. Ffc: *(*struct {
  17604. Fcode [0]Tush
  17605. Ffreq Tush
  17606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  17607. Fdl: *(*struct {
  17608. Flen1 [0]Tush
  17609. Fdad Tush
  17610. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17611. },
  17612. 246: {
  17613. Ffc: *(*struct {
  17614. Fcode [0]Tush
  17615. Ffreq Tush
  17616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  17617. Fdl: *(*struct {
  17618. Flen1 [0]Tush
  17619. Fdad Tush
  17620. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17621. },
  17622. 247: {
  17623. Ffc: *(*struct {
  17624. Fcode [0]Tush
  17625. Ffreq Tush
  17626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  17627. Fdl: *(*struct {
  17628. Flen1 [0]Tush
  17629. Fdad Tush
  17630. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17631. },
  17632. 248: {
  17633. Ffc: *(*struct {
  17634. Fcode [0]Tush
  17635. Ffreq Tush
  17636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  17637. Fdl: *(*struct {
  17638. Flen1 [0]Tush
  17639. Fdad Tush
  17640. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17641. },
  17642. 249: {
  17643. Ffc: *(*struct {
  17644. Fcode [0]Tush
  17645. Ffreq Tush
  17646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  17647. Fdl: *(*struct {
  17648. Flen1 [0]Tush
  17649. Fdad Tush
  17650. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17651. },
  17652. 250: {
  17653. Ffc: *(*struct {
  17654. Fcode [0]Tush
  17655. Ffreq Tush
  17656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  17657. Fdl: *(*struct {
  17658. Flen1 [0]Tush
  17659. Fdad Tush
  17660. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17661. },
  17662. 251: {
  17663. Ffc: *(*struct {
  17664. Fcode [0]Tush
  17665. Ffreq Tush
  17666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  17667. Fdl: *(*struct {
  17668. Flen1 [0]Tush
  17669. Fdad Tush
  17670. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17671. },
  17672. 252: {
  17673. Ffc: *(*struct {
  17674. Fcode [0]Tush
  17675. Ffreq Tush
  17676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  17677. Fdl: *(*struct {
  17678. Flen1 [0]Tush
  17679. Fdad Tush
  17680. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17681. },
  17682. 253: {
  17683. Ffc: *(*struct {
  17684. Fcode [0]Tush
  17685. Ffreq Tush
  17686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  17687. Fdl: *(*struct {
  17688. Flen1 [0]Tush
  17689. Fdad Tush
  17690. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17691. },
  17692. 254: {
  17693. Ffc: *(*struct {
  17694. Fcode [0]Tush
  17695. Ffreq Tush
  17696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  17697. Fdl: *(*struct {
  17698. Flen1 [0]Tush
  17699. Fdad Tush
  17700. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17701. },
  17702. 255: {
  17703. Ffc: *(*struct {
  17704. Fcode [0]Tush
  17705. Ffreq Tush
  17706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  17707. Fdl: *(*struct {
  17708. Flen1 [0]Tush
  17709. Fdad Tush
  17710. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  17711. },
  17712. 256: {
  17713. Fdl: *(*struct {
  17714. Flen1 [0]Tush
  17715. Fdad Tush
  17716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17717. },
  17718. 257: {
  17719. Ffc: *(*struct {
  17720. Fcode [0]Tush
  17721. Ffreq Tush
  17722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  17723. Fdl: *(*struct {
  17724. Flen1 [0]Tush
  17725. Fdad Tush
  17726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17727. },
  17728. 258: {
  17729. Ffc: *(*struct {
  17730. Fcode [0]Tush
  17731. Ffreq Tush
  17732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  17733. Fdl: *(*struct {
  17734. Flen1 [0]Tush
  17735. Fdad Tush
  17736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17737. },
  17738. 259: {
  17739. Ffc: *(*struct {
  17740. Fcode [0]Tush
  17741. Ffreq Tush
  17742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  17743. Fdl: *(*struct {
  17744. Flen1 [0]Tush
  17745. Fdad Tush
  17746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17747. },
  17748. 260: {
  17749. Ffc: *(*struct {
  17750. Fcode [0]Tush
  17751. Ffreq Tush
  17752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  17753. Fdl: *(*struct {
  17754. Flen1 [0]Tush
  17755. Fdad Tush
  17756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17757. },
  17758. 261: {
  17759. Ffc: *(*struct {
  17760. Fcode [0]Tush
  17761. Ffreq Tush
  17762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  17763. Fdl: *(*struct {
  17764. Flen1 [0]Tush
  17765. Fdad Tush
  17766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17767. },
  17768. 262: {
  17769. Ffc: *(*struct {
  17770. Fcode [0]Tush
  17771. Ffreq Tush
  17772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  17773. Fdl: *(*struct {
  17774. Flen1 [0]Tush
  17775. Fdad Tush
  17776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17777. },
  17778. 263: {
  17779. Ffc: *(*struct {
  17780. Fcode [0]Tush
  17781. Ffreq Tush
  17782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  17783. Fdl: *(*struct {
  17784. Flen1 [0]Tush
  17785. Fdad Tush
  17786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17787. },
  17788. 264: {
  17789. Ffc: *(*struct {
  17790. Fcode [0]Tush
  17791. Ffreq Tush
  17792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17793. Fdl: *(*struct {
  17794. Flen1 [0]Tush
  17795. Fdad Tush
  17796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17797. },
  17798. 265: {
  17799. Ffc: *(*struct {
  17800. Fcode [0]Tush
  17801. Ffreq Tush
  17802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  17803. Fdl: *(*struct {
  17804. Flen1 [0]Tush
  17805. Fdad Tush
  17806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17807. },
  17808. 266: {
  17809. Ffc: *(*struct {
  17810. Fcode [0]Tush
  17811. Ffreq Tush
  17812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  17813. Fdl: *(*struct {
  17814. Flen1 [0]Tush
  17815. Fdad Tush
  17816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17817. },
  17818. 267: {
  17819. Ffc: *(*struct {
  17820. Fcode [0]Tush
  17821. Ffreq Tush
  17822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  17823. Fdl: *(*struct {
  17824. Flen1 [0]Tush
  17825. Fdad Tush
  17826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17827. },
  17828. 268: {
  17829. Ffc: *(*struct {
  17830. Fcode [0]Tush
  17831. Ffreq Tush
  17832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  17833. Fdl: *(*struct {
  17834. Flen1 [0]Tush
  17835. Fdad Tush
  17836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17837. },
  17838. 269: {
  17839. Ffc: *(*struct {
  17840. Fcode [0]Tush
  17841. Ffreq Tush
  17842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  17843. Fdl: *(*struct {
  17844. Flen1 [0]Tush
  17845. Fdad Tush
  17846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17847. },
  17848. 270: {
  17849. Ffc: *(*struct {
  17850. Fcode [0]Tush
  17851. Ffreq Tush
  17852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  17853. Fdl: *(*struct {
  17854. Flen1 [0]Tush
  17855. Fdad Tush
  17856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17857. },
  17858. 271: {
  17859. Ffc: *(*struct {
  17860. Fcode [0]Tush
  17861. Ffreq Tush
  17862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  17863. Fdl: *(*struct {
  17864. Flen1 [0]Tush
  17865. Fdad Tush
  17866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17867. },
  17868. 272: {
  17869. Ffc: *(*struct {
  17870. Fcode [0]Tush
  17871. Ffreq Tush
  17872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  17873. Fdl: *(*struct {
  17874. Flen1 [0]Tush
  17875. Fdad Tush
  17876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17877. },
  17878. 273: {
  17879. Ffc: *(*struct {
  17880. Fcode [0]Tush
  17881. Ffreq Tush
  17882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  17883. Fdl: *(*struct {
  17884. Flen1 [0]Tush
  17885. Fdad Tush
  17886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17887. },
  17888. 274: {
  17889. Ffc: *(*struct {
  17890. Fcode [0]Tush
  17891. Ffreq Tush
  17892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  17893. Fdl: *(*struct {
  17894. Flen1 [0]Tush
  17895. Fdad Tush
  17896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17897. },
  17898. 275: {
  17899. Ffc: *(*struct {
  17900. Fcode [0]Tush
  17901. Ffreq Tush
  17902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  17903. Fdl: *(*struct {
  17904. Flen1 [0]Tush
  17905. Fdad Tush
  17906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17907. },
  17908. 276: {
  17909. Ffc: *(*struct {
  17910. Fcode [0]Tush
  17911. Ffreq Tush
  17912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  17913. Fdl: *(*struct {
  17914. Flen1 [0]Tush
  17915. Fdad Tush
  17916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17917. },
  17918. 277: {
  17919. Ffc: *(*struct {
  17920. Fcode [0]Tush
  17921. Ffreq Tush
  17922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  17923. Fdl: *(*struct {
  17924. Flen1 [0]Tush
  17925. Fdad Tush
  17926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17927. },
  17928. 278: {
  17929. Ffc: *(*struct {
  17930. Fcode [0]Tush
  17931. Ffreq Tush
  17932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  17933. Fdl: *(*struct {
  17934. Flen1 [0]Tush
  17935. Fdad Tush
  17936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17937. },
  17938. 279: {
  17939. Ffc: *(*struct {
  17940. Fcode [0]Tush
  17941. Ffreq Tush
  17942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  17943. Fdl: *(*struct {
  17944. Flen1 [0]Tush
  17945. Fdad Tush
  17946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  17947. },
  17948. 280: {
  17949. Ffc: *(*struct {
  17950. Fcode [0]Tush
  17951. Ffreq Tush
  17952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  17953. Fdl: *(*struct {
  17954. Flen1 [0]Tush
  17955. Fdad Tush
  17956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17957. },
  17958. 281: {
  17959. Ffc: *(*struct {
  17960. Fcode [0]Tush
  17961. Ffreq Tush
  17962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  17963. Fdl: *(*struct {
  17964. Flen1 [0]Tush
  17965. Fdad Tush
  17966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17967. },
  17968. 282: {
  17969. Ffc: *(*struct {
  17970. Fcode [0]Tush
  17971. Ffreq Tush
  17972. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  17973. Fdl: *(*struct {
  17974. Flen1 [0]Tush
  17975. Fdad Tush
  17976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17977. },
  17978. 283: {
  17979. Ffc: *(*struct {
  17980. Fcode [0]Tush
  17981. Ffreq Tush
  17982. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  17983. Fdl: *(*struct {
  17984. Flen1 [0]Tush
  17985. Fdad Tush
  17986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17987. },
  17988. 284: {
  17989. Ffc: *(*struct {
  17990. Fcode [0]Tush
  17991. Ffreq Tush
  17992. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  17993. Fdl: *(*struct {
  17994. Flen1 [0]Tush
  17995. Fdad Tush
  17996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17997. },
  17998. 285: {
  17999. Ffc: *(*struct {
  18000. Fcode [0]Tush
  18001. Ffreq Tush
  18002. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  18003. Fdl: *(*struct {
  18004. Flen1 [0]Tush
  18005. Fdad Tush
  18006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18007. },
  18008. 286: {
  18009. Ffc: *(*struct {
  18010. Fcode [0]Tush
  18011. Ffreq Tush
  18012. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  18013. Fdl: *(*struct {
  18014. Flen1 [0]Tush
  18015. Fdad Tush
  18016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18017. },
  18018. 287: {
  18019. Ffc: *(*struct {
  18020. Fcode [0]Tush
  18021. Ffreq Tush
  18022. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  18023. Fdl: *(*struct {
  18024. Flen1 [0]Tush
  18025. Fdad Tush
  18026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18027. },
  18028. }
  18029. var _static_dtree = [30]Tct_data{
  18030. 0: {
  18031. Fdl: *(*struct {
  18032. Flen1 [0]Tush
  18033. Fdad Tush
  18034. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18035. },
  18036. 1: {
  18037. Ffc: *(*struct {
  18038. Fcode [0]Tush
  18039. Ffreq Tush
  18040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  18041. Fdl: *(*struct {
  18042. Flen1 [0]Tush
  18043. Fdad Tush
  18044. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18045. },
  18046. 2: {
  18047. Ffc: *(*struct {
  18048. Fcode [0]Tush
  18049. Ffreq Tush
  18050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18051. Fdl: *(*struct {
  18052. Flen1 [0]Tush
  18053. Fdad Tush
  18054. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18055. },
  18056. 3: {
  18057. Ffc: *(*struct {
  18058. Fcode [0]Tush
  18059. Ffreq Tush
  18060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  18061. Fdl: *(*struct {
  18062. Flen1 [0]Tush
  18063. Fdad Tush
  18064. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18065. },
  18066. 4: {
  18067. Ffc: *(*struct {
  18068. Fcode [0]Tush
  18069. Ffreq Tush
  18070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  18071. Fdl: *(*struct {
  18072. Flen1 [0]Tush
  18073. Fdad Tush
  18074. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18075. },
  18076. 5: {
  18077. Ffc: *(*struct {
  18078. Fcode [0]Tush
  18079. Ffreq Tush
  18080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  18081. Fdl: *(*struct {
  18082. Flen1 [0]Tush
  18083. Fdad Tush
  18084. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18085. },
  18086. 6: {
  18087. Ffc: *(*struct {
  18088. Fcode [0]Tush
  18089. Ffreq Tush
  18090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  18091. Fdl: *(*struct {
  18092. Flen1 [0]Tush
  18093. Fdad Tush
  18094. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18095. },
  18096. 7: {
  18097. Ffc: *(*struct {
  18098. Fcode [0]Tush
  18099. Ffreq Tush
  18100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  18101. Fdl: *(*struct {
  18102. Flen1 [0]Tush
  18103. Fdad Tush
  18104. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18105. },
  18106. 8: {
  18107. Ffc: *(*struct {
  18108. Fcode [0]Tush
  18109. Ffreq Tush
  18110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  18111. Fdl: *(*struct {
  18112. Flen1 [0]Tush
  18113. Fdad Tush
  18114. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18115. },
  18116. 9: {
  18117. Ffc: *(*struct {
  18118. Fcode [0]Tush
  18119. Ffreq Tush
  18120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  18121. Fdl: *(*struct {
  18122. Flen1 [0]Tush
  18123. Fdad Tush
  18124. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18125. },
  18126. 10: {
  18127. Ffc: *(*struct {
  18128. Fcode [0]Tush
  18129. Ffreq Tush
  18130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  18131. Fdl: *(*struct {
  18132. Flen1 [0]Tush
  18133. Fdad Tush
  18134. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18135. },
  18136. 11: {
  18137. Ffc: *(*struct {
  18138. Fcode [0]Tush
  18139. Ffreq Tush
  18140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  18141. Fdl: *(*struct {
  18142. Flen1 [0]Tush
  18143. Fdad Tush
  18144. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18145. },
  18146. 12: {
  18147. Ffc: *(*struct {
  18148. Fcode [0]Tush
  18149. Ffreq Tush
  18150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  18151. Fdl: *(*struct {
  18152. Flen1 [0]Tush
  18153. Fdad Tush
  18154. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18155. },
  18156. 13: {
  18157. Ffc: *(*struct {
  18158. Fcode [0]Tush
  18159. Ffreq Tush
  18160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  18161. Fdl: *(*struct {
  18162. Flen1 [0]Tush
  18163. Fdad Tush
  18164. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18165. },
  18166. 14: {
  18167. Ffc: *(*struct {
  18168. Fcode [0]Tush
  18169. Ffreq Tush
  18170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  18171. Fdl: *(*struct {
  18172. Flen1 [0]Tush
  18173. Fdad Tush
  18174. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18175. },
  18176. 15: {
  18177. Ffc: *(*struct {
  18178. Fcode [0]Tush
  18179. Ffreq Tush
  18180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  18181. Fdl: *(*struct {
  18182. Flen1 [0]Tush
  18183. Fdad Tush
  18184. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18185. },
  18186. 16: {
  18187. Ffc: *(*struct {
  18188. Fcode [0]Tush
  18189. Ffreq Tush
  18190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  18191. Fdl: *(*struct {
  18192. Flen1 [0]Tush
  18193. Fdad Tush
  18194. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18195. },
  18196. 17: {
  18197. Ffc: *(*struct {
  18198. Fcode [0]Tush
  18199. Ffreq Tush
  18200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  18201. Fdl: *(*struct {
  18202. Flen1 [0]Tush
  18203. Fdad Tush
  18204. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18205. },
  18206. 18: {
  18207. Ffc: *(*struct {
  18208. Fcode [0]Tush
  18209. Ffreq Tush
  18210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18211. Fdl: *(*struct {
  18212. Flen1 [0]Tush
  18213. Fdad Tush
  18214. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18215. },
  18216. 19: {
  18217. Ffc: *(*struct {
  18218. Fcode [0]Tush
  18219. Ffreq Tush
  18220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  18221. Fdl: *(*struct {
  18222. Flen1 [0]Tush
  18223. Fdad Tush
  18224. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18225. },
  18226. 20: {
  18227. Ffc: *(*struct {
  18228. Fcode [0]Tush
  18229. Ffreq Tush
  18230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18231. Fdl: *(*struct {
  18232. Flen1 [0]Tush
  18233. Fdad Tush
  18234. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18235. },
  18236. 21: {
  18237. Ffc: *(*struct {
  18238. Fcode [0]Tush
  18239. Ffreq Tush
  18240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  18241. Fdl: *(*struct {
  18242. Flen1 [0]Tush
  18243. Fdad Tush
  18244. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18245. },
  18246. 22: {
  18247. Ffc: *(*struct {
  18248. Fcode [0]Tush
  18249. Ffreq Tush
  18250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  18251. Fdl: *(*struct {
  18252. Flen1 [0]Tush
  18253. Fdad Tush
  18254. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18255. },
  18256. 23: {
  18257. Ffc: *(*struct {
  18258. Fcode [0]Tush
  18259. Ffreq Tush
  18260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  18261. Fdl: *(*struct {
  18262. Flen1 [0]Tush
  18263. Fdad Tush
  18264. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18265. },
  18266. 24: {
  18267. Ffc: *(*struct {
  18268. Fcode [0]Tush
  18269. Ffreq Tush
  18270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  18271. Fdl: *(*struct {
  18272. Flen1 [0]Tush
  18273. Fdad Tush
  18274. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18275. },
  18276. 25: {
  18277. Ffc: *(*struct {
  18278. Fcode [0]Tush
  18279. Ffreq Tush
  18280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  18281. Fdl: *(*struct {
  18282. Flen1 [0]Tush
  18283. Fdad Tush
  18284. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18285. },
  18286. 26: {
  18287. Ffc: *(*struct {
  18288. Fcode [0]Tush
  18289. Ffreq Tush
  18290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18291. Fdl: *(*struct {
  18292. Flen1 [0]Tush
  18293. Fdad Tush
  18294. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18295. },
  18296. 27: {
  18297. Ffc: *(*struct {
  18298. Fcode [0]Tush
  18299. Ffreq Tush
  18300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18301. Fdl: *(*struct {
  18302. Flen1 [0]Tush
  18303. Fdad Tush
  18304. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18305. },
  18306. 28: {
  18307. Ffc: *(*struct {
  18308. Fcode [0]Tush
  18309. Ffreq Tush
  18310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  18311. Fdl: *(*struct {
  18312. Flen1 [0]Tush
  18313. Fdad Tush
  18314. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18315. },
  18316. 29: {
  18317. Ffc: *(*struct {
  18318. Fcode [0]Tush
  18319. Ffreq Tush
  18320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  18321. Fdl: *(*struct {
  18322. Flen1 [0]Tush
  18323. Fdad Tush
  18324. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18325. },
  18326. }
  18327. var _base_length = [29]int32{
  18328. 1: int32(1),
  18329. 2: int32(2),
  18330. 3: int32(3),
  18331. 4: int32(4),
  18332. 5: int32(5),
  18333. 6: int32(6),
  18334. 7: int32(7),
  18335. 8: int32(8),
  18336. 9: int32(10),
  18337. 10: int32(12),
  18338. 11: int32(14),
  18339. 12: int32(16),
  18340. 13: int32(20),
  18341. 14: int32(24),
  18342. 15: int32(28),
  18343. 16: int32(32),
  18344. 17: int32(40),
  18345. 18: int32(48),
  18346. 19: int32(56),
  18347. 20: int32(64),
  18348. 21: int32(80),
  18349. 22: int32(96),
  18350. 23: int32(112),
  18351. 24: int32(128),
  18352. 25: int32(160),
  18353. 26: int32(192),
  18354. 27: int32(224),
  18355. }
  18356. var _base_dist = [30]int32{
  18357. 1: int32(1),
  18358. 2: int32(2),
  18359. 3: int32(3),
  18360. 4: int32(4),
  18361. 5: int32(6),
  18362. 6: int32(8),
  18363. 7: int32(12),
  18364. 8: int32(16),
  18365. 9: int32(24),
  18366. 10: int32(32),
  18367. 11: int32(48),
  18368. 12: int32(64),
  18369. 13: int32(96),
  18370. 14: int32(128),
  18371. 15: int32(192),
  18372. 16: int32(256),
  18373. 17: int32(384),
  18374. 18: int32(512),
  18375. 19: int32(768),
  18376. 20: int32(1024),
  18377. 21: int32(1536),
  18378. 22: int32(2048),
  18379. 23: int32(3072),
  18380. 24: int32(4096),
  18381. 25: int32(6144),
  18382. 26: int32(8192),
  18383. 27: int32(12288),
  18384. 28: int32(16384),
  18385. 29: int32(24576),
  18386. }
  18387. var _static_l_desc = Tstatic_tree_desc{
  18388. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  18389. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  18390. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  18391. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  18392. Fmax_length: int32(m_MAX_BITS),
  18393. }
  18394. var _static_d_desc = Tstatic_tree_desc{
  18395. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  18396. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  18397. Felems: int32(m_D_CODES),
  18398. Fmax_length: int32(m_MAX_BITS),
  18399. }
  18400. var _static_bl_desc = Tstatic_tree_desc{
  18401. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  18402. Felems: int32(m_BL_CODES),
  18403. Fmax_length: int32(m_MAX_BL_BITS),
  18404. }
  18405. /* ===========================================================================
  18406. * Output a short LSB first on the stream.
  18407. * IN assertion: there is enough room in pendingBuf.
  18408. */
  18409. // C documentation
  18410. //
  18411. // /* ===========================================================================
  18412. // * Reverse the first len bits of a code, using straightforward code (a faster
  18413. // * method would use a table)
  18414. // * IN assertion: 1 <= len <= 15
  18415. // */
  18416. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  18417. var res uint32
  18418. var v1 int32
  18419. _, _ = res, v1
  18420. res = uint32(0)
  18421. for {
  18422. res |= code & uint32(1)
  18423. code >>= uint32(1)
  18424. res <<= uint32(1)
  18425. goto _2
  18426. _2:
  18427. ;
  18428. len1--
  18429. v1 = len1
  18430. if !(v1 > 0) {
  18431. break
  18432. }
  18433. }
  18434. return res >> int32(1)
  18435. }
  18436. // C documentation
  18437. //
  18438. // /* ===========================================================================
  18439. // * Flush the bit buffer, keeping at most 7 bits in it.
  18440. // */
  18441. func _bi_flush(tls *libc.TLS, s uintptr) {
  18442. var v1, v3, v5 Tulg
  18443. var v2, v4, v6, p7 uintptr
  18444. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  18445. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  18446. v2 = s + 40
  18447. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18448. *(*Tulg)(unsafe.Pointer(v2))++
  18449. *(*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))
  18450. v4 = s + 40
  18451. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18452. *(*Tulg)(unsafe.Pointer(v4))++
  18453. *(*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))
  18454. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18455. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18456. } else {
  18457. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  18458. v6 = s + 40
  18459. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18460. *(*Tulg)(unsafe.Pointer(v6))++
  18461. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18462. p7 = s + 5936
  18463. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  18464. *(*int32)(unsafe.Pointer(s + 5940)) -= int32(8)
  18465. }
  18466. }
  18467. }
  18468. // C documentation
  18469. //
  18470. // /* ===========================================================================
  18471. // * Flush the bit buffer and align the output on a byte boundary
  18472. // */
  18473. func _bi_windup(tls *libc.TLS, s uintptr) {
  18474. var v1, v3, v5 Tulg
  18475. var v2, v4, v6 uintptr
  18476. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  18477. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  18478. v2 = s + 40
  18479. v1 = *(*Tulg)(unsafe.Pointer(v2))
  18480. *(*Tulg)(unsafe.Pointer(v2))++
  18481. *(*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))
  18482. v4 = s + 40
  18483. v3 = *(*Tulg)(unsafe.Pointer(v4))
  18484. *(*Tulg)(unsafe.Pointer(v4))++
  18485. *(*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))
  18486. } else {
  18487. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  18488. v6 = s + 40
  18489. v5 = *(*Tulg)(unsafe.Pointer(v6))
  18490. *(*Tulg)(unsafe.Pointer(v6))++
  18491. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  18492. }
  18493. }
  18494. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18495. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18496. }
  18497. // C documentation
  18498. //
  18499. // /* ===========================================================================
  18500. // * Generate the codes for a given tree and bit counts (which need not be
  18501. // * optimal).
  18502. // * IN assertion: the array bl_count contains the bit length statistics for
  18503. // * the given tree and the field len is set for all tree elements.
  18504. // * OUT assertion: the field code is set for all tree elements of non
  18505. // * zero code length.
  18506. // */
  18507. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  18508. bp := tls.Alloc(32)
  18509. defer tls.Free(32)
  18510. var bits, len1, n int32
  18511. var code uint32
  18512. var v3 Tush
  18513. var v4 uintptr
  18514. var _ /* next_code at bp+0 */ [16]Tush
  18515. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  18516. code = uint32(0) /* code index */
  18517. /* The distribution counts are first used to generate the code values
  18518. * without bit reversal.
  18519. */
  18520. bits = int32(1)
  18521. for {
  18522. if !(bits <= int32(m_MAX_BITS)) {
  18523. break
  18524. }
  18525. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  18526. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  18527. goto _1
  18528. _1:
  18529. ;
  18530. bits++
  18531. }
  18532. /* Check that the bit counts in bl_count are consistent. The last code
  18533. * must be all ones.
  18534. */
  18535. n = 0
  18536. for {
  18537. if !(n <= max_code) {
  18538. break
  18539. }
  18540. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  18541. if len1 == 0 {
  18542. goto _2
  18543. }
  18544. /* Now reverse the bits */
  18545. v4 = bp + uintptr(len1)*2
  18546. v3 = *(*Tush)(unsafe.Pointer(v4))
  18547. *(*Tush)(unsafe.Pointer(v4))++
  18548. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  18549. goto _2
  18550. _2:
  18551. ;
  18552. n++
  18553. }
  18554. }
  18555. /* Send a code of the given tree. c and tree must not have side effects */
  18556. /* ===========================================================================
  18557. * Send a value on a given number of bits.
  18558. * IN assertion: length <= 16 and value fits in length bits.
  18559. */
  18560. /* the arguments must not have side effects */
  18561. // C documentation
  18562. //
  18563. // /* ===========================================================================
  18564. // * Initialize the various 'constant' tables.
  18565. // */
  18566. func _tr_static_init(tls *libc.TLS) {
  18567. }
  18568. /* ===========================================================================
  18569. * Generate the file trees.h describing the static trees.
  18570. */
  18571. // C documentation
  18572. //
  18573. // /* ===========================================================================
  18574. // * Initialize a new block.
  18575. // */
  18576. func _init_block(tls *libc.TLS, s uintptr) {
  18577. var n int32
  18578. var v4 Tulg
  18579. var v5 TuInt
  18580. _, _, _ = n, v4, v5 /* iterates over tree elements */
  18581. /* Initialize the trees. */
  18582. n = 0
  18583. for {
  18584. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  18585. break
  18586. }
  18587. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4)) = uint16(0)
  18588. goto _1
  18589. _1:
  18590. ;
  18591. n++
  18592. }
  18593. n = 0
  18594. for {
  18595. if !(n < int32(m_D_CODES)) {
  18596. break
  18597. }
  18598. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(n)*4)) = uint16(0)
  18599. goto _2
  18600. _2:
  18601. ;
  18602. n++
  18603. }
  18604. n = 0
  18605. for {
  18606. if !(n < int32(m_BL_CODES)) {
  18607. break
  18608. }
  18609. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(n)*4)) = uint16(0)
  18610. goto _3
  18611. _3:
  18612. ;
  18613. n++
  18614. }
  18615. *(*Tush)(unsafe.Pointer(s + 212 + 256*4)) = uint16(1)
  18616. v4 = libc.Uint64FromInt64(0)
  18617. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  18618. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  18619. v5 = libc.Uint32FromInt32(0)
  18620. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  18621. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  18622. }
  18623. // C documentation
  18624. //
  18625. // /* ===========================================================================
  18626. // * Initialize the tree data structures for a new zlib stream.
  18627. // */
  18628. func x__tr_init(tls *libc.TLS, s uintptr) {
  18629. _tr_static_init(tls)
  18630. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 212
  18631. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  18632. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2504
  18633. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  18634. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2748
  18635. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  18636. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  18637. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  18638. /* Initialize the first block of the first file: */
  18639. _init_block(tls, s)
  18640. }
  18641. /* Index within the heap array of least frequent node in the Huffman tree */
  18642. /* ===========================================================================
  18643. * Remove the smallest element from the heap and recreate the heap with
  18644. * one less element. Updates heap and heap_len.
  18645. */
  18646. /* ===========================================================================
  18647. * Compares to subtrees, using the tree depth as tie breaker when
  18648. * the subtrees have equal frequency. This minimizes the worst case length.
  18649. */
  18650. // C documentation
  18651. //
  18652. // /* ===========================================================================
  18653. // * Restore the heap property by moving down the tree starting at node k,
  18654. // * exchanging a node with the smallest of its two sons if necessary, stopping
  18655. // * when the heap property is re-established (each father smaller than its
  18656. // * two sons).
  18657. // */
  18658. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  18659. var j, v int32
  18660. _, _ = j, v
  18661. v = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4))
  18662. j = k << int32(1) /* left son of k */
  18663. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  18664. /* Set j to the smallest of the two sons: */
  18665. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))))))) {
  18666. j++
  18667. }
  18668. /* Exit if v is smaller than both sons */
  18669. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(v)))) <= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))))) {
  18670. break
  18671. }
  18672. /* Exchange v with the smallest son */
  18673. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))
  18674. k = j
  18675. /* And continue down the tree, setting j to the left son of k */
  18676. j <<= int32(1)
  18677. }
  18678. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = v
  18679. }
  18680. // C documentation
  18681. //
  18682. // /* ===========================================================================
  18683. // * Compute the optimal bit lengths for a tree and update the total bit length
  18684. // * for the current block.
  18685. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  18686. // * above are the tree nodes sorted by increasing frequency.
  18687. // * OUT assertions: the field len is set to the optimal bit length, the
  18688. // * array bl_count contains the frequencies for each bit length.
  18689. // * The length opt_len is updated; static_len is also updated if stree is
  18690. // * not null.
  18691. // */
  18692. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  18693. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  18694. var extra, stree, tree, p3 uintptr
  18695. var f Tush
  18696. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  18697. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18698. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  18699. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18700. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  18701. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  18702. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  18703. overflow = 0 /* number of elements with bit length too large */
  18704. bits = 0
  18705. for {
  18706. if !(bits <= int32(m_MAX_BITS)) {
  18707. break
  18708. }
  18709. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)) = uint16(0)
  18710. goto _1
  18711. _1:
  18712. ;
  18713. bits++
  18714. }
  18715. /* In a first pass, compute the optimal bit lengths (which may
  18716. * overflow in the case of the bit length tree).
  18717. */
  18718. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  18719. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  18720. for {
  18721. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  18722. break
  18723. }
  18724. n = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(h)*4))
  18725. bits = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  18726. if bits > max_length {
  18727. bits = max_length
  18728. overflow++
  18729. }
  18730. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = libc.Uint16FromInt32(bits)
  18731. /* We overwrite tree[n].Dad which is no longer needed */
  18732. if n > max_code {
  18733. goto _2
  18734. } /* not a leaf node */
  18735. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))++
  18736. xbits = 0
  18737. if n >= base {
  18738. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  18739. }
  18740. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  18741. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(f) * uint64(libc.Uint32FromInt32(bits+xbits))
  18742. if stree != 0 {
  18743. *(*Tulg)(unsafe.Pointer(s + 5920)) += uint64(f) * uint64(libc.Uint32FromInt32(libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  18744. }
  18745. goto _2
  18746. _2:
  18747. ;
  18748. h++
  18749. }
  18750. if overflow == 0 {
  18751. return
  18752. }
  18753. /* This happens for example on obj2 and pic of the Calgary corpus */
  18754. /* Find the first bit length which could increase: */
  18755. for cond := true; cond; cond = overflow > 0 {
  18756. bits = max_length - int32(1)
  18757. for libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))) == 0 {
  18758. bits--
  18759. }
  18760. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))-- /* move one leaf down the tree */
  18761. p3 = s + 2976 + uintptr(bits+int32(1))*2
  18762. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  18763. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(max_length)*2))--
  18764. /* The brother of the overflow item also moves one step up,
  18765. * but this does not affect bl_count[max_length]
  18766. */
  18767. overflow -= int32(2)
  18768. }
  18769. /* Now recompute all bit lengths, scanning in increasing frequency.
  18770. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  18771. * lengths instead of fixing only the wrong ones. This idea is taken
  18772. * from 'ar' written by Haruhiko Okumura.)
  18773. */
  18774. bits = max_length
  18775. for {
  18776. if !(bits != 0) {
  18777. break
  18778. }
  18779. n = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)))
  18780. for n != 0 {
  18781. h--
  18782. v5 = h
  18783. m = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v5)*4))
  18784. if m > max_code {
  18785. continue
  18786. }
  18787. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != libc.Uint32FromInt32(bits) {
  18788. *(*Tulg)(unsafe.Pointer(s + 5912)) += (libc.Uint64FromInt32(bits) - uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  18789. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = libc.Uint16FromInt32(bits)
  18790. }
  18791. n--
  18792. }
  18793. goto _4
  18794. _4:
  18795. ;
  18796. bits--
  18797. }
  18798. }
  18799. // C documentation
  18800. //
  18801. // /* ===========================================================================
  18802. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  18803. // * Update the total bit length for the current block.
  18804. // * IN assertion: the field freq is set for all tree elements.
  18805. // * OUT assertions: the fields len and code are set to the optimal bit length
  18806. // * and corresponding code. The length opt_len is updated; static_len is
  18807. // * also updated if stree is not null. The field max_code is set.
  18808. // */
  18809. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  18810. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  18811. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  18812. var v18 Tush
  18813. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  18814. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  18815. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  18816. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  18817. max_code = -int32(1) /* new node being created */
  18818. /* Construct the initial heap, with least frequent element in
  18819. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18820. * heap[0] is not used.
  18821. */
  18822. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  18823. /* Construct the initial heap, with least frequent element in
  18824. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  18825. * heap[0] is not used.
  18826. */
  18827. (*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)
  18828. n = 0
  18829. for {
  18830. if !(n < elems) {
  18831. break
  18832. }
  18833. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  18834. v3 = s + 5300
  18835. *(*int32)(unsafe.Pointer(v3))++
  18836. v2 = *(*int32)(unsafe.Pointer(v3))
  18837. v4 = n
  18838. max_code = v4
  18839. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v2)*4)) = v4
  18840. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))) = uint8(0)
  18841. } else {
  18842. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  18843. }
  18844. goto _1
  18845. _1:
  18846. ;
  18847. n++
  18848. }
  18849. /* The pkzip format requires that at least one distance code exists,
  18850. * and that at least one bit should be sent even if there is only one
  18851. * possible code. So to avoid special checks later on we force at least
  18852. * two codes of non zero frequency.
  18853. */
  18854. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  18855. if max_code < int32(2) {
  18856. max_code++
  18857. v7 = max_code
  18858. v6 = v7
  18859. } else {
  18860. v6 = 0
  18861. }
  18862. v5 = v6
  18863. v9 = s + 5300
  18864. *(*int32)(unsafe.Pointer(v9))++
  18865. v8 = *(*int32)(unsafe.Pointer(v9))
  18866. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v8)*4)) = v5
  18867. node = v5
  18868. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  18869. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(0)
  18870. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  18871. if stree != 0 {
  18872. *(*Tulg)(unsafe.Pointer(s + 5920)) -= uint64(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  18873. }
  18874. /* node is 0 or 1 so it does not have extra bits */
  18875. }
  18876. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  18877. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  18878. * establish sub-heaps of increasing lengths:
  18879. */
  18880. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  18881. for {
  18882. if !(n >= int32(1)) {
  18883. break
  18884. }
  18885. _pqdownheap(tls, s, tree, n)
  18886. goto _10
  18887. _10:
  18888. ;
  18889. n--
  18890. }
  18891. /* Construct the Huffman tree by repeatedly combining the least two
  18892. * frequent nodes.
  18893. */
  18894. node = elems /* next internal node of the tree */
  18895. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  18896. n = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18897. v12 = s + 5300
  18898. v11 = *(*int32)(unsafe.Pointer(v12))
  18899. *(*int32)(unsafe.Pointer(v12))--
  18900. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v11)*4))
  18901. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  18902. m = *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) /* m = node of next least frequency */
  18903. v14 = s + 5304
  18904. *(*int32)(unsafe.Pointer(v14))--
  18905. v13 = *(*int32)(unsafe.Pointer(v14))
  18906. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  18907. v16 = s + 5304
  18908. *(*int32)(unsafe.Pointer(v16))--
  18909. v15 = *(*int32)(unsafe.Pointer(v16))
  18910. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v15)*4)) = m
  18911. /* Create a new node father of n and m */
  18912. *(*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))))
  18913. if libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n)))) >= libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m)))) {
  18914. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))))
  18915. } else {
  18916. v17 = libc.Int32FromUint8(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m))))
  18917. }
  18918. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = libc.Uint8FromInt32(v17 + libc.Int32FromInt32(1))
  18919. v18 = libc.Uint16FromInt32(node)
  18920. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  18921. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  18922. /* and insert the new node in the heap */
  18923. v19 = node
  18924. node++
  18925. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = v19
  18926. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  18927. }
  18928. v21 = s + 5304
  18929. *(*int32)(unsafe.Pointer(v21))--
  18930. v20 = *(*int32)(unsafe.Pointer(v21))
  18931. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  18932. /* At this point, the fields freq and dad are set. We can now
  18933. * generate the bit lengths.
  18934. */
  18935. _gen_bitlen(tls, s, desc)
  18936. /* The field len is now set, we can generate the bit codes */
  18937. _gen_codes(tls, tree, max_code, s+2976)
  18938. }
  18939. // C documentation
  18940. //
  18941. // /* ===========================================================================
  18942. // * Scan a literal or distance tree to determine the frequencies of the codes
  18943. // * in the bit length tree.
  18944. // */
  18945. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  18946. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  18947. var p3 uintptr
  18948. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  18949. prevlen = -int32(1) /* length of current code */
  18950. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  18951. count = 0 /* repeat count of the current code */
  18952. max_count = int32(7) /* max repeat count */
  18953. min_count = int32(4) /* min repeat count */
  18954. if nextlen == 0 {
  18955. max_count = int32(138)
  18956. min_count = libc.Int32FromInt32(3)
  18957. }
  18958. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  18959. n = 0
  18960. for {
  18961. if !(n <= max_code) {
  18962. break
  18963. }
  18964. curlen = nextlen
  18965. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  18966. count++
  18967. v2 = count
  18968. if v2 < max_count && curlen == nextlen {
  18969. goto _1
  18970. } else {
  18971. if count < min_count {
  18972. p3 = s + 2748 + uintptr(curlen)*4
  18973. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  18974. } else {
  18975. if curlen != 0 {
  18976. if curlen != prevlen {
  18977. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4))++
  18978. }
  18979. *(*Tush)(unsafe.Pointer(s + 2748 + 16*4))++
  18980. } else {
  18981. if count <= int32(10) {
  18982. *(*Tush)(unsafe.Pointer(s + 2748 + 17*4))++
  18983. } else {
  18984. *(*Tush)(unsafe.Pointer(s + 2748 + 18*4))++
  18985. }
  18986. }
  18987. }
  18988. }
  18989. count = 0
  18990. prevlen = curlen
  18991. if nextlen == 0 {
  18992. max_count = int32(138)
  18993. min_count = libc.Int32FromInt32(3)
  18994. } else {
  18995. if curlen == nextlen {
  18996. max_count = int32(6)
  18997. min_count = libc.Int32FromInt32(3)
  18998. } else {
  18999. max_count = int32(7)
  19000. min_count = libc.Int32FromInt32(4)
  19001. }
  19002. }
  19003. goto _1
  19004. _1:
  19005. ;
  19006. n++
  19007. }
  19008. }
  19009. // C documentation
  19010. //
  19011. // /* ===========================================================================
  19012. // * Send a literal or distance tree in compressed form, using the codes in
  19013. // * bl_tree.
  19014. // */
  19015. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  19016. 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
  19017. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  19018. 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
  19019. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19020. prevlen = -int32(1) /* length of current code */
  19021. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  19022. count = 0 /* repeat count of the current code */
  19023. max_count = int32(7) /* max repeat count */
  19024. min_count = int32(4) /* min repeat count */
  19025. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  19026. if nextlen == 0 {
  19027. max_count = int32(138)
  19028. min_count = libc.Int32FromInt32(3)
  19029. }
  19030. n = 0
  19031. for {
  19032. if !(n <= max_code) {
  19033. break
  19034. }
  19035. curlen = nextlen
  19036. nextlen = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  19037. count++
  19038. v2 = count
  19039. if v2 < max_count && curlen == nextlen {
  19040. goto _1
  19041. } else {
  19042. if count < min_count {
  19043. for {
  19044. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  19045. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19046. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  19047. p5 = s + 5936
  19048. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19049. v7 = s + 40
  19050. v6 = *(*Tulg)(unsafe.Pointer(v7))
  19051. *(*Tulg)(unsafe.Pointer(v7))++
  19052. *(*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))
  19053. v9 = s + 40
  19054. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19055. *(*Tulg)(unsafe.Pointer(v9))++
  19056. *(*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))
  19057. (*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))
  19058. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19059. } else {
  19060. p10 = s + 5936
  19061. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19062. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19063. }
  19064. goto _4
  19065. _4:
  19066. ;
  19067. count--
  19068. v3 = count
  19069. if !(v3 != 0) {
  19070. break
  19071. }
  19072. }
  19073. } else {
  19074. if curlen != 0 {
  19075. if curlen != prevlen {
  19076. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  19077. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19078. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  19079. p11 = s + 5936
  19080. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19081. v13 = s + 40
  19082. v12 = *(*Tulg)(unsafe.Pointer(v13))
  19083. *(*Tulg)(unsafe.Pointer(v13))++
  19084. *(*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))
  19085. v15 = s + 40
  19086. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19087. *(*Tulg)(unsafe.Pointer(v15))++
  19088. *(*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))
  19089. (*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))
  19090. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19091. } else {
  19092. p16 = s + 5936
  19093. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19094. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19095. }
  19096. count--
  19097. }
  19098. len2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4 + 2)))
  19099. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19100. val2 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))
  19101. p17 = s + 5936
  19102. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19103. v19 = s + 40
  19104. v18 = *(*Tulg)(unsafe.Pointer(v19))
  19105. *(*Tulg)(unsafe.Pointer(v19))++
  19106. *(*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))
  19107. v21 = s + 40
  19108. v20 = *(*Tulg)(unsafe.Pointer(v21))
  19109. *(*Tulg)(unsafe.Pointer(v21))++
  19110. *(*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))
  19111. (*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))
  19112. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19113. } else {
  19114. p22 = s + 5936
  19115. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19116. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19117. }
  19118. len3 = int32(2)
  19119. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19120. val3 = count - int32(3)
  19121. p23 = s + 5936
  19122. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19123. v25 = s + 40
  19124. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19125. *(*Tulg)(unsafe.Pointer(v25))++
  19126. *(*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))
  19127. v27 = s + 40
  19128. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19129. *(*Tulg)(unsafe.Pointer(v27))++
  19130. *(*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))
  19131. (*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))
  19132. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19133. } else {
  19134. p28 = s + 5936
  19135. *(*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)
  19136. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19137. }
  19138. } else {
  19139. if count <= int32(10) {
  19140. len4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4 + 2)))
  19141. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19142. val4 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))
  19143. p29 = s + 5936
  19144. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19145. v31 = s + 40
  19146. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19147. *(*Tulg)(unsafe.Pointer(v31))++
  19148. *(*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))
  19149. v33 = s + 40
  19150. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19151. *(*Tulg)(unsafe.Pointer(v33))++
  19152. *(*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))
  19153. (*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))
  19154. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19155. } else {
  19156. p34 = s + 5936
  19157. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19158. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19159. }
  19160. len5 = int32(3)
  19161. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19162. val5 = count - int32(3)
  19163. p35 = s + 5936
  19164. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19165. v37 = s + 40
  19166. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19167. *(*Tulg)(unsafe.Pointer(v37))++
  19168. *(*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))
  19169. v39 = s + 40
  19170. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19171. *(*Tulg)(unsafe.Pointer(v39))++
  19172. *(*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))
  19173. (*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))
  19174. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19175. } else {
  19176. p40 = s + 5936
  19177. *(*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)
  19178. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19179. }
  19180. } else {
  19181. len6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4 + 2)))
  19182. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  19183. val6 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))
  19184. p41 = s + 5936
  19185. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | libc.Int32FromUint16(libc.Uint16FromInt32(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19186. v43 = s + 40
  19187. v42 = *(*Tulg)(unsafe.Pointer(v43))
  19188. *(*Tulg)(unsafe.Pointer(v43))++
  19189. *(*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))
  19190. v45 = s + 40
  19191. v44 = *(*Tulg)(unsafe.Pointer(v45))
  19192. *(*Tulg)(unsafe.Pointer(v45))++
  19193. *(*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))
  19194. (*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))
  19195. *(*int32)(unsafe.Pointer(s + 5940)) += len6 - int32(m_Buf_size)
  19196. } else {
  19197. p46 = s + 5936
  19198. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19199. *(*int32)(unsafe.Pointer(s + 5940)) += len6
  19200. }
  19201. len7 = int32(7)
  19202. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  19203. val7 = count - int32(11)
  19204. p47 = s + 5936
  19205. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | libc.Int32FromUint16(libc.Uint16FromInt32(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19206. v49 = s + 40
  19207. v48 = *(*Tulg)(unsafe.Pointer(v49))
  19208. *(*Tulg)(unsafe.Pointer(v49))++
  19209. *(*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))
  19210. v51 = s + 40
  19211. v50 = *(*Tulg)(unsafe.Pointer(v51))
  19212. *(*Tulg)(unsafe.Pointer(v51))++
  19213. *(*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))
  19214. (*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))
  19215. *(*int32)(unsafe.Pointer(s + 5940)) += len7 - int32(m_Buf_size)
  19216. } else {
  19217. p52 = s + 5936
  19218. *(*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)
  19219. *(*int32)(unsafe.Pointer(s + 5940)) += len7
  19220. }
  19221. }
  19222. }
  19223. }
  19224. }
  19225. count = 0
  19226. prevlen = curlen
  19227. if nextlen == 0 {
  19228. max_count = int32(138)
  19229. min_count = libc.Int32FromInt32(3)
  19230. } else {
  19231. if curlen == nextlen {
  19232. max_count = int32(6)
  19233. min_count = libc.Int32FromInt32(3)
  19234. } else {
  19235. max_count = int32(7)
  19236. min_count = libc.Int32FromInt32(4)
  19237. }
  19238. }
  19239. goto _1
  19240. _1:
  19241. ;
  19242. n++
  19243. }
  19244. }
  19245. // C documentation
  19246. //
  19247. // /* ===========================================================================
  19248. // * Construct the Huffman tree for the bit lengths and return the index in
  19249. // * bl_order of the last bit length code to send.
  19250. // */
  19251. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  19252. var max_blindex int32
  19253. _ = max_blindex /* index of last bit length code of non zero freq */
  19254. /* Determine the bit length frequencies for literal and distance trees */
  19255. _scan_tree(tls, s, s+212, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  19256. _scan_tree(tls, s, s+2504, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  19257. /* Build the bit length tree: */
  19258. _build_tree(tls, s, s+2952)
  19259. /* opt_len now includes the length of the tree representations, except the
  19260. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  19261. */
  19262. /* Determine the number of bit length codes to send. The pkzip format
  19263. * requires that at least 4 bit length codes be sent. (appnote.txt says
  19264. * 3 but the actual value used is 4.)
  19265. */
  19266. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  19267. for {
  19268. if !(max_blindex >= int32(3)) {
  19269. break
  19270. }
  19271. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  19272. break
  19273. }
  19274. goto _1
  19275. _1:
  19276. ;
  19277. max_blindex--
  19278. }
  19279. /* Update opt_len to include the bit length tree and counts */
  19280. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(3)*(libc.Uint64FromInt32(max_blindex)+uint64(1)) + uint64(5) + uint64(5) + uint64(4)
  19281. return max_blindex
  19282. }
  19283. // C documentation
  19284. //
  19285. // /* ===========================================================================
  19286. // * Send the header for a block using dynamic Huffman trees: the counts, the
  19287. // * lengths of the bit length codes, the literal tree and the distance tree.
  19288. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  19289. // */
  19290. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  19291. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  19292. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  19293. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  19294. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19295. len1 = int32(5)
  19296. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19297. val = lcodes - int32(257)
  19298. p1 = s + 5936
  19299. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19300. v3 = s + 40
  19301. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19302. *(*Tulg)(unsafe.Pointer(v3))++
  19303. *(*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))
  19304. v5 = s + 40
  19305. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19306. *(*Tulg)(unsafe.Pointer(v5))++
  19307. *(*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))
  19308. (*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))
  19309. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19310. } else {
  19311. p6 = s + 5936
  19312. *(*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)
  19313. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19314. } /* not +255 as stated in appnote.txt */
  19315. len11 = int32(5)
  19316. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19317. val1 = dcodes - int32(1)
  19318. p7 = s + 5936
  19319. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19320. v9 = s + 40
  19321. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19322. *(*Tulg)(unsafe.Pointer(v9))++
  19323. *(*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))
  19324. v11 = s + 40
  19325. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19326. *(*Tulg)(unsafe.Pointer(v11))++
  19327. *(*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))
  19328. (*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))
  19329. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19330. } else {
  19331. p12 = s + 5936
  19332. *(*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)
  19333. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19334. }
  19335. len2 = int32(4)
  19336. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19337. val2 = blcodes - int32(4)
  19338. p13 = s + 5936
  19339. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19340. v15 = s + 40
  19341. v14 = *(*Tulg)(unsafe.Pointer(v15))
  19342. *(*Tulg)(unsafe.Pointer(v15))++
  19343. *(*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))
  19344. v17 = s + 40
  19345. v16 = *(*Tulg)(unsafe.Pointer(v17))
  19346. *(*Tulg)(unsafe.Pointer(v17))++
  19347. *(*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))
  19348. (*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))
  19349. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19350. } else {
  19351. p18 = s + 5936
  19352. *(*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)
  19353. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19354. } /* not -3 as stated in appnote.txt */
  19355. rank = 0
  19356. for {
  19357. if !(rank < blcodes) {
  19358. break
  19359. }
  19360. len3 = int32(3)
  19361. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19362. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))
  19363. p20 = s + 5936
  19364. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19365. v22 = s + 40
  19366. v21 = *(*Tulg)(unsafe.Pointer(v22))
  19367. *(*Tulg)(unsafe.Pointer(v22))++
  19368. *(*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))
  19369. v24 = s + 40
  19370. v23 = *(*Tulg)(unsafe.Pointer(v24))
  19371. *(*Tulg)(unsafe.Pointer(v24))++
  19372. *(*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))
  19373. (*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))
  19374. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19375. } else {
  19376. p25 = s + 5936
  19377. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19378. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19379. }
  19380. goto _19
  19381. _19:
  19382. ;
  19383. rank++
  19384. }
  19385. _send_tree(tls, s, s+212, lcodes-int32(1)) /* literal tree */
  19386. _send_tree(tls, s, s+2504, dcodes-int32(1)) /* distance tree */
  19387. }
  19388. // C documentation
  19389. //
  19390. // /* ===========================================================================
  19391. // * Send a stored block
  19392. // */
  19393. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19394. var len1, val int32
  19395. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  19396. var v11, v13, v2, v4, v7, v9 Tulg
  19397. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  19398. len1 = int32(3)
  19399. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19400. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  19401. p1 = s + 5936
  19402. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19403. v3 = s + 40
  19404. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19405. *(*Tulg)(unsafe.Pointer(v3))++
  19406. *(*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))
  19407. v5 = s + 40
  19408. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19409. *(*Tulg)(unsafe.Pointer(v5))++
  19410. *(*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))
  19411. (*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))
  19412. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19413. } else {
  19414. p6 = s + 5936
  19415. *(*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)
  19416. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19417. } /* send block type */
  19418. _bi_windup(tls, s) /* align on byte boundary */
  19419. v8 = s + 40
  19420. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19421. *(*Tulg)(unsafe.Pointer(v8))++
  19422. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  19423. v10 = s + 40
  19424. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19425. *(*Tulg)(unsafe.Pointer(v10))++
  19426. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(stored_len)) >> libc.Int32FromInt32(8))
  19427. v12 = s + 40
  19428. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19429. *(*Tulg)(unsafe.Pointer(v12))++
  19430. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  19431. v14 = s + 40
  19432. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19433. *(*Tulg)(unsafe.Pointer(v14))++
  19434. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = libc.Uint8FromInt32(libc.Int32FromUint16(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  19435. if stored_len != 0 {
  19436. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  19437. }
  19438. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  19439. }
  19440. // C documentation
  19441. //
  19442. // /* ===========================================================================
  19443. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  19444. // */
  19445. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  19446. _bi_flush(tls, s)
  19447. }
  19448. // C documentation
  19449. //
  19450. // /* ===========================================================================
  19451. // * Send one empty static block to give enough lookahead for inflate.
  19452. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  19453. // */
  19454. func x__tr_align(tls *libc.TLS, s uintptr) {
  19455. var len1, len11, val, val1 int32
  19456. var v10, v2, v4, v8 Tulg
  19457. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  19458. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  19459. len1 = int32(3)
  19460. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19461. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  19462. p1 = s + 5936
  19463. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19464. v3 = s + 40
  19465. v2 = *(*Tulg)(unsafe.Pointer(v3))
  19466. *(*Tulg)(unsafe.Pointer(v3))++
  19467. *(*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))
  19468. v5 = s + 40
  19469. v4 = *(*Tulg)(unsafe.Pointer(v5))
  19470. *(*Tulg)(unsafe.Pointer(v5))++
  19471. *(*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))
  19472. (*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))
  19473. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19474. } else {
  19475. p6 = s + 5936
  19476. *(*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)
  19477. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19478. }
  19479. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  19480. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19481. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  19482. p7 = s + 5936
  19483. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19484. v9 = s + 40
  19485. v8 = *(*Tulg)(unsafe.Pointer(v9))
  19486. *(*Tulg)(unsafe.Pointer(v9))++
  19487. *(*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))
  19488. v11 = s + 40
  19489. v10 = *(*Tulg)(unsafe.Pointer(v11))
  19490. *(*Tulg)(unsafe.Pointer(v11))++
  19491. *(*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))
  19492. (*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))
  19493. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19494. } else {
  19495. p12 = s + 5936
  19496. *(*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)
  19497. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19498. }
  19499. _bi_flush(tls, s)
  19500. }
  19501. // C documentation
  19502. //
  19503. // /* ===========================================================================
  19504. // * Send the block data compressed using the given Huffman trees
  19505. // */
  19506. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  19507. var code, dist, sx, v1, v2, v3 uint32
  19508. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  19509. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  19510. 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
  19511. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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) */
  19512. sx = uint32(0) /* number of extra bits to send */
  19513. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  19514. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  19515. v1 = sx
  19516. sx++
  19517. dist = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  19518. v2 = sx
  19519. sx++
  19520. dist += libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  19521. v3 = sx
  19522. sx++
  19523. lc = libc.Int32FromUint8(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  19524. if dist == uint32(0) {
  19525. len1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  19526. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19527. val = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  19528. p4 = s + 5936
  19529. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19530. v6 = s + 40
  19531. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19532. *(*Tulg)(unsafe.Pointer(v6))++
  19533. *(*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))
  19534. v8 = s + 40
  19535. v7 = *(*Tulg)(unsafe.Pointer(v8))
  19536. *(*Tulg)(unsafe.Pointer(v8))++
  19537. *(*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))
  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 + 5940)) += len1 - int32(m_Buf_size)
  19540. } else {
  19541. p9 = s + 5936
  19542. *(*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)
  19543. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19544. } /* send a literal byte */
  19545. } else {
  19546. /* Here, lc is the match length - MIN_MATCH */
  19547. code = uint32(x__length_code[lc])
  19548. len11 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  19549. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19550. val1 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  19551. p10 = s + 5936
  19552. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19553. v12 = s + 40
  19554. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19555. *(*Tulg)(unsafe.Pointer(v12))++
  19556. *(*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))
  19557. v14 = s + 40
  19558. v13 = *(*Tulg)(unsafe.Pointer(v14))
  19559. *(*Tulg)(unsafe.Pointer(v14))++
  19560. *(*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))
  19561. (*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))
  19562. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19563. } else {
  19564. p15 = s + 5936
  19565. *(*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)
  19566. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19567. } /* send length code */
  19568. extra = _extra_lbits[code]
  19569. if extra != 0 {
  19570. lc -= _base_length[code]
  19571. len2 = extra
  19572. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  19573. val2 = lc
  19574. p16 = s + 5936
  19575. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | libc.Int32FromUint16(libc.Uint16FromInt32(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19576. v18 = s + 40
  19577. v17 = *(*Tulg)(unsafe.Pointer(v18))
  19578. *(*Tulg)(unsafe.Pointer(v18))++
  19579. *(*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))
  19580. v20 = s + 40
  19581. v19 = *(*Tulg)(unsafe.Pointer(v20))
  19582. *(*Tulg)(unsafe.Pointer(v20))++
  19583. *(*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))
  19584. (*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))
  19585. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  19586. } else {
  19587. p21 = s + 5936
  19588. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | libc.Int32FromUint16(libc.Uint16FromInt32(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19589. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  19590. } /* send the extra length bits */
  19591. }
  19592. dist-- /* dist is now the match distance - 1 */
  19593. if dist < uint32(256) {
  19594. v22 = libc.Int32FromUint8(x__dist_code[dist])
  19595. } else {
  19596. v22 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19597. }
  19598. code = libc.Uint32FromInt32(v22)
  19599. len3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  19600. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  19601. val3 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  19602. p23 = s + 5936
  19603. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | libc.Int32FromUint16(libc.Uint16FromInt32(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19604. v25 = s + 40
  19605. v24 = *(*Tulg)(unsafe.Pointer(v25))
  19606. *(*Tulg)(unsafe.Pointer(v25))++
  19607. *(*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))
  19608. v27 = s + 40
  19609. v26 = *(*Tulg)(unsafe.Pointer(v27))
  19610. *(*Tulg)(unsafe.Pointer(v27))++
  19611. *(*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))
  19612. (*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))
  19613. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  19614. } else {
  19615. p28 = s + 5936
  19616. *(*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)
  19617. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  19618. } /* send the distance code */
  19619. extra = _extra_dbits[code]
  19620. if extra != 0 {
  19621. dist -= libc.Uint32FromInt32(_base_dist[code])
  19622. len4 = extra
  19623. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  19624. val4 = libc.Int32FromUint32(dist)
  19625. p29 = s + 5936
  19626. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | libc.Int32FromUint16(libc.Uint16FromInt32(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19627. v31 = s + 40
  19628. v30 = *(*Tulg)(unsafe.Pointer(v31))
  19629. *(*Tulg)(unsafe.Pointer(v31))++
  19630. *(*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))
  19631. v33 = s + 40
  19632. v32 = *(*Tulg)(unsafe.Pointer(v33))
  19633. *(*Tulg)(unsafe.Pointer(v33))++
  19634. *(*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))
  19635. (*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))
  19636. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  19637. } else {
  19638. p34 = s + 5936
  19639. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | libc.Int32FromUint16(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19640. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  19641. } /* send the extra distance bits */
  19642. }
  19643. } /* literal or match pair ? */
  19644. /* Check for no overlay of pending_buf on needed symbols */
  19645. }
  19646. }
  19647. len5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  19648. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  19649. val5 = libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  19650. p35 = s + 5936
  19651. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | libc.Int32FromUint16(libc.Uint16FromInt32(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19652. v37 = s + 40
  19653. v36 = *(*Tulg)(unsafe.Pointer(v37))
  19654. *(*Tulg)(unsafe.Pointer(v37))++
  19655. *(*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))
  19656. v39 = s + 40
  19657. v38 = *(*Tulg)(unsafe.Pointer(v39))
  19658. *(*Tulg)(unsafe.Pointer(v39))++
  19659. *(*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))
  19660. (*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))
  19661. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  19662. } else {
  19663. p40 = s + 5936
  19664. *(*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)
  19665. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  19666. }
  19667. }
  19668. // C documentation
  19669. //
  19670. // /* ===========================================================================
  19671. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  19672. // * - TEXT if the two conditions below are satisfied:
  19673. // * a) There are no non-portable control characters belonging to the
  19674. // * "block list" (0..6, 14..25, 28..31).
  19675. // * b) There is at least one printable character belonging to the
  19676. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  19677. // * - BINARY otherwise.
  19678. // * - The following partially-portable control characters form a
  19679. // * "gray list" that is ignored in this detection algorithm:
  19680. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  19681. // * IN assertion: the fields Freq of dyn_ltree are set.
  19682. // */
  19683. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  19684. var block_mask uint64
  19685. var n int32
  19686. _, _ = block_mask, n
  19687. /* block_mask is the bit mask of block-listed bytes
  19688. * set bits 0..6, 14..25, and 28..31
  19689. * 0xf3ffc07f = binary 11110011111111111100000001111111
  19690. */
  19691. block_mask = uint64(0xf3ffc07f)
  19692. /* Check for non-textual ("block-listed") bytes. */
  19693. n = 0
  19694. for {
  19695. if !(n <= int32(31)) {
  19696. break
  19697. }
  19698. if block_mask&uint64(1) != 0 && libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19699. return m_Z_BINARY
  19700. }
  19701. goto _1
  19702. _1:
  19703. ;
  19704. n++
  19705. block_mask >>= uint64(1)
  19706. }
  19707. /* Check for textual ("allow-listed") bytes. */
  19708. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 9*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 10*4))) != 0 || libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + 13*4))) != 0 {
  19709. return int32(m_Z_TEXT)
  19710. }
  19711. n = int32(32)
  19712. for {
  19713. if !(n < int32(m_LITERALS)) {
  19714. break
  19715. }
  19716. if libc.Int32FromUint16(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  19717. return int32(m_Z_TEXT)
  19718. }
  19719. goto _2
  19720. _2:
  19721. ;
  19722. n++
  19723. }
  19724. /* There are no "block-listed" or "allow-listed" bytes:
  19725. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  19726. */
  19727. return m_Z_BINARY
  19728. }
  19729. // C documentation
  19730. //
  19731. // /* ===========================================================================
  19732. // * Determine the best encoding for the current block: dynamic trees, static
  19733. // * trees or store, and write out the encoded block.
  19734. // */
  19735. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  19736. var len1, len11, max_blindex, val, val1 int32
  19737. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  19738. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  19739. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  19740. max_blindex = 0 /* index of last bit length code of non zero freq */
  19741. /* Build the Huffman trees unless a stored block is forced */
  19742. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  19743. /* Check if the file is binary or text */
  19744. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  19745. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  19746. }
  19747. /* Construct the literal and distance trees */
  19748. _build_tree(tls, s, s+2904)
  19749. _build_tree(tls, s, s+2928)
  19750. /* At this point, opt_len and static_len are the total bit lengths of
  19751. * the compressed block data, excluding the tree representations.
  19752. */
  19753. /* Build the bit length tree for the above two trees, and get the index
  19754. * in bl_order of the last bit length code to send.
  19755. */
  19756. max_blindex = _build_bl_tree(tls, s)
  19757. /* Determine the best encoding. Compute the block lengths in bytes. */
  19758. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint64(3) + uint64(7)) >> int32(3)
  19759. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint64(3) + uint64(7)) >> int32(3)
  19760. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  19761. opt_lenb = static_lenb
  19762. }
  19763. } else {
  19764. v1 = stored_len + libc.Uint64FromInt32(5)
  19765. static_lenb = v1
  19766. opt_lenb = v1 /* force a stored block */
  19767. }
  19768. if stored_len+uint64(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  19769. /* 4: two words for the lengths */
  19770. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  19771. * Otherwise we can't have processed more than WSIZE input bytes since
  19772. * the last block flush, because compression would have been
  19773. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  19774. * transform a block into a stored block.
  19775. */
  19776. x__tr_stored_block(tls, s, buf, stored_len, last)
  19777. } else {
  19778. if static_lenb == opt_lenb {
  19779. len1 = int32(3)
  19780. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  19781. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  19782. p2 = s + 5936
  19783. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | libc.Int32FromUint16(libc.Uint16FromInt32(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19784. v4 = s + 40
  19785. v3 = *(*Tulg)(unsafe.Pointer(v4))
  19786. *(*Tulg)(unsafe.Pointer(v4))++
  19787. *(*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))
  19788. v6 = s + 40
  19789. v5 = *(*Tulg)(unsafe.Pointer(v6))
  19790. *(*Tulg)(unsafe.Pointer(v6))++
  19791. *(*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))
  19792. (*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))
  19793. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  19794. } else {
  19795. p7 = s + 5936
  19796. *(*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)
  19797. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  19798. }
  19799. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  19800. } else {
  19801. len11 = int32(3)
  19802. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  19803. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  19804. p8 = s + 5936
  19805. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | libc.Int32FromUint16(libc.Uint16FromInt32(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  19806. v10 = s + 40
  19807. v9 = *(*Tulg)(unsafe.Pointer(v10))
  19808. *(*Tulg)(unsafe.Pointer(v10))++
  19809. *(*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))
  19810. v12 = s + 40
  19811. v11 = *(*Tulg)(unsafe.Pointer(v12))
  19812. *(*Tulg)(unsafe.Pointer(v12))++
  19813. *(*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))
  19814. (*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))
  19815. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  19816. } else {
  19817. p13 = s + 5936
  19818. *(*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)
  19819. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  19820. }
  19821. _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))
  19822. _compress_block(tls, s, s+212, s+2504)
  19823. }
  19824. }
  19825. /* The above check is made mod 2^32, for files larger than 512 MB
  19826. * and uLong implemented on 32 bits.
  19827. */
  19828. _init_block(tls, s)
  19829. if last != 0 {
  19830. _bi_windup(tls, s)
  19831. }
  19832. }
  19833. // C documentation
  19834. //
  19835. // /* ===========================================================================
  19836. // * Save the match info and tally the frequency counts. Return true if
  19837. // * the current block must be flushed.
  19838. // */
  19839. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  19840. var v1, v3, v5 TuInt
  19841. var v2, v4, v6 uintptr
  19842. var v7 int32
  19843. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  19844. v2 = s + 5900
  19845. v1 = *(*TuInt)(unsafe.Pointer(v2))
  19846. *(*TuInt)(unsafe.Pointer(v2))++
  19847. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  19848. v4 = s + 5900
  19849. v3 = *(*TuInt)(unsafe.Pointer(v4))
  19850. *(*TuInt)(unsafe.Pointer(v4))++
  19851. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  19852. v6 = s + 5900
  19853. v5 = *(*TuInt)(unsafe.Pointer(v6))
  19854. *(*TuInt)(unsafe.Pointer(v6))++
  19855. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  19856. if dist == uint32(0) {
  19857. /* lc is the unmatched char */
  19858. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(lc)*4))++
  19859. } else {
  19860. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  19861. /* Here, lc is the match length - MIN_MATCH */
  19862. dist-- /* dist = match distance - 1 */
  19863. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(libc.Int32FromUint8(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  19864. if dist < uint32(256) {
  19865. v7 = libc.Int32FromUint8(x__dist_code[dist])
  19866. } else {
  19867. v7 = libc.Int32FromUint8(x__dist_code[uint32(256)+dist>>int32(7)])
  19868. }
  19869. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v7)*4))++
  19870. }
  19871. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  19872. }
  19873. const m_AT_EACCESS = 0x200
  19874. const m_AT_EMPTY_PATH = 0x1000
  19875. const m_AT_NO_AUTOMOUNT = 0x800
  19876. const m_AT_RECURSIVE = 0x8000
  19877. const m_AT_REMOVEDIR = 0x200
  19878. const m_AT_STATX_DONT_SYNC = 0x4000
  19879. const m_AT_STATX_FORCE_SYNC = 0x2000
  19880. const m_AT_STATX_SYNC_AS_STAT = 0x0000
  19881. const m_AT_STATX_SYNC_TYPE = 0x6000
  19882. const m_AT_SYMLINK_FOLLOW = 0x400
  19883. const m_AT_SYMLINK_NOFOLLOW = 0x100
  19884. const m_BUFSIZ = 1024
  19885. const m_COPY = 1
  19886. const m_DN_ACCESS = 0x00000001
  19887. const m_DN_ATTRIB = 0x00000020
  19888. const m_DN_CREATE = 0x00000004
  19889. const m_DN_DELETE = 0x00000008
  19890. const m_DN_MODIFY = 0x00000002
  19891. const m_DN_MULTISHOT = 0x80000000
  19892. const m_DN_RENAME = 0x00000010
  19893. const m_E2BIG = 7
  19894. const m_EACCES = 13
  19895. const m_EADDRINUSE = 98
  19896. const m_EADDRNOTAVAIL = 99
  19897. const m_EADV = 68
  19898. const m_EAFNOSUPPORT = 97
  19899. const m_EAGAIN = 11
  19900. const m_EALREADY = 114
  19901. const m_EBADE = 52
  19902. const m_EBADF = 9
  19903. const m_EBADFD = 77
  19904. const m_EBADMSG = 74
  19905. const m_EBADR = 53
  19906. const m_EBADRQC = 56
  19907. const m_EBADSLT = 57
  19908. const m_EBFONT = 59
  19909. const m_EBUSY = 16
  19910. const m_ECANCELED = 125
  19911. const m_ECHILD = 10
  19912. const m_ECHRNG = 44
  19913. const m_ECOMM = 70
  19914. const m_ECONNABORTED = 103
  19915. const m_ECONNREFUSED = 111
  19916. const m_ECONNRESET = 104
  19917. const m_EDEADLK = 35
  19918. const m_EDEADLOCK = "EDEADLK"
  19919. const m_EDESTADDRREQ = 89
  19920. const m_EDOM = 33
  19921. const m_EDOTDOT = 73
  19922. const m_EDQUOT = 122
  19923. const m_EEXIST = 17
  19924. const m_EFAULT = 14
  19925. const m_EFBIG = 27
  19926. const m_EHOSTDOWN = 112
  19927. const m_EHOSTUNREACH = 113
  19928. const m_EHWPOISON = 133
  19929. const m_EIDRM = 43
  19930. const m_EILSEQ = 84
  19931. const m_EINPROGRESS = 115
  19932. const m_EINTR = 4
  19933. const m_EINVAL = 22
  19934. const m_EIO = 5
  19935. const m_EISCONN = 106
  19936. const m_EISDIR = 21
  19937. const m_EISNAM = 120
  19938. const m_EKEYEXPIRED = 127
  19939. const m_EKEYREJECTED = 129
  19940. const m_EKEYREVOKED = 128
  19941. const m_EL2HLT = 51
  19942. const m_EL2NSYNC = 45
  19943. const m_EL3HLT = 46
  19944. const m_EL3RST = 47
  19945. const m_ELIBACC = 79
  19946. const m_ELIBBAD = 80
  19947. const m_ELIBEXEC = 83
  19948. const m_ELIBMAX = 82
  19949. const m_ELIBSCN = 81
  19950. const m_ELNRNG = 48
  19951. const m_ELOOP = 40
  19952. const m_EMEDIUMTYPE = 124
  19953. const m_EMFILE = 24
  19954. const m_EMLINK = 31
  19955. const m_EMSGSIZE = 90
  19956. const m_EMULTIHOP = 72
  19957. const m_ENAMETOOLONG = 36
  19958. const m_ENAVAIL = 119
  19959. const m_ENETDOWN = 100
  19960. const m_ENETRESET = 102
  19961. const m_ENETUNREACH = 101
  19962. const m_ENFILE = 23
  19963. const m_ENOANO = 55
  19964. const m_ENOBUFS = 105
  19965. const m_ENOCSI = 50
  19966. const m_ENODATA = 61
  19967. const m_ENODEV = 19
  19968. const m_ENOENT = 2
  19969. const m_ENOEXEC = 8
  19970. const m_ENOKEY = 126
  19971. const m_ENOLCK = 37
  19972. const m_ENOLINK = 67
  19973. const m_ENOMEDIUM = 123
  19974. const m_ENOMEM = 12
  19975. const m_ENOMSG = 42
  19976. const m_ENONET = 64
  19977. const m_ENOPKG = 65
  19978. const m_ENOPROTOOPT = 92
  19979. const m_ENOSPC = 28
  19980. const m_ENOSR = 63
  19981. const m_ENOSTR = 60
  19982. const m_ENOSYS = 38
  19983. const m_ENOTBLK = 15
  19984. const m_ENOTCONN = 107
  19985. const m_ENOTDIR = 20
  19986. const m_ENOTEMPTY = 39
  19987. const m_ENOTNAM = 118
  19988. const m_ENOTRECOVERABLE = 131
  19989. const m_ENOTSOCK = 88
  19990. const m_ENOTSUP = "EOPNOTSUPP"
  19991. const m_ENOTTY = 25
  19992. const m_ENOTUNIQ = 76
  19993. const m_ENXIO = 6
  19994. const m_EOPNOTSUPP = 95
  19995. const m_EOVERFLOW = 75
  19996. const m_EOWNERDEAD = 130
  19997. const m_EPERM = 1
  19998. const m_EPFNOSUPPORT = 96
  19999. const m_EPIPE = 32
  20000. const m_EPROTO = 71
  20001. const m_EPROTONOSUPPORT = 93
  20002. const m_EPROTOTYPE = 91
  20003. const m_ERANGE = 34
  20004. const m_EREMCHG = 78
  20005. const m_EREMOTE = 66
  20006. const m_EREMOTEIO = 121
  20007. const m_ERESTART = 85
  20008. const m_ERFKILL = 132
  20009. const m_EROFS = 30
  20010. const m_ESHUTDOWN = 108
  20011. const m_ESOCKTNOSUPPORT = 94
  20012. const m_ESPIPE = 29
  20013. const m_ESRCH = 3
  20014. const m_ESRMNT = 69
  20015. const m_ESTALE = 116
  20016. const m_ESTRPIPE = 86
  20017. const m_ETIME = 62
  20018. const m_ETIMEDOUT = 110
  20019. const m_ETOOMANYREFS = 109
  20020. const m_ETXTBSY = 26
  20021. const m_EUCLEAN = 117
  20022. const m_EUNATCH = 49
  20023. const m_EUSERS = 87
  20024. const m_EWOULDBLOCK = "EAGAIN"
  20025. const m_EXDEV = 18
  20026. const m_EXFULL = 54
  20027. const m_FALLOC_FL_KEEP_SIZE = 1
  20028. const m_FALLOC_FL_PUNCH_HOLE = 2
  20029. const m_FAPPEND = "O_APPEND"
  20030. const m_FASYNC = "O_ASYNC"
  20031. const m_FD_CLOEXEC = 1
  20032. const m_FFSYNC = "O_SYNC"
  20033. const m_FILENAME_MAX = 4096
  20034. const m_FNDELAY = "O_NDELAY"
  20035. const m_FNONBLOCK = "O_NONBLOCK"
  20036. const m_FOPEN_MAX = 1000
  20037. const m_F_ADD_SEALS = 1033
  20038. const m_F_CANCELLK = 1029
  20039. const m_F_DUPFD = 0
  20040. const m_F_DUPFD_CLOEXEC = 1030
  20041. const m_F_GETFD = 1
  20042. const m_F_GETFL = 3
  20043. const m_F_GETLEASE = 1025
  20044. const m_F_GETLK = 5
  20045. const m_F_GETLK64 = "F_GETLK"
  20046. const m_F_GETOWN = 9
  20047. const m_F_GETOWNER_UIDS = 17
  20048. const m_F_GETOWN_EX = 16
  20049. const m_F_GETPIPE_SZ = 1032
  20050. const m_F_GETSIG = 11
  20051. const m_F_GET_FILE_RW_HINT = 1037
  20052. const m_F_GET_RW_HINT = 1035
  20053. const m_F_GET_SEALS = 1034
  20054. const m_F_NOTIFY = 1026
  20055. const m_F_OFD_GETLK = 36
  20056. const m_F_OFD_SETLK = 37
  20057. const m_F_OFD_SETLKW = 38
  20058. const m_F_OWNER_GID = 2
  20059. const m_F_OWNER_PGRP = 2
  20060. const m_F_OWNER_PID = 1
  20061. const m_F_OWNER_TID = 0
  20062. const m_F_RDLCK = 0
  20063. const m_F_SEAL_FUTURE_WRITE = 0x0010
  20064. const m_F_SEAL_GROW = 0x0004
  20065. const m_F_SEAL_SEAL = 0x0001
  20066. const m_F_SEAL_SHRINK = 0x0002
  20067. const m_F_SEAL_WRITE = 0x0008
  20068. const m_F_SETFD = 2
  20069. const m_F_SETFL = 4
  20070. const m_F_SETLEASE = 1024
  20071. const m_F_SETLK = 6
  20072. const m_F_SETLK64 = "F_SETLK"
  20073. const m_F_SETLKW = 7
  20074. const m_F_SETLKW64 = "F_SETLKW"
  20075. const m_F_SETOWN = 8
  20076. const m_F_SETOWN_EX = 15
  20077. const m_F_SETPIPE_SZ = 1031
  20078. const m_F_SETSIG = 10
  20079. const m_F_SET_FILE_RW_HINT = 1038
  20080. const m_F_SET_RW_HINT = 1036
  20081. const m_F_UNLCK = 2
  20082. const m_F_WRLCK = 1
  20083. const m_GZBUFSIZE = 8192
  20084. const m_GZIP = 2
  20085. const m_GZ_APPEND = 1
  20086. const m_GZ_NONE = 0
  20087. const m_GZ_READ = 7247
  20088. const m_GZ_WRITE = 31153
  20089. const m_LOOK = 0
  20090. const m_L_ctermid = 20
  20091. const m_L_cuserid = 20
  20092. const m_L_tmpnam = 20
  20093. const m_MAX_HANDLE_SZ = 128
  20094. const m_O_APPEND = 02000
  20095. const m_O_ASYNC = 020000
  20096. const m_O_CLOEXEC = 02000000
  20097. const m_O_CREAT = 0100
  20098. const m_O_DIRECT = 040000
  20099. const m_O_DIRECTORY = 0200000
  20100. const m_O_DSYNC = 010000
  20101. const m_O_EXCL = 0200
  20102. const m_O_EXEC = "O_PATH"
  20103. const m_O_LARGEFILE = 0100000
  20104. const m_O_NDELAY = "O_NONBLOCK"
  20105. const m_O_NOATIME = 01000000
  20106. const m_O_NOCTTY = 0400
  20107. const m_O_NOFOLLOW = 0400000
  20108. const m_O_NONBLOCK = 04000
  20109. const m_O_PATH = 010000000
  20110. const m_O_RDONLY = 00
  20111. const m_O_RDWR = 02
  20112. const m_O_RSYNC = 04010000
  20113. const m_O_SEARCH = "O_PATH"
  20114. const m_O_SYNC = 04010000
  20115. const m_O_TMPFILE = 020200000
  20116. const m_O_TRUNC = 01000
  20117. const m_O_TTY_INIT = 0
  20118. const m_O_WRONLY = 01
  20119. const m_POSIX_FADV_DONTNEED = 4
  20120. const m_POSIX_FADV_NOREUSE = 5
  20121. const m_POSIX_FADV_NORMAL = 0
  20122. const m_POSIX_FADV_RANDOM = 1
  20123. const m_POSIX_FADV_SEQUENTIAL = 2
  20124. const m_POSIX_FADV_WILLNEED = 3
  20125. const m_P_tmpdir = "/tmp"
  20126. const m_RWF_WRITE_LIFE_NOT_SET = 0
  20127. const m_RWH_WRITE_LIFE_EXTREME = 5
  20128. const m_RWH_WRITE_LIFE_LONG = 4
  20129. const m_RWH_WRITE_LIFE_MEDIUM = 3
  20130. const m_RWH_WRITE_LIFE_NONE = 1
  20131. const m_RWH_WRITE_LIFE_SHORT = 2
  20132. const m_SPLICE_F_GIFT = 8
  20133. const m_SPLICE_F_MORE = 4
  20134. const m_SPLICE_F_MOVE = 1
  20135. const m_SPLICE_F_NONBLOCK = 2
  20136. const m_SYNC_FILE_RANGE_WAIT_AFTER = 4
  20137. const m_SYNC_FILE_RANGE_WAIT_BEFORE = 1
  20138. const m_SYNC_FILE_RANGE_WRITE = 2
  20139. const m_S_IRGRP = 0040
  20140. const m_S_IROTH = 0004
  20141. const m_S_IRUSR = 0400
  20142. const m_S_IRWXG = 0070
  20143. const m_S_IRWXO = 0007
  20144. const m_S_IRWXU = 0700
  20145. const m_S_ISGID = 02000
  20146. const m_S_ISUID = 04000
  20147. const m_S_ISVTX = 01000
  20148. const m_S_IWGRP = 0020
  20149. const m_S_IWOTH = 0002
  20150. const m_S_IWUSR = 0200
  20151. const m_S_IXGRP = 0010
  20152. const m_S_IXOTH = 0001
  20153. const m_S_IXUSR = 0100
  20154. const m_TMP_MAX = 10000
  20155. const m__IOFBF = 0
  20156. const m__IOLBF = 1
  20157. const m__IONBF = 2
  20158. const m__LARGEFILE_SOURCE = 1
  20159. const m_creat64 = "creat"
  20160. const m_fallocate64 = "fallocate"
  20161. const m_fgetpos64 = "fgetpos"
  20162. const m_flock64 = "flock"
  20163. const m_fopen64 = "fopen"
  20164. const m_fpos64_t = "fpos_t"
  20165. const m_freopen64 = "freopen"
  20166. const m_fseeko64 = "fseeko"
  20167. const m_fsetpos64 = "fsetpos"
  20168. const m_ftello64 = "ftello"
  20169. const m_loff_t = "off_t"
  20170. const m_open64 = "open"
  20171. const m_openat64 = "openat"
  20172. const m_posix_fadvise64 = "posix_fadvise"
  20173. const m_posix_fallocate64 = "posix_fallocate"
  20174. const m_tmpfile64 = "tmpfile"
  20175. type t__isoc_va_list = uintptr
  20176. type Tfpos_t = struct {
  20177. F__lldata [0]int64
  20178. F__align [0]float64
  20179. F__opaque [16]uint8
  20180. }
  20181. type T_G_fpos64_t = Tfpos_t
  20182. type Tcookie_io_functions_t = struct {
  20183. Fread uintptr
  20184. Fwrite uintptr
  20185. Fseek uintptr
  20186. Fclose1 uintptr
  20187. }
  20188. type T_IO_cookie_io_functions_t = Tcookie_io_functions_t
  20189. type Tiovec = struct {
  20190. Fiov_base uintptr
  20191. Fiov_len Tsize_t
  20192. }
  20193. type Tflock = struct {
  20194. Fl_type int16
  20195. Fl_whence int16
  20196. Fl_start Toff_t
  20197. Fl_len Toff_t
  20198. Fl_pid Tpid_t
  20199. }
  20200. type Tfile_handle = struct {
  20201. Fhandle_bytes uint32
  20202. Fhandle_type int32
  20203. }
  20204. type Tf_owner_ex = struct {
  20205. Ftype1 int32
  20206. Fpid Tpid_t
  20207. }
  20208. type Tgz_state = struct {
  20209. Fx TgzFile_s
  20210. Fmode int32
  20211. Ffd int32
  20212. Fpath uintptr
  20213. Fsize uint32
  20214. Fwant uint32
  20215. Fin uintptr
  20216. Fout uintptr
  20217. Fdirect int32
  20218. Fhow int32
  20219. Fstart Toff_t
  20220. Feof int32
  20221. Fpast int32
  20222. Flevel int32
  20223. Fstrategy int32
  20224. Freset int32
  20225. Fskip Toff_t
  20226. Fseek int32
  20227. Ferr int32
  20228. Fmsg uintptr
  20229. Fstrm Tz_stream
  20230. }
  20231. type Tgz_statep = uintptr
  20232. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  20233. return __ccgo_ts
  20234. }
  20235. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  20236. var flags TuLong
  20237. _ = flags
  20238. flags = uint64(0)
  20239. switch libc.Int32FromUint64(libc.Uint64FromInt64(4)) {
  20240. case int32(2):
  20241. case int32(4):
  20242. flags += uint64(1)
  20243. case int32(8):
  20244. flags += uint64(2)
  20245. default:
  20246. flags += uint64(3)
  20247. }
  20248. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20249. case int32(2):
  20250. case int32(4):
  20251. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  20252. case int32(8):
  20253. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  20254. default:
  20255. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  20256. }
  20257. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20258. case int32(2):
  20259. case int32(4):
  20260. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  20261. case int32(8):
  20262. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  20263. default:
  20264. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  20265. }
  20266. switch libc.Int32FromUint64(libc.Uint64FromInt64(8)) {
  20267. case int32(2):
  20268. case int32(4):
  20269. flags += libc.Uint64FromInt32(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  20270. case int32(8):
  20271. flags += libc.Uint64FromInt32(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  20272. default:
  20273. flags += libc.Uint64FromInt32(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  20274. }
  20275. /*
  20276. #if defined(ASMV) || defined(ASMINF)
  20277. flags += 1 << 9;
  20278. #endif
  20279. */
  20280. return flags
  20281. }
  20282. // C documentation
  20283. //
  20284. // /* exported to allow conversion of error code to string for compress() and
  20285. // * uncompress()
  20286. // */
  20287. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  20288. var v1 int32
  20289. _ = v1
  20290. if err < -int32(6) || err > int32(2) {
  20291. v1 = int32(9)
  20292. } else {
  20293. v1 = int32(2) - err
  20294. }
  20295. return Xz_errmsg[v1]
  20296. }
  20297. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  20298. _ = opaque
  20299. return libc.Xmalloc(tls, uint64(items*size))
  20300. }
  20301. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  20302. _ = opaque
  20303. libc.Xfree(tls, ptr)
  20304. }
  20305. // C documentation
  20306. //
  20307. // /* ===========================================================================
  20308. // Compresses the source buffer into the destination buffer. The level
  20309. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  20310. // length of the source buffer. Upon entry, destLen is the total size of the
  20311. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  20312. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  20313. //
  20314. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20315. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  20316. // Z_STREAM_ERROR if the level parameter is invalid.
  20317. // */
  20318. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  20319. bp := tls.Alloc(112)
  20320. defer tls.Free(112)
  20321. var err, v3, v4 int32
  20322. var left TuLong
  20323. var max TuInt
  20324. var v1, v2 uint32
  20325. var _ /* stream at bp+0 */ Tz_stream
  20326. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  20327. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  20328. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20329. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  20330. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20331. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20332. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20333. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(112))
  20334. if err != m_Z_OK {
  20335. return err
  20336. }
  20337. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20338. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20339. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20340. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20341. for cond := true; cond; cond = err == m_Z_OK {
  20342. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20343. if left > uint64(max) {
  20344. v1 = max
  20345. } else {
  20346. v1 = uint32(left)
  20347. }
  20348. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20349. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  20350. }
  20351. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20352. if sourceLen > uint64(max) {
  20353. v2 = max
  20354. } else {
  20355. v2 = uint32(sourceLen)
  20356. }
  20357. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20358. sourceLen -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20359. }
  20360. if sourceLen != 0 {
  20361. v3 = m_Z_NO_FLUSH
  20362. } else {
  20363. v3 = int32(m_Z_FINISH)
  20364. }
  20365. err = Xdeflate(tls, bp, v3)
  20366. }
  20367. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20368. XdeflateEnd(tls, bp)
  20369. if err == int32(m_Z_STREAM_END) {
  20370. v4 = m_Z_OK
  20371. } else {
  20372. v4 = err
  20373. }
  20374. return v4
  20375. }
  20376. // C documentation
  20377. //
  20378. // /* ===========================================================================
  20379. // */
  20380. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  20381. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  20382. }
  20383. // C documentation
  20384. //
  20385. // /* ===========================================================================
  20386. // If the default memLevel or windowBits for deflateInit() is changed, then
  20387. // this function needs to be updated.
  20388. // */
  20389. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  20390. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13)
  20391. }
  20392. // C documentation
  20393. //
  20394. // /* ===========================================================================
  20395. // Decompresses the source buffer into the destination buffer. *sourceLen is
  20396. // the byte length of the source buffer. Upon entry, *destLen is the total size
  20397. // of the destination buffer, which must be large enough to hold the entire
  20398. // uncompressed data. (The size of the uncompressed data must have been saved
  20399. // previously by the compressor and transmitted to the decompressor by some
  20400. // mechanism outside the scope of this compression library.) Upon exit,
  20401. // *destLen is the size of the decompressed data and *sourceLen is the number
  20402. // of source bytes consumed. Upon return, source + *sourceLen points to the
  20403. // first unused input byte.
  20404. //
  20405. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  20406. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  20407. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  20408. // an incomplete zlib stream.
  20409. // */
  20410. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  20411. bp := tls.Alloc(128)
  20412. defer tls.Free(128)
  20413. var err, v3, v4, v5 int32
  20414. var left, len1 TuLong
  20415. var max TuInt
  20416. var v1, v2 uint32
  20417. var _ /* buf at bp+112 */ [1]TByte
  20418. var _ /* stream at bp+0 */ Tz_stream
  20419. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  20420. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  20421. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  20422. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  20423. left = *(*TuLongf)(unsafe.Pointer(destLen))
  20424. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  20425. } else {
  20426. left = uint64(1)
  20427. dest = bp + 112
  20428. }
  20429. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  20430. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  20431. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  20432. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  20433. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  20434. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(112))
  20435. if err != m_Z_OK {
  20436. return err
  20437. }
  20438. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  20439. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  20440. for cond := true; cond; cond = err == m_Z_OK {
  20441. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  20442. if left > uint64(max) {
  20443. v1 = max
  20444. } else {
  20445. v1 = uint32(left)
  20446. }
  20447. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  20448. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  20449. }
  20450. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  20451. if len1 > uint64(max) {
  20452. v2 = max
  20453. } else {
  20454. v2 = uint32(len1)
  20455. }
  20456. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  20457. len1 -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20458. }
  20459. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  20460. }
  20461. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  20462. if dest != bp+112 {
  20463. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  20464. } else {
  20465. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  20466. left = uint64(1)
  20467. }
  20468. }
  20469. XinflateEnd(tls, bp)
  20470. if err == int32(m_Z_STREAM_END) {
  20471. v3 = m_Z_OK
  20472. } else {
  20473. if err == int32(m_Z_NEED_DICT) {
  20474. v4 = -int32(3)
  20475. } else {
  20476. if err == -int32(5) && left+uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out) != 0 {
  20477. v5 = -int32(3)
  20478. } else {
  20479. v5 = err
  20480. }
  20481. v4 = v5
  20482. }
  20483. v3 = v4
  20484. }
  20485. return v3
  20486. }
  20487. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  20488. bp := tls.Alloc(16)
  20489. defer tls.Free(16)
  20490. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  20491. return Xuncompress2(tls, dest, destLen, source, bp)
  20492. }
  20493. // C documentation
  20494. //
  20495. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  20496. // That way the other gzclose functions can be used instead to avoid linking in
  20497. // unneeded compression or decompression routines. */
  20498. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  20499. var state Tgz_statep
  20500. var v1 int32
  20501. _, _ = state, v1
  20502. if file == libc.UintptrFromInt32(0) {
  20503. return -int32(2)
  20504. }
  20505. state = file
  20506. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20507. v1 = Xgzclose_r(tls, file)
  20508. } else {
  20509. v1 = Xgzclose_w(tls, file)
  20510. }
  20511. return v1
  20512. }
  20513. const m_INT_MAX1 = 2147483647
  20514. const m_LSEEK = "lseek"
  20515. const m_O_APPEND1 = 1024
  20516. const m_O_CLOEXEC1 = 524288
  20517. const m_O_CREAT1 = 64
  20518. const m_O_EXCL1 = 128
  20519. const m_O_LARGEFILE1 = 32768
  20520. const m_O_RDONLY1 = 0
  20521. const m_O_TRUNC1 = 512
  20522. const m_O_WRONLY1 = 1
  20523. // C documentation
  20524. //
  20525. // /* Reset gzip file state */
  20526. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  20527. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  20528. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  20529. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  20530. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  20531. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  20532. } else { /* for writing ... */
  20533. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  20534. } /* no deflateReset pending */
  20535. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  20536. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  20537. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  20538. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  20539. }
  20540. // C documentation
  20541. //
  20542. // /* Open a gzip file either by name or file descriptor. */
  20543. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  20544. bp := tls.Alloc(16)
  20545. defer tls.Free(16)
  20546. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  20547. var len1 Tz_size_t
  20548. var state Tgz_statep
  20549. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  20550. cloexec = 0
  20551. exclusive = 0
  20552. /* check input */
  20553. if path == libc.UintptrFromInt32(0) {
  20554. return libc.UintptrFromInt32(0)
  20555. }
  20556. /* allocate gzFile structure to return */
  20557. state = libc.Xmalloc(tls, uint64(240))
  20558. if state == libc.UintptrFromInt32(0) {
  20559. return libc.UintptrFromInt32(0)
  20560. }
  20561. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  20562. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  20563. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  20564. /* interpret mode */
  20565. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  20566. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  20567. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  20568. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  20569. for *(*uint8)(unsafe.Pointer(mode)) != 0 {
  20570. if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) <= int32('9') {
  20571. (*Tgz_state)(unsafe.Pointer(state)).Flevel = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) - int32('0')
  20572. } else {
  20573. switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(mode))) {
  20574. case int32('r'):
  20575. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  20576. case int32('w'):
  20577. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  20578. case int32('a'):
  20579. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  20580. case int32('+'): /* can't read and write at the same time */
  20581. libc.Xfree(tls, state)
  20582. return libc.UintptrFromInt32(0)
  20583. case int32('b'): /* ignore -- will request binary anyway */
  20584. case int32('e'):
  20585. cloexec = int32(1)
  20586. case int32('x'):
  20587. exclusive = int32(1)
  20588. case int32('f'):
  20589. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  20590. case int32('h'):
  20591. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  20592. case int32('R'):
  20593. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  20594. case int32('F'):
  20595. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  20596. case int32('T'):
  20597. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  20598. default: /* could consider as an error, but just ignore */
  20599. }
  20600. }
  20601. mode++
  20602. }
  20603. /* must provide an "r", "w", or "a" */
  20604. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  20605. libc.Xfree(tls, state)
  20606. return libc.UintptrFromInt32(0)
  20607. }
  20608. /* can't force transparent read */
  20609. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20610. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  20611. libc.Xfree(tls, state)
  20612. return libc.UintptrFromInt32(0)
  20613. }
  20614. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  20615. }
  20616. /* save the path name for error messages */
  20617. len1 = libc.Xstrlen(tls, path)
  20618. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  20619. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  20620. libc.Xfree(tls, state)
  20621. return libc.UintptrFromInt32(0)
  20622. }
  20623. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+584, libc.VaList(bp+8, path))
  20624. /* compute the flags for open() */
  20625. if cloexec != 0 {
  20626. v1 = int32(m_O_CLOEXEC1)
  20627. } else {
  20628. v1 = 0
  20629. }
  20630. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20631. v2 = m_O_RDONLY1
  20632. } else {
  20633. if exclusive != 0 {
  20634. v3 = int32(m_O_EXCL1)
  20635. } else {
  20636. v3 = 0
  20637. }
  20638. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  20639. v4 = int32(m_O_TRUNC1)
  20640. } else {
  20641. v4 = int32(m_O_APPEND1)
  20642. }
  20643. v2 = libc.Int32FromInt32(m_O_WRONLY1) | libc.Int32FromInt32(m_O_CREAT1) | v3 | v4
  20644. }
  20645. oflag = int32(m_O_LARGEFILE1) | v1 | v2
  20646. /* open the file with the appropriate flags (or just use fd) */
  20647. if fd > -int32(1) {
  20648. v5 = fd
  20649. } else {
  20650. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  20651. }
  20652. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  20653. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  20654. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  20655. libc.Xfree(tls, state)
  20656. return libc.UintptrFromInt32(0)
  20657. }
  20658. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  20659. libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(2)) /* so gzoffset() is correct */
  20660. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  20661. }
  20662. /* save the current position for rewinding (only if reading) */
  20663. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20664. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20665. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  20666. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  20667. }
  20668. }
  20669. /* initialize stream */
  20670. _gz_reset(tls, state)
  20671. /* return stream */
  20672. return state
  20673. }
  20674. // C documentation
  20675. //
  20676. // /* -- see zlib.h -- */
  20677. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20678. return _gz_open(tls, path, -int32(1), mode)
  20679. }
  20680. // C documentation
  20681. //
  20682. // /* -- see zlib.h -- */
  20683. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  20684. return _gz_open(tls, path, -int32(1), mode)
  20685. }
  20686. // C documentation
  20687. //
  20688. // /* -- see zlib.h -- */
  20689. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  20690. bp := tls.Alloc(16)
  20691. defer tls.Free(16)
  20692. var gz TgzFile
  20693. var path, v1 uintptr
  20694. var v2 bool
  20695. _, _, _, _ = gz, path, v1, v2
  20696. if v2 = fd == -int32(1); !v2 {
  20697. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  20698. path = v1
  20699. }
  20700. if v2 || v1 == libc.UintptrFromInt32(0) {
  20701. return libc.UintptrFromInt32(0)
  20702. }
  20703. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+587, libc.VaList(bp+8, fd))
  20704. gz = _gz_open(tls, path, fd, mode)
  20705. libc.Xfree(tls, path)
  20706. return gz
  20707. }
  20708. /* -- see zlib.h -- */
  20709. // C documentation
  20710. //
  20711. // /* -- see zlib.h -- */
  20712. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  20713. var state Tgz_statep
  20714. _ = state
  20715. /* get internal structure and check integrity */
  20716. if file == libc.UintptrFromInt32(0) {
  20717. return -int32(1)
  20718. }
  20719. state = file
  20720. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20721. return -int32(1)
  20722. }
  20723. /* make sure we haven't already allocated memory */
  20724. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  20725. return -int32(1)
  20726. }
  20727. /* check and set requested size */
  20728. if size<<int32(1) < size {
  20729. return -int32(1)
  20730. } /* need to be able to double it */
  20731. if size < uint32(8) {
  20732. size = uint32(8)
  20733. } /* needed to behave well with flushing */
  20734. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  20735. return 0
  20736. }
  20737. // C documentation
  20738. //
  20739. // /* -- see zlib.h -- */
  20740. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  20741. var state Tgz_statep
  20742. _ = state
  20743. /* get internal structure */
  20744. if file == libc.UintptrFromInt32(0) {
  20745. return -int32(1)
  20746. }
  20747. state = file
  20748. /* check that we're reading and that there's no error */
  20749. 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) {
  20750. return -int32(1)
  20751. }
  20752. /* back up and start over */
  20753. if libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, 0) == int64(-int32(1)) {
  20754. return -int32(1)
  20755. }
  20756. _gz_reset(tls, state)
  20757. return 0
  20758. }
  20759. // C documentation
  20760. //
  20761. // /* -- see zlib.h -- */
  20762. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20763. var n, v1 uint32
  20764. var ret Toff_t
  20765. var state Tgz_statep
  20766. _, _, _, _ = n, ret, state, v1
  20767. /* get internal structure and check integrity */
  20768. if file == libc.UintptrFromInt32(0) {
  20769. return int64(-int32(1))
  20770. }
  20771. state = file
  20772. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20773. return int64(-int32(1))
  20774. }
  20775. /* check that there's no error */
  20776. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  20777. return int64(-int32(1))
  20778. }
  20779. /* can only seek from start or relative to current position */
  20780. if whence != 0 && whence != int32(1) {
  20781. return int64(-int32(1))
  20782. }
  20783. /* normalize offset to a SEEK_CUR specification */
  20784. if whence == 0 {
  20785. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20786. } else {
  20787. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20788. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20789. }
  20790. }
  20791. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20792. /* if within raw area while reading, just go there */
  20793. 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 {
  20794. ret = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(1))
  20795. if ret == int64(-int32(1)) {
  20796. return int64(-int32(1))
  20797. }
  20798. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  20799. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  20800. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  20801. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  20802. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  20803. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  20804. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  20805. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20806. }
  20807. /* calculate skip amount, rewinding if needed for back seek when reading */
  20808. if offset < 0 {
  20809. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  20810. return int64(-int32(1))
  20811. }
  20812. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  20813. if offset < 0 { /* before start of file! */
  20814. return int64(-int32(1))
  20815. }
  20816. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  20817. return int64(-int32(1))
  20818. }
  20819. }
  20820. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  20821. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20822. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  20823. v1 = libc.Uint32FromInt64(offset)
  20824. } else {
  20825. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  20826. }
  20827. n = v1
  20828. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  20829. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  20830. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  20831. offset -= libc.Int64FromUint32(n)
  20832. }
  20833. /* request skip (if not zero) */
  20834. if offset != 0 {
  20835. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  20836. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  20837. }
  20838. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  20839. }
  20840. // C documentation
  20841. //
  20842. // /* -- see zlib.h -- */
  20843. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  20844. var ret Toff_t
  20845. var v1 int64
  20846. _, _ = ret, v1
  20847. ret = Xgzseek64(tls, file, offset, whence)
  20848. if ret == ret {
  20849. v1 = ret
  20850. } else {
  20851. v1 = int64(-int32(1))
  20852. }
  20853. return v1
  20854. }
  20855. // C documentation
  20856. //
  20857. // /* -- see zlib.h -- */
  20858. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20859. var state Tgz_statep
  20860. var v1 int64
  20861. _, _ = state, v1
  20862. /* get internal structure and check integrity */
  20863. if file == libc.UintptrFromInt32(0) {
  20864. return int64(-int32(1))
  20865. }
  20866. state = file
  20867. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20868. return int64(-int32(1))
  20869. }
  20870. /* return position */
  20871. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  20872. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  20873. } else {
  20874. v1 = 0
  20875. }
  20876. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  20877. }
  20878. // C documentation
  20879. //
  20880. // /* -- see zlib.h -- */
  20881. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20882. var ret Toff_t
  20883. var v1 int64
  20884. _, _ = ret, v1
  20885. ret = Xgztell64(tls, file)
  20886. if ret == ret {
  20887. v1 = ret
  20888. } else {
  20889. v1 = int64(-int32(1))
  20890. }
  20891. return v1
  20892. }
  20893. // C documentation
  20894. //
  20895. // /* -- see zlib.h -- */
  20896. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20897. var offset Toff_t
  20898. var state Tgz_statep
  20899. _, _ = offset, state
  20900. /* get internal structure and check integrity */
  20901. if file == libc.UintptrFromInt32(0) {
  20902. return int64(-int32(1))
  20903. }
  20904. state = file
  20905. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20906. return int64(-int32(1))
  20907. }
  20908. /* compute and return effective offset in file */
  20909. offset = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(1))
  20910. if offset == int64(-int32(1)) {
  20911. return int64(-int32(1))
  20912. }
  20913. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  20914. offset -= libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  20915. } /* don't count buffered input */
  20916. return offset
  20917. }
  20918. // C documentation
  20919. //
  20920. // /* -- see zlib.h -- */
  20921. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  20922. var ret Toff_t
  20923. var v1 int64
  20924. _, _ = ret, v1
  20925. ret = Xgzoffset64(tls, file)
  20926. if ret == ret {
  20927. v1 = ret
  20928. } else {
  20929. v1 = int64(-int32(1))
  20930. }
  20931. return v1
  20932. }
  20933. // C documentation
  20934. //
  20935. // /* -- see zlib.h -- */
  20936. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  20937. var state Tgz_statep
  20938. var v1 int32
  20939. _, _ = state, v1
  20940. /* get internal structure and check integrity */
  20941. if file == libc.UintptrFromInt32(0) {
  20942. return 0
  20943. }
  20944. state = file
  20945. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20946. return 0
  20947. }
  20948. /* return end-of-file state */
  20949. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  20950. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  20951. } else {
  20952. v1 = 0
  20953. }
  20954. return v1
  20955. }
  20956. // C documentation
  20957. //
  20958. // /* -- see zlib.h -- */
  20959. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  20960. var state Tgz_statep
  20961. var v1, v2 uintptr
  20962. _, _, _ = state, v1, v2
  20963. /* get internal structure and check integrity */
  20964. if file == libc.UintptrFromInt32(0) {
  20965. return libc.UintptrFromInt32(0)
  20966. }
  20967. state = file
  20968. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20969. return libc.UintptrFromInt32(0)
  20970. }
  20971. /* return error information */
  20972. if errnum != libc.UintptrFromInt32(0) {
  20973. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  20974. }
  20975. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  20976. v1 = __ccgo_ts + 595
  20977. } else {
  20978. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  20979. v2 = __ccgo_ts + 494
  20980. } else {
  20981. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  20982. }
  20983. v1 = v2
  20984. }
  20985. return v1
  20986. }
  20987. // C documentation
  20988. //
  20989. // /* -- see zlib.h -- */
  20990. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  20991. var state Tgz_statep
  20992. _ = state
  20993. /* get internal structure and check integrity */
  20994. if file == libc.UintptrFromInt32(0) {
  20995. return
  20996. }
  20997. state = file
  20998. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  20999. return
  21000. }
  21001. /* clear error and end-of-file */
  21002. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  21003. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  21004. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21005. }
  21006. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21007. }
  21008. // C documentation
  21009. //
  21010. // /* Create an error message in allocated memory and set state->err and
  21011. // state->msg accordingly. Free any previous error message already there. Do
  21012. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  21013. // memory). Simply save the error message as a static string. If there is an
  21014. // allocation failure constructing the error message, then convert the error to
  21015. // out of memory. */
  21016. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  21017. bp := tls.Alloc(32)
  21018. defer tls.Free(32)
  21019. var v1 uintptr
  21020. _ = v1
  21021. /* free previously allocated message and clear */
  21022. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  21023. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  21024. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  21025. }
  21026. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  21027. }
  21028. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  21029. if err != m_Z_OK && err != -int32(5) {
  21030. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21031. }
  21032. /* set error code, and if no message, then done */
  21033. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  21034. if msg == libc.UintptrFromInt32(0) {
  21035. return
  21036. }
  21037. /* for an out of memory error, return literal string when requested */
  21038. if err == -int32(4) {
  21039. return
  21040. }
  21041. /* construct error message with path */
  21042. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  21043. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  21044. if v1 == libc.UintptrFromInt32(0) {
  21045. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  21046. return
  21047. }
  21048. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3), __ccgo_ts+609, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+616, msg))
  21049. }
  21050. // C documentation
  21051. //
  21052. // /* portably return maximum value for an int (when limits.h presumed not
  21053. // available) -- we need to do this to cover cases where 2's complement not
  21054. // used, since C standard permits 1's complement and sign-bit representations,
  21055. // otherwise we could just use ((unsigned)-1) >> 1 */
  21056. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  21057. return uint32(m_INT_MAX1)
  21058. }
  21059. const m_INT_MAX2 = 0x7fffffff
  21060. const m_O_APPEND2 = 02000
  21061. const m_O_CLOEXEC2 = 02000000
  21062. const m_O_CREAT2 = 0100
  21063. const m_O_EXCL2 = 0200
  21064. const m_O_LARGEFILE2 = 0100000
  21065. const m_O_RDONLY2 = 00
  21066. const m_O_TRUNC2 = 01000
  21067. const m_O_WRONLY2 = 01
  21068. // C documentation
  21069. //
  21070. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  21071. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  21072. // This function needs to loop on read(), since read() is not guaranteed to
  21073. // read the number of bytes requested, depending on the type of descriptor. */
  21074. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  21075. var get, max uint32
  21076. var ret int32
  21077. _, _, _ = get, max, ret
  21078. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21079. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  21080. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  21081. get = len1 - *(*uint32)(unsafe.Pointer(have))
  21082. if get > max {
  21083. get = max
  21084. }
  21085. ret = int32(libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), uint64(get)))
  21086. if ret <= 0 {
  21087. break
  21088. }
  21089. *(*uint32)(unsafe.Pointer(have)) += libc.Uint32FromInt32(ret)
  21090. }
  21091. if ret < 0 {
  21092. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21093. return -int32(1)
  21094. }
  21095. if ret == 0 {
  21096. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21097. }
  21098. return 0
  21099. }
  21100. // C documentation
  21101. //
  21102. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  21103. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  21104. // file is reached, even though there may be unused data in the buffer. Once
  21105. // that data has been used, no more attempts will be made to read the file.
  21106. // If strm->avail_in != 0, then the current data is moved to the beginning of
  21107. // the input buffer, and then the remainder of the buffer is loaded with the
  21108. // available data from the input file. */
  21109. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  21110. bp := tls.Alloc(16)
  21111. defer tls.Free(16)
  21112. var n, v1 uint32
  21113. var p, q, v3, v4 uintptr
  21114. var strm Tz_streamp
  21115. var _ /* got at bp+0 */ uint32
  21116. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  21117. strm = state + 128
  21118. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21119. return -int32(1)
  21120. }
  21121. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  21122. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  21123. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21124. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  21125. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21126. for {
  21127. v3 = p
  21128. p++
  21129. v4 = q
  21130. q++
  21131. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  21132. goto _2
  21133. _2:
  21134. ;
  21135. n--
  21136. v1 = n
  21137. if !(v1 != 0) {
  21138. break
  21139. }
  21140. }
  21141. }
  21142. 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) {
  21143. return -int32(1)
  21144. }
  21145. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  21146. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21147. }
  21148. return 0
  21149. }
  21150. // C documentation
  21151. //
  21152. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  21153. // If this is the first time in, allocate required memory. state->how will be
  21154. // left unchanged if there is no more input data available, will be set to COPY
  21155. // if there is no gzip header and direct copying will be performed, or it will
  21156. // be set to GZIP for decompression. If direct copying, then leftover input
  21157. // data from the input buffer will be copied to the output buffer. In that
  21158. // case, all further file reads will be directly to either the output buffer or
  21159. // a user buffer. If decompressing, the inflate state will be initialized.
  21160. // gz_look() will return 0 on success or -1 on failure. */
  21161. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  21162. var strm Tz_streamp
  21163. _ = strm
  21164. strm = state + 128
  21165. /* allocate read buffers and inflate memory */
  21166. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  21167. /* allocate buffers */
  21168. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21169. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21170. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21171. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21172. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21173. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21174. return -int32(1)
  21175. }
  21176. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21177. /* allocate inflate memory */
  21178. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  21179. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  21180. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  21181. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  21182. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  21183. if XinflateInit2_(tls, state+128, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(112)) != m_Z_OK { /* gunzip */
  21184. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21185. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21186. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  21187. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21188. return -int32(1)
  21189. }
  21190. }
  21191. /* get at least the magic bytes in the input buffer */
  21192. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  21193. if _gz_avail(tls, state) == -int32(1) {
  21194. return -int32(1)
  21195. }
  21196. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21197. return 0
  21198. }
  21199. }
  21200. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  21201. a logical dilemma here when considering the case of a partially written
  21202. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  21203. whether this is a single-byte file, or just a partially written gzip
  21204. file -- for here we assume that if a gzip file is being written, then
  21205. the header will be written in a single operation, so that reading a
  21206. single byte is sufficient indication that it is not a gzip file) */
  21207. 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) {
  21208. XinflateReset(tls, strm)
  21209. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  21210. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  21211. return 0
  21212. }
  21213. /* no gzip header -- if we were decoding gzip before, then this is trailing
  21214. garbage. Ignore the trailing garbage and finish. */
  21215. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  21216. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21217. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  21218. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21219. return 0
  21220. }
  21221. /* doing raw i/o, copy any leftover input to output -- this assumes that
  21222. the output buffer is larger than the input buffer, which also assures
  21223. space for gzungetc() */
  21224. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21225. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64((*Tz_stream)(unsafe.Pointer(strm)).Favail_in))
  21226. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21227. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  21228. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  21229. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  21230. return 0
  21231. }
  21232. // C documentation
  21233. //
  21234. // /* Decompress from input to the provided next_out and avail_out in the state.
  21235. // On return, state->x.have and state->x.next point to the just decompressed
  21236. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  21237. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  21238. // on success, -1 on failure. */
  21239. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  21240. var had uint32
  21241. var ret int32
  21242. var strm Tz_streamp
  21243. var v1 uintptr
  21244. _, _, _, _ = had, ret, strm, v1
  21245. ret = m_Z_OK
  21246. strm = state + 128
  21247. /* fill output buffer up to end of deflate stream */
  21248. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21249. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  21250. /* get more input for inflate() */
  21251. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  21252. return -int32(1)
  21253. }
  21254. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21255. Xgz_error(tls, state, -int32(5), __ccgo_ts+619)
  21256. break
  21257. }
  21258. /* decompress and handle errors */
  21259. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  21260. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  21261. Xgz_error(tls, state, -int32(2), __ccgo_ts+642)
  21262. return -int32(1)
  21263. }
  21264. if ret == -int32(4) {
  21265. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21266. return -int32(1)
  21267. }
  21268. if ret == -int32(3) { /* deflate stream invalid */
  21269. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  21270. v1 = __ccgo_ts + 681
  21271. } else {
  21272. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  21273. }
  21274. Xgz_error(tls, state, -int32(3), v1)
  21275. return -int32(1)
  21276. }
  21277. }
  21278. /* update available output */
  21279. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21280. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21281. /* if the gzip stream completed successfully, look for another */
  21282. if ret == int32(m_Z_STREAM_END) {
  21283. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  21284. }
  21285. /* good decompression */
  21286. return 0
  21287. }
  21288. // C documentation
  21289. //
  21290. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  21291. // Data is either copied from the input file or decompressed from the input
  21292. // file depending on state->how. If state->how is LOOK, then a gzip header is
  21293. // looked for to determine whether to copy or decompress. Returns -1 on error,
  21294. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  21295. // end of the input file has been reached and all data has been processed. */
  21296. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  21297. var strm Tz_streamp
  21298. _ = strm
  21299. strm = state + 128
  21300. 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) {
  21301. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  21302. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  21303. if _gz_look(tls, state) == -int32(1) {
  21304. return -int32(1)
  21305. }
  21306. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  21307. return 0
  21308. }
  21309. case int32(m_COPY): /* -> COPY */
  21310. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  21311. return -int32(1)
  21312. }
  21313. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21314. return 0
  21315. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  21316. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  21317. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21318. if _gz_decomp(tls, state) == -int32(1) {
  21319. return -int32(1)
  21320. }
  21321. }
  21322. }
  21323. return 0
  21324. }
  21325. // C documentation
  21326. //
  21327. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  21328. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21329. var n, v1 uint32
  21330. _, _ = n, v1
  21331. /* skip over len bytes or reach end-of-file, whichever comes first */
  21332. for len1 != 0 {
  21333. /* skip over whatever is in output buffer */
  21334. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21335. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  21336. v1 = libc.Uint32FromInt64(len1)
  21337. } else {
  21338. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21339. }
  21340. n = v1
  21341. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21342. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21343. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21344. len1 -= libc.Int64FromUint32(n)
  21345. } else {
  21346. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21347. break
  21348. } else {
  21349. /* get more output, looking for header if required */
  21350. if _gz_fetch(tls, state) == -int32(1) {
  21351. return -int32(1)
  21352. }
  21353. }
  21354. }
  21355. }
  21356. return 0
  21357. }
  21358. // C documentation
  21359. //
  21360. // /* Read len bytes into buf from file, or less than len up to the end of the
  21361. // input. Return the number of bytes read. If zero is returned, either the
  21362. // end of file was reached, or there was an error. state->err must be
  21363. // consulted in that case to determine which. */
  21364. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  21365. bp := tls.Alloc(16)
  21366. defer tls.Free(16)
  21367. var got Tz_size_t
  21368. var _ /* n at bp+0 */ uint32
  21369. _ = got
  21370. /* if len is zero, avoid unnecessary operations */
  21371. if len1 == uint64(0) {
  21372. return uint64(0)
  21373. }
  21374. /* process a skip request */
  21375. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21376. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21377. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21378. return uint64(0)
  21379. }
  21380. }
  21381. /* get len bytes to buf, or less than len if at the end */
  21382. got = uint64(0)
  21383. for cond := true; cond; cond = len1 != 0 {
  21384. /* set n to the maximum amount of len that fits in an unsigned int */
  21385. *(*uint32)(unsafe.Pointer(bp)) = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21386. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  21387. *(*uint32)(unsafe.Pointer(bp)) = uint32(len1)
  21388. }
  21389. /* first just try copying data from the output buffer */
  21390. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21391. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  21392. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21393. }
  21394. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  21395. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21396. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  21397. } else {
  21398. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21399. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  21400. break
  21401. } else {
  21402. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21403. /* get more output, looking for header if required */
  21404. if _gz_fetch(tls, state) == -int32(1) {
  21405. return uint64(0)
  21406. }
  21407. continue /* no progress yet -- go back to copy above */
  21408. /* the copy above assures that we will leave with space in the
  21409. output buffer, allowing at least one gzungetc() to succeed */
  21410. } else {
  21411. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  21412. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  21413. return uint64(0)
  21414. }
  21415. } else { /* state->how == GZIP */
  21416. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  21417. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  21418. if _gz_decomp(tls, state) == -int32(1) {
  21419. return uint64(0)
  21420. }
  21421. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21422. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  21423. }
  21424. }
  21425. }
  21426. }
  21427. /* update progress */
  21428. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  21429. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  21430. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  21431. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(*(*uint32)(unsafe.Pointer(bp)))
  21432. }
  21433. /* return number of bytes read into user buffer */
  21434. return got
  21435. }
  21436. // C documentation
  21437. //
  21438. // /* -- see zlib.h -- */
  21439. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  21440. var state Tgz_statep
  21441. _ = state
  21442. /* get internal structure */
  21443. if file == libc.UintptrFromInt32(0) {
  21444. return -int32(1)
  21445. }
  21446. state = file
  21447. /* check that we're reading and that there's no (serious) error */
  21448. 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) {
  21449. return -int32(1)
  21450. }
  21451. /* since an int is returned, make sure len fits in one, otherwise return
  21452. with an error (this avoids a flaw in the interface) */
  21453. if libc.Int32FromUint32(len1) < 0 {
  21454. Xgz_error(tls, state, -int32(2), __ccgo_ts+703)
  21455. return -int32(1)
  21456. }
  21457. /* read len or fewer bytes to buf */
  21458. len1 = uint32(_gz_read(tls, state, buf, uint64(len1)))
  21459. /* check for an error */
  21460. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  21461. return -int32(1)
  21462. }
  21463. /* return the number of bytes read (this is assured to fit in an int) */
  21464. return libc.Int32FromUint32(len1)
  21465. }
  21466. // C documentation
  21467. //
  21468. // /* -- see zlib.h -- */
  21469. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21470. var len1 Tz_size_t
  21471. var state Tgz_statep
  21472. var v1 uint64
  21473. _, _, _ = len1, state, v1
  21474. /* get internal structure */
  21475. if file == libc.UintptrFromInt32(0) {
  21476. return uint64(0)
  21477. }
  21478. state = file
  21479. /* check that we're reading and that there's no (serious) error */
  21480. 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) {
  21481. return uint64(0)
  21482. }
  21483. /* compute bytes to read -- error on overflow */
  21484. len1 = nitems * size
  21485. if size != 0 && len1/size != nitems {
  21486. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  21487. return uint64(0)
  21488. }
  21489. /* read len or fewer bytes to buf, return the number of full items read */
  21490. if len1 != 0 {
  21491. v1 = _gz_read(tls, state, buf, len1) / size
  21492. } else {
  21493. v1 = uint64(0)
  21494. }
  21495. return v1
  21496. }
  21497. // C documentation
  21498. //
  21499. // /* -- see zlib.h -- */
  21500. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  21501. bp := tls.Alloc(16)
  21502. defer tls.Free(16)
  21503. var state Tgz_statep
  21504. var v1, v2 uintptr
  21505. var v3 int32
  21506. var _ /* buf at bp+0 */ [1]uint8
  21507. _, _, _, _ = state, v1, v2, v3
  21508. /* get internal structure */
  21509. if file == libc.UintptrFromInt32(0) {
  21510. return -int32(1)
  21511. }
  21512. state = file
  21513. /* check that we're reading and that there's no (serious) error */
  21514. 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) {
  21515. return -int32(1)
  21516. }
  21517. /* try output buffer (no need to check for skip request) */
  21518. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  21519. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  21520. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  21521. v2 = state + 8
  21522. v1 = *(*uintptr)(unsafe.Pointer(v2))
  21523. *(*uintptr)(unsafe.Pointer(v2))++
  21524. return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(v1)))
  21525. }
  21526. /* nothing there -- try gz_read() */
  21527. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  21528. v3 = -int32(1)
  21529. } else {
  21530. v3 = libc.Int32FromUint8((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  21531. }
  21532. return v3
  21533. }
  21534. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  21535. return Xgzgetc(tls, file)
  21536. }
  21537. // C documentation
  21538. //
  21539. // /* -- see zlib.h -- */
  21540. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  21541. var dest, src, v1, v2 uintptr
  21542. var state Tgz_statep
  21543. _, _, _, _, _ = dest, src, state, v1, v2
  21544. /* get internal structure */
  21545. if file == libc.UintptrFromInt32(0) {
  21546. return -int32(1)
  21547. }
  21548. state = file
  21549. /* in case this was just opened, set up the input buffer */
  21550. 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) {
  21551. _gz_look(tls, state)
  21552. }
  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 -int32(1)
  21556. }
  21557. /* process a skip request */
  21558. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21559. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21560. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21561. return -int32(1)
  21562. }
  21563. }
  21564. /* can't push EOF */
  21565. if c < 0 {
  21566. return -int32(1)
  21567. }
  21568. /* if output buffer empty, put byte at end (allows more pushing) */
  21569. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  21570. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  21571. (*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)
  21572. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21573. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21574. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21575. return c
  21576. }
  21577. /* if no room, give up (must have already done a gzungetc()) */
  21578. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  21579. Xgz_error(tls, state, -int32(3), __ccgo_ts+767)
  21580. return -int32(1)
  21581. }
  21582. /* slide output data if needed and insert byte before existing data */
  21583. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21584. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  21585. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  21586. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  21587. dest--
  21588. v1 = dest
  21589. src--
  21590. v2 = src
  21591. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  21592. }
  21593. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  21594. }
  21595. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  21596. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  21597. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = libc.Uint8FromInt32(c)
  21598. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  21599. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  21600. return c
  21601. }
  21602. // C documentation
  21603. //
  21604. // /* -- see zlib.h -- */
  21605. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  21606. var eol, str uintptr
  21607. var left, n, v1 uint32
  21608. var state Tgz_statep
  21609. _, _, _, _, _, _ = eol, left, n, state, str, v1
  21610. /* check parameters and get internal structure */
  21611. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  21612. return libc.UintptrFromInt32(0)
  21613. }
  21614. state = file
  21615. /* check that we're reading and that there's no (serious) error */
  21616. 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) {
  21617. return libc.UintptrFromInt32(0)
  21618. }
  21619. /* process a skip request */
  21620. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21621. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21622. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21623. return libc.UintptrFromInt32(0)
  21624. }
  21625. }
  21626. /* copy output bytes up to new line or len - 1, whichever comes first --
  21627. append a terminating zero to the string (we don't check for a zero in
  21628. the contents, let the user worry about that) */
  21629. str = buf
  21630. left = libc.Uint32FromInt32(len1) - uint32(1)
  21631. if left != 0 {
  21632. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  21633. /* assure that something is in the output buffer */
  21634. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  21635. return libc.UintptrFromInt32(0)
  21636. } /* error */
  21637. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  21638. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  21639. break /* return what we have */
  21640. }
  21641. /* look for end-of-line in current output buffer */
  21642. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  21643. v1 = left
  21644. } else {
  21645. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  21646. }
  21647. n = v1
  21648. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(n))
  21649. if eol != libc.UintptrFromInt32(0) {
  21650. n = libc.Uint32FromInt64(int64(eol)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  21651. }
  21652. /* copy through end-of-line, or remainder if not found */
  21653. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(n))
  21654. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  21655. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  21656. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21657. left -= n
  21658. buf += uintptr(n)
  21659. }
  21660. }
  21661. /* return terminated string, or if nothing, end of file */
  21662. if buf == str {
  21663. return libc.UintptrFromInt32(0)
  21664. }
  21665. *(*uint8)(unsafe.Pointer(buf)) = uint8(0)
  21666. return str
  21667. }
  21668. // C documentation
  21669. //
  21670. // /* -- see zlib.h -- */
  21671. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  21672. var state Tgz_statep
  21673. _ = state
  21674. /* get internal structure */
  21675. if file == libc.UintptrFromInt32(0) {
  21676. return 0
  21677. }
  21678. state = file
  21679. /* if the state is not known, but we can find out, then do so (this is
  21680. mainly for right after a gzopen() or gzdopen()) */
  21681. 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) {
  21682. _gz_look(tls, state)
  21683. }
  21684. /* return 1 if transparent, 0 if processing a gzip stream */
  21685. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  21686. }
  21687. // C documentation
  21688. //
  21689. // /* -- see zlib.h -- */
  21690. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  21691. var err, ret, v1, v2 int32
  21692. var state Tgz_statep
  21693. _, _, _, _, _ = err, ret, state, v1, v2
  21694. /* get internal structure */
  21695. if file == libc.UintptrFromInt32(0) {
  21696. return -int32(2)
  21697. }
  21698. state = file
  21699. /* check that we're reading */
  21700. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  21701. return -int32(2)
  21702. }
  21703. /* free memory and close file */
  21704. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  21705. XinflateEnd(tls, state+128)
  21706. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21707. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21708. }
  21709. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  21710. v1 = -int32(5)
  21711. } else {
  21712. v1 = m_Z_OK
  21713. }
  21714. err = v1
  21715. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  21716. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  21717. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  21718. libc.Xfree(tls, state)
  21719. if ret != 0 {
  21720. v2 = -int32(1)
  21721. } else {
  21722. v2 = err
  21723. }
  21724. return v2
  21725. }
  21726. // C documentation
  21727. //
  21728. // /* Initialize state for writing a gzip file. Mark initialization by setting
  21729. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  21730. // success. */
  21731. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  21732. var ret int32
  21733. var strm Tz_streamp
  21734. _, _ = ret, strm
  21735. strm = state + 128
  21736. /* allocate input buffer (double size for gzprintf) */
  21737. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  21738. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  21739. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21740. return -int32(1)
  21741. }
  21742. /* only need output buffer and deflate state if compressing */
  21743. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21744. /* allocate output buffer */
  21745. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  21746. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  21747. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21748. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21749. return -int32(1)
  21750. }
  21751. /* allocate deflate memory, set up for gzip compression */
  21752. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  21753. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  21754. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  21755. ret = XdeflateInit2_(tls, strm, (*Tgz_state)(unsafe.Pointer(state)).Flevel, int32(m_Z_DEFLATED), libc.Int32FromInt32(m_MAX_WBITS)+libc.Int32FromInt32(16), int32(m_DEF_MEM_LEVEL), (*Tgz_state)(unsafe.Pointer(state)).Fstrategy, __ccgo_ts, libc.Int32FromInt64(112))
  21756. if ret != m_Z_OK {
  21757. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  21758. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  21759. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  21760. return -int32(1)
  21761. }
  21762. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  21763. }
  21764. /* mark state as initialized */
  21765. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  21766. /* initialize write buffer if compressing */
  21767. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  21768. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21769. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21770. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  21771. }
  21772. return 0
  21773. }
  21774. // C documentation
  21775. //
  21776. // /* Compress whatever is at avail_in and next_in and write to the output file.
  21777. // Return -1 if there is an error writing to the output file or if gz_init()
  21778. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  21779. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  21780. // reset to start a new gzip stream. If gz->direct is true, then simply write
  21781. // to the output file without compressing, and ignore flush. */
  21782. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  21783. var have, max, put, v1, v2 uint32
  21784. var ret, writ int32
  21785. var strm Tz_streamp
  21786. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  21787. max = libc.Uint32FromInt32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  21788. strm = state + 128
  21789. /* allocate memory if this is the first time through */
  21790. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21791. return -int32(1)
  21792. }
  21793. /* write directly if requested */
  21794. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  21795. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  21796. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  21797. v1 = max
  21798. } else {
  21799. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  21800. }
  21801. put = v1
  21802. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(put)))
  21803. if writ < 0 {
  21804. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21805. return -int32(1)
  21806. }
  21807. *(*TuInt)(unsafe.Pointer(strm + 8)) -= libc.Uint32FromInt32(writ)
  21808. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  21809. }
  21810. return 0
  21811. }
  21812. /* check for a pending reset */
  21813. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  21814. /* don't start a new gzip member unless there is data to write */
  21815. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  21816. return 0
  21817. }
  21818. XdeflateReset(tls, strm)
  21819. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  21820. }
  21821. /* run deflate() on provided input until it produces no more output */
  21822. ret = m_Z_OK
  21823. for cond := true; cond; cond = have != 0 {
  21824. /* write out current buffer contents if full, or if flushing, but if
  21825. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  21826. 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)) {
  21827. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  21828. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(libc.Int32FromUint32(max)) {
  21829. v2 = max
  21830. } else {
  21831. v2 = libc.Uint32FromInt64(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  21832. }
  21833. put = v2
  21834. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(put)))
  21835. if writ < 0 {
  21836. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))))
  21837. return -int32(1)
  21838. }
  21839. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  21840. }
  21841. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(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 = (*Tgz_state)(unsafe.Pointer(state)).Fout
  21845. }
  21846. }
  21847. /* compress */
  21848. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21849. ret = Xdeflate(tls, strm, flush)
  21850. if ret == -int32(2) {
  21851. Xgz_error(tls, state, -int32(2), __ccgo_ts+798)
  21852. return -int32(1)
  21853. }
  21854. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  21855. }
  21856. /* if that completed a deflate stream, allow another to start */
  21857. if flush == int32(m_Z_FINISH) {
  21858. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  21859. }
  21860. /* all done, no errors */
  21861. return 0
  21862. }
  21863. // C documentation
  21864. //
  21865. // /* Compress len zeros to output. Return -1 on a write error or memory
  21866. // allocation failure by gz_comp(), or 0 on success. */
  21867. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  21868. var first int32
  21869. var n, v1 uint32
  21870. var strm Tz_streamp
  21871. _, _, _, _ = first, n, strm, v1
  21872. strm = state + 128
  21873. /* consume whatever's left in the input buffer */
  21874. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21875. return -int32(1)
  21876. }
  21877. /* compress len zeros (len guaranteed > 0) */
  21878. first = int32(1)
  21879. for len1 != 0 {
  21880. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls)) || libc.Int64FromUint32((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  21881. v1 = libc.Uint32FromInt64(len1)
  21882. } else {
  21883. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  21884. }
  21885. n = v1
  21886. if first != 0 {
  21887. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(n))
  21888. first = 0
  21889. }
  21890. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  21891. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21892. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21893. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21894. return -int32(1)
  21895. }
  21896. len1 -= libc.Int64FromUint32(n)
  21897. }
  21898. return 0
  21899. }
  21900. // C documentation
  21901. //
  21902. // /* Write len bytes from buf to file. Return the number of bytes written. If
  21903. // the returned value is less than len, then there was an error. */
  21904. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  21905. var copy1, have, n uint32
  21906. var put Tz_size_t
  21907. _, _, _, _ = copy1, have, n, put
  21908. put = len1
  21909. /* if len is zero, avoid unnecessary operations */
  21910. if len1 == uint64(0) {
  21911. return uint64(0)
  21912. }
  21913. /* allocate memory if this is the first time through */
  21914. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  21915. return uint64(0)
  21916. }
  21917. /* check for seek request */
  21918. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  21919. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  21920. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  21921. return uint64(0)
  21922. }
  21923. }
  21924. /* for small len, copy to input buffer, otherwise compress directly */
  21925. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  21926. /* copy to input buffer, compress when full */
  21927. for cond := true; cond; cond = len1 != 0 {
  21928. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  21929. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  21930. }
  21931. have = libc.Uint32FromInt64(int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  21932. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  21933. if uint64(copy1) > len1 {
  21934. copy1 = uint32(len1)
  21935. }
  21936. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(copy1))
  21937. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  21938. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(copy1)
  21939. buf = buf + uintptr(copy1)
  21940. len1 -= uint64(copy1)
  21941. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21942. return uint64(0)
  21943. }
  21944. }
  21945. } else {
  21946. /* consume whatever's left in the input buffer */
  21947. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21948. return uint64(0)
  21949. }
  21950. /* directly compress user buffer to file */
  21951. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  21952. for cond := true; cond; cond = len1 != 0 {
  21953. n = libc.Uint32FromInt32(-libc.Int32FromInt32(1))
  21954. if uint64(n) > len1 {
  21955. n = uint32(len1)
  21956. }
  21957. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  21958. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += libc.Int64FromUint32(n)
  21959. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  21960. return uint64(0)
  21961. }
  21962. len1 -= uint64(n)
  21963. }
  21964. }
  21965. /* input was all buffered or compressed */
  21966. return put
  21967. }
  21968. // C documentation
  21969. //
  21970. // /* -- see zlib.h -- */
  21971. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  21972. var state Tgz_statep
  21973. _ = state
  21974. /* get internal structure */
  21975. if file == libc.UintptrFromInt32(0) {
  21976. return 0
  21977. }
  21978. state = file
  21979. /* check that we're writing and that there's no error */
  21980. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  21981. return 0
  21982. }
  21983. /* since an int is returned, make sure len fits in one, otherwise return
  21984. with an error (this avoids a flaw in the interface) */
  21985. if libc.Int32FromUint32(len1) < 0 {
  21986. Xgz_error(tls, state, -int32(3), __ccgo_ts+837)
  21987. return 0
  21988. }
  21989. /* write len bytes from buf (the return value will fit in an int) */
  21990. return libc.Int32FromUint64(_gz_write(tls, state, buf, uint64(len1)))
  21991. }
  21992. // C documentation
  21993. //
  21994. // /* -- see zlib.h -- */
  21995. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  21996. var len1 Tz_size_t
  21997. var state Tgz_statep
  21998. var v1 uint64
  21999. _, _, _ = len1, state, v1
  22000. /* get internal structure */
  22001. if file == libc.UintptrFromInt32(0) {
  22002. return uint64(0)
  22003. }
  22004. state = file
  22005. /* check that we're writing and that there's no error */
  22006. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22007. return uint64(0)
  22008. }
  22009. /* compute bytes to read -- error on overflow */
  22010. len1 = nitems * size
  22011. if size != 0 && len1/size != nitems {
  22012. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  22013. return uint64(0)
  22014. }
  22015. /* write len bytes to buf, return the number of full items written */
  22016. if len1 != 0 {
  22017. v1 = _gz_write(tls, state, buf, len1) / size
  22018. } else {
  22019. v1 = uint64(0)
  22020. }
  22021. return v1
  22022. }
  22023. // C documentation
  22024. //
  22025. // /* -- see zlib.h -- */
  22026. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  22027. bp := tls.Alloc(16)
  22028. defer tls.Free(16)
  22029. var have uint32
  22030. var state Tgz_statep
  22031. var strm Tz_streamp
  22032. var _ /* buf at bp+0 */ [1]uint8
  22033. _, _, _ = have, state, strm
  22034. /* get internal structure */
  22035. if file == libc.UintptrFromInt32(0) {
  22036. return -int32(1)
  22037. }
  22038. state = file
  22039. strm = state + 128
  22040. /* check that we're writing and that there's no error */
  22041. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22042. return -int32(1)
  22043. }
  22044. /* check for seek request */
  22045. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22046. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22047. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22048. return -int32(1)
  22049. }
  22050. }
  22051. /* try writing to input buffer for speed (state->size == 0 if buffer not
  22052. initialized) */
  22053. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22054. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22055. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22056. }
  22057. have = libc.Uint32FromInt64(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  22058. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22059. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = libc.Uint8FromInt32(c)
  22060. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  22061. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  22062. return c & int32(0xff)
  22063. }
  22064. }
  22065. /* no room in buffer or not initialized, use gz_write() */
  22066. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = libc.Uint8FromInt32(c)
  22067. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  22068. return -int32(1)
  22069. }
  22070. return c & int32(0xff)
  22071. }
  22072. // C documentation
  22073. //
  22074. // /* -- see zlib.h -- */
  22075. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  22076. var len1, put Tz_size_t
  22077. var state Tgz_statep
  22078. var v1 int32
  22079. _, _, _, _ = len1, put, state, v1
  22080. /* get internal structure */
  22081. if file == libc.UintptrFromInt32(0) {
  22082. return -int32(1)
  22083. }
  22084. state = file
  22085. /* check that we're writing and that there's no error */
  22086. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22087. return -int32(1)
  22088. }
  22089. /* write string */
  22090. len1 = libc.Xstrlen(tls, s)
  22091. if libc.Int32FromUint64(len1) < 0 || uint64(uint32(len1)) != len1 {
  22092. Xgz_error(tls, state, -int32(2), __ccgo_ts+874)
  22093. return -int32(1)
  22094. }
  22095. put = _gz_write(tls, state, s, len1)
  22096. if put < len1 {
  22097. v1 = -int32(1)
  22098. } else {
  22099. v1 = libc.Int32FromUint64(len1)
  22100. }
  22101. return v1
  22102. }
  22103. // C documentation
  22104. //
  22105. // /* -- see zlib.h -- */
  22106. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  22107. var left uint32
  22108. var len1 int32
  22109. var next uintptr
  22110. var state Tgz_statep
  22111. var strm Tz_streamp
  22112. _, _, _, _, _ = left, len1, next, state, strm
  22113. /* get internal structure */
  22114. if file == libc.UintptrFromInt32(0) {
  22115. return -int32(2)
  22116. }
  22117. state = file
  22118. strm = state + 128
  22119. /* check that we're writing and that there's no error */
  22120. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22121. return -int32(2)
  22122. }
  22123. /* make sure we have some buffer space */
  22124. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  22125. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22126. }
  22127. /* check for seek request */
  22128. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22129. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22130. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22131. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22132. }
  22133. }
  22134. /* do the printf() into the input buffer, put length in len -- the input
  22135. buffer is double-sized just for this function, so there is guaranteed to
  22136. be state->size bytes available after the current contents */
  22137. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  22138. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22139. }
  22140. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int64((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  22141. *(*uint8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = uint8(0)
  22142. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  22143. /* check that printf() results fit in buffer */
  22144. 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 {
  22145. return 0
  22146. }
  22147. /* update buffer and position, compress first half if past that */
  22148. *(*TuInt)(unsafe.Pointer(strm + 8)) += libc.Uint32FromInt32(len1)
  22149. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(len1)
  22150. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  22151. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22152. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  22153. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  22154. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22155. }
  22156. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(left))
  22157. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  22158. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  22159. }
  22160. return len1
  22161. }
  22162. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  22163. var ret int32
  22164. var va Tva_list
  22165. _, _ = ret, va
  22166. va = va1
  22167. ret = Xgzvprintf(tls, file, format, va)
  22168. _ = va
  22169. return ret
  22170. }
  22171. // C documentation
  22172. //
  22173. // /* -- see zlib.h -- */
  22174. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  22175. var state Tgz_statep
  22176. _ = state
  22177. /* get internal structure */
  22178. if file == libc.UintptrFromInt32(0) {
  22179. return -int32(2)
  22180. }
  22181. state = file
  22182. /* check that we're writing and that there's no error */
  22183. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  22184. return -int32(2)
  22185. }
  22186. /* check flush parameter */
  22187. if flush < 0 || flush > int32(m_Z_FINISH) {
  22188. return -int32(2)
  22189. }
  22190. /* check for seek request */
  22191. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22192. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22193. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22194. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22195. }
  22196. }
  22197. /* compress remaining data with requested flush */
  22198. _gz_comp(tls, state, flush)
  22199. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22200. }
  22201. // C documentation
  22202. //
  22203. // /* -- see zlib.h -- */
  22204. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  22205. var state Tgz_statep
  22206. var strm Tz_streamp
  22207. _, _ = state, strm
  22208. /* get internal structure */
  22209. if file == libc.UintptrFromInt32(0) {
  22210. return -int32(2)
  22211. }
  22212. state = file
  22213. strm = state + 128
  22214. /* check that we're writing and that there's no error */
  22215. 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 {
  22216. return -int32(2)
  22217. }
  22218. /* if no change is requested, then do nothing */
  22219. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  22220. return m_Z_OK
  22221. }
  22222. /* check for seek request */
  22223. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22224. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22225. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22226. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22227. }
  22228. }
  22229. /* change compression parameters for subsequent input */
  22230. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22231. /* flush previous input with previous parameters before changing */
  22232. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  22233. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22234. }
  22235. XdeflateParams(tls, strm, level, strategy)
  22236. }
  22237. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  22238. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  22239. return m_Z_OK
  22240. }
  22241. // C documentation
  22242. //
  22243. // /* -- see zlib.h -- */
  22244. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  22245. var ret int32
  22246. var state Tgz_statep
  22247. _, _ = ret, state
  22248. ret = m_Z_OK
  22249. /* get internal structure */
  22250. if file == libc.UintptrFromInt32(0) {
  22251. return -int32(2)
  22252. }
  22253. state = file
  22254. /* check that we're writing */
  22255. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22256. return -int32(2)
  22257. }
  22258. /* check for seek request */
  22259. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22260. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22261. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  22262. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22263. }
  22264. }
  22265. /* flush, free memory, and close file */
  22266. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  22267. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22268. }
  22269. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  22270. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  22271. XdeflateEnd(tls, state+128)
  22272. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  22273. }
  22274. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  22275. }
  22276. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22277. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  22278. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  22279. ret = -int32(1)
  22280. }
  22281. libc.Xfree(tls, state)
  22282. return ret
  22283. }
  22284. func __ccgo_fp(f interface{}) uintptr {
  22285. type iface [2]uintptr
  22286. return (*iface)(unsafe.Pointer(&f))[1]
  22287. }
  22288. var x__dist_code = [512]Tuch{
  22289. 1: uint8(1),
  22290. 2: uint8(2),
  22291. 3: uint8(3),
  22292. 4: uint8(4),
  22293. 5: uint8(4),
  22294. 6: uint8(5),
  22295. 7: uint8(5),
  22296. 8: uint8(6),
  22297. 9: uint8(6),
  22298. 10: uint8(6),
  22299. 11: uint8(6),
  22300. 12: uint8(7),
  22301. 13: uint8(7),
  22302. 14: uint8(7),
  22303. 15: uint8(7),
  22304. 16: uint8(8),
  22305. 17: uint8(8),
  22306. 18: uint8(8),
  22307. 19: uint8(8),
  22308. 20: uint8(8),
  22309. 21: uint8(8),
  22310. 22: uint8(8),
  22311. 23: uint8(8),
  22312. 24: uint8(9),
  22313. 25: uint8(9),
  22314. 26: uint8(9),
  22315. 27: uint8(9),
  22316. 28: uint8(9),
  22317. 29: uint8(9),
  22318. 30: uint8(9),
  22319. 31: uint8(9),
  22320. 32: uint8(10),
  22321. 33: uint8(10),
  22322. 34: uint8(10),
  22323. 35: uint8(10),
  22324. 36: uint8(10),
  22325. 37: uint8(10),
  22326. 38: uint8(10),
  22327. 39: uint8(10),
  22328. 40: uint8(10),
  22329. 41: uint8(10),
  22330. 42: uint8(10),
  22331. 43: uint8(10),
  22332. 44: uint8(10),
  22333. 45: uint8(10),
  22334. 46: uint8(10),
  22335. 47: uint8(10),
  22336. 48: uint8(11),
  22337. 49: uint8(11),
  22338. 50: uint8(11),
  22339. 51: uint8(11),
  22340. 52: uint8(11),
  22341. 53: uint8(11),
  22342. 54: uint8(11),
  22343. 55: uint8(11),
  22344. 56: uint8(11),
  22345. 57: uint8(11),
  22346. 58: uint8(11),
  22347. 59: uint8(11),
  22348. 60: uint8(11),
  22349. 61: uint8(11),
  22350. 62: uint8(11),
  22351. 63: uint8(11),
  22352. 64: uint8(12),
  22353. 65: uint8(12),
  22354. 66: uint8(12),
  22355. 67: uint8(12),
  22356. 68: uint8(12),
  22357. 69: uint8(12),
  22358. 70: uint8(12),
  22359. 71: uint8(12),
  22360. 72: uint8(12),
  22361. 73: uint8(12),
  22362. 74: uint8(12),
  22363. 75: uint8(12),
  22364. 76: uint8(12),
  22365. 77: uint8(12),
  22366. 78: uint8(12),
  22367. 79: uint8(12),
  22368. 80: uint8(12),
  22369. 81: uint8(12),
  22370. 82: uint8(12),
  22371. 83: uint8(12),
  22372. 84: uint8(12),
  22373. 85: uint8(12),
  22374. 86: uint8(12),
  22375. 87: uint8(12),
  22376. 88: uint8(12),
  22377. 89: uint8(12),
  22378. 90: uint8(12),
  22379. 91: uint8(12),
  22380. 92: uint8(12),
  22381. 93: uint8(12),
  22382. 94: uint8(12),
  22383. 95: uint8(12),
  22384. 96: uint8(13),
  22385. 97: uint8(13),
  22386. 98: uint8(13),
  22387. 99: uint8(13),
  22388. 100: uint8(13),
  22389. 101: uint8(13),
  22390. 102: uint8(13),
  22391. 103: uint8(13),
  22392. 104: uint8(13),
  22393. 105: uint8(13),
  22394. 106: uint8(13),
  22395. 107: uint8(13),
  22396. 108: uint8(13),
  22397. 109: uint8(13),
  22398. 110: uint8(13),
  22399. 111: uint8(13),
  22400. 112: uint8(13),
  22401. 113: uint8(13),
  22402. 114: uint8(13),
  22403. 115: uint8(13),
  22404. 116: uint8(13),
  22405. 117: uint8(13),
  22406. 118: uint8(13),
  22407. 119: uint8(13),
  22408. 120: uint8(13),
  22409. 121: uint8(13),
  22410. 122: uint8(13),
  22411. 123: uint8(13),
  22412. 124: uint8(13),
  22413. 125: uint8(13),
  22414. 126: uint8(13),
  22415. 127: uint8(13),
  22416. 128: uint8(14),
  22417. 129: uint8(14),
  22418. 130: uint8(14),
  22419. 131: uint8(14),
  22420. 132: uint8(14),
  22421. 133: uint8(14),
  22422. 134: uint8(14),
  22423. 135: uint8(14),
  22424. 136: uint8(14),
  22425. 137: uint8(14),
  22426. 138: uint8(14),
  22427. 139: uint8(14),
  22428. 140: uint8(14),
  22429. 141: uint8(14),
  22430. 142: uint8(14),
  22431. 143: uint8(14),
  22432. 144: uint8(14),
  22433. 145: uint8(14),
  22434. 146: uint8(14),
  22435. 147: uint8(14),
  22436. 148: uint8(14),
  22437. 149: uint8(14),
  22438. 150: uint8(14),
  22439. 151: uint8(14),
  22440. 152: uint8(14),
  22441. 153: uint8(14),
  22442. 154: uint8(14),
  22443. 155: uint8(14),
  22444. 156: uint8(14),
  22445. 157: uint8(14),
  22446. 158: uint8(14),
  22447. 159: uint8(14),
  22448. 160: uint8(14),
  22449. 161: uint8(14),
  22450. 162: uint8(14),
  22451. 163: uint8(14),
  22452. 164: uint8(14),
  22453. 165: uint8(14),
  22454. 166: uint8(14),
  22455. 167: uint8(14),
  22456. 168: uint8(14),
  22457. 169: uint8(14),
  22458. 170: uint8(14),
  22459. 171: uint8(14),
  22460. 172: uint8(14),
  22461. 173: uint8(14),
  22462. 174: uint8(14),
  22463. 175: uint8(14),
  22464. 176: uint8(14),
  22465. 177: uint8(14),
  22466. 178: uint8(14),
  22467. 179: uint8(14),
  22468. 180: uint8(14),
  22469. 181: uint8(14),
  22470. 182: uint8(14),
  22471. 183: uint8(14),
  22472. 184: uint8(14),
  22473. 185: uint8(14),
  22474. 186: uint8(14),
  22475. 187: uint8(14),
  22476. 188: uint8(14),
  22477. 189: uint8(14),
  22478. 190: uint8(14),
  22479. 191: uint8(14),
  22480. 192: uint8(15),
  22481. 193: uint8(15),
  22482. 194: uint8(15),
  22483. 195: uint8(15),
  22484. 196: uint8(15),
  22485. 197: uint8(15),
  22486. 198: uint8(15),
  22487. 199: uint8(15),
  22488. 200: uint8(15),
  22489. 201: uint8(15),
  22490. 202: uint8(15),
  22491. 203: uint8(15),
  22492. 204: uint8(15),
  22493. 205: uint8(15),
  22494. 206: uint8(15),
  22495. 207: uint8(15),
  22496. 208: uint8(15),
  22497. 209: uint8(15),
  22498. 210: uint8(15),
  22499. 211: uint8(15),
  22500. 212: uint8(15),
  22501. 213: uint8(15),
  22502. 214: uint8(15),
  22503. 215: uint8(15),
  22504. 216: uint8(15),
  22505. 217: uint8(15),
  22506. 218: uint8(15),
  22507. 219: uint8(15),
  22508. 220: uint8(15),
  22509. 221: uint8(15),
  22510. 222: uint8(15),
  22511. 223: uint8(15),
  22512. 224: uint8(15),
  22513. 225: uint8(15),
  22514. 226: uint8(15),
  22515. 227: uint8(15),
  22516. 228: uint8(15),
  22517. 229: uint8(15),
  22518. 230: uint8(15),
  22519. 231: uint8(15),
  22520. 232: uint8(15),
  22521. 233: uint8(15),
  22522. 234: uint8(15),
  22523. 235: uint8(15),
  22524. 236: uint8(15),
  22525. 237: uint8(15),
  22526. 238: uint8(15),
  22527. 239: uint8(15),
  22528. 240: uint8(15),
  22529. 241: uint8(15),
  22530. 242: uint8(15),
  22531. 243: uint8(15),
  22532. 244: uint8(15),
  22533. 245: uint8(15),
  22534. 246: uint8(15),
  22535. 247: uint8(15),
  22536. 248: uint8(15),
  22537. 249: uint8(15),
  22538. 250: uint8(15),
  22539. 251: uint8(15),
  22540. 252: uint8(15),
  22541. 253: uint8(15),
  22542. 254: uint8(15),
  22543. 255: uint8(15),
  22544. 258: uint8(16),
  22545. 259: uint8(17),
  22546. 260: uint8(18),
  22547. 261: uint8(18),
  22548. 262: uint8(19),
  22549. 263: uint8(19),
  22550. 264: uint8(20),
  22551. 265: uint8(20),
  22552. 266: uint8(20),
  22553. 267: uint8(20),
  22554. 268: uint8(21),
  22555. 269: uint8(21),
  22556. 270: uint8(21),
  22557. 271: uint8(21),
  22558. 272: uint8(22),
  22559. 273: uint8(22),
  22560. 274: uint8(22),
  22561. 275: uint8(22),
  22562. 276: uint8(22),
  22563. 277: uint8(22),
  22564. 278: uint8(22),
  22565. 279: uint8(22),
  22566. 280: uint8(23),
  22567. 281: uint8(23),
  22568. 282: uint8(23),
  22569. 283: uint8(23),
  22570. 284: uint8(23),
  22571. 285: uint8(23),
  22572. 286: uint8(23),
  22573. 287: uint8(23),
  22574. 288: uint8(24),
  22575. 289: uint8(24),
  22576. 290: uint8(24),
  22577. 291: uint8(24),
  22578. 292: uint8(24),
  22579. 293: uint8(24),
  22580. 294: uint8(24),
  22581. 295: uint8(24),
  22582. 296: uint8(24),
  22583. 297: uint8(24),
  22584. 298: uint8(24),
  22585. 299: uint8(24),
  22586. 300: uint8(24),
  22587. 301: uint8(24),
  22588. 302: uint8(24),
  22589. 303: uint8(24),
  22590. 304: uint8(25),
  22591. 305: uint8(25),
  22592. 306: uint8(25),
  22593. 307: uint8(25),
  22594. 308: uint8(25),
  22595. 309: uint8(25),
  22596. 310: uint8(25),
  22597. 311: uint8(25),
  22598. 312: uint8(25),
  22599. 313: uint8(25),
  22600. 314: uint8(25),
  22601. 315: uint8(25),
  22602. 316: uint8(25),
  22603. 317: uint8(25),
  22604. 318: uint8(25),
  22605. 319: uint8(25),
  22606. 320: uint8(26),
  22607. 321: uint8(26),
  22608. 322: uint8(26),
  22609. 323: uint8(26),
  22610. 324: uint8(26),
  22611. 325: uint8(26),
  22612. 326: uint8(26),
  22613. 327: uint8(26),
  22614. 328: uint8(26),
  22615. 329: uint8(26),
  22616. 330: uint8(26),
  22617. 331: uint8(26),
  22618. 332: uint8(26),
  22619. 333: uint8(26),
  22620. 334: uint8(26),
  22621. 335: uint8(26),
  22622. 336: uint8(26),
  22623. 337: uint8(26),
  22624. 338: uint8(26),
  22625. 339: uint8(26),
  22626. 340: uint8(26),
  22627. 341: uint8(26),
  22628. 342: uint8(26),
  22629. 343: uint8(26),
  22630. 344: uint8(26),
  22631. 345: uint8(26),
  22632. 346: uint8(26),
  22633. 347: uint8(26),
  22634. 348: uint8(26),
  22635. 349: uint8(26),
  22636. 350: uint8(26),
  22637. 351: uint8(26),
  22638. 352: uint8(27),
  22639. 353: uint8(27),
  22640. 354: uint8(27),
  22641. 355: uint8(27),
  22642. 356: uint8(27),
  22643. 357: uint8(27),
  22644. 358: uint8(27),
  22645. 359: uint8(27),
  22646. 360: uint8(27),
  22647. 361: uint8(27),
  22648. 362: uint8(27),
  22649. 363: uint8(27),
  22650. 364: uint8(27),
  22651. 365: uint8(27),
  22652. 366: uint8(27),
  22653. 367: uint8(27),
  22654. 368: uint8(27),
  22655. 369: uint8(27),
  22656. 370: uint8(27),
  22657. 371: uint8(27),
  22658. 372: uint8(27),
  22659. 373: uint8(27),
  22660. 374: uint8(27),
  22661. 375: uint8(27),
  22662. 376: uint8(27),
  22663. 377: uint8(27),
  22664. 378: uint8(27),
  22665. 379: uint8(27),
  22666. 380: uint8(27),
  22667. 381: uint8(27),
  22668. 382: uint8(27),
  22669. 383: uint8(27),
  22670. 384: uint8(28),
  22671. 385: uint8(28),
  22672. 386: uint8(28),
  22673. 387: uint8(28),
  22674. 388: uint8(28),
  22675. 389: uint8(28),
  22676. 390: uint8(28),
  22677. 391: uint8(28),
  22678. 392: uint8(28),
  22679. 393: uint8(28),
  22680. 394: uint8(28),
  22681. 395: uint8(28),
  22682. 396: uint8(28),
  22683. 397: uint8(28),
  22684. 398: uint8(28),
  22685. 399: uint8(28),
  22686. 400: uint8(28),
  22687. 401: uint8(28),
  22688. 402: uint8(28),
  22689. 403: uint8(28),
  22690. 404: uint8(28),
  22691. 405: uint8(28),
  22692. 406: uint8(28),
  22693. 407: uint8(28),
  22694. 408: uint8(28),
  22695. 409: uint8(28),
  22696. 410: uint8(28),
  22697. 411: uint8(28),
  22698. 412: uint8(28),
  22699. 413: uint8(28),
  22700. 414: uint8(28),
  22701. 415: uint8(28),
  22702. 416: uint8(28),
  22703. 417: uint8(28),
  22704. 418: uint8(28),
  22705. 419: uint8(28),
  22706. 420: uint8(28),
  22707. 421: uint8(28),
  22708. 422: uint8(28),
  22709. 423: uint8(28),
  22710. 424: uint8(28),
  22711. 425: uint8(28),
  22712. 426: uint8(28),
  22713. 427: uint8(28),
  22714. 428: uint8(28),
  22715. 429: uint8(28),
  22716. 430: uint8(28),
  22717. 431: uint8(28),
  22718. 432: uint8(28),
  22719. 433: uint8(28),
  22720. 434: uint8(28),
  22721. 435: uint8(28),
  22722. 436: uint8(28),
  22723. 437: uint8(28),
  22724. 438: uint8(28),
  22725. 439: uint8(28),
  22726. 440: uint8(28),
  22727. 441: uint8(28),
  22728. 442: uint8(28),
  22729. 443: uint8(28),
  22730. 444: uint8(28),
  22731. 445: uint8(28),
  22732. 446: uint8(28),
  22733. 447: uint8(28),
  22734. 448: uint8(29),
  22735. 449: uint8(29),
  22736. 450: uint8(29),
  22737. 451: uint8(29),
  22738. 452: uint8(29),
  22739. 453: uint8(29),
  22740. 454: uint8(29),
  22741. 455: uint8(29),
  22742. 456: uint8(29),
  22743. 457: uint8(29),
  22744. 458: uint8(29),
  22745. 459: uint8(29),
  22746. 460: uint8(29),
  22747. 461: uint8(29),
  22748. 462: uint8(29),
  22749. 463: uint8(29),
  22750. 464: uint8(29),
  22751. 465: uint8(29),
  22752. 466: uint8(29),
  22753. 467: uint8(29),
  22754. 468: uint8(29),
  22755. 469: uint8(29),
  22756. 470: uint8(29),
  22757. 471: uint8(29),
  22758. 472: uint8(29),
  22759. 473: uint8(29),
  22760. 474: uint8(29),
  22761. 475: uint8(29),
  22762. 476: uint8(29),
  22763. 477: uint8(29),
  22764. 478: uint8(29),
  22765. 479: uint8(29),
  22766. 480: uint8(29),
  22767. 481: uint8(29),
  22768. 482: uint8(29),
  22769. 483: uint8(29),
  22770. 484: uint8(29),
  22771. 485: uint8(29),
  22772. 486: uint8(29),
  22773. 487: uint8(29),
  22774. 488: uint8(29),
  22775. 489: uint8(29),
  22776. 490: uint8(29),
  22777. 491: uint8(29),
  22778. 492: uint8(29),
  22779. 493: uint8(29),
  22780. 494: uint8(29),
  22781. 495: uint8(29),
  22782. 496: uint8(29),
  22783. 497: uint8(29),
  22784. 498: uint8(29),
  22785. 499: uint8(29),
  22786. 500: uint8(29),
  22787. 501: uint8(29),
  22788. 502: uint8(29),
  22789. 503: uint8(29),
  22790. 504: uint8(29),
  22791. 505: uint8(29),
  22792. 506: uint8(29),
  22793. 507: uint8(29),
  22794. 508: uint8(29),
  22795. 509: uint8(29),
  22796. 510: uint8(29),
  22797. 511: uint8(29),
  22798. }
  22799. var x__length_code = [256]Tuch{
  22800. 1: uint8(1),
  22801. 2: uint8(2),
  22802. 3: uint8(3),
  22803. 4: uint8(4),
  22804. 5: uint8(5),
  22805. 6: uint8(6),
  22806. 7: uint8(7),
  22807. 8: uint8(8),
  22808. 9: uint8(8),
  22809. 10: uint8(9),
  22810. 11: uint8(9),
  22811. 12: uint8(10),
  22812. 13: uint8(10),
  22813. 14: uint8(11),
  22814. 15: uint8(11),
  22815. 16: uint8(12),
  22816. 17: uint8(12),
  22817. 18: uint8(12),
  22818. 19: uint8(12),
  22819. 20: uint8(13),
  22820. 21: uint8(13),
  22821. 22: uint8(13),
  22822. 23: uint8(13),
  22823. 24: uint8(14),
  22824. 25: uint8(14),
  22825. 26: uint8(14),
  22826. 27: uint8(14),
  22827. 28: uint8(15),
  22828. 29: uint8(15),
  22829. 30: uint8(15),
  22830. 31: uint8(15),
  22831. 32: uint8(16),
  22832. 33: uint8(16),
  22833. 34: uint8(16),
  22834. 35: uint8(16),
  22835. 36: uint8(16),
  22836. 37: uint8(16),
  22837. 38: uint8(16),
  22838. 39: uint8(16),
  22839. 40: uint8(17),
  22840. 41: uint8(17),
  22841. 42: uint8(17),
  22842. 43: uint8(17),
  22843. 44: uint8(17),
  22844. 45: uint8(17),
  22845. 46: uint8(17),
  22846. 47: uint8(17),
  22847. 48: uint8(18),
  22848. 49: uint8(18),
  22849. 50: uint8(18),
  22850. 51: uint8(18),
  22851. 52: uint8(18),
  22852. 53: uint8(18),
  22853. 54: uint8(18),
  22854. 55: uint8(18),
  22855. 56: uint8(19),
  22856. 57: uint8(19),
  22857. 58: uint8(19),
  22858. 59: uint8(19),
  22859. 60: uint8(19),
  22860. 61: uint8(19),
  22861. 62: uint8(19),
  22862. 63: uint8(19),
  22863. 64: uint8(20),
  22864. 65: uint8(20),
  22865. 66: uint8(20),
  22866. 67: uint8(20),
  22867. 68: uint8(20),
  22868. 69: uint8(20),
  22869. 70: uint8(20),
  22870. 71: uint8(20),
  22871. 72: uint8(20),
  22872. 73: uint8(20),
  22873. 74: uint8(20),
  22874. 75: uint8(20),
  22875. 76: uint8(20),
  22876. 77: uint8(20),
  22877. 78: uint8(20),
  22878. 79: uint8(20),
  22879. 80: uint8(21),
  22880. 81: uint8(21),
  22881. 82: uint8(21),
  22882. 83: uint8(21),
  22883. 84: uint8(21),
  22884. 85: uint8(21),
  22885. 86: uint8(21),
  22886. 87: uint8(21),
  22887. 88: uint8(21),
  22888. 89: uint8(21),
  22889. 90: uint8(21),
  22890. 91: uint8(21),
  22891. 92: uint8(21),
  22892. 93: uint8(21),
  22893. 94: uint8(21),
  22894. 95: uint8(21),
  22895. 96: uint8(22),
  22896. 97: uint8(22),
  22897. 98: uint8(22),
  22898. 99: uint8(22),
  22899. 100: uint8(22),
  22900. 101: uint8(22),
  22901. 102: uint8(22),
  22902. 103: uint8(22),
  22903. 104: uint8(22),
  22904. 105: uint8(22),
  22905. 106: uint8(22),
  22906. 107: uint8(22),
  22907. 108: uint8(22),
  22908. 109: uint8(22),
  22909. 110: uint8(22),
  22910. 111: uint8(22),
  22911. 112: uint8(23),
  22912. 113: uint8(23),
  22913. 114: uint8(23),
  22914. 115: uint8(23),
  22915. 116: uint8(23),
  22916. 117: uint8(23),
  22917. 118: uint8(23),
  22918. 119: uint8(23),
  22919. 120: uint8(23),
  22920. 121: uint8(23),
  22921. 122: uint8(23),
  22922. 123: uint8(23),
  22923. 124: uint8(23),
  22924. 125: uint8(23),
  22925. 126: uint8(23),
  22926. 127: uint8(23),
  22927. 128: uint8(24),
  22928. 129: uint8(24),
  22929. 130: uint8(24),
  22930. 131: uint8(24),
  22931. 132: uint8(24),
  22932. 133: uint8(24),
  22933. 134: uint8(24),
  22934. 135: uint8(24),
  22935. 136: uint8(24),
  22936. 137: uint8(24),
  22937. 138: uint8(24),
  22938. 139: uint8(24),
  22939. 140: uint8(24),
  22940. 141: uint8(24),
  22941. 142: uint8(24),
  22942. 143: uint8(24),
  22943. 144: uint8(24),
  22944. 145: uint8(24),
  22945. 146: uint8(24),
  22946. 147: uint8(24),
  22947. 148: uint8(24),
  22948. 149: uint8(24),
  22949. 150: uint8(24),
  22950. 151: uint8(24),
  22951. 152: uint8(24),
  22952. 153: uint8(24),
  22953. 154: uint8(24),
  22954. 155: uint8(24),
  22955. 156: uint8(24),
  22956. 157: uint8(24),
  22957. 158: uint8(24),
  22958. 159: uint8(24),
  22959. 160: uint8(25),
  22960. 161: uint8(25),
  22961. 162: uint8(25),
  22962. 163: uint8(25),
  22963. 164: uint8(25),
  22964. 165: uint8(25),
  22965. 166: uint8(25),
  22966. 167: uint8(25),
  22967. 168: uint8(25),
  22968. 169: uint8(25),
  22969. 170: uint8(25),
  22970. 171: uint8(25),
  22971. 172: uint8(25),
  22972. 173: uint8(25),
  22973. 174: uint8(25),
  22974. 175: uint8(25),
  22975. 176: uint8(25),
  22976. 177: uint8(25),
  22977. 178: uint8(25),
  22978. 179: uint8(25),
  22979. 180: uint8(25),
  22980. 181: uint8(25),
  22981. 182: uint8(25),
  22982. 183: uint8(25),
  22983. 184: uint8(25),
  22984. 185: uint8(25),
  22985. 186: uint8(25),
  22986. 187: uint8(25),
  22987. 188: uint8(25),
  22988. 189: uint8(25),
  22989. 190: uint8(25),
  22990. 191: uint8(25),
  22991. 192: uint8(26),
  22992. 193: uint8(26),
  22993. 194: uint8(26),
  22994. 195: uint8(26),
  22995. 196: uint8(26),
  22996. 197: uint8(26),
  22997. 198: uint8(26),
  22998. 199: uint8(26),
  22999. 200: uint8(26),
  23000. 201: uint8(26),
  23001. 202: uint8(26),
  23002. 203: uint8(26),
  23003. 204: uint8(26),
  23004. 205: uint8(26),
  23005. 206: uint8(26),
  23006. 207: uint8(26),
  23007. 208: uint8(26),
  23008. 209: uint8(26),
  23009. 210: uint8(26),
  23010. 211: uint8(26),
  23011. 212: uint8(26),
  23012. 213: uint8(26),
  23013. 214: uint8(26),
  23014. 215: uint8(26),
  23015. 216: uint8(26),
  23016. 217: uint8(26),
  23017. 218: uint8(26),
  23018. 219: uint8(26),
  23019. 220: uint8(26),
  23020. 221: uint8(26),
  23021. 222: uint8(26),
  23022. 223: uint8(26),
  23023. 224: uint8(27),
  23024. 225: uint8(27),
  23025. 226: uint8(27),
  23026. 227: uint8(27),
  23027. 228: uint8(27),
  23028. 229: uint8(27),
  23029. 230: uint8(27),
  23030. 231: uint8(27),
  23031. 232: uint8(27),
  23032. 233: uint8(27),
  23033. 234: uint8(27),
  23034. 235: uint8(27),
  23035. 236: uint8(27),
  23036. 237: uint8(27),
  23037. 238: uint8(27),
  23038. 239: uint8(27),
  23039. 240: uint8(27),
  23040. 241: uint8(27),
  23041. 242: uint8(27),
  23042. 243: uint8(27),
  23043. 244: uint8(27),
  23044. 245: uint8(27),
  23045. 246: uint8(27),
  23046. 247: uint8(27),
  23047. 248: uint8(27),
  23048. 249: uint8(27),
  23049. 250: uint8(27),
  23050. 251: uint8(27),
  23051. 252: uint8(27),
  23052. 253: uint8(27),
  23053. 254: uint8(27),
  23054. 255: uint8(28),
  23055. }
  23056. 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', ' '}
  23057. 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', ' '}
  23058. var Xz_errmsg = [10]uintptr{
  23059. 0: __ccgo_ts + 467,
  23060. 1: __ccgo_ts + 483,
  23061. 2: __ccgo_ts + 494,
  23062. 3: __ccgo_ts + 495,
  23063. 4: __ccgo_ts + 506,
  23064. 5: __ccgo_ts + 519,
  23065. 6: __ccgo_ts + 530,
  23066. 7: __ccgo_ts + 550,
  23067. 8: __ccgo_ts + 563,
  23068. 9: __ccgo_ts + 494,
  23069. }
  23070. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  23071. 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"