ccgo_openbsd_amd64.go 770 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518
  1. // Code generated for openbsd/amd64 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 openbsd && amd64
  3. // +build openbsd,amd64
  4. package libz
  5. import (
  6. "reflect"
  7. "unsafe"
  8. "modernc.org/libc"
  9. )
  10. var (
  11. _ reflect.Type
  12. _ unsafe.Pointer
  13. )
  14. const m_BASE = 65521
  15. const m_BC_BASE_MAX = "INT_MAX"
  16. const m_BC_DIM_MAX = 65535
  17. const m_BC_SCALE_MAX = "INT_MAX"
  18. const m_BC_STRING_MAX = "INT_MAX"
  19. const m_BIG_ENDIAN = "_BIG_ENDIAN"
  20. const m_BYTE_ORDER = "_BYTE_ORDER"
  21. const m_CHAR_BIT = 8
  22. const m_CHAR_MAX = 0x7f
  23. const m_CHILD_MAX = 80
  24. const m_COLL_WEIGHTS_MAX = 2
  25. const m_DEF_MEM_LEVEL = 8
  26. const m_DEF_WBITS = "MAX_WBITS"
  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_F_LOCK = 1
  32. const m_F_OK = 0
  33. const m_F_TEST = 3
  34. const m_F_TLOCK = 2
  35. const m_F_ULOCK = 0
  36. const m_GID_MAX = "UINT_MAX"
  37. const m_HAVE_HIDDEN = 1
  38. const m_HOST_NAME_MAX = 255
  39. const m_INT_MAX = 0x7fffffff
  40. const m_IOV_MAX = 1024
  41. const m_KBIND_BLOCK_MAX = 2
  42. const m_KBIND_DATA_MAX = 24
  43. const m_LINE_MAX = 2048
  44. const m_LINK_MAX = 32767
  45. const m_LITTLE_ENDIAN = "_LITTLE_ENDIAN"
  46. const m_LLONG_MAX = 0x7fffffffffffffff
  47. const m_LOGIN_NAME_MAX = 32
  48. const m_LONG_BIT = 64
  49. const m_LONG_MAX = 0x7fffffffffffffff
  50. const m_L_INCR = "SEEK_CUR"
  51. const m_L_SET = "SEEK_SET"
  52. const m_L_XTND = "SEEK_END"
  53. const m_MAX_CANON = 255
  54. const m_MAX_INPUT = 255
  55. const m_MAX_MATCH = 258
  56. const m_MAX_MEM_LEVEL = 9
  57. const m_MAX_WBITS = 15
  58. const m_MB_LEN_MAX = 4
  59. const m_MIN_MATCH = 3
  60. const m_NAME_MAX = 255
  61. const m_NDEBUG = 1
  62. const m_NGROUPS_MAX = 16
  63. const m_NL_ARGMAX = 9
  64. const m_NL_LANGMAX = 14
  65. const m_NL_MSGMAX = 32767
  66. const m_NL_SETMAX = 255
  67. const m_NL_TEXTMAX = 255
  68. const m_NMAX = 5552
  69. const m_NZERO = 20
  70. const m_OPEN_MAX = 64
  71. const m_OS_CODE = 3
  72. const m_PATH_MAX = 1024
  73. const m_PDP_ENDIAN = "_PDP_ENDIAN"
  74. const m_PIPE_BUF = 512
  75. const m_PRESET_DICT = 0x20
  76. const m_QUAD_MAX = 0x7fffffffffffffff
  77. const m_RAND_MAX = 0x7fffffff
  78. const m_RE_DUP_MAX = 255
  79. const m_R_OK = 0x04
  80. const m_SCHAR_MAX = 0x7f
  81. const m_SEEK_CUR = 1
  82. const m_SEEK_END = 2
  83. const m_SEEK_SET = 0
  84. const m_SEM_VALUE_MAX = "UINT_MAX"
  85. const m_SHRT_MAX = 0x7fff
  86. const m_SIZE_T_MAX = "ULONG_MAX"
  87. const m_SSIZE_MAX = "LONG_MAX"
  88. const m_STATIC_TREES = 1
  89. const m_STDERR_FILENO = 2
  90. const m_STDIN_FILENO = 0
  91. const m_STDOUT_FILENO = 1
  92. const m_STORED_BLOCK = 0
  93. const m_SYMLINK_MAX = "PATH_MAX"
  94. const m_SYMLOOP_MAX = 32
  95. const m_TTY_NAME_MAX = 260
  96. const m_UCHAR_MAX = 0xff
  97. const m_UID_MAX = "UINT_MAX"
  98. const m_UINT_MAX = 0xffffffff
  99. const m_ULLONG_MAX = "0xffffffffffffffffU"
  100. const m_ULONG_MAX = 0xffffffffffffffff
  101. const m_UQUAD_MAX = "0xffffffffffffffffU"
  102. const m_USHRT_MAX = 0xffff
  103. const m_WORD_BIT = 32
  104. const m_W_OK = 0x02
  105. const m_X_OK = 0x01
  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__BIG_ENDIAN = 4321
  139. const m__BYTE_ORDER = "_LITTLE_ENDIAN"
  140. const m__CS_PATH = 1
  141. const m__CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2
  142. const m__CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3
  143. const m__CS_POSIX_V6_ILP32_OFF32_LIBS = 4
  144. const m__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5
  145. const m__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6
  146. const m__CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7
  147. const m__CS_POSIX_V6_LP64_OFF64_CFLAGS = 8
  148. const m__CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9
  149. const m__CS_POSIX_V6_LP64_OFF64_LIBS = 10
  150. const m__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11
  151. const m__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12
  152. const m__CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13
  153. const m__CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14
  154. const m__CS_POSIX_V7_ILP32_OFF32_CFLAGS = 16
  155. const m__CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 17
  156. const m__CS_POSIX_V7_ILP32_OFF32_LIBS = 18
  157. const m__CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 19
  158. const m__CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 20
  159. const m__CS_POSIX_V7_ILP32_OFFBIG_LIBS = 21
  160. const m__CS_POSIX_V7_LP64_OFF64_CFLAGS = 22
  161. const m__CS_POSIX_V7_LP64_OFF64_LDFLAGS = 23
  162. const m__CS_POSIX_V7_LP64_OFF64_LIBS = 24
  163. const m__CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 25
  164. const m__CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 26
  165. const m__CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 27
  166. const m__CS_POSIX_V7_THREADS_CFLAGS = 28
  167. const m__CS_POSIX_V7_THREADS_LDFLAGS = 29
  168. const m__CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 30
  169. const m__CS_V6_ENV = 15
  170. const m__CS_V7_ENV = 31
  171. const m__LITTLE_ENDIAN = 1234
  172. const m__LP64 = 1
  173. const m__MAXCOMLEN = 24
  174. const m__MAX_PAGE_SHIFT = 12
  175. const m__PC_2_SYMLINKS = 10
  176. const m__PC_ALLOC_SIZE_MIN = 11
  177. const m__PC_ASYNC_IO = 12
  178. const m__PC_CHOWN_RESTRICTED = 7
  179. const m__PC_FILESIZEBITS = 13
  180. const m__PC_LINK_MAX = 1
  181. const m__PC_MAX_CANON = 2
  182. const m__PC_MAX_INPUT = 3
  183. const m__PC_NAME_MAX = 4
  184. const m__PC_NO_TRUNC = 8
  185. const m__PC_PATH_MAX = 5
  186. const m__PC_PIPE_BUF = 6
  187. const m__PC_PRIO_IO = 14
  188. const m__PC_REC_INCR_XFER_SIZE = 15
  189. const m__PC_REC_MAX_XFER_SIZE = 16
  190. const m__PC_REC_MIN_XFER_SIZE = 17
  191. const m__PC_REC_XFER_ALIGN = 18
  192. const m__PC_SYMLINK_MAX = 19
  193. const m__PC_SYNC_IO = 20
  194. const m__PC_TIMESTAMP_RESOLUTION = 21
  195. const m__PC_VDISABLE = 9
  196. const m__PDP_ENDIAN = 3412
  197. const m__POSIX2_BC_BASE_MAX = 99
  198. const m__POSIX2_BC_DIM_MAX = 2048
  199. const m__POSIX2_BC_SCALE_MAX = 99
  200. const m__POSIX2_BC_STRING_MAX = 1000
  201. const m__POSIX2_CHARCLASS_NAME_MAX = 14
  202. const m__POSIX2_CHAR_TERM = 1
  203. const m__POSIX2_COLL_WEIGHTS_MAX = 2
  204. const m__POSIX2_C_BIND = 200112
  205. const m__POSIX2_EXPR_NEST_MAX = 32
  206. const m__POSIX2_LINE_MAX = 2048
  207. const m__POSIX2_RE_DUP_MAX = "_POSIX_RE_DUP_MAX"
  208. const m__POSIX2_SW_DEV = 200112
  209. const m__POSIX2_UPE = 200112
  210. const m__POSIX2_VERSION = 200809
  211. const m__POSIX_ARG_MAX = 4096
  212. const m__POSIX_BARRIERS = 200112
  213. const m__POSIX_CHILD_MAX = 25
  214. const m__POSIX_CHOWN_RESTRICTED = 1
  215. const m__POSIX_CLOCKRES_MIN = 20000000
  216. const m__POSIX_CPUTIME = 200809
  217. const m__POSIX_FSYNC = 200112
  218. const m__POSIX_HOST_NAME_MAX = 255
  219. const m__POSIX_IPV6 = 0
  220. const m__POSIX_JOB_CONTROL = 1
  221. const m__POSIX_LINK_MAX = 8
  222. const m__POSIX_LOGIN_NAME_MAX = 9
  223. const m__POSIX_MAPPED_FILES = 200112
  224. const m__POSIX_MAX_CANON = 255
  225. const m__POSIX_MAX_INPUT = 255
  226. const m__POSIX_MEMLOCK = 200112
  227. const m__POSIX_MEMLOCK_RANGE = 200112
  228. const m__POSIX_MEMORY_PROTECTION = 200112
  229. const m__POSIX_MONOTONIC_CLOCK = 200112
  230. const m__POSIX_NAME_MAX = 14
  231. const m__POSIX_NGROUPS_MAX = 8
  232. const m__POSIX_NO_TRUNC = 1
  233. const m__POSIX_OPEN_MAX = 20
  234. const m__POSIX_PATH_MAX = 256
  235. const m__POSIX_PIPE_BUF = 512
  236. const m__POSIX_RAW_SOCKETS = 200112
  237. const m__POSIX_READER_WRITER_LOCKS = 200112
  238. const m__POSIX_REGEXP = 1
  239. const m__POSIX_RE_DUP_MAX = 255
  240. const m__POSIX_SAVED_IDS = 1
  241. const m__POSIX_SEMAPHORES = 200112
  242. const m__POSIX_SEM_NSEMS_MAX = 256
  243. const m__POSIX_SEM_VALUE_MAX = 32767
  244. const m__POSIX_SHARED_MEMORY_OBJECTS = 200809
  245. const m__POSIX_SHELL = 1
  246. const m__POSIX_SPAWN = 200112
  247. const m__POSIX_SPIN_LOCKS = 200112
  248. const m__POSIX_SSIZE_MAX = 32767
  249. const m__POSIX_STREAM_MAX = 8
  250. const m__POSIX_SYMLINK_MAX = 255
  251. const m__POSIX_SYMLOOP_MAX = 8
  252. const m__POSIX_THREADS = 200112
  253. const m__POSIX_THREAD_ATTR_STACKADDR = 200112
  254. const m__POSIX_THREAD_ATTR_STACKSIZE = 200112
  255. const m__POSIX_THREAD_CPUTIME = 200809
  256. const m__POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4
  257. const m__POSIX_THREAD_KEYS_MAX = 128
  258. const m__POSIX_THREAD_SAFE_FUNCTIONS = 200112
  259. const m__POSIX_THREAD_THREADS_MAX = 4
  260. const m__POSIX_TIMEOUTS = 200112
  261. const m__POSIX_TTY_NAME_MAX = 9
  262. const m__POSIX_TZNAME_MAX = 6
  263. const m__POSIX_V6_ILP32_OFFBIG = 0
  264. const m__POSIX_V6_LP64_OFF64 = 0
  265. const m__POSIX_V6_LPBIG_OFFBIG = 0
  266. const m__POSIX_V7_ILP32_OFFBIG = 0
  267. const m__POSIX_V7_LP64_OFF64 = 0
  268. const m__POSIX_V7_LPBIG_OFFBIG = 0
  269. const m__POSIX_VDISABLE = 0377
  270. const m__POSIX_VERSION = 200809
  271. const m__QUAD_HIGHWORD = 1
  272. const m__QUAD_LOWWORD = 0
  273. const m__RET_PROTECTOR = 1
  274. const m__SC_2_CHAR_TERM = 20
  275. const m__SC_2_C_BIND = 18
  276. const m__SC_2_C_DEV = 19
  277. const m__SC_2_FORT_DEV = 21
  278. const m__SC_2_FORT_RUN = 22
  279. const m__SC_2_LOCALEDEF = 23
  280. const m__SC_2_PBS = 35
  281. const m__SC_2_PBS_ACCOUNTING = 36
  282. const m__SC_2_PBS_CHECKPOINT = 37
  283. const m__SC_2_PBS_LOCATE = 38
  284. const m__SC_2_PBS_MESSAGE = 39
  285. const m__SC_2_PBS_TRACK = 40
  286. const m__SC_2_SW_DEV = 24
  287. const m__SC_2_UPE = 25
  288. const m__SC_2_VERSION = 17
  289. const m__SC_ADVISORY_INFO = 41
  290. const m__SC_AIO_LISTIO_MAX = 42
  291. const m__SC_AIO_MAX = 43
  292. const m__SC_AIO_PRIO_DELTA_MAX = 44
  293. const m__SC_ARG_MAX = 1
  294. const m__SC_ASYNCHRONOUS_IO = 45
  295. const m__SC_ATEXIT_MAX = 46
  296. const m__SC_AVPHYS_PAGES = 501
  297. const m__SC_BARRIERS = 47
  298. const m__SC_BC_BASE_MAX = 9
  299. const m__SC_BC_DIM_MAX = 10
  300. const m__SC_BC_SCALE_MAX = 11
  301. const m__SC_BC_STRING_MAX = 12
  302. const m__SC_CHILD_MAX = 2
  303. const m__SC_CLK_TCK = 3
  304. const m__SC_CLOCK_SELECTION = 48
  305. const m__SC_COLL_WEIGHTS_MAX = 13
  306. const m__SC_CPUTIME = 49
  307. const m__SC_DELAYTIMER_MAX = 50
  308. const m__SC_EXPR_NEST_MAX = 14
  309. const m__SC_FSYNC = 29
  310. const m__SC_GETGR_R_SIZE_MAX = 100
  311. const m__SC_GETPW_R_SIZE_MAX = 101
  312. const m__SC_HOST_NAME_MAX = 33
  313. const m__SC_IOV_MAX = 51
  314. const m__SC_IPV6 = 52
  315. const m__SC_JOB_CONTROL = 6
  316. const m__SC_LINE_MAX = 15
  317. const m__SC_LOGIN_NAME_MAX = 102
  318. const m__SC_MAPPED_FILES = 53
  319. const m__SC_MEMLOCK = 54
  320. const m__SC_MEMLOCK_RANGE = 55
  321. const m__SC_MEMORY_PROTECTION = 56
  322. const m__SC_MESSAGE_PASSING = 57
  323. const m__SC_MONOTONIC_CLOCK = 34
  324. const m__SC_MQ_OPEN_MAX = 58
  325. const m__SC_MQ_PRIO_MAX = 59
  326. const m__SC_NGROUPS_MAX = 4
  327. const m__SC_NPROCESSORS_CONF = 502
  328. const m__SC_NPROCESSORS_ONLN = 503
  329. const m__SC_OPEN_MAX = 5
  330. const m__SC_PAGESIZE = 28
  331. const m__SC_PAGE_SIZE = "_SC_PAGESIZE"
  332. const m__SC_PHYS_PAGES = 500
  333. const m__SC_PRIORITIZED_IO = 60
  334. const m__SC_PRIORITY_SCHEDULING = 61
  335. const m__SC_RAW_SOCKETS = 62
  336. const m__SC_READER_WRITER_LOCKS = 63
  337. const m__SC_REALTIME_SIGNALS = 64
  338. const m__SC_REGEXP = 65
  339. const m__SC_RE_DUP_MAX = 16
  340. const m__SC_RTSIG_MAX = 66
  341. const m__SC_SAVED_IDS = 7
  342. const m__SC_SEMAPHORES = 67
  343. const m__SC_SEM_NSEMS_MAX = 31
  344. const m__SC_SEM_VALUE_MAX = 32
  345. const m__SC_SHARED_MEMORY_OBJECTS = 68
  346. const m__SC_SHELL = 69
  347. const m__SC_SIGQUEUE_MAX = 70
  348. const m__SC_SPAWN = 71
  349. const m__SC_SPIN_LOCKS = 72
  350. const m__SC_SPORADIC_SERVER = 73
  351. const m__SC_SS_REPL_MAX = 74
  352. const m__SC_STREAM_MAX = 26
  353. const m__SC_SYMLOOP_MAX = 76
  354. const m__SC_SYNCHRONIZED_IO = 75
  355. const m__SC_THREADS = 91
  356. const m__SC_THREAD_ATTR_STACKADDR = 77
  357. const m__SC_THREAD_ATTR_STACKSIZE = 78
  358. const m__SC_THREAD_CPUTIME = 79
  359. const m__SC_THREAD_DESTRUCTOR_ITERATIONS = 80
  360. const m__SC_THREAD_KEYS_MAX = 81
  361. const m__SC_THREAD_PRIORITY_SCHEDULING = 84
  362. const m__SC_THREAD_PRIO_INHERIT = 82
  363. const m__SC_THREAD_PRIO_PROTECT = 83
  364. const m__SC_THREAD_PROCESS_SHARED = 85
  365. const m__SC_THREAD_ROBUST_PRIO_INHERIT = 86
  366. const m__SC_THREAD_ROBUST_PRIO_PROTECT = 87
  367. const m__SC_THREAD_SAFE_FUNCTIONS = 103
  368. const m__SC_THREAD_SPORADIC_SERVER = 88
  369. const m__SC_THREAD_STACK_MIN = 89
  370. const m__SC_THREAD_THREADS_MAX = 90
  371. const m__SC_TIMEOUTS = 92
  372. const m__SC_TIMERS = 94
  373. const m__SC_TIMER_MAX = 93
  374. const m__SC_TRACE = 95
  375. const m__SC_TRACE_EVENT_FILTER = 96
  376. const m__SC_TRACE_EVENT_NAME_MAX = 97
  377. const m__SC_TRACE_INHERIT = 98
  378. const m__SC_TRACE_LOG = 99
  379. const m__SC_TRACE_NAME_MAX = 104
  380. const m__SC_TRACE_SYS_MAX = 105
  381. const m__SC_TRACE_USER_EVENT_MAX = 106
  382. const m__SC_TTY_NAME_MAX = 107
  383. const m__SC_TYPED_MEMORY_OBJECTS = 108
  384. const m__SC_TZNAME_MAX = 27
  385. const m__SC_V6_ILP32_OFF32 = 109
  386. const m__SC_V6_ILP32_OFFBIG = 110
  387. const m__SC_V6_LP64_OFF64 = 111
  388. const m__SC_V6_LPBIG_OFFBIG = 112
  389. const m__SC_V7_ILP32_OFF32 = 113
  390. const m__SC_V7_ILP32_OFFBIG = 114
  391. const m__SC_V7_LP64_OFF64 = 115
  392. const m__SC_V7_LPBIG_OFFBIG = 116
  393. const m__SC_VERSION = 8
  394. const m__SC_XOPEN_CRYPT = 117
  395. const m__SC_XOPEN_ENH_I18N = 118
  396. const m__SC_XOPEN_LEGACY = 119
  397. const m__SC_XOPEN_REALTIME = 120
  398. const m__SC_XOPEN_REALTIME_THREADS = 121
  399. const m__SC_XOPEN_SHM = 30
  400. const m__SC_XOPEN_STREAMS = 122
  401. const m__SC_XOPEN_UNIX = 123
  402. const m__SC_XOPEN_UUCP = 124
  403. const m__SC_XOPEN_VERSION = 125
  404. const m__STACKALIGNBYTES = 15
  405. const m__XOPEN_CRYPT = 1
  406. const m__XOPEN_IOV_MAX = 16
  407. const m__XOPEN_NAME_MAX = 255
  408. const m__XOPEN_PATH_MAX = 1024
  409. const m__XOPEN_SHM = 1
  410. const m___ATOMIC_ACQUIRE = 2
  411. const m___ATOMIC_ACQ_REL = 4
  412. const m___ATOMIC_CONSUME = 1
  413. const m___ATOMIC_RELAXED = 0
  414. const m___ATOMIC_RELEASE = 3
  415. const m___ATOMIC_SEQ_CST = 5
  416. const m___BEGIN_DECLS = "__BEGIN_EXTERN_C"
  417. const m___BIGGEST_ALIGNMENT__ = 16
  418. const m___BSD_VISIBLE = 1
  419. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  420. const m___CCGO__ = 1
  421. const m___CET__ = 1
  422. const m___CHAR_BIT__ = 8
  423. const m___CLANG_ATOMIC_BOOL_LOCK_FREE = 2
  424. const m___CLANG_ATOMIC_CHAR16_T_LOCK_FREE = 2
  425. const m___CLANG_ATOMIC_CHAR32_T_LOCK_FREE = 2
  426. const m___CLANG_ATOMIC_CHAR_LOCK_FREE = 2
  427. const m___CLANG_ATOMIC_INT_LOCK_FREE = 2
  428. const m___CLANG_ATOMIC_LLONG_LOCK_FREE = 2
  429. const m___CLANG_ATOMIC_LONG_LOCK_FREE = 2
  430. const m___CLANG_ATOMIC_POINTER_LOCK_FREE = 2
  431. const m___CLANG_ATOMIC_SHORT_LOCK_FREE = 2
  432. const m___CLANG_ATOMIC_WCHAR_T_LOCK_FREE = 2
  433. const m___CONSTANT_CFSTRINGS__ = 1
  434. const m___DBL_DECIMAL_DIG__ = 17
  435. const m___DBL_DENORM_MIN__ = 4.9406564584124654e-324
  436. const m___DBL_DIG__ = 15
  437. const m___DBL_EPSILON__ = 2.2204460492503131e-16
  438. const m___DBL_HAS_DENORM__ = 1
  439. const m___DBL_HAS_INFINITY__ = 1
  440. const m___DBL_HAS_QUIET_NAN__ = 1
  441. const m___DBL_MANT_DIG__ = 53
  442. const m___DBL_MAX_10_EXP__ = 308
  443. const m___DBL_MAX_EXP__ = 1024
  444. const m___DBL_MAX__ = 1.7976931348623157e+308
  445. const m___DBL_MIN__ = 2.2250738585072014e-308
  446. const m___DECIMAL_DIG__ = "__LDBL_DECIMAL_DIG__"
  447. const m___ELF__ = 1
  448. const m___END_DECLS = "__END_EXTERN_C"
  449. const m___FINITE_MATH_ONLY__ = 0
  450. const m___FLOAT128__ = 1
  451. const m___FLT_DECIMAL_DIG__ = 9
  452. const m___FLT_DENORM_MIN__ = 1.40129846e-45
  453. const m___FLT_DIG__ = 6
  454. const m___FLT_EPSILON__ = 1.19209290e-7
  455. const m___FLT_EVAL_METHOD__ = 0
  456. const m___FLT_HAS_DENORM__ = 1
  457. const m___FLT_HAS_INFINITY__ = 1
  458. const m___FLT_HAS_QUIET_NAN__ = 1
  459. const m___FLT_MANT_DIG__ = 24
  460. const m___FLT_MAX_10_EXP__ = 38
  461. const m___FLT_MAX_EXP__ = 128
  462. const m___FLT_MAX__ = 3.40282347e+38
  463. const m___FLT_MIN__ = 1.17549435e-38
  464. const m___FLT_RADIX__ = 2
  465. const m___FUNCTION__ = "__func__"
  466. const m___FXSR__ = 1
  467. const m___GCC_ASM_FLAG_OUTPUTS__ = 1
  468. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  469. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  470. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  471. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  472. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  473. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  474. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  475. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  476. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  477. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  478. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  479. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  480. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  481. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  482. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  483. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  484. const m___GNUC_MINOR__ = 2
  485. const m___GNUC_PATCHLEVEL__ = 1
  486. const m___GNUC_STDC_INLINE__ = 1
  487. const m___GNUC__ = 4
  488. const m___GXX_ABI_VERSION = 1002
  489. const m___INT16_FMTd__ = "hd"
  490. const m___INT16_FMTi__ = "hi"
  491. const m___INT16_MAX__ = 32767
  492. const m___INT16_TYPE__ = "short"
  493. const m___INT32_FMTd__ = "d"
  494. const m___INT32_FMTi__ = "i"
  495. const m___INT32_MAX__ = 2147483647
  496. const m___INT32_TYPE__ = "int"
  497. const m___INT64_C_SUFFIX__ = "LL"
  498. const m___INT64_FMTd__ = "lld"
  499. const m___INT64_FMTi__ = "lli"
  500. const m___INT64_MAX__ = 9223372036854775807
  501. const m___INT8_FMTd__ = "hhd"
  502. const m___INT8_FMTi__ = "hhi"
  503. const m___INT8_MAX__ = 127
  504. const m___INTMAX_C_SUFFIX__ = "LL"
  505. const m___INTMAX_FMTd__ = "lld"
  506. const m___INTMAX_FMTi__ = "lli"
  507. const m___INTMAX_MAX__ = 9223372036854775807
  508. const m___INTMAX_WIDTH__ = 64
  509. const m___INTPTR_FMTd__ = "ld"
  510. const m___INTPTR_FMTi__ = "li"
  511. const m___INTPTR_MAX__ = 9223372036854775807
  512. const m___INTPTR_WIDTH__ = 64
  513. const m___INT_FAST16_FMTd__ = "hd"
  514. const m___INT_FAST16_FMTi__ = "hi"
  515. const m___INT_FAST16_MAX = "INT32_MAX"
  516. const m___INT_FAST16_MAX__ = 32767
  517. const m___INT_FAST16_MIN = "INT32_MIN"
  518. const m___INT_FAST16_TYPE__ = "short"
  519. const m___INT_FAST32_FMTd__ = "d"
  520. const m___INT_FAST32_FMTi__ = "i"
  521. const m___INT_FAST32_MAX = "INT32_MAX"
  522. const m___INT_FAST32_MAX__ = 2147483647
  523. const m___INT_FAST32_MIN = "INT32_MIN"
  524. const m___INT_FAST32_TYPE__ = "int"
  525. const m___INT_FAST64_FMTd__ = "ld"
  526. const m___INT_FAST64_FMTi__ = "li"
  527. const m___INT_FAST64_MAX = "INT64_MAX"
  528. const m___INT_FAST64_MAX__ = 9223372036854775807
  529. const m___INT_FAST64_MIN = "INT64_MIN"
  530. const m___INT_FAST8_FMTd__ = "hhd"
  531. const m___INT_FAST8_FMTi__ = "hhi"
  532. const m___INT_FAST8_MAX = "INT32_MAX"
  533. const m___INT_FAST8_MAX__ = 127
  534. const m___INT_FAST8_MIN = "INT32_MIN"
  535. const m___INT_LEAST16_FMTd__ = "hd"
  536. const m___INT_LEAST16_FMTi__ = "hi"
  537. const m___INT_LEAST16_MAX__ = 32767
  538. const m___INT_LEAST16_TYPE__ = "short"
  539. const m___INT_LEAST32_FMTd__ = "d"
  540. const m___INT_LEAST32_FMTi__ = "i"
  541. const m___INT_LEAST32_MAX__ = 2147483647
  542. const m___INT_LEAST32_TYPE__ = "int"
  543. const m___INT_LEAST64_FMTd__ = "ld"
  544. const m___INT_LEAST64_FMTi__ = "li"
  545. const m___INT_LEAST64_MAX__ = 9223372036854775807
  546. const m___INT_LEAST8_FMTd__ = "hhd"
  547. const m___INT_LEAST8_FMTi__ = "hhi"
  548. const m___INT_LEAST8_MAX__ = 127
  549. const m___INT_MAX__ = 2147483647
  550. const m___LDBL_DECIMAL_DIG__ = 17
  551. const m___LDBL_DENORM_MIN__ = 4.9406564584124654e-324
  552. const m___LDBL_DIG__ = 15
  553. const m___LDBL_EPSILON__ = 2.2204460492503131e-16
  554. const m___LDBL_HAS_DENORM__ = 1
  555. const m___LDBL_HAS_INFINITY__ = 1
  556. const m___LDBL_HAS_QUIET_NAN__ = 1
  557. const m___LDBL_MANT_DIG__ = 53
  558. const m___LDBL_MAX_10_EXP__ = 308
  559. const m___LDBL_MAX_EXP__ = 1024
  560. const m___LDBL_MAX__ = 1.7976931348623157e+308
  561. const m___LDBL_MIN__ = 2.2250738585072014e-308
  562. const m___LITTLE_ENDIAN__ = 1
  563. const m___LONG_LONG_MAX__ = 9223372036854775807
  564. const m___LONG_MAX__ = 9223372036854775807
  565. const m___LP64__ = 1
  566. const m___MMX__ = 1
  567. const m___NO_INLINE__ = 1
  568. const m___NO_MATH_INLINES = 1
  569. const m___OBJC_BOOL_IS_BOOL = 0
  570. const m___OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES = 3
  571. const m___OPENCL_MEMORY_SCOPE_DEVICE = 2
  572. const m___OPENCL_MEMORY_SCOPE_SUB_GROUP = 4
  573. const m___OPENCL_MEMORY_SCOPE_WORK_GROUP = 1
  574. const m___OPENCL_MEMORY_SCOPE_WORK_ITEM = 0
  575. const m___ORDER_BIG_ENDIAN__ = 4321
  576. const m___ORDER_LITTLE_ENDIAN__ = 1234
  577. const m___ORDER_PDP_ENDIAN__ = 3412
  578. const m___OpenBSD__ = 1
  579. const m___PIC__ = 1
  580. const m___PIE__ = 1
  581. const m___POINTER_WIDTH__ = 64
  582. const m___POSIX_VISIBLE = 200809
  583. const m___PRAGMA_REDEFINE_EXTNAME = 1
  584. const m___PRETTY_FUNCTION__ = "__func__"
  585. const m___PTRDIFF_FMTd__ = "ld"
  586. const m___PTRDIFF_FMTi__ = "li"
  587. const m___PTRDIFF_MAX__ = 9223372036854775807
  588. const m___PTRDIFF_WIDTH__ = 64
  589. const m___SCHAR_MAX__ = 127
  590. const m___SEG_FS = 1
  591. const m___SEG_GS = 1
  592. const m___SHRT_MAX__ = 32767
  593. const m___SIG_ATOMIC_MAX__ = 2147483647
  594. const m___SIG_ATOMIC_WIDTH__ = 32
  595. const m___SIZEOF_DOUBLE__ = 8
  596. const m___SIZEOF_FLOAT128__ = 16
  597. const m___SIZEOF_FLOAT__ = 4
  598. const m___SIZEOF_INT128__ = 16
  599. const m___SIZEOF_INT__ = 4
  600. const m___SIZEOF_LONG_DOUBLE__ = 8
  601. const m___SIZEOF_LONG_LONG__ = 8
  602. const m___SIZEOF_LONG__ = 8
  603. const m___SIZEOF_POINTER__ = 8
  604. const m___SIZEOF_PTRDIFF_T__ = 8
  605. const m___SIZEOF_SHORT__ = 2
  606. const m___SIZEOF_SIZE_T__ = 8
  607. const m___SIZEOF_WCHAR_T__ = 4
  608. const m___SIZEOF_WINT_T__ = 4
  609. const m___SIZE_FMTX__ = "lX"
  610. const m___SIZE_FMTo__ = "lo"
  611. const m___SIZE_FMTu__ = "lu"
  612. const m___SIZE_FMTx__ = "lx"
  613. const m___SIZE_MAX__ = 18446744073709551615
  614. const m___SIZE_WIDTH__ = 64
  615. const m___SSE2_MATH__ = 1
  616. const m___SSE2__ = 1
  617. const m___SSE_MATH__ = 1
  618. const m___SSE__ = 1
  619. const m___STDC_HOSTED__ = 1
  620. const m___STDC_NO_THREADS__ = 1
  621. const m___STDC_UTF_16__ = 1
  622. const m___STDC_UTF_32__ = 1
  623. const m___STDC_VERSION__ = 201710
  624. const m___STDC__ = 1
  625. const m___UINT16_FMTX__ = "hX"
  626. const m___UINT16_FMTo__ = "ho"
  627. const m___UINT16_FMTu__ = "hu"
  628. const m___UINT16_FMTx__ = "hx"
  629. const m___UINT16_MAX__ = 65535
  630. const m___UINT32_C_SUFFIX__ = "U"
  631. const m___UINT32_FMTX__ = "X"
  632. const m___UINT32_FMTo__ = "o"
  633. const m___UINT32_FMTu__ = "u"
  634. const m___UINT32_FMTx__ = "x"
  635. const m___UINT32_MAX__ = 4294967295
  636. const m___UINT64_C_SUFFIX__ = "ULL"
  637. const m___UINT64_FMTX__ = "llX"
  638. const m___UINT64_FMTo__ = "llo"
  639. const m___UINT64_FMTu__ = "llu"
  640. const m___UINT64_FMTx__ = "llx"
  641. const m___UINT64_MAX__ = "18446744073709551615U"
  642. const m___UINT8_FMTX__ = "hhX"
  643. const m___UINT8_FMTo__ = "hho"
  644. const m___UINT8_FMTu__ = "hhu"
  645. const m___UINT8_FMTx__ = "hhx"
  646. const m___UINT8_MAX__ = 255
  647. const m___UINTMAX_C_SUFFIX__ = "ULL"
  648. const m___UINTMAX_FMTX__ = "llX"
  649. const m___UINTMAX_FMTo__ = "llo"
  650. const m___UINTMAX_FMTu__ = "llu"
  651. const m___UINTMAX_FMTx__ = "llx"
  652. const m___UINTMAX_MAX__ = "18446744073709551615U"
  653. const m___UINTMAX_WIDTH__ = 64
  654. const m___UINTPTR_FMTX__ = "lX"
  655. const m___UINTPTR_FMTo__ = "lo"
  656. const m___UINTPTR_FMTu__ = "lu"
  657. const m___UINTPTR_FMTx__ = "lx"
  658. const m___UINTPTR_MAX__ = 18446744073709551615
  659. const m___UINTPTR_WIDTH__ = 64
  660. const m___UINT_FAST16_FMTX__ = "hX"
  661. const m___UINT_FAST16_FMTo__ = "ho"
  662. const m___UINT_FAST16_FMTu__ = "hu"
  663. const m___UINT_FAST16_FMTx__ = "hx"
  664. const m___UINT_FAST16_MAX = "UINT32_MAX"
  665. const m___UINT_FAST16_MAX__ = 65535
  666. const m___UINT_FAST32_FMTX__ = "X"
  667. const m___UINT_FAST32_FMTo__ = "o"
  668. const m___UINT_FAST32_FMTu__ = "u"
  669. const m___UINT_FAST32_FMTx__ = "x"
  670. const m___UINT_FAST32_MAX = "UINT32_MAX"
  671. const m___UINT_FAST32_MAX__ = 4294967295
  672. const m___UINT_FAST64_FMTX__ = "lX"
  673. const m___UINT_FAST64_FMTo__ = "lo"
  674. const m___UINT_FAST64_FMTu__ = "lu"
  675. const m___UINT_FAST64_FMTx__ = "lx"
  676. const m___UINT_FAST64_MAX = "UINT64_MAX"
  677. const m___UINT_FAST64_MAX__ = 18446744073709551615
  678. const m___UINT_FAST8_FMTX__ = "hhX"
  679. const m___UINT_FAST8_FMTo__ = "hho"
  680. const m___UINT_FAST8_FMTu__ = "hhu"
  681. const m___UINT_FAST8_FMTx__ = "hhx"
  682. const m___UINT_FAST8_MAX = "UINT32_MAX"
  683. const m___UINT_FAST8_MAX__ = 255
  684. const m___UINT_LEAST16_FMTX__ = "hX"
  685. const m___UINT_LEAST16_FMTo__ = "ho"
  686. const m___UINT_LEAST16_FMTu__ = "hu"
  687. const m___UINT_LEAST16_FMTx__ = "hx"
  688. const m___UINT_LEAST16_MAX__ = 65535
  689. const m___UINT_LEAST32_FMTX__ = "X"
  690. const m___UINT_LEAST32_FMTo__ = "o"
  691. const m___UINT_LEAST32_FMTu__ = "u"
  692. const m___UINT_LEAST32_FMTx__ = "x"
  693. const m___UINT_LEAST32_MAX__ = 4294967295
  694. const m___UINT_LEAST64_FMTX__ = "lX"
  695. const m___UINT_LEAST64_FMTo__ = "lo"
  696. const m___UINT_LEAST64_FMTu__ = "lu"
  697. const m___UINT_LEAST64_FMTx__ = "lx"
  698. const m___UINT_LEAST64_MAX__ = 18446744073709551615
  699. const m___UINT_LEAST8_FMTX__ = "hhX"
  700. const m___UINT_LEAST8_FMTo__ = "hho"
  701. const m___UINT_LEAST8_FMTu__ = "hhu"
  702. const m___UINT_LEAST8_FMTx__ = "hhx"
  703. const m___UINT_LEAST8_MAX__ = 255
  704. const m___VERSION__ = "OpenBSD Clang 13.0.0"
  705. const m___WCHAR_MAX__ = 2147483647
  706. const m___WCHAR_TYPE__ = "int"
  707. const m___WCHAR_WIDTH__ = 32
  708. const m___WINT_MAX__ = 2147483647
  709. const m___WINT_TYPE__ = "int"
  710. const m___WINT_WIDTH__ = 32
  711. const m___XPG_VISIBLE = 700
  712. const m___amd64 = 1
  713. const m___amd64__ = 1
  714. const m___clang__ = 1
  715. const m___clang_literal_encoding__ = "UTF-8"
  716. const m___clang_major__ = 13
  717. const m___clang_minor__ = 0
  718. const m___clang_patchlevel__ = 0
  719. const m___clang_version__ = "13.0.0 "
  720. const m___clang_wide_literal_encoding__ = "UTF-32"
  721. const m___code_model_small__ = 1
  722. const m___const = "const"
  723. const m___htobe16 = "__swap16"
  724. const m___htobe32 = "__swap32"
  725. const m___htobe64 = "__swap64"
  726. const m___k8 = 1
  727. const m___k8__ = 1
  728. const m___llvm__ = 1
  729. const m___pic__ = 1
  730. const m___pie__ = 1
  731. const m___restrict_arr = "restrict"
  732. const m___signed = "signed"
  733. const m___tune_k8__ = 1
  734. const m___unix = 1
  735. const m___unix__ = 1
  736. const m___volatile = "volatile"
  737. const m___x86_64 = 1
  738. const m___x86_64__ = 1
  739. const m_local = "static"
  740. const m_unix = 1
  741. const m_z_off64_t = "z_off_t"
  742. const m_z_off_t = "off_t"
  743. const m_zmemcmp = "memcmp"
  744. const m_zmemcpy = "memcpy"
  745. type t__builtin_va_list = uintptr
  746. type t__predefined_size_t = uint64
  747. type t__predefined_wchar_t = int32
  748. type t__predefined_ptrdiff_t = int64
  749. type t__int8_t = int8
  750. type t__uint8_t = uint8
  751. type t__int16_t = int16
  752. type t__uint16_t = uint16
  753. type t__int32_t = int32
  754. type t__uint32_t = uint32
  755. type t__int64_t = int64
  756. type t__uint64_t = uint64
  757. type t__int_least8_t = int8
  758. type t__uint_least8_t = uint8
  759. type t__int_least16_t = int16
  760. type t__uint_least16_t = uint16
  761. type t__int_least32_t = int32
  762. type t__uint_least32_t = uint32
  763. type t__int_least64_t = int64
  764. type t__uint_least64_t = uint64
  765. type t__int_fast8_t = int32
  766. type t__uint_fast8_t = uint32
  767. type t__int_fast16_t = int32
  768. type t__uint_fast16_t = uint32
  769. type t__int_fast32_t = int32
  770. type t__uint_fast32_t = uint32
  771. type t__int_fast64_t = int64
  772. type t__uint_fast64_t = uint64
  773. type t__intptr_t = int64
  774. type t__uintptr_t = uint64
  775. type t__intmax_t = int64
  776. type t__uintmax_t = uint64
  777. type t__register_t = int64
  778. type t__vaddr_t = uint64
  779. type t__paddr_t = uint64
  780. type t__vsize_t = uint64
  781. type t__psize_t = uint64
  782. type t__double_t = float64
  783. type t__float_t = float32
  784. type t__ptrdiff_t = int64
  785. type t__size_t = uint64
  786. type t__ssize_t = int64
  787. type t__va_list = uintptr
  788. type t__wchar_t = int32
  789. type t__wint_t = int32
  790. type t__rune_t = int32
  791. type t__wctrans_t = uintptr
  792. type t__wctype_t = uintptr
  793. type t__blkcnt_t = int64
  794. type t__blksize_t = int32
  795. type t__clock_t = int64
  796. type t__clockid_t = int32
  797. type t__cpuid_t = uint64
  798. type t__dev_t = int32
  799. type t__fixpt_t = uint32
  800. type t__fsblkcnt_t = uint64
  801. type t__fsfilcnt_t = uint64
  802. type t__gid_t = uint32
  803. type t__id_t = uint32
  804. type t__in_addr_t = uint32
  805. type t__in_port_t = uint16
  806. type t__ino_t = uint64
  807. type t__key_t = int64
  808. type t__mode_t = uint32
  809. type t__nlink_t = uint32
  810. type t__off_t = int64
  811. type t__pid_t = int32
  812. type t__rlim_t = uint64
  813. type t__sa_family_t = uint8
  814. type t__segsz_t = int32
  815. type t__socklen_t = uint32
  816. type t__suseconds_t = int64
  817. type t__time_t = int64
  818. type t__timer_t = int32
  819. type t__uid_t = uint32
  820. type t__useconds_t = uint32
  821. type t__mbstate_t = struct {
  822. F__mbstateL [0]t__int64_t
  823. F__mbstate8 [128]int8
  824. }
  825. type Tptrdiff_t = int64
  826. type Tsize_t = uint64
  827. type Twchar_t = int32
  828. type Twint_t = int32
  829. type Tmbstate_t = struct {
  830. F__mbstateL [0]t__int64_t
  831. F__mbstate8 [128]int8
  832. }
  833. type Tmax_align_t = struct {
  834. F__max_align_ll int64
  835. F__max_align_ld float64
  836. }
  837. type Tz_size_t = uint64
  838. type TByte = uint8
  839. type TuInt = uint32
  840. type TuLong = uint64
  841. type TBytef = uint8
  842. type Tcharf = int8
  843. type Tintf = int32
  844. type TuIntf = uint32
  845. type TuLongf = uint64
  846. type Tvoidpc = uintptr
  847. type Tvoidpf = uintptr
  848. type Tvoidp = uintptr
  849. type Tz_crc_t = uint32
  850. type Tu_char = uint8
  851. type Tu_short = uint16
  852. type Tu_int = uint32
  853. type Tu_long = uint64
  854. type Tunchar = uint8
  855. type Tushort = uint16
  856. type Tuint = uint32
  857. type Tulong = uint64
  858. type Tcpuid_t = uint64
  859. type Tregister_t = int64
  860. type Tint8_t = int8
  861. type Tuint8_t = uint8
  862. type Tint16_t = int16
  863. type Tuint16_t = uint16
  864. type Tint32_t = int32
  865. type Tuint32_t = uint32
  866. type Tint64_t = int64
  867. type Tuint64_t = uint64
  868. type Tu_int8_t = uint8
  869. type Tu_int16_t = uint16
  870. type Tu_int32_t = uint32
  871. type Tu_int64_t = uint64
  872. type Tquad_t = int64
  873. type Tu_quad_t = uint64
  874. type Tvaddr_t = uint64
  875. type Tpaddr_t = uint64
  876. type Tvsize_t = uint64
  877. type Tpsize_t = uint64
  878. type Tblkcnt_t = int64
  879. type Tblksize_t = int32
  880. type Tcaddr_t = uintptr
  881. type Tdaddr32_t = int32
  882. type Tdaddr_t = int64
  883. type Tdev_t = int32
  884. type Tfixpt_t = uint32
  885. type Tgid_t = uint32
  886. type Tid_t = uint32
  887. type Tino_t = uint64
  888. type Tkey_t = int64
  889. type Tmode_t = uint32
  890. type Tnlink_t = uint32
  891. type Trlim_t = uint64
  892. type Tsegsz_t = int32
  893. type Tuid_t = uint32
  894. type Tuseconds_t = uint32
  895. type Tsuseconds_t = int64
  896. type Tfsblkcnt_t = uint64
  897. type Tfsfilcnt_t = uint64
  898. type Tclock_t = int64
  899. type Tclockid_t = int32
  900. type Tpid_t = int32
  901. type Tssize_t = int64
  902. type Ttime_t = int64
  903. type Ttimer_t = int32
  904. type Toff_t = int64
  905. type t__gnuc_va_list = uintptr
  906. type Tva_list = uintptr
  907. type t__tfork = struct {
  908. Ftf_tcb uintptr
  909. Ftf_tid uintptr
  910. Ftf_stack uintptr
  911. }
  912. type t__kbind = struct {
  913. Fkb_addr uintptr
  914. Fkb_size Tsize_t
  915. }
  916. type Tintptr_t = int64
  917. type Talloc_func = uintptr
  918. type Tfree_func = uintptr
  919. type Tz_stream = struct {
  920. Fnext_in uintptr
  921. Favail_in TuInt
  922. Ftotal_in TuLong
  923. Fnext_out uintptr
  924. Favail_out TuInt
  925. Ftotal_out TuLong
  926. Fmsg uintptr
  927. Fstate uintptr
  928. Fzalloc Talloc_func
  929. Fzfree Tfree_func
  930. Fopaque Tvoidpf
  931. Fdata_type int32
  932. Fadler TuLong
  933. Freserved TuLong
  934. }
  935. type Tz_stream_s = Tz_stream
  936. type Tz_streamp = uintptr
  937. type Tgz_header = struct {
  938. Ftext int32
  939. Ftime TuLong
  940. Fxflags int32
  941. Fos int32
  942. Fextra uintptr
  943. Fextra_len TuInt
  944. Fextra_max TuInt
  945. Fname uintptr
  946. Fname_max TuInt
  947. Fcomment uintptr
  948. Fcomm_max TuInt
  949. Fhcrc int32
  950. Fdone int32
  951. }
  952. type Tgz_header_s = Tgz_header
  953. type Tgz_headerp = uintptr
  954. type Tin_func = uintptr
  955. type Tout_func = uintptr
  956. type TgzFile = uintptr
  957. type TgzFile_s = struct {
  958. Fhave uint32
  959. Fnext uintptr
  960. Fpos Toff_t
  961. }
  962. type Tlocale_t = uintptr
  963. type Tdiv_t = struct {
  964. Fquot int32
  965. Frem int32
  966. }
  967. type Tldiv_t = struct {
  968. Fquot int64
  969. Frem int64
  970. }
  971. type Tlldiv_t = struct {
  972. Fquot int64
  973. Frem int64
  974. }
  975. type Tqdiv_t = struct {
  976. Fquot Tquad_t
  977. Frem Tquad_t
  978. }
  979. type Tuch = uint8
  980. type Tuchf = uint8
  981. type Tush = uint16
  982. type Tushf = uint16
  983. type Tulg = uint64
  984. /* Reverse the bytes in a 32-bit value */
  985. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  986. /* use NO_DIVIDE if your processor does not do division in hardware --
  987. try it both ways to see which is faster */
  988. // C documentation
  989. //
  990. // /* ========================================================================= */
  991. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  992. var n, v3 uint32
  993. var sum2 uint64
  994. var v1, v5 Tz_size_t
  995. var v2, v6 uintptr
  996. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  997. /* split Adler-32 into component sums */
  998. sum2 = adler >> libc.Int32FromInt32(16) & uint64(0xffff)
  999. adler &= uint64(0xffff)
  1000. /* in case user likes doing a byte at a time, keep it fast */
  1001. if len1 == uint64(1) {
  1002. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1003. if adler >= uint64(65521) {
  1004. adler -= uint64(65521)
  1005. }
  1006. sum2 += adler
  1007. if sum2 >= uint64(65521) {
  1008. sum2 -= uint64(65521)
  1009. }
  1010. return adler | sum2<<int32(16)
  1011. }
  1012. /* initial Adler-32 value (deferred check for len == 1 speed) */
  1013. if buf == uintptr(m_Z_NULL) {
  1014. return uint64(1)
  1015. }
  1016. /* in case short lengths are provided, keep it somewhat fast */
  1017. if len1 < uint64(16) {
  1018. for {
  1019. v1 = len1
  1020. len1--
  1021. if !(v1 != 0) {
  1022. break
  1023. }
  1024. v2 = buf
  1025. buf++
  1026. adler += uint64(*(*TBytef)(unsafe.Pointer(v2)))
  1027. sum2 += adler
  1028. }
  1029. if adler >= uint64(65521) {
  1030. adler -= uint64(65521)
  1031. }
  1032. sum2 %= uint64(65521) /* only added so many BASE's */
  1033. return adler | sum2<<int32(16)
  1034. }
  1035. /* do length NMAX blocks -- requires just one modulo operation */
  1036. for len1 >= uint64(m_NMAX) {
  1037. len1 -= uint64(m_NMAX)
  1038. n = uint32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  1039. for {
  1040. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1041. sum2 += adler
  1042. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1043. sum2 += adler
  1044. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1045. sum2 += adler
  1046. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1047. sum2 += adler
  1048. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1049. sum2 += adler
  1050. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1051. sum2 += adler
  1052. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1053. sum2 += adler
  1054. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1055. sum2 += adler
  1056. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1057. sum2 += adler
  1058. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1059. sum2 += adler
  1060. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1061. sum2 += adler
  1062. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1063. sum2 += adler
  1064. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1065. sum2 += adler
  1066. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1067. sum2 += adler
  1068. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1069. sum2 += adler
  1070. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1071. sum2 += adler /* 16 sums unrolled */
  1072. buf += uintptr(16)
  1073. goto _4
  1074. _4:
  1075. ;
  1076. n--
  1077. v3 = n
  1078. if !(v3 != 0) {
  1079. break
  1080. }
  1081. }
  1082. adler %= uint64(65521)
  1083. sum2 %= uint64(65521)
  1084. }
  1085. /* do remaining bytes (less than NMAX, still just one modulo) */
  1086. if len1 != 0 { /* avoid modulos if none remaining */
  1087. for len1 >= uint64(16) {
  1088. len1 -= uint64(16)
  1089. adler += uint64(*(*TBytef)(unsafe.Pointer(buf)))
  1090. sum2 += adler
  1091. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  1092. sum2 += adler
  1093. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  1094. sum2 += adler
  1095. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1096. sum2 += adler
  1097. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  1098. sum2 += adler
  1099. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1100. sum2 += adler
  1101. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1102. sum2 += adler
  1103. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1104. sum2 += adler
  1105. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + 8)))
  1106. sum2 += adler
  1107. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  1108. sum2 += adler
  1109. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  1110. sum2 += adler
  1111. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1112. sum2 += adler
  1113. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  1114. sum2 += adler
  1115. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  1116. sum2 += adler
  1117. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  1118. sum2 += adler
  1119. adler += uint64(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  1120. sum2 += adler
  1121. buf += uintptr(16)
  1122. }
  1123. for {
  1124. v5 = len1
  1125. len1--
  1126. if !(v5 != 0) {
  1127. break
  1128. }
  1129. v6 = buf
  1130. buf++
  1131. adler += uint64(*(*TBytef)(unsafe.Pointer(v6)))
  1132. sum2 += adler
  1133. }
  1134. adler %= uint64(65521)
  1135. sum2 %= uint64(65521)
  1136. }
  1137. /* return recombined sums */
  1138. return adler | sum2<<int32(16)
  1139. }
  1140. // C documentation
  1141. //
  1142. // /* ========================================================================= */
  1143. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  1144. return Xadler32_z(tls, adler, buf, uint64(len1))
  1145. }
  1146. // C documentation
  1147. //
  1148. // /* ========================================================================= */
  1149. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1150. var rem uint32
  1151. var sum1, sum2 uint64
  1152. _, _, _ = rem, sum1, sum2
  1153. /* for negative len, return invalid adler32 as a clue for debugging */
  1154. if len2 < 0 {
  1155. return uint64(0xffffffff)
  1156. }
  1157. /* the derivation of this formula is left as an exercise for the reader */
  1158. len2 %= libc.Int64FromUint32(65521) /* assumes len2 >= 0 */
  1159. rem = uint32(len2)
  1160. sum1 = adler1 & uint64(0xffff)
  1161. sum2 = uint64(rem) * sum1
  1162. sum2 %= uint64(65521)
  1163. sum1 += adler2&uint64(0xffff) + uint64(65521) - uint64(1)
  1164. sum2 += adler1>>libc.Int32FromInt32(16)&uint64(0xffff) + adler2>>libc.Int32FromInt32(16)&uint64(0xffff) + uint64(65521) - uint64(rem)
  1165. if sum1 >= uint64(65521) {
  1166. sum1 -= uint64(65521)
  1167. }
  1168. if sum1 >= uint64(65521) {
  1169. sum1 -= uint64(65521)
  1170. }
  1171. if sum2 >= libc.Uint64FromUint32(65521)<<libc.Int32FromInt32(1) {
  1172. sum2 -= libc.Uint64FromUint32(65521) << libc.Int32FromInt32(1)
  1173. }
  1174. if sum2 >= uint64(65521) {
  1175. sum2 -= uint64(65521)
  1176. }
  1177. return sum1 | sum2<<int32(16)
  1178. }
  1179. // C documentation
  1180. //
  1181. // /* ========================================================================= */
  1182. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1183. return _adler32_combine_(tls, adler1, adler2, len2)
  1184. }
  1185. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 Toff_t) (r TuLong) {
  1186. return _adler32_combine_(tls, adler1, adler2, len2)
  1187. }
  1188. const m_N = 5
  1189. const m_POLY = 3988292384
  1190. const m_W = 8
  1191. /* Reverse the bytes in a 32-bit value */
  1192. /*
  1193. A CRC of a message is computed on N braids of words in the message, where
  1194. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  1195. running sparse CRCs are calculated respectively on each braid, at these
  1196. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1197. This is done starting at a word boundary, and continues until as many blocks
  1198. of N * W bytes as are available have been processed. The results are combined
  1199. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1200. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1201. more #if blocks, extending the patterns apparent in the code. In addition,
  1202. crc32.h would need to be regenerated, if the maximum N value is increased.
  1203. N and W are chosen empirically by benchmarking the execution time on a given
  1204. processor. The choices for N and W below were based on testing on Intel Kaby
  1205. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1206. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1207. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1208. They were all tested with either gcc or clang, all using the -O3 optimization
  1209. level. Your mileage may vary.
  1210. */
  1211. /* Define N */
  1212. /*
  1213. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1214. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1215. that bytes are eight bits.
  1216. */
  1217. // C documentation
  1218. //
  1219. // /*
  1220. // Define W and the associated z_word_t type. If W is not defined, then a
  1221. // braided calculation is not used, and the associated tables and code are not
  1222. // compiled.
  1223. // */
  1224. type Tz_word_t = uint64
  1225. /* If available, use the ARM processor CRC32 instruction. */
  1226. // C documentation
  1227. //
  1228. // /*
  1229. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1230. // self-respecting compiler will optimize this to a single machine byte-swap
  1231. // instruction, if one is available. This assumes that word_t is either 32 bits
  1232. // or 64 bits.
  1233. // */
  1234. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1235. return word&uint64(0xff00000000000000)>>int32(56) | word&uint64(0xff000000000000)>>int32(40) | word&uint64(0xff0000000000)>>int32(24) | word&uint64(0xff00000000)>>int32(8) | word&uint64(0xff000000)<<int32(8) | word&uint64(0xff0000)<<int32(24) | word&uint64(0xff00)<<int32(40) | word&uint64(0xff)<<int32(56)
  1236. }
  1237. var _crc_table = [256]Tz_crc_t{
  1238. 1: uint32(0x77073096),
  1239. 2: uint32(0xee0e612c),
  1240. 3: uint32(0x990951ba),
  1241. 4: uint32(0x076dc419),
  1242. 5: uint32(0x706af48f),
  1243. 6: uint32(0xe963a535),
  1244. 7: uint32(0x9e6495a3),
  1245. 8: uint32(0x0edb8832),
  1246. 9: uint32(0x79dcb8a4),
  1247. 10: uint32(0xe0d5e91e),
  1248. 11: uint32(0x97d2d988),
  1249. 12: uint32(0x09b64c2b),
  1250. 13: uint32(0x7eb17cbd),
  1251. 14: uint32(0xe7b82d07),
  1252. 15: uint32(0x90bf1d91),
  1253. 16: uint32(0x1db71064),
  1254. 17: uint32(0x6ab020f2),
  1255. 18: uint32(0xf3b97148),
  1256. 19: uint32(0x84be41de),
  1257. 20: uint32(0x1adad47d),
  1258. 21: uint32(0x6ddde4eb),
  1259. 22: uint32(0xf4d4b551),
  1260. 23: uint32(0x83d385c7),
  1261. 24: uint32(0x136c9856),
  1262. 25: uint32(0x646ba8c0),
  1263. 26: uint32(0xfd62f97a),
  1264. 27: uint32(0x8a65c9ec),
  1265. 28: uint32(0x14015c4f),
  1266. 29: uint32(0x63066cd9),
  1267. 30: uint32(0xfa0f3d63),
  1268. 31: uint32(0x8d080df5),
  1269. 32: uint32(0x3b6e20c8),
  1270. 33: uint32(0x4c69105e),
  1271. 34: uint32(0xd56041e4),
  1272. 35: uint32(0xa2677172),
  1273. 36: uint32(0x3c03e4d1),
  1274. 37: uint32(0x4b04d447),
  1275. 38: uint32(0xd20d85fd),
  1276. 39: uint32(0xa50ab56b),
  1277. 40: uint32(0x35b5a8fa),
  1278. 41: uint32(0x42b2986c),
  1279. 42: uint32(0xdbbbc9d6),
  1280. 43: uint32(0xacbcf940),
  1281. 44: uint32(0x32d86ce3),
  1282. 45: uint32(0x45df5c75),
  1283. 46: uint32(0xdcd60dcf),
  1284. 47: uint32(0xabd13d59),
  1285. 48: uint32(0x26d930ac),
  1286. 49: uint32(0x51de003a),
  1287. 50: uint32(0xc8d75180),
  1288. 51: uint32(0xbfd06116),
  1289. 52: uint32(0x21b4f4b5),
  1290. 53: uint32(0x56b3c423),
  1291. 54: uint32(0xcfba9599),
  1292. 55: uint32(0xb8bda50f),
  1293. 56: uint32(0x2802b89e),
  1294. 57: uint32(0x5f058808),
  1295. 58: uint32(0xc60cd9b2),
  1296. 59: uint32(0xb10be924),
  1297. 60: uint32(0x2f6f7c87),
  1298. 61: uint32(0x58684c11),
  1299. 62: uint32(0xc1611dab),
  1300. 63: uint32(0xb6662d3d),
  1301. 64: uint32(0x76dc4190),
  1302. 65: uint32(0x01db7106),
  1303. 66: uint32(0x98d220bc),
  1304. 67: uint32(0xefd5102a),
  1305. 68: uint32(0x71b18589),
  1306. 69: uint32(0x06b6b51f),
  1307. 70: uint32(0x9fbfe4a5),
  1308. 71: uint32(0xe8b8d433),
  1309. 72: uint32(0x7807c9a2),
  1310. 73: uint32(0x0f00f934),
  1311. 74: uint32(0x9609a88e),
  1312. 75: uint32(0xe10e9818),
  1313. 76: uint32(0x7f6a0dbb),
  1314. 77: uint32(0x086d3d2d),
  1315. 78: uint32(0x91646c97),
  1316. 79: uint32(0xe6635c01),
  1317. 80: uint32(0x6b6b51f4),
  1318. 81: uint32(0x1c6c6162),
  1319. 82: uint32(0x856530d8),
  1320. 83: uint32(0xf262004e),
  1321. 84: uint32(0x6c0695ed),
  1322. 85: uint32(0x1b01a57b),
  1323. 86: uint32(0x8208f4c1),
  1324. 87: uint32(0xf50fc457),
  1325. 88: uint32(0x65b0d9c6),
  1326. 89: uint32(0x12b7e950),
  1327. 90: uint32(0x8bbeb8ea),
  1328. 91: uint32(0xfcb9887c),
  1329. 92: uint32(0x62dd1ddf),
  1330. 93: uint32(0x15da2d49),
  1331. 94: uint32(0x8cd37cf3),
  1332. 95: uint32(0xfbd44c65),
  1333. 96: uint32(0x4db26158),
  1334. 97: uint32(0x3ab551ce),
  1335. 98: uint32(0xa3bc0074),
  1336. 99: uint32(0xd4bb30e2),
  1337. 100: uint32(0x4adfa541),
  1338. 101: uint32(0x3dd895d7),
  1339. 102: uint32(0xa4d1c46d),
  1340. 103: uint32(0xd3d6f4fb),
  1341. 104: uint32(0x4369e96a),
  1342. 105: uint32(0x346ed9fc),
  1343. 106: uint32(0xad678846),
  1344. 107: uint32(0xda60b8d0),
  1345. 108: uint32(0x44042d73),
  1346. 109: uint32(0x33031de5),
  1347. 110: uint32(0xaa0a4c5f),
  1348. 111: uint32(0xdd0d7cc9),
  1349. 112: uint32(0x5005713c),
  1350. 113: uint32(0x270241aa),
  1351. 114: uint32(0xbe0b1010),
  1352. 115: uint32(0xc90c2086),
  1353. 116: uint32(0x5768b525),
  1354. 117: uint32(0x206f85b3),
  1355. 118: uint32(0xb966d409),
  1356. 119: uint32(0xce61e49f),
  1357. 120: uint32(0x5edef90e),
  1358. 121: uint32(0x29d9c998),
  1359. 122: uint32(0xb0d09822),
  1360. 123: uint32(0xc7d7a8b4),
  1361. 124: uint32(0x59b33d17),
  1362. 125: uint32(0x2eb40d81),
  1363. 126: uint32(0xb7bd5c3b),
  1364. 127: uint32(0xc0ba6cad),
  1365. 128: uint32(0xedb88320),
  1366. 129: uint32(0x9abfb3b6),
  1367. 130: uint32(0x03b6e20c),
  1368. 131: uint32(0x74b1d29a),
  1369. 132: uint32(0xead54739),
  1370. 133: uint32(0x9dd277af),
  1371. 134: uint32(0x04db2615),
  1372. 135: uint32(0x73dc1683),
  1373. 136: uint32(0xe3630b12),
  1374. 137: uint32(0x94643b84),
  1375. 138: uint32(0x0d6d6a3e),
  1376. 139: uint32(0x7a6a5aa8),
  1377. 140: uint32(0xe40ecf0b),
  1378. 141: uint32(0x9309ff9d),
  1379. 142: uint32(0x0a00ae27),
  1380. 143: uint32(0x7d079eb1),
  1381. 144: uint32(0xf00f9344),
  1382. 145: uint32(0x8708a3d2),
  1383. 146: uint32(0x1e01f268),
  1384. 147: uint32(0x6906c2fe),
  1385. 148: uint32(0xf762575d),
  1386. 149: uint32(0x806567cb),
  1387. 150: uint32(0x196c3671),
  1388. 151: uint32(0x6e6b06e7),
  1389. 152: uint32(0xfed41b76),
  1390. 153: uint32(0x89d32be0),
  1391. 154: uint32(0x10da7a5a),
  1392. 155: uint32(0x67dd4acc),
  1393. 156: uint32(0xf9b9df6f),
  1394. 157: uint32(0x8ebeeff9),
  1395. 158: uint32(0x17b7be43),
  1396. 159: uint32(0x60b08ed5),
  1397. 160: uint32(0xd6d6a3e8),
  1398. 161: uint32(0xa1d1937e),
  1399. 162: uint32(0x38d8c2c4),
  1400. 163: uint32(0x4fdff252),
  1401. 164: uint32(0xd1bb67f1),
  1402. 165: uint32(0xa6bc5767),
  1403. 166: uint32(0x3fb506dd),
  1404. 167: uint32(0x48b2364b),
  1405. 168: uint32(0xd80d2bda),
  1406. 169: uint32(0xaf0a1b4c),
  1407. 170: uint32(0x36034af6),
  1408. 171: uint32(0x41047a60),
  1409. 172: uint32(0xdf60efc3),
  1410. 173: uint32(0xa867df55),
  1411. 174: uint32(0x316e8eef),
  1412. 175: uint32(0x4669be79),
  1413. 176: uint32(0xcb61b38c),
  1414. 177: uint32(0xbc66831a),
  1415. 178: uint32(0x256fd2a0),
  1416. 179: uint32(0x5268e236),
  1417. 180: uint32(0xcc0c7795),
  1418. 181: uint32(0xbb0b4703),
  1419. 182: uint32(0x220216b9),
  1420. 183: uint32(0x5505262f),
  1421. 184: uint32(0xc5ba3bbe),
  1422. 185: uint32(0xb2bd0b28),
  1423. 186: uint32(0x2bb45a92),
  1424. 187: uint32(0x5cb36a04),
  1425. 188: uint32(0xc2d7ffa7),
  1426. 189: uint32(0xb5d0cf31),
  1427. 190: uint32(0x2cd99e8b),
  1428. 191: uint32(0x5bdeae1d),
  1429. 192: uint32(0x9b64c2b0),
  1430. 193: uint32(0xec63f226),
  1431. 194: uint32(0x756aa39c),
  1432. 195: uint32(0x026d930a),
  1433. 196: uint32(0x9c0906a9),
  1434. 197: uint32(0xeb0e363f),
  1435. 198: uint32(0x72076785),
  1436. 199: uint32(0x05005713),
  1437. 200: uint32(0x95bf4a82),
  1438. 201: uint32(0xe2b87a14),
  1439. 202: uint32(0x7bb12bae),
  1440. 203: uint32(0x0cb61b38),
  1441. 204: uint32(0x92d28e9b),
  1442. 205: uint32(0xe5d5be0d),
  1443. 206: uint32(0x7cdcefb7),
  1444. 207: uint32(0x0bdbdf21),
  1445. 208: uint32(0x86d3d2d4),
  1446. 209: uint32(0xf1d4e242),
  1447. 210: uint32(0x68ddb3f8),
  1448. 211: uint32(0x1fda836e),
  1449. 212: uint32(0x81be16cd),
  1450. 213: uint32(0xf6b9265b),
  1451. 214: uint32(0x6fb077e1),
  1452. 215: uint32(0x18b74777),
  1453. 216: uint32(0x88085ae6),
  1454. 217: uint32(0xff0f6a70),
  1455. 218: uint32(0x66063bca),
  1456. 219: uint32(0x11010b5c),
  1457. 220: uint32(0x8f659eff),
  1458. 221: uint32(0xf862ae69),
  1459. 222: uint32(0x616bffd3),
  1460. 223: uint32(0x166ccf45),
  1461. 224: uint32(0xa00ae278),
  1462. 225: uint32(0xd70dd2ee),
  1463. 226: uint32(0x4e048354),
  1464. 227: uint32(0x3903b3c2),
  1465. 228: uint32(0xa7672661),
  1466. 229: uint32(0xd06016f7),
  1467. 230: uint32(0x4969474d),
  1468. 231: uint32(0x3e6e77db),
  1469. 232: uint32(0xaed16a4a),
  1470. 233: uint32(0xd9d65adc),
  1471. 234: uint32(0x40df0b66),
  1472. 235: uint32(0x37d83bf0),
  1473. 236: uint32(0xa9bcae53),
  1474. 237: uint32(0xdebb9ec5),
  1475. 238: uint32(0x47b2cf7f),
  1476. 239: uint32(0x30b5ffe9),
  1477. 240: uint32(0xbdbdf21c),
  1478. 241: uint32(0xcabac28a),
  1479. 242: uint32(0x53b39330),
  1480. 243: uint32(0x24b4a3a6),
  1481. 244: uint32(0xbad03605),
  1482. 245: uint32(0xcdd70693),
  1483. 246: uint32(0x54de5729),
  1484. 247: uint32(0x23d967bf),
  1485. 248: uint32(0xb3667a2e),
  1486. 249: uint32(0xc4614ab8),
  1487. 250: uint32(0x5d681b02),
  1488. 251: uint32(0x2a6f2b94),
  1489. 252: uint32(0xb40bbe37),
  1490. 253: uint32(0xc30c8ea1),
  1491. 254: uint32(0x5a05df1b),
  1492. 255: uint32(0x2d02ef8d),
  1493. }
  1494. var _crc_big_table = [256]Tz_word_t{
  1495. 1: uint64(0x9630077700000000),
  1496. 2: uint64(0x2c610eee00000000),
  1497. 3: uint64(0xba51099900000000),
  1498. 4: uint64(0x19c46d0700000000),
  1499. 5: uint64(0x8ff46a7000000000),
  1500. 6: uint64(0x35a563e900000000),
  1501. 7: uint64(0xa395649e00000000),
  1502. 8: uint64(0x3288db0e00000000),
  1503. 9: uint64(0xa4b8dc7900000000),
  1504. 10: uint64(0x1ee9d5e000000000),
  1505. 11: uint64(0x88d9d29700000000),
  1506. 12: uint64(0x2b4cb60900000000),
  1507. 13: uint64(0xbd7cb17e00000000),
  1508. 14: uint64(0x072db8e700000000),
  1509. 15: uint64(0x911dbf9000000000),
  1510. 16: uint64(0x6410b71d00000000),
  1511. 17: uint64(0xf220b06a00000000),
  1512. 18: uint64(0x4871b9f300000000),
  1513. 19: uint64(0xde41be8400000000),
  1514. 20: uint64(0x7dd4da1a00000000),
  1515. 21: uint64(0xebe4dd6d00000000),
  1516. 22: uint64(0x51b5d4f400000000),
  1517. 23: uint64(0xc785d38300000000),
  1518. 24: uint64(0x56986c1300000000),
  1519. 25: uint64(0xc0a86b6400000000),
  1520. 26: uint64(0x7af962fd00000000),
  1521. 27: uint64(0xecc9658a00000000),
  1522. 28: uint64(0x4f5c011400000000),
  1523. 29: uint64(0xd96c066300000000),
  1524. 30: uint64(0x633d0ffa00000000),
  1525. 31: uint64(0xf50d088d00000000),
  1526. 32: uint64(0xc8206e3b00000000),
  1527. 33: uint64(0x5e10694c00000000),
  1528. 34: uint64(0xe44160d500000000),
  1529. 35: uint64(0x727167a200000000),
  1530. 36: uint64(0xd1e4033c00000000),
  1531. 37: uint64(0x47d4044b00000000),
  1532. 38: uint64(0xfd850dd200000000),
  1533. 39: uint64(0x6bb50aa500000000),
  1534. 40: uint64(0xfaa8b53500000000),
  1535. 41: uint64(0x6c98b24200000000),
  1536. 42: uint64(0xd6c9bbdb00000000),
  1537. 43: uint64(0x40f9bcac00000000),
  1538. 44: uint64(0xe36cd83200000000),
  1539. 45: uint64(0x755cdf4500000000),
  1540. 46: uint64(0xcf0dd6dc00000000),
  1541. 47: uint64(0x593dd1ab00000000),
  1542. 48: uint64(0xac30d92600000000),
  1543. 49: uint64(0x3a00de5100000000),
  1544. 50: uint64(0x8051d7c800000000),
  1545. 51: uint64(0x1661d0bf00000000),
  1546. 52: uint64(0xb5f4b42100000000),
  1547. 53: uint64(0x23c4b35600000000),
  1548. 54: uint64(0x9995bacf00000000),
  1549. 55: uint64(0x0fa5bdb800000000),
  1550. 56: uint64(0x9eb8022800000000),
  1551. 57: uint64(0x0888055f00000000),
  1552. 58: uint64(0xb2d90cc600000000),
  1553. 59: uint64(0x24e90bb100000000),
  1554. 60: uint64(0x877c6f2f00000000),
  1555. 61: uint64(0x114c685800000000),
  1556. 62: uint64(0xab1d61c100000000),
  1557. 63: uint64(0x3d2d66b600000000),
  1558. 64: uint64(0x9041dc7600000000),
  1559. 65: uint64(0x0671db0100000000),
  1560. 66: uint64(0xbc20d29800000000),
  1561. 67: uint64(0x2a10d5ef00000000),
  1562. 68: uint64(0x8985b17100000000),
  1563. 69: uint64(0x1fb5b60600000000),
  1564. 70: uint64(0xa5e4bf9f00000000),
  1565. 71: uint64(0x33d4b8e800000000),
  1566. 72: uint64(0xa2c9077800000000),
  1567. 73: uint64(0x34f9000f00000000),
  1568. 74: uint64(0x8ea8099600000000),
  1569. 75: uint64(0x18980ee100000000),
  1570. 76: uint64(0xbb0d6a7f00000000),
  1571. 77: uint64(0x2d3d6d0800000000),
  1572. 78: uint64(0x976c649100000000),
  1573. 79: uint64(0x015c63e600000000),
  1574. 80: uint64(0xf4516b6b00000000),
  1575. 81: uint64(0x62616c1c00000000),
  1576. 82: uint64(0xd830658500000000),
  1577. 83: uint64(0x4e0062f200000000),
  1578. 84: uint64(0xed95066c00000000),
  1579. 85: uint64(0x7ba5011b00000000),
  1580. 86: uint64(0xc1f4088200000000),
  1581. 87: uint64(0x57c40ff500000000),
  1582. 88: uint64(0xc6d9b06500000000),
  1583. 89: uint64(0x50e9b71200000000),
  1584. 90: uint64(0xeab8be8b00000000),
  1585. 91: uint64(0x7c88b9fc00000000),
  1586. 92: uint64(0xdf1ddd6200000000),
  1587. 93: uint64(0x492dda1500000000),
  1588. 94: uint64(0xf37cd38c00000000),
  1589. 95: uint64(0x654cd4fb00000000),
  1590. 96: uint64(0x5861b24d00000000),
  1591. 97: uint64(0xce51b53a00000000),
  1592. 98: uint64(0x7400bca300000000),
  1593. 99: uint64(0xe230bbd400000000),
  1594. 100: uint64(0x41a5df4a00000000),
  1595. 101: uint64(0xd795d83d00000000),
  1596. 102: uint64(0x6dc4d1a400000000),
  1597. 103: uint64(0xfbf4d6d300000000),
  1598. 104: uint64(0x6ae9694300000000),
  1599. 105: uint64(0xfcd96e3400000000),
  1600. 106: uint64(0x468867ad00000000),
  1601. 107: uint64(0xd0b860da00000000),
  1602. 108: uint64(0x732d044400000000),
  1603. 109: uint64(0xe51d033300000000),
  1604. 110: uint64(0x5f4c0aaa00000000),
  1605. 111: uint64(0xc97c0ddd00000000),
  1606. 112: uint64(0x3c71055000000000),
  1607. 113: uint64(0xaa41022700000000),
  1608. 114: uint64(0x10100bbe00000000),
  1609. 115: uint64(0x86200cc900000000),
  1610. 116: uint64(0x25b5685700000000),
  1611. 117: uint64(0xb3856f2000000000),
  1612. 118: uint64(0x09d466b900000000),
  1613. 119: uint64(0x9fe461ce00000000),
  1614. 120: uint64(0x0ef9de5e00000000),
  1615. 121: uint64(0x98c9d92900000000),
  1616. 122: uint64(0x2298d0b000000000),
  1617. 123: uint64(0xb4a8d7c700000000),
  1618. 124: uint64(0x173db35900000000),
  1619. 125: uint64(0x810db42e00000000),
  1620. 126: uint64(0x3b5cbdb700000000),
  1621. 127: uint64(0xad6cbac000000000),
  1622. 128: uint64(0x2083b8ed00000000),
  1623. 129: uint64(0xb6b3bf9a00000000),
  1624. 130: uint64(0x0ce2b60300000000),
  1625. 131: uint64(0x9ad2b17400000000),
  1626. 132: uint64(0x3947d5ea00000000),
  1627. 133: uint64(0xaf77d29d00000000),
  1628. 134: uint64(0x1526db0400000000),
  1629. 135: uint64(0x8316dc7300000000),
  1630. 136: uint64(0x120b63e300000000),
  1631. 137: uint64(0x843b649400000000),
  1632. 138: uint64(0x3e6a6d0d00000000),
  1633. 139: uint64(0xa85a6a7a00000000),
  1634. 140: uint64(0x0bcf0ee400000000),
  1635. 141: uint64(0x9dff099300000000),
  1636. 142: uint64(0x27ae000a00000000),
  1637. 143: uint64(0xb19e077d00000000),
  1638. 144: uint64(0x44930ff000000000),
  1639. 145: uint64(0xd2a3088700000000),
  1640. 146: uint64(0x68f2011e00000000),
  1641. 147: uint64(0xfec2066900000000),
  1642. 148: uint64(0x5d5762f700000000),
  1643. 149: uint64(0xcb67658000000000),
  1644. 150: uint64(0x71366c1900000000),
  1645. 151: uint64(0xe7066b6e00000000),
  1646. 152: uint64(0x761bd4fe00000000),
  1647. 153: uint64(0xe02bd38900000000),
  1648. 154: uint64(0x5a7ada1000000000),
  1649. 155: uint64(0xcc4add6700000000),
  1650. 156: uint64(0x6fdfb9f900000000),
  1651. 157: uint64(0xf9efbe8e00000000),
  1652. 158: uint64(0x43beb71700000000),
  1653. 159: uint64(0xd58eb06000000000),
  1654. 160: uint64(0xe8a3d6d600000000),
  1655. 161: uint64(0x7e93d1a100000000),
  1656. 162: uint64(0xc4c2d83800000000),
  1657. 163: uint64(0x52f2df4f00000000),
  1658. 164: uint64(0xf167bbd100000000),
  1659. 165: uint64(0x6757bca600000000),
  1660. 166: uint64(0xdd06b53f00000000),
  1661. 167: uint64(0x4b36b24800000000),
  1662. 168: uint64(0xda2b0dd800000000),
  1663. 169: uint64(0x4c1b0aaf00000000),
  1664. 170: uint64(0xf64a033600000000),
  1665. 171: uint64(0x607a044100000000),
  1666. 172: uint64(0xc3ef60df00000000),
  1667. 173: uint64(0x55df67a800000000),
  1668. 174: uint64(0xef8e6e3100000000),
  1669. 175: uint64(0x79be694600000000),
  1670. 176: uint64(0x8cb361cb00000000),
  1671. 177: uint64(0x1a8366bc00000000),
  1672. 178: uint64(0xa0d26f2500000000),
  1673. 179: uint64(0x36e2685200000000),
  1674. 180: uint64(0x95770ccc00000000),
  1675. 181: uint64(0x03470bbb00000000),
  1676. 182: uint64(0xb916022200000000),
  1677. 183: uint64(0x2f26055500000000),
  1678. 184: uint64(0xbe3bbac500000000),
  1679. 185: uint64(0x280bbdb200000000),
  1680. 186: uint64(0x925ab42b00000000),
  1681. 187: uint64(0x046ab35c00000000),
  1682. 188: uint64(0xa7ffd7c200000000),
  1683. 189: uint64(0x31cfd0b500000000),
  1684. 190: uint64(0x8b9ed92c00000000),
  1685. 191: uint64(0x1daede5b00000000),
  1686. 192: uint64(0xb0c2649b00000000),
  1687. 193: uint64(0x26f263ec00000000),
  1688. 194: uint64(0x9ca36a7500000000),
  1689. 195: uint64(0x0a936d0200000000),
  1690. 196: uint64(0xa906099c00000000),
  1691. 197: uint64(0x3f360eeb00000000),
  1692. 198: uint64(0x8567077200000000),
  1693. 199: uint64(0x1357000500000000),
  1694. 200: uint64(0x824abf9500000000),
  1695. 201: uint64(0x147ab8e200000000),
  1696. 202: uint64(0xae2bb17b00000000),
  1697. 203: uint64(0x381bb60c00000000),
  1698. 204: uint64(0x9b8ed29200000000),
  1699. 205: uint64(0x0dbed5e500000000),
  1700. 206: uint64(0xb7efdc7c00000000),
  1701. 207: uint64(0x21dfdb0b00000000),
  1702. 208: uint64(0xd4d2d38600000000),
  1703. 209: uint64(0x42e2d4f100000000),
  1704. 210: uint64(0xf8b3dd6800000000),
  1705. 211: uint64(0x6e83da1f00000000),
  1706. 212: uint64(0xcd16be8100000000),
  1707. 213: uint64(0x5b26b9f600000000),
  1708. 214: uint64(0xe177b06f00000000),
  1709. 215: uint64(0x7747b71800000000),
  1710. 216: uint64(0xe65a088800000000),
  1711. 217: uint64(0x706a0fff00000000),
  1712. 218: uint64(0xca3b066600000000),
  1713. 219: uint64(0x5c0b011100000000),
  1714. 220: uint64(0xff9e658f00000000),
  1715. 221: uint64(0x69ae62f800000000),
  1716. 222: uint64(0xd3ff6b6100000000),
  1717. 223: uint64(0x45cf6c1600000000),
  1718. 224: uint64(0x78e20aa000000000),
  1719. 225: uint64(0xeed20dd700000000),
  1720. 226: uint64(0x5483044e00000000),
  1721. 227: uint64(0xc2b3033900000000),
  1722. 228: uint64(0x612667a700000000),
  1723. 229: uint64(0xf71660d000000000),
  1724. 230: uint64(0x4d47694900000000),
  1725. 231: uint64(0xdb776e3e00000000),
  1726. 232: uint64(0x4a6ad1ae00000000),
  1727. 233: uint64(0xdc5ad6d900000000),
  1728. 234: uint64(0x660bdf4000000000),
  1729. 235: uint64(0xf03bd83700000000),
  1730. 236: uint64(0x53aebca900000000),
  1731. 237: uint64(0xc59ebbde00000000),
  1732. 238: uint64(0x7fcfb24700000000),
  1733. 239: uint64(0xe9ffb53000000000),
  1734. 240: uint64(0x1cf2bdbd00000000),
  1735. 241: uint64(0x8ac2baca00000000),
  1736. 242: uint64(0x3093b35300000000),
  1737. 243: uint64(0xa6a3b42400000000),
  1738. 244: uint64(0x0536d0ba00000000),
  1739. 245: uint64(0x9306d7cd00000000),
  1740. 246: uint64(0x2957de5400000000),
  1741. 247: uint64(0xbf67d92300000000),
  1742. 248: uint64(0x2e7a66b300000000),
  1743. 249: uint64(0xb84a61c400000000),
  1744. 250: uint64(0x021b685d00000000),
  1745. 251: uint64(0x942b6f2a00000000),
  1746. 252: uint64(0x37be0bb400000000),
  1747. 253: uint64(0xa18e0cc300000000),
  1748. 254: uint64(0x1bdf055a00000000),
  1749. 255: uint64(0x8def022d00000000),
  1750. }
  1751. var _crc_braid_table = [8][256]Tz_crc_t{
  1752. 0: {
  1753. 1: uint32(0xaf449247),
  1754. 2: uint32(0x85f822cf),
  1755. 3: uint32(0x2abcb088),
  1756. 4: uint32(0xd08143df),
  1757. 5: uint32(0x7fc5d198),
  1758. 6: uint32(0x55796110),
  1759. 7: uint32(0xfa3df357),
  1760. 8: uint32(0x7a7381ff),
  1761. 9: uint32(0xd53713b8),
  1762. 10: uint32(0xff8ba330),
  1763. 11: uint32(0x50cf3177),
  1764. 12: uint32(0xaaf2c220),
  1765. 13: uint32(0x05b65067),
  1766. 14: uint32(0x2f0ae0ef),
  1767. 15: uint32(0x804e72a8),
  1768. 16: uint32(0xf4e703fe),
  1769. 17: uint32(0x5ba391b9),
  1770. 18: uint32(0x711f2131),
  1771. 19: uint32(0xde5bb376),
  1772. 20: uint32(0x24664021),
  1773. 21: uint32(0x8b22d266),
  1774. 22: uint32(0xa19e62ee),
  1775. 23: uint32(0x0edaf0a9),
  1776. 24: uint32(0x8e948201),
  1777. 25: uint32(0x21d01046),
  1778. 26: uint32(0x0b6ca0ce),
  1779. 27: uint32(0xa4283289),
  1780. 28: uint32(0x5e15c1de),
  1781. 29: uint32(0xf1515399),
  1782. 30: uint32(0xdbede311),
  1783. 31: uint32(0x74a97156),
  1784. 32: uint32(0x32bf01bd),
  1785. 33: uint32(0x9dfb93fa),
  1786. 34: uint32(0xb7472372),
  1787. 35: uint32(0x1803b135),
  1788. 36: uint32(0xe23e4262),
  1789. 37: uint32(0x4d7ad025),
  1790. 38: uint32(0x67c660ad),
  1791. 39: uint32(0xc882f2ea),
  1792. 40: uint32(0x48cc8042),
  1793. 41: uint32(0xe7881205),
  1794. 42: uint32(0xcd34a28d),
  1795. 43: uint32(0x627030ca),
  1796. 44: uint32(0x984dc39d),
  1797. 45: uint32(0x370951da),
  1798. 46: uint32(0x1db5e152),
  1799. 47: uint32(0xb2f17315),
  1800. 48: uint32(0xc6580243),
  1801. 49: uint32(0x691c9004),
  1802. 50: uint32(0x43a0208c),
  1803. 51: uint32(0xece4b2cb),
  1804. 52: uint32(0x16d9419c),
  1805. 53: uint32(0xb99dd3db),
  1806. 54: uint32(0x93216353),
  1807. 55: uint32(0x3c65f114),
  1808. 56: uint32(0xbc2b83bc),
  1809. 57: uint32(0x136f11fb),
  1810. 58: uint32(0x39d3a173),
  1811. 59: uint32(0x96973334),
  1812. 60: uint32(0x6caac063),
  1813. 61: uint32(0xc3ee5224),
  1814. 62: uint32(0xe952e2ac),
  1815. 63: uint32(0x461670eb),
  1816. 64: uint32(0x657e037a),
  1817. 65: uint32(0xca3a913d),
  1818. 66: uint32(0xe08621b5),
  1819. 67: uint32(0x4fc2b3f2),
  1820. 68: uint32(0xb5ff40a5),
  1821. 69: uint32(0x1abbd2e2),
  1822. 70: uint32(0x3007626a),
  1823. 71: uint32(0x9f43f02d),
  1824. 72: uint32(0x1f0d8285),
  1825. 73: uint32(0xb04910c2),
  1826. 74: uint32(0x9af5a04a),
  1827. 75: uint32(0x35b1320d),
  1828. 76: uint32(0xcf8cc15a),
  1829. 77: uint32(0x60c8531d),
  1830. 78: uint32(0x4a74e395),
  1831. 79: uint32(0xe53071d2),
  1832. 80: uint32(0x91990084),
  1833. 81: uint32(0x3edd92c3),
  1834. 82: uint32(0x1461224b),
  1835. 83: uint32(0xbb25b00c),
  1836. 84: uint32(0x4118435b),
  1837. 85: uint32(0xee5cd11c),
  1838. 86: uint32(0xc4e06194),
  1839. 87: uint32(0x6ba4f3d3),
  1840. 88: uint32(0xebea817b),
  1841. 89: uint32(0x44ae133c),
  1842. 90: uint32(0x6e12a3b4),
  1843. 91: uint32(0xc15631f3),
  1844. 92: uint32(0x3b6bc2a4),
  1845. 93: uint32(0x942f50e3),
  1846. 94: uint32(0xbe93e06b),
  1847. 95: uint32(0x11d7722c),
  1848. 96: uint32(0x57c102c7),
  1849. 97: uint32(0xf8859080),
  1850. 98: uint32(0xd2392008),
  1851. 99: uint32(0x7d7db24f),
  1852. 100: uint32(0x87404118),
  1853. 101: uint32(0x2804d35f),
  1854. 102: uint32(0x02b863d7),
  1855. 103: uint32(0xadfcf190),
  1856. 104: uint32(0x2db28338),
  1857. 105: uint32(0x82f6117f),
  1858. 106: uint32(0xa84aa1f7),
  1859. 107: uint32(0x070e33b0),
  1860. 108: uint32(0xfd33c0e7),
  1861. 109: uint32(0x527752a0),
  1862. 110: uint32(0x78cbe228),
  1863. 111: uint32(0xd78f706f),
  1864. 112: uint32(0xa3260139),
  1865. 113: uint32(0x0c62937e),
  1866. 114: uint32(0x26de23f6),
  1867. 115: uint32(0x899ab1b1),
  1868. 116: uint32(0x73a742e6),
  1869. 117: uint32(0xdce3d0a1),
  1870. 118: uint32(0xf65f6029),
  1871. 119: uint32(0x591bf26e),
  1872. 120: uint32(0xd95580c6),
  1873. 121: uint32(0x76111281),
  1874. 122: uint32(0x5cada209),
  1875. 123: uint32(0xf3e9304e),
  1876. 124: uint32(0x09d4c319),
  1877. 125: uint32(0xa690515e),
  1878. 126: uint32(0x8c2ce1d6),
  1879. 127: uint32(0x23687391),
  1880. 128: uint32(0xcafc06f4),
  1881. 129: uint32(0x65b894b3),
  1882. 130: uint32(0x4f04243b),
  1883. 131: uint32(0xe040b67c),
  1884. 132: uint32(0x1a7d452b),
  1885. 133: uint32(0xb539d76c),
  1886. 134: uint32(0x9f8567e4),
  1887. 135: uint32(0x30c1f5a3),
  1888. 136: uint32(0xb08f870b),
  1889. 137: uint32(0x1fcb154c),
  1890. 138: uint32(0x3577a5c4),
  1891. 139: uint32(0x9a333783),
  1892. 140: uint32(0x600ec4d4),
  1893. 141: uint32(0xcf4a5693),
  1894. 142: uint32(0xe5f6e61b),
  1895. 143: uint32(0x4ab2745c),
  1896. 144: uint32(0x3e1b050a),
  1897. 145: uint32(0x915f974d),
  1898. 146: uint32(0xbbe327c5),
  1899. 147: uint32(0x14a7b582),
  1900. 148: uint32(0xee9a46d5),
  1901. 149: uint32(0x41ded492),
  1902. 150: uint32(0x6b62641a),
  1903. 151: uint32(0xc426f65d),
  1904. 152: uint32(0x446884f5),
  1905. 153: uint32(0xeb2c16b2),
  1906. 154: uint32(0xc190a63a),
  1907. 155: uint32(0x6ed4347d),
  1908. 156: uint32(0x94e9c72a),
  1909. 157: uint32(0x3bad556d),
  1910. 158: uint32(0x1111e5e5),
  1911. 159: uint32(0xbe5577a2),
  1912. 160: uint32(0xf8430749),
  1913. 161: uint32(0x5707950e),
  1914. 162: uint32(0x7dbb2586),
  1915. 163: uint32(0xd2ffb7c1),
  1916. 164: uint32(0x28c24496),
  1917. 165: uint32(0x8786d6d1),
  1918. 166: uint32(0xad3a6659),
  1919. 167: uint32(0x027ef41e),
  1920. 168: uint32(0x823086b6),
  1921. 169: uint32(0x2d7414f1),
  1922. 170: uint32(0x07c8a479),
  1923. 171: uint32(0xa88c363e),
  1924. 172: uint32(0x52b1c569),
  1925. 173: uint32(0xfdf5572e),
  1926. 174: uint32(0xd749e7a6),
  1927. 175: uint32(0x780d75e1),
  1928. 176: uint32(0x0ca404b7),
  1929. 177: uint32(0xa3e096f0),
  1930. 178: uint32(0x895c2678),
  1931. 179: uint32(0x2618b43f),
  1932. 180: uint32(0xdc254768),
  1933. 181: uint32(0x7361d52f),
  1934. 182: uint32(0x59dd65a7),
  1935. 183: uint32(0xf699f7e0),
  1936. 184: uint32(0x76d78548),
  1937. 185: uint32(0xd993170f),
  1938. 186: uint32(0xf32fa787),
  1939. 187: uint32(0x5c6b35c0),
  1940. 188: uint32(0xa656c697),
  1941. 189: uint32(0x091254d0),
  1942. 190: uint32(0x23aee458),
  1943. 191: uint32(0x8cea761f),
  1944. 192: uint32(0xaf82058e),
  1945. 193: uint32(0x00c697c9),
  1946. 194: uint32(0x2a7a2741),
  1947. 195: uint32(0x853eb506),
  1948. 196: uint32(0x7f034651),
  1949. 197: uint32(0xd047d416),
  1950. 198: uint32(0xfafb649e),
  1951. 199: uint32(0x55bff6d9),
  1952. 200: uint32(0xd5f18471),
  1953. 201: uint32(0x7ab51636),
  1954. 202: uint32(0x5009a6be),
  1955. 203: uint32(0xff4d34f9),
  1956. 204: uint32(0x0570c7ae),
  1957. 205: uint32(0xaa3455e9),
  1958. 206: uint32(0x8088e561),
  1959. 207: uint32(0x2fcc7726),
  1960. 208: uint32(0x5b650670),
  1961. 209: uint32(0xf4219437),
  1962. 210: uint32(0xde9d24bf),
  1963. 211: uint32(0x71d9b6f8),
  1964. 212: uint32(0x8be445af),
  1965. 213: uint32(0x24a0d7e8),
  1966. 214: uint32(0x0e1c6760),
  1967. 215: uint32(0xa158f527),
  1968. 216: uint32(0x2116878f),
  1969. 217: uint32(0x8e5215c8),
  1970. 218: uint32(0xa4eea540),
  1971. 219: uint32(0x0baa3707),
  1972. 220: uint32(0xf197c450),
  1973. 221: uint32(0x5ed35617),
  1974. 222: uint32(0x746fe69f),
  1975. 223: uint32(0xdb2b74d8),
  1976. 224: uint32(0x9d3d0433),
  1977. 225: uint32(0x32799674),
  1978. 226: uint32(0x18c526fc),
  1979. 227: uint32(0xb781b4bb),
  1980. 228: uint32(0x4dbc47ec),
  1981. 229: uint32(0xe2f8d5ab),
  1982. 230: uint32(0xc8446523),
  1983. 231: uint32(0x6700f764),
  1984. 232: uint32(0xe74e85cc),
  1985. 233: uint32(0x480a178b),
  1986. 234: uint32(0x62b6a703),
  1987. 235: uint32(0xcdf23544),
  1988. 236: uint32(0x37cfc613),
  1989. 237: uint32(0x988b5454),
  1990. 238: uint32(0xb237e4dc),
  1991. 239: uint32(0x1d73769b),
  1992. 240: uint32(0x69da07cd),
  1993. 241: uint32(0xc69e958a),
  1994. 242: uint32(0xec222502),
  1995. 243: uint32(0x4366b745),
  1996. 244: uint32(0xb95b4412),
  1997. 245: uint32(0x161fd655),
  1998. 246: uint32(0x3ca366dd),
  1999. 247: uint32(0x93e7f49a),
  2000. 248: uint32(0x13a98632),
  2001. 249: uint32(0xbced1475),
  2002. 250: uint32(0x9651a4fd),
  2003. 251: uint32(0x391536ba),
  2004. 252: uint32(0xc328c5ed),
  2005. 253: uint32(0x6c6c57aa),
  2006. 254: uint32(0x46d0e722),
  2007. 255: uint32(0xe9947565),
  2008. },
  2009. 1: {
  2010. 1: uint32(0x4e890ba9),
  2011. 2: uint32(0x9d121752),
  2012. 3: uint32(0xd39b1cfb),
  2013. 4: uint32(0xe15528e5),
  2014. 5: uint32(0xafdc234c),
  2015. 6: uint32(0x7c473fb7),
  2016. 7: uint32(0x32ce341e),
  2017. 8: uint32(0x19db578b),
  2018. 9: uint32(0x57525c22),
  2019. 10: uint32(0x84c940d9),
  2020. 11: uint32(0xca404b70),
  2021. 12: uint32(0xf88e7f6e),
  2022. 13: uint32(0xb60774c7),
  2023. 14: uint32(0x659c683c),
  2024. 15: uint32(0x2b156395),
  2025. 16: uint32(0x33b6af16),
  2026. 17: uint32(0x7d3fa4bf),
  2027. 18: uint32(0xaea4b844),
  2028. 19: uint32(0xe02db3ed),
  2029. 20: uint32(0xd2e387f3),
  2030. 21: uint32(0x9c6a8c5a),
  2031. 22: uint32(0x4ff190a1),
  2032. 23: uint32(0x01789b08),
  2033. 24: uint32(0x2a6df89d),
  2034. 25: uint32(0x64e4f334),
  2035. 26: uint32(0xb77fefcf),
  2036. 27: uint32(0xf9f6e466),
  2037. 28: uint32(0xcb38d078),
  2038. 29: uint32(0x85b1dbd1),
  2039. 30: uint32(0x562ac72a),
  2040. 31: uint32(0x18a3cc83),
  2041. 32: uint32(0x676d5e2c),
  2042. 33: uint32(0x29e45585),
  2043. 34: uint32(0xfa7f497e),
  2044. 35: uint32(0xb4f642d7),
  2045. 36: uint32(0x863876c9),
  2046. 37: uint32(0xc8b17d60),
  2047. 38: uint32(0x1b2a619b),
  2048. 39: uint32(0x55a36a32),
  2049. 40: uint32(0x7eb609a7),
  2050. 41: uint32(0x303f020e),
  2051. 42: uint32(0xe3a41ef5),
  2052. 43: uint32(0xad2d155c),
  2053. 44: uint32(0x9fe32142),
  2054. 45: uint32(0xd16a2aeb),
  2055. 46: uint32(0x02f13610),
  2056. 47: uint32(0x4c783db9),
  2057. 48: uint32(0x54dbf13a),
  2058. 49: uint32(0x1a52fa93),
  2059. 50: uint32(0xc9c9e668),
  2060. 51: uint32(0x8740edc1),
  2061. 52: uint32(0xb58ed9df),
  2062. 53: uint32(0xfb07d276),
  2063. 54: uint32(0x289cce8d),
  2064. 55: uint32(0x6615c524),
  2065. 56: uint32(0x4d00a6b1),
  2066. 57: uint32(0x0389ad18),
  2067. 58: uint32(0xd012b1e3),
  2068. 59: uint32(0x9e9bba4a),
  2069. 60: uint32(0xac558e54),
  2070. 61: uint32(0xe2dc85fd),
  2071. 62: uint32(0x31479906),
  2072. 63: uint32(0x7fce92af),
  2073. 64: uint32(0xcedabc58),
  2074. 65: uint32(0x8053b7f1),
  2075. 66: uint32(0x53c8ab0a),
  2076. 67: uint32(0x1d41a0a3),
  2077. 68: uint32(0x2f8f94bd),
  2078. 69: uint32(0x61069f14),
  2079. 70: uint32(0xb29d83ef),
  2080. 71: uint32(0xfc148846),
  2081. 72: uint32(0xd701ebd3),
  2082. 73: uint32(0x9988e07a),
  2083. 74: uint32(0x4a13fc81),
  2084. 75: uint32(0x049af728),
  2085. 76: uint32(0x3654c336),
  2086. 77: uint32(0x78ddc89f),
  2087. 78: uint32(0xab46d464),
  2088. 79: uint32(0xe5cfdfcd),
  2089. 80: uint32(0xfd6c134e),
  2090. 81: uint32(0xb3e518e7),
  2091. 82: uint32(0x607e041c),
  2092. 83: uint32(0x2ef70fb5),
  2093. 84: uint32(0x1c393bab),
  2094. 85: uint32(0x52b03002),
  2095. 86: uint32(0x812b2cf9),
  2096. 87: uint32(0xcfa22750),
  2097. 88: uint32(0xe4b744c5),
  2098. 89: uint32(0xaa3e4f6c),
  2099. 90: uint32(0x79a55397),
  2100. 91: uint32(0x372c583e),
  2101. 92: uint32(0x05e26c20),
  2102. 93: uint32(0x4b6b6789),
  2103. 94: uint32(0x98f07b72),
  2104. 95: uint32(0xd67970db),
  2105. 96: uint32(0xa9b7e274),
  2106. 97: uint32(0xe73ee9dd),
  2107. 98: uint32(0x34a5f526),
  2108. 99: uint32(0x7a2cfe8f),
  2109. 100: uint32(0x48e2ca91),
  2110. 101: uint32(0x066bc138),
  2111. 102: uint32(0xd5f0ddc3),
  2112. 103: uint32(0x9b79d66a),
  2113. 104: uint32(0xb06cb5ff),
  2114. 105: uint32(0xfee5be56),
  2115. 106: uint32(0x2d7ea2ad),
  2116. 107: uint32(0x63f7a904),
  2117. 108: uint32(0x51399d1a),
  2118. 109: uint32(0x1fb096b3),
  2119. 110: uint32(0xcc2b8a48),
  2120. 111: uint32(0x82a281e1),
  2121. 112: uint32(0x9a014d62),
  2122. 113: uint32(0xd48846cb),
  2123. 114: uint32(0x07135a30),
  2124. 115: uint32(0x499a5199),
  2125. 116: uint32(0x7b546587),
  2126. 117: uint32(0x35dd6e2e),
  2127. 118: uint32(0xe64672d5),
  2128. 119: uint32(0xa8cf797c),
  2129. 120: uint32(0x83da1ae9),
  2130. 121: uint32(0xcd531140),
  2131. 122: uint32(0x1ec80dbb),
  2132. 123: uint32(0x50410612),
  2133. 124: uint32(0x628f320c),
  2134. 125: uint32(0x2c0639a5),
  2135. 126: uint32(0xff9d255e),
  2136. 127: uint32(0xb1142ef7),
  2137. 128: uint32(0x46c47ef1),
  2138. 129: uint32(0x084d7558),
  2139. 130: uint32(0xdbd669a3),
  2140. 131: uint32(0x955f620a),
  2141. 132: uint32(0xa7915614),
  2142. 133: uint32(0xe9185dbd),
  2143. 134: uint32(0x3a834146),
  2144. 135: uint32(0x740a4aef),
  2145. 136: uint32(0x5f1f297a),
  2146. 137: uint32(0x119622d3),
  2147. 138: uint32(0xc20d3e28),
  2148. 139: uint32(0x8c843581),
  2149. 140: uint32(0xbe4a019f),
  2150. 141: uint32(0xf0c30a36),
  2151. 142: uint32(0x235816cd),
  2152. 143: uint32(0x6dd11d64),
  2153. 144: uint32(0x7572d1e7),
  2154. 145: uint32(0x3bfbda4e),
  2155. 146: uint32(0xe860c6b5),
  2156. 147: uint32(0xa6e9cd1c),
  2157. 148: uint32(0x9427f902),
  2158. 149: uint32(0xdaaef2ab),
  2159. 150: uint32(0x0935ee50),
  2160. 151: uint32(0x47bce5f9),
  2161. 152: uint32(0x6ca9866c),
  2162. 153: uint32(0x22208dc5),
  2163. 154: uint32(0xf1bb913e),
  2164. 155: uint32(0xbf329a97),
  2165. 156: uint32(0x8dfcae89),
  2166. 157: uint32(0xc375a520),
  2167. 158: uint32(0x10eeb9db),
  2168. 159: uint32(0x5e67b272),
  2169. 160: uint32(0x21a920dd),
  2170. 161: uint32(0x6f202b74),
  2171. 162: uint32(0xbcbb378f),
  2172. 163: uint32(0xf2323c26),
  2173. 164: uint32(0xc0fc0838),
  2174. 165: uint32(0x8e750391),
  2175. 166: uint32(0x5dee1f6a),
  2176. 167: uint32(0x136714c3),
  2177. 168: uint32(0x38727756),
  2178. 169: uint32(0x76fb7cff),
  2179. 170: uint32(0xa5606004),
  2180. 171: uint32(0xebe96bad),
  2181. 172: uint32(0xd9275fb3),
  2182. 173: uint32(0x97ae541a),
  2183. 174: uint32(0x443548e1),
  2184. 175: uint32(0x0abc4348),
  2185. 176: uint32(0x121f8fcb),
  2186. 177: uint32(0x5c968462),
  2187. 178: uint32(0x8f0d9899),
  2188. 179: uint32(0xc1849330),
  2189. 180: uint32(0xf34aa72e),
  2190. 181: uint32(0xbdc3ac87),
  2191. 182: uint32(0x6e58b07c),
  2192. 183: uint32(0x20d1bbd5),
  2193. 184: uint32(0x0bc4d840),
  2194. 185: uint32(0x454dd3e9),
  2195. 186: uint32(0x96d6cf12),
  2196. 187: uint32(0xd85fc4bb),
  2197. 188: uint32(0xea91f0a5),
  2198. 189: uint32(0xa418fb0c),
  2199. 190: uint32(0x7783e7f7),
  2200. 191: uint32(0x390aec5e),
  2201. 192: uint32(0x881ec2a9),
  2202. 193: uint32(0xc697c900),
  2203. 194: uint32(0x150cd5fb),
  2204. 195: uint32(0x5b85de52),
  2205. 196: uint32(0x694bea4c),
  2206. 197: uint32(0x27c2e1e5),
  2207. 198: uint32(0xf459fd1e),
  2208. 199: uint32(0xbad0f6b7),
  2209. 200: uint32(0x91c59522),
  2210. 201: uint32(0xdf4c9e8b),
  2211. 202: uint32(0x0cd78270),
  2212. 203: uint32(0x425e89d9),
  2213. 204: uint32(0x7090bdc7),
  2214. 205: uint32(0x3e19b66e),
  2215. 206: uint32(0xed82aa95),
  2216. 207: uint32(0xa30ba13c),
  2217. 208: uint32(0xbba86dbf),
  2218. 209: uint32(0xf5216616),
  2219. 210: uint32(0x26ba7aed),
  2220. 211: uint32(0x68337144),
  2221. 212: uint32(0x5afd455a),
  2222. 213: uint32(0x14744ef3),
  2223. 214: uint32(0xc7ef5208),
  2224. 215: uint32(0x896659a1),
  2225. 216: uint32(0xa2733a34),
  2226. 217: uint32(0xecfa319d),
  2227. 218: uint32(0x3f612d66),
  2228. 219: uint32(0x71e826cf),
  2229. 220: uint32(0x432612d1),
  2230. 221: uint32(0x0daf1978),
  2231. 222: uint32(0xde340583),
  2232. 223: uint32(0x90bd0e2a),
  2233. 224: uint32(0xef739c85),
  2234. 225: uint32(0xa1fa972c),
  2235. 226: uint32(0x72618bd7),
  2236. 227: uint32(0x3ce8807e),
  2237. 228: uint32(0x0e26b460),
  2238. 229: uint32(0x40afbfc9),
  2239. 230: uint32(0x9334a332),
  2240. 231: uint32(0xddbda89b),
  2241. 232: uint32(0xf6a8cb0e),
  2242. 233: uint32(0xb821c0a7),
  2243. 234: uint32(0x6bbadc5c),
  2244. 235: uint32(0x2533d7f5),
  2245. 236: uint32(0x17fde3eb),
  2246. 237: uint32(0x5974e842),
  2247. 238: uint32(0x8aeff4b9),
  2248. 239: uint32(0xc466ff10),
  2249. 240: uint32(0xdcc53393),
  2250. 241: uint32(0x924c383a),
  2251. 242: uint32(0x41d724c1),
  2252. 243: uint32(0x0f5e2f68),
  2253. 244: uint32(0x3d901b76),
  2254. 245: uint32(0x731910df),
  2255. 246: uint32(0xa0820c24),
  2256. 247: uint32(0xee0b078d),
  2257. 248: uint32(0xc51e6418),
  2258. 249: uint32(0x8b976fb1),
  2259. 250: uint32(0x580c734a),
  2260. 251: uint32(0x168578e3),
  2261. 252: uint32(0x244b4cfd),
  2262. 253: uint32(0x6ac24754),
  2263. 254: uint32(0xb9595baf),
  2264. 255: uint32(0xf7d05006),
  2265. },
  2266. 2: {
  2267. 1: uint32(0x8d88fde2),
  2268. 2: uint32(0xc060fd85),
  2269. 3: uint32(0x4de80067),
  2270. 4: uint32(0x5bb0fd4b),
  2271. 5: uint32(0xd63800a9),
  2272. 6: uint32(0x9bd000ce),
  2273. 7: uint32(0x1658fd2c),
  2274. 8: uint32(0xb761fa96),
  2275. 9: uint32(0x3ae90774),
  2276. 10: uint32(0x77010713),
  2277. 11: uint32(0xfa89faf1),
  2278. 12: uint32(0xecd107dd),
  2279. 13: uint32(0x6159fa3f),
  2280. 14: uint32(0x2cb1fa58),
  2281. 15: uint32(0xa13907ba),
  2282. 16: uint32(0xb5b2f36d),
  2283. 17: uint32(0x383a0e8f),
  2284. 18: uint32(0x75d20ee8),
  2285. 19: uint32(0xf85af30a),
  2286. 20: uint32(0xee020e26),
  2287. 21: uint32(0x638af3c4),
  2288. 22: uint32(0x2e62f3a3),
  2289. 23: uint32(0xa3ea0e41),
  2290. 24: uint32(0x02d309fb),
  2291. 25: uint32(0x8f5bf419),
  2292. 26: uint32(0xc2b3f47e),
  2293. 27: uint32(0x4f3b099c),
  2294. 28: uint32(0x5963f4b0),
  2295. 29: uint32(0xd4eb0952),
  2296. 30: uint32(0x99030935),
  2297. 31: uint32(0x148bf4d7),
  2298. 32: uint32(0xb014e09b),
  2299. 33: uint32(0x3d9c1d79),
  2300. 34: uint32(0x70741d1e),
  2301. 35: uint32(0xfdfce0fc),
  2302. 36: uint32(0xeba41dd0),
  2303. 37: uint32(0x662ce032),
  2304. 38: uint32(0x2bc4e055),
  2305. 39: uint32(0xa64c1db7),
  2306. 40: uint32(0x07751a0d),
  2307. 41: uint32(0x8afde7ef),
  2308. 42: uint32(0xc715e788),
  2309. 43: uint32(0x4a9d1a6a),
  2310. 44: uint32(0x5cc5e746),
  2311. 45: uint32(0xd14d1aa4),
  2312. 46: uint32(0x9ca51ac3),
  2313. 47: uint32(0x112de721),
  2314. 48: uint32(0x05a613f6),
  2315. 49: uint32(0x882eee14),
  2316. 50: uint32(0xc5c6ee73),
  2317. 51: uint32(0x484e1391),
  2318. 52: uint32(0x5e16eebd),
  2319. 53: uint32(0xd39e135f),
  2320. 54: uint32(0x9e761338),
  2321. 55: uint32(0x13feeeda),
  2322. 56: uint32(0xb2c7e960),
  2323. 57: uint32(0x3f4f1482),
  2324. 58: uint32(0x72a714e5),
  2325. 59: uint32(0xff2fe907),
  2326. 60: uint32(0xe977142b),
  2327. 61: uint32(0x64ffe9c9),
  2328. 62: uint32(0x2917e9ae),
  2329. 63: uint32(0xa49f144c),
  2330. 64: uint32(0xbb58c777),
  2331. 65: uint32(0x36d03a95),
  2332. 66: uint32(0x7b383af2),
  2333. 67: uint32(0xf6b0c710),
  2334. 68: uint32(0xe0e83a3c),
  2335. 69: uint32(0x6d60c7de),
  2336. 70: uint32(0x2088c7b9),
  2337. 71: uint32(0xad003a5b),
  2338. 72: uint32(0x0c393de1),
  2339. 73: uint32(0x81b1c003),
  2340. 74: uint32(0xcc59c064),
  2341. 75: uint32(0x41d13d86),
  2342. 76: uint32(0x5789c0aa),
  2343. 77: uint32(0xda013d48),
  2344. 78: uint32(0x97e93d2f),
  2345. 79: uint32(0x1a61c0cd),
  2346. 80: uint32(0x0eea341a),
  2347. 81: uint32(0x8362c9f8),
  2348. 82: uint32(0xce8ac99f),
  2349. 83: uint32(0x4302347d),
  2350. 84: uint32(0x555ac951),
  2351. 85: uint32(0xd8d234b3),
  2352. 86: uint32(0x953a34d4),
  2353. 87: uint32(0x18b2c936),
  2354. 88: uint32(0xb98bce8c),
  2355. 89: uint32(0x3403336e),
  2356. 90: uint32(0x79eb3309),
  2357. 91: uint32(0xf463ceeb),
  2358. 92: uint32(0xe23b33c7),
  2359. 93: uint32(0x6fb3ce25),
  2360. 94: uint32(0x225bce42),
  2361. 95: uint32(0xafd333a0),
  2362. 96: uint32(0x0b4c27ec),
  2363. 97: uint32(0x86c4da0e),
  2364. 98: uint32(0xcb2cda69),
  2365. 99: uint32(0x46a4278b),
  2366. 100: uint32(0x50fcdaa7),
  2367. 101: uint32(0xdd742745),
  2368. 102: uint32(0x909c2722),
  2369. 103: uint32(0x1d14dac0),
  2370. 104: uint32(0xbc2ddd7a),
  2371. 105: uint32(0x31a52098),
  2372. 106: uint32(0x7c4d20ff),
  2373. 107: uint32(0xf1c5dd1d),
  2374. 108: uint32(0xe79d2031),
  2375. 109: uint32(0x6a15ddd3),
  2376. 110: uint32(0x27fdddb4),
  2377. 111: uint32(0xaa752056),
  2378. 112: uint32(0xbefed481),
  2379. 113: uint32(0x33762963),
  2380. 114: uint32(0x7e9e2904),
  2381. 115: uint32(0xf316d4e6),
  2382. 116: uint32(0xe54e29ca),
  2383. 117: uint32(0x68c6d428),
  2384. 118: uint32(0x252ed44f),
  2385. 119: uint32(0xa8a629ad),
  2386. 120: uint32(0x099f2e17),
  2387. 121: uint32(0x8417d3f5),
  2388. 122: uint32(0xc9ffd392),
  2389. 123: uint32(0x44772e70),
  2390. 124: uint32(0x522fd35c),
  2391. 125: uint32(0xdfa72ebe),
  2392. 126: uint32(0x924f2ed9),
  2393. 127: uint32(0x1fc7d33b),
  2394. 128: uint32(0xadc088af),
  2395. 129: uint32(0x2048754d),
  2396. 130: uint32(0x6da0752a),
  2397. 131: uint32(0xe02888c8),
  2398. 132: uint32(0xf67075e4),
  2399. 133: uint32(0x7bf88806),
  2400. 134: uint32(0x36108861),
  2401. 135: uint32(0xbb987583),
  2402. 136: uint32(0x1aa17239),
  2403. 137: uint32(0x97298fdb),
  2404. 138: uint32(0xdac18fbc),
  2405. 139: uint32(0x5749725e),
  2406. 140: uint32(0x41118f72),
  2407. 141: uint32(0xcc997290),
  2408. 142: uint32(0x817172f7),
  2409. 143: uint32(0x0cf98f15),
  2410. 144: uint32(0x18727bc2),
  2411. 145: uint32(0x95fa8620),
  2412. 146: uint32(0xd8128647),
  2413. 147: uint32(0x559a7ba5),
  2414. 148: uint32(0x43c28689),
  2415. 149: uint32(0xce4a7b6b),
  2416. 150: uint32(0x83a27b0c),
  2417. 151: uint32(0x0e2a86ee),
  2418. 152: uint32(0xaf138154),
  2419. 153: uint32(0x229b7cb6),
  2420. 154: uint32(0x6f737cd1),
  2421. 155: uint32(0xe2fb8133),
  2422. 156: uint32(0xf4a37c1f),
  2423. 157: uint32(0x792b81fd),
  2424. 158: uint32(0x34c3819a),
  2425. 159: uint32(0xb94b7c78),
  2426. 160: uint32(0x1dd46834),
  2427. 161: uint32(0x905c95d6),
  2428. 162: uint32(0xddb495b1),
  2429. 163: uint32(0x503c6853),
  2430. 164: uint32(0x4664957f),
  2431. 165: uint32(0xcbec689d),
  2432. 166: uint32(0x860468fa),
  2433. 167: uint32(0x0b8c9518),
  2434. 168: uint32(0xaab592a2),
  2435. 169: uint32(0x273d6f40),
  2436. 170: uint32(0x6ad56f27),
  2437. 171: uint32(0xe75d92c5),
  2438. 172: uint32(0xf1056fe9),
  2439. 173: uint32(0x7c8d920b),
  2440. 174: uint32(0x3165926c),
  2441. 175: uint32(0xbced6f8e),
  2442. 176: uint32(0xa8669b59),
  2443. 177: uint32(0x25ee66bb),
  2444. 178: uint32(0x680666dc),
  2445. 179: uint32(0xe58e9b3e),
  2446. 180: uint32(0xf3d66612),
  2447. 181: uint32(0x7e5e9bf0),
  2448. 182: uint32(0x33b69b97),
  2449. 183: uint32(0xbe3e6675),
  2450. 184: uint32(0x1f0761cf),
  2451. 185: uint32(0x928f9c2d),
  2452. 186: uint32(0xdf679c4a),
  2453. 187: uint32(0x52ef61a8),
  2454. 188: uint32(0x44b79c84),
  2455. 189: uint32(0xc93f6166),
  2456. 190: uint32(0x84d76101),
  2457. 191: uint32(0x095f9ce3),
  2458. 192: uint32(0x16984fd8),
  2459. 193: uint32(0x9b10b23a),
  2460. 194: uint32(0xd6f8b25d),
  2461. 195: uint32(0x5b704fbf),
  2462. 196: uint32(0x4d28b293),
  2463. 197: uint32(0xc0a04f71),
  2464. 198: uint32(0x8d484f16),
  2465. 199: uint32(0x00c0b2f4),
  2466. 200: uint32(0xa1f9b54e),
  2467. 201: uint32(0x2c7148ac),
  2468. 202: uint32(0x619948cb),
  2469. 203: uint32(0xec11b529),
  2470. 204: uint32(0xfa494805),
  2471. 205: uint32(0x77c1b5e7),
  2472. 206: uint32(0x3a29b580),
  2473. 207: uint32(0xb7a14862),
  2474. 208: uint32(0xa32abcb5),
  2475. 209: uint32(0x2ea24157),
  2476. 210: uint32(0x634a4130),
  2477. 211: uint32(0xeec2bcd2),
  2478. 212: uint32(0xf89a41fe),
  2479. 213: uint32(0x7512bc1c),
  2480. 214: uint32(0x38fabc7b),
  2481. 215: uint32(0xb5724199),
  2482. 216: uint32(0x144b4623),
  2483. 217: uint32(0x99c3bbc1),
  2484. 218: uint32(0xd42bbba6),
  2485. 219: uint32(0x59a34644),
  2486. 220: uint32(0x4ffbbb68),
  2487. 221: uint32(0xc273468a),
  2488. 222: uint32(0x8f9b46ed),
  2489. 223: uint32(0x0213bb0f),
  2490. 224: uint32(0xa68caf43),
  2491. 225: uint32(0x2b0452a1),
  2492. 226: uint32(0x66ec52c6),
  2493. 227: uint32(0xeb64af24),
  2494. 228: uint32(0xfd3c5208),
  2495. 229: uint32(0x70b4afea),
  2496. 230: uint32(0x3d5caf8d),
  2497. 231: uint32(0xb0d4526f),
  2498. 232: uint32(0x11ed55d5),
  2499. 233: uint32(0x9c65a837),
  2500. 234: uint32(0xd18da850),
  2501. 235: uint32(0x5c0555b2),
  2502. 236: uint32(0x4a5da89e),
  2503. 237: uint32(0xc7d5557c),
  2504. 238: uint32(0x8a3d551b),
  2505. 239: uint32(0x07b5a8f9),
  2506. 240: uint32(0x133e5c2e),
  2507. 241: uint32(0x9eb6a1cc),
  2508. 242: uint32(0xd35ea1ab),
  2509. 243: uint32(0x5ed65c49),
  2510. 244: uint32(0x488ea165),
  2511. 245: uint32(0xc5065c87),
  2512. 246: uint32(0x88ee5ce0),
  2513. 247: uint32(0x0566a102),
  2514. 248: uint32(0xa45fa6b8),
  2515. 249: uint32(0x29d75b5a),
  2516. 250: uint32(0x643f5b3d),
  2517. 251: uint32(0xe9b7a6df),
  2518. 252: uint32(0xffef5bf3),
  2519. 253: uint32(0x7267a611),
  2520. 254: uint32(0x3f8fa676),
  2521. 255: uint32(0xb2075b94),
  2522. },
  2523. 3: {
  2524. 1: uint32(0x80f0171f),
  2525. 2: uint32(0xda91287f),
  2526. 3: uint32(0x5a613f60),
  2527. 4: uint32(0x6e5356bf),
  2528. 5: uint32(0xeea341a0),
  2529. 6: uint32(0xb4c27ec0),
  2530. 7: uint32(0x343269df),
  2531. 8: uint32(0xdca6ad7e),
  2532. 9: uint32(0x5c56ba61),
  2533. 10: uint32(0x06378501),
  2534. 11: uint32(0x86c7921e),
  2535. 12: uint32(0xb2f5fbc1),
  2536. 13: uint32(0x3205ecde),
  2537. 14: uint32(0x6864d3be),
  2538. 15: uint32(0xe894c4a1),
  2539. 16: uint32(0x623c5cbd),
  2540. 17: uint32(0xe2cc4ba2),
  2541. 18: uint32(0xb8ad74c2),
  2542. 19: uint32(0x385d63dd),
  2543. 20: uint32(0x0c6f0a02),
  2544. 21: uint32(0x8c9f1d1d),
  2545. 22: uint32(0xd6fe227d),
  2546. 23: uint32(0x560e3562),
  2547. 24: uint32(0xbe9af1c3),
  2548. 25: uint32(0x3e6ae6dc),
  2549. 26: uint32(0x640bd9bc),
  2550. 27: uint32(0xe4fbcea3),
  2551. 28: uint32(0xd0c9a77c),
  2552. 29: uint32(0x5039b063),
  2553. 30: uint32(0x0a588f03),
  2554. 31: uint32(0x8aa8981c),
  2555. 32: uint32(0xc478b97a),
  2556. 33: uint32(0x4488ae65),
  2557. 34: uint32(0x1ee99105),
  2558. 35: uint32(0x9e19861a),
  2559. 36: uint32(0xaa2befc5),
  2560. 37: uint32(0x2adbf8da),
  2561. 38: uint32(0x70bac7ba),
  2562. 39: uint32(0xf04ad0a5),
  2563. 40: uint32(0x18de1404),
  2564. 41: uint32(0x982e031b),
  2565. 42: uint32(0xc24f3c7b),
  2566. 43: uint32(0x42bf2b64),
  2567. 44: uint32(0x768d42bb),
  2568. 45: uint32(0xf67d55a4),
  2569. 46: uint32(0xac1c6ac4),
  2570. 47: uint32(0x2cec7ddb),
  2571. 48: uint32(0xa644e5c7),
  2572. 49: uint32(0x26b4f2d8),
  2573. 50: uint32(0x7cd5cdb8),
  2574. 51: uint32(0xfc25daa7),
  2575. 52: uint32(0xc817b378),
  2576. 53: uint32(0x48e7a467),
  2577. 54: uint32(0x12869b07),
  2578. 55: uint32(0x92768c18),
  2579. 56: uint32(0x7ae248b9),
  2580. 57: uint32(0xfa125fa6),
  2581. 58: uint32(0xa07360c6),
  2582. 59: uint32(0x208377d9),
  2583. 60: uint32(0x14b11e06),
  2584. 61: uint32(0x94410919),
  2585. 62: uint32(0xce203679),
  2586. 63: uint32(0x4ed02166),
  2587. 64: uint32(0x538074b5),
  2588. 65: uint32(0xd37063aa),
  2589. 66: uint32(0x89115cca),
  2590. 67: uint32(0x09e14bd5),
  2591. 68: uint32(0x3dd3220a),
  2592. 69: uint32(0xbd233515),
  2593. 70: uint32(0xe7420a75),
  2594. 71: uint32(0x67b21d6a),
  2595. 72: uint32(0x8f26d9cb),
  2596. 73: uint32(0x0fd6ced4),
  2597. 74: uint32(0x55b7f1b4),
  2598. 75: uint32(0xd547e6ab),
  2599. 76: uint32(0xe1758f74),
  2600. 77: uint32(0x6185986b),
  2601. 78: uint32(0x3be4a70b),
  2602. 79: uint32(0xbb14b014),
  2603. 80: uint32(0x31bc2808),
  2604. 81: uint32(0xb14c3f17),
  2605. 82: uint32(0xeb2d0077),
  2606. 83: uint32(0x6bdd1768),
  2607. 84: uint32(0x5fef7eb7),
  2608. 85: uint32(0xdf1f69a8),
  2609. 86: uint32(0x857e56c8),
  2610. 87: uint32(0x058e41d7),
  2611. 88: uint32(0xed1a8576),
  2612. 89: uint32(0x6dea9269),
  2613. 90: uint32(0x378bad09),
  2614. 91: uint32(0xb77bba16),
  2615. 92: uint32(0x8349d3c9),
  2616. 93: uint32(0x03b9c4d6),
  2617. 94: uint32(0x59d8fbb6),
  2618. 95: uint32(0xd928eca9),
  2619. 96: uint32(0x97f8cdcf),
  2620. 97: uint32(0x1708dad0),
  2621. 98: uint32(0x4d69e5b0),
  2622. 99: uint32(0xcd99f2af),
  2623. 100: uint32(0xf9ab9b70),
  2624. 101: uint32(0x795b8c6f),
  2625. 102: uint32(0x233ab30f),
  2626. 103: uint32(0xa3caa410),
  2627. 104: uint32(0x4b5e60b1),
  2628. 105: uint32(0xcbae77ae),
  2629. 106: uint32(0x91cf48ce),
  2630. 107: uint32(0x113f5fd1),
  2631. 108: uint32(0x250d360e),
  2632. 109: uint32(0xa5fd2111),
  2633. 110: uint32(0xff9c1e71),
  2634. 111: uint32(0x7f6c096e),
  2635. 112: uint32(0xf5c49172),
  2636. 113: uint32(0x7534866d),
  2637. 114: uint32(0x2f55b90d),
  2638. 115: uint32(0xafa5ae12),
  2639. 116: uint32(0x9b97c7cd),
  2640. 117: uint32(0x1b67d0d2),
  2641. 118: uint32(0x4106efb2),
  2642. 119: uint32(0xc1f6f8ad),
  2643. 120: uint32(0x29623c0c),
  2644. 121: uint32(0xa9922b13),
  2645. 122: uint32(0xf3f31473),
  2646. 123: uint32(0x7303036c),
  2647. 124: uint32(0x47316ab3),
  2648. 125: uint32(0xc7c17dac),
  2649. 126: uint32(0x9da042cc),
  2650. 127: uint32(0x1d5055d3),
  2651. 128: uint32(0xa700e96a),
  2652. 129: uint32(0x27f0fe75),
  2653. 130: uint32(0x7d91c115),
  2654. 131: uint32(0xfd61d60a),
  2655. 132: uint32(0xc953bfd5),
  2656. 133: uint32(0x49a3a8ca),
  2657. 134: uint32(0x13c297aa),
  2658. 135: uint32(0x933280b5),
  2659. 136: uint32(0x7ba64414),
  2660. 137: uint32(0xfb56530b),
  2661. 138: uint32(0xa1376c6b),
  2662. 139: uint32(0x21c77b74),
  2663. 140: uint32(0x15f512ab),
  2664. 141: uint32(0x950505b4),
  2665. 142: uint32(0xcf643ad4),
  2666. 143: uint32(0x4f942dcb),
  2667. 144: uint32(0xc53cb5d7),
  2668. 145: uint32(0x45cca2c8),
  2669. 146: uint32(0x1fad9da8),
  2670. 147: uint32(0x9f5d8ab7),
  2671. 148: uint32(0xab6fe368),
  2672. 149: uint32(0x2b9ff477),
  2673. 150: uint32(0x71fecb17),
  2674. 151: uint32(0xf10edc08),
  2675. 152: uint32(0x199a18a9),
  2676. 153: uint32(0x996a0fb6),
  2677. 154: uint32(0xc30b30d6),
  2678. 155: uint32(0x43fb27c9),
  2679. 156: uint32(0x77c94e16),
  2680. 157: uint32(0xf7395909),
  2681. 158: uint32(0xad586669),
  2682. 159: uint32(0x2da87176),
  2683. 160: uint32(0x63785010),
  2684. 161: uint32(0xe388470f),
  2685. 162: uint32(0xb9e9786f),
  2686. 163: uint32(0x39196f70),
  2687. 164: uint32(0x0d2b06af),
  2688. 165: uint32(0x8ddb11b0),
  2689. 166: uint32(0xd7ba2ed0),
  2690. 167: uint32(0x574a39cf),
  2691. 168: uint32(0xbfdefd6e),
  2692. 169: uint32(0x3f2eea71),
  2693. 170: uint32(0x654fd511),
  2694. 171: uint32(0xe5bfc20e),
  2695. 172: uint32(0xd18dabd1),
  2696. 173: uint32(0x517dbcce),
  2697. 174: uint32(0x0b1c83ae),
  2698. 175: uint32(0x8bec94b1),
  2699. 176: uint32(0x01440cad),
  2700. 177: uint32(0x81b41bb2),
  2701. 178: uint32(0xdbd524d2),
  2702. 179: uint32(0x5b2533cd),
  2703. 180: uint32(0x6f175a12),
  2704. 181: uint32(0xefe74d0d),
  2705. 182: uint32(0xb586726d),
  2706. 183: uint32(0x35766572),
  2707. 184: uint32(0xdde2a1d3),
  2708. 185: uint32(0x5d12b6cc),
  2709. 186: uint32(0x077389ac),
  2710. 187: uint32(0x87839eb3),
  2711. 188: uint32(0xb3b1f76c),
  2712. 189: uint32(0x3341e073),
  2713. 190: uint32(0x6920df13),
  2714. 191: uint32(0xe9d0c80c),
  2715. 192: uint32(0xf4809ddf),
  2716. 193: uint32(0x74708ac0),
  2717. 194: uint32(0x2e11b5a0),
  2718. 195: uint32(0xaee1a2bf),
  2719. 196: uint32(0x9ad3cb60),
  2720. 197: uint32(0x1a23dc7f),
  2721. 198: uint32(0x4042e31f),
  2722. 199: uint32(0xc0b2f400),
  2723. 200: uint32(0x282630a1),
  2724. 201: uint32(0xa8d627be),
  2725. 202: uint32(0xf2b718de),
  2726. 203: uint32(0x72470fc1),
  2727. 204: uint32(0x4675661e),
  2728. 205: uint32(0xc6857101),
  2729. 206: uint32(0x9ce44e61),
  2730. 207: uint32(0x1c14597e),
  2731. 208: uint32(0x96bcc162),
  2732. 209: uint32(0x164cd67d),
  2733. 210: uint32(0x4c2de91d),
  2734. 211: uint32(0xccddfe02),
  2735. 212: uint32(0xf8ef97dd),
  2736. 213: uint32(0x781f80c2),
  2737. 214: uint32(0x227ebfa2),
  2738. 215: uint32(0xa28ea8bd),
  2739. 216: uint32(0x4a1a6c1c),
  2740. 217: uint32(0xcaea7b03),
  2741. 218: uint32(0x908b4463),
  2742. 219: uint32(0x107b537c),
  2743. 220: uint32(0x24493aa3),
  2744. 221: uint32(0xa4b92dbc),
  2745. 222: uint32(0xfed812dc),
  2746. 223: uint32(0x7e2805c3),
  2747. 224: uint32(0x30f824a5),
  2748. 225: uint32(0xb00833ba),
  2749. 226: uint32(0xea690cda),
  2750. 227: uint32(0x6a991bc5),
  2751. 228: uint32(0x5eab721a),
  2752. 229: uint32(0xde5b6505),
  2753. 230: uint32(0x843a5a65),
  2754. 231: uint32(0x04ca4d7a),
  2755. 232: uint32(0xec5e89db),
  2756. 233: uint32(0x6cae9ec4),
  2757. 234: uint32(0x36cfa1a4),
  2758. 235: uint32(0xb63fb6bb),
  2759. 236: uint32(0x820ddf64),
  2760. 237: uint32(0x02fdc87b),
  2761. 238: uint32(0x589cf71b),
  2762. 239: uint32(0xd86ce004),
  2763. 240: uint32(0x52c47818),
  2764. 241: uint32(0xd2346f07),
  2765. 242: uint32(0x88555067),
  2766. 243: uint32(0x08a54778),
  2767. 244: uint32(0x3c972ea7),
  2768. 245: uint32(0xbc6739b8),
  2769. 246: uint32(0xe60606d8),
  2770. 247: uint32(0x66f611c7),
  2771. 248: uint32(0x8e62d566),
  2772. 249: uint32(0x0e92c279),
  2773. 250: uint32(0x54f3fd19),
  2774. 251: uint32(0xd403ea06),
  2775. 252: uint32(0xe03183d9),
  2776. 253: uint32(0x60c194c6),
  2777. 254: uint32(0x3aa0aba6),
  2778. 255: uint32(0xba50bcb9),
  2779. },
  2780. 4: {
  2781. 1: uint32(0x9570d495),
  2782. 2: uint32(0xf190af6b),
  2783. 3: uint32(0x64e07bfe),
  2784. 4: uint32(0x38505897),
  2785. 5: uint32(0xad208c02),
  2786. 6: uint32(0xc9c0f7fc),
  2787. 7: uint32(0x5cb02369),
  2788. 8: uint32(0x70a0b12e),
  2789. 9: uint32(0xe5d065bb),
  2790. 10: uint32(0x81301e45),
  2791. 11: uint32(0x1440cad0),
  2792. 12: uint32(0x48f0e9b9),
  2793. 13: uint32(0xdd803d2c),
  2794. 14: uint32(0xb96046d2),
  2795. 15: uint32(0x2c109247),
  2796. 16: uint32(0xe141625c),
  2797. 17: uint32(0x7431b6c9),
  2798. 18: uint32(0x10d1cd37),
  2799. 19: uint32(0x85a119a2),
  2800. 20: uint32(0xd9113acb),
  2801. 21: uint32(0x4c61ee5e),
  2802. 22: uint32(0x288195a0),
  2803. 23: uint32(0xbdf14135),
  2804. 24: uint32(0x91e1d372),
  2805. 25: uint32(0x049107e7),
  2806. 26: uint32(0x60717c19),
  2807. 27: uint32(0xf501a88c),
  2808. 28: uint32(0xa9b18be5),
  2809. 29: uint32(0x3cc15f70),
  2810. 30: uint32(0x5821248e),
  2811. 31: uint32(0xcd51f01b),
  2812. 32: uint32(0x19f3c2f9),
  2813. 33: uint32(0x8c83166c),
  2814. 34: uint32(0xe8636d92),
  2815. 35: uint32(0x7d13b907),
  2816. 36: uint32(0x21a39a6e),
  2817. 37: uint32(0xb4d34efb),
  2818. 38: uint32(0xd0333505),
  2819. 39: uint32(0x4543e190),
  2820. 40: uint32(0x695373d7),
  2821. 41: uint32(0xfc23a742),
  2822. 42: uint32(0x98c3dcbc),
  2823. 43: uint32(0x0db30829),
  2824. 44: uint32(0x51032b40),
  2825. 45: uint32(0xc473ffd5),
  2826. 46: uint32(0xa093842b),
  2827. 47: uint32(0x35e350be),
  2828. 48: uint32(0xf8b2a0a5),
  2829. 49: uint32(0x6dc27430),
  2830. 50: uint32(0x09220fce),
  2831. 51: uint32(0x9c52db5b),
  2832. 52: uint32(0xc0e2f832),
  2833. 53: uint32(0x55922ca7),
  2834. 54: uint32(0x31725759),
  2835. 55: uint32(0xa40283cc),
  2836. 56: uint32(0x8812118b),
  2837. 57: uint32(0x1d62c51e),
  2838. 58: uint32(0x7982bee0),
  2839. 59: uint32(0xecf26a75),
  2840. 60: uint32(0xb042491c),
  2841. 61: uint32(0x25329d89),
  2842. 62: uint32(0x41d2e677),
  2843. 63: uint32(0xd4a232e2),
  2844. 64: uint32(0x33e785f2),
  2845. 65: uint32(0xa6975167),
  2846. 66: uint32(0xc2772a99),
  2847. 67: uint32(0x5707fe0c),
  2848. 68: uint32(0x0bb7dd65),
  2849. 69: uint32(0x9ec709f0),
  2850. 70: uint32(0xfa27720e),
  2851. 71: uint32(0x6f57a69b),
  2852. 72: uint32(0x434734dc),
  2853. 73: uint32(0xd637e049),
  2854. 74: uint32(0xb2d79bb7),
  2855. 75: uint32(0x27a74f22),
  2856. 76: uint32(0x7b176c4b),
  2857. 77: uint32(0xee67b8de),
  2858. 78: uint32(0x8a87c320),
  2859. 79: uint32(0x1ff717b5),
  2860. 80: uint32(0xd2a6e7ae),
  2861. 81: uint32(0x47d6333b),
  2862. 82: uint32(0x233648c5),
  2863. 83: uint32(0xb6469c50),
  2864. 84: uint32(0xeaf6bf39),
  2865. 85: uint32(0x7f866bac),
  2866. 86: uint32(0x1b661052),
  2867. 87: uint32(0x8e16c4c7),
  2868. 88: uint32(0xa2065680),
  2869. 89: uint32(0x37768215),
  2870. 90: uint32(0x5396f9eb),
  2871. 91: uint32(0xc6e62d7e),
  2872. 92: uint32(0x9a560e17),
  2873. 93: uint32(0x0f26da82),
  2874. 94: uint32(0x6bc6a17c),
  2875. 95: uint32(0xfeb675e9),
  2876. 96: uint32(0x2a14470b),
  2877. 97: uint32(0xbf64939e),
  2878. 98: uint32(0xdb84e860),
  2879. 99: uint32(0x4ef43cf5),
  2880. 100: uint32(0x12441f9c),
  2881. 101: uint32(0x8734cb09),
  2882. 102: uint32(0xe3d4b0f7),
  2883. 103: uint32(0x76a46462),
  2884. 104: uint32(0x5ab4f625),
  2885. 105: uint32(0xcfc422b0),
  2886. 106: uint32(0xab24594e),
  2887. 107: uint32(0x3e548ddb),
  2888. 108: uint32(0x62e4aeb2),
  2889. 109: uint32(0xf7947a27),
  2890. 110: uint32(0x937401d9),
  2891. 111: uint32(0x0604d54c),
  2892. 112: uint32(0xcb552557),
  2893. 113: uint32(0x5e25f1c2),
  2894. 114: uint32(0x3ac58a3c),
  2895. 115: uint32(0xafb55ea9),
  2896. 116: uint32(0xf3057dc0),
  2897. 117: uint32(0x6675a955),
  2898. 118: uint32(0x0295d2ab),
  2899. 119: uint32(0x97e5063e),
  2900. 120: uint32(0xbbf59479),
  2901. 121: uint32(0x2e8540ec),
  2902. 122: uint32(0x4a653b12),
  2903. 123: uint32(0xdf15ef87),
  2904. 124: uint32(0x83a5ccee),
  2905. 125: uint32(0x16d5187b),
  2906. 126: uint32(0x72356385),
  2907. 127: uint32(0xe745b710),
  2908. 128: uint32(0x67cf0be4),
  2909. 129: uint32(0xf2bfdf71),
  2910. 130: uint32(0x965fa48f),
  2911. 131: uint32(0x032f701a),
  2912. 132: uint32(0x5f9f5373),
  2913. 133: uint32(0xcaef87e6),
  2914. 134: uint32(0xae0ffc18),
  2915. 135: uint32(0x3b7f288d),
  2916. 136: uint32(0x176fbaca),
  2917. 137: uint32(0x821f6e5f),
  2918. 138: uint32(0xe6ff15a1),
  2919. 139: uint32(0x738fc134),
  2920. 140: uint32(0x2f3fe25d),
  2921. 141: uint32(0xba4f36c8),
  2922. 142: uint32(0xdeaf4d36),
  2923. 143: uint32(0x4bdf99a3),
  2924. 144: uint32(0x868e69b8),
  2925. 145: uint32(0x13febd2d),
  2926. 146: uint32(0x771ec6d3),
  2927. 147: uint32(0xe26e1246),
  2928. 148: uint32(0xbede312f),
  2929. 149: uint32(0x2baee5ba),
  2930. 150: uint32(0x4f4e9e44),
  2931. 151: uint32(0xda3e4ad1),
  2932. 152: uint32(0xf62ed896),
  2933. 153: uint32(0x635e0c03),
  2934. 154: uint32(0x07be77fd),
  2935. 155: uint32(0x92cea368),
  2936. 156: uint32(0xce7e8001),
  2937. 157: uint32(0x5b0e5494),
  2938. 158: uint32(0x3fee2f6a),
  2939. 159: uint32(0xaa9efbff),
  2940. 160: uint32(0x7e3cc91d),
  2941. 161: uint32(0xeb4c1d88),
  2942. 162: uint32(0x8fac6676),
  2943. 163: uint32(0x1adcb2e3),
  2944. 164: uint32(0x466c918a),
  2945. 165: uint32(0xd31c451f),
  2946. 166: uint32(0xb7fc3ee1),
  2947. 167: uint32(0x228cea74),
  2948. 168: uint32(0x0e9c7833),
  2949. 169: uint32(0x9becaca6),
  2950. 170: uint32(0xff0cd758),
  2951. 171: uint32(0x6a7c03cd),
  2952. 172: uint32(0x36cc20a4),
  2953. 173: uint32(0xa3bcf431),
  2954. 174: uint32(0xc75c8fcf),
  2955. 175: uint32(0x522c5b5a),
  2956. 176: uint32(0x9f7dab41),
  2957. 177: uint32(0x0a0d7fd4),
  2958. 178: uint32(0x6eed042a),
  2959. 179: uint32(0xfb9dd0bf),
  2960. 180: uint32(0xa72df3d6),
  2961. 181: uint32(0x325d2743),
  2962. 182: uint32(0x56bd5cbd),
  2963. 183: uint32(0xc3cd8828),
  2964. 184: uint32(0xefdd1a6f),
  2965. 185: uint32(0x7aadcefa),
  2966. 186: uint32(0x1e4db504),
  2967. 187: uint32(0x8b3d6191),
  2968. 188: uint32(0xd78d42f8),
  2969. 189: uint32(0x42fd966d),
  2970. 190: uint32(0x261ded93),
  2971. 191: uint32(0xb36d3906),
  2972. 192: uint32(0x54288e16),
  2973. 193: uint32(0xc1585a83),
  2974. 194: uint32(0xa5b8217d),
  2975. 195: uint32(0x30c8f5e8),
  2976. 196: uint32(0x6c78d681),
  2977. 197: uint32(0xf9080214),
  2978. 198: uint32(0x9de879ea),
  2979. 199: uint32(0x0898ad7f),
  2980. 200: uint32(0x24883f38),
  2981. 201: uint32(0xb1f8ebad),
  2982. 202: uint32(0xd5189053),
  2983. 203: uint32(0x406844c6),
  2984. 204: uint32(0x1cd867af),
  2985. 205: uint32(0x89a8b33a),
  2986. 206: uint32(0xed48c8c4),
  2987. 207: uint32(0x78381c51),
  2988. 208: uint32(0xb569ec4a),
  2989. 209: uint32(0x201938df),
  2990. 210: uint32(0x44f94321),
  2991. 211: uint32(0xd18997b4),
  2992. 212: uint32(0x8d39b4dd),
  2993. 213: uint32(0x18496048),
  2994. 214: uint32(0x7ca91bb6),
  2995. 215: uint32(0xe9d9cf23),
  2996. 216: uint32(0xc5c95d64),
  2997. 217: uint32(0x50b989f1),
  2998. 218: uint32(0x3459f20f),
  2999. 219: uint32(0xa129269a),
  3000. 220: uint32(0xfd9905f3),
  3001. 221: uint32(0x68e9d166),
  3002. 222: uint32(0x0c09aa98),
  3003. 223: uint32(0x99797e0d),
  3004. 224: uint32(0x4ddb4cef),
  3005. 225: uint32(0xd8ab987a),
  3006. 226: uint32(0xbc4be384),
  3007. 227: uint32(0x293b3711),
  3008. 228: uint32(0x758b1478),
  3009. 229: uint32(0xe0fbc0ed),
  3010. 230: uint32(0x841bbb13),
  3011. 231: uint32(0x116b6f86),
  3012. 232: uint32(0x3d7bfdc1),
  3013. 233: uint32(0xa80b2954),
  3014. 234: uint32(0xcceb52aa),
  3015. 235: uint32(0x599b863f),
  3016. 236: uint32(0x052ba556),
  3017. 237: uint32(0x905b71c3),
  3018. 238: uint32(0xf4bb0a3d),
  3019. 239: uint32(0x61cbdea8),
  3020. 240: uint32(0xac9a2eb3),
  3021. 241: uint32(0x39eafa26),
  3022. 242: uint32(0x5d0a81d8),
  3023. 243: uint32(0xc87a554d),
  3024. 244: uint32(0x94ca7624),
  3025. 245: uint32(0x01baa2b1),
  3026. 246: uint32(0x655ad94f),
  3027. 247: uint32(0xf02a0dda),
  3028. 248: uint32(0xdc3a9f9d),
  3029. 249: uint32(0x494a4b08),
  3030. 250: uint32(0x2daa30f6),
  3031. 251: uint32(0xb8dae463),
  3032. 252: uint32(0xe46ac70a),
  3033. 253: uint32(0x711a139f),
  3034. 254: uint32(0x15fa6861),
  3035. 255: uint32(0x808abcf4),
  3036. },
  3037. 5: {
  3038. 1: uint32(0xcf9e17c8),
  3039. 2: uint32(0x444d29d1),
  3040. 3: uint32(0x8bd33e19),
  3041. 4: uint32(0x889a53a2),
  3042. 5: uint32(0x4704446a),
  3043. 6: uint32(0xccd77a73),
  3044. 7: uint32(0x03496dbb),
  3045. 8: uint32(0xca45a105),
  3046. 9: uint32(0x05dbb6cd),
  3047. 10: uint32(0x8e0888d4),
  3048. 11: uint32(0x41969f1c),
  3049. 12: uint32(0x42dff2a7),
  3050. 13: uint32(0x8d41e56f),
  3051. 14: uint32(0x0692db76),
  3052. 15: uint32(0xc90cccbe),
  3053. 16: uint32(0x4ffa444b),
  3054. 17: uint32(0x80645383),
  3055. 18: uint32(0x0bb76d9a),
  3056. 19: uint32(0xc4297a52),
  3057. 20: uint32(0xc76017e9),
  3058. 21: uint32(0x08fe0021),
  3059. 22: uint32(0x832d3e38),
  3060. 23: uint32(0x4cb329f0),
  3061. 24: uint32(0x85bfe54e),
  3062. 25: uint32(0x4a21f286),
  3063. 26: uint32(0xc1f2cc9f),
  3064. 27: uint32(0x0e6cdb57),
  3065. 28: uint32(0x0d25b6ec),
  3066. 29: uint32(0xc2bba124),
  3067. 30: uint32(0x49689f3d),
  3068. 31: uint32(0x86f688f5),
  3069. 32: uint32(0x9ff48896),
  3070. 33: uint32(0x506a9f5e),
  3071. 34: uint32(0xdbb9a147),
  3072. 35: uint32(0x1427b68f),
  3073. 36: uint32(0x176edb34),
  3074. 37: uint32(0xd8f0ccfc),
  3075. 38: uint32(0x5323f2e5),
  3076. 39: uint32(0x9cbde52d),
  3077. 40: uint32(0x55b12993),
  3078. 41: uint32(0x9a2f3e5b),
  3079. 42: uint32(0x11fc0042),
  3080. 43: uint32(0xde62178a),
  3081. 44: uint32(0xdd2b7a31),
  3082. 45: uint32(0x12b56df9),
  3083. 46: uint32(0x996653e0),
  3084. 47: uint32(0x56f84428),
  3085. 48: uint32(0xd00eccdd),
  3086. 49: uint32(0x1f90db15),
  3087. 50: uint32(0x9443e50c),
  3088. 51: uint32(0x5bddf2c4),
  3089. 52: uint32(0x58949f7f),
  3090. 53: uint32(0x970a88b7),
  3091. 54: uint32(0x1cd9b6ae),
  3092. 55: uint32(0xd347a166),
  3093. 56: uint32(0x1a4b6dd8),
  3094. 57: uint32(0xd5d57a10),
  3095. 58: uint32(0x5e064409),
  3096. 59: uint32(0x919853c1),
  3097. 60: uint32(0x92d13e7a),
  3098. 61: uint32(0x5d4f29b2),
  3099. 62: uint32(0xd69c17ab),
  3100. 63: uint32(0x19020063),
  3101. 64: uint32(0xe498176d),
  3102. 65: uint32(0x2b0600a5),
  3103. 66: uint32(0xa0d53ebc),
  3104. 67: uint32(0x6f4b2974),
  3105. 68: uint32(0x6c0244cf),
  3106. 69: uint32(0xa39c5307),
  3107. 70: uint32(0x284f6d1e),
  3108. 71: uint32(0xe7d17ad6),
  3109. 72: uint32(0x2eddb668),
  3110. 73: uint32(0xe143a1a0),
  3111. 74: uint32(0x6a909fb9),
  3112. 75: uint32(0xa50e8871),
  3113. 76: uint32(0xa647e5ca),
  3114. 77: uint32(0x69d9f202),
  3115. 78: uint32(0xe20acc1b),
  3116. 79: uint32(0x2d94dbd3),
  3117. 80: uint32(0xab625326),
  3118. 81: uint32(0x64fc44ee),
  3119. 82: uint32(0xef2f7af7),
  3120. 83: uint32(0x20b16d3f),
  3121. 84: uint32(0x23f80084),
  3122. 85: uint32(0xec66174c),
  3123. 86: uint32(0x67b52955),
  3124. 87: uint32(0xa82b3e9d),
  3125. 88: uint32(0x6127f223),
  3126. 89: uint32(0xaeb9e5eb),
  3127. 90: uint32(0x256adbf2),
  3128. 91: uint32(0xeaf4cc3a),
  3129. 92: uint32(0xe9bda181),
  3130. 93: uint32(0x2623b649),
  3131. 94: uint32(0xadf08850),
  3132. 95: uint32(0x626e9f98),
  3133. 96: uint32(0x7b6c9ffb),
  3134. 97: uint32(0xb4f28833),
  3135. 98: uint32(0x3f21b62a),
  3136. 99: uint32(0xf0bfa1e2),
  3137. 100: uint32(0xf3f6cc59),
  3138. 101: uint32(0x3c68db91),
  3139. 102: uint32(0xb7bbe588),
  3140. 103: uint32(0x7825f240),
  3141. 104: uint32(0xb1293efe),
  3142. 105: uint32(0x7eb72936),
  3143. 106: uint32(0xf564172f),
  3144. 107: uint32(0x3afa00e7),
  3145. 108: uint32(0x39b36d5c),
  3146. 109: uint32(0xf62d7a94),
  3147. 110: uint32(0x7dfe448d),
  3148. 111: uint32(0xb2605345),
  3149. 112: uint32(0x3496dbb0),
  3150. 113: uint32(0xfb08cc78),
  3151. 114: uint32(0x70dbf261),
  3152. 115: uint32(0xbf45e5a9),
  3153. 116: uint32(0xbc0c8812),
  3154. 117: uint32(0x73929fda),
  3155. 118: uint32(0xf841a1c3),
  3156. 119: uint32(0x37dfb60b),
  3157. 120: uint32(0xfed37ab5),
  3158. 121: uint32(0x314d6d7d),
  3159. 122: uint32(0xba9e5364),
  3160. 123: uint32(0x750044ac),
  3161. 124: uint32(0x76492917),
  3162. 125: uint32(0xb9d73edf),
  3163. 126: uint32(0x320400c6),
  3164. 127: uint32(0xfd9a170e),
  3165. 128: uint32(0x1241289b),
  3166. 129: uint32(0xdddf3f53),
  3167. 130: uint32(0x560c014a),
  3168. 131: uint32(0x99921682),
  3169. 132: uint32(0x9adb7b39),
  3170. 133: uint32(0x55456cf1),
  3171. 134: uint32(0xde9652e8),
  3172. 135: uint32(0x11084520),
  3173. 136: uint32(0xd804899e),
  3174. 137: uint32(0x179a9e56),
  3175. 138: uint32(0x9c49a04f),
  3176. 139: uint32(0x53d7b787),
  3177. 140: uint32(0x509eda3c),
  3178. 141: uint32(0x9f00cdf4),
  3179. 142: uint32(0x14d3f3ed),
  3180. 143: uint32(0xdb4de425),
  3181. 144: uint32(0x5dbb6cd0),
  3182. 145: uint32(0x92257b18),
  3183. 146: uint32(0x19f64501),
  3184. 147: uint32(0xd66852c9),
  3185. 148: uint32(0xd5213f72),
  3186. 149: uint32(0x1abf28ba),
  3187. 150: uint32(0x916c16a3),
  3188. 151: uint32(0x5ef2016b),
  3189. 152: uint32(0x97fecdd5),
  3190. 153: uint32(0x5860da1d),
  3191. 154: uint32(0xd3b3e404),
  3192. 155: uint32(0x1c2df3cc),
  3193. 156: uint32(0x1f649e77),
  3194. 157: uint32(0xd0fa89bf),
  3195. 158: uint32(0x5b29b7a6),
  3196. 159: uint32(0x94b7a06e),
  3197. 160: uint32(0x8db5a00d),
  3198. 161: uint32(0x422bb7c5),
  3199. 162: uint32(0xc9f889dc),
  3200. 163: uint32(0x06669e14),
  3201. 164: uint32(0x052ff3af),
  3202. 165: uint32(0xcab1e467),
  3203. 166: uint32(0x4162da7e),
  3204. 167: uint32(0x8efccdb6),
  3205. 168: uint32(0x47f00108),
  3206. 169: uint32(0x886e16c0),
  3207. 170: uint32(0x03bd28d9),
  3208. 171: uint32(0xcc233f11),
  3209. 172: uint32(0xcf6a52aa),
  3210. 173: uint32(0x00f44562),
  3211. 174: uint32(0x8b277b7b),
  3212. 175: uint32(0x44b96cb3),
  3213. 176: uint32(0xc24fe446),
  3214. 177: uint32(0x0dd1f38e),
  3215. 178: uint32(0x8602cd97),
  3216. 179: uint32(0x499cda5f),
  3217. 180: uint32(0x4ad5b7e4),
  3218. 181: uint32(0x854ba02c),
  3219. 182: uint32(0x0e989e35),
  3220. 183: uint32(0xc10689fd),
  3221. 184: uint32(0x080a4543),
  3222. 185: uint32(0xc794528b),
  3223. 186: uint32(0x4c476c92),
  3224. 187: uint32(0x83d97b5a),
  3225. 188: uint32(0x809016e1),
  3226. 189: uint32(0x4f0e0129),
  3227. 190: uint32(0xc4dd3f30),
  3228. 191: uint32(0x0b4328f8),
  3229. 192: uint32(0xf6d93ff6),
  3230. 193: uint32(0x3947283e),
  3231. 194: uint32(0xb2941627),
  3232. 195: uint32(0x7d0a01ef),
  3233. 196: uint32(0x7e436c54),
  3234. 197: uint32(0xb1dd7b9c),
  3235. 198: uint32(0x3a0e4585),
  3236. 199: uint32(0xf590524d),
  3237. 200: uint32(0x3c9c9ef3),
  3238. 201: uint32(0xf302893b),
  3239. 202: uint32(0x78d1b722),
  3240. 203: uint32(0xb74fa0ea),
  3241. 204: uint32(0xb406cd51),
  3242. 205: uint32(0x7b98da99),
  3243. 206: uint32(0xf04be480),
  3244. 207: uint32(0x3fd5f348),
  3245. 208: uint32(0xb9237bbd),
  3246. 209: uint32(0x76bd6c75),
  3247. 210: uint32(0xfd6e526c),
  3248. 211: uint32(0x32f045a4),
  3249. 212: uint32(0x31b9281f),
  3250. 213: uint32(0xfe273fd7),
  3251. 214: uint32(0x75f401ce),
  3252. 215: uint32(0xba6a1606),
  3253. 216: uint32(0x7366dab8),
  3254. 217: uint32(0xbcf8cd70),
  3255. 218: uint32(0x372bf369),
  3256. 219: uint32(0xf8b5e4a1),
  3257. 220: uint32(0xfbfc891a),
  3258. 221: uint32(0x34629ed2),
  3259. 222: uint32(0xbfb1a0cb),
  3260. 223: uint32(0x702fb703),
  3261. 224: uint32(0x692db760),
  3262. 225: uint32(0xa6b3a0a8),
  3263. 226: uint32(0x2d609eb1),
  3264. 227: uint32(0xe2fe8979),
  3265. 228: uint32(0xe1b7e4c2),
  3266. 229: uint32(0x2e29f30a),
  3267. 230: uint32(0xa5facd13),
  3268. 231: uint32(0x6a64dadb),
  3269. 232: uint32(0xa3681665),
  3270. 233: uint32(0x6cf601ad),
  3271. 234: uint32(0xe7253fb4),
  3272. 235: uint32(0x28bb287c),
  3273. 236: uint32(0x2bf245c7),
  3274. 237: uint32(0xe46c520f),
  3275. 238: uint32(0x6fbf6c16),
  3276. 239: uint32(0xa0217bde),
  3277. 240: uint32(0x26d7f32b),
  3278. 241: uint32(0xe949e4e3),
  3279. 242: uint32(0x629adafa),
  3280. 243: uint32(0xad04cd32),
  3281. 244: uint32(0xae4da089),
  3282. 245: uint32(0x61d3b741),
  3283. 246: uint32(0xea008958),
  3284. 247: uint32(0x259e9e90),
  3285. 248: uint32(0xec92522e),
  3286. 249: uint32(0x230c45e6),
  3287. 250: uint32(0xa8df7bff),
  3288. 251: uint32(0x67416c37),
  3289. 252: uint32(0x6408018c),
  3290. 253: uint32(0xab961644),
  3291. 254: uint32(0x2045285d),
  3292. 255: uint32(0xefdb3f95),
  3293. },
  3294. 6: {
  3295. 1: uint32(0x24825136),
  3296. 2: uint32(0x4904a26c),
  3297. 3: uint32(0x6d86f35a),
  3298. 4: uint32(0x920944d8),
  3299. 5: uint32(0xb68b15ee),
  3300. 6: uint32(0xdb0de6b4),
  3301. 7: uint32(0xff8fb782),
  3302. 8: uint32(0xff638ff1),
  3303. 9: uint32(0xdbe1dec7),
  3304. 10: uint32(0xb6672d9d),
  3305. 11: uint32(0x92e57cab),
  3306. 12: uint32(0x6d6acb29),
  3307. 13: uint32(0x49e89a1f),
  3308. 14: uint32(0x246e6945),
  3309. 15: uint32(0x00ec3873),
  3310. 16: uint32(0x25b619a3),
  3311. 17: uint32(0x01344895),
  3312. 18: uint32(0x6cb2bbcf),
  3313. 19: uint32(0x4830eaf9),
  3314. 20: uint32(0xb7bf5d7b),
  3315. 21: uint32(0x933d0c4d),
  3316. 22: uint32(0xfebbff17),
  3317. 23: uint32(0xda39ae21),
  3318. 24: uint32(0xdad59652),
  3319. 25: uint32(0xfe57c764),
  3320. 26: uint32(0x93d1343e),
  3321. 27: uint32(0xb7536508),
  3322. 28: uint32(0x48dcd28a),
  3323. 29: uint32(0x6c5e83bc),
  3324. 30: uint32(0x01d870e6),
  3325. 31: uint32(0x255a21d0),
  3326. 32: uint32(0x4b6c3346),
  3327. 33: uint32(0x6fee6270),
  3328. 34: uint32(0x0268912a),
  3329. 35: uint32(0x26eac01c),
  3330. 36: uint32(0xd965779e),
  3331. 37: uint32(0xfde726a8),
  3332. 38: uint32(0x9061d5f2),
  3333. 39: uint32(0xb4e384c4),
  3334. 40: uint32(0xb40fbcb7),
  3335. 41: uint32(0x908ded81),
  3336. 42: uint32(0xfd0b1edb),
  3337. 43: uint32(0xd9894fed),
  3338. 44: uint32(0x2606f86f),
  3339. 45: uint32(0x0284a959),
  3340. 46: uint32(0x6f025a03),
  3341. 47: uint32(0x4b800b35),
  3342. 48: uint32(0x6eda2ae5),
  3343. 49: uint32(0x4a587bd3),
  3344. 50: uint32(0x27de8889),
  3345. 51: uint32(0x035cd9bf),
  3346. 52: uint32(0xfcd36e3d),
  3347. 53: uint32(0xd8513f0b),
  3348. 54: uint32(0xb5d7cc51),
  3349. 55: uint32(0x91559d67),
  3350. 56: uint32(0x91b9a514),
  3351. 57: uint32(0xb53bf422),
  3352. 58: uint32(0xd8bd0778),
  3353. 59: uint32(0xfc3f564e),
  3354. 60: uint32(0x03b0e1cc),
  3355. 61: uint32(0x2732b0fa),
  3356. 62: uint32(0x4ab443a0),
  3357. 63: uint32(0x6e361296),
  3358. 64: uint32(0x96d8668c),
  3359. 65: uint32(0xb25a37ba),
  3360. 66: uint32(0xdfdcc4e0),
  3361. 67: uint32(0xfb5e95d6),
  3362. 68: uint32(0x04d12254),
  3363. 69: uint32(0x20537362),
  3364. 70: uint32(0x4dd58038),
  3365. 71: uint32(0x6957d10e),
  3366. 72: uint32(0x69bbe97d),
  3367. 73: uint32(0x4d39b84b),
  3368. 74: uint32(0x20bf4b11),
  3369. 75: uint32(0x043d1a27),
  3370. 76: uint32(0xfbb2ada5),
  3371. 77: uint32(0xdf30fc93),
  3372. 78: uint32(0xb2b60fc9),
  3373. 79: uint32(0x96345eff),
  3374. 80: uint32(0xb36e7f2f),
  3375. 81: uint32(0x97ec2e19),
  3376. 82: uint32(0xfa6add43),
  3377. 83: uint32(0xdee88c75),
  3378. 84: uint32(0x21673bf7),
  3379. 85: uint32(0x05e56ac1),
  3380. 86: uint32(0x6863999b),
  3381. 87: uint32(0x4ce1c8ad),
  3382. 88: uint32(0x4c0df0de),
  3383. 89: uint32(0x688fa1e8),
  3384. 90: uint32(0x050952b2),
  3385. 91: uint32(0x218b0384),
  3386. 92: uint32(0xde04b406),
  3387. 93: uint32(0xfa86e530),
  3388. 94: uint32(0x9700166a),
  3389. 95: uint32(0xb382475c),
  3390. 96: uint32(0xddb455ca),
  3391. 97: uint32(0xf93604fc),
  3392. 98: uint32(0x94b0f7a6),
  3393. 99: uint32(0xb032a690),
  3394. 100: uint32(0x4fbd1112),
  3395. 101: uint32(0x6b3f4024),
  3396. 102: uint32(0x06b9b37e),
  3397. 103: uint32(0x223be248),
  3398. 104: uint32(0x22d7da3b),
  3399. 105: uint32(0x06558b0d),
  3400. 106: uint32(0x6bd37857),
  3401. 107: uint32(0x4f512961),
  3402. 108: uint32(0xb0de9ee3),
  3403. 109: uint32(0x945ccfd5),
  3404. 110: uint32(0xf9da3c8f),
  3405. 111: uint32(0xdd586db9),
  3406. 112: uint32(0xf8024c69),
  3407. 113: uint32(0xdc801d5f),
  3408. 114: uint32(0xb106ee05),
  3409. 115: uint32(0x9584bf33),
  3410. 116: uint32(0x6a0b08b1),
  3411. 117: uint32(0x4e895987),
  3412. 118: uint32(0x230faadd),
  3413. 119: uint32(0x078dfbeb),
  3414. 120: uint32(0x0761c398),
  3415. 121: uint32(0x23e392ae),
  3416. 122: uint32(0x4e6561f4),
  3417. 123: uint32(0x6ae730c2),
  3418. 124: uint32(0x95688740),
  3419. 125: uint32(0xb1ead676),
  3420. 126: uint32(0xdc6c252c),
  3421. 127: uint32(0xf8ee741a),
  3422. 128: uint32(0xf6c1cb59),
  3423. 129: uint32(0xd2439a6f),
  3424. 130: uint32(0xbfc56935),
  3425. 131: uint32(0x9b473803),
  3426. 132: uint32(0x64c88f81),
  3427. 133: uint32(0x404adeb7),
  3428. 134: uint32(0x2dcc2ded),
  3429. 135: uint32(0x094e7cdb),
  3430. 136: uint32(0x09a244a8),
  3431. 137: uint32(0x2d20159e),
  3432. 138: uint32(0x40a6e6c4),
  3433. 139: uint32(0x6424b7f2),
  3434. 140: uint32(0x9bab0070),
  3435. 141: uint32(0xbf295146),
  3436. 142: uint32(0xd2afa21c),
  3437. 143: uint32(0xf62df32a),
  3438. 144: uint32(0xd377d2fa),
  3439. 145: uint32(0xf7f583cc),
  3440. 146: uint32(0x9a737096),
  3441. 147: uint32(0xbef121a0),
  3442. 148: uint32(0x417e9622),
  3443. 149: uint32(0x65fcc714),
  3444. 150: uint32(0x087a344e),
  3445. 151: uint32(0x2cf86578),
  3446. 152: uint32(0x2c145d0b),
  3447. 153: uint32(0x08960c3d),
  3448. 154: uint32(0x6510ff67),
  3449. 155: uint32(0x4192ae51),
  3450. 156: uint32(0xbe1d19d3),
  3451. 157: uint32(0x9a9f48e5),
  3452. 158: uint32(0xf719bbbf),
  3453. 159: uint32(0xd39bea89),
  3454. 160: uint32(0xbdadf81f),
  3455. 161: uint32(0x992fa929),
  3456. 162: uint32(0xf4a95a73),
  3457. 163: uint32(0xd02b0b45),
  3458. 164: uint32(0x2fa4bcc7),
  3459. 165: uint32(0x0b26edf1),
  3460. 166: uint32(0x66a01eab),
  3461. 167: uint32(0x42224f9d),
  3462. 168: uint32(0x42ce77ee),
  3463. 169: uint32(0x664c26d8),
  3464. 170: uint32(0x0bcad582),
  3465. 171: uint32(0x2f4884b4),
  3466. 172: uint32(0xd0c73336),
  3467. 173: uint32(0xf4456200),
  3468. 174: uint32(0x99c3915a),
  3469. 175: uint32(0xbd41c06c),
  3470. 176: uint32(0x981be1bc),
  3471. 177: uint32(0xbc99b08a),
  3472. 178: uint32(0xd11f43d0),
  3473. 179: uint32(0xf59d12e6),
  3474. 180: uint32(0x0a12a564),
  3475. 181: uint32(0x2e90f452),
  3476. 182: uint32(0x43160708),
  3477. 183: uint32(0x6794563e),
  3478. 184: uint32(0x67786e4d),
  3479. 185: uint32(0x43fa3f7b),
  3480. 186: uint32(0x2e7ccc21),
  3481. 187: uint32(0x0afe9d17),
  3482. 188: uint32(0xf5712a95),
  3483. 189: uint32(0xd1f37ba3),
  3484. 190: uint32(0xbc7588f9),
  3485. 191: uint32(0x98f7d9cf),
  3486. 192: uint32(0x6019add5),
  3487. 193: uint32(0x449bfce3),
  3488. 194: uint32(0x291d0fb9),
  3489. 195: uint32(0x0d9f5e8f),
  3490. 196: uint32(0xf210e90d),
  3491. 197: uint32(0xd692b83b),
  3492. 198: uint32(0xbb144b61),
  3493. 199: uint32(0x9f961a57),
  3494. 200: uint32(0x9f7a2224),
  3495. 201: uint32(0xbbf87312),
  3496. 202: uint32(0xd67e8048),
  3497. 203: uint32(0xf2fcd17e),
  3498. 204: uint32(0x0d7366fc),
  3499. 205: uint32(0x29f137ca),
  3500. 206: uint32(0x4477c490),
  3501. 207: uint32(0x60f595a6),
  3502. 208: uint32(0x45afb476),
  3503. 209: uint32(0x612de540),
  3504. 210: uint32(0x0cab161a),
  3505. 211: uint32(0x2829472c),
  3506. 212: uint32(0xd7a6f0ae),
  3507. 213: uint32(0xf324a198),
  3508. 214: uint32(0x9ea252c2),
  3509. 215: uint32(0xba2003f4),
  3510. 216: uint32(0xbacc3b87),
  3511. 217: uint32(0x9e4e6ab1),
  3512. 218: uint32(0xf3c899eb),
  3513. 219: uint32(0xd74ac8dd),
  3514. 220: uint32(0x28c57f5f),
  3515. 221: uint32(0x0c472e69),
  3516. 222: uint32(0x61c1dd33),
  3517. 223: uint32(0x45438c05),
  3518. 224: uint32(0x2b759e93),
  3519. 225: uint32(0x0ff7cfa5),
  3520. 226: uint32(0x62713cff),
  3521. 227: uint32(0x46f36dc9),
  3522. 228: uint32(0xb97cda4b),
  3523. 229: uint32(0x9dfe8b7d),
  3524. 230: uint32(0xf0787827),
  3525. 231: uint32(0xd4fa2911),
  3526. 232: uint32(0xd4161162),
  3527. 233: uint32(0xf0944054),
  3528. 234: uint32(0x9d12b30e),
  3529. 235: uint32(0xb990e238),
  3530. 236: uint32(0x461f55ba),
  3531. 237: uint32(0x629d048c),
  3532. 238: uint32(0x0f1bf7d6),
  3533. 239: uint32(0x2b99a6e0),
  3534. 240: uint32(0x0ec38730),
  3535. 241: uint32(0x2a41d606),
  3536. 242: uint32(0x47c7255c),
  3537. 243: uint32(0x6345746a),
  3538. 244: uint32(0x9ccac3e8),
  3539. 245: uint32(0xb84892de),
  3540. 246: uint32(0xd5ce6184),
  3541. 247: uint32(0xf14c30b2),
  3542. 248: uint32(0xf1a008c1),
  3543. 249: uint32(0xd52259f7),
  3544. 250: uint32(0xb8a4aaad),
  3545. 251: uint32(0x9c26fb9b),
  3546. 252: uint32(0x63a94c19),
  3547. 253: uint32(0x472b1d2f),
  3548. 254: uint32(0x2aadee75),
  3549. 255: uint32(0x0e2fbf43),
  3550. },
  3551. 7: {
  3552. 1: uint32(0x36f290f3),
  3553. 2: uint32(0x6de521e6),
  3554. 3: uint32(0x5b17b115),
  3555. 4: uint32(0xdbca43cc),
  3556. 5: uint32(0xed38d33f),
  3557. 6: uint32(0xb62f622a),
  3558. 7: uint32(0x80ddf2d9),
  3559. 8: uint32(0x6ce581d9),
  3560. 9: uint32(0x5a17112a),
  3561. 10: uint32(0x0100a03f),
  3562. 11: uint32(0x37f230cc),
  3563. 12: uint32(0xb72fc215),
  3564. 13: uint32(0x81dd52e6),
  3565. 14: uint32(0xdacae3f3),
  3566. 15: uint32(0xec387300),
  3567. 16: uint32(0xd9cb03b2),
  3568. 17: uint32(0xef399341),
  3569. 18: uint32(0xb42e2254),
  3570. 19: uint32(0x82dcb2a7),
  3571. 20: uint32(0x0201407e),
  3572. 21: uint32(0x34f3d08d),
  3573. 22: uint32(0x6fe46198),
  3574. 23: uint32(0x5916f16b),
  3575. 24: uint32(0xb52e826b),
  3576. 25: uint32(0x83dc1298),
  3577. 26: uint32(0xd8cba38d),
  3578. 27: uint32(0xee39337e),
  3579. 28: uint32(0x6ee4c1a7),
  3580. 29: uint32(0x58165154),
  3581. 30: uint32(0x0301e041),
  3582. 31: uint32(0x35f370b2),
  3583. 32: uint32(0x68e70125),
  3584. 33: uint32(0x5e1591d6),
  3585. 34: uint32(0x050220c3),
  3586. 35: uint32(0x33f0b030),
  3587. 36: uint32(0xb32d42e9),
  3588. 37: uint32(0x85dfd21a),
  3589. 38: uint32(0xdec8630f),
  3590. 39: uint32(0xe83af3fc),
  3591. 40: uint32(0x040280fc),
  3592. 41: uint32(0x32f0100f),
  3593. 42: uint32(0x69e7a11a),
  3594. 43: uint32(0x5f1531e9),
  3595. 44: uint32(0xdfc8c330),
  3596. 45: uint32(0xe93a53c3),
  3597. 46: uint32(0xb22de2d6),
  3598. 47: uint32(0x84df7225),
  3599. 48: uint32(0xb12c0297),
  3600. 49: uint32(0x87de9264),
  3601. 50: uint32(0xdcc92371),
  3602. 51: uint32(0xea3bb382),
  3603. 52: uint32(0x6ae6415b),
  3604. 53: uint32(0x5c14d1a8),
  3605. 54: uint32(0x070360bd),
  3606. 55: uint32(0x31f1f04e),
  3607. 56: uint32(0xddc9834e),
  3608. 57: uint32(0xeb3b13bd),
  3609. 58: uint32(0xb02ca2a8),
  3610. 59: uint32(0x86de325b),
  3611. 60: uint32(0x0603c082),
  3612. 61: uint32(0x30f15071),
  3613. 62: uint32(0x6be6e164),
  3614. 63: uint32(0x5d147197),
  3615. 64: uint32(0xd1ce024a),
  3616. 65: uint32(0xe73c92b9),
  3617. 66: uint32(0xbc2b23ac),
  3618. 67: uint32(0x8ad9b35f),
  3619. 68: uint32(0x0a044186),
  3620. 69: uint32(0x3cf6d175),
  3621. 70: uint32(0x67e16060),
  3622. 71: uint32(0x5113f093),
  3623. 72: uint32(0xbd2b8393),
  3624. 73: uint32(0x8bd91360),
  3625. 74: uint32(0xd0cea275),
  3626. 75: uint32(0xe63c3286),
  3627. 76: uint32(0x66e1c05f),
  3628. 77: uint32(0x501350ac),
  3629. 78: uint32(0x0b04e1b9),
  3630. 79: uint32(0x3df6714a),
  3631. 80: uint32(0x080501f8),
  3632. 81: uint32(0x3ef7910b),
  3633. 82: uint32(0x65e0201e),
  3634. 83: uint32(0x5312b0ed),
  3635. 84: uint32(0xd3cf4234),
  3636. 85: uint32(0xe53dd2c7),
  3637. 86: uint32(0xbe2a63d2),
  3638. 87: uint32(0x88d8f321),
  3639. 88: uint32(0x64e08021),
  3640. 89: uint32(0x521210d2),
  3641. 90: uint32(0x0905a1c7),
  3642. 91: uint32(0x3ff73134),
  3643. 92: uint32(0xbf2ac3ed),
  3644. 93: uint32(0x89d8531e),
  3645. 94: uint32(0xd2cfe20b),
  3646. 95: uint32(0xe43d72f8),
  3647. 96: uint32(0xb929036f),
  3648. 97: uint32(0x8fdb939c),
  3649. 98: uint32(0xd4cc2289),
  3650. 99: uint32(0xe23eb27a),
  3651. 100: uint32(0x62e340a3),
  3652. 101: uint32(0x5411d050),
  3653. 102: uint32(0x0f066145),
  3654. 103: uint32(0x39f4f1b6),
  3655. 104: uint32(0xd5cc82b6),
  3656. 105: uint32(0xe33e1245),
  3657. 106: uint32(0xb829a350),
  3658. 107: uint32(0x8edb33a3),
  3659. 108: uint32(0x0e06c17a),
  3660. 109: uint32(0x38f45189),
  3661. 110: uint32(0x63e3e09c),
  3662. 111: uint32(0x5511706f),
  3663. 112: uint32(0x60e200dd),
  3664. 113: uint32(0x5610902e),
  3665. 114: uint32(0x0d07213b),
  3666. 115: uint32(0x3bf5b1c8),
  3667. 116: uint32(0xbb284311),
  3668. 117: uint32(0x8ddad3e2),
  3669. 118: uint32(0xd6cd62f7),
  3670. 119: uint32(0xe03ff204),
  3671. 120: uint32(0x0c078104),
  3672. 121: uint32(0x3af511f7),
  3673. 122: uint32(0x61e2a0e2),
  3674. 123: uint32(0x57103011),
  3675. 124: uint32(0xd7cdc2c8),
  3676. 125: uint32(0xe13f523b),
  3677. 126: uint32(0xba28e32e),
  3678. 127: uint32(0x8cda73dd),
  3679. 128: uint32(0x78ed02d5),
  3680. 129: uint32(0x4e1f9226),
  3681. 130: uint32(0x15082333),
  3682. 131: uint32(0x23fab3c0),
  3683. 132: uint32(0xa3274119),
  3684. 133: uint32(0x95d5d1ea),
  3685. 134: uint32(0xcec260ff),
  3686. 135: uint32(0xf830f00c),
  3687. 136: uint32(0x1408830c),
  3688. 137: uint32(0x22fa13ff),
  3689. 138: uint32(0x79eda2ea),
  3690. 139: uint32(0x4f1f3219),
  3691. 140: uint32(0xcfc2c0c0),
  3692. 141: uint32(0xf9305033),
  3693. 142: uint32(0xa227e126),
  3694. 143: uint32(0x94d571d5),
  3695. 144: uint32(0xa1260167),
  3696. 145: uint32(0x97d49194),
  3697. 146: uint32(0xccc32081),
  3698. 147: uint32(0xfa31b072),
  3699. 148: uint32(0x7aec42ab),
  3700. 149: uint32(0x4c1ed258),
  3701. 150: uint32(0x1709634d),
  3702. 151: uint32(0x21fbf3be),
  3703. 152: uint32(0xcdc380be),
  3704. 153: uint32(0xfb31104d),
  3705. 154: uint32(0xa026a158),
  3706. 155: uint32(0x96d431ab),
  3707. 156: uint32(0x1609c372),
  3708. 157: uint32(0x20fb5381),
  3709. 158: uint32(0x7bece294),
  3710. 159: uint32(0x4d1e7267),
  3711. 160: uint32(0x100a03f0),
  3712. 161: uint32(0x26f89303),
  3713. 162: uint32(0x7def2216),
  3714. 163: uint32(0x4b1db2e5),
  3715. 164: uint32(0xcbc0403c),
  3716. 165: uint32(0xfd32d0cf),
  3717. 166: uint32(0xa62561da),
  3718. 167: uint32(0x90d7f129),
  3719. 168: uint32(0x7cef8229),
  3720. 169: uint32(0x4a1d12da),
  3721. 170: uint32(0x110aa3cf),
  3722. 171: uint32(0x27f8333c),
  3723. 172: uint32(0xa725c1e5),
  3724. 173: uint32(0x91d75116),
  3725. 174: uint32(0xcac0e003),
  3726. 175: uint32(0xfc3270f0),
  3727. 176: uint32(0xc9c10042),
  3728. 177: uint32(0xff3390b1),
  3729. 178: uint32(0xa42421a4),
  3730. 179: uint32(0x92d6b157),
  3731. 180: uint32(0x120b438e),
  3732. 181: uint32(0x24f9d37d),
  3733. 182: uint32(0x7fee6268),
  3734. 183: uint32(0x491cf29b),
  3735. 184: uint32(0xa524819b),
  3736. 185: uint32(0x93d61168),
  3737. 186: uint32(0xc8c1a07d),
  3738. 187: uint32(0xfe33308e),
  3739. 188: uint32(0x7eeec257),
  3740. 189: uint32(0x481c52a4),
  3741. 190: uint32(0x130be3b1),
  3742. 191: uint32(0x25f97342),
  3743. 192: uint32(0xa923009f),
  3744. 193: uint32(0x9fd1906c),
  3745. 194: uint32(0xc4c62179),
  3746. 195: uint32(0xf234b18a),
  3747. 196: uint32(0x72e94353),
  3748. 197: uint32(0x441bd3a0),
  3749. 198: uint32(0x1f0c62b5),
  3750. 199: uint32(0x29fef246),
  3751. 200: uint32(0xc5c68146),
  3752. 201: uint32(0xf33411b5),
  3753. 202: uint32(0xa823a0a0),
  3754. 203: uint32(0x9ed13053),
  3755. 204: uint32(0x1e0cc28a),
  3756. 205: uint32(0x28fe5279),
  3757. 206: uint32(0x73e9e36c),
  3758. 207: uint32(0x451b739f),
  3759. 208: uint32(0x70e8032d),
  3760. 209: uint32(0x461a93de),
  3761. 210: uint32(0x1d0d22cb),
  3762. 211: uint32(0x2bffb238),
  3763. 212: uint32(0xab2240e1),
  3764. 213: uint32(0x9dd0d012),
  3765. 214: uint32(0xc6c76107),
  3766. 215: uint32(0xf035f1f4),
  3767. 216: uint32(0x1c0d82f4),
  3768. 217: uint32(0x2aff1207),
  3769. 218: uint32(0x71e8a312),
  3770. 219: uint32(0x471a33e1),
  3771. 220: uint32(0xc7c7c138),
  3772. 221: uint32(0xf13551cb),
  3773. 222: uint32(0xaa22e0de),
  3774. 223: uint32(0x9cd0702d),
  3775. 224: uint32(0xc1c401ba),
  3776. 225: uint32(0xf7369149),
  3777. 226: uint32(0xac21205c),
  3778. 227: uint32(0x9ad3b0af),
  3779. 228: uint32(0x1a0e4276),
  3780. 229: uint32(0x2cfcd285),
  3781. 230: uint32(0x77eb6390),
  3782. 231: uint32(0x4119f363),
  3783. 232: uint32(0xad218063),
  3784. 233: uint32(0x9bd31090),
  3785. 234: uint32(0xc0c4a185),
  3786. 235: uint32(0xf6363176),
  3787. 236: uint32(0x76ebc3af),
  3788. 237: uint32(0x4019535c),
  3789. 238: uint32(0x1b0ee249),
  3790. 239: uint32(0x2dfc72ba),
  3791. 240: uint32(0x180f0208),
  3792. 241: uint32(0x2efd92fb),
  3793. 242: uint32(0x75ea23ee),
  3794. 243: uint32(0x4318b31d),
  3795. 244: uint32(0xc3c541c4),
  3796. 245: uint32(0xf537d137),
  3797. 246: uint32(0xae206022),
  3798. 247: uint32(0x98d2f0d1),
  3799. 248: uint32(0x74ea83d1),
  3800. 249: uint32(0x42181322),
  3801. 250: uint32(0x190fa237),
  3802. 251: uint32(0x2ffd32c4),
  3803. 252: uint32(0xaf20c01d),
  3804. 253: uint32(0x99d250ee),
  3805. 254: uint32(0xc2c5e1fb),
  3806. 255: uint32(0xf4377108),
  3807. },
  3808. }
  3809. var _crc_braid_big_table = [8][256]Tz_word_t{
  3810. 0: {
  3811. 1: uint64(0xf390f23600000000),
  3812. 2: uint64(0xe621e56d00000000),
  3813. 3: uint64(0x15b1175b00000000),
  3814. 4: uint64(0xcc43cadb00000000),
  3815. 5: uint64(0x3fd338ed00000000),
  3816. 6: uint64(0x2a622fb600000000),
  3817. 7: uint64(0xd9f2dd8000000000),
  3818. 8: uint64(0xd981e56c00000000),
  3819. 9: uint64(0x2a11175a00000000),
  3820. 10: uint64(0x3fa0000100000000),
  3821. 11: uint64(0xcc30f23700000000),
  3822. 12: uint64(0x15c22fb700000000),
  3823. 13: uint64(0xe652dd8100000000),
  3824. 14: uint64(0xf3e3cada00000000),
  3825. 15: uint64(0x007338ec00000000),
  3826. 16: uint64(0xb203cbd900000000),
  3827. 17: uint64(0x419339ef00000000),
  3828. 18: uint64(0x54222eb400000000),
  3829. 19: uint64(0xa7b2dc8200000000),
  3830. 20: uint64(0x7e40010200000000),
  3831. 21: uint64(0x8dd0f33400000000),
  3832. 22: uint64(0x9861e46f00000000),
  3833. 23: uint64(0x6bf1165900000000),
  3834. 24: uint64(0x6b822eb500000000),
  3835. 25: uint64(0x9812dc8300000000),
  3836. 26: uint64(0x8da3cbd800000000),
  3837. 27: uint64(0x7e3339ee00000000),
  3838. 28: uint64(0xa7c1e46e00000000),
  3839. 29: uint64(0x5451165800000000),
  3840. 30: uint64(0x41e0010300000000),
  3841. 31: uint64(0xb270f33500000000),
  3842. 32: uint64(0x2501e76800000000),
  3843. 33: uint64(0xd691155e00000000),
  3844. 34: uint64(0xc320020500000000),
  3845. 35: uint64(0x30b0f03300000000),
  3846. 36: uint64(0xe9422db300000000),
  3847. 37: uint64(0x1ad2df8500000000),
  3848. 38: uint64(0x0f63c8de00000000),
  3849. 39: uint64(0xfcf33ae800000000),
  3850. 40: uint64(0xfc80020400000000),
  3851. 41: uint64(0x0f10f03200000000),
  3852. 42: uint64(0x1aa1e76900000000),
  3853. 43: uint64(0xe931155f00000000),
  3854. 44: uint64(0x30c3c8df00000000),
  3855. 45: uint64(0xc3533ae900000000),
  3856. 46: uint64(0xd6e22db200000000),
  3857. 47: uint64(0x2572df8400000000),
  3858. 48: uint64(0x97022cb100000000),
  3859. 49: uint64(0x6492de8700000000),
  3860. 50: uint64(0x7123c9dc00000000),
  3861. 51: uint64(0x82b33bea00000000),
  3862. 52: uint64(0x5b41e66a00000000),
  3863. 53: uint64(0xa8d1145c00000000),
  3864. 54: uint64(0xbd60030700000000),
  3865. 55: uint64(0x4ef0f13100000000),
  3866. 56: uint64(0x4e83c9dd00000000),
  3867. 57: uint64(0xbd133beb00000000),
  3868. 58: uint64(0xa8a22cb000000000),
  3869. 59: uint64(0x5b32de8600000000),
  3870. 60: uint64(0x82c0030600000000),
  3871. 61: uint64(0x7150f13000000000),
  3872. 62: uint64(0x64e1e66b00000000),
  3873. 63: uint64(0x9771145d00000000),
  3874. 64: uint64(0x4a02ced100000000),
  3875. 65: uint64(0xb9923ce700000000),
  3876. 66: uint64(0xac232bbc00000000),
  3877. 67: uint64(0x5fb3d98a00000000),
  3878. 68: uint64(0x8641040a00000000),
  3879. 69: uint64(0x75d1f63c00000000),
  3880. 70: uint64(0x6060e16700000000),
  3881. 71: uint64(0x93f0135100000000),
  3882. 72: uint64(0x93832bbd00000000),
  3883. 73: uint64(0x6013d98b00000000),
  3884. 74: uint64(0x75a2ced000000000),
  3885. 75: uint64(0x86323ce600000000),
  3886. 76: uint64(0x5fc0e16600000000),
  3887. 77: uint64(0xac50135000000000),
  3888. 78: uint64(0xb9e1040b00000000),
  3889. 79: uint64(0x4a71f63d00000000),
  3890. 80: uint64(0xf801050800000000),
  3891. 81: uint64(0x0b91f73e00000000),
  3892. 82: uint64(0x1e20e06500000000),
  3893. 83: uint64(0xedb0125300000000),
  3894. 84: uint64(0x3442cfd300000000),
  3895. 85: uint64(0xc7d23de500000000),
  3896. 86: uint64(0xd2632abe00000000),
  3897. 87: uint64(0x21f3d88800000000),
  3898. 88: uint64(0x2180e06400000000),
  3899. 89: uint64(0xd210125200000000),
  3900. 90: uint64(0xc7a1050900000000),
  3901. 91: uint64(0x3431f73f00000000),
  3902. 92: uint64(0xedc32abf00000000),
  3903. 93: uint64(0x1e53d88900000000),
  3904. 94: uint64(0x0be2cfd200000000),
  3905. 95: uint64(0xf8723de400000000),
  3906. 96: uint64(0x6f0329b900000000),
  3907. 97: uint64(0x9c93db8f00000000),
  3908. 98: uint64(0x8922ccd400000000),
  3909. 99: uint64(0x7ab23ee200000000),
  3910. 100: uint64(0xa340e36200000000),
  3911. 101: uint64(0x50d0115400000000),
  3912. 102: uint64(0x4561060f00000000),
  3913. 103: uint64(0xb6f1f43900000000),
  3914. 104: uint64(0xb682ccd500000000),
  3915. 105: uint64(0x45123ee300000000),
  3916. 106: uint64(0x50a329b800000000),
  3917. 107: uint64(0xa333db8e00000000),
  3918. 108: uint64(0x7ac1060e00000000),
  3919. 109: uint64(0x8951f43800000000),
  3920. 110: uint64(0x9ce0e36300000000),
  3921. 111: uint64(0x6f70115500000000),
  3922. 112: uint64(0xdd00e26000000000),
  3923. 113: uint64(0x2e90105600000000),
  3924. 114: uint64(0x3b21070d00000000),
  3925. 115: uint64(0xc8b1f53b00000000),
  3926. 116: uint64(0x114328bb00000000),
  3927. 117: uint64(0xe2d3da8d00000000),
  3928. 118: uint64(0xf762cdd600000000),
  3929. 119: uint64(0x04f23fe000000000),
  3930. 120: uint64(0x0481070c00000000),
  3931. 121: uint64(0xf711f53a00000000),
  3932. 122: uint64(0xe2a0e26100000000),
  3933. 123: uint64(0x1130105700000000),
  3934. 124: uint64(0xc8c2cdd700000000),
  3935. 125: uint64(0x3b523fe100000000),
  3936. 126: uint64(0x2ee328ba00000000),
  3937. 127: uint64(0xdd73da8c00000000),
  3938. 128: uint64(0xd502ed7800000000),
  3939. 129: uint64(0x26921f4e00000000),
  3940. 130: uint64(0x3323081500000000),
  3941. 131: uint64(0xc0b3fa2300000000),
  3942. 132: uint64(0x194127a300000000),
  3943. 133: uint64(0xead1d59500000000),
  3944. 134: uint64(0xff60c2ce00000000),
  3945. 135: uint64(0x0cf030f800000000),
  3946. 136: uint64(0x0c83081400000000),
  3947. 137: uint64(0xff13fa2200000000),
  3948. 138: uint64(0xeaa2ed7900000000),
  3949. 139: uint64(0x19321f4f00000000),
  3950. 140: uint64(0xc0c0c2cf00000000),
  3951. 141: uint64(0x335030f900000000),
  3952. 142: uint64(0x26e127a200000000),
  3953. 143: uint64(0xd571d59400000000),
  3954. 144: uint64(0x670126a100000000),
  3955. 145: uint64(0x9491d49700000000),
  3956. 146: uint64(0x8120c3cc00000000),
  3957. 147: uint64(0x72b031fa00000000),
  3958. 148: uint64(0xab42ec7a00000000),
  3959. 149: uint64(0x58d21e4c00000000),
  3960. 150: uint64(0x4d63091700000000),
  3961. 151: uint64(0xbef3fb2100000000),
  3962. 152: uint64(0xbe80c3cd00000000),
  3963. 153: uint64(0x4d1031fb00000000),
  3964. 154: uint64(0x58a126a000000000),
  3965. 155: uint64(0xab31d49600000000),
  3966. 156: uint64(0x72c3091600000000),
  3967. 157: uint64(0x8153fb2000000000),
  3968. 158: uint64(0x94e2ec7b00000000),
  3969. 159: uint64(0x67721e4d00000000),
  3970. 160: uint64(0xf0030a1000000000),
  3971. 161: uint64(0x0393f82600000000),
  3972. 162: uint64(0x1622ef7d00000000),
  3973. 163: uint64(0xe5b21d4b00000000),
  3974. 164: uint64(0x3c40c0cb00000000),
  3975. 165: uint64(0xcfd032fd00000000),
  3976. 166: uint64(0xda6125a600000000),
  3977. 167: uint64(0x29f1d79000000000),
  3978. 168: uint64(0x2982ef7c00000000),
  3979. 169: uint64(0xda121d4a00000000),
  3980. 170: uint64(0xcfa30a1100000000),
  3981. 171: uint64(0x3c33f82700000000),
  3982. 172: uint64(0xe5c125a700000000),
  3983. 173: uint64(0x1651d79100000000),
  3984. 174: uint64(0x03e0c0ca00000000),
  3985. 175: uint64(0xf07032fc00000000),
  3986. 176: uint64(0x4200c1c900000000),
  3987. 177: uint64(0xb19033ff00000000),
  3988. 178: uint64(0xa42124a400000000),
  3989. 179: uint64(0x57b1d69200000000),
  3990. 180: uint64(0x8e430b1200000000),
  3991. 181: uint64(0x7dd3f92400000000),
  3992. 182: uint64(0x6862ee7f00000000),
  3993. 183: uint64(0x9bf21c4900000000),
  3994. 184: uint64(0x9b8124a500000000),
  3995. 185: uint64(0x6811d69300000000),
  3996. 186: uint64(0x7da0c1c800000000),
  3997. 187: uint64(0x8e3033fe00000000),
  3998. 188: uint64(0x57c2ee7e00000000),
  3999. 189: uint64(0xa4521c4800000000),
  4000. 190: uint64(0xb1e30b1300000000),
  4001. 191: uint64(0x4273f92500000000),
  4002. 192: uint64(0x9f0023a900000000),
  4003. 193: uint64(0x6c90d19f00000000),
  4004. 194: uint64(0x7921c6c400000000),
  4005. 195: uint64(0x8ab134f200000000),
  4006. 196: uint64(0x5343e97200000000),
  4007. 197: uint64(0xa0d31b4400000000),
  4008. 198: uint64(0xb5620c1f00000000),
  4009. 199: uint64(0x46f2fe2900000000),
  4010. 200: uint64(0x4681c6c500000000),
  4011. 201: uint64(0xb51134f300000000),
  4012. 202: uint64(0xa0a023a800000000),
  4013. 203: uint64(0x5330d19e00000000),
  4014. 204: uint64(0x8ac20c1e00000000),
  4015. 205: uint64(0x7952fe2800000000),
  4016. 206: uint64(0x6ce3e97300000000),
  4017. 207: uint64(0x9f731b4500000000),
  4018. 208: uint64(0x2d03e87000000000),
  4019. 209: uint64(0xde931a4600000000),
  4020. 210: uint64(0xcb220d1d00000000),
  4021. 211: uint64(0x38b2ff2b00000000),
  4022. 212: uint64(0xe14022ab00000000),
  4023. 213: uint64(0x12d0d09d00000000),
  4024. 214: uint64(0x0761c7c600000000),
  4025. 215: uint64(0xf4f135f000000000),
  4026. 216: uint64(0xf4820d1c00000000),
  4027. 217: uint64(0x0712ff2a00000000),
  4028. 218: uint64(0x12a3e87100000000),
  4029. 219: uint64(0xe1331a4700000000),
  4030. 220: uint64(0x38c1c7c700000000),
  4031. 221: uint64(0xcb5135f100000000),
  4032. 222: uint64(0xdee022aa00000000),
  4033. 223: uint64(0x2d70d09c00000000),
  4034. 224: uint64(0xba01c4c100000000),
  4035. 225: uint64(0x499136f700000000),
  4036. 226: uint64(0x5c2021ac00000000),
  4037. 227: uint64(0xafb0d39a00000000),
  4038. 228: uint64(0x76420e1a00000000),
  4039. 229: uint64(0x85d2fc2c00000000),
  4040. 230: uint64(0x9063eb7700000000),
  4041. 231: uint64(0x63f3194100000000),
  4042. 232: uint64(0x638021ad00000000),
  4043. 233: uint64(0x9010d39b00000000),
  4044. 234: uint64(0x85a1c4c000000000),
  4045. 235: uint64(0x763136f600000000),
  4046. 236: uint64(0xafc3eb7600000000),
  4047. 237: uint64(0x5c53194000000000),
  4048. 238: uint64(0x49e20e1b00000000),
  4049. 239: uint64(0xba72fc2d00000000),
  4050. 240: uint64(0x08020f1800000000),
  4051. 241: uint64(0xfb92fd2e00000000),
  4052. 242: uint64(0xee23ea7500000000),
  4053. 243: uint64(0x1db3184300000000),
  4054. 244: uint64(0xc441c5c300000000),
  4055. 245: uint64(0x37d137f500000000),
  4056. 246: uint64(0x226020ae00000000),
  4057. 247: uint64(0xd1f0d29800000000),
  4058. 248: uint64(0xd183ea7400000000),
  4059. 249: uint64(0x2213184200000000),
  4060. 250: uint64(0x37a20f1900000000),
  4061. 251: uint64(0xc432fd2f00000000),
  4062. 252: uint64(0x1dc020af00000000),
  4063. 253: uint64(0xee50d29900000000),
  4064. 254: uint64(0xfbe1c5c200000000),
  4065. 255: uint64(0x087137f400000000),
  4066. },
  4067. 1: {
  4068. 1: uint64(0x3651822400000000),
  4069. 2: uint64(0x6ca2044900000000),
  4070. 3: uint64(0x5af3866d00000000),
  4071. 4: uint64(0xd844099200000000),
  4072. 5: uint64(0xee158bb600000000),
  4073. 6: uint64(0xb4e60ddb00000000),
  4074. 7: uint64(0x82b78fff00000000),
  4075. 8: uint64(0xf18f63ff00000000),
  4076. 9: uint64(0xc7dee1db00000000),
  4077. 10: uint64(0x9d2d67b600000000),
  4078. 11: uint64(0xab7ce59200000000),
  4079. 12: uint64(0x29cb6a6d00000000),
  4080. 13: uint64(0x1f9ae84900000000),
  4081. 14: uint64(0x45696e2400000000),
  4082. 15: uint64(0x7338ec0000000000),
  4083. 16: uint64(0xa319b62500000000),
  4084. 17: uint64(0x9548340100000000),
  4085. 18: uint64(0xcfbbb26c00000000),
  4086. 19: uint64(0xf9ea304800000000),
  4087. 20: uint64(0x7b5dbfb700000000),
  4088. 21: uint64(0x4d0c3d9300000000),
  4089. 22: uint64(0x17ffbbfe00000000),
  4090. 23: uint64(0x21ae39da00000000),
  4091. 24: uint64(0x5296d5da00000000),
  4092. 25: uint64(0x64c757fe00000000),
  4093. 26: uint64(0x3e34d19300000000),
  4094. 27: uint64(0x086553b700000000),
  4095. 28: uint64(0x8ad2dc4800000000),
  4096. 29: uint64(0xbc835e6c00000000),
  4097. 30: uint64(0xe670d80100000000),
  4098. 31: uint64(0xd0215a2500000000),
  4099. 32: uint64(0x46336c4b00000000),
  4100. 33: uint64(0x7062ee6f00000000),
  4101. 34: uint64(0x2a91680200000000),
  4102. 35: uint64(0x1cc0ea2600000000),
  4103. 36: uint64(0x9e7765d900000000),
  4104. 37: uint64(0xa826e7fd00000000),
  4105. 38: uint64(0xf2d5619000000000),
  4106. 39: uint64(0xc484e3b400000000),
  4107. 40: uint64(0xb7bc0fb400000000),
  4108. 41: uint64(0x81ed8d9000000000),
  4109. 42: uint64(0xdb1e0bfd00000000),
  4110. 43: uint64(0xed4f89d900000000),
  4111. 44: uint64(0x6ff8062600000000),
  4112. 45: uint64(0x59a9840200000000),
  4113. 46: uint64(0x035a026f00000000),
  4114. 47: uint64(0x350b804b00000000),
  4115. 48: uint64(0xe52ada6e00000000),
  4116. 49: uint64(0xd37b584a00000000),
  4117. 50: uint64(0x8988de2700000000),
  4118. 51: uint64(0xbfd95c0300000000),
  4119. 52: uint64(0x3d6ed3fc00000000),
  4120. 53: uint64(0x0b3f51d800000000),
  4121. 54: uint64(0x51ccd7b500000000),
  4122. 55: uint64(0x679d559100000000),
  4123. 56: uint64(0x14a5b99100000000),
  4124. 57: uint64(0x22f43bb500000000),
  4125. 58: uint64(0x7807bdd800000000),
  4126. 59: uint64(0x4e563ffc00000000),
  4127. 60: uint64(0xcce1b00300000000),
  4128. 61: uint64(0xfab0322700000000),
  4129. 62: uint64(0xa043b44a00000000),
  4130. 63: uint64(0x9612366e00000000),
  4131. 64: uint64(0x8c66d89600000000),
  4132. 65: uint64(0xba375ab200000000),
  4133. 66: uint64(0xe0c4dcdf00000000),
  4134. 67: uint64(0xd6955efb00000000),
  4135. 68: uint64(0x5422d10400000000),
  4136. 69: uint64(0x6273532000000000),
  4137. 70: uint64(0x3880d54d00000000),
  4138. 71: uint64(0x0ed1576900000000),
  4139. 72: uint64(0x7de9bb6900000000),
  4140. 73: uint64(0x4bb8394d00000000),
  4141. 74: uint64(0x114bbf2000000000),
  4142. 75: uint64(0x271a3d0400000000),
  4143. 76: uint64(0xa5adb2fb00000000),
  4144. 77: uint64(0x93fc30df00000000),
  4145. 78: uint64(0xc90fb6b200000000),
  4146. 79: uint64(0xff5e349600000000),
  4147. 80: uint64(0x2f7f6eb300000000),
  4148. 81: uint64(0x192eec9700000000),
  4149. 82: uint64(0x43dd6afa00000000),
  4150. 83: uint64(0x758ce8de00000000),
  4151. 84: uint64(0xf73b672100000000),
  4152. 85: uint64(0xc16ae50500000000),
  4153. 86: uint64(0x9b99636800000000),
  4154. 87: uint64(0xadc8e14c00000000),
  4155. 88: uint64(0xdef00d4c00000000),
  4156. 89: uint64(0xe8a18f6800000000),
  4157. 90: uint64(0xb252090500000000),
  4158. 91: uint64(0x84038b2100000000),
  4159. 92: uint64(0x06b404de00000000),
  4160. 93: uint64(0x30e586fa00000000),
  4161. 94: uint64(0x6a16009700000000),
  4162. 95: uint64(0x5c4782b300000000),
  4163. 96: uint64(0xca55b4dd00000000),
  4164. 97: uint64(0xfc0436f900000000),
  4165. 98: uint64(0xa6f7b09400000000),
  4166. 99: uint64(0x90a632b000000000),
  4167. 100: uint64(0x1211bd4f00000000),
  4168. 101: uint64(0x24403f6b00000000),
  4169. 102: uint64(0x7eb3b90600000000),
  4170. 103: uint64(0x48e23b2200000000),
  4171. 104: uint64(0x3bdad72200000000),
  4172. 105: uint64(0x0d8b550600000000),
  4173. 106: uint64(0x5778d36b00000000),
  4174. 107: uint64(0x6129514f00000000),
  4175. 108: uint64(0xe39edeb000000000),
  4176. 109: uint64(0xd5cf5c9400000000),
  4177. 110: uint64(0x8f3cdaf900000000),
  4178. 111: uint64(0xb96d58dd00000000),
  4179. 112: uint64(0x694c02f800000000),
  4180. 113: uint64(0x5f1d80dc00000000),
  4181. 114: uint64(0x05ee06b100000000),
  4182. 115: uint64(0x33bf849500000000),
  4183. 116: uint64(0xb1080b6a00000000),
  4184. 117: uint64(0x8759894e00000000),
  4185. 118: uint64(0xddaa0f2300000000),
  4186. 119: uint64(0xebfb8d0700000000),
  4187. 120: uint64(0x98c3610700000000),
  4188. 121: uint64(0xae92e32300000000),
  4189. 122: uint64(0xf461654e00000000),
  4190. 123: uint64(0xc230e76a00000000),
  4191. 124: uint64(0x4087689500000000),
  4192. 125: uint64(0x76d6eab100000000),
  4193. 126: uint64(0x2c256cdc00000000),
  4194. 127: uint64(0x1a74eef800000000),
  4195. 128: uint64(0x59cbc1f600000000),
  4196. 129: uint64(0x6f9a43d200000000),
  4197. 130: uint64(0x3569c5bf00000000),
  4198. 131: uint64(0x0338479b00000000),
  4199. 132: uint64(0x818fc86400000000),
  4200. 133: uint64(0xb7de4a4000000000),
  4201. 134: uint64(0xed2dcc2d00000000),
  4202. 135: uint64(0xdb7c4e0900000000),
  4203. 136: uint64(0xa844a20900000000),
  4204. 137: uint64(0x9e15202d00000000),
  4205. 138: uint64(0xc4e6a64000000000),
  4206. 139: uint64(0xf2b7246400000000),
  4207. 140: uint64(0x7000ab9b00000000),
  4208. 141: uint64(0x465129bf00000000),
  4209. 142: uint64(0x1ca2afd200000000),
  4210. 143: uint64(0x2af32df600000000),
  4211. 144: uint64(0xfad277d300000000),
  4212. 145: uint64(0xcc83f5f700000000),
  4213. 146: uint64(0x9670739a00000000),
  4214. 147: uint64(0xa021f1be00000000),
  4215. 148: uint64(0x22967e4100000000),
  4216. 149: uint64(0x14c7fc6500000000),
  4217. 150: uint64(0x4e347a0800000000),
  4218. 151: uint64(0x7865f82c00000000),
  4219. 152: uint64(0x0b5d142c00000000),
  4220. 153: uint64(0x3d0c960800000000),
  4221. 154: uint64(0x67ff106500000000),
  4222. 155: uint64(0x51ae924100000000),
  4223. 156: uint64(0xd3191dbe00000000),
  4224. 157: uint64(0xe5489f9a00000000),
  4225. 158: uint64(0xbfbb19f700000000),
  4226. 159: uint64(0x89ea9bd300000000),
  4227. 160: uint64(0x1ff8adbd00000000),
  4228. 161: uint64(0x29a92f9900000000),
  4229. 162: uint64(0x735aa9f400000000),
  4230. 163: uint64(0x450b2bd000000000),
  4231. 164: uint64(0xc7bca42f00000000),
  4232. 165: uint64(0xf1ed260b00000000),
  4233. 166: uint64(0xab1ea06600000000),
  4234. 167: uint64(0x9d4f224200000000),
  4235. 168: uint64(0xee77ce4200000000),
  4236. 169: uint64(0xd8264c6600000000),
  4237. 170: uint64(0x82d5ca0b00000000),
  4238. 171: uint64(0xb484482f00000000),
  4239. 172: uint64(0x3633c7d000000000),
  4240. 173: uint64(0x006245f400000000),
  4241. 174: uint64(0x5a91c39900000000),
  4242. 175: uint64(0x6cc041bd00000000),
  4243. 176: uint64(0xbce11b9800000000),
  4244. 177: uint64(0x8ab099bc00000000),
  4245. 178: uint64(0xd0431fd100000000),
  4246. 179: uint64(0xe6129df500000000),
  4247. 180: uint64(0x64a5120a00000000),
  4248. 181: uint64(0x52f4902e00000000),
  4249. 182: uint64(0x0807164300000000),
  4250. 183: uint64(0x3e56946700000000),
  4251. 184: uint64(0x4d6e786700000000),
  4252. 185: uint64(0x7b3ffa4300000000),
  4253. 186: uint64(0x21cc7c2e00000000),
  4254. 187: uint64(0x179dfe0a00000000),
  4255. 188: uint64(0x952a71f500000000),
  4256. 189: uint64(0xa37bf3d100000000),
  4257. 190: uint64(0xf98875bc00000000),
  4258. 191: uint64(0xcfd9f79800000000),
  4259. 192: uint64(0xd5ad196000000000),
  4260. 193: uint64(0xe3fc9b4400000000),
  4261. 194: uint64(0xb90f1d2900000000),
  4262. 195: uint64(0x8f5e9f0d00000000),
  4263. 196: uint64(0x0de910f200000000),
  4264. 197: uint64(0x3bb892d600000000),
  4265. 198: uint64(0x614b14bb00000000),
  4266. 199: uint64(0x571a969f00000000),
  4267. 200: uint64(0x24227a9f00000000),
  4268. 201: uint64(0x1273f8bb00000000),
  4269. 202: uint64(0x48807ed600000000),
  4270. 203: uint64(0x7ed1fcf200000000),
  4271. 204: uint64(0xfc66730d00000000),
  4272. 205: uint64(0xca37f12900000000),
  4273. 206: uint64(0x90c4774400000000),
  4274. 207: uint64(0xa695f56000000000),
  4275. 208: uint64(0x76b4af4500000000),
  4276. 209: uint64(0x40e52d6100000000),
  4277. 210: uint64(0x1a16ab0c00000000),
  4278. 211: uint64(0x2c47292800000000),
  4279. 212: uint64(0xaef0a6d700000000),
  4280. 213: uint64(0x98a124f300000000),
  4281. 214: uint64(0xc252a29e00000000),
  4282. 215: uint64(0xf40320ba00000000),
  4283. 216: uint64(0x873bccba00000000),
  4284. 217: uint64(0xb16a4e9e00000000),
  4285. 218: uint64(0xeb99c8f300000000),
  4286. 219: uint64(0xddc84ad700000000),
  4287. 220: uint64(0x5f7fc52800000000),
  4288. 221: uint64(0x692e470c00000000),
  4289. 222: uint64(0x33ddc16100000000),
  4290. 223: uint64(0x058c434500000000),
  4291. 224: uint64(0x939e752b00000000),
  4292. 225: uint64(0xa5cff70f00000000),
  4293. 226: uint64(0xff3c716200000000),
  4294. 227: uint64(0xc96df34600000000),
  4295. 228: uint64(0x4bda7cb900000000),
  4296. 229: uint64(0x7d8bfe9d00000000),
  4297. 230: uint64(0x277878f000000000),
  4298. 231: uint64(0x1129fad400000000),
  4299. 232: uint64(0x621116d400000000),
  4300. 233: uint64(0x544094f000000000),
  4301. 234: uint64(0x0eb3129d00000000),
  4302. 235: uint64(0x38e290b900000000),
  4303. 236: uint64(0xba551f4600000000),
  4304. 237: uint64(0x8c049d6200000000),
  4305. 238: uint64(0xd6f71b0f00000000),
  4306. 239: uint64(0xe0a6992b00000000),
  4307. 240: uint64(0x3087c30e00000000),
  4308. 241: uint64(0x06d6412a00000000),
  4309. 242: uint64(0x5c25c74700000000),
  4310. 243: uint64(0x6a74456300000000),
  4311. 244: uint64(0xe8c3ca9c00000000),
  4312. 245: uint64(0xde9248b800000000),
  4313. 246: uint64(0x8461ced500000000),
  4314. 247: uint64(0xb2304cf100000000),
  4315. 248: uint64(0xc108a0f100000000),
  4316. 249: uint64(0xf75922d500000000),
  4317. 250: uint64(0xadaaa4b800000000),
  4318. 251: uint64(0x9bfb269c00000000),
  4319. 252: uint64(0x194ca96300000000),
  4320. 253: uint64(0x2f1d2b4700000000),
  4321. 254: uint64(0x75eead2a00000000),
  4322. 255: uint64(0x43bf2f0e00000000),
  4323. },
  4324. 2: {
  4325. 1: uint64(0xc8179ecf00000000),
  4326. 2: uint64(0xd1294d4400000000),
  4327. 3: uint64(0x193ed38b00000000),
  4328. 4: uint64(0xa2539a8800000000),
  4329. 5: uint64(0x6a44044700000000),
  4330. 6: uint64(0x737ad7cc00000000),
  4331. 7: uint64(0xbb6d490300000000),
  4332. 8: uint64(0x05a145ca00000000),
  4333. 9: uint64(0xcdb6db0500000000),
  4334. 10: uint64(0xd488088e00000000),
  4335. 11: uint64(0x1c9f964100000000),
  4336. 12: uint64(0xa7f2df4200000000),
  4337. 13: uint64(0x6fe5418d00000000),
  4338. 14: uint64(0x76db920600000000),
  4339. 15: uint64(0xbecc0cc900000000),
  4340. 16: uint64(0x4b44fa4f00000000),
  4341. 17: uint64(0x8353648000000000),
  4342. 18: uint64(0x9a6db70b00000000),
  4343. 19: uint64(0x527a29c400000000),
  4344. 20: uint64(0xe91760c700000000),
  4345. 21: uint64(0x2100fe0800000000),
  4346. 22: uint64(0x383e2d8300000000),
  4347. 23: uint64(0xf029b34c00000000),
  4348. 24: uint64(0x4ee5bf8500000000),
  4349. 25: uint64(0x86f2214a00000000),
  4350. 26: uint64(0x9fccf2c100000000),
  4351. 27: uint64(0x57db6c0e00000000),
  4352. 28: uint64(0xecb6250d00000000),
  4353. 29: uint64(0x24a1bbc200000000),
  4354. 30: uint64(0x3d9f684900000000),
  4355. 31: uint64(0xf588f68600000000),
  4356. 32: uint64(0x9688f49f00000000),
  4357. 33: uint64(0x5e9f6a5000000000),
  4358. 34: uint64(0x47a1b9db00000000),
  4359. 35: uint64(0x8fb6271400000000),
  4360. 36: uint64(0x34db6e1700000000),
  4361. 37: uint64(0xfcccf0d800000000),
  4362. 38: uint64(0xe5f2235300000000),
  4363. 39: uint64(0x2de5bd9c00000000),
  4364. 40: uint64(0x9329b15500000000),
  4365. 41: uint64(0x5b3e2f9a00000000),
  4366. 42: uint64(0x4200fc1100000000),
  4367. 43: uint64(0x8a1762de00000000),
  4368. 44: uint64(0x317a2bdd00000000),
  4369. 45: uint64(0xf96db51200000000),
  4370. 46: uint64(0xe053669900000000),
  4371. 47: uint64(0x2844f85600000000),
  4372. 48: uint64(0xddcc0ed000000000),
  4373. 49: uint64(0x15db901f00000000),
  4374. 50: uint64(0x0ce5439400000000),
  4375. 51: uint64(0xc4f2dd5b00000000),
  4376. 52: uint64(0x7f9f945800000000),
  4377. 53: uint64(0xb7880a9700000000),
  4378. 54: uint64(0xaeb6d91c00000000),
  4379. 55: uint64(0x66a147d300000000),
  4380. 56: uint64(0xd86d4b1a00000000),
  4381. 57: uint64(0x107ad5d500000000),
  4382. 58: uint64(0x0944065e00000000),
  4383. 59: uint64(0xc153989100000000),
  4384. 60: uint64(0x7a3ed19200000000),
  4385. 61: uint64(0xb2294f5d00000000),
  4386. 62: uint64(0xab179cd600000000),
  4387. 63: uint64(0x6300021900000000),
  4388. 64: uint64(0x6d1798e400000000),
  4389. 65: uint64(0xa500062b00000000),
  4390. 66: uint64(0xbc3ed5a000000000),
  4391. 67: uint64(0x74294b6f00000000),
  4392. 68: uint64(0xcf44026c00000000),
  4393. 69: uint64(0x07539ca300000000),
  4394. 70: uint64(0x1e6d4f2800000000),
  4395. 71: uint64(0xd67ad1e700000000),
  4396. 72: uint64(0x68b6dd2e00000000),
  4397. 73: uint64(0xa0a143e100000000),
  4398. 74: uint64(0xb99f906a00000000),
  4399. 75: uint64(0x71880ea500000000),
  4400. 76: uint64(0xcae547a600000000),
  4401. 77: uint64(0x02f2d96900000000),
  4402. 78: uint64(0x1bcc0ae200000000),
  4403. 79: uint64(0xd3db942d00000000),
  4404. 80: uint64(0x265362ab00000000),
  4405. 81: uint64(0xee44fc6400000000),
  4406. 82: uint64(0xf77a2fef00000000),
  4407. 83: uint64(0x3f6db12000000000),
  4408. 84: uint64(0x8400f82300000000),
  4409. 85: uint64(0x4c1766ec00000000),
  4410. 86: uint64(0x5529b56700000000),
  4411. 87: uint64(0x9d3e2ba800000000),
  4412. 88: uint64(0x23f2276100000000),
  4413. 89: uint64(0xebe5b9ae00000000),
  4414. 90: uint64(0xf2db6a2500000000),
  4415. 91: uint64(0x3accf4ea00000000),
  4416. 92: uint64(0x81a1bde900000000),
  4417. 93: uint64(0x49b6232600000000),
  4418. 94: uint64(0x5088f0ad00000000),
  4419. 95: uint64(0x989f6e6200000000),
  4420. 96: uint64(0xfb9f6c7b00000000),
  4421. 97: uint64(0x3388f2b400000000),
  4422. 98: uint64(0x2ab6213f00000000),
  4423. 99: uint64(0xe2a1bff000000000),
  4424. 100: uint64(0x59ccf6f300000000),
  4425. 101: uint64(0x91db683c00000000),
  4426. 102: uint64(0x88e5bbb700000000),
  4427. 103: uint64(0x40f2257800000000),
  4428. 104: uint64(0xfe3e29b100000000),
  4429. 105: uint64(0x3629b77e00000000),
  4430. 106: uint64(0x2f1764f500000000),
  4431. 107: uint64(0xe700fa3a00000000),
  4432. 108: uint64(0x5c6db33900000000),
  4433. 109: uint64(0x947a2df600000000),
  4434. 110: uint64(0x8d44fe7d00000000),
  4435. 111: uint64(0x455360b200000000),
  4436. 112: uint64(0xb0db963400000000),
  4437. 113: uint64(0x78cc08fb00000000),
  4438. 114: uint64(0x61f2db7000000000),
  4439. 115: uint64(0xa9e545bf00000000),
  4440. 116: uint64(0x12880cbc00000000),
  4441. 117: uint64(0xda9f927300000000),
  4442. 118: uint64(0xc3a141f800000000),
  4443. 119: uint64(0x0bb6df3700000000),
  4444. 120: uint64(0xb57ad3fe00000000),
  4445. 121: uint64(0x7d6d4d3100000000),
  4446. 122: uint64(0x64539eba00000000),
  4447. 123: uint64(0xac44007500000000),
  4448. 124: uint64(0x1729497600000000),
  4449. 125: uint64(0xdf3ed7b900000000),
  4450. 126: uint64(0xc600043200000000),
  4451. 127: uint64(0x0e179afd00000000),
  4452. 128: uint64(0x9b28411200000000),
  4453. 129: uint64(0x533fdfdd00000000),
  4454. 130: uint64(0x4a010c5600000000),
  4455. 131: uint64(0x8216929900000000),
  4456. 132: uint64(0x397bdb9a00000000),
  4457. 133: uint64(0xf16c455500000000),
  4458. 134: uint64(0xe85296de00000000),
  4459. 135: uint64(0x2045081100000000),
  4460. 136: uint64(0x9e8904d800000000),
  4461. 137: uint64(0x569e9a1700000000),
  4462. 138: uint64(0x4fa0499c00000000),
  4463. 139: uint64(0x87b7d75300000000),
  4464. 140: uint64(0x3cda9e5000000000),
  4465. 141: uint64(0xf4cd009f00000000),
  4466. 142: uint64(0xedf3d31400000000),
  4467. 143: uint64(0x25e44ddb00000000),
  4468. 144: uint64(0xd06cbb5d00000000),
  4469. 145: uint64(0x187b259200000000),
  4470. 146: uint64(0x0145f61900000000),
  4471. 147: uint64(0xc95268d600000000),
  4472. 148: uint64(0x723f21d500000000),
  4473. 149: uint64(0xba28bf1a00000000),
  4474. 150: uint64(0xa3166c9100000000),
  4475. 151: uint64(0x6b01f25e00000000),
  4476. 152: uint64(0xd5cdfe9700000000),
  4477. 153: uint64(0x1dda605800000000),
  4478. 154: uint64(0x04e4b3d300000000),
  4479. 155: uint64(0xccf32d1c00000000),
  4480. 156: uint64(0x779e641f00000000),
  4481. 157: uint64(0xbf89fad000000000),
  4482. 158: uint64(0xa6b7295b00000000),
  4483. 159: uint64(0x6ea0b79400000000),
  4484. 160: uint64(0x0da0b58d00000000),
  4485. 161: uint64(0xc5b72b4200000000),
  4486. 162: uint64(0xdc89f8c900000000),
  4487. 163: uint64(0x149e660600000000),
  4488. 164: uint64(0xaff32f0500000000),
  4489. 165: uint64(0x67e4b1ca00000000),
  4490. 166: uint64(0x7eda624100000000),
  4491. 167: uint64(0xb6cdfc8e00000000),
  4492. 168: uint64(0x0801f04700000000),
  4493. 169: uint64(0xc0166e8800000000),
  4494. 170: uint64(0xd928bd0300000000),
  4495. 171: uint64(0x113f23cc00000000),
  4496. 172: uint64(0xaa526acf00000000),
  4497. 173: uint64(0x6245f40000000000),
  4498. 174: uint64(0x7b7b278b00000000),
  4499. 175: uint64(0xb36cb94400000000),
  4500. 176: uint64(0x46e44fc200000000),
  4501. 177: uint64(0x8ef3d10d00000000),
  4502. 178: uint64(0x97cd028600000000),
  4503. 179: uint64(0x5fda9c4900000000),
  4504. 180: uint64(0xe4b7d54a00000000),
  4505. 181: uint64(0x2ca04b8500000000),
  4506. 182: uint64(0x359e980e00000000),
  4507. 183: uint64(0xfd8906c100000000),
  4508. 184: uint64(0x43450a0800000000),
  4509. 185: uint64(0x8b5294c700000000),
  4510. 186: uint64(0x926c474c00000000),
  4511. 187: uint64(0x5a7bd98300000000),
  4512. 188: uint64(0xe116908000000000),
  4513. 189: uint64(0x29010e4f00000000),
  4514. 190: uint64(0x303fddc400000000),
  4515. 191: uint64(0xf828430b00000000),
  4516. 192: uint64(0xf63fd9f600000000),
  4517. 193: uint64(0x3e28473900000000),
  4518. 194: uint64(0x271694b200000000),
  4519. 195: uint64(0xef010a7d00000000),
  4520. 196: uint64(0x546c437e00000000),
  4521. 197: uint64(0x9c7bddb100000000),
  4522. 198: uint64(0x85450e3a00000000),
  4523. 199: uint64(0x4d5290f500000000),
  4524. 200: uint64(0xf39e9c3c00000000),
  4525. 201: uint64(0x3b8902f300000000),
  4526. 202: uint64(0x22b7d17800000000),
  4527. 203: uint64(0xeaa04fb700000000),
  4528. 204: uint64(0x51cd06b400000000),
  4529. 205: uint64(0x99da987b00000000),
  4530. 206: uint64(0x80e44bf000000000),
  4531. 207: uint64(0x48f3d53f00000000),
  4532. 208: uint64(0xbd7b23b900000000),
  4533. 209: uint64(0x756cbd7600000000),
  4534. 210: uint64(0x6c526efd00000000),
  4535. 211: uint64(0xa445f03200000000),
  4536. 212: uint64(0x1f28b93100000000),
  4537. 213: uint64(0xd73f27fe00000000),
  4538. 214: uint64(0xce01f47500000000),
  4539. 215: uint64(0x06166aba00000000),
  4540. 216: uint64(0xb8da667300000000),
  4541. 217: uint64(0x70cdf8bc00000000),
  4542. 218: uint64(0x69f32b3700000000),
  4543. 219: uint64(0xa1e4b5f800000000),
  4544. 220: uint64(0x1a89fcfb00000000),
  4545. 221: uint64(0xd29e623400000000),
  4546. 222: uint64(0xcba0b1bf00000000),
  4547. 223: uint64(0x03b72f7000000000),
  4548. 224: uint64(0x60b72d6900000000),
  4549. 225: uint64(0xa8a0b3a600000000),
  4550. 226: uint64(0xb19e602d00000000),
  4551. 227: uint64(0x7989fee200000000),
  4552. 228: uint64(0xc2e4b7e100000000),
  4553. 229: uint64(0x0af3292e00000000),
  4554. 230: uint64(0x13cdfaa500000000),
  4555. 231: uint64(0xdbda646a00000000),
  4556. 232: uint64(0x651668a300000000),
  4557. 233: uint64(0xad01f66c00000000),
  4558. 234: uint64(0xb43f25e700000000),
  4559. 235: uint64(0x7c28bb2800000000),
  4560. 236: uint64(0xc745f22b00000000),
  4561. 237: uint64(0x0f526ce400000000),
  4562. 238: uint64(0x166cbf6f00000000),
  4563. 239: uint64(0xde7b21a000000000),
  4564. 240: uint64(0x2bf3d72600000000),
  4565. 241: uint64(0xe3e449e900000000),
  4566. 242: uint64(0xfada9a6200000000),
  4567. 243: uint64(0x32cd04ad00000000),
  4568. 244: uint64(0x89a04dae00000000),
  4569. 245: uint64(0x41b7d36100000000),
  4570. 246: uint64(0x588900ea00000000),
  4571. 247: uint64(0x909e9e2500000000),
  4572. 248: uint64(0x2e5292ec00000000),
  4573. 249: uint64(0xe6450c2300000000),
  4574. 250: uint64(0xff7bdfa800000000),
  4575. 251: uint64(0x376c416700000000),
  4576. 252: uint64(0x8c01086400000000),
  4577. 253: uint64(0x441696ab00000000),
  4578. 254: uint64(0x5d28452000000000),
  4579. 255: uint64(0x953fdbef00000000),
  4580. },
  4581. 3: {
  4582. 1: uint64(0x95d4709500000000),
  4583. 2: uint64(0x6baf90f100000000),
  4584. 3: uint64(0xfe7be06400000000),
  4585. 4: uint64(0x9758503800000000),
  4586. 5: uint64(0x028c20ad00000000),
  4587. 6: uint64(0xfcf7c0c900000000),
  4588. 7: uint64(0x6923b05c00000000),
  4589. 8: uint64(0x2eb1a07000000000),
  4590. 9: uint64(0xbb65d0e500000000),
  4591. 10: uint64(0x451e308100000000),
  4592. 11: uint64(0xd0ca401400000000),
  4593. 12: uint64(0xb9e9f04800000000),
  4594. 13: uint64(0x2c3d80dd00000000),
  4595. 14: uint64(0xd24660b900000000),
  4596. 15: uint64(0x4792102c00000000),
  4597. 16: uint64(0x5c6241e100000000),
  4598. 17: uint64(0xc9b6317400000000),
  4599. 18: uint64(0x37cdd11000000000),
  4600. 19: uint64(0xa219a18500000000),
  4601. 20: uint64(0xcb3a11d900000000),
  4602. 21: uint64(0x5eee614c00000000),
  4603. 22: uint64(0xa095812800000000),
  4604. 23: uint64(0x3541f1bd00000000),
  4605. 24: uint64(0x72d3e19100000000),
  4606. 25: uint64(0xe707910400000000),
  4607. 26: uint64(0x197c716000000000),
  4608. 27: uint64(0x8ca801f500000000),
  4609. 28: uint64(0xe58bb1a900000000),
  4610. 29: uint64(0x705fc13c00000000),
  4611. 30: uint64(0x8e24215800000000),
  4612. 31: uint64(0x1bf051cd00000000),
  4613. 32: uint64(0xf9c2f31900000000),
  4614. 33: uint64(0x6c16838c00000000),
  4615. 34: uint64(0x926d63e800000000),
  4616. 35: uint64(0x07b9137d00000000),
  4617. 36: uint64(0x6e9aa32100000000),
  4618. 37: uint64(0xfb4ed3b400000000),
  4619. 38: uint64(0x053533d000000000),
  4620. 39: uint64(0x90e1434500000000),
  4621. 40: uint64(0xd773536900000000),
  4622. 41: uint64(0x42a723fc00000000),
  4623. 42: uint64(0xbcdcc39800000000),
  4624. 43: uint64(0x2908b30d00000000),
  4625. 44: uint64(0x402b035100000000),
  4626. 45: uint64(0xd5ff73c400000000),
  4627. 46: uint64(0x2b8493a000000000),
  4628. 47: uint64(0xbe50e33500000000),
  4629. 48: uint64(0xa5a0b2f800000000),
  4630. 49: uint64(0x3074c26d00000000),
  4631. 50: uint64(0xce0f220900000000),
  4632. 51: uint64(0x5bdb529c00000000),
  4633. 52: uint64(0x32f8e2c000000000),
  4634. 53: uint64(0xa72c925500000000),
  4635. 54: uint64(0x5957723100000000),
  4636. 55: uint64(0xcc8302a400000000),
  4637. 56: uint64(0x8b11128800000000),
  4638. 57: uint64(0x1ec5621d00000000),
  4639. 58: uint64(0xe0be827900000000),
  4640. 59: uint64(0x756af2ec00000000),
  4641. 60: uint64(0x1c4942b000000000),
  4642. 61: uint64(0x899d322500000000),
  4643. 62: uint64(0x77e6d24100000000),
  4644. 63: uint64(0xe232a2d400000000),
  4645. 64: uint64(0xf285e73300000000),
  4646. 65: uint64(0x675197a600000000),
  4647. 66: uint64(0x992a77c200000000),
  4648. 67: uint64(0x0cfe075700000000),
  4649. 68: uint64(0x65ddb70b00000000),
  4650. 69: uint64(0xf009c79e00000000),
  4651. 70: uint64(0x0e7227fa00000000),
  4652. 71: uint64(0x9ba6576f00000000),
  4653. 72: uint64(0xdc34474300000000),
  4654. 73: uint64(0x49e037d600000000),
  4655. 74: uint64(0xb79bd7b200000000),
  4656. 75: uint64(0x224fa72700000000),
  4657. 76: uint64(0x4b6c177b00000000),
  4658. 77: uint64(0xdeb867ee00000000),
  4659. 78: uint64(0x20c3878a00000000),
  4660. 79: uint64(0xb517f71f00000000),
  4661. 80: uint64(0xaee7a6d200000000),
  4662. 81: uint64(0x3b33d64700000000),
  4663. 82: uint64(0xc548362300000000),
  4664. 83: uint64(0x509c46b600000000),
  4665. 84: uint64(0x39bff6ea00000000),
  4666. 85: uint64(0xac6b867f00000000),
  4667. 86: uint64(0x5210661b00000000),
  4668. 87: uint64(0xc7c4168e00000000),
  4669. 88: uint64(0x805606a200000000),
  4670. 89: uint64(0x1582763700000000),
  4671. 90: uint64(0xebf9965300000000),
  4672. 91: uint64(0x7e2de6c600000000),
  4673. 92: uint64(0x170e569a00000000),
  4674. 93: uint64(0x82da260f00000000),
  4675. 94: uint64(0x7ca1c66b00000000),
  4676. 95: uint64(0xe975b6fe00000000),
  4677. 96: uint64(0x0b47142a00000000),
  4678. 97: uint64(0x9e9364bf00000000),
  4679. 98: uint64(0x60e884db00000000),
  4680. 99: uint64(0xf53cf44e00000000),
  4681. 100: uint64(0x9c1f441200000000),
  4682. 101: uint64(0x09cb348700000000),
  4683. 102: uint64(0xf7b0d4e300000000),
  4684. 103: uint64(0x6264a47600000000),
  4685. 104: uint64(0x25f6b45a00000000),
  4686. 105: uint64(0xb022c4cf00000000),
  4687. 106: uint64(0x4e5924ab00000000),
  4688. 107: uint64(0xdb8d543e00000000),
  4689. 108: uint64(0xb2aee46200000000),
  4690. 109: uint64(0x277a94f700000000),
  4691. 110: uint64(0xd901749300000000),
  4692. 111: uint64(0x4cd5040600000000),
  4693. 112: uint64(0x572555cb00000000),
  4694. 113: uint64(0xc2f1255e00000000),
  4695. 114: uint64(0x3c8ac53a00000000),
  4696. 115: uint64(0xa95eb5af00000000),
  4697. 116: uint64(0xc07d05f300000000),
  4698. 117: uint64(0x55a9756600000000),
  4699. 118: uint64(0xabd2950200000000),
  4700. 119: uint64(0x3e06e59700000000),
  4701. 120: uint64(0x7994f5bb00000000),
  4702. 121: uint64(0xec40852e00000000),
  4703. 122: uint64(0x123b654a00000000),
  4704. 123: uint64(0x87ef15df00000000),
  4705. 124: uint64(0xeecca58300000000),
  4706. 125: uint64(0x7b18d51600000000),
  4707. 126: uint64(0x8563357200000000),
  4708. 127: uint64(0x10b745e700000000),
  4709. 128: uint64(0xe40bcf6700000000),
  4710. 129: uint64(0x71dfbff200000000),
  4711. 130: uint64(0x8fa45f9600000000),
  4712. 131: uint64(0x1a702f0300000000),
  4713. 132: uint64(0x73539f5f00000000),
  4714. 133: uint64(0xe687efca00000000),
  4715. 134: uint64(0x18fc0fae00000000),
  4716. 135: uint64(0x8d287f3b00000000),
  4717. 136: uint64(0xcaba6f1700000000),
  4718. 137: uint64(0x5f6e1f8200000000),
  4719. 138: uint64(0xa115ffe600000000),
  4720. 139: uint64(0x34c18f7300000000),
  4721. 140: uint64(0x5de23f2f00000000),
  4722. 141: uint64(0xc8364fba00000000),
  4723. 142: uint64(0x364dafde00000000),
  4724. 143: uint64(0xa399df4b00000000),
  4725. 144: uint64(0xb8698e8600000000),
  4726. 145: uint64(0x2dbdfe1300000000),
  4727. 146: uint64(0xd3c61e7700000000),
  4728. 147: uint64(0x46126ee200000000),
  4729. 148: uint64(0x2f31debe00000000),
  4730. 149: uint64(0xbae5ae2b00000000),
  4731. 150: uint64(0x449e4e4f00000000),
  4732. 151: uint64(0xd14a3eda00000000),
  4733. 152: uint64(0x96d82ef600000000),
  4734. 153: uint64(0x030c5e6300000000),
  4735. 154: uint64(0xfd77be0700000000),
  4736. 155: uint64(0x68a3ce9200000000),
  4737. 156: uint64(0x01807ece00000000),
  4738. 157: uint64(0x94540e5b00000000),
  4739. 158: uint64(0x6a2fee3f00000000),
  4740. 159: uint64(0xfffb9eaa00000000),
  4741. 160: uint64(0x1dc93c7e00000000),
  4742. 161: uint64(0x881d4ceb00000000),
  4743. 162: uint64(0x7666ac8f00000000),
  4744. 163: uint64(0xe3b2dc1a00000000),
  4745. 164: uint64(0x8a916c4600000000),
  4746. 165: uint64(0x1f451cd300000000),
  4747. 166: uint64(0xe13efcb700000000),
  4748. 167: uint64(0x74ea8c2200000000),
  4749. 168: uint64(0x33789c0e00000000),
  4750. 169: uint64(0xa6acec9b00000000),
  4751. 170: uint64(0x58d70cff00000000),
  4752. 171: uint64(0xcd037c6a00000000),
  4753. 172: uint64(0xa420cc3600000000),
  4754. 173: uint64(0x31f4bca300000000),
  4755. 174: uint64(0xcf8f5cc700000000),
  4756. 175: uint64(0x5a5b2c5200000000),
  4757. 176: uint64(0x41ab7d9f00000000),
  4758. 177: uint64(0xd47f0d0a00000000),
  4759. 178: uint64(0x2a04ed6e00000000),
  4760. 179: uint64(0xbfd09dfb00000000),
  4761. 180: uint64(0xd6f32da700000000),
  4762. 181: uint64(0x43275d3200000000),
  4763. 182: uint64(0xbd5cbd5600000000),
  4764. 183: uint64(0x2888cdc300000000),
  4765. 184: uint64(0x6f1addef00000000),
  4766. 185: uint64(0xfacead7a00000000),
  4767. 186: uint64(0x04b54d1e00000000),
  4768. 187: uint64(0x91613d8b00000000),
  4769. 188: uint64(0xf8428dd700000000),
  4770. 189: uint64(0x6d96fd4200000000),
  4771. 190: uint64(0x93ed1d2600000000),
  4772. 191: uint64(0x06396db300000000),
  4773. 192: uint64(0x168e285400000000),
  4774. 193: uint64(0x835a58c100000000),
  4775. 194: uint64(0x7d21b8a500000000),
  4776. 195: uint64(0xe8f5c83000000000),
  4777. 196: uint64(0x81d6786c00000000),
  4778. 197: uint64(0x140208f900000000),
  4779. 198: uint64(0xea79e89d00000000),
  4780. 199: uint64(0x7fad980800000000),
  4781. 200: uint64(0x383f882400000000),
  4782. 201: uint64(0xadebf8b100000000),
  4783. 202: uint64(0x539018d500000000),
  4784. 203: uint64(0xc644684000000000),
  4785. 204: uint64(0xaf67d81c00000000),
  4786. 205: uint64(0x3ab3a88900000000),
  4787. 206: uint64(0xc4c848ed00000000),
  4788. 207: uint64(0x511c387800000000),
  4789. 208: uint64(0x4aec69b500000000),
  4790. 209: uint64(0xdf38192000000000),
  4791. 210: uint64(0x2143f94400000000),
  4792. 211: uint64(0xb49789d100000000),
  4793. 212: uint64(0xddb4398d00000000),
  4794. 213: uint64(0x4860491800000000),
  4795. 214: uint64(0xb61ba97c00000000),
  4796. 215: uint64(0x23cfd9e900000000),
  4797. 216: uint64(0x645dc9c500000000),
  4798. 217: uint64(0xf189b95000000000),
  4799. 218: uint64(0x0ff2593400000000),
  4800. 219: uint64(0x9a2629a100000000),
  4801. 220: uint64(0xf30599fd00000000),
  4802. 221: uint64(0x66d1e96800000000),
  4803. 222: uint64(0x98aa090c00000000),
  4804. 223: uint64(0x0d7e799900000000),
  4805. 224: uint64(0xef4cdb4d00000000),
  4806. 225: uint64(0x7a98abd800000000),
  4807. 226: uint64(0x84e34bbc00000000),
  4808. 227: uint64(0x11373b2900000000),
  4809. 228: uint64(0x78148b7500000000),
  4810. 229: uint64(0xedc0fbe000000000),
  4811. 230: uint64(0x13bb1b8400000000),
  4812. 231: uint64(0x866f6b1100000000),
  4813. 232: uint64(0xc1fd7b3d00000000),
  4814. 233: uint64(0x54290ba800000000),
  4815. 234: uint64(0xaa52ebcc00000000),
  4816. 235: uint64(0x3f869b5900000000),
  4817. 236: uint64(0x56a52b0500000000),
  4818. 237: uint64(0xc3715b9000000000),
  4819. 238: uint64(0x3d0abbf400000000),
  4820. 239: uint64(0xa8decb6100000000),
  4821. 240: uint64(0xb32e9aac00000000),
  4822. 241: uint64(0x26faea3900000000),
  4823. 242: uint64(0xd8810a5d00000000),
  4824. 243: uint64(0x4d557ac800000000),
  4825. 244: uint64(0x2476ca9400000000),
  4826. 245: uint64(0xb1a2ba0100000000),
  4827. 246: uint64(0x4fd95a6500000000),
  4828. 247: uint64(0xda0d2af000000000),
  4829. 248: uint64(0x9d9f3adc00000000),
  4830. 249: uint64(0x084b4a4900000000),
  4831. 250: uint64(0xf630aa2d00000000),
  4832. 251: uint64(0x63e4dab800000000),
  4833. 252: uint64(0x0ac76ae400000000),
  4834. 253: uint64(0x9f131a7100000000),
  4835. 254: uint64(0x6168fa1500000000),
  4836. 255: uint64(0xf4bc8a8000000000),
  4837. },
  4838. 4: {
  4839. 1: uint64(0x1f17f08000000000),
  4840. 2: uint64(0x7f2891da00000000),
  4841. 3: uint64(0x603f615a00000000),
  4842. 4: uint64(0xbf56536e00000000),
  4843. 5: uint64(0xa041a3ee00000000),
  4844. 6: uint64(0xc07ec2b400000000),
  4845. 7: uint64(0xdf69323400000000),
  4846. 8: uint64(0x7eada6dc00000000),
  4847. 9: uint64(0x61ba565c00000000),
  4848. 10: uint64(0x0185370600000000),
  4849. 11: uint64(0x1e92c78600000000),
  4850. 12: uint64(0xc1fbf5b200000000),
  4851. 13: uint64(0xdeec053200000000),
  4852. 14: uint64(0xbed3646800000000),
  4853. 15: uint64(0xa1c494e800000000),
  4854. 16: uint64(0xbd5c3c6200000000),
  4855. 17: uint64(0xa24bcce200000000),
  4856. 18: uint64(0xc274adb800000000),
  4857. 19: uint64(0xdd635d3800000000),
  4858. 20: uint64(0x020a6f0c00000000),
  4859. 21: uint64(0x1d1d9f8c00000000),
  4860. 22: uint64(0x7d22fed600000000),
  4861. 23: uint64(0x62350e5600000000),
  4862. 24: uint64(0xc3f19abe00000000),
  4863. 25: uint64(0xdce66a3e00000000),
  4864. 26: uint64(0xbcd90b6400000000),
  4865. 27: uint64(0xa3cefbe400000000),
  4866. 28: uint64(0x7ca7c9d000000000),
  4867. 29: uint64(0x63b0395000000000),
  4868. 30: uint64(0x038f580a00000000),
  4869. 31: uint64(0x1c98a88a00000000),
  4870. 32: uint64(0x7ab978c400000000),
  4871. 33: uint64(0x65ae884400000000),
  4872. 34: uint64(0x0591e91e00000000),
  4873. 35: uint64(0x1a86199e00000000),
  4874. 36: uint64(0xc5ef2baa00000000),
  4875. 37: uint64(0xdaf8db2a00000000),
  4876. 38: uint64(0xbac7ba7000000000),
  4877. 39: uint64(0xa5d04af000000000),
  4878. 40: uint64(0x0414de1800000000),
  4879. 41: uint64(0x1b032e9800000000),
  4880. 42: uint64(0x7b3c4fc200000000),
  4881. 43: uint64(0x642bbf4200000000),
  4882. 44: uint64(0xbb428d7600000000),
  4883. 45: uint64(0xa4557df600000000),
  4884. 46: uint64(0xc46a1cac00000000),
  4885. 47: uint64(0xdb7dec2c00000000),
  4886. 48: uint64(0xc7e544a600000000),
  4887. 49: uint64(0xd8f2b42600000000),
  4888. 50: uint64(0xb8cdd57c00000000),
  4889. 51: uint64(0xa7da25fc00000000),
  4890. 52: uint64(0x78b317c800000000),
  4891. 53: uint64(0x67a4e74800000000),
  4892. 54: uint64(0x079b861200000000),
  4893. 55: uint64(0x188c769200000000),
  4894. 56: uint64(0xb948e27a00000000),
  4895. 57: uint64(0xa65f12fa00000000),
  4896. 58: uint64(0xc66073a000000000),
  4897. 59: uint64(0xd977832000000000),
  4898. 60: uint64(0x061eb11400000000),
  4899. 61: uint64(0x1909419400000000),
  4900. 62: uint64(0x793620ce00000000),
  4901. 63: uint64(0x6621d04e00000000),
  4902. 64: uint64(0xb574805300000000),
  4903. 65: uint64(0xaa6370d300000000),
  4904. 66: uint64(0xca5c118900000000),
  4905. 67: uint64(0xd54be10900000000),
  4906. 68: uint64(0x0a22d33d00000000),
  4907. 69: uint64(0x153523bd00000000),
  4908. 70: uint64(0x750a42e700000000),
  4909. 71: uint64(0x6a1db26700000000),
  4910. 72: uint64(0xcbd9268f00000000),
  4911. 73: uint64(0xd4ced60f00000000),
  4912. 74: uint64(0xb4f1b75500000000),
  4913. 75: uint64(0xabe647d500000000),
  4914. 76: uint64(0x748f75e100000000),
  4915. 77: uint64(0x6b98856100000000),
  4916. 78: uint64(0x0ba7e43b00000000),
  4917. 79: uint64(0x14b014bb00000000),
  4918. 80: uint64(0x0828bc3100000000),
  4919. 81: uint64(0x173f4cb100000000),
  4920. 82: uint64(0x77002deb00000000),
  4921. 83: uint64(0x6817dd6b00000000),
  4922. 84: uint64(0xb77eef5f00000000),
  4923. 85: uint64(0xa8691fdf00000000),
  4924. 86: uint64(0xc8567e8500000000),
  4925. 87: uint64(0xd7418e0500000000),
  4926. 88: uint64(0x76851aed00000000),
  4927. 89: uint64(0x6992ea6d00000000),
  4928. 90: uint64(0x09ad8b3700000000),
  4929. 91: uint64(0x16ba7bb700000000),
  4930. 92: uint64(0xc9d3498300000000),
  4931. 93: uint64(0xd6c4b90300000000),
  4932. 94: uint64(0xb6fbd85900000000),
  4933. 95: uint64(0xa9ec28d900000000),
  4934. 96: uint64(0xcfcdf89700000000),
  4935. 97: uint64(0xd0da081700000000),
  4936. 98: uint64(0xb0e5694d00000000),
  4937. 99: uint64(0xaff299cd00000000),
  4938. 100: uint64(0x709babf900000000),
  4939. 101: uint64(0x6f8c5b7900000000),
  4940. 102: uint64(0x0fb33a2300000000),
  4941. 103: uint64(0x10a4caa300000000),
  4942. 104: uint64(0xb1605e4b00000000),
  4943. 105: uint64(0xae77aecb00000000),
  4944. 106: uint64(0xce48cf9100000000),
  4945. 107: uint64(0xd15f3f1100000000),
  4946. 108: uint64(0x0e360d2500000000),
  4947. 109: uint64(0x1121fda500000000),
  4948. 110: uint64(0x711e9cff00000000),
  4949. 111: uint64(0x6e096c7f00000000),
  4950. 112: uint64(0x7291c4f500000000),
  4951. 113: uint64(0x6d86347500000000),
  4952. 114: uint64(0x0db9552f00000000),
  4953. 115: uint64(0x12aea5af00000000),
  4954. 116: uint64(0xcdc7979b00000000),
  4955. 117: uint64(0xd2d0671b00000000),
  4956. 118: uint64(0xb2ef064100000000),
  4957. 119: uint64(0xadf8f6c100000000),
  4958. 120: uint64(0x0c3c622900000000),
  4959. 121: uint64(0x132b92a900000000),
  4960. 122: uint64(0x7314f3f300000000),
  4961. 123: uint64(0x6c03037300000000),
  4962. 124: uint64(0xb36a314700000000),
  4963. 125: uint64(0xac7dc1c700000000),
  4964. 126: uint64(0xcc42a09d00000000),
  4965. 127: uint64(0xd355501d00000000),
  4966. 128: uint64(0x6ae900a700000000),
  4967. 129: uint64(0x75fef02700000000),
  4968. 130: uint64(0x15c1917d00000000),
  4969. 131: uint64(0x0ad661fd00000000),
  4970. 132: uint64(0xd5bf53c900000000),
  4971. 133: uint64(0xcaa8a34900000000),
  4972. 134: uint64(0xaa97c21300000000),
  4973. 135: uint64(0xb580329300000000),
  4974. 136: uint64(0x1444a67b00000000),
  4975. 137: uint64(0x0b5356fb00000000),
  4976. 138: uint64(0x6b6c37a100000000),
  4977. 139: uint64(0x747bc72100000000),
  4978. 140: uint64(0xab12f51500000000),
  4979. 141: uint64(0xb405059500000000),
  4980. 142: uint64(0xd43a64cf00000000),
  4981. 143: uint64(0xcb2d944f00000000),
  4982. 144: uint64(0xd7b53cc500000000),
  4983. 145: uint64(0xc8a2cc4500000000),
  4984. 146: uint64(0xa89dad1f00000000),
  4985. 147: uint64(0xb78a5d9f00000000),
  4986. 148: uint64(0x68e36fab00000000),
  4987. 149: uint64(0x77f49f2b00000000),
  4988. 150: uint64(0x17cbfe7100000000),
  4989. 151: uint64(0x08dc0ef100000000),
  4990. 152: uint64(0xa9189a1900000000),
  4991. 153: uint64(0xb60f6a9900000000),
  4992. 154: uint64(0xd6300bc300000000),
  4993. 155: uint64(0xc927fb4300000000),
  4994. 156: uint64(0x164ec97700000000),
  4995. 157: uint64(0x095939f700000000),
  4996. 158: uint64(0x696658ad00000000),
  4997. 159: uint64(0x7671a82d00000000),
  4998. 160: uint64(0x1050786300000000),
  4999. 161: uint64(0x0f4788e300000000),
  5000. 162: uint64(0x6f78e9b900000000),
  5001. 163: uint64(0x706f193900000000),
  5002. 164: uint64(0xaf062b0d00000000),
  5003. 165: uint64(0xb011db8d00000000),
  5004. 166: uint64(0xd02ebad700000000),
  5005. 167: uint64(0xcf394a5700000000),
  5006. 168: uint64(0x6efddebf00000000),
  5007. 169: uint64(0x71ea2e3f00000000),
  5008. 170: uint64(0x11d54f6500000000),
  5009. 171: uint64(0x0ec2bfe500000000),
  5010. 172: uint64(0xd1ab8dd100000000),
  5011. 173: uint64(0xcebc7d5100000000),
  5012. 174: uint64(0xae831c0b00000000),
  5013. 175: uint64(0xb194ec8b00000000),
  5014. 176: uint64(0xad0c440100000000),
  5015. 177: uint64(0xb21bb48100000000),
  5016. 178: uint64(0xd224d5db00000000),
  5017. 179: uint64(0xcd33255b00000000),
  5018. 180: uint64(0x125a176f00000000),
  5019. 181: uint64(0x0d4de7ef00000000),
  5020. 182: uint64(0x6d7286b500000000),
  5021. 183: uint64(0x7265763500000000),
  5022. 184: uint64(0xd3a1e2dd00000000),
  5023. 185: uint64(0xccb6125d00000000),
  5024. 186: uint64(0xac89730700000000),
  5025. 187: uint64(0xb39e838700000000),
  5026. 188: uint64(0x6cf7b1b300000000),
  5027. 189: uint64(0x73e0413300000000),
  5028. 190: uint64(0x13df206900000000),
  5029. 191: uint64(0x0cc8d0e900000000),
  5030. 192: uint64(0xdf9d80f400000000),
  5031. 193: uint64(0xc08a707400000000),
  5032. 194: uint64(0xa0b5112e00000000),
  5033. 195: uint64(0xbfa2e1ae00000000),
  5034. 196: uint64(0x60cbd39a00000000),
  5035. 197: uint64(0x7fdc231a00000000),
  5036. 198: uint64(0x1fe3424000000000),
  5037. 199: uint64(0x00f4b2c000000000),
  5038. 200: uint64(0xa130262800000000),
  5039. 201: uint64(0xbe27d6a800000000),
  5040. 202: uint64(0xde18b7f200000000),
  5041. 203: uint64(0xc10f477200000000),
  5042. 204: uint64(0x1e66754600000000),
  5043. 205: uint64(0x017185c600000000),
  5044. 206: uint64(0x614ee49c00000000),
  5045. 207: uint64(0x7e59141c00000000),
  5046. 208: uint64(0x62c1bc9600000000),
  5047. 209: uint64(0x7dd64c1600000000),
  5048. 210: uint64(0x1de92d4c00000000),
  5049. 211: uint64(0x02feddcc00000000),
  5050. 212: uint64(0xdd97eff800000000),
  5051. 213: uint64(0xc2801f7800000000),
  5052. 214: uint64(0xa2bf7e2200000000),
  5053. 215: uint64(0xbda88ea200000000),
  5054. 216: uint64(0x1c6c1a4a00000000),
  5055. 217: uint64(0x037beaca00000000),
  5056. 218: uint64(0x63448b9000000000),
  5057. 219: uint64(0x7c537b1000000000),
  5058. 220: uint64(0xa33a492400000000),
  5059. 221: uint64(0xbc2db9a400000000),
  5060. 222: uint64(0xdc12d8fe00000000),
  5061. 223: uint64(0xc305287e00000000),
  5062. 224: uint64(0xa524f83000000000),
  5063. 225: uint64(0xba3308b000000000),
  5064. 226: uint64(0xda0c69ea00000000),
  5065. 227: uint64(0xc51b996a00000000),
  5066. 228: uint64(0x1a72ab5e00000000),
  5067. 229: uint64(0x05655bde00000000),
  5068. 230: uint64(0x655a3a8400000000),
  5069. 231: uint64(0x7a4dca0400000000),
  5070. 232: uint64(0xdb895eec00000000),
  5071. 233: uint64(0xc49eae6c00000000),
  5072. 234: uint64(0xa4a1cf3600000000),
  5073. 235: uint64(0xbbb63fb600000000),
  5074. 236: uint64(0x64df0d8200000000),
  5075. 237: uint64(0x7bc8fd0200000000),
  5076. 238: uint64(0x1bf79c5800000000),
  5077. 239: uint64(0x04e06cd800000000),
  5078. 240: uint64(0x1878c45200000000),
  5079. 241: uint64(0x076f34d200000000),
  5080. 242: uint64(0x6750558800000000),
  5081. 243: uint64(0x7847a50800000000),
  5082. 244: uint64(0xa72e973c00000000),
  5083. 245: uint64(0xb83967bc00000000),
  5084. 246: uint64(0xd80606e600000000),
  5085. 247: uint64(0xc711f66600000000),
  5086. 248: uint64(0x66d5628e00000000),
  5087. 249: uint64(0x79c2920e00000000),
  5088. 250: uint64(0x19fdf35400000000),
  5089. 251: uint64(0x06ea03d400000000),
  5090. 252: uint64(0xd98331e000000000),
  5091. 253: uint64(0xc694c16000000000),
  5092. 254: uint64(0xa6aba03a00000000),
  5093. 255: uint64(0xb9bc50ba00000000),
  5094. },
  5095. 5: {
  5096. 1: uint64(0xe2fd888d00000000),
  5097. 2: uint64(0x85fd60c000000000),
  5098. 3: uint64(0x6700e84d00000000),
  5099. 4: uint64(0x4bfdb05b00000000),
  5100. 5: uint64(0xa90038d600000000),
  5101. 6: uint64(0xce00d09b00000000),
  5102. 7: uint64(0x2cfd581600000000),
  5103. 8: uint64(0x96fa61b700000000),
  5104. 9: uint64(0x7407e93a00000000),
  5105. 10: uint64(0x1307017700000000),
  5106. 11: uint64(0xf1fa89fa00000000),
  5107. 12: uint64(0xdd07d1ec00000000),
  5108. 13: uint64(0x3ffa596100000000),
  5109. 14: uint64(0x58fab12c00000000),
  5110. 15: uint64(0xba0739a100000000),
  5111. 16: uint64(0x6df3b2b500000000),
  5112. 17: uint64(0x8f0e3a3800000000),
  5113. 18: uint64(0xe80ed27500000000),
  5114. 19: uint64(0x0af35af800000000),
  5115. 20: uint64(0x260e02ee00000000),
  5116. 21: uint64(0xc4f38a6300000000),
  5117. 22: uint64(0xa3f3622e00000000),
  5118. 23: uint64(0x410eeaa300000000),
  5119. 24: uint64(0xfb09d30200000000),
  5120. 25: uint64(0x19f45b8f00000000),
  5121. 26: uint64(0x7ef4b3c200000000),
  5122. 27: uint64(0x9c093b4f00000000),
  5123. 28: uint64(0xb0f4635900000000),
  5124. 29: uint64(0x5209ebd400000000),
  5125. 30: uint64(0x3509039900000000),
  5126. 31: uint64(0xd7f48b1400000000),
  5127. 32: uint64(0x9be014b000000000),
  5128. 33: uint64(0x791d9c3d00000000),
  5129. 34: uint64(0x1e1d747000000000),
  5130. 35: uint64(0xfce0fcfd00000000),
  5131. 36: uint64(0xd01da4eb00000000),
  5132. 37: uint64(0x32e02c6600000000),
  5133. 38: uint64(0x55e0c42b00000000),
  5134. 39: uint64(0xb71d4ca600000000),
  5135. 40: uint64(0x0d1a750700000000),
  5136. 41: uint64(0xefe7fd8a00000000),
  5137. 42: uint64(0x88e715c700000000),
  5138. 43: uint64(0x6a1a9d4a00000000),
  5139. 44: uint64(0x46e7c55c00000000),
  5140. 45: uint64(0xa41a4dd100000000),
  5141. 46: uint64(0xc31aa59c00000000),
  5142. 47: uint64(0x21e72d1100000000),
  5143. 48: uint64(0xf613a60500000000),
  5144. 49: uint64(0x14ee2e8800000000),
  5145. 50: uint64(0x73eec6c500000000),
  5146. 51: uint64(0x91134e4800000000),
  5147. 52: uint64(0xbdee165e00000000),
  5148. 53: uint64(0x5f139ed300000000),
  5149. 54: uint64(0x3813769e00000000),
  5150. 55: uint64(0xdaeefe1300000000),
  5151. 56: uint64(0x60e9c7b200000000),
  5152. 57: uint64(0x82144f3f00000000),
  5153. 58: uint64(0xe514a77200000000),
  5154. 59: uint64(0x07e92fff00000000),
  5155. 60: uint64(0x2b1477e900000000),
  5156. 61: uint64(0xc9e9ff6400000000),
  5157. 62: uint64(0xaee9172900000000),
  5158. 63: uint64(0x4c149fa400000000),
  5159. 64: uint64(0x77c758bb00000000),
  5160. 65: uint64(0x953ad03600000000),
  5161. 66: uint64(0xf23a387b00000000),
  5162. 67: uint64(0x10c7b0f600000000),
  5163. 68: uint64(0x3c3ae8e000000000),
  5164. 69: uint64(0xdec7606d00000000),
  5165. 70: uint64(0xb9c7882000000000),
  5166. 71: uint64(0x5b3a00ad00000000),
  5167. 72: uint64(0xe13d390c00000000),
  5168. 73: uint64(0x03c0b18100000000),
  5169. 74: uint64(0x64c059cc00000000),
  5170. 75: uint64(0x863dd14100000000),
  5171. 76: uint64(0xaac0895700000000),
  5172. 77: uint64(0x483d01da00000000),
  5173. 78: uint64(0x2f3de99700000000),
  5174. 79: uint64(0xcdc0611a00000000),
  5175. 80: uint64(0x1a34ea0e00000000),
  5176. 81: uint64(0xf8c9628300000000),
  5177. 82: uint64(0x9fc98ace00000000),
  5178. 83: uint64(0x7d34024300000000),
  5179. 84: uint64(0x51c95a5500000000),
  5180. 85: uint64(0xb334d2d800000000),
  5181. 86: uint64(0xd4343a9500000000),
  5182. 87: uint64(0x36c9b21800000000),
  5183. 88: uint64(0x8cce8bb900000000),
  5184. 89: uint64(0x6e33033400000000),
  5185. 90: uint64(0x0933eb7900000000),
  5186. 91: uint64(0xebce63f400000000),
  5187. 92: uint64(0xc7333be200000000),
  5188. 93: uint64(0x25ceb36f00000000),
  5189. 94: uint64(0x42ce5b2200000000),
  5190. 95: uint64(0xa033d3af00000000),
  5191. 96: uint64(0xec274c0b00000000),
  5192. 97: uint64(0x0edac48600000000),
  5193. 98: uint64(0x69da2ccb00000000),
  5194. 99: uint64(0x8b27a44600000000),
  5195. 100: uint64(0xa7dafc5000000000),
  5196. 101: uint64(0x452774dd00000000),
  5197. 102: uint64(0x22279c9000000000),
  5198. 103: uint64(0xc0da141d00000000),
  5199. 104: uint64(0x7add2dbc00000000),
  5200. 105: uint64(0x9820a53100000000),
  5201. 106: uint64(0xff204d7c00000000),
  5202. 107: uint64(0x1dddc5f100000000),
  5203. 108: uint64(0x31209de700000000),
  5204. 109: uint64(0xd3dd156a00000000),
  5205. 110: uint64(0xb4ddfd2700000000),
  5206. 111: uint64(0x562075aa00000000),
  5207. 112: uint64(0x81d4febe00000000),
  5208. 113: uint64(0x6329763300000000),
  5209. 114: uint64(0x04299e7e00000000),
  5210. 115: uint64(0xe6d416f300000000),
  5211. 116: uint64(0xca294ee500000000),
  5212. 117: uint64(0x28d4c66800000000),
  5213. 118: uint64(0x4fd42e2500000000),
  5214. 119: uint64(0xad29a6a800000000),
  5215. 120: uint64(0x172e9f0900000000),
  5216. 121: uint64(0xf5d3178400000000),
  5217. 122: uint64(0x92d3ffc900000000),
  5218. 123: uint64(0x702e774400000000),
  5219. 124: uint64(0x5cd32f5200000000),
  5220. 125: uint64(0xbe2ea7df00000000),
  5221. 126: uint64(0xd92e4f9200000000),
  5222. 127: uint64(0x3bd3c71f00000000),
  5223. 128: uint64(0xaf88c0ad00000000),
  5224. 129: uint64(0x4d75482000000000),
  5225. 130: uint64(0x2a75a06d00000000),
  5226. 131: uint64(0xc88828e000000000),
  5227. 132: uint64(0xe47570f600000000),
  5228. 133: uint64(0x0688f87b00000000),
  5229. 134: uint64(0x6188103600000000),
  5230. 135: uint64(0x837598bb00000000),
  5231. 136: uint64(0x3972a11a00000000),
  5232. 137: uint64(0xdb8f299700000000),
  5233. 138: uint64(0xbc8fc1da00000000),
  5234. 139: uint64(0x5e72495700000000),
  5235. 140: uint64(0x728f114100000000),
  5236. 141: uint64(0x907299cc00000000),
  5237. 142: uint64(0xf772718100000000),
  5238. 143: uint64(0x158ff90c00000000),
  5239. 144: uint64(0xc27b721800000000),
  5240. 145: uint64(0x2086fa9500000000),
  5241. 146: uint64(0x478612d800000000),
  5242. 147: uint64(0xa57b9a5500000000),
  5243. 148: uint64(0x8986c24300000000),
  5244. 149: uint64(0x6b7b4ace00000000),
  5245. 150: uint64(0x0c7ba28300000000),
  5246. 151: uint64(0xee862a0e00000000),
  5247. 152: uint64(0x548113af00000000),
  5248. 153: uint64(0xb67c9b2200000000),
  5249. 154: uint64(0xd17c736f00000000),
  5250. 155: uint64(0x3381fbe200000000),
  5251. 156: uint64(0x1f7ca3f400000000),
  5252. 157: uint64(0xfd812b7900000000),
  5253. 158: uint64(0x9a81c33400000000),
  5254. 159: uint64(0x787c4bb900000000),
  5255. 160: uint64(0x3468d41d00000000),
  5256. 161: uint64(0xd6955c9000000000),
  5257. 162: uint64(0xb195b4dd00000000),
  5258. 163: uint64(0x53683c5000000000),
  5259. 164: uint64(0x7f95644600000000),
  5260. 165: uint64(0x9d68eccb00000000),
  5261. 166: uint64(0xfa68048600000000),
  5262. 167: uint64(0x18958c0b00000000),
  5263. 168: uint64(0xa292b5aa00000000),
  5264. 169: uint64(0x406f3d2700000000),
  5265. 170: uint64(0x276fd56a00000000),
  5266. 171: uint64(0xc5925de700000000),
  5267. 172: uint64(0xe96f05f100000000),
  5268. 173: uint64(0x0b928d7c00000000),
  5269. 174: uint64(0x6c92653100000000),
  5270. 175: uint64(0x8e6fedbc00000000),
  5271. 176: uint64(0x599b66a800000000),
  5272. 177: uint64(0xbb66ee2500000000),
  5273. 178: uint64(0xdc66066800000000),
  5274. 179: uint64(0x3e9b8ee500000000),
  5275. 180: uint64(0x1266d6f300000000),
  5276. 181: uint64(0xf09b5e7e00000000),
  5277. 182: uint64(0x979bb63300000000),
  5278. 183: uint64(0x75663ebe00000000),
  5279. 184: uint64(0xcf61071f00000000),
  5280. 185: uint64(0x2d9c8f9200000000),
  5281. 186: uint64(0x4a9c67df00000000),
  5282. 187: uint64(0xa861ef5200000000),
  5283. 188: uint64(0x849cb74400000000),
  5284. 189: uint64(0x66613fc900000000),
  5285. 190: uint64(0x0161d78400000000),
  5286. 191: uint64(0xe39c5f0900000000),
  5287. 192: uint64(0xd84f981600000000),
  5288. 193: uint64(0x3ab2109b00000000),
  5289. 194: uint64(0x5db2f8d600000000),
  5290. 195: uint64(0xbf4f705b00000000),
  5291. 196: uint64(0x93b2284d00000000),
  5292. 197: uint64(0x714fa0c000000000),
  5293. 198: uint64(0x164f488d00000000),
  5294. 199: uint64(0xf4b2c00000000000),
  5295. 200: uint64(0x4eb5f9a100000000),
  5296. 201: uint64(0xac48712c00000000),
  5297. 202: uint64(0xcb48996100000000),
  5298. 203: uint64(0x29b511ec00000000),
  5299. 204: uint64(0x054849fa00000000),
  5300. 205: uint64(0xe7b5c17700000000),
  5301. 206: uint64(0x80b5293a00000000),
  5302. 207: uint64(0x6248a1b700000000),
  5303. 208: uint64(0xb5bc2aa300000000),
  5304. 209: uint64(0x5741a22e00000000),
  5305. 210: uint64(0x30414a6300000000),
  5306. 211: uint64(0xd2bcc2ee00000000),
  5307. 212: uint64(0xfe419af800000000),
  5308. 213: uint64(0x1cbc127500000000),
  5309. 214: uint64(0x7bbcfa3800000000),
  5310. 215: uint64(0x994172b500000000),
  5311. 216: uint64(0x23464b1400000000),
  5312. 217: uint64(0xc1bbc39900000000),
  5313. 218: uint64(0xa6bb2bd400000000),
  5314. 219: uint64(0x4446a35900000000),
  5315. 220: uint64(0x68bbfb4f00000000),
  5316. 221: uint64(0x8a4673c200000000),
  5317. 222: uint64(0xed469b8f00000000),
  5318. 223: uint64(0x0fbb130200000000),
  5319. 224: uint64(0x43af8ca600000000),
  5320. 225: uint64(0xa152042b00000000),
  5321. 226: uint64(0xc652ec6600000000),
  5322. 227: uint64(0x24af64eb00000000),
  5323. 228: uint64(0x08523cfd00000000),
  5324. 229: uint64(0xeaafb47000000000),
  5325. 230: uint64(0x8daf5c3d00000000),
  5326. 231: uint64(0x6f52d4b000000000),
  5327. 232: uint64(0xd555ed1100000000),
  5328. 233: uint64(0x37a8659c00000000),
  5329. 234: uint64(0x50a88dd100000000),
  5330. 235: uint64(0xb255055c00000000),
  5331. 236: uint64(0x9ea85d4a00000000),
  5332. 237: uint64(0x7c55d5c700000000),
  5333. 238: uint64(0x1b553d8a00000000),
  5334. 239: uint64(0xf9a8b50700000000),
  5335. 240: uint64(0x2e5c3e1300000000),
  5336. 241: uint64(0xcca1b69e00000000),
  5337. 242: uint64(0xaba15ed300000000),
  5338. 243: uint64(0x495cd65e00000000),
  5339. 244: uint64(0x65a18e4800000000),
  5340. 245: uint64(0x875c06c500000000),
  5341. 246: uint64(0xe05cee8800000000),
  5342. 247: uint64(0x02a1660500000000),
  5343. 248: uint64(0xb8a65fa400000000),
  5344. 249: uint64(0x5a5bd72900000000),
  5345. 250: uint64(0x3d5b3f6400000000),
  5346. 251: uint64(0xdfa6b7e900000000),
  5347. 252: uint64(0xf35befff00000000),
  5348. 253: uint64(0x11a6677200000000),
  5349. 254: uint64(0x76a68f3f00000000),
  5350. 255: uint64(0x945b07b200000000),
  5351. },
  5352. 6: {
  5353. 1: uint64(0xa90b894e00000000),
  5354. 2: uint64(0x5217129d00000000),
  5355. 3: uint64(0xfb1c9bd300000000),
  5356. 4: uint64(0xe52855e100000000),
  5357. 5: uint64(0x4c23dcaf00000000),
  5358. 6: uint64(0xb73f477c00000000),
  5359. 7: uint64(0x1e34ce3200000000),
  5360. 8: uint64(0x8b57db1900000000),
  5361. 9: uint64(0x225c525700000000),
  5362. 10: uint64(0xd940c98400000000),
  5363. 11: uint64(0x704b40ca00000000),
  5364. 12: uint64(0x6e7f8ef800000000),
  5365. 13: uint64(0xc77407b600000000),
  5366. 14: uint64(0x3c689c6500000000),
  5367. 15: uint64(0x9563152b00000000),
  5368. 16: uint64(0x16afb63300000000),
  5369. 17: uint64(0xbfa43f7d00000000),
  5370. 18: uint64(0x44b8a4ae00000000),
  5371. 19: uint64(0xedb32de000000000),
  5372. 20: uint64(0xf387e3d200000000),
  5373. 21: uint64(0x5a8c6a9c00000000),
  5374. 22: uint64(0xa190f14f00000000),
  5375. 23: uint64(0x089b780100000000),
  5376. 24: uint64(0x9df86d2a00000000),
  5377. 25: uint64(0x34f3e46400000000),
  5378. 26: uint64(0xcfef7fb700000000),
  5379. 27: uint64(0x66e4f6f900000000),
  5380. 28: uint64(0x78d038cb00000000),
  5381. 29: uint64(0xd1dbb18500000000),
  5382. 30: uint64(0x2ac72a5600000000),
  5383. 31: uint64(0x83cca31800000000),
  5384. 32: uint64(0x2c5e6d6700000000),
  5385. 33: uint64(0x8555e42900000000),
  5386. 34: uint64(0x7e497ffa00000000),
  5387. 35: uint64(0xd742f6b400000000),
  5388. 36: uint64(0xc976388600000000),
  5389. 37: uint64(0x607db1c800000000),
  5390. 38: uint64(0x9b612a1b00000000),
  5391. 39: uint64(0x326aa35500000000),
  5392. 40: uint64(0xa709b67e00000000),
  5393. 41: uint64(0x0e023f3000000000),
  5394. 42: uint64(0xf51ea4e300000000),
  5395. 43: uint64(0x5c152dad00000000),
  5396. 44: uint64(0x4221e39f00000000),
  5397. 45: uint64(0xeb2a6ad100000000),
  5398. 46: uint64(0x1036f10200000000),
  5399. 47: uint64(0xb93d784c00000000),
  5400. 48: uint64(0x3af1db5400000000),
  5401. 49: uint64(0x93fa521a00000000),
  5402. 50: uint64(0x68e6c9c900000000),
  5403. 51: uint64(0xc1ed408700000000),
  5404. 52: uint64(0xdfd98eb500000000),
  5405. 53: uint64(0x76d207fb00000000),
  5406. 54: uint64(0x8dce9c2800000000),
  5407. 55: uint64(0x24c5156600000000),
  5408. 56: uint64(0xb1a6004d00000000),
  5409. 57: uint64(0x18ad890300000000),
  5410. 58: uint64(0xe3b112d000000000),
  5411. 59: uint64(0x4aba9b9e00000000),
  5412. 60: uint64(0x548e55ac00000000),
  5413. 61: uint64(0xfd85dce200000000),
  5414. 62: uint64(0x0699473100000000),
  5415. 63: uint64(0xaf92ce7f00000000),
  5416. 64: uint64(0x58bcdace00000000),
  5417. 65: uint64(0xf1b7538000000000),
  5418. 66: uint64(0x0aabc85300000000),
  5419. 67: uint64(0xa3a0411d00000000),
  5420. 68: uint64(0xbd948f2f00000000),
  5421. 69: uint64(0x149f066100000000),
  5422. 70: uint64(0xef839db200000000),
  5423. 71: uint64(0x468814fc00000000),
  5424. 72: uint64(0xd3eb01d700000000),
  5425. 73: uint64(0x7ae0889900000000),
  5426. 74: uint64(0x81fc134a00000000),
  5427. 75: uint64(0x28f79a0400000000),
  5428. 76: uint64(0x36c3543600000000),
  5429. 77: uint64(0x9fc8dd7800000000),
  5430. 78: uint64(0x64d446ab00000000),
  5431. 79: uint64(0xcddfcfe500000000),
  5432. 80: uint64(0x4e136cfd00000000),
  5433. 81: uint64(0xe718e5b300000000),
  5434. 82: uint64(0x1c047e6000000000),
  5435. 83: uint64(0xb50ff72e00000000),
  5436. 84: uint64(0xab3b391c00000000),
  5437. 85: uint64(0x0230b05200000000),
  5438. 86: uint64(0xf92c2b8100000000),
  5439. 87: uint64(0x5027a2cf00000000),
  5440. 88: uint64(0xc544b7e400000000),
  5441. 89: uint64(0x6c4f3eaa00000000),
  5442. 90: uint64(0x9753a57900000000),
  5443. 91: uint64(0x3e582c3700000000),
  5444. 92: uint64(0x206ce20500000000),
  5445. 93: uint64(0x89676b4b00000000),
  5446. 94: uint64(0x727bf09800000000),
  5447. 95: uint64(0xdb7079d600000000),
  5448. 96: uint64(0x74e2b7a900000000),
  5449. 97: uint64(0xdde93ee700000000),
  5450. 98: uint64(0x26f5a53400000000),
  5451. 99: uint64(0x8ffe2c7a00000000),
  5452. 100: uint64(0x91cae24800000000),
  5453. 101: uint64(0x38c16b0600000000),
  5454. 102: uint64(0xc3ddf0d500000000),
  5455. 103: uint64(0x6ad6799b00000000),
  5456. 104: uint64(0xffb56cb000000000),
  5457. 105: uint64(0x56bee5fe00000000),
  5458. 106: uint64(0xada27e2d00000000),
  5459. 107: uint64(0x04a9f76300000000),
  5460. 108: uint64(0x1a9d395100000000),
  5461. 109: uint64(0xb396b01f00000000),
  5462. 110: uint64(0x488a2bcc00000000),
  5463. 111: uint64(0xe181a28200000000),
  5464. 112: uint64(0x624d019a00000000),
  5465. 113: uint64(0xcb4688d400000000),
  5466. 114: uint64(0x305a130700000000),
  5467. 115: uint64(0x99519a4900000000),
  5468. 116: uint64(0x8765547b00000000),
  5469. 117: uint64(0x2e6edd3500000000),
  5470. 118: uint64(0xd57246e600000000),
  5471. 119: uint64(0x7c79cfa800000000),
  5472. 120: uint64(0xe91ada8300000000),
  5473. 121: uint64(0x401153cd00000000),
  5474. 122: uint64(0xbb0dc81e00000000),
  5475. 123: uint64(0x1206415000000000),
  5476. 124: uint64(0x0c328f6200000000),
  5477. 125: uint64(0xa539062c00000000),
  5478. 126: uint64(0x5e259dff00000000),
  5479. 127: uint64(0xf72e14b100000000),
  5480. 128: uint64(0xf17ec44600000000),
  5481. 129: uint64(0x58754d0800000000),
  5482. 130: uint64(0xa369d6db00000000),
  5483. 131: uint64(0x0a625f9500000000),
  5484. 132: uint64(0x145691a700000000),
  5485. 133: uint64(0xbd5d18e900000000),
  5486. 134: uint64(0x4641833a00000000),
  5487. 135: uint64(0xef4a0a7400000000),
  5488. 136: uint64(0x7a291f5f00000000),
  5489. 137: uint64(0xd322961100000000),
  5490. 138: uint64(0x283e0dc200000000),
  5491. 139: uint64(0x8135848c00000000),
  5492. 140: uint64(0x9f014abe00000000),
  5493. 141: uint64(0x360ac3f000000000),
  5494. 142: uint64(0xcd16582300000000),
  5495. 143: uint64(0x641dd16d00000000),
  5496. 144: uint64(0xe7d1727500000000),
  5497. 145: uint64(0x4edafb3b00000000),
  5498. 146: uint64(0xb5c660e800000000),
  5499. 147: uint64(0x1ccde9a600000000),
  5500. 148: uint64(0x02f9279400000000),
  5501. 149: uint64(0xabf2aeda00000000),
  5502. 150: uint64(0x50ee350900000000),
  5503. 151: uint64(0xf9e5bc4700000000),
  5504. 152: uint64(0x6c86a96c00000000),
  5505. 153: uint64(0xc58d202200000000),
  5506. 154: uint64(0x3e91bbf100000000),
  5507. 155: uint64(0x979a32bf00000000),
  5508. 156: uint64(0x89aefc8d00000000),
  5509. 157: uint64(0x20a575c300000000),
  5510. 158: uint64(0xdbb9ee1000000000),
  5511. 159: uint64(0x72b2675e00000000),
  5512. 160: uint64(0xdd20a92100000000),
  5513. 161: uint64(0x742b206f00000000),
  5514. 162: uint64(0x8f37bbbc00000000),
  5515. 163: uint64(0x263c32f200000000),
  5516. 164: uint64(0x3808fcc000000000),
  5517. 165: uint64(0x9103758e00000000),
  5518. 166: uint64(0x6a1fee5d00000000),
  5519. 167: uint64(0xc314671300000000),
  5520. 168: uint64(0x5677723800000000),
  5521. 169: uint64(0xff7cfb7600000000),
  5522. 170: uint64(0x046060a500000000),
  5523. 171: uint64(0xad6be9eb00000000),
  5524. 172: uint64(0xb35f27d900000000),
  5525. 173: uint64(0x1a54ae9700000000),
  5526. 174: uint64(0xe148354400000000),
  5527. 175: uint64(0x4843bc0a00000000),
  5528. 176: uint64(0xcb8f1f1200000000),
  5529. 177: uint64(0x6284965c00000000),
  5530. 178: uint64(0x99980d8f00000000),
  5531. 179: uint64(0x309384c100000000),
  5532. 180: uint64(0x2ea74af300000000),
  5533. 181: uint64(0x87acc3bd00000000),
  5534. 182: uint64(0x7cb0586e00000000),
  5535. 183: uint64(0xd5bbd12000000000),
  5536. 184: uint64(0x40d8c40b00000000),
  5537. 185: uint64(0xe9d34d4500000000),
  5538. 186: uint64(0x12cfd69600000000),
  5539. 187: uint64(0xbbc45fd800000000),
  5540. 188: uint64(0xa5f091ea00000000),
  5541. 189: uint64(0x0cfb18a400000000),
  5542. 190: uint64(0xf7e7837700000000),
  5543. 191: uint64(0x5eec0a3900000000),
  5544. 192: uint64(0xa9c21e8800000000),
  5545. 193: uint64(0x00c997c600000000),
  5546. 194: uint64(0xfbd50c1500000000),
  5547. 195: uint64(0x52de855b00000000),
  5548. 196: uint64(0x4cea4b6900000000),
  5549. 197: uint64(0xe5e1c22700000000),
  5550. 198: uint64(0x1efd59f400000000),
  5551. 199: uint64(0xb7f6d0ba00000000),
  5552. 200: uint64(0x2295c59100000000),
  5553. 201: uint64(0x8b9e4cdf00000000),
  5554. 202: uint64(0x7082d70c00000000),
  5555. 203: uint64(0xd9895e4200000000),
  5556. 204: uint64(0xc7bd907000000000),
  5557. 205: uint64(0x6eb6193e00000000),
  5558. 206: uint64(0x95aa82ed00000000),
  5559. 207: uint64(0x3ca10ba300000000),
  5560. 208: uint64(0xbf6da8bb00000000),
  5561. 209: uint64(0x166621f500000000),
  5562. 210: uint64(0xed7aba2600000000),
  5563. 211: uint64(0x4471336800000000),
  5564. 212: uint64(0x5a45fd5a00000000),
  5565. 213: uint64(0xf34e741400000000),
  5566. 214: uint64(0x0852efc700000000),
  5567. 215: uint64(0xa159668900000000),
  5568. 216: uint64(0x343a73a200000000),
  5569. 217: uint64(0x9d31faec00000000),
  5570. 218: uint64(0x662d613f00000000),
  5571. 219: uint64(0xcf26e87100000000),
  5572. 220: uint64(0xd112264300000000),
  5573. 221: uint64(0x7819af0d00000000),
  5574. 222: uint64(0x830534de00000000),
  5575. 223: uint64(0x2a0ebd9000000000),
  5576. 224: uint64(0x859c73ef00000000),
  5577. 225: uint64(0x2c97faa100000000),
  5578. 226: uint64(0xd78b617200000000),
  5579. 227: uint64(0x7e80e83c00000000),
  5580. 228: uint64(0x60b4260e00000000),
  5581. 229: uint64(0xc9bfaf4000000000),
  5582. 230: uint64(0x32a3349300000000),
  5583. 231: uint64(0x9ba8bddd00000000),
  5584. 232: uint64(0x0ecba8f600000000),
  5585. 233: uint64(0xa7c021b800000000),
  5586. 234: uint64(0x5cdcba6b00000000),
  5587. 235: uint64(0xf5d7332500000000),
  5588. 236: uint64(0xebe3fd1700000000),
  5589. 237: uint64(0x42e8745900000000),
  5590. 238: uint64(0xb9f4ef8a00000000),
  5591. 239: uint64(0x10ff66c400000000),
  5592. 240: uint64(0x9333c5dc00000000),
  5593. 241: uint64(0x3a384c9200000000),
  5594. 242: uint64(0xc124d74100000000),
  5595. 243: uint64(0x682f5e0f00000000),
  5596. 244: uint64(0x761b903d00000000),
  5597. 245: uint64(0xdf10197300000000),
  5598. 246: uint64(0x240c82a000000000),
  5599. 247: uint64(0x8d070bee00000000),
  5600. 248: uint64(0x18641ec500000000),
  5601. 249: uint64(0xb16f978b00000000),
  5602. 250: uint64(0x4a730c5800000000),
  5603. 251: uint64(0xe378851600000000),
  5604. 252: uint64(0xfd4c4b2400000000),
  5605. 253: uint64(0x5447c26a00000000),
  5606. 254: uint64(0xaf5b59b900000000),
  5607. 255: uint64(0x0650d0f700000000),
  5608. },
  5609. 7: {
  5610. 1: uint64(0x479244af00000000),
  5611. 2: uint64(0xcf22f88500000000),
  5612. 3: uint64(0x88b0bc2a00000000),
  5613. 4: uint64(0xdf4381d000000000),
  5614. 5: uint64(0x98d1c57f00000000),
  5615. 6: uint64(0x1061795500000000),
  5616. 7: uint64(0x57f33dfa00000000),
  5617. 8: uint64(0xff81737a00000000),
  5618. 9: uint64(0xb81337d500000000),
  5619. 10: uint64(0x30a38bff00000000),
  5620. 11: uint64(0x7731cf5000000000),
  5621. 12: uint64(0x20c2f2aa00000000),
  5622. 13: uint64(0x6750b60500000000),
  5623. 14: uint64(0xefe00a2f00000000),
  5624. 15: uint64(0xa8724e8000000000),
  5625. 16: uint64(0xfe03e7f400000000),
  5626. 17: uint64(0xb991a35b00000000),
  5627. 18: uint64(0x31211f7100000000),
  5628. 19: uint64(0x76b35bde00000000),
  5629. 20: uint64(0x2140662400000000),
  5630. 21: uint64(0x66d2228b00000000),
  5631. 22: uint64(0xee629ea100000000),
  5632. 23: uint64(0xa9f0da0e00000000),
  5633. 24: uint64(0x0182948e00000000),
  5634. 25: uint64(0x4610d02100000000),
  5635. 26: uint64(0xcea06c0b00000000),
  5636. 27: uint64(0x893228a400000000),
  5637. 28: uint64(0xdec1155e00000000),
  5638. 29: uint64(0x995351f100000000),
  5639. 30: uint64(0x11e3eddb00000000),
  5640. 31: uint64(0x5671a97400000000),
  5641. 32: uint64(0xbd01bf3200000000),
  5642. 33: uint64(0xfa93fb9d00000000),
  5643. 34: uint64(0x722347b700000000),
  5644. 35: uint64(0x35b1031800000000),
  5645. 36: uint64(0x62423ee200000000),
  5646. 37: uint64(0x25d07a4d00000000),
  5647. 38: uint64(0xad60c66700000000),
  5648. 39: uint64(0xeaf282c800000000),
  5649. 40: uint64(0x4280cc4800000000),
  5650. 41: uint64(0x051288e700000000),
  5651. 42: uint64(0x8da234cd00000000),
  5652. 43: uint64(0xca30706200000000),
  5653. 44: uint64(0x9dc34d9800000000),
  5654. 45: uint64(0xda51093700000000),
  5655. 46: uint64(0x52e1b51d00000000),
  5656. 47: uint64(0x1573f1b200000000),
  5657. 48: uint64(0x430258c600000000),
  5658. 49: uint64(0x04901c6900000000),
  5659. 50: uint64(0x8c20a04300000000),
  5660. 51: uint64(0xcbb2e4ec00000000),
  5661. 52: uint64(0x9c41d91600000000),
  5662. 53: uint64(0xdbd39db900000000),
  5663. 54: uint64(0x5363219300000000),
  5664. 55: uint64(0x14f1653c00000000),
  5665. 56: uint64(0xbc832bbc00000000),
  5666. 57: uint64(0xfb116f1300000000),
  5667. 58: uint64(0x73a1d33900000000),
  5668. 59: uint64(0x3433979600000000),
  5669. 60: uint64(0x63c0aa6c00000000),
  5670. 61: uint64(0x2452eec300000000),
  5671. 62: uint64(0xace252e900000000),
  5672. 63: uint64(0xeb70164600000000),
  5673. 64: uint64(0x7a037e6500000000),
  5674. 65: uint64(0x3d913aca00000000),
  5675. 66: uint64(0xb52186e000000000),
  5676. 67: uint64(0xf2b3c24f00000000),
  5677. 68: uint64(0xa540ffb500000000),
  5678. 69: uint64(0xe2d2bb1a00000000),
  5679. 70: uint64(0x6a62073000000000),
  5680. 71: uint64(0x2df0439f00000000),
  5681. 72: uint64(0x85820d1f00000000),
  5682. 73: uint64(0xc21049b000000000),
  5683. 74: uint64(0x4aa0f59a00000000),
  5684. 75: uint64(0x0d32b13500000000),
  5685. 76: uint64(0x5ac18ccf00000000),
  5686. 77: uint64(0x1d53c86000000000),
  5687. 78: uint64(0x95e3744a00000000),
  5688. 79: uint64(0xd27130e500000000),
  5689. 80: uint64(0x8400999100000000),
  5690. 81: uint64(0xc392dd3e00000000),
  5691. 82: uint64(0x4b22611400000000),
  5692. 83: uint64(0x0cb025bb00000000),
  5693. 84: uint64(0x5b43184100000000),
  5694. 85: uint64(0x1cd15cee00000000),
  5695. 86: uint64(0x9461e0c400000000),
  5696. 87: uint64(0xd3f3a46b00000000),
  5697. 88: uint64(0x7b81eaeb00000000),
  5698. 89: uint64(0x3c13ae4400000000),
  5699. 90: uint64(0xb4a3126e00000000),
  5700. 91: uint64(0xf33156c100000000),
  5701. 92: uint64(0xa4c26b3b00000000),
  5702. 93: uint64(0xe3502f9400000000),
  5703. 94: uint64(0x6be093be00000000),
  5704. 95: uint64(0x2c72d71100000000),
  5705. 96: uint64(0xc702c15700000000),
  5706. 97: uint64(0x809085f800000000),
  5707. 98: uint64(0x082039d200000000),
  5708. 99: uint64(0x4fb27d7d00000000),
  5709. 100: uint64(0x1841408700000000),
  5710. 101: uint64(0x5fd3042800000000),
  5711. 102: uint64(0xd763b80200000000),
  5712. 103: uint64(0x90f1fcad00000000),
  5713. 104: uint64(0x3883b22d00000000),
  5714. 105: uint64(0x7f11f68200000000),
  5715. 106: uint64(0xf7a14aa800000000),
  5716. 107: uint64(0xb0330e0700000000),
  5717. 108: uint64(0xe7c033fd00000000),
  5718. 109: uint64(0xa052775200000000),
  5719. 110: uint64(0x28e2cb7800000000),
  5720. 111: uint64(0x6f708fd700000000),
  5721. 112: uint64(0x390126a300000000),
  5722. 113: uint64(0x7e93620c00000000),
  5723. 114: uint64(0xf623de2600000000),
  5724. 115: uint64(0xb1b19a8900000000),
  5725. 116: uint64(0xe642a77300000000),
  5726. 117: uint64(0xa1d0e3dc00000000),
  5727. 118: uint64(0x29605ff600000000),
  5728. 119: uint64(0x6ef21b5900000000),
  5729. 120: uint64(0xc68055d900000000),
  5730. 121: uint64(0x8112117600000000),
  5731. 122: uint64(0x09a2ad5c00000000),
  5732. 123: uint64(0x4e30e9f300000000),
  5733. 124: uint64(0x19c3d40900000000),
  5734. 125: uint64(0x5e5190a600000000),
  5735. 126: uint64(0xd6e12c8c00000000),
  5736. 127: uint64(0x9173682300000000),
  5737. 128: uint64(0xf406fcca00000000),
  5738. 129: uint64(0xb394b86500000000),
  5739. 130: uint64(0x3b24044f00000000),
  5740. 131: uint64(0x7cb640e000000000),
  5741. 132: uint64(0x2b457d1a00000000),
  5742. 133: uint64(0x6cd739b500000000),
  5743. 134: uint64(0xe467859f00000000),
  5744. 135: uint64(0xa3f5c13000000000),
  5745. 136: uint64(0x0b878fb000000000),
  5746. 137: uint64(0x4c15cb1f00000000),
  5747. 138: uint64(0xc4a5773500000000),
  5748. 139: uint64(0x8337339a00000000),
  5749. 140: uint64(0xd4c40e6000000000),
  5750. 141: uint64(0x93564acf00000000),
  5751. 142: uint64(0x1be6f6e500000000),
  5752. 143: uint64(0x5c74b24a00000000),
  5753. 144: uint64(0x0a051b3e00000000),
  5754. 145: uint64(0x4d975f9100000000),
  5755. 146: uint64(0xc527e3bb00000000),
  5756. 147: uint64(0x82b5a71400000000),
  5757. 148: uint64(0xd5469aee00000000),
  5758. 149: uint64(0x92d4de4100000000),
  5759. 150: uint64(0x1a64626b00000000),
  5760. 151: uint64(0x5df626c400000000),
  5761. 152: uint64(0xf584684400000000),
  5762. 153: uint64(0xb2162ceb00000000),
  5763. 154: uint64(0x3aa690c100000000),
  5764. 155: uint64(0x7d34d46e00000000),
  5765. 156: uint64(0x2ac7e99400000000),
  5766. 157: uint64(0x6d55ad3b00000000),
  5767. 158: uint64(0xe5e5111100000000),
  5768. 159: uint64(0xa27755be00000000),
  5769. 160: uint64(0x490743f800000000),
  5770. 161: uint64(0x0e95075700000000),
  5771. 162: uint64(0x8625bb7d00000000),
  5772. 163: uint64(0xc1b7ffd200000000),
  5773. 164: uint64(0x9644c22800000000),
  5774. 165: uint64(0xd1d6868700000000),
  5775. 166: uint64(0x59663aad00000000),
  5776. 167: uint64(0x1ef47e0200000000),
  5777. 168: uint64(0xb686308200000000),
  5778. 169: uint64(0xf114742d00000000),
  5779. 170: uint64(0x79a4c80700000000),
  5780. 171: uint64(0x3e368ca800000000),
  5781. 172: uint64(0x69c5b15200000000),
  5782. 173: uint64(0x2e57f5fd00000000),
  5783. 174: uint64(0xa6e749d700000000),
  5784. 175: uint64(0xe1750d7800000000),
  5785. 176: uint64(0xb704a40c00000000),
  5786. 177: uint64(0xf096e0a300000000),
  5787. 178: uint64(0x78265c8900000000),
  5788. 179: uint64(0x3fb4182600000000),
  5789. 180: uint64(0x684725dc00000000),
  5790. 181: uint64(0x2fd5617300000000),
  5791. 182: uint64(0xa765dd5900000000),
  5792. 183: uint64(0xe0f799f600000000),
  5793. 184: uint64(0x4885d77600000000),
  5794. 185: uint64(0x0f1793d900000000),
  5795. 186: uint64(0x87a72ff300000000),
  5796. 187: uint64(0xc0356b5c00000000),
  5797. 188: uint64(0x97c656a600000000),
  5798. 189: uint64(0xd054120900000000),
  5799. 190: uint64(0x58e4ae2300000000),
  5800. 191: uint64(0x1f76ea8c00000000),
  5801. 192: uint64(0x8e0582af00000000),
  5802. 193: uint64(0xc997c60000000000),
  5803. 194: uint64(0x41277a2a00000000),
  5804. 195: uint64(0x06b53e8500000000),
  5805. 196: uint64(0x5146037f00000000),
  5806. 197: uint64(0x16d447d000000000),
  5807. 198: uint64(0x9e64fbfa00000000),
  5808. 199: uint64(0xd9f6bf5500000000),
  5809. 200: uint64(0x7184f1d500000000),
  5810. 201: uint64(0x3616b57a00000000),
  5811. 202: uint64(0xbea6095000000000),
  5812. 203: uint64(0xf9344dff00000000),
  5813. 204: uint64(0xaec7700500000000),
  5814. 205: uint64(0xe95534aa00000000),
  5815. 206: uint64(0x61e5888000000000),
  5816. 207: uint64(0x2677cc2f00000000),
  5817. 208: uint64(0x7006655b00000000),
  5818. 209: uint64(0x379421f400000000),
  5819. 210: uint64(0xbf249dde00000000),
  5820. 211: uint64(0xf8b6d97100000000),
  5821. 212: uint64(0xaf45e48b00000000),
  5822. 213: uint64(0xe8d7a02400000000),
  5823. 214: uint64(0x60671c0e00000000),
  5824. 215: uint64(0x27f558a100000000),
  5825. 216: uint64(0x8f87162100000000),
  5826. 217: uint64(0xc815528e00000000),
  5827. 218: uint64(0x40a5eea400000000),
  5828. 219: uint64(0x0737aa0b00000000),
  5829. 220: uint64(0x50c497f100000000),
  5830. 221: uint64(0x1756d35e00000000),
  5831. 222: uint64(0x9fe66f7400000000),
  5832. 223: uint64(0xd8742bdb00000000),
  5833. 224: uint64(0x33043d9d00000000),
  5834. 225: uint64(0x7496793200000000),
  5835. 226: uint64(0xfc26c51800000000),
  5836. 227: uint64(0xbbb481b700000000),
  5837. 228: uint64(0xec47bc4d00000000),
  5838. 229: uint64(0xabd5f8e200000000),
  5839. 230: uint64(0x236544c800000000),
  5840. 231: uint64(0x64f7006700000000),
  5841. 232: uint64(0xcc854ee700000000),
  5842. 233: uint64(0x8b170a4800000000),
  5843. 234: uint64(0x03a7b66200000000),
  5844. 235: uint64(0x4435f2cd00000000),
  5845. 236: uint64(0x13c6cf3700000000),
  5846. 237: uint64(0x54548b9800000000),
  5847. 238: uint64(0xdce437b200000000),
  5848. 239: uint64(0x9b76731d00000000),
  5849. 240: uint64(0xcd07da6900000000),
  5850. 241: uint64(0x8a959ec600000000),
  5851. 242: uint64(0x022522ec00000000),
  5852. 243: uint64(0x45b7664300000000),
  5853. 244: uint64(0x12445bb900000000),
  5854. 245: uint64(0x55d61f1600000000),
  5855. 246: uint64(0xdd66a33c00000000),
  5856. 247: uint64(0x9af4e79300000000),
  5857. 248: uint64(0x3286a91300000000),
  5858. 249: uint64(0x7514edbc00000000),
  5859. 250: uint64(0xfda4519600000000),
  5860. 251: uint64(0xba36153900000000),
  5861. 252: uint64(0xedc528c300000000),
  5862. 253: uint64(0xaa576c6c00000000),
  5863. 254: uint64(0x22e7d04600000000),
  5864. 255: uint64(0x657594e900000000),
  5865. },
  5866. }
  5867. var _x2n_table = [32]Tz_crc_t{
  5868. 0: uint32(0x40000000),
  5869. 1: uint32(0x20000000),
  5870. 2: uint32(0x08000000),
  5871. 3: uint32(0x00800000),
  5872. 4: uint32(0x00008000),
  5873. 5: uint32(0xedb88320),
  5874. 6: uint32(0xb1e6b092),
  5875. 7: uint32(0xa06a2517),
  5876. 8: uint32(0xed627dae),
  5877. 9: uint32(0x88d14467),
  5878. 10: uint32(0xd7bbfe6a),
  5879. 11: uint32(0xec447f11),
  5880. 12: uint32(0x8e7ea170),
  5881. 13: uint32(0x6427800e),
  5882. 14: uint32(0x4d47bae0),
  5883. 15: uint32(0x09fe548f),
  5884. 16: uint32(0x83852d0f),
  5885. 17: uint32(0x30362f1a),
  5886. 18: uint32(0x7b5a9cc3),
  5887. 19: uint32(0x31fec169),
  5888. 20: uint32(0x9fec022a),
  5889. 21: uint32(0x6c8dedc4),
  5890. 22: uint32(0x15d6874d),
  5891. 23: uint32(0x5fde7a4e),
  5892. 24: uint32(0xbad90e37),
  5893. 25: uint32(0x2e4e5eef),
  5894. 26: uint32(0x4eaba214),
  5895. 27: uint32(0xa8a472c0),
  5896. 28: uint32(0x429a969e),
  5897. 29: uint32(0x148d302a),
  5898. 30: uint32(0xc40ba6d0),
  5899. 31: uint32(0xc4e22c3c),
  5900. }
  5901. /* CRC polynomial. */
  5902. // C documentation
  5903. //
  5904. // /*
  5905. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  5906. // reflected. For speed, this requires that a not be zero.
  5907. // */
  5908. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  5909. var m, p Tz_crc_t
  5910. var v2 uint32
  5911. _, _, _ = m, p, v2
  5912. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  5913. p = uint32(0)
  5914. for {
  5915. if a&m != 0 {
  5916. p ^= b
  5917. if a&(m-uint32(1)) == uint32(0) {
  5918. break
  5919. }
  5920. }
  5921. m >>= uint32(1)
  5922. if b&uint32(1) != 0 {
  5923. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  5924. } else {
  5925. v2 = b >> int32(1)
  5926. }
  5927. b = v2
  5928. goto _1
  5929. _1:
  5930. }
  5931. return p
  5932. }
  5933. // C documentation
  5934. //
  5935. // /*
  5936. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  5937. // initialized.
  5938. // */
  5939. func _x2nmodp(tls *libc.TLS, n Toff_t, k uint32) (r Tz_crc_t) {
  5940. var p Tz_crc_t
  5941. _ = p
  5942. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  5943. for n != 0 {
  5944. if n&int64(1) != 0 {
  5945. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  5946. }
  5947. n >>= int64(1)
  5948. k++
  5949. }
  5950. return p
  5951. }
  5952. // C documentation
  5953. //
  5954. // /* =========================================================================
  5955. // * This function can be used by asm versions of crc32(), and to force the
  5956. // * generation of the CRC tables in a threaded application.
  5957. // */
  5958. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  5959. return uintptr(unsafe.Pointer(&_crc_table))
  5960. }
  5961. /* =========================================================================
  5962. * Use ARM machine instructions if available. This will compute the CRC about
  5963. * ten times faster than the braided calculation. This code does not check for
  5964. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  5965. * only be defined if the compilation specifies an ARM processor architecture
  5966. * that has the instructions. For example, compiling with -march=armv8.1-a or
  5967. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  5968. * instructions.
  5969. */
  5970. // C documentation
  5971. //
  5972. // /*
  5973. // Return the CRC of the W bytes in the word_t data, taking the
  5974. // least-significant byte of the word as the first byte of data, without any pre
  5975. // or post conditioning. This is used to combine the CRCs of each braid.
  5976. // */
  5977. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  5978. var k int32
  5979. _ = k
  5980. k = 0
  5981. for {
  5982. if !(k < int32(m_W)) {
  5983. break
  5984. }
  5985. data = data>>libc.Int32FromInt32(8) ^ uint64(_crc_table[data&uint64(0xff)])
  5986. goto _1
  5987. _1:
  5988. ;
  5989. k++
  5990. }
  5991. return uint32(data)
  5992. }
  5993. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  5994. var k int32
  5995. _ = k
  5996. k = 0
  5997. for {
  5998. if !(k < int32(m_W)) {
  5999. break
  6000. }
  6001. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint64(0xff)]
  6002. goto _1
  6003. _1:
  6004. ;
  6005. k++
  6006. }
  6007. return data
  6008. }
  6009. // C documentation
  6010. //
  6011. // /* ========================================================================= */
  6012. func Xcrc32_z(tls *libc.TLS, crc uint64, buf uintptr, len1 Tz_size_t) (r uint64) {
  6013. bp := tls.Alloc(16)
  6014. defer tls.Free(16)
  6015. var blks, v2, v4 Tz_size_t
  6016. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  6017. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  6018. var k int32
  6019. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  6020. var _ /* endian at bp+0 */ uint32
  6021. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  6022. /* Return initial CRC, if requested. */
  6023. if buf == uintptr(m_Z_NULL) {
  6024. return uint64(0)
  6025. }
  6026. /* Pre-condition the CRC */
  6027. crc = ^crc & uint64(0xffffffff)
  6028. /* If provided enough bytes, do a braided CRC calculation. */
  6029. if len1 >= uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W)+libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) {
  6030. /* Compute the CRC up to a z_word_t boundary. */
  6031. for len1 != 0 && uint64(buf)&uint64(libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) != uint64(0) {
  6032. len1--
  6033. v1 = buf
  6034. buf++
  6035. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v1))))&uint64(0xff)])
  6036. }
  6037. /* Compute the CRC on as many N z_word_t blocks as are available. */
  6038. blks = len1 / uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W))
  6039. len1 -= blks * uint64(m_N) * uint64(m_W)
  6040. words = buf
  6041. /* Do endian check at execution time instead of compile time, since ARM
  6042. processors can change the endianness at execution time. If the
  6043. compiler knows what the endianness will be, it can optimize out the
  6044. check and the unused branch. */
  6045. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  6046. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  6047. /* Initialize the CRC for each braid. */
  6048. crc0 = uint32(crc)
  6049. crc1 = uint32(0)
  6050. crc2 = uint32(0)
  6051. crc3 = uint32(0)
  6052. crc4 = uint32(0)
  6053. /*
  6054. Process the first blks-1 blocks, computing the CRCs on each braid
  6055. independently.
  6056. */
  6057. for {
  6058. blks--
  6059. v2 = blks
  6060. if !(v2 != 0) {
  6061. break
  6062. }
  6063. /* Load the word for each braid into registers. */
  6064. word0 = uint64(crc0) ^ *(*Tz_word_t)(unsafe.Pointer(words))
  6065. word1 = uint64(crc1) ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*8))
  6066. word2 = uint64(crc2) ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*8))
  6067. word3 = uint64(crc3) ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*8))
  6068. word4 = uint64(crc4) ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*8))
  6069. words += uintptr(m_N) * 8
  6070. /* Compute and update the CRC for each word. The loop should
  6071. get unrolled. */
  6072. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint64(0xff))*4))
  6073. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint64(0xff))*4))
  6074. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint64(0xff))*4))
  6075. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint64(0xff))*4))
  6076. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint64(0xff))*4))
  6077. k = int32(1)
  6078. for {
  6079. if !(k < int32(m_W)) {
  6080. break
  6081. }
  6082. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  6083. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  6084. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  6085. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  6086. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  6087. goto _3
  6088. _3:
  6089. ;
  6090. k++
  6091. }
  6092. }
  6093. /*
  6094. Process the last block, combining the CRCs of the N braids at the
  6095. same time.
  6096. */
  6097. crc = uint64(_crc_word(tls, uint64(crc0)^*(*Tz_word_t)(unsafe.Pointer(words))))
  6098. crc = uint64(_crc_word(tls, uint64(crc1)^*(*Tz_word_t)(unsafe.Pointer(words + 1*8))^crc))
  6099. crc = uint64(_crc_word(tls, uint64(crc2)^*(*Tz_word_t)(unsafe.Pointer(words + 2*8))^crc))
  6100. crc = uint64(_crc_word(tls, uint64(crc3)^*(*Tz_word_t)(unsafe.Pointer(words + 3*8))^crc))
  6101. crc = uint64(_crc_word(tls, uint64(crc4)^*(*Tz_word_t)(unsafe.Pointer(words + 4*8))^crc))
  6102. words += uintptr(m_N) * 8
  6103. } else {
  6104. /* Initialize the CRC for each braid. */
  6105. crc01 = _byte_swap(tls, crc)
  6106. crc11 = uint64(0)
  6107. crc21 = uint64(0)
  6108. crc31 = uint64(0)
  6109. crc41 = uint64(0)
  6110. /*
  6111. Process the first blks-1 blocks, computing the CRCs on each braid
  6112. independently.
  6113. */
  6114. for {
  6115. blks--
  6116. v4 = blks
  6117. if !(v4 != 0) {
  6118. break
  6119. }
  6120. /* Load the word for each braid into registers. */
  6121. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  6122. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*8))
  6123. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*8))
  6124. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*8))
  6125. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*8))
  6126. words += uintptr(m_N) * 8
  6127. /* Compute and update the CRC for each word. The loop should
  6128. get unrolled. */
  6129. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint64(0xff))*8))
  6130. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint64(0xff))*8))
  6131. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint64(0xff))*8))
  6132. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint64(0xff))*8))
  6133. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint64(0xff))*8))
  6134. k = int32(1)
  6135. for {
  6136. if !(k < int32(m_W)) {
  6137. break
  6138. }
  6139. crc01 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word01>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  6140. crc11 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word11>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  6141. crc21 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word21>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  6142. crc31 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word31>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  6143. crc41 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word41>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  6144. goto _5
  6145. _5:
  6146. ;
  6147. k++
  6148. }
  6149. }
  6150. /*
  6151. Process the last block, combining the CRCs of the N braids at the
  6152. same time.
  6153. */
  6154. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  6155. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*8))^comb)
  6156. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*8))^comb)
  6157. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*8))^comb)
  6158. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*8))^comb)
  6159. words += uintptr(m_N) * 8
  6160. crc = _byte_swap(tls, comb)
  6161. }
  6162. /*
  6163. Update the pointer to the remaining bytes to process.
  6164. */
  6165. buf = words
  6166. }
  6167. /* Complete the computation of the CRC on any remaining bytes. */
  6168. for len1 >= uint64(8) {
  6169. len1 -= uint64(8)
  6170. v6 = buf
  6171. buf++
  6172. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v6))))&uint64(0xff)])
  6173. v7 = buf
  6174. buf++
  6175. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v7))))&uint64(0xff)])
  6176. v8 = buf
  6177. buf++
  6178. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v8))))&uint64(0xff)])
  6179. v9 = buf
  6180. buf++
  6181. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v9))))&uint64(0xff)])
  6182. v10 = buf
  6183. buf++
  6184. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v10))))&uint64(0xff)])
  6185. v11 = buf
  6186. buf++
  6187. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v11))))&uint64(0xff)])
  6188. v12 = buf
  6189. buf++
  6190. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v12))))&uint64(0xff)])
  6191. v13 = buf
  6192. buf++
  6193. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v13))))&uint64(0xff)])
  6194. }
  6195. for len1 != 0 {
  6196. len1--
  6197. v14 = buf
  6198. buf++
  6199. crc = crc>>int32(8) ^ uint64(_crc_table[(crc^uint64(*(*uint8)(unsafe.Pointer(v14))))&uint64(0xff)])
  6200. }
  6201. /* Return the CRC, post-conditioned. */
  6202. return crc ^ uint64(0xffffffff)
  6203. }
  6204. // C documentation
  6205. //
  6206. // /* ========================================================================= */
  6207. func Xcrc32(tls *libc.TLS, crc uint64, buf uintptr, len1 TuInt) (r uint64) {
  6208. return Xcrc32_z(tls, crc, buf, uint64(len1))
  6209. }
  6210. // C documentation
  6211. //
  6212. // /* ========================================================================= */
  6213. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  6214. return uint64(_multmodp(tls, _x2nmodp(tls, len2, uint32(3)), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  6215. }
  6216. // C documentation
  6217. //
  6218. // /* ========================================================================= */
  6219. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 Toff_t) (r TuLong) {
  6220. return Xcrc32_combine64(tls, crc1, crc2, len2)
  6221. }
  6222. // C documentation
  6223. //
  6224. // /* ========================================================================= */
  6225. func Xcrc32_combine_gen64(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  6226. return uint64(_x2nmodp(tls, len2, uint32(3)))
  6227. }
  6228. // C documentation
  6229. //
  6230. // /* ========================================================================= */
  6231. func Xcrc32_combine_gen(tls *libc.TLS, len2 Toff_t) (r TuLong) {
  6232. return Xcrc32_combine_gen64(tls, len2)
  6233. }
  6234. // C documentation
  6235. //
  6236. // /* ========================================================================= */
  6237. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  6238. return uint64(_multmodp(tls, uint32(op), uint32(crc1))) ^ crc2&uint64(0xffffffff)
  6239. }
  6240. const m_BL_CODES = 19
  6241. const m_BUSY_STATE = 113
  6242. const m_Buf_size = 16
  6243. const m_COMMENT_STATE = 91
  6244. const m_D_CODES = 30
  6245. const m_EXTRA_STATE = 69
  6246. const m_FINISH_STATE = 666
  6247. const m_GZIP_STATE = 57
  6248. const m_HCRC_STATE = 103
  6249. const m_INIT_STATE = 42
  6250. const m_LENGTH_CODES = 29
  6251. const m_LITERALS = 256
  6252. const m_LIT_BUFS = 4
  6253. const m_MAX_BITS = 15
  6254. const m_MAX_STORED = 65535
  6255. const m_NAME_STATE = 73
  6256. const m_NIL = 0
  6257. const m_PRESET_DICT1 = 32
  6258. const m_TOO_FAR = 4096
  6259. const m_WIN_INIT = "MAX_MATCH"
  6260. const m_max_insert_length = "max_lazy_match"
  6261. type Tinternal_state = struct {
  6262. Fstrm Tz_streamp
  6263. Fstatus int32
  6264. Fpending_buf uintptr
  6265. Fpending_buf_size Tulg
  6266. Fpending_out uintptr
  6267. Fpending Tulg
  6268. Fwrap int32
  6269. Fgzhead Tgz_headerp
  6270. Fgzindex Tulg
  6271. Fmethod TByte
  6272. Flast_flush int32
  6273. Fw_size TuInt
  6274. Fw_bits TuInt
  6275. Fw_mask TuInt
  6276. Fwindow uintptr
  6277. Fwindow_size Tulg
  6278. Fprev uintptr
  6279. Fhead uintptr
  6280. Fins_h TuInt
  6281. Fhash_size TuInt
  6282. Fhash_bits TuInt
  6283. Fhash_mask TuInt
  6284. Fhash_shift TuInt
  6285. Fblock_start int64
  6286. Fmatch_length TuInt
  6287. Fprev_match TIPos
  6288. Fmatch_available int32
  6289. Fstrstart TuInt
  6290. Fmatch_start TuInt
  6291. Flookahead TuInt
  6292. Fprev_length TuInt
  6293. Fmax_chain_length TuInt
  6294. Fmax_lazy_match TuInt
  6295. Flevel int32
  6296. Fstrategy int32
  6297. Fgood_match TuInt
  6298. Fnice_match int32
  6299. Fdyn_ltree [573]Tct_data_s
  6300. Fdyn_dtree [61]Tct_data_s
  6301. Fbl_tree [39]Tct_data_s
  6302. Fl_desc Ttree_desc_s
  6303. Fd_desc Ttree_desc_s
  6304. Fbl_desc Ttree_desc_s
  6305. Fbl_count [16]Tush
  6306. Fheap [573]int32
  6307. Fheap_len int32
  6308. Fheap_max int32
  6309. Fdepth [573]Tuch
  6310. Fsym_buf uintptr
  6311. Flit_bufsize TuInt
  6312. Fsym_next TuInt
  6313. Fsym_end TuInt
  6314. Fopt_len Tulg
  6315. Fstatic_len Tulg
  6316. Fmatches TuInt
  6317. Finsert TuInt
  6318. Fbi_buf Tush
  6319. Fbi_valid int32
  6320. Fhigh_water Tulg
  6321. }
  6322. type Tct_data = struct {
  6323. Ffc struct {
  6324. Fcode [0]Tush
  6325. Ffreq Tush
  6326. }
  6327. Fdl struct {
  6328. Flen1 [0]Tush
  6329. Fdad Tush
  6330. }
  6331. }
  6332. type Tct_data_s = Tct_data
  6333. type Ttree_desc = struct {
  6334. Fdyn_tree uintptr
  6335. Fmax_code int32
  6336. Fstat_desc uintptr
  6337. }
  6338. type Ttree_desc_s = Ttree_desc
  6339. type TPos = uint16
  6340. type TPosf = uint16
  6341. type TIPos = uint32
  6342. type Tdeflate_state = struct {
  6343. Fstrm Tz_streamp
  6344. Fstatus int32
  6345. Fpending_buf uintptr
  6346. Fpending_buf_size Tulg
  6347. Fpending_out uintptr
  6348. Fpending Tulg
  6349. Fwrap int32
  6350. Fgzhead Tgz_headerp
  6351. Fgzindex Tulg
  6352. Fmethod TByte
  6353. Flast_flush int32
  6354. Fw_size TuInt
  6355. Fw_bits TuInt
  6356. Fw_mask TuInt
  6357. Fwindow uintptr
  6358. Fwindow_size Tulg
  6359. Fprev uintptr
  6360. Fhead uintptr
  6361. Fins_h TuInt
  6362. Fhash_size TuInt
  6363. Fhash_bits TuInt
  6364. Fhash_mask TuInt
  6365. Fhash_shift TuInt
  6366. Fblock_start int64
  6367. Fmatch_length TuInt
  6368. Fprev_match TIPos
  6369. Fmatch_available int32
  6370. Fstrstart TuInt
  6371. Fmatch_start TuInt
  6372. Flookahead TuInt
  6373. Fprev_length TuInt
  6374. Fmax_chain_length TuInt
  6375. Fmax_lazy_match TuInt
  6376. Flevel int32
  6377. Fstrategy int32
  6378. Fgood_match TuInt
  6379. Fnice_match int32
  6380. Fdyn_ltree [573]Tct_data_s
  6381. Fdyn_dtree [61]Tct_data_s
  6382. Fbl_tree [39]Tct_data_s
  6383. Fl_desc Ttree_desc_s
  6384. Fd_desc Ttree_desc_s
  6385. Fbl_desc Ttree_desc_s
  6386. Fbl_count [16]Tush
  6387. Fheap [573]int32
  6388. Fheap_len int32
  6389. Fheap_max int32
  6390. Fdepth [573]Tuch
  6391. Fsym_buf uintptr
  6392. Flit_bufsize TuInt
  6393. Fsym_next TuInt
  6394. Fsym_end TuInt
  6395. Fopt_len Tulg
  6396. Fstatic_len Tulg
  6397. Fmatches TuInt
  6398. Finsert TuInt
  6399. Fbi_buf Tush
  6400. Fbi_valid int32
  6401. Fhigh_water Tulg
  6402. }
  6403. /*
  6404. If you use the zlib library in a product, an acknowledgment is welcome
  6405. in the documentation of your product. If for some reason you cannot
  6406. include such an acknowledgment, I would appreciate that you keep this
  6407. copyright string in the executable of your product.
  6408. */
  6409. type Tblock_state = int32
  6410. const _need_more = 0
  6411. const /* block not completed, need more input or more output */
  6412. _block_done = 1
  6413. const /* block flush performed */
  6414. _finish_started = 2
  6415. const /* finish started, need only more output at next deflate */
  6416. _finish_done = 3
  6417. type Tcompress_func = uintptr
  6418. /* ===========================================================================
  6419. * Local data
  6420. */
  6421. /* Tail of hash chains */
  6422. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  6423. // C documentation
  6424. //
  6425. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  6426. // * the desired pack level (0..9). The values given below have been tuned to
  6427. // * exclude worst case performance for pathological files. Better values may be
  6428. // * found for specific files.
  6429. // */
  6430. type Tconfig = struct {
  6431. Fgood_length Tush
  6432. Fmax_lazy Tush
  6433. Fnice_length Tush
  6434. Fmax_chain Tush
  6435. Ffunc1 Tcompress_func
  6436. }
  6437. /* ===========================================================================
  6438. * Local data
  6439. */
  6440. /* Tail of hash chains */
  6441. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  6442. // C documentation
  6443. //
  6444. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  6445. // * the desired pack level (0..9). The values given below have been tuned to
  6446. // * exclude worst case performance for pathological files. Better values may be
  6447. // * found for specific files.
  6448. // */
  6449. type Tconfig_s = Tconfig
  6450. var _configuration_table = [10]Tconfig{
  6451. 0: {},
  6452. 1: {
  6453. Fgood_length: uint16(4),
  6454. Fmax_lazy: uint16(4),
  6455. Fnice_length: uint16(8),
  6456. Fmax_chain: uint16(4),
  6457. },
  6458. 2: {
  6459. Fgood_length: uint16(4),
  6460. Fmax_lazy: uint16(5),
  6461. Fnice_length: uint16(16),
  6462. Fmax_chain: uint16(8),
  6463. },
  6464. 3: {
  6465. Fgood_length: uint16(4),
  6466. Fmax_lazy: uint16(6),
  6467. Fnice_length: uint16(32),
  6468. Fmax_chain: uint16(32),
  6469. },
  6470. 4: {
  6471. Fgood_length: uint16(4),
  6472. Fmax_lazy: uint16(4),
  6473. Fnice_length: uint16(16),
  6474. Fmax_chain: uint16(16),
  6475. },
  6476. 5: {
  6477. Fgood_length: uint16(8),
  6478. Fmax_lazy: uint16(16),
  6479. Fnice_length: uint16(32),
  6480. Fmax_chain: uint16(32),
  6481. },
  6482. 6: {
  6483. Fgood_length: uint16(8),
  6484. Fmax_lazy: uint16(16),
  6485. Fnice_length: uint16(128),
  6486. Fmax_chain: uint16(128),
  6487. },
  6488. 7: {
  6489. Fgood_length: uint16(8),
  6490. Fmax_lazy: uint16(32),
  6491. Fnice_length: uint16(128),
  6492. Fmax_chain: uint16(256),
  6493. },
  6494. 8: {
  6495. Fgood_length: uint16(32),
  6496. Fmax_lazy: uint16(128),
  6497. Fnice_length: uint16(258),
  6498. Fmax_chain: uint16(1024),
  6499. },
  6500. 9: {
  6501. Fgood_length: uint16(32),
  6502. Fmax_lazy: uint16(258),
  6503. Fnice_length: uint16(258),
  6504. Fmax_chain: uint16(4096),
  6505. },
  6506. }
  6507. func init() {
  6508. p := unsafe.Pointer(&_configuration_table)
  6509. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  6510. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  6511. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  6512. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  6513. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  6514. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  6515. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  6516. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  6517. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  6518. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  6519. }
  6520. /* max compression */
  6521. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  6522. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  6523. * meaning.
  6524. */
  6525. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  6526. /* ===========================================================================
  6527. * Update a hash value with the given input byte
  6528. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  6529. * characters, so that a running hash key can be computed from the previous
  6530. * key instead of complete recalculation each time.
  6531. */
  6532. /* ===========================================================================
  6533. * Insert string str in the dictionary and set match_head to the previous head
  6534. * of the hash chain (the most recent string with same hash key). Return
  6535. * the previous length of the hash chain.
  6536. * If this file is compiled with -DFASTEST, the compression level is forced
  6537. * to 1, and no hash chains are maintained.
  6538. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  6539. * characters and the first MIN_MATCH bytes of str are valid (except for
  6540. * the last MIN_MATCH-1 bytes of the input file).
  6541. */
  6542. /* ===========================================================================
  6543. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  6544. * prev[] will be initialized on the fly.
  6545. */
  6546. // C documentation
  6547. //
  6548. // /* ===========================================================================
  6549. // * Slide the hash table when sliding the window down (could be avoided with 32
  6550. // * bit values at the expense of memory usage). We slide even when level == 0 to
  6551. // * keep the hash table consistent if we switch back to level > 0 later.
  6552. // */
  6553. func _slide_hash(tls *libc.TLS, s uintptr) {
  6554. var m, n, v1, v4, v5, v8 uint32
  6555. var p, v3, v7 uintptr
  6556. var wsize TuInt
  6557. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  6558. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6559. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  6560. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  6561. for {
  6562. p -= 2
  6563. v3 = p
  6564. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  6565. if m >= wsize {
  6566. v4 = m - wsize
  6567. } else {
  6568. v4 = uint32(m_NIL)
  6569. }
  6570. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  6571. goto _2
  6572. _2:
  6573. ;
  6574. n--
  6575. v1 = n
  6576. if !(v1 != 0) {
  6577. break
  6578. }
  6579. }
  6580. n = wsize
  6581. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  6582. for {
  6583. p -= 2
  6584. v7 = p
  6585. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  6586. if m >= wsize {
  6587. v8 = m - wsize
  6588. } else {
  6589. v8 = uint32(m_NIL)
  6590. }
  6591. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  6592. /* If n is not on any hash chain, prev[n] is garbage but
  6593. * its value will never be used.
  6594. */
  6595. goto _6
  6596. _6:
  6597. ;
  6598. n--
  6599. v5 = n
  6600. if !(v5 != 0) {
  6601. break
  6602. }
  6603. }
  6604. }
  6605. // C documentation
  6606. //
  6607. // /* ===========================================================================
  6608. // * Read a new buffer from the current input stream, update the adler32
  6609. // * and total number of bytes read. All deflate() input goes through
  6610. // * this function so some applications may wish to modify it to avoid
  6611. // * allocating a large strm->next_in buffer and copying from it.
  6612. // * (See also flush_pending()).
  6613. // */
  6614. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  6615. var len1 uint32
  6616. _ = len1
  6617. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  6618. if len1 > size {
  6619. len1 = size
  6620. }
  6621. if len1 == uint32(0) {
  6622. return uint32(0)
  6623. }
  6624. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  6625. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(len1))
  6626. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  6627. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  6628. } else {
  6629. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  6630. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  6631. }
  6632. }
  6633. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  6634. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  6635. return len1
  6636. }
  6637. // C documentation
  6638. //
  6639. // /* ===========================================================================
  6640. // * Fill the window when the lookahead becomes insufficient.
  6641. // * Updates strstart and lookahead.
  6642. // *
  6643. // * IN assertion: lookahead < MIN_LOOKAHEAD
  6644. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  6645. // * At least one byte has been read, or avail_in == 0; reads are
  6646. // * performed for at least two bytes (required for the zip translate_eol
  6647. // * option -- not supported here).
  6648. // */
  6649. func _fill_window(tls *libc.TLS, s uintptr) {
  6650. var curr, init1 Tulg
  6651. var more, n uint32
  6652. var str, wsize TuInt
  6653. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  6654. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6655. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in != uint32(0) {
  6656. more = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  6657. /* Deal with !@#$% 64K limit: */
  6658. if uint64(4) <= uint64(2) {
  6659. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6660. more = wsize
  6661. } else {
  6662. if more == uint32(-libc.Int32FromInt32(1)) {
  6663. /* Very unlikely, but possible on 16 bit machine if
  6664. * strstart == 0 && lookahead == 1 (input done a byte at time)
  6665. */
  6666. more--
  6667. }
  6668. }
  6669. }
  6670. /* If the window is almost full and there is insufficient lookahead,
  6671. * move the upper half to the lower one to make room in the upper half.
  6672. */
  6673. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  6674. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  6675. *(*TuInt)(unsafe.Pointer(s + 176)) -= wsize
  6676. *(*TuInt)(unsafe.Pointer(s + 172)) -= wsize /* we now have strstart >= MAX_DIST */
  6677. *(*int64)(unsafe.Pointer(s + 152)) -= int64(wsize)
  6678. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6679. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6680. }
  6681. _slide_hash(tls, s)
  6682. more += wsize
  6683. }
  6684. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  6685. break
  6686. }
  6687. /* If there was no sliding:
  6688. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  6689. * more == window_size - lookahead - strstart
  6690. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  6691. * => more >= window_size - 2*WSIZE + 2
  6692. * In the BIG_MEM or MMAP case (not yet supported),
  6693. * window_size == input_size + MIN_LOOKAHEAD &&
  6694. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  6695. * Otherwise, window_size == 2*WSIZE so more >= 2.
  6696. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  6697. */
  6698. 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)
  6699. *(*TuInt)(unsafe.Pointer(s + 180)) += n
  6700. /* Initialize the hash value now that we have some input: */
  6701. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  6702. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6703. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  6704. (*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
  6705. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  6706. (*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
  6707. *(*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))
  6708. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  6709. str++
  6710. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  6711. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  6712. break
  6713. }
  6714. }
  6715. }
  6716. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  6717. * but this is not important since only literal bytes will be emitted.
  6718. */
  6719. }
  6720. /* If the WIN_INIT bytes after the end of the current data have never been
  6721. * written, then zero those bytes in order to avoid memory check reports of
  6722. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  6723. * the longest match routines. Update the high water mark for the next
  6724. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  6725. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  6726. */
  6727. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  6728. curr = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  6729. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  6730. /* Previous high water mark below current data -- zero WIN_INIT
  6731. * bytes or up to end of window, whichever is less.
  6732. */
  6733. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  6734. if init1 > uint64(m_MAX_MATCH) {
  6735. init1 = uint64(m_MAX_MATCH)
  6736. }
  6737. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(uint32(init1)))
  6738. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  6739. } else {
  6740. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint64(m_MAX_MATCH) {
  6741. /* High water mark at or above current data, but below current data
  6742. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  6743. * to end of window, whichever is less.
  6744. */
  6745. init1 = curr + uint64(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  6746. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  6747. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  6748. }
  6749. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(uint32(init1)))
  6750. *(*Tulg)(unsafe.Pointer(s + 5944)) += init1
  6751. }
  6752. }
  6753. }
  6754. }
  6755. // C documentation
  6756. //
  6757. // /* ========================================================================= */
  6758. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  6759. 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)
  6760. /* To do: ignore strm->next_in if we use it as window */
  6761. }
  6762. // C documentation
  6763. //
  6764. // /* ========================================================================= */
  6765. 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) {
  6766. var s uintptr
  6767. var wrap int32
  6768. _, _ = s, wrap
  6769. wrap = int32(1)
  6770. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(_my_version[0]) || uint64(stream_size) != uint64(112) {
  6771. return -int32(6)
  6772. }
  6773. if strm == uintptr(m_Z_NULL) {
  6774. return -int32(2)
  6775. }
  6776. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  6777. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  6778. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  6779. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  6780. }
  6781. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6782. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  6783. }
  6784. if level == -int32(1) {
  6785. level = int32(6)
  6786. }
  6787. if windowBits < 0 { /* suppress zlib wrapper */
  6788. wrap = 0
  6789. if windowBits < -int32(15) {
  6790. return -int32(2)
  6791. }
  6792. windowBits = -windowBits
  6793. } else {
  6794. if windowBits > int32(15) {
  6795. wrap = int32(2) /* write gzip wrapper instead */
  6796. windowBits -= int32(16)
  6797. }
  6798. }
  6799. 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) {
  6800. return -int32(2)
  6801. }
  6802. if windowBits == int32(8) {
  6803. windowBits = int32(9)
  6804. } /* until 256-byte window bug fixed */
  6805. s = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  6806. if s == uintptr(m_Z_NULL) {
  6807. return -int32(4)
  6808. }
  6809. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  6810. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  6811. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  6812. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  6813. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  6814. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = uint32(windowBits)
  6815. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  6816. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  6817. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = uint32(memLevel) + uint32(7)
  6818. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  6819. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  6820. (*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)
  6821. (*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)))
  6822. (*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)))
  6823. (*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)))
  6824. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64(0) /* nothing written to s->window yet */
  6825. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = uint32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  6826. /* We overlay pending_buf and sym_buf. This works since the average size
  6827. * for length/distance pairs over any compressed block is assured to be 31
  6828. * bits or less.
  6829. *
  6830. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  6831. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  6832. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  6833. * possible fixed-codes length/distance pair is then 31 bits total.
  6834. *
  6835. * sym_buf starts one-fourth of the way into pending_buf. So there are
  6836. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  6837. * in sym_buf is three bytes -- two for the distance and one for the
  6838. * literal/length. As each symbol is consumed, the pointer to the next
  6839. * sym_buf value to read moves forward three bytes. From that symbol, up to
  6840. * 31 bits are written to pending_buf. The closest the written pending_buf
  6841. * bits gets to the next sym_buf symbol to read is just before the last
  6842. * code is written. At that time, 31*(n - 2) bits have been written, just
  6843. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  6844. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  6845. * symbols are written.) The closest the writing gets to what is unread is
  6846. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  6847. * can range from 128 to 32768.
  6848. *
  6849. * Therefore, at a minimum, there are 142 bits of space between what is
  6850. * written and what is read in the overlain buffers, so the symbols cannot
  6851. * be overwritten by the compressed data. That space is actually 139 bits,
  6852. * due to the three-bit fixed-code block header.
  6853. *
  6854. * That covers the case where either Z_FIXED is specified, forcing fixed
  6855. * codes, or when the use of fixed codes is chosen, because that choice
  6856. * results in a smaller compressed block than dynamic codes. That latter
  6857. * condition then assures that the above analysis also covers all dynamic
  6858. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  6859. * fewer bits than a fixed-code block would for the same set of symbols.
  6860. * Therefore its average symbol length is assured to be less than 31. So
  6861. * the compressed data for a dynamic block also cannot overwrite the
  6862. * symbols from which it is being constructed.
  6863. */
  6864. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize, uint32(libc.Int32FromInt32(m_LIT_BUFS)))
  6865. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize) * uint64(4)
  6866. 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) {
  6867. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  6868. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  6869. XdeflateEnd(tls, strm)
  6870. return -int32(4)
  6871. }
  6872. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  6873. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  6874. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  6875. * on 16 bit machines and because stored blocks are restricted to
  6876. * 64K-1 bytes.
  6877. */
  6878. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  6879. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  6880. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = uint8(method)
  6881. return XdeflateReset(tls, strm)
  6882. }
  6883. var _my_version = [6]int8{'1', '.', '3', '.', '1'}
  6884. // C documentation
  6885. //
  6886. // /* =========================================================================
  6887. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  6888. // */
  6889. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6890. var s uintptr
  6891. _ = s
  6892. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6893. return int32(1)
  6894. }
  6895. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6896. 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) {
  6897. return int32(1)
  6898. }
  6899. return 0
  6900. }
  6901. // C documentation
  6902. //
  6903. // /* ========================================================================= */
  6904. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  6905. var avail uint32
  6906. var n, str, v1, v3 TuInt
  6907. var next, s uintptr
  6908. var wrap int32
  6909. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  6910. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  6911. return -int32(2)
  6912. }
  6913. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6914. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  6915. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  6916. return -int32(2)
  6917. }
  6918. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  6919. if wrap == int32(1) {
  6920. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  6921. }
  6922. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  6923. /* if dictionary would fill window, just replace the history */
  6924. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6925. if wrap == 0 { /* already empty otherwise */
  6926. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6927. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6928. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  6929. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  6930. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6931. }
  6932. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  6933. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6934. }
  6935. /* insert dictionary into window and hash */
  6936. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  6937. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  6938. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  6939. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  6940. _fill_window(tls, s)
  6941. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6942. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6943. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  6944. for {
  6945. (*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
  6946. *(*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))
  6947. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  6948. str++
  6949. goto _2
  6950. _2:
  6951. ;
  6952. n--
  6953. v1 = n
  6954. if !(v1 != 0) {
  6955. break
  6956. }
  6957. }
  6958. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  6959. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6960. _fill_window(tls, s)
  6961. }
  6962. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6963. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6964. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6965. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  6966. v3 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6967. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  6968. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  6969. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6970. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  6971. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  6972. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  6973. return m_Z_OK
  6974. }
  6975. // C documentation
  6976. //
  6977. // /* ========================================================================= */
  6978. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  6979. var len1 TuInt
  6980. var s uintptr
  6981. _, _ = len1, s
  6982. if _deflateStateCheck(tls, strm) != 0 {
  6983. return -int32(2)
  6984. }
  6985. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6986. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6987. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6988. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6989. }
  6990. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  6991. 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))
  6992. }
  6993. if dictLength != uintptr(m_Z_NULL) {
  6994. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  6995. }
  6996. return m_Z_OK
  6997. }
  6998. // C documentation
  6999. //
  7000. // /* ========================================================================= */
  7001. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  7002. var s uintptr
  7003. var v1 TuLong
  7004. var v2 int32
  7005. var v3 uint64
  7006. _, _, _, _ = s, v1, v2, v3
  7007. if _deflateStateCheck(tls, strm) != 0 {
  7008. return -int32(2)
  7009. }
  7010. v1 = libc.Uint64FromInt32(0)
  7011. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  7012. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  7013. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  7014. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  7015. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7016. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint64(0)
  7017. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  7018. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  7019. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  7020. }
  7021. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  7022. v2 = int32(m_GZIP_STATE)
  7023. } else {
  7024. v2 = int32(m_INIT_STATE)
  7025. }
  7026. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  7027. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  7028. v3 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  7029. } else {
  7030. v3 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  7031. }
  7032. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  7033. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  7034. x__tr_init(tls, s)
  7035. return m_Z_OK
  7036. }
  7037. // C documentation
  7038. //
  7039. // /* ===========================================================================
  7040. // * Initialize the "longest match" routines for a new zlib stream
  7041. // */
  7042. func _lm_init(tls *libc.TLS, s uintptr) {
  7043. var v1 TuInt
  7044. _ = v1
  7045. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint64FromInt64(2) * uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  7046. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  7047. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  7048. /* Set the default configuration parameters:
  7049. */
  7050. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  7051. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  7052. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  7053. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  7054. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  7055. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  7056. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  7057. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  7058. v1 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  7059. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  7060. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  7061. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  7062. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  7063. }
  7064. // C documentation
  7065. //
  7066. // /* ========================================================================= */
  7067. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  7068. var ret int32
  7069. _ = ret
  7070. ret = XdeflateResetKeep(tls, strm)
  7071. if ret == m_Z_OK {
  7072. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  7073. }
  7074. return ret
  7075. }
  7076. // C documentation
  7077. //
  7078. // /* ========================================================================= */
  7079. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  7080. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  7081. return -int32(2)
  7082. }
  7083. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  7084. return m_Z_OK
  7085. }
  7086. // C documentation
  7087. //
  7088. // /* ========================================================================= */
  7089. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  7090. if _deflateStateCheck(tls, strm) != 0 {
  7091. return -int32(2)
  7092. }
  7093. if pending != uintptr(m_Z_NULL) {
  7094. *(*uint32)(unsafe.Pointer(pending)) = uint32((*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending)
  7095. }
  7096. if bits != uintptr(m_Z_NULL) {
  7097. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  7098. }
  7099. return m_Z_OK
  7100. }
  7101. // C documentation
  7102. //
  7103. // /* ========================================================================= */
  7104. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  7105. var put int32
  7106. var s, p1 uintptr
  7107. _, _, _ = put, s, p1
  7108. if _deflateStateCheck(tls, strm) != 0 {
  7109. return -int32(2)
  7110. }
  7111. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7112. 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)) {
  7113. return -int32(5)
  7114. }
  7115. for cond := true; cond; cond = bits != 0 {
  7116. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  7117. if put > bits {
  7118. put = bits
  7119. }
  7120. p1 = s + 5936
  7121. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  7122. *(*int32)(unsafe.Pointer(s + 5940)) += put
  7123. x__tr_flush_bits(tls, s)
  7124. value >>= put
  7125. bits -= put
  7126. }
  7127. return m_Z_OK
  7128. }
  7129. // C documentation
  7130. //
  7131. // /* ========================================================================= */
  7132. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  7133. var err int32
  7134. var func1 Tcompress_func
  7135. var s uintptr
  7136. _, _, _ = err, func1, s
  7137. if _deflateStateCheck(tls, strm) != 0 {
  7138. return -int32(2)
  7139. }
  7140. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7141. if level == -int32(1) {
  7142. level = int32(6)
  7143. }
  7144. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  7145. return -int32(2)
  7146. }
  7147. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  7148. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  7149. /* Flush the last buffer: */
  7150. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  7151. if err == -int32(2) {
  7152. return err
  7153. }
  7154. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start+int64((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead) != 0 {
  7155. return -int32(5)
  7156. }
  7157. }
  7158. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  7159. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  7160. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  7161. _slide_hash(tls, s)
  7162. } else {
  7163. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  7164. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  7165. }
  7166. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  7167. }
  7168. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  7169. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  7170. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  7171. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[level].Fnice_length)
  7172. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  7173. }
  7174. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  7175. return m_Z_OK
  7176. }
  7177. // C documentation
  7178. //
  7179. // /* ========================================================================= */
  7180. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  7181. var s uintptr
  7182. _ = s
  7183. if _deflateStateCheck(tls, strm) != 0 {
  7184. return -int32(2)
  7185. }
  7186. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7187. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(good_length)
  7188. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(max_lazy)
  7189. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  7190. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(max_chain)
  7191. return m_Z_OK
  7192. }
  7193. // C documentation
  7194. //
  7195. // /* =========================================================================
  7196. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  7197. // * close to exact, as well as small, upper bound on the compressed size. This
  7198. // * is an expansion of ~0.03%, plus a small constant.
  7199. // *
  7200. // * For any setting other than those defaults for windowBits and memLevel, one
  7201. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  7202. // * ~13%, plus a small constant.
  7203. // *
  7204. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  7205. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  7206. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  7207. // * expansion results from five bytes of header for each stored block.
  7208. // *
  7209. // * The larger expansion of 13% results from a window size less than or equal to
  7210. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  7211. // * the data being compressed may have slid out of the sliding window, impeding
  7212. // * a stored block from being emitted. Then the only choice is a fixed or
  7213. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  7214. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  7215. // * which this can occur is 255 (memLevel == 2).
  7216. // *
  7217. // * Shifts are used to approximate divisions, for speed.
  7218. // */
  7219. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  7220. var fixedlen, storelen, wraplen TuLong
  7221. var s, str, v3, v5 uintptr
  7222. var v1, v7 uint64
  7223. var v2 int32
  7224. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  7225. /* upper bound for fixed blocks with 9-bit literals and length 255
  7226. (memLevel == 2, which is the lowest that may not use stored blocks) --
  7227. ~13% overhead plus a small constant */
  7228. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint64(4)
  7229. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  7230. ~4% overhead plus a small constant */
  7231. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint64(7)
  7232. /* if can't get parameters, return larger bound plus a zlib wrapper */
  7233. if _deflateStateCheck(tls, strm) != 0 {
  7234. if fixedlen > storelen {
  7235. v1 = fixedlen
  7236. } else {
  7237. v1 = storelen
  7238. }
  7239. return v1 + uint64(6)
  7240. }
  7241. /* compute wrapper length */
  7242. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7243. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  7244. case 0: /* raw deflate */
  7245. wraplen = uint64(0)
  7246. case int32(1): /* zlib wrapper */
  7247. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  7248. v2 = int32(4)
  7249. } else {
  7250. v2 = 0
  7251. }
  7252. wraplen = uint64(int32(6) + v2)
  7253. case int32(2): /* gzip wrapper */
  7254. wraplen = uint64(18)
  7255. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  7256. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  7257. wraplen += uint64(uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len)
  7258. }
  7259. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  7260. if str != uintptr(m_Z_NULL) {
  7261. for {
  7262. wraplen++
  7263. goto _4
  7264. _4:
  7265. ;
  7266. v3 = str
  7267. str++
  7268. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  7269. break
  7270. }
  7271. }
  7272. }
  7273. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  7274. if str != uintptr(m_Z_NULL) {
  7275. for {
  7276. wraplen++
  7277. goto _6
  7278. _6:
  7279. ;
  7280. v5 = str
  7281. str++
  7282. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  7283. break
  7284. }
  7285. }
  7286. }
  7287. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7288. wraplen += uint64(2)
  7289. }
  7290. }
  7291. default: /* for compiler happiness */
  7292. wraplen = uint64(6)
  7293. }
  7294. /* if not default parameters, return one of the conservative bounds */
  7295. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != uint32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  7296. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  7297. v7 = fixedlen
  7298. } else {
  7299. v7 = storelen
  7300. }
  7301. return v7 + wraplen
  7302. }
  7303. /* default settings: return tight bound for that case -- ~0.03% overhead
  7304. plus a small constant */
  7305. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13) - uint64(6) + wraplen
  7306. }
  7307. // C documentation
  7308. //
  7309. // /* =========================================================================
  7310. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  7311. // * IN assertion: the stream state is correct and there is enough room in
  7312. // * pending_buf.
  7313. // */
  7314. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  7315. var v1, v3 Tulg
  7316. var v2, v4 uintptr
  7317. _, _, _, _ = v1, v2, v3, v4
  7318. v2 = s + 40
  7319. v1 = *(*Tulg)(unsafe.Pointer(v2))
  7320. *(*Tulg)(unsafe.Pointer(v2))++
  7321. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  7322. v4 = s + 40
  7323. v3 = *(*Tulg)(unsafe.Pointer(v4))
  7324. *(*Tulg)(unsafe.Pointer(v4))++
  7325. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  7326. }
  7327. // C documentation
  7328. //
  7329. // /* =========================================================================
  7330. // * Flush as much pending output as possible. All deflate() output, except for
  7331. // * some deflate_stored() output, goes through this function so some
  7332. // * applications may wish to modify it to avoid allocating a large
  7333. // * strm->next_out buffer and copying into it. (See also read_buf()).
  7334. // */
  7335. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  7336. var len1 uint32
  7337. var s uintptr
  7338. _, _ = len1, s
  7339. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7340. x__tr_flush_bits(tls, s)
  7341. len1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  7342. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  7343. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  7344. }
  7345. if len1 == uint32(0) {
  7346. return
  7347. }
  7348. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(len1))
  7349. *(*uintptr)(unsafe.Pointer(strm + 24)) += uintptr(len1)
  7350. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  7351. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(len1)
  7352. *(*TuInt)(unsafe.Pointer(strm + 32)) -= len1
  7353. *(*Tulg)(unsafe.Pointer(s + 40)) -= uint64(len1)
  7354. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint64(0) {
  7355. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  7356. }
  7357. }
  7358. /* ===========================================================================
  7359. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  7360. */
  7361. // C documentation
  7362. //
  7363. // /* ========================================================================= */
  7364. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  7365. 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
  7366. var bstate Tblock_state
  7367. var copy1, header, left, level_flags TuInt
  7368. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  7369. 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
  7370. var v3 bool
  7371. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  7372. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  7373. return -int32(2)
  7374. }
  7375. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7376. 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) {
  7377. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  7378. return -libc.Int32FromInt32(2)
  7379. }
  7380. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7381. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  7382. return -libc.Int32FromInt32(5)
  7383. }
  7384. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  7385. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  7386. /* Flush as much pending output as possible */
  7387. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7388. _flush_pending(tls, strm)
  7389. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7390. /* Since avail_out is 0, deflate will be called again with
  7391. * more output space, but possibly with both pending and
  7392. * avail_in equal to zero. There won't be anything to do,
  7393. * but this is not an error situation so make sure we
  7394. * return OK instead of BUF_ERROR at next call of deflate:
  7395. */
  7396. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7397. return m_Z_OK
  7398. }
  7399. /* Make sure there is something to do and avoid duplicate consecutive
  7400. * flushes. For repeated and useless calls with Z_FINISH, we keep
  7401. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  7402. */
  7403. } else {
  7404. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  7405. if flush > int32(4) {
  7406. v1 = int32(9)
  7407. } else {
  7408. v1 = 0
  7409. }
  7410. if old_flush > int32(4) {
  7411. v2 = int32(9)
  7412. } else {
  7413. v2 = 0
  7414. }
  7415. }
  7416. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  7417. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  7418. return -libc.Int32FromInt32(5)
  7419. }
  7420. }
  7421. /* User must not provide more input after the first FINISH: */
  7422. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  7423. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  7424. return -libc.Int32FromInt32(5)
  7425. }
  7426. /* Write the header */
  7427. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  7428. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7429. }
  7430. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  7431. /* zlib header */
  7432. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  7433. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  7434. level_flags = uint32(0)
  7435. } else {
  7436. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  7437. level_flags = uint32(1)
  7438. } else {
  7439. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  7440. level_flags = uint32(2)
  7441. } else {
  7442. level_flags = uint32(3)
  7443. }
  7444. }
  7445. }
  7446. header |= level_flags << libc.Int32FromInt32(6)
  7447. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  7448. header |= uint32(m_PRESET_DICT1)
  7449. }
  7450. header += uint32(31) - header%uint32(31)
  7451. _putShortMSB(tls, s, header)
  7452. /* Save the adler32 of the preset dictionary: */
  7453. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  7454. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  7455. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  7456. }
  7457. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  7458. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7459. /* Compression must start with an empty pending buffer */
  7460. _flush_pending(tls, strm)
  7461. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7462. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7463. return m_Z_OK
  7464. }
  7465. }
  7466. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  7467. /* gzip header */
  7468. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  7469. v5 = s + 40
  7470. v4 = *(*Tulg)(unsafe.Pointer(v5))
  7471. *(*Tulg)(unsafe.Pointer(v5))++
  7472. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(libc.Int32FromInt32(31))
  7473. v7 = s + 40
  7474. v6 = *(*Tulg)(unsafe.Pointer(v7))
  7475. *(*Tulg)(unsafe.Pointer(v7))++
  7476. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(libc.Int32FromInt32(139))
  7477. v9 = s + 40
  7478. v8 = *(*Tulg)(unsafe.Pointer(v9))
  7479. *(*Tulg)(unsafe.Pointer(v9))++
  7480. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(libc.Int32FromInt32(8))
  7481. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  7482. v11 = s + 40
  7483. v10 = *(*Tulg)(unsafe.Pointer(v11))
  7484. *(*Tulg)(unsafe.Pointer(v11))++
  7485. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(libc.Int32FromInt32(0))
  7486. v13 = s + 40
  7487. v12 = *(*Tulg)(unsafe.Pointer(v13))
  7488. *(*Tulg)(unsafe.Pointer(v13))++
  7489. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(libc.Int32FromInt32(0))
  7490. v15 = s + 40
  7491. v14 = *(*Tulg)(unsafe.Pointer(v15))
  7492. *(*Tulg)(unsafe.Pointer(v15))++
  7493. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(libc.Int32FromInt32(0))
  7494. v17 = s + 40
  7495. v16 = *(*Tulg)(unsafe.Pointer(v17))
  7496. *(*Tulg)(unsafe.Pointer(v17))++
  7497. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(libc.Int32FromInt32(0))
  7498. v19 = s + 40
  7499. v18 = *(*Tulg)(unsafe.Pointer(v19))
  7500. *(*Tulg)(unsafe.Pointer(v19))++
  7501. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(libc.Int32FromInt32(0))
  7502. v21 = s + 40
  7503. v20 = *(*Tulg)(unsafe.Pointer(v21))
  7504. *(*Tulg)(unsafe.Pointer(v21))++
  7505. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  7506. v22 = int32(2)
  7507. } else {
  7508. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  7509. v23 = int32(4)
  7510. } else {
  7511. v23 = 0
  7512. }
  7513. v22 = v23
  7514. }
  7515. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(v22)
  7516. v25 = s + 40
  7517. v24 = *(*Tulg)(unsafe.Pointer(v25))
  7518. *(*Tulg)(unsafe.Pointer(v25))++
  7519. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(libc.Int32FromInt32(m_OS_CODE))
  7520. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7521. /* Compression must start with an empty pending buffer */
  7522. _flush_pending(tls, strm)
  7523. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7524. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7525. return m_Z_OK
  7526. }
  7527. } else {
  7528. v27 = s + 40
  7529. v26 = *(*Tulg)(unsafe.Pointer(v27))
  7530. *(*Tulg)(unsafe.Pointer(v27))++
  7531. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  7532. v28 = int32(1)
  7533. } else {
  7534. v28 = 0
  7535. }
  7536. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7537. v29 = int32(2)
  7538. } else {
  7539. v29 = 0
  7540. }
  7541. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  7542. v30 = 0
  7543. } else {
  7544. v30 = int32(4)
  7545. }
  7546. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  7547. v31 = 0
  7548. } else {
  7549. v31 = int32(8)
  7550. }
  7551. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  7552. v32 = 0
  7553. } else {
  7554. v32 = int32(16)
  7555. }
  7556. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(v28 + v29 + v30 + v31 + v32)
  7557. v34 = s + 40
  7558. v33 = *(*Tulg)(unsafe.Pointer(v34))
  7559. *(*Tulg)(unsafe.Pointer(v34))++
  7560. *(*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))
  7561. v36 = s + 40
  7562. v35 = *(*Tulg)(unsafe.Pointer(v36))
  7563. *(*Tulg)(unsafe.Pointer(v36))++
  7564. *(*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))
  7565. v38 = s + 40
  7566. v37 = *(*Tulg)(unsafe.Pointer(v38))
  7567. *(*Tulg)(unsafe.Pointer(v38))++
  7568. *(*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))
  7569. v40 = s + 40
  7570. v39 = *(*Tulg)(unsafe.Pointer(v40))
  7571. *(*Tulg)(unsafe.Pointer(v40))++
  7572. *(*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))
  7573. v42 = s + 40
  7574. v41 = *(*Tulg)(unsafe.Pointer(v42))
  7575. *(*Tulg)(unsafe.Pointer(v42))++
  7576. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  7577. v43 = int32(2)
  7578. } else {
  7579. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  7580. v44 = int32(4)
  7581. } else {
  7582. v44 = 0
  7583. }
  7584. v43 = v44
  7585. }
  7586. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = uint8(v43)
  7587. v46 = s + 40
  7588. v45 = *(*Tulg)(unsafe.Pointer(v46))
  7589. *(*Tulg)(unsafe.Pointer(v46))++
  7590. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  7591. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  7592. v48 = s + 40
  7593. v47 = *(*Tulg)(unsafe.Pointer(v48))
  7594. *(*Tulg)(unsafe.Pointer(v48))++
  7595. *(*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))
  7596. v50 = s + 40
  7597. v49 = *(*Tulg)(unsafe.Pointer(v50))
  7598. *(*Tulg)(unsafe.Pointer(v50))++
  7599. *(*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))
  7600. }
  7601. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7602. (*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))
  7603. }
  7604. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  7605. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  7606. }
  7607. }
  7608. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  7609. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  7610. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  7611. left = uint32(uint64((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex)
  7612. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(left) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7613. copy1 = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  7614. 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))
  7615. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  7616. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  7617. (*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))
  7618. }
  7619. *(*Tulg)(unsafe.Pointer(s + 64)) += uint64(copy1)
  7620. _flush_pending(tls, strm)
  7621. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7622. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7623. return m_Z_OK
  7624. }
  7625. beg = uint64(0)
  7626. left -= copy1
  7627. }
  7628. 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))
  7629. *(*Tulg)(unsafe.Pointer(s + 40)) += uint64(left)
  7630. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  7631. (*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))
  7632. }
  7633. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  7634. }
  7635. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  7636. }
  7637. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  7638. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  7639. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  7640. for cond := true; cond; cond = val != 0 {
  7641. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7642. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  7643. (*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))
  7644. }
  7645. _flush_pending(tls, strm)
  7646. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7647. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7648. return m_Z_OK
  7649. }
  7650. beg1 = uint64(0)
  7651. }
  7652. v52 = s + 64
  7653. v51 = *(*Tulg)(unsafe.Pointer(v52))
  7654. *(*Tulg)(unsafe.Pointer(v52))++
  7655. val = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  7656. v54 = s + 40
  7657. v53 = *(*Tulg)(unsafe.Pointer(v54))
  7658. *(*Tulg)(unsafe.Pointer(v54))++
  7659. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = uint8(val)
  7660. }
  7661. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  7662. (*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))
  7663. }
  7664. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint64(0)
  7665. }
  7666. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  7667. }
  7668. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  7669. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  7670. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  7671. for cond := true; cond; cond = val1 != 0 {
  7672. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7673. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  7674. (*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))
  7675. }
  7676. _flush_pending(tls, strm)
  7677. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7678. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7679. return m_Z_OK
  7680. }
  7681. beg2 = uint64(0)
  7682. }
  7683. v56 = s + 64
  7684. v55 = *(*Tulg)(unsafe.Pointer(v56))
  7685. *(*Tulg)(unsafe.Pointer(v56))++
  7686. val1 = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  7687. v58 = s + 40
  7688. v57 = *(*Tulg)(unsafe.Pointer(v58))
  7689. *(*Tulg)(unsafe.Pointer(v58))++
  7690. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = uint8(val1)
  7691. }
  7692. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  7693. (*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))
  7694. }
  7695. }
  7696. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  7697. }
  7698. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  7699. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7700. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint64(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7701. _flush_pending(tls, strm)
  7702. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7703. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7704. return m_Z_OK
  7705. }
  7706. }
  7707. v60 = s + 40
  7708. v59 = *(*Tulg)(unsafe.Pointer(v60))
  7709. *(*Tulg)(unsafe.Pointer(v60))++
  7710. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  7711. v62 = s + 40
  7712. v61 = *(*Tulg)(unsafe.Pointer(v62))
  7713. *(*Tulg)(unsafe.Pointer(v62))++
  7714. *(*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))
  7715. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  7716. }
  7717. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7718. /* Compression must start with an empty pending buffer */
  7719. _flush_pending(tls, strm)
  7720. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7721. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7722. return m_Z_OK
  7723. }
  7724. }
  7725. /* Start a new block or continue the current one.
  7726. */
  7727. 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) {
  7728. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  7729. v63 = _deflate_stored(tls, s, flush)
  7730. } else {
  7731. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  7732. v64 = _deflate_huff(tls, s, flush)
  7733. } else {
  7734. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  7735. v65 = _deflate_rle(tls, s, flush)
  7736. } else {
  7737. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  7738. }
  7739. v64 = v65
  7740. }
  7741. v63 = v64
  7742. }
  7743. bstate = v63
  7744. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  7745. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  7746. }
  7747. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  7748. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7749. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  7750. }
  7751. return m_Z_OK
  7752. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  7753. * of deflate should use the same flush parameter to make sure
  7754. * that the flush is complete. So we don't have to output an
  7755. * empty block here, this will be done at next call. This also
  7756. * ensures that for a very small output buffer, we emit at most
  7757. * one empty block.
  7758. */
  7759. }
  7760. if bstate == int32(_block_done) {
  7761. if flush == int32(m_Z_PARTIAL_FLUSH) {
  7762. x__tr_align(tls, s)
  7763. } else {
  7764. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  7765. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), 0)
  7766. /* For a full flush, this empty block will be recognized
  7767. * as a special marker by inflate_sync().
  7768. */
  7769. if flush == int32(m_Z_FULL_FLUSH) {
  7770. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  7771. 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 */
  7772. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  7773. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  7774. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  7775. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  7776. }
  7777. }
  7778. }
  7779. }
  7780. _flush_pending(tls, strm)
  7781. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7782. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  7783. return m_Z_OK
  7784. }
  7785. }
  7786. }
  7787. if flush != int32(m_Z_FINISH) {
  7788. return m_Z_OK
  7789. }
  7790. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  7791. return int32(m_Z_STREAM_END)
  7792. }
  7793. /* Write the trailer */
  7794. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  7795. v67 = s + 40
  7796. v66 = *(*Tulg)(unsafe.Pointer(v67))
  7797. *(*Tulg)(unsafe.Pointer(v67))++
  7798. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint64FromInt32(0xff))
  7799. v69 = s + 40
  7800. v68 = *(*Tulg)(unsafe.Pointer(v69))
  7801. *(*Tulg)(unsafe.Pointer(v69))++
  7802. *(*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))
  7803. v71 = s + 40
  7804. v70 = *(*Tulg)(unsafe.Pointer(v71))
  7805. *(*Tulg)(unsafe.Pointer(v71))++
  7806. *(*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))
  7807. v73 = s + 40
  7808. v72 = *(*Tulg)(unsafe.Pointer(v73))
  7809. *(*Tulg)(unsafe.Pointer(v73))++
  7810. *(*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))
  7811. v75 = s + 40
  7812. v74 = *(*Tulg)(unsafe.Pointer(v75))
  7813. *(*Tulg)(unsafe.Pointer(v75))++
  7814. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint64FromInt32(0xff))
  7815. v77 = s + 40
  7816. v76 = *(*Tulg)(unsafe.Pointer(v77))
  7817. *(*Tulg)(unsafe.Pointer(v77))++
  7818. *(*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))
  7819. v79 = s + 40
  7820. v78 = *(*Tulg)(unsafe.Pointer(v79))
  7821. *(*Tulg)(unsafe.Pointer(v79))++
  7822. *(*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))
  7823. v81 = s + 40
  7824. v80 = *(*Tulg)(unsafe.Pointer(v81))
  7825. *(*Tulg)(unsafe.Pointer(v81))++
  7826. *(*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))
  7827. } else {
  7828. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  7829. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint64FromInt32(0xffff)))
  7830. }
  7831. _flush_pending(tls, strm)
  7832. /* If avail_out is zero, the application will call deflate again
  7833. * to flush the rest.
  7834. */
  7835. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  7836. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  7837. } /* write the trailer only once! */
  7838. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint64(0) {
  7839. v82 = m_Z_OK
  7840. } else {
  7841. v82 = int32(m_Z_STREAM_END)
  7842. }
  7843. return v82
  7844. }
  7845. // C documentation
  7846. //
  7847. // /* ========================================================================= */
  7848. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  7849. var status, v1 int32
  7850. _, _ = status, v1
  7851. if _deflateStateCheck(tls, strm) != 0 {
  7852. return -int32(2)
  7853. }
  7854. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  7855. /* Deallocate in reverse order of allocations: */
  7856. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  7857. (*(*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)
  7858. }
  7859. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  7860. (*(*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)
  7861. }
  7862. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  7863. (*(*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)
  7864. }
  7865. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  7866. (*(*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)
  7867. }
  7868. (*(*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)
  7869. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  7870. if status == int32(m_BUSY_STATE) {
  7871. v1 = -int32(3)
  7872. } else {
  7873. v1 = m_Z_OK
  7874. }
  7875. return v1
  7876. }
  7877. // C documentation
  7878. //
  7879. // /* =========================================================================
  7880. // * Copy the source state to the destination state.
  7881. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  7882. // * doesn't have enough memory anyway to duplicate compression states).
  7883. // */
  7884. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  7885. var ds, ss uintptr
  7886. _, _ = ds, ss
  7887. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  7888. return -int32(2)
  7889. }
  7890. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  7891. libc.Xmemcpy(tls, dest, source, uint64(112))
  7892. ds = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5952)))
  7893. if ds == uintptr(m_Z_NULL) {
  7894. return -int32(4)
  7895. }
  7896. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  7897. libc.Xmemcpy(tls, ds, ss, uint64(5952))
  7898. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  7899. (*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)))
  7900. (*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)))
  7901. (*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)))
  7902. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize, uint32(libc.Int32FromInt32(m_LIT_BUFS)))
  7903. 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) {
  7904. XdeflateEnd(tls, dest)
  7905. return -int32(4)
  7906. }
  7907. /* following zmemcpy do not work for 16-bit MSDOS */
  7908. 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))
  7909. 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))
  7910. 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))
  7911. 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)))
  7912. (*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))
  7913. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  7914. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 212
  7915. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2504
  7916. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2748
  7917. return m_Z_OK
  7918. }
  7919. // C documentation
  7920. //
  7921. // /* ===========================================================================
  7922. // * Set match_start to the longest match starting at the given string and
  7923. // * return its length. Matches shorter or equal to prev_length are discarded,
  7924. // * in which case the result is equal to prev_length and match_start is
  7925. // * garbage.
  7926. // * IN assertions: cur_match is the head of the hash chain for the current
  7927. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  7928. // * OUT assertion: the match length is not greater than s->lookahead.
  7929. // */
  7930. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  7931. var best_len, len1, nice_match int32
  7932. var chain_length, v1, v3 uint32
  7933. var limit, v2 TIPos
  7934. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  7935. var scan_end, scan_end1 TByte
  7936. var wmask TuInt
  7937. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  7938. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  7939. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  7940. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  7941. best_len = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  7942. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  7943. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7944. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  7945. } else {
  7946. v1 = uint32(m_NIL)
  7947. } /* stop if match long enough */
  7948. limit = v1
  7949. /* Stop when cur_match becomes <= limit. To simplify the code,
  7950. * we prevent matches with the string of window index 0.
  7951. */
  7952. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  7953. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  7954. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  7955. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  7956. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  7957. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  7958. * It is easy to get rid of this optimization if necessary.
  7959. */
  7960. /* Do not waste too much time if we already have a good match: */
  7961. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  7962. chain_length >>= uint32(2)
  7963. }
  7964. /* Do not look for matches beyond the end of the input. This is necessary
  7965. * to make deflate deterministic.
  7966. */
  7967. if uint32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  7968. nice_match = int32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  7969. }
  7970. for {
  7971. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  7972. /* Skip to next match if the match length cannot increase
  7973. * or if the match length is less than 2. Note that the checks below
  7974. * for insufficient lookahead only occur occasionally for performance
  7975. * reasons. Therefore uninitialized memory will be accessed, and
  7976. * conditional jumps will be made that depend on those values.
  7977. * However the length of the match is limited to the lookahead, so
  7978. * the output of deflate is not affected by the uninitialized values.
  7979. */
  7980. if v7 = int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != int32(scan_end) || int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != int32(scan_end1) || int32(*(*TBytef)(unsafe.Pointer(match))) != int32(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  7981. match++
  7982. v6 = match
  7983. }
  7984. if v7 || int32(*(*TBytef)(unsafe.Pointer(v6))) != int32(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  7985. goto _5
  7986. }
  7987. /* The check at best_len - 1 can be removed because it will be made
  7988. * again later. (This heuristic is not always a win.)
  7989. * It is not necessary to compare scan[2] and match[2] since they
  7990. * are always equal when the other bytes match, given that
  7991. * the hash keys are equal and that HASH_BITS >= 8.
  7992. */
  7993. scan += uintptr(2)
  7994. /* The check at best_len - 1 can be removed because it will be made
  7995. * again later. (This heuristic is not always a win.)
  7996. * It is not necessary to compare scan[2] and match[2] since they
  7997. * are always equal when the other bytes match, given that
  7998. * the hash keys are equal and that HASH_BITS >= 8.
  7999. */
  8000. match++
  8001. /* We check for insufficient lookahead only every 8th comparison;
  8002. * the 256th check will be made at strstart + 258.
  8003. */
  8004. for {
  8005. goto _31
  8006. _31:
  8007. ;
  8008. scan++
  8009. v8 = scan
  8010. match++
  8011. v9 = match
  8012. if v12 = int32(*(*TBytef)(unsafe.Pointer(v8))) == int32(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  8013. scan++
  8014. v10 = scan
  8015. match++
  8016. v11 = match
  8017. }
  8018. if v15 = v12 && int32(*(*TBytef)(unsafe.Pointer(v10))) == int32(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  8019. scan++
  8020. v13 = scan
  8021. match++
  8022. v14 = match
  8023. }
  8024. if v18 = v15 && int32(*(*TBytef)(unsafe.Pointer(v13))) == int32(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  8025. scan++
  8026. v16 = scan
  8027. match++
  8028. v17 = match
  8029. }
  8030. if v21 = v18 && int32(*(*TBytef)(unsafe.Pointer(v16))) == int32(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  8031. scan++
  8032. v19 = scan
  8033. match++
  8034. v20 = match
  8035. }
  8036. if v24 = v21 && int32(*(*TBytef)(unsafe.Pointer(v19))) == int32(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  8037. scan++
  8038. v22 = scan
  8039. match++
  8040. v23 = match
  8041. }
  8042. if v27 = v24 && int32(*(*TBytef)(unsafe.Pointer(v22))) == int32(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  8043. scan++
  8044. v25 = scan
  8045. match++
  8046. v26 = match
  8047. }
  8048. if v30 = v27 && int32(*(*TBytef)(unsafe.Pointer(v25))) == int32(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  8049. scan++
  8050. v28 = scan
  8051. match++
  8052. v29 = match
  8053. }
  8054. if !(v30 && int32(*(*TBytef)(unsafe.Pointer(v28))) == int32(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  8055. break
  8056. }
  8057. }
  8058. len1 = int32(m_MAX_MATCH) - int32(int64(strend)-int64(scan))
  8059. scan = strend - uintptr(m_MAX_MATCH)
  8060. if len1 > best_len {
  8061. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  8062. best_len = len1
  8063. if len1 >= nice_match {
  8064. break
  8065. }
  8066. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  8067. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  8068. }
  8069. goto _5
  8070. _5:
  8071. ;
  8072. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  8073. cur_match = v2
  8074. if v4 = v2 > limit; v4 {
  8075. chain_length--
  8076. v3 = chain_length
  8077. }
  8078. if !(v4 && v3 != uint32(0)) {
  8079. break
  8080. }
  8081. }
  8082. if uint32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  8083. return uint32(best_len)
  8084. }
  8085. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  8086. }
  8087. /* ===========================================================================
  8088. * Flush the current block, with given end-of-file flag.
  8089. * IN assertion: strstart is set to the end of the current match.
  8090. */
  8091. /* Same but force premature exit if necessary. */
  8092. /* Maximum stored block length in deflate format (not including header). */
  8093. /* Minimum of a and b. */
  8094. // C documentation
  8095. //
  8096. // /* ===========================================================================
  8097. // * Copy without compression as much as possible from the input stream, return
  8098. // * the current block state.
  8099. // *
  8100. // * In case deflateParams() is used to later switch to a non-zero compression
  8101. // * level, s->matches (otherwise unused when storing) keeps track of the number
  8102. // * of hash table slides to perform. If s->matches is 1, then one hash table
  8103. // * slide will be done when switching. If s->matches is 2, the maximum value
  8104. // * allowed here, then the hash table will be cleared, since two or more slides
  8105. // * is the same as a clear.
  8106. // *
  8107. // * deflate_stored() is written to minimize the number of times an input byte is
  8108. // * copied. It is most efficient with large input and output buffers, which
  8109. // * maximizes the opportunities to have a single copy from next_in to next_out.
  8110. // */
  8111. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8112. var have, last, left, len1, min_block, used, v3, v4, v6, v7 uint32
  8113. var v1, v5 uint64
  8114. var v2, v8, v9 int32
  8115. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v2, v3, v4, v5, v6, v7, v8, v9
  8116. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(5) > uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  8117. v1 = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  8118. } else {
  8119. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(5)
  8120. }
  8121. /* Smallest worthy block size when not flushing or finishing. By default
  8122. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  8123. * large input and output buffers, the stored block size will be larger.
  8124. */
  8125. min_block = uint32(v1)
  8126. last = uint32(0)
  8127. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  8128. for cond := true; cond; cond = last == uint32(0) {
  8129. /* Set len to the maximum size block that we can copy directly with the
  8130. * available input data and output space. Set left to how much of that
  8131. * would be copied from what's left in the window.
  8132. */
  8133. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  8134. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  8135. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  8136. break
  8137. }
  8138. /* maximum stored block length that will fit in avail_out: */
  8139. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  8140. left = uint32(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  8141. if uint64(len1) > uint64(left)+uint64((*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  8142. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  8143. } /* limit len to the input */
  8144. if len1 > have {
  8145. len1 = have
  8146. } /* limit len to the output */
  8147. /* If the stored block would be less than min_block in length, or if
  8148. * unable to copy all of the available input when flushing, then try
  8149. * copying to the window and the pending buffer instead. Also don't
  8150. * write an empty block when flushing -- deflate() does that.
  8151. */
  8152. 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) {
  8153. break
  8154. }
  8155. /* Make a dummy stored block in pending to get the header bytes,
  8156. * including any pending bits. This also updates the debugging counts.
  8157. */
  8158. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  8159. v2 = int32(1)
  8160. } else {
  8161. v2 = 0
  8162. }
  8163. last = uint32(v2)
  8164. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint64(0), int32(last))
  8165. /* Replace the lengths in the dummy stored block with len. */
  8166. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(4)))) = uint8(len1)
  8167. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(3)))) = uint8(len1 >> int32(8))
  8168. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(2)))) = uint8(^len1)
  8169. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint64(1)))) = uint8(^len1 >> int32(8))
  8170. /* Write the stored block header bytes. */
  8171. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8172. /* Copy uncompressed bytes from the window to next_out. */
  8173. if left != 0 {
  8174. if left > len1 {
  8175. left = len1
  8176. }
  8177. 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))
  8178. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(left)
  8179. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= left
  8180. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(left)
  8181. *(*int64)(unsafe.Pointer(s + 152)) += int64(left)
  8182. len1 -= left
  8183. }
  8184. /* Copy uncompressed bytes directly from next_in to next_out, updating
  8185. * the check value.
  8186. */
  8187. if len1 != 0 {
  8188. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  8189. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) += uintptr(len1)
  8190. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 32)) -= len1
  8191. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 40)) += uint64(len1)
  8192. }
  8193. }
  8194. /* Update the sliding window with the last s->w_size bytes of the copied
  8195. * data, or append all of the copied data to the existing window if less
  8196. * than s->w_size bytes were copied. Also update the number of bytes to
  8197. * insert in the hash tables, in the event that deflateParams() switches to
  8198. * a non-zero compression level.
  8199. */
  8200. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  8201. if used != 0 {
  8202. /* If any input was used, then no unused input remains in the window,
  8203. * therefore s->block_start == s->strstart.
  8204. */
  8205. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  8206. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  8207. 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))
  8208. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8209. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8210. } else {
  8211. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) <= uint64(used) {
  8212. /* Slide the window down. */
  8213. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8214. 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))
  8215. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  8216. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  8217. } /* add a pending slide_hash() */
  8218. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  8219. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8220. }
  8221. }
  8222. 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))
  8223. *(*TuInt)(unsafe.Pointer(s + 172)) += used
  8224. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  8225. v3 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  8226. } else {
  8227. v3 = used
  8228. }
  8229. *(*TuInt)(unsafe.Pointer(s + 5932)) += v3
  8230. }
  8231. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8232. }
  8233. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  8234. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8235. }
  8236. /* If the last block was written to next_out, then done. */
  8237. if last != 0 {
  8238. return int32(_finish_done)
  8239. }
  8240. /* If flushing and all input has been consumed, then done. */
  8241. if flush != m_Z_NO_FLUSH && flush != int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  8242. return int32(_block_done)
  8243. }
  8244. /* Fill the window with any remaining input. */
  8245. have = uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  8246. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= int64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  8247. /* Slide the window down. */
  8248. *(*int64)(unsafe.Pointer(s + 152)) -= int64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  8249. *(*TuInt)(unsafe.Pointer(s + 172)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8250. 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))
  8251. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  8252. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  8253. } /* add a pending slide_hash() */
  8254. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  8255. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  8256. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8257. }
  8258. }
  8259. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  8260. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  8261. }
  8262. if have != 0 {
  8263. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  8264. *(*TuInt)(unsafe.Pointer(s + 172)) += have
  8265. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  8266. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  8267. } else {
  8268. v4 = have
  8269. }
  8270. *(*TuInt)(unsafe.Pointer(s + 5932)) += v4
  8271. }
  8272. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) {
  8273. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8274. }
  8275. /* There was not enough avail_out to write a complete worthy or flushed
  8276. * stored block to next_out. Write a stored block to pending instead, if we
  8277. * have enough input for a worthy block, or if flushing and there is enough
  8278. * room for the remaining input as a stored block in the pending buffer.
  8279. */
  8280. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  8281. /* maximum stored block length that will fit in pending: */
  8282. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint64(have) > uint64(libc.Int32FromInt32(m_MAX_STORED)) {
  8283. v5 = uint64(libc.Int32FromInt32(m_MAX_STORED))
  8284. } else {
  8285. v5 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint64(have)
  8286. }
  8287. have = uint32(v5)
  8288. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  8289. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8290. } else {
  8291. v6 = have
  8292. }
  8293. min_block = v6
  8294. left = uint32(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  8295. 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 {
  8296. if left > have {
  8297. v7 = have
  8298. } else {
  8299. v7 = left
  8300. }
  8301. len1 = v7
  8302. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  8303. v8 = int32(1)
  8304. } else {
  8305. v8 = 0
  8306. }
  8307. last = uint32(v8)
  8308. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(len1), int32(last))
  8309. *(*int64)(unsafe.Pointer(s + 152)) += int64(len1)
  8310. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8311. }
  8312. /* We've done all we can with the available input and output. */
  8313. if last != 0 {
  8314. v9 = int32(_finish_started)
  8315. } else {
  8316. v9 = int32(_need_more)
  8317. }
  8318. return v9
  8319. }
  8320. // C documentation
  8321. //
  8322. // /* ===========================================================================
  8323. // * Compress as much as possible from the input stream, return the current
  8324. // * block state.
  8325. // * This function does not perform lazy evaluation of matches and inserts
  8326. // * new strings in the dictionary only for unmatched strings or for short
  8327. // * matches. It is used only for the fast compression options.
  8328. // */
  8329. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8330. var bflush, v9 int32
  8331. var cc, len1 Tuch
  8332. var dist Tush
  8333. var hash_head TIPos
  8334. var v10, v14, v16, v18, v3, v5, v7 TuInt
  8335. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  8336. var v13, v2 TPosf
  8337. var v21 uint32
  8338. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  8339. for {
  8340. /* Make sure that we always have enough lookahead, except
  8341. * at the end of the input file. We need MAX_MATCH bytes
  8342. * for the next match, plus MIN_MATCH bytes to insert the
  8343. * string following the next match.
  8344. */
  8345. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8346. _fill_window(tls, s)
  8347. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  8348. return int32(_need_more)
  8349. }
  8350. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8351. break
  8352. } /* flush the current block */
  8353. }
  8354. /* Insert the string window[strstart .. strstart + 2] in the
  8355. * dictionary, and set hash_head to the head of the hash chain:
  8356. */
  8357. hash_head = uint32(m_NIL)
  8358. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  8359. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8360. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8361. *(*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
  8362. hash_head = uint32(v2)
  8363. *(*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)
  8364. }
  8365. /* Find the longest match, discarding those <= prev_length.
  8366. * At this point we have always match_length < MIN_MATCH
  8367. */
  8368. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8369. /* To simplify the code, we prevent matches with the string
  8370. * of window index 0 (in particular we have to avoid a match
  8371. * of the string with itself at the start of the input file).
  8372. */
  8373. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  8374. /* longest_match() sets match_start */
  8375. }
  8376. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  8377. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8378. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  8379. v4 = s + 5900
  8380. v3 = *(*TuInt)(unsafe.Pointer(v4))
  8381. *(*TuInt)(unsafe.Pointer(v4))++
  8382. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  8383. v6 = s + 5900
  8384. v5 = *(*TuInt)(unsafe.Pointer(v6))
  8385. *(*TuInt)(unsafe.Pointer(v6))++
  8386. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8387. v8 = s + 5900
  8388. v7 = *(*TuInt)(unsafe.Pointer(v8))
  8389. *(*TuInt)(unsafe.Pointer(v8))++
  8390. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  8391. dist--
  8392. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8393. if int32(dist) < int32(256) {
  8394. v9 = int32(x__dist_code[dist])
  8395. } else {
  8396. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8397. }
  8398. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  8399. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8400. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8401. /* Insert new strings in the hash table only if the match length
  8402. * is not too large. This saves time but degrades compression.
  8403. */
  8404. 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) {
  8405. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  8406. for {
  8407. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8408. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8409. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8410. *(*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
  8411. hash_head = uint32(v13)
  8412. *(*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)
  8413. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  8414. * always MIN_MATCH bytes ahead.
  8415. */
  8416. goto _12
  8417. _12:
  8418. ;
  8419. v11 = s + 160
  8420. *(*TuInt)(unsafe.Pointer(v11))--
  8421. v10 = *(*TuInt)(unsafe.Pointer(v11))
  8422. if !(v10 != uint32(0)) {
  8423. break
  8424. }
  8425. }
  8426. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8427. } else {
  8428. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8429. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8430. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  8431. (*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
  8432. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  8433. * matter since it will be recomputed at next deflate call.
  8434. */
  8435. }
  8436. } else {
  8437. /* No match, output a literal byte */
  8438. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8439. v15 = s + 5900
  8440. v14 = *(*TuInt)(unsafe.Pointer(v15))
  8441. *(*TuInt)(unsafe.Pointer(v15))++
  8442. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  8443. v17 = s + 5900
  8444. v16 = *(*TuInt)(unsafe.Pointer(v17))
  8445. *(*TuInt)(unsafe.Pointer(v17))++
  8446. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  8447. v19 = s + 5900
  8448. v18 = *(*TuInt)(unsafe.Pointer(v19))
  8449. *(*TuInt)(unsafe.Pointer(v19))++
  8450. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  8451. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  8452. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8453. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8454. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8455. }
  8456. if bflush != 0 {
  8457. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8458. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8459. } else {
  8460. v20 = libc.UintptrFromInt32(m_Z_NULL)
  8461. }
  8462. x__tr_flush_block(tls, s, v20, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8463. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8464. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8465. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8466. return int32(_need_more)
  8467. }
  8468. }
  8469. goto _1
  8470. _1:
  8471. }
  8472. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  8473. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8474. } else {
  8475. v21 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8476. }
  8477. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  8478. if flush == int32(m_Z_FINISH) {
  8479. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8480. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8481. } else {
  8482. v22 = libc.UintptrFromInt32(m_Z_NULL)
  8483. }
  8484. x__tr_flush_block(tls, s, v22, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8485. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8486. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8487. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8488. return int32(_finish_started)
  8489. }
  8490. return int32(_finish_done)
  8491. }
  8492. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8493. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8494. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8495. } else {
  8496. v23 = libc.UintptrFromInt32(m_Z_NULL)
  8497. }
  8498. x__tr_flush_block(tls, s, v23, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8499. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8500. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8501. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8502. return int32(_need_more)
  8503. }
  8504. }
  8505. return int32(_block_done)
  8506. }
  8507. // C documentation
  8508. //
  8509. // /* ===========================================================================
  8510. // * Same as above, but achieves better compression. We use a lazy
  8511. // * evaluation for matches: a match is finally adopted only if there is
  8512. // * no better match at the next window position.
  8513. // */
  8514. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8515. var bflush, v9 int32
  8516. var cc, cc1, len1 Tuch
  8517. var dist Tush
  8518. var hash_head TIPos
  8519. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  8520. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  8521. var v15, v2 TPosf
  8522. var v30 uint32
  8523. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  8524. /* Process the input block. */
  8525. for {
  8526. /* Make sure that we always have enough lookahead, except
  8527. * at the end of the input file. We need MAX_MATCH bytes
  8528. * for the next match, plus MIN_MATCH bytes to insert the
  8529. * string following the next match.
  8530. */
  8531. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8532. _fill_window(tls, s)
  8533. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  8534. return int32(_need_more)
  8535. }
  8536. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8537. break
  8538. } /* flush the current block */
  8539. }
  8540. /* Insert the string window[strstart .. strstart + 2] in the
  8541. * dictionary, and set hash_head to the head of the hash chain:
  8542. */
  8543. hash_head = uint32(m_NIL)
  8544. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  8545. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8546. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8547. *(*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
  8548. hash_head = uint32(v2)
  8549. *(*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)
  8550. }
  8551. /* Find the longest match, discarding those <= prev_length.
  8552. */
  8553. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8554. /* Find the longest match, discarding those <= prev_length.
  8555. */
  8556. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  8557. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8558. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length < (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8559. /* To simplify the code, we prevent matches with the string
  8560. * of window index 0 (in particular we have to avoid a match
  8561. * of the string with itself at the start of the input file).
  8562. */
  8563. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  8564. /* longest_match() sets match_start */
  8565. 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)) {
  8566. /* If prev_match is also MIN_MATCH, match_start is garbage
  8567. * but we will ignore the current match anyway.
  8568. */
  8569. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8570. }
  8571. }
  8572. /* If there was a match at the previous step and the current
  8573. * match is not better, output the previous match:
  8574. */
  8575. 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 {
  8576. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  8577. /* Do not insert strings in hash table beyond this. */
  8578. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8579. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  8580. v4 = s + 5900
  8581. v3 = *(*TuInt)(unsafe.Pointer(v4))
  8582. *(*TuInt)(unsafe.Pointer(v4))++
  8583. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  8584. v6 = s + 5900
  8585. v5 = *(*TuInt)(unsafe.Pointer(v6))
  8586. *(*TuInt)(unsafe.Pointer(v6))++
  8587. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8588. v8 = s + 5900
  8589. v7 = *(*TuInt)(unsafe.Pointer(v8))
  8590. *(*TuInt)(unsafe.Pointer(v8))++
  8591. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  8592. dist--
  8593. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8594. if int32(dist) < int32(256) {
  8595. v9 = int32(x__dist_code[dist])
  8596. } else {
  8597. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8598. }
  8599. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v9)*4))++
  8600. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8601. /* Insert in hash table all strings up to the end of the match.
  8602. * strstart - 1 and strstart are already inserted. If there is not
  8603. * enough lookahead, the last two strings are not inserted in
  8604. * the hash table.
  8605. */
  8606. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  8607. *(*TuInt)(unsafe.Pointer(s + 184)) -= uint32(2)
  8608. for {
  8609. v14 = s + 172
  8610. *(*TuInt)(unsafe.Pointer(v14))++
  8611. v13 = *(*TuInt)(unsafe.Pointer(v14))
  8612. if v13 <= max_insert {
  8613. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8614. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8615. *(*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
  8616. hash_head = uint32(v15)
  8617. *(*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)
  8618. }
  8619. goto _12
  8620. _12:
  8621. ;
  8622. v11 = s + 184
  8623. *(*TuInt)(unsafe.Pointer(v11))--
  8624. v10 = *(*TuInt)(unsafe.Pointer(v11))
  8625. if !(v10 != uint32(0)) {
  8626. break
  8627. }
  8628. }
  8629. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  8630. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8631. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8632. if bflush != 0 {
  8633. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8634. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8635. } else {
  8636. v16 = libc.UintptrFromInt32(m_Z_NULL)
  8637. }
  8638. x__tr_flush_block(tls, s, v16, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8639. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8640. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8641. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8642. return int32(_need_more)
  8643. }
  8644. }
  8645. } else {
  8646. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  8647. /* If there was no match at the previous position, output a
  8648. * single literal. If there was a match but the current match
  8649. * is longer, truncate the previous match to a single literal.
  8650. */
  8651. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  8652. v18 = s + 5900
  8653. v17 = *(*TuInt)(unsafe.Pointer(v18))
  8654. *(*TuInt)(unsafe.Pointer(v18))++
  8655. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  8656. v20 = s + 5900
  8657. v19 = *(*TuInt)(unsafe.Pointer(v20))
  8658. *(*TuInt)(unsafe.Pointer(v20))++
  8659. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  8660. v22 = s + 5900
  8661. v21 = *(*TuInt)(unsafe.Pointer(v22))
  8662. *(*TuInt)(unsafe.Pointer(v22))++
  8663. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  8664. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  8665. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8666. if bflush != 0 {
  8667. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8668. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8669. } else {
  8670. v23 = libc.UintptrFromInt32(m_Z_NULL)
  8671. }
  8672. x__tr_flush_block(tls, s, v23, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8673. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8674. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8675. }
  8676. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8677. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8678. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8679. return int32(_need_more)
  8680. }
  8681. } else {
  8682. /* There is no previous match to compare with, wait for
  8683. * the next step to decide.
  8684. */
  8685. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  8686. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8687. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8688. }
  8689. }
  8690. goto _1
  8691. _1:
  8692. }
  8693. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  8694. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  8695. v25 = s + 5900
  8696. v24 = *(*TuInt)(unsafe.Pointer(v25))
  8697. *(*TuInt)(unsafe.Pointer(v25))++
  8698. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  8699. v27 = s + 5900
  8700. v26 = *(*TuInt)(unsafe.Pointer(v27))
  8701. *(*TuInt)(unsafe.Pointer(v27))++
  8702. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  8703. v29 = s + 5900
  8704. v28 = *(*TuInt)(unsafe.Pointer(v29))
  8705. *(*TuInt)(unsafe.Pointer(v29))++
  8706. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  8707. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc1)*4))++
  8708. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8709. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  8710. }
  8711. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  8712. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8713. } else {
  8714. v30 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8715. }
  8716. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  8717. if flush == int32(m_Z_FINISH) {
  8718. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8719. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8720. } else {
  8721. v31 = libc.UintptrFromInt32(m_Z_NULL)
  8722. }
  8723. x__tr_flush_block(tls, s, v31, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8724. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8725. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8726. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8727. return int32(_finish_started)
  8728. }
  8729. return int32(_finish_done)
  8730. }
  8731. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8732. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8733. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8734. } else {
  8735. v32 = libc.UintptrFromInt32(m_Z_NULL)
  8736. }
  8737. x__tr_flush_block(tls, s, v32, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8738. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8739. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8740. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8741. return int32(_need_more)
  8742. }
  8743. }
  8744. return int32(_block_done)
  8745. }
  8746. // C documentation
  8747. //
  8748. // /* ===========================================================================
  8749. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  8750. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  8751. // * deflate switches away from Z_RLE.)
  8752. // */
  8753. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8754. var bflush, v29 int32
  8755. var cc, len1 Tuch
  8756. var dist Tush
  8757. var prev, v23, v25, v27, v30, v32, v34 TuInt
  8758. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  8759. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  8760. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  8761. for {
  8762. /* Make sure that we always have enough lookahead, except
  8763. * at the end of the input file. We need MAX_MATCH bytes
  8764. * for the longest run, plus one for the unrolled loop.
  8765. */
  8766. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  8767. _fill_window(tls, s)
  8768. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  8769. return int32(_need_more)
  8770. }
  8771. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8772. break
  8773. } /* flush the current block */
  8774. }
  8775. /* See how many times the previous byte repeats */
  8776. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8777. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  8778. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  8779. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  8780. scan++
  8781. v2 = scan
  8782. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  8783. scan++
  8784. v3 = scan
  8785. }
  8786. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  8787. scan++
  8788. v5 = scan
  8789. }
  8790. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  8791. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  8792. for {
  8793. goto _22
  8794. _22:
  8795. ;
  8796. scan++
  8797. v7 = scan
  8798. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  8799. scan++
  8800. v8 = scan
  8801. }
  8802. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  8803. scan++
  8804. v10 = scan
  8805. }
  8806. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  8807. scan++
  8808. v12 = scan
  8809. }
  8810. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  8811. scan++
  8812. v14 = scan
  8813. }
  8814. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  8815. scan++
  8816. v16 = scan
  8817. }
  8818. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  8819. scan++
  8820. v18 = scan
  8821. }
  8822. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  8823. scan++
  8824. v20 = scan
  8825. }
  8826. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  8827. break
  8828. }
  8829. }
  8830. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - uint32(int64(strend)-int64(scan))
  8831. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  8832. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  8833. }
  8834. }
  8835. }
  8836. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  8837. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  8838. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8839. dist = uint16(libc.Int32FromInt32(1))
  8840. v24 = s + 5900
  8841. v23 = *(*TuInt)(unsafe.Pointer(v24))
  8842. *(*TuInt)(unsafe.Pointer(v24))++
  8843. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  8844. v26 = s + 5900
  8845. v25 = *(*TuInt)(unsafe.Pointer(v26))
  8846. *(*TuInt)(unsafe.Pointer(v26))++
  8847. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8848. v28 = s + 5900
  8849. v27 = *(*TuInt)(unsafe.Pointer(v28))
  8850. *(*TuInt)(unsafe.Pointer(v28))++
  8851. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  8852. dist--
  8853. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8854. if int32(dist) < int32(256) {
  8855. v29 = int32(x__dist_code[dist])
  8856. } else {
  8857. v29 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8858. }
  8859. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v29)*4))++
  8860. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8861. *(*TuInt)(unsafe.Pointer(s + 180)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8862. *(*TuInt)(unsafe.Pointer(s + 172)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8863. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8864. } else {
  8865. /* No match, output a literal byte */
  8866. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8867. v31 = s + 5900
  8868. v30 = *(*TuInt)(unsafe.Pointer(v31))
  8869. *(*TuInt)(unsafe.Pointer(v31))++
  8870. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  8871. v33 = s + 5900
  8872. v32 = *(*TuInt)(unsafe.Pointer(v33))
  8873. *(*TuInt)(unsafe.Pointer(v33))++
  8874. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  8875. v35 = s + 5900
  8876. v34 = *(*TuInt)(unsafe.Pointer(v35))
  8877. *(*TuInt)(unsafe.Pointer(v35))++
  8878. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  8879. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  8880. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8881. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8882. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8883. }
  8884. if bflush != 0 {
  8885. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8886. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8887. } else {
  8888. v36 = libc.UintptrFromInt32(m_Z_NULL)
  8889. }
  8890. x__tr_flush_block(tls, s, v36, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8891. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8892. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8893. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8894. return int32(_need_more)
  8895. }
  8896. }
  8897. goto _1
  8898. _1:
  8899. }
  8900. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  8901. if flush == int32(m_Z_FINISH) {
  8902. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8903. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8904. } else {
  8905. v37 = libc.UintptrFromInt32(m_Z_NULL)
  8906. }
  8907. x__tr_flush_block(tls, s, v37, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8908. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8909. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8910. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8911. return int32(_finish_started)
  8912. }
  8913. return int32(_finish_done)
  8914. }
  8915. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8916. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8917. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8918. } else {
  8919. v38 = libc.UintptrFromInt32(m_Z_NULL)
  8920. }
  8921. x__tr_flush_block(tls, s, v38, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8922. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8923. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8924. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8925. return int32(_need_more)
  8926. }
  8927. }
  8928. return int32(_block_done)
  8929. }
  8930. // C documentation
  8931. //
  8932. // /* ===========================================================================
  8933. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  8934. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  8935. // */
  8936. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8937. var bflush int32
  8938. var cc Tuch
  8939. var v10, v3, v5, v7, v8, v9 uintptr
  8940. var v2, v4, v6 TuInt
  8941. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  8942. for {
  8943. /* Make sure that we have a literal to write. */
  8944. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8945. _fill_window(tls, s)
  8946. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8947. if flush == m_Z_NO_FLUSH {
  8948. return int32(_need_more)
  8949. }
  8950. break /* flush the current block */
  8951. }
  8952. }
  8953. /* Output a literal byte */
  8954. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8955. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8956. v3 = s + 5900
  8957. v2 = *(*TuInt)(unsafe.Pointer(v3))
  8958. *(*TuInt)(unsafe.Pointer(v3))++
  8959. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  8960. v5 = s + 5900
  8961. v4 = *(*TuInt)(unsafe.Pointer(v5))
  8962. *(*TuInt)(unsafe.Pointer(v5))++
  8963. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  8964. v7 = s + 5900
  8965. v6 = *(*TuInt)(unsafe.Pointer(v7))
  8966. *(*TuInt)(unsafe.Pointer(v7))++
  8967. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  8968. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(cc)*4))++
  8969. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8970. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8971. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8972. if bflush != 0 {
  8973. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8974. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8975. } else {
  8976. v8 = libc.UintptrFromInt32(m_Z_NULL)
  8977. }
  8978. x__tr_flush_block(tls, s, v8, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8979. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8980. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8981. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8982. return int32(_need_more)
  8983. }
  8984. }
  8985. goto _1
  8986. _1:
  8987. }
  8988. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  8989. if flush == int32(m_Z_FINISH) {
  8990. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8991. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8992. } else {
  8993. v9 = libc.UintptrFromInt32(m_Z_NULL)
  8994. }
  8995. x__tr_flush_block(tls, s, v9, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8996. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8997. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8998. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8999. return int32(_finish_started)
  9000. }
  9001. return int32(_finish_done)
  9002. }
  9003. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  9004. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  9005. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  9006. } else {
  9007. v10 = libc.UintptrFromInt32(m_Z_NULL)
  9008. }
  9009. x__tr_flush_block(tls, s, v10, uint64(int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  9010. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  9011. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  9012. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  9013. return int32(_need_more)
  9014. }
  9015. }
  9016. return int32(_block_done)
  9017. }
  9018. const m_ENOUGH_DISTS = 592
  9019. const m_ENOUGH_LENS = 852
  9020. const m_PRESET_DICT2 = 0x20
  9021. type Tcode = struct {
  9022. Fop uint8
  9023. Fbits uint8
  9024. Fval uint16
  9025. }
  9026. type Tcodetype = int32
  9027. const _CODES = 0
  9028. const _LENS = 1
  9029. const _DISTS = 2
  9030. type Tinflate_mode = int32
  9031. const _HEAD = 16180
  9032. const _FLAGS = 16181
  9033. const _TIME = 16182
  9034. const _OS = 16183
  9035. const _EXLEN = 16184
  9036. const _EXTRA = 16185
  9037. const _NAME = 16186
  9038. const _COMMENT = 16187
  9039. const _HCRC = 16188
  9040. const _DICTID = 16189
  9041. const _DICT = 16190
  9042. const _TYPE = 16191
  9043. const _TYPEDO = 16192
  9044. const _STORED = 16193
  9045. const _COPY_ = 16194
  9046. const _COPY = 16195
  9047. const _TABLE = 16196
  9048. const _LENLENS = 16197
  9049. const _CODELENS = 16198
  9050. const _LEN_ = 16199
  9051. const _LEN = 16200
  9052. const _LENEXT = 16201
  9053. const _DIST = 16202
  9054. const _DISTEXT = 16203
  9055. const _MATCH = 16204
  9056. const _LIT = 16205
  9057. const _CHECK = 16206
  9058. const _LENGTH = 16207
  9059. const _DONE = 16208
  9060. const _BAD = 16209
  9061. const _MEM = 16210
  9062. const _SYNC = 16211
  9063. type Tinflate_state = struct {
  9064. Fstrm Tz_streamp
  9065. Fmode Tinflate_mode
  9066. Flast int32
  9067. Fwrap int32
  9068. Fhavedict int32
  9069. Fflags int32
  9070. Fdmax uint32
  9071. Fcheck uint64
  9072. Ftotal uint64
  9073. Fhead Tgz_headerp
  9074. Fwbits uint32
  9075. Fwsize uint32
  9076. Fwhave uint32
  9077. Fwnext uint32
  9078. Fwindow uintptr
  9079. Fhold uint64
  9080. Fbits uint32
  9081. Flength uint32
  9082. Foffset uint32
  9083. Fextra uint32
  9084. Flencode uintptr
  9085. Fdistcode uintptr
  9086. Flenbits uint32
  9087. Fdistbits uint32
  9088. Fncode uint32
  9089. Fnlen uint32
  9090. Fndist uint32
  9091. Fhave uint32
  9092. Fnext uintptr
  9093. Flens [320]uint16
  9094. Fwork [288]uint16
  9095. Fcodes [1444]Tcode
  9096. Fsane int32
  9097. Fback int32
  9098. Fwas uint32
  9099. }
  9100. // C documentation
  9101. //
  9102. // /*
  9103. // strm provides memory allocation functions in zalloc and zfree, or
  9104. // Z_NULL to use the library memory allocation functions.
  9105. //
  9106. // windowBits is in the range 8..15, and window is a user-supplied
  9107. // window and output buffer that is 2**windowBits bytes.
  9108. // */
  9109. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  9110. var state uintptr
  9111. _ = state
  9112. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(112)) {
  9113. return -int32(6)
  9114. }
  9115. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  9116. return -int32(2)
  9117. }
  9118. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  9119. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  9120. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  9121. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  9122. }
  9123. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  9124. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  9125. }
  9126. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  9127. if state == uintptr(m_Z_NULL) {
  9128. return -int32(4)
  9129. }
  9130. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  9131. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  9132. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  9133. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  9134. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  9135. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  9136. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  9137. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  9138. return m_Z_OK
  9139. }
  9140. // C documentation
  9141. //
  9142. // /*
  9143. // Return state with length and distance decoding tables and index sizes set to
  9144. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  9145. // If BUILDFIXED is defined, then instead this routine builds the tables the
  9146. // first time it's called, and returns those tables the first time and
  9147. // thereafter. This reduces the size of the code by about 2K bytes, in
  9148. // exchange for a little execution time. However, BUILDFIXED should not be
  9149. // used for threaded applications, since the rewriting of the tables and virgin
  9150. // may not be thread-safe.
  9151. // */
  9152. func _fixedtables(tls *libc.TLS, state uintptr) {
  9153. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  9154. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  9155. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  9156. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  9157. }
  9158. var _lenfix = [512]Tcode{
  9159. 0: {
  9160. Fop: uint8(96),
  9161. Fbits: uint8(7),
  9162. },
  9163. 1: {
  9164. Fbits: uint8(8),
  9165. Fval: uint16(80),
  9166. },
  9167. 2: {
  9168. Fbits: uint8(8),
  9169. Fval: uint16(16),
  9170. },
  9171. 3: {
  9172. Fop: uint8(20),
  9173. Fbits: uint8(8),
  9174. Fval: uint16(115),
  9175. },
  9176. 4: {
  9177. Fop: uint8(18),
  9178. Fbits: uint8(7),
  9179. Fval: uint16(31),
  9180. },
  9181. 5: {
  9182. Fbits: uint8(8),
  9183. Fval: uint16(112),
  9184. },
  9185. 6: {
  9186. Fbits: uint8(8),
  9187. Fval: uint16(48),
  9188. },
  9189. 7: {
  9190. Fbits: uint8(9),
  9191. Fval: uint16(192),
  9192. },
  9193. 8: {
  9194. Fop: uint8(16),
  9195. Fbits: uint8(7),
  9196. Fval: uint16(10),
  9197. },
  9198. 9: {
  9199. Fbits: uint8(8),
  9200. Fval: uint16(96),
  9201. },
  9202. 10: {
  9203. Fbits: uint8(8),
  9204. Fval: uint16(32),
  9205. },
  9206. 11: {
  9207. Fbits: uint8(9),
  9208. Fval: uint16(160),
  9209. },
  9210. 12: {
  9211. Fbits: uint8(8),
  9212. },
  9213. 13: {
  9214. Fbits: uint8(8),
  9215. Fval: uint16(128),
  9216. },
  9217. 14: {
  9218. Fbits: uint8(8),
  9219. Fval: uint16(64),
  9220. },
  9221. 15: {
  9222. Fbits: uint8(9),
  9223. Fval: uint16(224),
  9224. },
  9225. 16: {
  9226. Fop: uint8(16),
  9227. Fbits: uint8(7),
  9228. Fval: uint16(6),
  9229. },
  9230. 17: {
  9231. Fbits: uint8(8),
  9232. Fval: uint16(88),
  9233. },
  9234. 18: {
  9235. Fbits: uint8(8),
  9236. Fval: uint16(24),
  9237. },
  9238. 19: {
  9239. Fbits: uint8(9),
  9240. Fval: uint16(144),
  9241. },
  9242. 20: {
  9243. Fop: uint8(19),
  9244. Fbits: uint8(7),
  9245. Fval: uint16(59),
  9246. },
  9247. 21: {
  9248. Fbits: uint8(8),
  9249. Fval: uint16(120),
  9250. },
  9251. 22: {
  9252. Fbits: uint8(8),
  9253. Fval: uint16(56),
  9254. },
  9255. 23: {
  9256. Fbits: uint8(9),
  9257. Fval: uint16(208),
  9258. },
  9259. 24: {
  9260. Fop: uint8(17),
  9261. Fbits: uint8(7),
  9262. Fval: uint16(17),
  9263. },
  9264. 25: {
  9265. Fbits: uint8(8),
  9266. Fval: uint16(104),
  9267. },
  9268. 26: {
  9269. Fbits: uint8(8),
  9270. Fval: uint16(40),
  9271. },
  9272. 27: {
  9273. Fbits: uint8(9),
  9274. Fval: uint16(176),
  9275. },
  9276. 28: {
  9277. Fbits: uint8(8),
  9278. Fval: uint16(8),
  9279. },
  9280. 29: {
  9281. Fbits: uint8(8),
  9282. Fval: uint16(136),
  9283. },
  9284. 30: {
  9285. Fbits: uint8(8),
  9286. Fval: uint16(72),
  9287. },
  9288. 31: {
  9289. Fbits: uint8(9),
  9290. Fval: uint16(240),
  9291. },
  9292. 32: {
  9293. Fop: uint8(16),
  9294. Fbits: uint8(7),
  9295. Fval: uint16(4),
  9296. },
  9297. 33: {
  9298. Fbits: uint8(8),
  9299. Fval: uint16(84),
  9300. },
  9301. 34: {
  9302. Fbits: uint8(8),
  9303. Fval: uint16(20),
  9304. },
  9305. 35: {
  9306. Fop: uint8(21),
  9307. Fbits: uint8(8),
  9308. Fval: uint16(227),
  9309. },
  9310. 36: {
  9311. Fop: uint8(19),
  9312. Fbits: uint8(7),
  9313. Fval: uint16(43),
  9314. },
  9315. 37: {
  9316. Fbits: uint8(8),
  9317. Fval: uint16(116),
  9318. },
  9319. 38: {
  9320. Fbits: uint8(8),
  9321. Fval: uint16(52),
  9322. },
  9323. 39: {
  9324. Fbits: uint8(9),
  9325. Fval: uint16(200),
  9326. },
  9327. 40: {
  9328. Fop: uint8(17),
  9329. Fbits: uint8(7),
  9330. Fval: uint16(13),
  9331. },
  9332. 41: {
  9333. Fbits: uint8(8),
  9334. Fval: uint16(100),
  9335. },
  9336. 42: {
  9337. Fbits: uint8(8),
  9338. Fval: uint16(36),
  9339. },
  9340. 43: {
  9341. Fbits: uint8(9),
  9342. Fval: uint16(168),
  9343. },
  9344. 44: {
  9345. Fbits: uint8(8),
  9346. Fval: uint16(4),
  9347. },
  9348. 45: {
  9349. Fbits: uint8(8),
  9350. Fval: uint16(132),
  9351. },
  9352. 46: {
  9353. Fbits: uint8(8),
  9354. Fval: uint16(68),
  9355. },
  9356. 47: {
  9357. Fbits: uint8(9),
  9358. Fval: uint16(232),
  9359. },
  9360. 48: {
  9361. Fop: uint8(16),
  9362. Fbits: uint8(7),
  9363. Fval: uint16(8),
  9364. },
  9365. 49: {
  9366. Fbits: uint8(8),
  9367. Fval: uint16(92),
  9368. },
  9369. 50: {
  9370. Fbits: uint8(8),
  9371. Fval: uint16(28),
  9372. },
  9373. 51: {
  9374. Fbits: uint8(9),
  9375. Fval: uint16(152),
  9376. },
  9377. 52: {
  9378. Fop: uint8(20),
  9379. Fbits: uint8(7),
  9380. Fval: uint16(83),
  9381. },
  9382. 53: {
  9383. Fbits: uint8(8),
  9384. Fval: uint16(124),
  9385. },
  9386. 54: {
  9387. Fbits: uint8(8),
  9388. Fval: uint16(60),
  9389. },
  9390. 55: {
  9391. Fbits: uint8(9),
  9392. Fval: uint16(216),
  9393. },
  9394. 56: {
  9395. Fop: uint8(18),
  9396. Fbits: uint8(7),
  9397. Fval: uint16(23),
  9398. },
  9399. 57: {
  9400. Fbits: uint8(8),
  9401. Fval: uint16(108),
  9402. },
  9403. 58: {
  9404. Fbits: uint8(8),
  9405. Fval: uint16(44),
  9406. },
  9407. 59: {
  9408. Fbits: uint8(9),
  9409. Fval: uint16(184),
  9410. },
  9411. 60: {
  9412. Fbits: uint8(8),
  9413. Fval: uint16(12),
  9414. },
  9415. 61: {
  9416. Fbits: uint8(8),
  9417. Fval: uint16(140),
  9418. },
  9419. 62: {
  9420. Fbits: uint8(8),
  9421. Fval: uint16(76),
  9422. },
  9423. 63: {
  9424. Fbits: uint8(9),
  9425. Fval: uint16(248),
  9426. },
  9427. 64: {
  9428. Fop: uint8(16),
  9429. Fbits: uint8(7),
  9430. Fval: uint16(3),
  9431. },
  9432. 65: {
  9433. Fbits: uint8(8),
  9434. Fval: uint16(82),
  9435. },
  9436. 66: {
  9437. Fbits: uint8(8),
  9438. Fval: uint16(18),
  9439. },
  9440. 67: {
  9441. Fop: uint8(21),
  9442. Fbits: uint8(8),
  9443. Fval: uint16(163),
  9444. },
  9445. 68: {
  9446. Fop: uint8(19),
  9447. Fbits: uint8(7),
  9448. Fval: uint16(35),
  9449. },
  9450. 69: {
  9451. Fbits: uint8(8),
  9452. Fval: uint16(114),
  9453. },
  9454. 70: {
  9455. Fbits: uint8(8),
  9456. Fval: uint16(50),
  9457. },
  9458. 71: {
  9459. Fbits: uint8(9),
  9460. Fval: uint16(196),
  9461. },
  9462. 72: {
  9463. Fop: uint8(17),
  9464. Fbits: uint8(7),
  9465. Fval: uint16(11),
  9466. },
  9467. 73: {
  9468. Fbits: uint8(8),
  9469. Fval: uint16(98),
  9470. },
  9471. 74: {
  9472. Fbits: uint8(8),
  9473. Fval: uint16(34),
  9474. },
  9475. 75: {
  9476. Fbits: uint8(9),
  9477. Fval: uint16(164),
  9478. },
  9479. 76: {
  9480. Fbits: uint8(8),
  9481. Fval: uint16(2),
  9482. },
  9483. 77: {
  9484. Fbits: uint8(8),
  9485. Fval: uint16(130),
  9486. },
  9487. 78: {
  9488. Fbits: uint8(8),
  9489. Fval: uint16(66),
  9490. },
  9491. 79: {
  9492. Fbits: uint8(9),
  9493. Fval: uint16(228),
  9494. },
  9495. 80: {
  9496. Fop: uint8(16),
  9497. Fbits: uint8(7),
  9498. Fval: uint16(7),
  9499. },
  9500. 81: {
  9501. Fbits: uint8(8),
  9502. Fval: uint16(90),
  9503. },
  9504. 82: {
  9505. Fbits: uint8(8),
  9506. Fval: uint16(26),
  9507. },
  9508. 83: {
  9509. Fbits: uint8(9),
  9510. Fval: uint16(148),
  9511. },
  9512. 84: {
  9513. Fop: uint8(20),
  9514. Fbits: uint8(7),
  9515. Fval: uint16(67),
  9516. },
  9517. 85: {
  9518. Fbits: uint8(8),
  9519. Fval: uint16(122),
  9520. },
  9521. 86: {
  9522. Fbits: uint8(8),
  9523. Fval: uint16(58),
  9524. },
  9525. 87: {
  9526. Fbits: uint8(9),
  9527. Fval: uint16(212),
  9528. },
  9529. 88: {
  9530. Fop: uint8(18),
  9531. Fbits: uint8(7),
  9532. Fval: uint16(19),
  9533. },
  9534. 89: {
  9535. Fbits: uint8(8),
  9536. Fval: uint16(106),
  9537. },
  9538. 90: {
  9539. Fbits: uint8(8),
  9540. Fval: uint16(42),
  9541. },
  9542. 91: {
  9543. Fbits: uint8(9),
  9544. Fval: uint16(180),
  9545. },
  9546. 92: {
  9547. Fbits: uint8(8),
  9548. Fval: uint16(10),
  9549. },
  9550. 93: {
  9551. Fbits: uint8(8),
  9552. Fval: uint16(138),
  9553. },
  9554. 94: {
  9555. Fbits: uint8(8),
  9556. Fval: uint16(74),
  9557. },
  9558. 95: {
  9559. Fbits: uint8(9),
  9560. Fval: uint16(244),
  9561. },
  9562. 96: {
  9563. Fop: uint8(16),
  9564. Fbits: uint8(7),
  9565. Fval: uint16(5),
  9566. },
  9567. 97: {
  9568. Fbits: uint8(8),
  9569. Fval: uint16(86),
  9570. },
  9571. 98: {
  9572. Fbits: uint8(8),
  9573. Fval: uint16(22),
  9574. },
  9575. 99: {
  9576. Fop: uint8(64),
  9577. Fbits: uint8(8),
  9578. },
  9579. 100: {
  9580. Fop: uint8(19),
  9581. Fbits: uint8(7),
  9582. Fval: uint16(51),
  9583. },
  9584. 101: {
  9585. Fbits: uint8(8),
  9586. Fval: uint16(118),
  9587. },
  9588. 102: {
  9589. Fbits: uint8(8),
  9590. Fval: uint16(54),
  9591. },
  9592. 103: {
  9593. Fbits: uint8(9),
  9594. Fval: uint16(204),
  9595. },
  9596. 104: {
  9597. Fop: uint8(17),
  9598. Fbits: uint8(7),
  9599. Fval: uint16(15),
  9600. },
  9601. 105: {
  9602. Fbits: uint8(8),
  9603. Fval: uint16(102),
  9604. },
  9605. 106: {
  9606. Fbits: uint8(8),
  9607. Fval: uint16(38),
  9608. },
  9609. 107: {
  9610. Fbits: uint8(9),
  9611. Fval: uint16(172),
  9612. },
  9613. 108: {
  9614. Fbits: uint8(8),
  9615. Fval: uint16(6),
  9616. },
  9617. 109: {
  9618. Fbits: uint8(8),
  9619. Fval: uint16(134),
  9620. },
  9621. 110: {
  9622. Fbits: uint8(8),
  9623. Fval: uint16(70),
  9624. },
  9625. 111: {
  9626. Fbits: uint8(9),
  9627. Fval: uint16(236),
  9628. },
  9629. 112: {
  9630. Fop: uint8(16),
  9631. Fbits: uint8(7),
  9632. Fval: uint16(9),
  9633. },
  9634. 113: {
  9635. Fbits: uint8(8),
  9636. Fval: uint16(94),
  9637. },
  9638. 114: {
  9639. Fbits: uint8(8),
  9640. Fval: uint16(30),
  9641. },
  9642. 115: {
  9643. Fbits: uint8(9),
  9644. Fval: uint16(156),
  9645. },
  9646. 116: {
  9647. Fop: uint8(20),
  9648. Fbits: uint8(7),
  9649. Fval: uint16(99),
  9650. },
  9651. 117: {
  9652. Fbits: uint8(8),
  9653. Fval: uint16(126),
  9654. },
  9655. 118: {
  9656. Fbits: uint8(8),
  9657. Fval: uint16(62),
  9658. },
  9659. 119: {
  9660. Fbits: uint8(9),
  9661. Fval: uint16(220),
  9662. },
  9663. 120: {
  9664. Fop: uint8(18),
  9665. Fbits: uint8(7),
  9666. Fval: uint16(27),
  9667. },
  9668. 121: {
  9669. Fbits: uint8(8),
  9670. Fval: uint16(110),
  9671. },
  9672. 122: {
  9673. Fbits: uint8(8),
  9674. Fval: uint16(46),
  9675. },
  9676. 123: {
  9677. Fbits: uint8(9),
  9678. Fval: uint16(188),
  9679. },
  9680. 124: {
  9681. Fbits: uint8(8),
  9682. Fval: uint16(14),
  9683. },
  9684. 125: {
  9685. Fbits: uint8(8),
  9686. Fval: uint16(142),
  9687. },
  9688. 126: {
  9689. Fbits: uint8(8),
  9690. Fval: uint16(78),
  9691. },
  9692. 127: {
  9693. Fbits: uint8(9),
  9694. Fval: uint16(252),
  9695. },
  9696. 128: {
  9697. Fop: uint8(96),
  9698. Fbits: uint8(7),
  9699. },
  9700. 129: {
  9701. Fbits: uint8(8),
  9702. Fval: uint16(81),
  9703. },
  9704. 130: {
  9705. Fbits: uint8(8),
  9706. Fval: uint16(17),
  9707. },
  9708. 131: {
  9709. Fop: uint8(21),
  9710. Fbits: uint8(8),
  9711. Fval: uint16(131),
  9712. },
  9713. 132: {
  9714. Fop: uint8(18),
  9715. Fbits: uint8(7),
  9716. Fval: uint16(31),
  9717. },
  9718. 133: {
  9719. Fbits: uint8(8),
  9720. Fval: uint16(113),
  9721. },
  9722. 134: {
  9723. Fbits: uint8(8),
  9724. Fval: uint16(49),
  9725. },
  9726. 135: {
  9727. Fbits: uint8(9),
  9728. Fval: uint16(194),
  9729. },
  9730. 136: {
  9731. Fop: uint8(16),
  9732. Fbits: uint8(7),
  9733. Fval: uint16(10),
  9734. },
  9735. 137: {
  9736. Fbits: uint8(8),
  9737. Fval: uint16(97),
  9738. },
  9739. 138: {
  9740. Fbits: uint8(8),
  9741. Fval: uint16(33),
  9742. },
  9743. 139: {
  9744. Fbits: uint8(9),
  9745. Fval: uint16(162),
  9746. },
  9747. 140: {
  9748. Fbits: uint8(8),
  9749. Fval: uint16(1),
  9750. },
  9751. 141: {
  9752. Fbits: uint8(8),
  9753. Fval: uint16(129),
  9754. },
  9755. 142: {
  9756. Fbits: uint8(8),
  9757. Fval: uint16(65),
  9758. },
  9759. 143: {
  9760. Fbits: uint8(9),
  9761. Fval: uint16(226),
  9762. },
  9763. 144: {
  9764. Fop: uint8(16),
  9765. Fbits: uint8(7),
  9766. Fval: uint16(6),
  9767. },
  9768. 145: {
  9769. Fbits: uint8(8),
  9770. Fval: uint16(89),
  9771. },
  9772. 146: {
  9773. Fbits: uint8(8),
  9774. Fval: uint16(25),
  9775. },
  9776. 147: {
  9777. Fbits: uint8(9),
  9778. Fval: uint16(146),
  9779. },
  9780. 148: {
  9781. Fop: uint8(19),
  9782. Fbits: uint8(7),
  9783. Fval: uint16(59),
  9784. },
  9785. 149: {
  9786. Fbits: uint8(8),
  9787. Fval: uint16(121),
  9788. },
  9789. 150: {
  9790. Fbits: uint8(8),
  9791. Fval: uint16(57),
  9792. },
  9793. 151: {
  9794. Fbits: uint8(9),
  9795. Fval: uint16(210),
  9796. },
  9797. 152: {
  9798. Fop: uint8(17),
  9799. Fbits: uint8(7),
  9800. Fval: uint16(17),
  9801. },
  9802. 153: {
  9803. Fbits: uint8(8),
  9804. Fval: uint16(105),
  9805. },
  9806. 154: {
  9807. Fbits: uint8(8),
  9808. Fval: uint16(41),
  9809. },
  9810. 155: {
  9811. Fbits: uint8(9),
  9812. Fval: uint16(178),
  9813. },
  9814. 156: {
  9815. Fbits: uint8(8),
  9816. Fval: uint16(9),
  9817. },
  9818. 157: {
  9819. Fbits: uint8(8),
  9820. Fval: uint16(137),
  9821. },
  9822. 158: {
  9823. Fbits: uint8(8),
  9824. Fval: uint16(73),
  9825. },
  9826. 159: {
  9827. Fbits: uint8(9),
  9828. Fval: uint16(242),
  9829. },
  9830. 160: {
  9831. Fop: uint8(16),
  9832. Fbits: uint8(7),
  9833. Fval: uint16(4),
  9834. },
  9835. 161: {
  9836. Fbits: uint8(8),
  9837. Fval: uint16(85),
  9838. },
  9839. 162: {
  9840. Fbits: uint8(8),
  9841. Fval: uint16(21),
  9842. },
  9843. 163: {
  9844. Fop: uint8(16),
  9845. Fbits: uint8(8),
  9846. Fval: uint16(258),
  9847. },
  9848. 164: {
  9849. Fop: uint8(19),
  9850. Fbits: uint8(7),
  9851. Fval: uint16(43),
  9852. },
  9853. 165: {
  9854. Fbits: uint8(8),
  9855. Fval: uint16(117),
  9856. },
  9857. 166: {
  9858. Fbits: uint8(8),
  9859. Fval: uint16(53),
  9860. },
  9861. 167: {
  9862. Fbits: uint8(9),
  9863. Fval: uint16(202),
  9864. },
  9865. 168: {
  9866. Fop: uint8(17),
  9867. Fbits: uint8(7),
  9868. Fval: uint16(13),
  9869. },
  9870. 169: {
  9871. Fbits: uint8(8),
  9872. Fval: uint16(101),
  9873. },
  9874. 170: {
  9875. Fbits: uint8(8),
  9876. Fval: uint16(37),
  9877. },
  9878. 171: {
  9879. Fbits: uint8(9),
  9880. Fval: uint16(170),
  9881. },
  9882. 172: {
  9883. Fbits: uint8(8),
  9884. Fval: uint16(5),
  9885. },
  9886. 173: {
  9887. Fbits: uint8(8),
  9888. Fval: uint16(133),
  9889. },
  9890. 174: {
  9891. Fbits: uint8(8),
  9892. Fval: uint16(69),
  9893. },
  9894. 175: {
  9895. Fbits: uint8(9),
  9896. Fval: uint16(234),
  9897. },
  9898. 176: {
  9899. Fop: uint8(16),
  9900. Fbits: uint8(7),
  9901. Fval: uint16(8),
  9902. },
  9903. 177: {
  9904. Fbits: uint8(8),
  9905. Fval: uint16(93),
  9906. },
  9907. 178: {
  9908. Fbits: uint8(8),
  9909. Fval: uint16(29),
  9910. },
  9911. 179: {
  9912. Fbits: uint8(9),
  9913. Fval: uint16(154),
  9914. },
  9915. 180: {
  9916. Fop: uint8(20),
  9917. Fbits: uint8(7),
  9918. Fval: uint16(83),
  9919. },
  9920. 181: {
  9921. Fbits: uint8(8),
  9922. Fval: uint16(125),
  9923. },
  9924. 182: {
  9925. Fbits: uint8(8),
  9926. Fval: uint16(61),
  9927. },
  9928. 183: {
  9929. Fbits: uint8(9),
  9930. Fval: uint16(218),
  9931. },
  9932. 184: {
  9933. Fop: uint8(18),
  9934. Fbits: uint8(7),
  9935. Fval: uint16(23),
  9936. },
  9937. 185: {
  9938. Fbits: uint8(8),
  9939. Fval: uint16(109),
  9940. },
  9941. 186: {
  9942. Fbits: uint8(8),
  9943. Fval: uint16(45),
  9944. },
  9945. 187: {
  9946. Fbits: uint8(9),
  9947. Fval: uint16(186),
  9948. },
  9949. 188: {
  9950. Fbits: uint8(8),
  9951. Fval: uint16(13),
  9952. },
  9953. 189: {
  9954. Fbits: uint8(8),
  9955. Fval: uint16(141),
  9956. },
  9957. 190: {
  9958. Fbits: uint8(8),
  9959. Fval: uint16(77),
  9960. },
  9961. 191: {
  9962. Fbits: uint8(9),
  9963. Fval: uint16(250),
  9964. },
  9965. 192: {
  9966. Fop: uint8(16),
  9967. Fbits: uint8(7),
  9968. Fval: uint16(3),
  9969. },
  9970. 193: {
  9971. Fbits: uint8(8),
  9972. Fval: uint16(83),
  9973. },
  9974. 194: {
  9975. Fbits: uint8(8),
  9976. Fval: uint16(19),
  9977. },
  9978. 195: {
  9979. Fop: uint8(21),
  9980. Fbits: uint8(8),
  9981. Fval: uint16(195),
  9982. },
  9983. 196: {
  9984. Fop: uint8(19),
  9985. Fbits: uint8(7),
  9986. Fval: uint16(35),
  9987. },
  9988. 197: {
  9989. Fbits: uint8(8),
  9990. Fval: uint16(115),
  9991. },
  9992. 198: {
  9993. Fbits: uint8(8),
  9994. Fval: uint16(51),
  9995. },
  9996. 199: {
  9997. Fbits: uint8(9),
  9998. Fval: uint16(198),
  9999. },
  10000. 200: {
  10001. Fop: uint8(17),
  10002. Fbits: uint8(7),
  10003. Fval: uint16(11),
  10004. },
  10005. 201: {
  10006. Fbits: uint8(8),
  10007. Fval: uint16(99),
  10008. },
  10009. 202: {
  10010. Fbits: uint8(8),
  10011. Fval: uint16(35),
  10012. },
  10013. 203: {
  10014. Fbits: uint8(9),
  10015. Fval: uint16(166),
  10016. },
  10017. 204: {
  10018. Fbits: uint8(8),
  10019. Fval: uint16(3),
  10020. },
  10021. 205: {
  10022. Fbits: uint8(8),
  10023. Fval: uint16(131),
  10024. },
  10025. 206: {
  10026. Fbits: uint8(8),
  10027. Fval: uint16(67),
  10028. },
  10029. 207: {
  10030. Fbits: uint8(9),
  10031. Fval: uint16(230),
  10032. },
  10033. 208: {
  10034. Fop: uint8(16),
  10035. Fbits: uint8(7),
  10036. Fval: uint16(7),
  10037. },
  10038. 209: {
  10039. Fbits: uint8(8),
  10040. Fval: uint16(91),
  10041. },
  10042. 210: {
  10043. Fbits: uint8(8),
  10044. Fval: uint16(27),
  10045. },
  10046. 211: {
  10047. Fbits: uint8(9),
  10048. Fval: uint16(150),
  10049. },
  10050. 212: {
  10051. Fop: uint8(20),
  10052. Fbits: uint8(7),
  10053. Fval: uint16(67),
  10054. },
  10055. 213: {
  10056. Fbits: uint8(8),
  10057. Fval: uint16(123),
  10058. },
  10059. 214: {
  10060. Fbits: uint8(8),
  10061. Fval: uint16(59),
  10062. },
  10063. 215: {
  10064. Fbits: uint8(9),
  10065. Fval: uint16(214),
  10066. },
  10067. 216: {
  10068. Fop: uint8(18),
  10069. Fbits: uint8(7),
  10070. Fval: uint16(19),
  10071. },
  10072. 217: {
  10073. Fbits: uint8(8),
  10074. Fval: uint16(107),
  10075. },
  10076. 218: {
  10077. Fbits: uint8(8),
  10078. Fval: uint16(43),
  10079. },
  10080. 219: {
  10081. Fbits: uint8(9),
  10082. Fval: uint16(182),
  10083. },
  10084. 220: {
  10085. Fbits: uint8(8),
  10086. Fval: uint16(11),
  10087. },
  10088. 221: {
  10089. Fbits: uint8(8),
  10090. Fval: uint16(139),
  10091. },
  10092. 222: {
  10093. Fbits: uint8(8),
  10094. Fval: uint16(75),
  10095. },
  10096. 223: {
  10097. Fbits: uint8(9),
  10098. Fval: uint16(246),
  10099. },
  10100. 224: {
  10101. Fop: uint8(16),
  10102. Fbits: uint8(7),
  10103. Fval: uint16(5),
  10104. },
  10105. 225: {
  10106. Fbits: uint8(8),
  10107. Fval: uint16(87),
  10108. },
  10109. 226: {
  10110. Fbits: uint8(8),
  10111. Fval: uint16(23),
  10112. },
  10113. 227: {
  10114. Fop: uint8(64),
  10115. Fbits: uint8(8),
  10116. },
  10117. 228: {
  10118. Fop: uint8(19),
  10119. Fbits: uint8(7),
  10120. Fval: uint16(51),
  10121. },
  10122. 229: {
  10123. Fbits: uint8(8),
  10124. Fval: uint16(119),
  10125. },
  10126. 230: {
  10127. Fbits: uint8(8),
  10128. Fval: uint16(55),
  10129. },
  10130. 231: {
  10131. Fbits: uint8(9),
  10132. Fval: uint16(206),
  10133. },
  10134. 232: {
  10135. Fop: uint8(17),
  10136. Fbits: uint8(7),
  10137. Fval: uint16(15),
  10138. },
  10139. 233: {
  10140. Fbits: uint8(8),
  10141. Fval: uint16(103),
  10142. },
  10143. 234: {
  10144. Fbits: uint8(8),
  10145. Fval: uint16(39),
  10146. },
  10147. 235: {
  10148. Fbits: uint8(9),
  10149. Fval: uint16(174),
  10150. },
  10151. 236: {
  10152. Fbits: uint8(8),
  10153. Fval: uint16(7),
  10154. },
  10155. 237: {
  10156. Fbits: uint8(8),
  10157. Fval: uint16(135),
  10158. },
  10159. 238: {
  10160. Fbits: uint8(8),
  10161. Fval: uint16(71),
  10162. },
  10163. 239: {
  10164. Fbits: uint8(9),
  10165. Fval: uint16(238),
  10166. },
  10167. 240: {
  10168. Fop: uint8(16),
  10169. Fbits: uint8(7),
  10170. Fval: uint16(9),
  10171. },
  10172. 241: {
  10173. Fbits: uint8(8),
  10174. Fval: uint16(95),
  10175. },
  10176. 242: {
  10177. Fbits: uint8(8),
  10178. Fval: uint16(31),
  10179. },
  10180. 243: {
  10181. Fbits: uint8(9),
  10182. Fval: uint16(158),
  10183. },
  10184. 244: {
  10185. Fop: uint8(20),
  10186. Fbits: uint8(7),
  10187. Fval: uint16(99),
  10188. },
  10189. 245: {
  10190. Fbits: uint8(8),
  10191. Fval: uint16(127),
  10192. },
  10193. 246: {
  10194. Fbits: uint8(8),
  10195. Fval: uint16(63),
  10196. },
  10197. 247: {
  10198. Fbits: uint8(9),
  10199. Fval: uint16(222),
  10200. },
  10201. 248: {
  10202. Fop: uint8(18),
  10203. Fbits: uint8(7),
  10204. Fval: uint16(27),
  10205. },
  10206. 249: {
  10207. Fbits: uint8(8),
  10208. Fval: uint16(111),
  10209. },
  10210. 250: {
  10211. Fbits: uint8(8),
  10212. Fval: uint16(47),
  10213. },
  10214. 251: {
  10215. Fbits: uint8(9),
  10216. Fval: uint16(190),
  10217. },
  10218. 252: {
  10219. Fbits: uint8(8),
  10220. Fval: uint16(15),
  10221. },
  10222. 253: {
  10223. Fbits: uint8(8),
  10224. Fval: uint16(143),
  10225. },
  10226. 254: {
  10227. Fbits: uint8(8),
  10228. Fval: uint16(79),
  10229. },
  10230. 255: {
  10231. Fbits: uint8(9),
  10232. Fval: uint16(254),
  10233. },
  10234. 256: {
  10235. Fop: uint8(96),
  10236. Fbits: uint8(7),
  10237. },
  10238. 257: {
  10239. Fbits: uint8(8),
  10240. Fval: uint16(80),
  10241. },
  10242. 258: {
  10243. Fbits: uint8(8),
  10244. Fval: uint16(16),
  10245. },
  10246. 259: {
  10247. Fop: uint8(20),
  10248. Fbits: uint8(8),
  10249. Fval: uint16(115),
  10250. },
  10251. 260: {
  10252. Fop: uint8(18),
  10253. Fbits: uint8(7),
  10254. Fval: uint16(31),
  10255. },
  10256. 261: {
  10257. Fbits: uint8(8),
  10258. Fval: uint16(112),
  10259. },
  10260. 262: {
  10261. Fbits: uint8(8),
  10262. Fval: uint16(48),
  10263. },
  10264. 263: {
  10265. Fbits: uint8(9),
  10266. Fval: uint16(193),
  10267. },
  10268. 264: {
  10269. Fop: uint8(16),
  10270. Fbits: uint8(7),
  10271. Fval: uint16(10),
  10272. },
  10273. 265: {
  10274. Fbits: uint8(8),
  10275. Fval: uint16(96),
  10276. },
  10277. 266: {
  10278. Fbits: uint8(8),
  10279. Fval: uint16(32),
  10280. },
  10281. 267: {
  10282. Fbits: uint8(9),
  10283. Fval: uint16(161),
  10284. },
  10285. 268: {
  10286. Fbits: uint8(8),
  10287. },
  10288. 269: {
  10289. Fbits: uint8(8),
  10290. Fval: uint16(128),
  10291. },
  10292. 270: {
  10293. Fbits: uint8(8),
  10294. Fval: uint16(64),
  10295. },
  10296. 271: {
  10297. Fbits: uint8(9),
  10298. Fval: uint16(225),
  10299. },
  10300. 272: {
  10301. Fop: uint8(16),
  10302. Fbits: uint8(7),
  10303. Fval: uint16(6),
  10304. },
  10305. 273: {
  10306. Fbits: uint8(8),
  10307. Fval: uint16(88),
  10308. },
  10309. 274: {
  10310. Fbits: uint8(8),
  10311. Fval: uint16(24),
  10312. },
  10313. 275: {
  10314. Fbits: uint8(9),
  10315. Fval: uint16(145),
  10316. },
  10317. 276: {
  10318. Fop: uint8(19),
  10319. Fbits: uint8(7),
  10320. Fval: uint16(59),
  10321. },
  10322. 277: {
  10323. Fbits: uint8(8),
  10324. Fval: uint16(120),
  10325. },
  10326. 278: {
  10327. Fbits: uint8(8),
  10328. Fval: uint16(56),
  10329. },
  10330. 279: {
  10331. Fbits: uint8(9),
  10332. Fval: uint16(209),
  10333. },
  10334. 280: {
  10335. Fop: uint8(17),
  10336. Fbits: uint8(7),
  10337. Fval: uint16(17),
  10338. },
  10339. 281: {
  10340. Fbits: uint8(8),
  10341. Fval: uint16(104),
  10342. },
  10343. 282: {
  10344. Fbits: uint8(8),
  10345. Fval: uint16(40),
  10346. },
  10347. 283: {
  10348. Fbits: uint8(9),
  10349. Fval: uint16(177),
  10350. },
  10351. 284: {
  10352. Fbits: uint8(8),
  10353. Fval: uint16(8),
  10354. },
  10355. 285: {
  10356. Fbits: uint8(8),
  10357. Fval: uint16(136),
  10358. },
  10359. 286: {
  10360. Fbits: uint8(8),
  10361. Fval: uint16(72),
  10362. },
  10363. 287: {
  10364. Fbits: uint8(9),
  10365. Fval: uint16(241),
  10366. },
  10367. 288: {
  10368. Fop: uint8(16),
  10369. Fbits: uint8(7),
  10370. Fval: uint16(4),
  10371. },
  10372. 289: {
  10373. Fbits: uint8(8),
  10374. Fval: uint16(84),
  10375. },
  10376. 290: {
  10377. Fbits: uint8(8),
  10378. Fval: uint16(20),
  10379. },
  10380. 291: {
  10381. Fop: uint8(21),
  10382. Fbits: uint8(8),
  10383. Fval: uint16(227),
  10384. },
  10385. 292: {
  10386. Fop: uint8(19),
  10387. Fbits: uint8(7),
  10388. Fval: uint16(43),
  10389. },
  10390. 293: {
  10391. Fbits: uint8(8),
  10392. Fval: uint16(116),
  10393. },
  10394. 294: {
  10395. Fbits: uint8(8),
  10396. Fval: uint16(52),
  10397. },
  10398. 295: {
  10399. Fbits: uint8(9),
  10400. Fval: uint16(201),
  10401. },
  10402. 296: {
  10403. Fop: uint8(17),
  10404. Fbits: uint8(7),
  10405. Fval: uint16(13),
  10406. },
  10407. 297: {
  10408. Fbits: uint8(8),
  10409. Fval: uint16(100),
  10410. },
  10411. 298: {
  10412. Fbits: uint8(8),
  10413. Fval: uint16(36),
  10414. },
  10415. 299: {
  10416. Fbits: uint8(9),
  10417. Fval: uint16(169),
  10418. },
  10419. 300: {
  10420. Fbits: uint8(8),
  10421. Fval: uint16(4),
  10422. },
  10423. 301: {
  10424. Fbits: uint8(8),
  10425. Fval: uint16(132),
  10426. },
  10427. 302: {
  10428. Fbits: uint8(8),
  10429. Fval: uint16(68),
  10430. },
  10431. 303: {
  10432. Fbits: uint8(9),
  10433. Fval: uint16(233),
  10434. },
  10435. 304: {
  10436. Fop: uint8(16),
  10437. Fbits: uint8(7),
  10438. Fval: uint16(8),
  10439. },
  10440. 305: {
  10441. Fbits: uint8(8),
  10442. Fval: uint16(92),
  10443. },
  10444. 306: {
  10445. Fbits: uint8(8),
  10446. Fval: uint16(28),
  10447. },
  10448. 307: {
  10449. Fbits: uint8(9),
  10450. Fval: uint16(153),
  10451. },
  10452. 308: {
  10453. Fop: uint8(20),
  10454. Fbits: uint8(7),
  10455. Fval: uint16(83),
  10456. },
  10457. 309: {
  10458. Fbits: uint8(8),
  10459. Fval: uint16(124),
  10460. },
  10461. 310: {
  10462. Fbits: uint8(8),
  10463. Fval: uint16(60),
  10464. },
  10465. 311: {
  10466. Fbits: uint8(9),
  10467. Fval: uint16(217),
  10468. },
  10469. 312: {
  10470. Fop: uint8(18),
  10471. Fbits: uint8(7),
  10472. Fval: uint16(23),
  10473. },
  10474. 313: {
  10475. Fbits: uint8(8),
  10476. Fval: uint16(108),
  10477. },
  10478. 314: {
  10479. Fbits: uint8(8),
  10480. Fval: uint16(44),
  10481. },
  10482. 315: {
  10483. Fbits: uint8(9),
  10484. Fval: uint16(185),
  10485. },
  10486. 316: {
  10487. Fbits: uint8(8),
  10488. Fval: uint16(12),
  10489. },
  10490. 317: {
  10491. Fbits: uint8(8),
  10492. Fval: uint16(140),
  10493. },
  10494. 318: {
  10495. Fbits: uint8(8),
  10496. Fval: uint16(76),
  10497. },
  10498. 319: {
  10499. Fbits: uint8(9),
  10500. Fval: uint16(249),
  10501. },
  10502. 320: {
  10503. Fop: uint8(16),
  10504. Fbits: uint8(7),
  10505. Fval: uint16(3),
  10506. },
  10507. 321: {
  10508. Fbits: uint8(8),
  10509. Fval: uint16(82),
  10510. },
  10511. 322: {
  10512. Fbits: uint8(8),
  10513. Fval: uint16(18),
  10514. },
  10515. 323: {
  10516. Fop: uint8(21),
  10517. Fbits: uint8(8),
  10518. Fval: uint16(163),
  10519. },
  10520. 324: {
  10521. Fop: uint8(19),
  10522. Fbits: uint8(7),
  10523. Fval: uint16(35),
  10524. },
  10525. 325: {
  10526. Fbits: uint8(8),
  10527. Fval: uint16(114),
  10528. },
  10529. 326: {
  10530. Fbits: uint8(8),
  10531. Fval: uint16(50),
  10532. },
  10533. 327: {
  10534. Fbits: uint8(9),
  10535. Fval: uint16(197),
  10536. },
  10537. 328: {
  10538. Fop: uint8(17),
  10539. Fbits: uint8(7),
  10540. Fval: uint16(11),
  10541. },
  10542. 329: {
  10543. Fbits: uint8(8),
  10544. Fval: uint16(98),
  10545. },
  10546. 330: {
  10547. Fbits: uint8(8),
  10548. Fval: uint16(34),
  10549. },
  10550. 331: {
  10551. Fbits: uint8(9),
  10552. Fval: uint16(165),
  10553. },
  10554. 332: {
  10555. Fbits: uint8(8),
  10556. Fval: uint16(2),
  10557. },
  10558. 333: {
  10559. Fbits: uint8(8),
  10560. Fval: uint16(130),
  10561. },
  10562. 334: {
  10563. Fbits: uint8(8),
  10564. Fval: uint16(66),
  10565. },
  10566. 335: {
  10567. Fbits: uint8(9),
  10568. Fval: uint16(229),
  10569. },
  10570. 336: {
  10571. Fop: uint8(16),
  10572. Fbits: uint8(7),
  10573. Fval: uint16(7),
  10574. },
  10575. 337: {
  10576. Fbits: uint8(8),
  10577. Fval: uint16(90),
  10578. },
  10579. 338: {
  10580. Fbits: uint8(8),
  10581. Fval: uint16(26),
  10582. },
  10583. 339: {
  10584. Fbits: uint8(9),
  10585. Fval: uint16(149),
  10586. },
  10587. 340: {
  10588. Fop: uint8(20),
  10589. Fbits: uint8(7),
  10590. Fval: uint16(67),
  10591. },
  10592. 341: {
  10593. Fbits: uint8(8),
  10594. Fval: uint16(122),
  10595. },
  10596. 342: {
  10597. Fbits: uint8(8),
  10598. Fval: uint16(58),
  10599. },
  10600. 343: {
  10601. Fbits: uint8(9),
  10602. Fval: uint16(213),
  10603. },
  10604. 344: {
  10605. Fop: uint8(18),
  10606. Fbits: uint8(7),
  10607. Fval: uint16(19),
  10608. },
  10609. 345: {
  10610. Fbits: uint8(8),
  10611. Fval: uint16(106),
  10612. },
  10613. 346: {
  10614. Fbits: uint8(8),
  10615. Fval: uint16(42),
  10616. },
  10617. 347: {
  10618. Fbits: uint8(9),
  10619. Fval: uint16(181),
  10620. },
  10621. 348: {
  10622. Fbits: uint8(8),
  10623. Fval: uint16(10),
  10624. },
  10625. 349: {
  10626. Fbits: uint8(8),
  10627. Fval: uint16(138),
  10628. },
  10629. 350: {
  10630. Fbits: uint8(8),
  10631. Fval: uint16(74),
  10632. },
  10633. 351: {
  10634. Fbits: uint8(9),
  10635. Fval: uint16(245),
  10636. },
  10637. 352: {
  10638. Fop: uint8(16),
  10639. Fbits: uint8(7),
  10640. Fval: uint16(5),
  10641. },
  10642. 353: {
  10643. Fbits: uint8(8),
  10644. Fval: uint16(86),
  10645. },
  10646. 354: {
  10647. Fbits: uint8(8),
  10648. Fval: uint16(22),
  10649. },
  10650. 355: {
  10651. Fop: uint8(64),
  10652. Fbits: uint8(8),
  10653. },
  10654. 356: {
  10655. Fop: uint8(19),
  10656. Fbits: uint8(7),
  10657. Fval: uint16(51),
  10658. },
  10659. 357: {
  10660. Fbits: uint8(8),
  10661. Fval: uint16(118),
  10662. },
  10663. 358: {
  10664. Fbits: uint8(8),
  10665. Fval: uint16(54),
  10666. },
  10667. 359: {
  10668. Fbits: uint8(9),
  10669. Fval: uint16(205),
  10670. },
  10671. 360: {
  10672. Fop: uint8(17),
  10673. Fbits: uint8(7),
  10674. Fval: uint16(15),
  10675. },
  10676. 361: {
  10677. Fbits: uint8(8),
  10678. Fval: uint16(102),
  10679. },
  10680. 362: {
  10681. Fbits: uint8(8),
  10682. Fval: uint16(38),
  10683. },
  10684. 363: {
  10685. Fbits: uint8(9),
  10686. Fval: uint16(173),
  10687. },
  10688. 364: {
  10689. Fbits: uint8(8),
  10690. Fval: uint16(6),
  10691. },
  10692. 365: {
  10693. Fbits: uint8(8),
  10694. Fval: uint16(134),
  10695. },
  10696. 366: {
  10697. Fbits: uint8(8),
  10698. Fval: uint16(70),
  10699. },
  10700. 367: {
  10701. Fbits: uint8(9),
  10702. Fval: uint16(237),
  10703. },
  10704. 368: {
  10705. Fop: uint8(16),
  10706. Fbits: uint8(7),
  10707. Fval: uint16(9),
  10708. },
  10709. 369: {
  10710. Fbits: uint8(8),
  10711. Fval: uint16(94),
  10712. },
  10713. 370: {
  10714. Fbits: uint8(8),
  10715. Fval: uint16(30),
  10716. },
  10717. 371: {
  10718. Fbits: uint8(9),
  10719. Fval: uint16(157),
  10720. },
  10721. 372: {
  10722. Fop: uint8(20),
  10723. Fbits: uint8(7),
  10724. Fval: uint16(99),
  10725. },
  10726. 373: {
  10727. Fbits: uint8(8),
  10728. Fval: uint16(126),
  10729. },
  10730. 374: {
  10731. Fbits: uint8(8),
  10732. Fval: uint16(62),
  10733. },
  10734. 375: {
  10735. Fbits: uint8(9),
  10736. Fval: uint16(221),
  10737. },
  10738. 376: {
  10739. Fop: uint8(18),
  10740. Fbits: uint8(7),
  10741. Fval: uint16(27),
  10742. },
  10743. 377: {
  10744. Fbits: uint8(8),
  10745. Fval: uint16(110),
  10746. },
  10747. 378: {
  10748. Fbits: uint8(8),
  10749. Fval: uint16(46),
  10750. },
  10751. 379: {
  10752. Fbits: uint8(9),
  10753. Fval: uint16(189),
  10754. },
  10755. 380: {
  10756. Fbits: uint8(8),
  10757. Fval: uint16(14),
  10758. },
  10759. 381: {
  10760. Fbits: uint8(8),
  10761. Fval: uint16(142),
  10762. },
  10763. 382: {
  10764. Fbits: uint8(8),
  10765. Fval: uint16(78),
  10766. },
  10767. 383: {
  10768. Fbits: uint8(9),
  10769. Fval: uint16(253),
  10770. },
  10771. 384: {
  10772. Fop: uint8(96),
  10773. Fbits: uint8(7),
  10774. },
  10775. 385: {
  10776. Fbits: uint8(8),
  10777. Fval: uint16(81),
  10778. },
  10779. 386: {
  10780. Fbits: uint8(8),
  10781. Fval: uint16(17),
  10782. },
  10783. 387: {
  10784. Fop: uint8(21),
  10785. Fbits: uint8(8),
  10786. Fval: uint16(131),
  10787. },
  10788. 388: {
  10789. Fop: uint8(18),
  10790. Fbits: uint8(7),
  10791. Fval: uint16(31),
  10792. },
  10793. 389: {
  10794. Fbits: uint8(8),
  10795. Fval: uint16(113),
  10796. },
  10797. 390: {
  10798. Fbits: uint8(8),
  10799. Fval: uint16(49),
  10800. },
  10801. 391: {
  10802. Fbits: uint8(9),
  10803. Fval: uint16(195),
  10804. },
  10805. 392: {
  10806. Fop: uint8(16),
  10807. Fbits: uint8(7),
  10808. Fval: uint16(10),
  10809. },
  10810. 393: {
  10811. Fbits: uint8(8),
  10812. Fval: uint16(97),
  10813. },
  10814. 394: {
  10815. Fbits: uint8(8),
  10816. Fval: uint16(33),
  10817. },
  10818. 395: {
  10819. Fbits: uint8(9),
  10820. Fval: uint16(163),
  10821. },
  10822. 396: {
  10823. Fbits: uint8(8),
  10824. Fval: uint16(1),
  10825. },
  10826. 397: {
  10827. Fbits: uint8(8),
  10828. Fval: uint16(129),
  10829. },
  10830. 398: {
  10831. Fbits: uint8(8),
  10832. Fval: uint16(65),
  10833. },
  10834. 399: {
  10835. Fbits: uint8(9),
  10836. Fval: uint16(227),
  10837. },
  10838. 400: {
  10839. Fop: uint8(16),
  10840. Fbits: uint8(7),
  10841. Fval: uint16(6),
  10842. },
  10843. 401: {
  10844. Fbits: uint8(8),
  10845. Fval: uint16(89),
  10846. },
  10847. 402: {
  10848. Fbits: uint8(8),
  10849. Fval: uint16(25),
  10850. },
  10851. 403: {
  10852. Fbits: uint8(9),
  10853. Fval: uint16(147),
  10854. },
  10855. 404: {
  10856. Fop: uint8(19),
  10857. Fbits: uint8(7),
  10858. Fval: uint16(59),
  10859. },
  10860. 405: {
  10861. Fbits: uint8(8),
  10862. Fval: uint16(121),
  10863. },
  10864. 406: {
  10865. Fbits: uint8(8),
  10866. Fval: uint16(57),
  10867. },
  10868. 407: {
  10869. Fbits: uint8(9),
  10870. Fval: uint16(211),
  10871. },
  10872. 408: {
  10873. Fop: uint8(17),
  10874. Fbits: uint8(7),
  10875. Fval: uint16(17),
  10876. },
  10877. 409: {
  10878. Fbits: uint8(8),
  10879. Fval: uint16(105),
  10880. },
  10881. 410: {
  10882. Fbits: uint8(8),
  10883. Fval: uint16(41),
  10884. },
  10885. 411: {
  10886. Fbits: uint8(9),
  10887. Fval: uint16(179),
  10888. },
  10889. 412: {
  10890. Fbits: uint8(8),
  10891. Fval: uint16(9),
  10892. },
  10893. 413: {
  10894. Fbits: uint8(8),
  10895. Fval: uint16(137),
  10896. },
  10897. 414: {
  10898. Fbits: uint8(8),
  10899. Fval: uint16(73),
  10900. },
  10901. 415: {
  10902. Fbits: uint8(9),
  10903. Fval: uint16(243),
  10904. },
  10905. 416: {
  10906. Fop: uint8(16),
  10907. Fbits: uint8(7),
  10908. Fval: uint16(4),
  10909. },
  10910. 417: {
  10911. Fbits: uint8(8),
  10912. Fval: uint16(85),
  10913. },
  10914. 418: {
  10915. Fbits: uint8(8),
  10916. Fval: uint16(21),
  10917. },
  10918. 419: {
  10919. Fop: uint8(16),
  10920. Fbits: uint8(8),
  10921. Fval: uint16(258),
  10922. },
  10923. 420: {
  10924. Fop: uint8(19),
  10925. Fbits: uint8(7),
  10926. Fval: uint16(43),
  10927. },
  10928. 421: {
  10929. Fbits: uint8(8),
  10930. Fval: uint16(117),
  10931. },
  10932. 422: {
  10933. Fbits: uint8(8),
  10934. Fval: uint16(53),
  10935. },
  10936. 423: {
  10937. Fbits: uint8(9),
  10938. Fval: uint16(203),
  10939. },
  10940. 424: {
  10941. Fop: uint8(17),
  10942. Fbits: uint8(7),
  10943. Fval: uint16(13),
  10944. },
  10945. 425: {
  10946. Fbits: uint8(8),
  10947. Fval: uint16(101),
  10948. },
  10949. 426: {
  10950. Fbits: uint8(8),
  10951. Fval: uint16(37),
  10952. },
  10953. 427: {
  10954. Fbits: uint8(9),
  10955. Fval: uint16(171),
  10956. },
  10957. 428: {
  10958. Fbits: uint8(8),
  10959. Fval: uint16(5),
  10960. },
  10961. 429: {
  10962. Fbits: uint8(8),
  10963. Fval: uint16(133),
  10964. },
  10965. 430: {
  10966. Fbits: uint8(8),
  10967. Fval: uint16(69),
  10968. },
  10969. 431: {
  10970. Fbits: uint8(9),
  10971. Fval: uint16(235),
  10972. },
  10973. 432: {
  10974. Fop: uint8(16),
  10975. Fbits: uint8(7),
  10976. Fval: uint16(8),
  10977. },
  10978. 433: {
  10979. Fbits: uint8(8),
  10980. Fval: uint16(93),
  10981. },
  10982. 434: {
  10983. Fbits: uint8(8),
  10984. Fval: uint16(29),
  10985. },
  10986. 435: {
  10987. Fbits: uint8(9),
  10988. Fval: uint16(155),
  10989. },
  10990. 436: {
  10991. Fop: uint8(20),
  10992. Fbits: uint8(7),
  10993. Fval: uint16(83),
  10994. },
  10995. 437: {
  10996. Fbits: uint8(8),
  10997. Fval: uint16(125),
  10998. },
  10999. 438: {
  11000. Fbits: uint8(8),
  11001. Fval: uint16(61),
  11002. },
  11003. 439: {
  11004. Fbits: uint8(9),
  11005. Fval: uint16(219),
  11006. },
  11007. 440: {
  11008. Fop: uint8(18),
  11009. Fbits: uint8(7),
  11010. Fval: uint16(23),
  11011. },
  11012. 441: {
  11013. Fbits: uint8(8),
  11014. Fval: uint16(109),
  11015. },
  11016. 442: {
  11017. Fbits: uint8(8),
  11018. Fval: uint16(45),
  11019. },
  11020. 443: {
  11021. Fbits: uint8(9),
  11022. Fval: uint16(187),
  11023. },
  11024. 444: {
  11025. Fbits: uint8(8),
  11026. Fval: uint16(13),
  11027. },
  11028. 445: {
  11029. Fbits: uint8(8),
  11030. Fval: uint16(141),
  11031. },
  11032. 446: {
  11033. Fbits: uint8(8),
  11034. Fval: uint16(77),
  11035. },
  11036. 447: {
  11037. Fbits: uint8(9),
  11038. Fval: uint16(251),
  11039. },
  11040. 448: {
  11041. Fop: uint8(16),
  11042. Fbits: uint8(7),
  11043. Fval: uint16(3),
  11044. },
  11045. 449: {
  11046. Fbits: uint8(8),
  11047. Fval: uint16(83),
  11048. },
  11049. 450: {
  11050. Fbits: uint8(8),
  11051. Fval: uint16(19),
  11052. },
  11053. 451: {
  11054. Fop: uint8(21),
  11055. Fbits: uint8(8),
  11056. Fval: uint16(195),
  11057. },
  11058. 452: {
  11059. Fop: uint8(19),
  11060. Fbits: uint8(7),
  11061. Fval: uint16(35),
  11062. },
  11063. 453: {
  11064. Fbits: uint8(8),
  11065. Fval: uint16(115),
  11066. },
  11067. 454: {
  11068. Fbits: uint8(8),
  11069. Fval: uint16(51),
  11070. },
  11071. 455: {
  11072. Fbits: uint8(9),
  11073. Fval: uint16(199),
  11074. },
  11075. 456: {
  11076. Fop: uint8(17),
  11077. Fbits: uint8(7),
  11078. Fval: uint16(11),
  11079. },
  11080. 457: {
  11081. Fbits: uint8(8),
  11082. Fval: uint16(99),
  11083. },
  11084. 458: {
  11085. Fbits: uint8(8),
  11086. Fval: uint16(35),
  11087. },
  11088. 459: {
  11089. Fbits: uint8(9),
  11090. Fval: uint16(167),
  11091. },
  11092. 460: {
  11093. Fbits: uint8(8),
  11094. Fval: uint16(3),
  11095. },
  11096. 461: {
  11097. Fbits: uint8(8),
  11098. Fval: uint16(131),
  11099. },
  11100. 462: {
  11101. Fbits: uint8(8),
  11102. Fval: uint16(67),
  11103. },
  11104. 463: {
  11105. Fbits: uint8(9),
  11106. Fval: uint16(231),
  11107. },
  11108. 464: {
  11109. Fop: uint8(16),
  11110. Fbits: uint8(7),
  11111. Fval: uint16(7),
  11112. },
  11113. 465: {
  11114. Fbits: uint8(8),
  11115. Fval: uint16(91),
  11116. },
  11117. 466: {
  11118. Fbits: uint8(8),
  11119. Fval: uint16(27),
  11120. },
  11121. 467: {
  11122. Fbits: uint8(9),
  11123. Fval: uint16(151),
  11124. },
  11125. 468: {
  11126. Fop: uint8(20),
  11127. Fbits: uint8(7),
  11128. Fval: uint16(67),
  11129. },
  11130. 469: {
  11131. Fbits: uint8(8),
  11132. Fval: uint16(123),
  11133. },
  11134. 470: {
  11135. Fbits: uint8(8),
  11136. Fval: uint16(59),
  11137. },
  11138. 471: {
  11139. Fbits: uint8(9),
  11140. Fval: uint16(215),
  11141. },
  11142. 472: {
  11143. Fop: uint8(18),
  11144. Fbits: uint8(7),
  11145. Fval: uint16(19),
  11146. },
  11147. 473: {
  11148. Fbits: uint8(8),
  11149. Fval: uint16(107),
  11150. },
  11151. 474: {
  11152. Fbits: uint8(8),
  11153. Fval: uint16(43),
  11154. },
  11155. 475: {
  11156. Fbits: uint8(9),
  11157. Fval: uint16(183),
  11158. },
  11159. 476: {
  11160. Fbits: uint8(8),
  11161. Fval: uint16(11),
  11162. },
  11163. 477: {
  11164. Fbits: uint8(8),
  11165. Fval: uint16(139),
  11166. },
  11167. 478: {
  11168. Fbits: uint8(8),
  11169. Fval: uint16(75),
  11170. },
  11171. 479: {
  11172. Fbits: uint8(9),
  11173. Fval: uint16(247),
  11174. },
  11175. 480: {
  11176. Fop: uint8(16),
  11177. Fbits: uint8(7),
  11178. Fval: uint16(5),
  11179. },
  11180. 481: {
  11181. Fbits: uint8(8),
  11182. Fval: uint16(87),
  11183. },
  11184. 482: {
  11185. Fbits: uint8(8),
  11186. Fval: uint16(23),
  11187. },
  11188. 483: {
  11189. Fop: uint8(64),
  11190. Fbits: uint8(8),
  11191. },
  11192. 484: {
  11193. Fop: uint8(19),
  11194. Fbits: uint8(7),
  11195. Fval: uint16(51),
  11196. },
  11197. 485: {
  11198. Fbits: uint8(8),
  11199. Fval: uint16(119),
  11200. },
  11201. 486: {
  11202. Fbits: uint8(8),
  11203. Fval: uint16(55),
  11204. },
  11205. 487: {
  11206. Fbits: uint8(9),
  11207. Fval: uint16(207),
  11208. },
  11209. 488: {
  11210. Fop: uint8(17),
  11211. Fbits: uint8(7),
  11212. Fval: uint16(15),
  11213. },
  11214. 489: {
  11215. Fbits: uint8(8),
  11216. Fval: uint16(103),
  11217. },
  11218. 490: {
  11219. Fbits: uint8(8),
  11220. Fval: uint16(39),
  11221. },
  11222. 491: {
  11223. Fbits: uint8(9),
  11224. Fval: uint16(175),
  11225. },
  11226. 492: {
  11227. Fbits: uint8(8),
  11228. Fval: uint16(7),
  11229. },
  11230. 493: {
  11231. Fbits: uint8(8),
  11232. Fval: uint16(135),
  11233. },
  11234. 494: {
  11235. Fbits: uint8(8),
  11236. Fval: uint16(71),
  11237. },
  11238. 495: {
  11239. Fbits: uint8(9),
  11240. Fval: uint16(239),
  11241. },
  11242. 496: {
  11243. Fop: uint8(16),
  11244. Fbits: uint8(7),
  11245. Fval: uint16(9),
  11246. },
  11247. 497: {
  11248. Fbits: uint8(8),
  11249. Fval: uint16(95),
  11250. },
  11251. 498: {
  11252. Fbits: uint8(8),
  11253. Fval: uint16(31),
  11254. },
  11255. 499: {
  11256. Fbits: uint8(9),
  11257. Fval: uint16(159),
  11258. },
  11259. 500: {
  11260. Fop: uint8(20),
  11261. Fbits: uint8(7),
  11262. Fval: uint16(99),
  11263. },
  11264. 501: {
  11265. Fbits: uint8(8),
  11266. Fval: uint16(127),
  11267. },
  11268. 502: {
  11269. Fbits: uint8(8),
  11270. Fval: uint16(63),
  11271. },
  11272. 503: {
  11273. Fbits: uint8(9),
  11274. Fval: uint16(223),
  11275. },
  11276. 504: {
  11277. Fop: uint8(18),
  11278. Fbits: uint8(7),
  11279. Fval: uint16(27),
  11280. },
  11281. 505: {
  11282. Fbits: uint8(8),
  11283. Fval: uint16(111),
  11284. },
  11285. 506: {
  11286. Fbits: uint8(8),
  11287. Fval: uint16(47),
  11288. },
  11289. 507: {
  11290. Fbits: uint8(9),
  11291. Fval: uint16(191),
  11292. },
  11293. 508: {
  11294. Fbits: uint8(8),
  11295. Fval: uint16(15),
  11296. },
  11297. 509: {
  11298. Fbits: uint8(8),
  11299. Fval: uint16(143),
  11300. },
  11301. 510: {
  11302. Fbits: uint8(8),
  11303. Fval: uint16(79),
  11304. },
  11305. 511: {
  11306. Fbits: uint8(9),
  11307. Fval: uint16(255),
  11308. },
  11309. }
  11310. var _distfix = [32]Tcode{
  11311. 0: {
  11312. Fop: uint8(16),
  11313. Fbits: uint8(5),
  11314. Fval: uint16(1),
  11315. },
  11316. 1: {
  11317. Fop: uint8(23),
  11318. Fbits: uint8(5),
  11319. Fval: uint16(257),
  11320. },
  11321. 2: {
  11322. Fop: uint8(19),
  11323. Fbits: uint8(5),
  11324. Fval: uint16(17),
  11325. },
  11326. 3: {
  11327. Fop: uint8(27),
  11328. Fbits: uint8(5),
  11329. Fval: uint16(4097),
  11330. },
  11331. 4: {
  11332. Fop: uint8(17),
  11333. Fbits: uint8(5),
  11334. Fval: uint16(5),
  11335. },
  11336. 5: {
  11337. Fop: uint8(25),
  11338. Fbits: uint8(5),
  11339. Fval: uint16(1025),
  11340. },
  11341. 6: {
  11342. Fop: uint8(21),
  11343. Fbits: uint8(5),
  11344. Fval: uint16(65),
  11345. },
  11346. 7: {
  11347. Fop: uint8(29),
  11348. Fbits: uint8(5),
  11349. Fval: uint16(16385),
  11350. },
  11351. 8: {
  11352. Fop: uint8(16),
  11353. Fbits: uint8(5),
  11354. Fval: uint16(3),
  11355. },
  11356. 9: {
  11357. Fop: uint8(24),
  11358. Fbits: uint8(5),
  11359. Fval: uint16(513),
  11360. },
  11361. 10: {
  11362. Fop: uint8(20),
  11363. Fbits: uint8(5),
  11364. Fval: uint16(33),
  11365. },
  11366. 11: {
  11367. Fop: uint8(28),
  11368. Fbits: uint8(5),
  11369. Fval: uint16(8193),
  11370. },
  11371. 12: {
  11372. Fop: uint8(18),
  11373. Fbits: uint8(5),
  11374. Fval: uint16(9),
  11375. },
  11376. 13: {
  11377. Fop: uint8(26),
  11378. Fbits: uint8(5),
  11379. Fval: uint16(2049),
  11380. },
  11381. 14: {
  11382. Fop: uint8(22),
  11383. Fbits: uint8(5),
  11384. Fval: uint16(129),
  11385. },
  11386. 15: {
  11387. Fop: uint8(64),
  11388. Fbits: uint8(5),
  11389. },
  11390. 16: {
  11391. Fop: uint8(16),
  11392. Fbits: uint8(5),
  11393. Fval: uint16(2),
  11394. },
  11395. 17: {
  11396. Fop: uint8(23),
  11397. Fbits: uint8(5),
  11398. Fval: uint16(385),
  11399. },
  11400. 18: {
  11401. Fop: uint8(19),
  11402. Fbits: uint8(5),
  11403. Fval: uint16(25),
  11404. },
  11405. 19: {
  11406. Fop: uint8(27),
  11407. Fbits: uint8(5),
  11408. Fval: uint16(6145),
  11409. },
  11410. 20: {
  11411. Fop: uint8(17),
  11412. Fbits: uint8(5),
  11413. Fval: uint16(7),
  11414. },
  11415. 21: {
  11416. Fop: uint8(25),
  11417. Fbits: uint8(5),
  11418. Fval: uint16(1537),
  11419. },
  11420. 22: {
  11421. Fop: uint8(21),
  11422. Fbits: uint8(5),
  11423. Fval: uint16(97),
  11424. },
  11425. 23: {
  11426. Fop: uint8(29),
  11427. Fbits: uint8(5),
  11428. Fval: uint16(24577),
  11429. },
  11430. 24: {
  11431. Fop: uint8(16),
  11432. Fbits: uint8(5),
  11433. Fval: uint16(4),
  11434. },
  11435. 25: {
  11436. Fop: uint8(24),
  11437. Fbits: uint8(5),
  11438. Fval: uint16(769),
  11439. },
  11440. 26: {
  11441. Fop: uint8(20),
  11442. Fbits: uint8(5),
  11443. Fval: uint16(49),
  11444. },
  11445. 27: {
  11446. Fop: uint8(28),
  11447. Fbits: uint8(5),
  11448. Fval: uint16(12289),
  11449. },
  11450. 28: {
  11451. Fop: uint8(18),
  11452. Fbits: uint8(5),
  11453. Fval: uint16(13),
  11454. },
  11455. 29: {
  11456. Fop: uint8(26),
  11457. Fbits: uint8(5),
  11458. Fval: uint16(3073),
  11459. },
  11460. 30: {
  11461. Fop: uint8(22),
  11462. Fbits: uint8(5),
  11463. Fval: uint16(193),
  11464. },
  11465. 31: {
  11466. Fop: uint8(64),
  11467. Fbits: uint8(5),
  11468. },
  11469. }
  11470. /* Macros for inflateBack(): */
  11471. /* Load returned state from inflate_fast() */
  11472. /* Set state from registers for inflate_fast() */
  11473. /* Clear the input bit accumulator */
  11474. /* Assure that some input is available. If input is requested, but denied,
  11475. then return a Z_BUF_ERROR from inflateBack(). */
  11476. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  11477. with an error if there is no input available. */
  11478. /* Assure that there are at least n bits in the bit accumulator. If there is
  11479. not enough available input to do that, then return from inflateBack() with
  11480. an error. */
  11481. /* Return the low n bits of the bit accumulator (n < 16) */
  11482. /* Remove n bits from the bit accumulator */
  11483. /* Remove zero to seven bits as needed to go to a byte boundary */
  11484. /* Assure that some output space is available, by writing out the window
  11485. if it's full. If the write fails, return from inflateBack() with a
  11486. Z_BUF_ERROR. */
  11487. // C documentation
  11488. //
  11489. // /*
  11490. // strm provides the memory allocation functions and window buffer on input,
  11491. // and provides information on the unused input on return. For Z_DATA_ERROR
  11492. // returns, strm will also provide an error message.
  11493. //
  11494. // in() and out() are the call-back input and output functions. When
  11495. // inflateBack() needs more input, it calls in(). When inflateBack() has
  11496. // filled the window with output, or when it completes with data in the
  11497. // window, it calls out() to write out the data. The application must not
  11498. // change the provided input until in() is called again or inflateBack()
  11499. // returns. The application must not change the window/output buffer until
  11500. // inflateBack() returns.
  11501. //
  11502. // in() and out() are called with a descriptor parameter provided in the
  11503. // inflateBack() call. This parameter can be a structure that provides the
  11504. // information required to do the read or write, as well as accumulated
  11505. // information on the input and output such as totals and check values.
  11506. //
  11507. // in() should return zero on failure. out() should return non-zero on
  11508. // failure. If either in() or out() fails, than inflateBack() returns a
  11509. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  11510. // was in() or out() that caused in the error. Otherwise, inflateBack()
  11511. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  11512. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  11513. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  11514. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  11515. // */
  11516. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  11517. bp := tls.Alloc(16)
  11518. defer tls.Free(16)
  11519. var bits, copy1, have, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  11520. 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
  11521. var here, last Tcode
  11522. var hold uint64
  11523. var ret int32
  11524. var _ /* next at bp+0 */ uintptr
  11525. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  11526. /* Check that the strm exists and that the state was initialized */
  11527. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  11528. return -int32(2)
  11529. }
  11530. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  11531. /* Reset the state */
  11532. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  11533. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11534. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  11535. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  11536. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  11537. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  11538. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  11539. } else {
  11540. v1 = uint32(0)
  11541. }
  11542. have = v1
  11543. hold = uint64(0)
  11544. bits = uint32(0)
  11545. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11546. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11547. /* Inflate until end of block marked as last */
  11548. for {
  11549. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  11550. case int32(_TYPE):
  11551. goto _3
  11552. case int32(_STORED):
  11553. goto _4
  11554. case int32(_TABLE):
  11555. goto _5
  11556. case int32(_LEN):
  11557. goto _6
  11558. case int32(_DONE):
  11559. goto _7
  11560. case int32(_BAD):
  11561. goto _8
  11562. default:
  11563. goto _9
  11564. }
  11565. goto _10
  11566. _3:
  11567. ;
  11568. /* determine and dispatch block type */
  11569. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  11570. hold >>= uint64(bits & uint32(7))
  11571. bits -= bits & uint32(7)
  11572. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  11573. goto _10
  11574. }
  11575. for bits < uint32(libc.Int32FromInt32(3)) {
  11576. if have == uint32(0) {
  11577. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11578. if have == uint32(0) {
  11579. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11580. ret = -int32(5)
  11581. goto inf_leave
  11582. }
  11583. }
  11584. have--
  11585. v11 = *(*uintptr)(unsafe.Pointer(bp))
  11586. *(*uintptr)(unsafe.Pointer(bp))++
  11587. hold += uint64(*(*uint8)(unsafe.Pointer(v11))) << bits
  11588. bits += uint32(8)
  11589. }
  11590. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  11591. hold >>= uint64(libc.Int32FromInt32(1))
  11592. bits -= uint32(libc.Int32FromInt32(1))
  11593. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  11594. case uint32(0): /* stored block */
  11595. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  11596. case uint32(1): /* fixed block */
  11597. _fixedtables(tls, state)
  11598. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  11599. case uint32(2): /* dynamic block */
  11600. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  11601. case uint32(3):
  11602. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  11603. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11604. }
  11605. hold >>= uint64(libc.Int32FromInt32(2))
  11606. bits -= uint32(libc.Int32FromInt32(2))
  11607. goto _10
  11608. _4:
  11609. ;
  11610. /* get and verify stored block length */
  11611. _14:
  11612. ;
  11613. hold >>= uint64(bits & uint32(7))
  11614. bits -= bits & uint32(7)
  11615. goto _13
  11616. _13:
  11617. ;
  11618. if 0 != 0 {
  11619. goto _14
  11620. }
  11621. goto _12
  11622. _12:
  11623. ; /* go to byte boundary */
  11624. for bits < uint32(libc.Int32FromInt32(32)) {
  11625. if have == uint32(0) {
  11626. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11627. if have == uint32(0) {
  11628. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11629. ret = -int32(5)
  11630. goto inf_leave
  11631. }
  11632. }
  11633. have--
  11634. v15 = *(*uintptr)(unsafe.Pointer(bp))
  11635. *(*uintptr)(unsafe.Pointer(bp))++
  11636. hold += uint64(*(*uint8)(unsafe.Pointer(v15))) << bits
  11637. bits += uint32(8)
  11638. }
  11639. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  11640. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  11641. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11642. goto _10
  11643. }
  11644. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  11645. hold = uint64(0)
  11646. bits = uint32(0)
  11647. /* copy stored block from input to output */
  11648. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  11649. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  11650. if have == uint32(0) {
  11651. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11652. if have == uint32(0) {
  11653. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11654. ret = -int32(5)
  11655. goto inf_leave
  11656. }
  11657. }
  11658. if left == uint32(0) {
  11659. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11660. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11661. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11662. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11663. ret = -int32(5)
  11664. goto inf_leave
  11665. }
  11666. }
  11667. if copy1 > have {
  11668. copy1 = have
  11669. }
  11670. if copy1 > left {
  11671. copy1 = left
  11672. }
  11673. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(copy1))
  11674. have -= copy1
  11675. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  11676. left -= copy1
  11677. put += uintptr(copy1)
  11678. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  11679. }
  11680. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  11681. goto _10
  11682. _5:
  11683. ;
  11684. /* get dynamic table entries descriptor */
  11685. for bits < uint32(libc.Int32FromInt32(14)) {
  11686. if have == uint32(0) {
  11687. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11688. if have == uint32(0) {
  11689. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11690. ret = -int32(5)
  11691. goto inf_leave
  11692. }
  11693. }
  11694. have--
  11695. v16 = *(*uintptr)(unsafe.Pointer(bp))
  11696. *(*uintptr)(unsafe.Pointer(bp))++
  11697. hold += uint64(*(*uint8)(unsafe.Pointer(v16))) << bits
  11698. bits += uint32(8)
  11699. }
  11700. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  11701. hold >>= uint64(libc.Int32FromInt32(5))
  11702. bits -= uint32(libc.Int32FromInt32(5))
  11703. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  11704. hold >>= uint64(libc.Int32FromInt32(5))
  11705. bits -= uint32(libc.Int32FromInt32(5))
  11706. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  11707. hold >>= uint64(libc.Int32FromInt32(4))
  11708. bits -= uint32(libc.Int32FromInt32(4))
  11709. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  11710. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  11711. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11712. goto _10
  11713. }
  11714. /* get code length code lengths (not a typo) */
  11715. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  11716. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  11717. for bits < uint32(libc.Int32FromInt32(3)) {
  11718. if have == uint32(0) {
  11719. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11720. if have == uint32(0) {
  11721. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11722. ret = -int32(5)
  11723. goto inf_leave
  11724. }
  11725. }
  11726. have--
  11727. v17 = *(*uintptr)(unsafe.Pointer(bp))
  11728. *(*uintptr)(unsafe.Pointer(bp))++
  11729. hold += uint64(*(*uint8)(unsafe.Pointer(v17))) << bits
  11730. bits += uint32(8)
  11731. }
  11732. v19 = state + 140
  11733. v18 = *(*uint32)(unsafe.Pointer(v19))
  11734. *(*uint32)(unsafe.Pointer(v19))++
  11735. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v18])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  11736. hold >>= uint64(libc.Int32FromInt32(3))
  11737. bits -= uint32(libc.Int32FromInt32(3))
  11738. }
  11739. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  11740. v21 = state + 140
  11741. v20 = *(*uint32)(unsafe.Pointer(v21))
  11742. *(*uint32)(unsafe.Pointer(v21))++
  11743. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order[v20])*2)) = uint16(0)
  11744. }
  11745. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  11746. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11747. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  11748. ret = Xinflate_table(tls, _CODES, state+152, uint32(19), state+144, state+120, state+792)
  11749. if ret != 0 {
  11750. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  11751. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11752. goto _10
  11753. }
  11754. /* get length and distance code code lengths */
  11755. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  11756. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  11757. for {
  11758. 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))
  11759. if uint32(here.Fbits) <= bits {
  11760. break
  11761. }
  11762. if have == uint32(0) {
  11763. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11764. if have == uint32(0) {
  11765. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11766. ret = -int32(5)
  11767. goto inf_leave
  11768. }
  11769. }
  11770. have--
  11771. v23 = *(*uintptr)(unsafe.Pointer(bp))
  11772. *(*uintptr)(unsafe.Pointer(bp))++
  11773. hold += uint64(*(*uint8)(unsafe.Pointer(v23))) << bits
  11774. bits += uint32(8)
  11775. goto _22
  11776. _22:
  11777. }
  11778. if int32(here.Fval) < int32(16) {
  11779. hold >>= uint64(here.Fbits)
  11780. bits -= uint32(here.Fbits)
  11781. v25 = state + 140
  11782. v24 = *(*uint32)(unsafe.Pointer(v25))
  11783. *(*uint32)(unsafe.Pointer(v25))++
  11784. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v24)*2)) = here.Fval
  11785. } else {
  11786. if int32(here.Fval) == int32(16) {
  11787. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  11788. if have == uint32(0) {
  11789. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11790. if have == uint32(0) {
  11791. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11792. ret = -int32(5)
  11793. goto inf_leave
  11794. }
  11795. }
  11796. have--
  11797. v26 = *(*uintptr)(unsafe.Pointer(bp))
  11798. *(*uintptr)(unsafe.Pointer(bp))++
  11799. hold += uint64(*(*uint8)(unsafe.Pointer(v26))) << bits
  11800. bits += uint32(8)
  11801. }
  11802. hold >>= uint64(here.Fbits)
  11803. bits -= uint32(here.Fbits)
  11804. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  11805. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  11806. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11807. break
  11808. }
  11809. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  11810. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  11811. hold >>= uint64(libc.Int32FromInt32(2))
  11812. bits -= uint32(libc.Int32FromInt32(2))
  11813. } else {
  11814. if int32(here.Fval) == int32(17) {
  11815. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  11816. if have == uint32(0) {
  11817. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11818. if have == uint32(0) {
  11819. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11820. ret = -int32(5)
  11821. goto inf_leave
  11822. }
  11823. }
  11824. have--
  11825. v27 = *(*uintptr)(unsafe.Pointer(bp))
  11826. *(*uintptr)(unsafe.Pointer(bp))++
  11827. hold += uint64(*(*uint8)(unsafe.Pointer(v27))) << bits
  11828. bits += uint32(8)
  11829. }
  11830. hold >>= uint64(here.Fbits)
  11831. bits -= uint32(here.Fbits)
  11832. len1 = uint32(0)
  11833. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  11834. hold >>= uint64(libc.Int32FromInt32(3))
  11835. bits -= uint32(libc.Int32FromInt32(3))
  11836. } else {
  11837. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  11838. if have == uint32(0) {
  11839. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11840. if have == uint32(0) {
  11841. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11842. ret = -int32(5)
  11843. goto inf_leave
  11844. }
  11845. }
  11846. have--
  11847. v28 = *(*uintptr)(unsafe.Pointer(bp))
  11848. *(*uintptr)(unsafe.Pointer(bp))++
  11849. hold += uint64(*(*uint8)(unsafe.Pointer(v28))) << bits
  11850. bits += uint32(8)
  11851. }
  11852. hold >>= uint64(here.Fbits)
  11853. bits -= uint32(here.Fbits)
  11854. len1 = uint32(0)
  11855. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  11856. hold >>= uint64(libc.Int32FromInt32(7))
  11857. bits -= uint32(libc.Int32FromInt32(7))
  11858. }
  11859. }
  11860. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  11861. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  11862. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11863. break
  11864. }
  11865. for {
  11866. v29 = copy1
  11867. copy1--
  11868. if !(v29 != 0) {
  11869. break
  11870. }
  11871. v31 = state + 140
  11872. v30 = *(*uint32)(unsafe.Pointer(v31))
  11873. *(*uint32)(unsafe.Pointer(v31))++
  11874. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v30)*2)) = uint16(len1)
  11875. }
  11876. }
  11877. }
  11878. /* handle error breaks in while */
  11879. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  11880. goto _10
  11881. }
  11882. /* check for end-of-block code (better have one) */
  11883. if int32(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  11884. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  11885. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11886. goto _10
  11887. }
  11888. /* build code tables -- note: do not change the lenbits or distbits
  11889. values here (9 and 6) without reading the comments in inftrees.h
  11890. concerning the ENOUGH constants, which depend on those values */
  11891. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  11892. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11893. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  11894. ret = Xinflate_table(tls, _LENS, state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  11895. if ret != 0 {
  11896. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  11897. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11898. goto _10
  11899. }
  11900. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  11901. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  11902. ret = Xinflate_table(tls, _DISTS, state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  11903. if ret != 0 {
  11904. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  11905. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  11906. goto _10
  11907. }
  11908. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  11909. /* fallthrough */
  11910. _6:
  11911. ;
  11912. /* use inflate_fast() if we have enough input and output */
  11913. if have >= uint32(6) && left >= uint32(258) {
  11914. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  11915. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  11916. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  11917. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  11918. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  11919. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  11920. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  11921. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  11922. }
  11923. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  11924. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  11925. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  11926. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  11927. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  11928. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  11929. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  11930. goto _10
  11931. }
  11932. /* get a literal, length, or end-of-block code */
  11933. for {
  11934. 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))
  11935. if uint32(here.Fbits) <= bits {
  11936. break
  11937. }
  11938. if have == uint32(0) {
  11939. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11940. if have == uint32(0) {
  11941. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11942. ret = -int32(5)
  11943. goto inf_leave
  11944. }
  11945. }
  11946. have--
  11947. v33 = *(*uintptr)(unsafe.Pointer(bp))
  11948. *(*uintptr)(unsafe.Pointer(bp))++
  11949. hold += uint64(*(*uint8)(unsafe.Pointer(v33))) << bits
  11950. bits += uint32(8)
  11951. goto _32
  11952. _32:
  11953. }
  11954. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  11955. last = here
  11956. for {
  11957. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  11958. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  11959. break
  11960. }
  11961. if have == uint32(0) {
  11962. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  11963. if have == uint32(0) {
  11964. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  11965. ret = -int32(5)
  11966. goto inf_leave
  11967. }
  11968. }
  11969. have--
  11970. v35 = *(*uintptr)(unsafe.Pointer(bp))
  11971. *(*uintptr)(unsafe.Pointer(bp))++
  11972. hold += uint64(*(*uint8)(unsafe.Pointer(v35))) << bits
  11973. bits += uint32(8)
  11974. goto _34
  11975. _34:
  11976. }
  11977. hold >>= uint64(last.Fbits)
  11978. bits -= uint32(last.Fbits)
  11979. }
  11980. hold >>= uint64(here.Fbits)
  11981. bits -= uint32(here.Fbits)
  11982. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  11983. /* process literal */
  11984. if int32(here.Fop) == 0 {
  11985. if left == uint32(0) {
  11986. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  11987. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  11988. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  11989. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  11990. ret = -int32(5)
  11991. goto inf_leave
  11992. }
  11993. }
  11994. v36 = put
  11995. put++
  11996. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  11997. left--
  11998. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  11999. goto _10
  12000. }
  12001. /* process end of block */
  12002. if int32(here.Fop)&int32(32) != 0 {
  12003. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  12004. goto _10
  12005. }
  12006. /* invalid code */
  12007. if int32(here.Fop)&int32(64) != 0 {
  12008. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  12009. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12010. goto _10
  12011. }
  12012. /* length code -- get extra bits, if any */
  12013. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  12014. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  12015. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  12016. if have == uint32(0) {
  12017. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  12018. if have == uint32(0) {
  12019. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  12020. ret = -int32(5)
  12021. goto inf_leave
  12022. }
  12023. }
  12024. have--
  12025. v37 = *(*uintptr)(unsafe.Pointer(bp))
  12026. *(*uintptr)(unsafe.Pointer(bp))++
  12027. hold += uint64(*(*uint8)(unsafe.Pointer(v37))) << bits
  12028. bits += uint32(8)
  12029. }
  12030. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  12031. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  12032. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  12033. }
  12034. /* get distance code */
  12035. for {
  12036. 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))
  12037. if uint32(here.Fbits) <= bits {
  12038. break
  12039. }
  12040. if have == uint32(0) {
  12041. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  12042. if have == uint32(0) {
  12043. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  12044. ret = -int32(5)
  12045. goto inf_leave
  12046. }
  12047. }
  12048. have--
  12049. v39 = *(*uintptr)(unsafe.Pointer(bp))
  12050. *(*uintptr)(unsafe.Pointer(bp))++
  12051. hold += uint64(*(*uint8)(unsafe.Pointer(v39))) << bits
  12052. bits += uint32(8)
  12053. goto _38
  12054. _38:
  12055. }
  12056. if int32(here.Fop)&int32(0xf0) == 0 {
  12057. last = here
  12058. for {
  12059. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  12060. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  12061. break
  12062. }
  12063. if have == uint32(0) {
  12064. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  12065. if have == uint32(0) {
  12066. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  12067. ret = -int32(5)
  12068. goto inf_leave
  12069. }
  12070. }
  12071. have--
  12072. v41 = *(*uintptr)(unsafe.Pointer(bp))
  12073. *(*uintptr)(unsafe.Pointer(bp))++
  12074. hold += uint64(*(*uint8)(unsafe.Pointer(v41))) << bits
  12075. bits += uint32(8)
  12076. goto _40
  12077. _40:
  12078. }
  12079. hold >>= uint64(last.Fbits)
  12080. bits -= uint32(last.Fbits)
  12081. }
  12082. hold >>= uint64(here.Fbits)
  12083. bits -= uint32(here.Fbits)
  12084. if int32(here.Fop)&int32(64) != 0 {
  12085. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  12086. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12087. goto _10
  12088. }
  12089. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  12090. /* get distance extra bits, if any */
  12091. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  12092. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  12093. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  12094. if have == uint32(0) {
  12095. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  12096. if have == uint32(0) {
  12097. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  12098. ret = -int32(5)
  12099. goto inf_leave
  12100. }
  12101. }
  12102. have--
  12103. v42 = *(*uintptr)(unsafe.Pointer(bp))
  12104. *(*uintptr)(unsafe.Pointer(bp))++
  12105. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  12106. bits += uint32(8)
  12107. }
  12108. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  12109. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  12110. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  12111. }
  12112. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12113. v43 = left
  12114. } else {
  12115. v43 = uint32(0)
  12116. }
  12117. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  12118. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  12119. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12120. goto _10
  12121. }
  12122. /* copy match from window to output */
  12123. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  12124. if left == uint32(0) {
  12125. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  12126. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12127. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  12128. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  12129. ret = -int32(5)
  12130. goto inf_leave
  12131. }
  12132. }
  12133. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  12134. if copy1 < left {
  12135. from = put + uintptr(copy1)
  12136. copy1 = left - copy1
  12137. } else {
  12138. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  12139. copy1 = left
  12140. }
  12141. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  12142. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  12143. }
  12144. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  12145. left -= copy1
  12146. for {
  12147. v46 = put
  12148. put++
  12149. v47 = from
  12150. from++
  12151. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  12152. goto _45
  12153. _45:
  12154. ;
  12155. copy1--
  12156. v44 = copy1
  12157. if !(v44 != 0) {
  12158. break
  12159. }
  12160. }
  12161. }
  12162. goto _10
  12163. _7:
  12164. ;
  12165. /* inflate stream terminated properly */
  12166. ret = int32(m_Z_STREAM_END)
  12167. goto inf_leave
  12168. _8:
  12169. ;
  12170. ret = -int32(3)
  12171. goto inf_leave
  12172. _9:
  12173. ;
  12174. /* can't happen, but makes compilers happy */
  12175. ret = -int32(2)
  12176. goto inf_leave
  12177. _10:
  12178. ;
  12179. goto _2
  12180. _2:
  12181. }
  12182. /* Write leftover output and return unused input */
  12183. inf_leave:
  12184. ;
  12185. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  12186. 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) {
  12187. ret = -int32(5)
  12188. }
  12189. }
  12190. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  12191. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  12192. return ret
  12193. }
  12194. var _order = [19]uint16{
  12195. 0: uint16(16),
  12196. 1: uint16(17),
  12197. 2: uint16(18),
  12198. 4: uint16(8),
  12199. 5: uint16(7),
  12200. 6: uint16(9),
  12201. 7: uint16(6),
  12202. 8: uint16(10),
  12203. 9: uint16(5),
  12204. 10: uint16(11),
  12205. 11: uint16(4),
  12206. 12: uint16(12),
  12207. 13: uint16(3),
  12208. 14: uint16(13),
  12209. 15: uint16(2),
  12210. 16: uint16(14),
  12211. 17: uint16(1),
  12212. 18: uint16(15),
  12213. }
  12214. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12215. 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) {
  12216. return -int32(2)
  12217. }
  12218. (*(*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)
  12219. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  12220. return m_Z_OK
  12221. }
  12222. // C documentation
  12223. //
  12224. // /*
  12225. // Decode literal, length, and distance codes and write out the resulting
  12226. // literal and match bytes until either not enough input or output is
  12227. // available, an end-of-block is encountered, or a data error is encountered.
  12228. // When large enough input and output buffers are supplied to inflate(), for
  12229. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  12230. // inflate execution time is spent in this routine.
  12231. //
  12232. // Entry assumptions:
  12233. //
  12234. // state->mode == LEN
  12235. // strm->avail_in >= 6
  12236. // strm->avail_out >= 258
  12237. // start >= strm->avail_out
  12238. // state->bits < 8
  12239. //
  12240. // On return, state->mode is one of:
  12241. //
  12242. // LEN -- ran out of enough output space or enough available input
  12243. // TYPE -- reached end of block code, inflate() to interpret next block
  12244. // BAD -- error in block data
  12245. //
  12246. // Notes:
  12247. //
  12248. // - The maximum input bits used by a length/distance pair is 15 bits for the
  12249. // length code, 5 bits for the length extra, 15 bits for the distance code,
  12250. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  12251. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  12252. // checking for available input while decoding.
  12253. //
  12254. // - The maximum bytes that a single length/distance pair can output is 258
  12255. // bytes, which is the maximum length that can be coded. inflate_fast()
  12256. // requires strm->avail_out >= 258 for each loop to avoid checking for
  12257. // output space.
  12258. // */
  12259. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  12260. 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
  12261. var bits, dist, dmask, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  12262. var hold uint64
  12263. var v45, v46 int64
  12264. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  12265. /* copy state to local variables */
  12266. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12267. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  12268. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  12269. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  12270. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  12271. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  12272. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  12273. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  12274. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  12275. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  12276. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  12277. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  12278. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  12279. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  12280. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  12281. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  12282. /* decode literals and length/distances until end-of-block or not enough
  12283. input data or output space */
  12284. for cond := true; cond; cond = in < last && out < end {
  12285. if bits < uint32(15) {
  12286. v1 = in
  12287. in++
  12288. hold += uint64(*(*uint8)(unsafe.Pointer(v1))) << bits
  12289. bits += uint32(8)
  12290. v2 = in
  12291. in++
  12292. hold += uint64(*(*uint8)(unsafe.Pointer(v2))) << bits
  12293. bits += uint32(8)
  12294. }
  12295. here = lcode + uintptr(hold&uint64(lmask))*4
  12296. dolen:
  12297. ;
  12298. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  12299. hold >>= uint64(op)
  12300. bits -= op
  12301. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  12302. if op == uint32(0) { /* literal */
  12303. v3 = out
  12304. out++
  12305. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  12306. } else {
  12307. if op&uint32(16) != 0 { /* length base */
  12308. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  12309. op &= uint32(15) /* number of extra bits */
  12310. if op != 0 {
  12311. if bits < op {
  12312. v4 = in
  12313. in++
  12314. hold += uint64(*(*uint8)(unsafe.Pointer(v4))) << bits
  12315. bits += uint32(8)
  12316. }
  12317. len1 += uint32(hold) & (uint32(1)<<op - uint32(1))
  12318. hold >>= uint64(op)
  12319. bits -= op
  12320. }
  12321. if bits < uint32(15) {
  12322. v5 = in
  12323. in++
  12324. hold += uint64(*(*uint8)(unsafe.Pointer(v5))) << bits
  12325. bits += uint32(8)
  12326. v6 = in
  12327. in++
  12328. hold += uint64(*(*uint8)(unsafe.Pointer(v6))) << bits
  12329. bits += uint32(8)
  12330. }
  12331. here = dcode + uintptr(hold&uint64(dmask))*4
  12332. dodist:
  12333. ;
  12334. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  12335. hold >>= uint64(op)
  12336. bits -= op
  12337. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  12338. if op&uint32(16) != 0 { /* distance base */
  12339. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  12340. op &= uint32(15) /* number of extra bits */
  12341. if bits < op {
  12342. v7 = in
  12343. in++
  12344. hold += uint64(*(*uint8)(unsafe.Pointer(v7))) << bits
  12345. bits += uint32(8)
  12346. if bits < op {
  12347. v8 = in
  12348. in++
  12349. hold += uint64(*(*uint8)(unsafe.Pointer(v8))) << bits
  12350. bits += uint32(8)
  12351. }
  12352. }
  12353. dist += uint32(hold) & (uint32(1)<<op - uint32(1))
  12354. hold >>= uint64(op)
  12355. bits -= op
  12356. op = uint32(int64(out) - int64(beg)) /* max distance in output */
  12357. if dist > op { /* see if copy from window */
  12358. op = dist - op /* distance back in window */
  12359. if op > whave {
  12360. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  12361. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  12362. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12363. break
  12364. }
  12365. }
  12366. from = window
  12367. if wnext == uint32(0) { /* very common case */
  12368. from += uintptr(wsize - op)
  12369. if op < len1 { /* some from window */
  12370. len1 -= op
  12371. for {
  12372. v11 = out
  12373. out++
  12374. v12 = from
  12375. from++
  12376. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  12377. goto _10
  12378. _10:
  12379. ;
  12380. op--
  12381. v9 = op
  12382. if !(v9 != 0) {
  12383. break
  12384. }
  12385. }
  12386. from = out - uintptr(dist) /* rest from output */
  12387. }
  12388. } else {
  12389. if wnext < op { /* wrap around window */
  12390. from += uintptr(wsize + wnext - op)
  12391. op -= wnext
  12392. if op < len1 { /* some from end of window */
  12393. len1 -= op
  12394. for {
  12395. v15 = out
  12396. out++
  12397. v16 = from
  12398. from++
  12399. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  12400. goto _14
  12401. _14:
  12402. ;
  12403. op--
  12404. v13 = op
  12405. if !(v13 != 0) {
  12406. break
  12407. }
  12408. }
  12409. from = window
  12410. if wnext < len1 { /* some from start of window */
  12411. op = wnext
  12412. len1 -= op
  12413. for {
  12414. v19 = out
  12415. out++
  12416. v20 = from
  12417. from++
  12418. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  12419. goto _18
  12420. _18:
  12421. ;
  12422. op--
  12423. v17 = op
  12424. if !(v17 != 0) {
  12425. break
  12426. }
  12427. }
  12428. from = out - uintptr(dist) /* rest from output */
  12429. }
  12430. }
  12431. } else { /* contiguous in window */
  12432. from += uintptr(wnext - op)
  12433. if op < len1 { /* some from window */
  12434. len1 -= op
  12435. for {
  12436. v23 = out
  12437. out++
  12438. v24 = from
  12439. from++
  12440. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  12441. goto _22
  12442. _22:
  12443. ;
  12444. op--
  12445. v21 = op
  12446. if !(v21 != 0) {
  12447. break
  12448. }
  12449. }
  12450. from = out - uintptr(dist) /* rest from output */
  12451. }
  12452. }
  12453. }
  12454. for len1 > uint32(2) {
  12455. v25 = out
  12456. out++
  12457. v26 = from
  12458. from++
  12459. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  12460. v27 = out
  12461. out++
  12462. v28 = from
  12463. from++
  12464. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  12465. v29 = out
  12466. out++
  12467. v30 = from
  12468. from++
  12469. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  12470. len1 -= uint32(3)
  12471. }
  12472. if len1 != 0 {
  12473. v31 = out
  12474. out++
  12475. v32 = from
  12476. from++
  12477. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  12478. if len1 > uint32(1) {
  12479. v33 = out
  12480. out++
  12481. v34 = from
  12482. from++
  12483. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  12484. }
  12485. }
  12486. } else {
  12487. from = out - uintptr(dist) /* copy direct from output */
  12488. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  12489. v35 = out
  12490. out++
  12491. v36 = from
  12492. from++
  12493. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  12494. v37 = out
  12495. out++
  12496. v38 = from
  12497. from++
  12498. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  12499. v39 = out
  12500. out++
  12501. v40 = from
  12502. from++
  12503. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  12504. len1 -= uint32(3)
  12505. }
  12506. if len1 != 0 {
  12507. v41 = out
  12508. out++
  12509. v42 = from
  12510. from++
  12511. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  12512. if len1 > uint32(1) {
  12513. v43 = out
  12514. out++
  12515. v44 = from
  12516. from++
  12517. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  12518. }
  12519. }
  12520. }
  12521. } else {
  12522. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  12523. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  12524. goto dodist
  12525. } else {
  12526. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  12527. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12528. break
  12529. }
  12530. }
  12531. } else {
  12532. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  12533. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint64(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  12534. goto dolen
  12535. } else {
  12536. if op&uint32(32) != 0 { /* end-of-block */
  12537. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  12538. break
  12539. } else {
  12540. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  12541. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  12542. break
  12543. }
  12544. }
  12545. }
  12546. }
  12547. }
  12548. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  12549. len1 = bits >> int32(3)
  12550. in -= uintptr(len1)
  12551. bits -= len1 << int32(3)
  12552. hold &= uint64(uint32(1)<<bits - uint32(1))
  12553. /* update state and return */
  12554. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  12555. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  12556. if in < last {
  12557. v45 = int64(5) + (int64(last) - int64(in))
  12558. } else {
  12559. v45 = int64(5) - (int64(in) - int64(last))
  12560. }
  12561. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(v45)
  12562. if out < end {
  12563. v46 = int64(257) + (int64(end) - int64(out))
  12564. } else {
  12565. v46 = int64(257) - (int64(out) - int64(end))
  12566. }
  12567. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = uint32(v46)
  12568. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  12569. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  12570. return
  12571. }
  12572. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12573. var state uintptr
  12574. _ = state
  12575. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  12576. return int32(1)
  12577. }
  12578. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12579. 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) {
  12580. return int32(1)
  12581. }
  12582. return 0
  12583. }
  12584. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12585. var state, v3, v4 uintptr
  12586. var v1 TuLong
  12587. var v2 uint64
  12588. _, _, _, _, _ = state, v1, v2, v3, v4
  12589. if _inflateStateCheck(tls, strm) != 0 {
  12590. return -int32(2)
  12591. }
  12592. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12593. v2 = libc.Uint64FromInt32(0)
  12594. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  12595. v1 = v2
  12596. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  12597. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  12598. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  12599. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  12600. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  12601. }
  12602. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  12603. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  12604. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  12605. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  12606. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  12607. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  12608. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  12609. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  12610. v4 = state + 1368
  12611. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  12612. v3 = v4
  12613. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  12614. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  12615. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  12616. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  12617. return m_Z_OK
  12618. }
  12619. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  12620. var state uintptr
  12621. _ = state
  12622. if _inflateStateCheck(tls, strm) != 0 {
  12623. return -int32(2)
  12624. }
  12625. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12626. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  12627. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  12628. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  12629. return XinflateResetKeep(tls, strm)
  12630. }
  12631. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  12632. var state uintptr
  12633. var wrap int32
  12634. _, _ = state, wrap
  12635. /* get the state */
  12636. if _inflateStateCheck(tls, strm) != 0 {
  12637. return -int32(2)
  12638. }
  12639. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12640. /* extract wrap request from windowBits parameter */
  12641. if windowBits < 0 {
  12642. if windowBits < -int32(15) {
  12643. return -int32(2)
  12644. }
  12645. wrap = 0
  12646. windowBits = -windowBits
  12647. } else {
  12648. wrap = windowBits>>int32(4) + int32(5)
  12649. if windowBits < int32(48) {
  12650. windowBits &= int32(15)
  12651. }
  12652. }
  12653. /* set number of window bits, free window if different */
  12654. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  12655. return -int32(2)
  12656. }
  12657. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != uint32(windowBits) {
  12658. (*(*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)
  12659. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  12660. }
  12661. /* update state and reset the rest of it */
  12662. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  12663. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  12664. return XinflateReset(tls, strm)
  12665. }
  12666. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  12667. var ret int32
  12668. var state uintptr
  12669. _, _ = ret, state
  12670. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(112)) {
  12671. return -int32(6)
  12672. }
  12673. if strm == uintptr(m_Z_NULL) {
  12674. return -int32(2)
  12675. }
  12676. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  12677. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  12678. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  12679. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  12680. }
  12681. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  12682. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  12683. }
  12684. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  12685. if state == uintptr(m_Z_NULL) {
  12686. return -int32(4)
  12687. }
  12688. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  12689. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  12690. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  12691. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  12692. ret = XinflateReset2(tls, strm, windowBits)
  12693. if ret != m_Z_OK {
  12694. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  12695. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  12696. }
  12697. return ret
  12698. }
  12699. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  12700. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  12701. }
  12702. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  12703. var state uintptr
  12704. _ = state
  12705. if _inflateStateCheck(tls, strm) != 0 {
  12706. return -int32(2)
  12707. }
  12708. if bits == 0 {
  12709. return m_Z_OK
  12710. }
  12711. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  12712. if bits < 0 {
  12713. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint64(0)
  12714. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  12715. return m_Z_OK
  12716. }
  12717. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+uint32(bits) > uint32(32) {
  12718. return -int32(2)
  12719. }
  12720. value = int32(int64(value) & (libc.Int64FromInt64(1)<<bits - libc.Int64FromInt32(1)))
  12721. *(*uint64)(unsafe.Pointer(state + 80)) += uint64(uint32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  12722. *(*uint32)(unsafe.Pointer(state + 88)) += uint32(bits)
  12723. return m_Z_OK
  12724. }
  12725. // C documentation
  12726. //
  12727. // /*
  12728. // Return state with length and distance decoding tables and index sizes set to
  12729. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  12730. // If BUILDFIXED is defined, then instead this routine builds the tables the
  12731. // first time it's called, and returns those tables the first time and
  12732. // thereafter. This reduces the size of the code by about 2K bytes, in
  12733. // exchange for a little execution time. However, BUILDFIXED should not be
  12734. // used for threaded applications, since the rewriting of the tables and virgin
  12735. // may not be thread-safe.
  12736. // */
  12737. func _fixedtables1(tls *libc.TLS, state uintptr) {
  12738. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  12739. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  12740. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  12741. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  12742. }
  12743. var _lenfix1 = [512]Tcode{
  12744. 0: {
  12745. Fop: uint8(96),
  12746. Fbits: uint8(7),
  12747. },
  12748. 1: {
  12749. Fbits: uint8(8),
  12750. Fval: uint16(80),
  12751. },
  12752. 2: {
  12753. Fbits: uint8(8),
  12754. Fval: uint16(16),
  12755. },
  12756. 3: {
  12757. Fop: uint8(20),
  12758. Fbits: uint8(8),
  12759. Fval: uint16(115),
  12760. },
  12761. 4: {
  12762. Fop: uint8(18),
  12763. Fbits: uint8(7),
  12764. Fval: uint16(31),
  12765. },
  12766. 5: {
  12767. Fbits: uint8(8),
  12768. Fval: uint16(112),
  12769. },
  12770. 6: {
  12771. Fbits: uint8(8),
  12772. Fval: uint16(48),
  12773. },
  12774. 7: {
  12775. Fbits: uint8(9),
  12776. Fval: uint16(192),
  12777. },
  12778. 8: {
  12779. Fop: uint8(16),
  12780. Fbits: uint8(7),
  12781. Fval: uint16(10),
  12782. },
  12783. 9: {
  12784. Fbits: uint8(8),
  12785. Fval: uint16(96),
  12786. },
  12787. 10: {
  12788. Fbits: uint8(8),
  12789. Fval: uint16(32),
  12790. },
  12791. 11: {
  12792. Fbits: uint8(9),
  12793. Fval: uint16(160),
  12794. },
  12795. 12: {
  12796. Fbits: uint8(8),
  12797. },
  12798. 13: {
  12799. Fbits: uint8(8),
  12800. Fval: uint16(128),
  12801. },
  12802. 14: {
  12803. Fbits: uint8(8),
  12804. Fval: uint16(64),
  12805. },
  12806. 15: {
  12807. Fbits: uint8(9),
  12808. Fval: uint16(224),
  12809. },
  12810. 16: {
  12811. Fop: uint8(16),
  12812. Fbits: uint8(7),
  12813. Fval: uint16(6),
  12814. },
  12815. 17: {
  12816. Fbits: uint8(8),
  12817. Fval: uint16(88),
  12818. },
  12819. 18: {
  12820. Fbits: uint8(8),
  12821. Fval: uint16(24),
  12822. },
  12823. 19: {
  12824. Fbits: uint8(9),
  12825. Fval: uint16(144),
  12826. },
  12827. 20: {
  12828. Fop: uint8(19),
  12829. Fbits: uint8(7),
  12830. Fval: uint16(59),
  12831. },
  12832. 21: {
  12833. Fbits: uint8(8),
  12834. Fval: uint16(120),
  12835. },
  12836. 22: {
  12837. Fbits: uint8(8),
  12838. Fval: uint16(56),
  12839. },
  12840. 23: {
  12841. Fbits: uint8(9),
  12842. Fval: uint16(208),
  12843. },
  12844. 24: {
  12845. Fop: uint8(17),
  12846. Fbits: uint8(7),
  12847. Fval: uint16(17),
  12848. },
  12849. 25: {
  12850. Fbits: uint8(8),
  12851. Fval: uint16(104),
  12852. },
  12853. 26: {
  12854. Fbits: uint8(8),
  12855. Fval: uint16(40),
  12856. },
  12857. 27: {
  12858. Fbits: uint8(9),
  12859. Fval: uint16(176),
  12860. },
  12861. 28: {
  12862. Fbits: uint8(8),
  12863. Fval: uint16(8),
  12864. },
  12865. 29: {
  12866. Fbits: uint8(8),
  12867. Fval: uint16(136),
  12868. },
  12869. 30: {
  12870. Fbits: uint8(8),
  12871. Fval: uint16(72),
  12872. },
  12873. 31: {
  12874. Fbits: uint8(9),
  12875. Fval: uint16(240),
  12876. },
  12877. 32: {
  12878. Fop: uint8(16),
  12879. Fbits: uint8(7),
  12880. Fval: uint16(4),
  12881. },
  12882. 33: {
  12883. Fbits: uint8(8),
  12884. Fval: uint16(84),
  12885. },
  12886. 34: {
  12887. Fbits: uint8(8),
  12888. Fval: uint16(20),
  12889. },
  12890. 35: {
  12891. Fop: uint8(21),
  12892. Fbits: uint8(8),
  12893. Fval: uint16(227),
  12894. },
  12895. 36: {
  12896. Fop: uint8(19),
  12897. Fbits: uint8(7),
  12898. Fval: uint16(43),
  12899. },
  12900. 37: {
  12901. Fbits: uint8(8),
  12902. Fval: uint16(116),
  12903. },
  12904. 38: {
  12905. Fbits: uint8(8),
  12906. Fval: uint16(52),
  12907. },
  12908. 39: {
  12909. Fbits: uint8(9),
  12910. Fval: uint16(200),
  12911. },
  12912. 40: {
  12913. Fop: uint8(17),
  12914. Fbits: uint8(7),
  12915. Fval: uint16(13),
  12916. },
  12917. 41: {
  12918. Fbits: uint8(8),
  12919. Fval: uint16(100),
  12920. },
  12921. 42: {
  12922. Fbits: uint8(8),
  12923. Fval: uint16(36),
  12924. },
  12925. 43: {
  12926. Fbits: uint8(9),
  12927. Fval: uint16(168),
  12928. },
  12929. 44: {
  12930. Fbits: uint8(8),
  12931. Fval: uint16(4),
  12932. },
  12933. 45: {
  12934. Fbits: uint8(8),
  12935. Fval: uint16(132),
  12936. },
  12937. 46: {
  12938. Fbits: uint8(8),
  12939. Fval: uint16(68),
  12940. },
  12941. 47: {
  12942. Fbits: uint8(9),
  12943. Fval: uint16(232),
  12944. },
  12945. 48: {
  12946. Fop: uint8(16),
  12947. Fbits: uint8(7),
  12948. Fval: uint16(8),
  12949. },
  12950. 49: {
  12951. Fbits: uint8(8),
  12952. Fval: uint16(92),
  12953. },
  12954. 50: {
  12955. Fbits: uint8(8),
  12956. Fval: uint16(28),
  12957. },
  12958. 51: {
  12959. Fbits: uint8(9),
  12960. Fval: uint16(152),
  12961. },
  12962. 52: {
  12963. Fop: uint8(20),
  12964. Fbits: uint8(7),
  12965. Fval: uint16(83),
  12966. },
  12967. 53: {
  12968. Fbits: uint8(8),
  12969. Fval: uint16(124),
  12970. },
  12971. 54: {
  12972. Fbits: uint8(8),
  12973. Fval: uint16(60),
  12974. },
  12975. 55: {
  12976. Fbits: uint8(9),
  12977. Fval: uint16(216),
  12978. },
  12979. 56: {
  12980. Fop: uint8(18),
  12981. Fbits: uint8(7),
  12982. Fval: uint16(23),
  12983. },
  12984. 57: {
  12985. Fbits: uint8(8),
  12986. Fval: uint16(108),
  12987. },
  12988. 58: {
  12989. Fbits: uint8(8),
  12990. Fval: uint16(44),
  12991. },
  12992. 59: {
  12993. Fbits: uint8(9),
  12994. Fval: uint16(184),
  12995. },
  12996. 60: {
  12997. Fbits: uint8(8),
  12998. Fval: uint16(12),
  12999. },
  13000. 61: {
  13001. Fbits: uint8(8),
  13002. Fval: uint16(140),
  13003. },
  13004. 62: {
  13005. Fbits: uint8(8),
  13006. Fval: uint16(76),
  13007. },
  13008. 63: {
  13009. Fbits: uint8(9),
  13010. Fval: uint16(248),
  13011. },
  13012. 64: {
  13013. Fop: uint8(16),
  13014. Fbits: uint8(7),
  13015. Fval: uint16(3),
  13016. },
  13017. 65: {
  13018. Fbits: uint8(8),
  13019. Fval: uint16(82),
  13020. },
  13021. 66: {
  13022. Fbits: uint8(8),
  13023. Fval: uint16(18),
  13024. },
  13025. 67: {
  13026. Fop: uint8(21),
  13027. Fbits: uint8(8),
  13028. Fval: uint16(163),
  13029. },
  13030. 68: {
  13031. Fop: uint8(19),
  13032. Fbits: uint8(7),
  13033. Fval: uint16(35),
  13034. },
  13035. 69: {
  13036. Fbits: uint8(8),
  13037. Fval: uint16(114),
  13038. },
  13039. 70: {
  13040. Fbits: uint8(8),
  13041. Fval: uint16(50),
  13042. },
  13043. 71: {
  13044. Fbits: uint8(9),
  13045. Fval: uint16(196),
  13046. },
  13047. 72: {
  13048. Fop: uint8(17),
  13049. Fbits: uint8(7),
  13050. Fval: uint16(11),
  13051. },
  13052. 73: {
  13053. Fbits: uint8(8),
  13054. Fval: uint16(98),
  13055. },
  13056. 74: {
  13057. Fbits: uint8(8),
  13058. Fval: uint16(34),
  13059. },
  13060. 75: {
  13061. Fbits: uint8(9),
  13062. Fval: uint16(164),
  13063. },
  13064. 76: {
  13065. Fbits: uint8(8),
  13066. Fval: uint16(2),
  13067. },
  13068. 77: {
  13069. Fbits: uint8(8),
  13070. Fval: uint16(130),
  13071. },
  13072. 78: {
  13073. Fbits: uint8(8),
  13074. Fval: uint16(66),
  13075. },
  13076. 79: {
  13077. Fbits: uint8(9),
  13078. Fval: uint16(228),
  13079. },
  13080. 80: {
  13081. Fop: uint8(16),
  13082. Fbits: uint8(7),
  13083. Fval: uint16(7),
  13084. },
  13085. 81: {
  13086. Fbits: uint8(8),
  13087. Fval: uint16(90),
  13088. },
  13089. 82: {
  13090. Fbits: uint8(8),
  13091. Fval: uint16(26),
  13092. },
  13093. 83: {
  13094. Fbits: uint8(9),
  13095. Fval: uint16(148),
  13096. },
  13097. 84: {
  13098. Fop: uint8(20),
  13099. Fbits: uint8(7),
  13100. Fval: uint16(67),
  13101. },
  13102. 85: {
  13103. Fbits: uint8(8),
  13104. Fval: uint16(122),
  13105. },
  13106. 86: {
  13107. Fbits: uint8(8),
  13108. Fval: uint16(58),
  13109. },
  13110. 87: {
  13111. Fbits: uint8(9),
  13112. Fval: uint16(212),
  13113. },
  13114. 88: {
  13115. Fop: uint8(18),
  13116. Fbits: uint8(7),
  13117. Fval: uint16(19),
  13118. },
  13119. 89: {
  13120. Fbits: uint8(8),
  13121. Fval: uint16(106),
  13122. },
  13123. 90: {
  13124. Fbits: uint8(8),
  13125. Fval: uint16(42),
  13126. },
  13127. 91: {
  13128. Fbits: uint8(9),
  13129. Fval: uint16(180),
  13130. },
  13131. 92: {
  13132. Fbits: uint8(8),
  13133. Fval: uint16(10),
  13134. },
  13135. 93: {
  13136. Fbits: uint8(8),
  13137. Fval: uint16(138),
  13138. },
  13139. 94: {
  13140. Fbits: uint8(8),
  13141. Fval: uint16(74),
  13142. },
  13143. 95: {
  13144. Fbits: uint8(9),
  13145. Fval: uint16(244),
  13146. },
  13147. 96: {
  13148. Fop: uint8(16),
  13149. Fbits: uint8(7),
  13150. Fval: uint16(5),
  13151. },
  13152. 97: {
  13153. Fbits: uint8(8),
  13154. Fval: uint16(86),
  13155. },
  13156. 98: {
  13157. Fbits: uint8(8),
  13158. Fval: uint16(22),
  13159. },
  13160. 99: {
  13161. Fop: uint8(64),
  13162. Fbits: uint8(8),
  13163. },
  13164. 100: {
  13165. Fop: uint8(19),
  13166. Fbits: uint8(7),
  13167. Fval: uint16(51),
  13168. },
  13169. 101: {
  13170. Fbits: uint8(8),
  13171. Fval: uint16(118),
  13172. },
  13173. 102: {
  13174. Fbits: uint8(8),
  13175. Fval: uint16(54),
  13176. },
  13177. 103: {
  13178. Fbits: uint8(9),
  13179. Fval: uint16(204),
  13180. },
  13181. 104: {
  13182. Fop: uint8(17),
  13183. Fbits: uint8(7),
  13184. Fval: uint16(15),
  13185. },
  13186. 105: {
  13187. Fbits: uint8(8),
  13188. Fval: uint16(102),
  13189. },
  13190. 106: {
  13191. Fbits: uint8(8),
  13192. Fval: uint16(38),
  13193. },
  13194. 107: {
  13195. Fbits: uint8(9),
  13196. Fval: uint16(172),
  13197. },
  13198. 108: {
  13199. Fbits: uint8(8),
  13200. Fval: uint16(6),
  13201. },
  13202. 109: {
  13203. Fbits: uint8(8),
  13204. Fval: uint16(134),
  13205. },
  13206. 110: {
  13207. Fbits: uint8(8),
  13208. Fval: uint16(70),
  13209. },
  13210. 111: {
  13211. Fbits: uint8(9),
  13212. Fval: uint16(236),
  13213. },
  13214. 112: {
  13215. Fop: uint8(16),
  13216. Fbits: uint8(7),
  13217. Fval: uint16(9),
  13218. },
  13219. 113: {
  13220. Fbits: uint8(8),
  13221. Fval: uint16(94),
  13222. },
  13223. 114: {
  13224. Fbits: uint8(8),
  13225. Fval: uint16(30),
  13226. },
  13227. 115: {
  13228. Fbits: uint8(9),
  13229. Fval: uint16(156),
  13230. },
  13231. 116: {
  13232. Fop: uint8(20),
  13233. Fbits: uint8(7),
  13234. Fval: uint16(99),
  13235. },
  13236. 117: {
  13237. Fbits: uint8(8),
  13238. Fval: uint16(126),
  13239. },
  13240. 118: {
  13241. Fbits: uint8(8),
  13242. Fval: uint16(62),
  13243. },
  13244. 119: {
  13245. Fbits: uint8(9),
  13246. Fval: uint16(220),
  13247. },
  13248. 120: {
  13249. Fop: uint8(18),
  13250. Fbits: uint8(7),
  13251. Fval: uint16(27),
  13252. },
  13253. 121: {
  13254. Fbits: uint8(8),
  13255. Fval: uint16(110),
  13256. },
  13257. 122: {
  13258. Fbits: uint8(8),
  13259. Fval: uint16(46),
  13260. },
  13261. 123: {
  13262. Fbits: uint8(9),
  13263. Fval: uint16(188),
  13264. },
  13265. 124: {
  13266. Fbits: uint8(8),
  13267. Fval: uint16(14),
  13268. },
  13269. 125: {
  13270. Fbits: uint8(8),
  13271. Fval: uint16(142),
  13272. },
  13273. 126: {
  13274. Fbits: uint8(8),
  13275. Fval: uint16(78),
  13276. },
  13277. 127: {
  13278. Fbits: uint8(9),
  13279. Fval: uint16(252),
  13280. },
  13281. 128: {
  13282. Fop: uint8(96),
  13283. Fbits: uint8(7),
  13284. },
  13285. 129: {
  13286. Fbits: uint8(8),
  13287. Fval: uint16(81),
  13288. },
  13289. 130: {
  13290. Fbits: uint8(8),
  13291. Fval: uint16(17),
  13292. },
  13293. 131: {
  13294. Fop: uint8(21),
  13295. Fbits: uint8(8),
  13296. Fval: uint16(131),
  13297. },
  13298. 132: {
  13299. Fop: uint8(18),
  13300. Fbits: uint8(7),
  13301. Fval: uint16(31),
  13302. },
  13303. 133: {
  13304. Fbits: uint8(8),
  13305. Fval: uint16(113),
  13306. },
  13307. 134: {
  13308. Fbits: uint8(8),
  13309. Fval: uint16(49),
  13310. },
  13311. 135: {
  13312. Fbits: uint8(9),
  13313. Fval: uint16(194),
  13314. },
  13315. 136: {
  13316. Fop: uint8(16),
  13317. Fbits: uint8(7),
  13318. Fval: uint16(10),
  13319. },
  13320. 137: {
  13321. Fbits: uint8(8),
  13322. Fval: uint16(97),
  13323. },
  13324. 138: {
  13325. Fbits: uint8(8),
  13326. Fval: uint16(33),
  13327. },
  13328. 139: {
  13329. Fbits: uint8(9),
  13330. Fval: uint16(162),
  13331. },
  13332. 140: {
  13333. Fbits: uint8(8),
  13334. Fval: uint16(1),
  13335. },
  13336. 141: {
  13337. Fbits: uint8(8),
  13338. Fval: uint16(129),
  13339. },
  13340. 142: {
  13341. Fbits: uint8(8),
  13342. Fval: uint16(65),
  13343. },
  13344. 143: {
  13345. Fbits: uint8(9),
  13346. Fval: uint16(226),
  13347. },
  13348. 144: {
  13349. Fop: uint8(16),
  13350. Fbits: uint8(7),
  13351. Fval: uint16(6),
  13352. },
  13353. 145: {
  13354. Fbits: uint8(8),
  13355. Fval: uint16(89),
  13356. },
  13357. 146: {
  13358. Fbits: uint8(8),
  13359. Fval: uint16(25),
  13360. },
  13361. 147: {
  13362. Fbits: uint8(9),
  13363. Fval: uint16(146),
  13364. },
  13365. 148: {
  13366. Fop: uint8(19),
  13367. Fbits: uint8(7),
  13368. Fval: uint16(59),
  13369. },
  13370. 149: {
  13371. Fbits: uint8(8),
  13372. Fval: uint16(121),
  13373. },
  13374. 150: {
  13375. Fbits: uint8(8),
  13376. Fval: uint16(57),
  13377. },
  13378. 151: {
  13379. Fbits: uint8(9),
  13380. Fval: uint16(210),
  13381. },
  13382. 152: {
  13383. Fop: uint8(17),
  13384. Fbits: uint8(7),
  13385. Fval: uint16(17),
  13386. },
  13387. 153: {
  13388. Fbits: uint8(8),
  13389. Fval: uint16(105),
  13390. },
  13391. 154: {
  13392. Fbits: uint8(8),
  13393. Fval: uint16(41),
  13394. },
  13395. 155: {
  13396. Fbits: uint8(9),
  13397. Fval: uint16(178),
  13398. },
  13399. 156: {
  13400. Fbits: uint8(8),
  13401. Fval: uint16(9),
  13402. },
  13403. 157: {
  13404. Fbits: uint8(8),
  13405. Fval: uint16(137),
  13406. },
  13407. 158: {
  13408. Fbits: uint8(8),
  13409. Fval: uint16(73),
  13410. },
  13411. 159: {
  13412. Fbits: uint8(9),
  13413. Fval: uint16(242),
  13414. },
  13415. 160: {
  13416. Fop: uint8(16),
  13417. Fbits: uint8(7),
  13418. Fval: uint16(4),
  13419. },
  13420. 161: {
  13421. Fbits: uint8(8),
  13422. Fval: uint16(85),
  13423. },
  13424. 162: {
  13425. Fbits: uint8(8),
  13426. Fval: uint16(21),
  13427. },
  13428. 163: {
  13429. Fop: uint8(16),
  13430. Fbits: uint8(8),
  13431. Fval: uint16(258),
  13432. },
  13433. 164: {
  13434. Fop: uint8(19),
  13435. Fbits: uint8(7),
  13436. Fval: uint16(43),
  13437. },
  13438. 165: {
  13439. Fbits: uint8(8),
  13440. Fval: uint16(117),
  13441. },
  13442. 166: {
  13443. Fbits: uint8(8),
  13444. Fval: uint16(53),
  13445. },
  13446. 167: {
  13447. Fbits: uint8(9),
  13448. Fval: uint16(202),
  13449. },
  13450. 168: {
  13451. Fop: uint8(17),
  13452. Fbits: uint8(7),
  13453. Fval: uint16(13),
  13454. },
  13455. 169: {
  13456. Fbits: uint8(8),
  13457. Fval: uint16(101),
  13458. },
  13459. 170: {
  13460. Fbits: uint8(8),
  13461. Fval: uint16(37),
  13462. },
  13463. 171: {
  13464. Fbits: uint8(9),
  13465. Fval: uint16(170),
  13466. },
  13467. 172: {
  13468. Fbits: uint8(8),
  13469. Fval: uint16(5),
  13470. },
  13471. 173: {
  13472. Fbits: uint8(8),
  13473. Fval: uint16(133),
  13474. },
  13475. 174: {
  13476. Fbits: uint8(8),
  13477. Fval: uint16(69),
  13478. },
  13479. 175: {
  13480. Fbits: uint8(9),
  13481. Fval: uint16(234),
  13482. },
  13483. 176: {
  13484. Fop: uint8(16),
  13485. Fbits: uint8(7),
  13486. Fval: uint16(8),
  13487. },
  13488. 177: {
  13489. Fbits: uint8(8),
  13490. Fval: uint16(93),
  13491. },
  13492. 178: {
  13493. Fbits: uint8(8),
  13494. Fval: uint16(29),
  13495. },
  13496. 179: {
  13497. Fbits: uint8(9),
  13498. Fval: uint16(154),
  13499. },
  13500. 180: {
  13501. Fop: uint8(20),
  13502. Fbits: uint8(7),
  13503. Fval: uint16(83),
  13504. },
  13505. 181: {
  13506. Fbits: uint8(8),
  13507. Fval: uint16(125),
  13508. },
  13509. 182: {
  13510. Fbits: uint8(8),
  13511. Fval: uint16(61),
  13512. },
  13513. 183: {
  13514. Fbits: uint8(9),
  13515. Fval: uint16(218),
  13516. },
  13517. 184: {
  13518. Fop: uint8(18),
  13519. Fbits: uint8(7),
  13520. Fval: uint16(23),
  13521. },
  13522. 185: {
  13523. Fbits: uint8(8),
  13524. Fval: uint16(109),
  13525. },
  13526. 186: {
  13527. Fbits: uint8(8),
  13528. Fval: uint16(45),
  13529. },
  13530. 187: {
  13531. Fbits: uint8(9),
  13532. Fval: uint16(186),
  13533. },
  13534. 188: {
  13535. Fbits: uint8(8),
  13536. Fval: uint16(13),
  13537. },
  13538. 189: {
  13539. Fbits: uint8(8),
  13540. Fval: uint16(141),
  13541. },
  13542. 190: {
  13543. Fbits: uint8(8),
  13544. Fval: uint16(77),
  13545. },
  13546. 191: {
  13547. Fbits: uint8(9),
  13548. Fval: uint16(250),
  13549. },
  13550. 192: {
  13551. Fop: uint8(16),
  13552. Fbits: uint8(7),
  13553. Fval: uint16(3),
  13554. },
  13555. 193: {
  13556. Fbits: uint8(8),
  13557. Fval: uint16(83),
  13558. },
  13559. 194: {
  13560. Fbits: uint8(8),
  13561. Fval: uint16(19),
  13562. },
  13563. 195: {
  13564. Fop: uint8(21),
  13565. Fbits: uint8(8),
  13566. Fval: uint16(195),
  13567. },
  13568. 196: {
  13569. Fop: uint8(19),
  13570. Fbits: uint8(7),
  13571. Fval: uint16(35),
  13572. },
  13573. 197: {
  13574. Fbits: uint8(8),
  13575. Fval: uint16(115),
  13576. },
  13577. 198: {
  13578. Fbits: uint8(8),
  13579. Fval: uint16(51),
  13580. },
  13581. 199: {
  13582. Fbits: uint8(9),
  13583. Fval: uint16(198),
  13584. },
  13585. 200: {
  13586. Fop: uint8(17),
  13587. Fbits: uint8(7),
  13588. Fval: uint16(11),
  13589. },
  13590. 201: {
  13591. Fbits: uint8(8),
  13592. Fval: uint16(99),
  13593. },
  13594. 202: {
  13595. Fbits: uint8(8),
  13596. Fval: uint16(35),
  13597. },
  13598. 203: {
  13599. Fbits: uint8(9),
  13600. Fval: uint16(166),
  13601. },
  13602. 204: {
  13603. Fbits: uint8(8),
  13604. Fval: uint16(3),
  13605. },
  13606. 205: {
  13607. Fbits: uint8(8),
  13608. Fval: uint16(131),
  13609. },
  13610. 206: {
  13611. Fbits: uint8(8),
  13612. Fval: uint16(67),
  13613. },
  13614. 207: {
  13615. Fbits: uint8(9),
  13616. Fval: uint16(230),
  13617. },
  13618. 208: {
  13619. Fop: uint8(16),
  13620. Fbits: uint8(7),
  13621. Fval: uint16(7),
  13622. },
  13623. 209: {
  13624. Fbits: uint8(8),
  13625. Fval: uint16(91),
  13626. },
  13627. 210: {
  13628. Fbits: uint8(8),
  13629. Fval: uint16(27),
  13630. },
  13631. 211: {
  13632. Fbits: uint8(9),
  13633. Fval: uint16(150),
  13634. },
  13635. 212: {
  13636. Fop: uint8(20),
  13637. Fbits: uint8(7),
  13638. Fval: uint16(67),
  13639. },
  13640. 213: {
  13641. Fbits: uint8(8),
  13642. Fval: uint16(123),
  13643. },
  13644. 214: {
  13645. Fbits: uint8(8),
  13646. Fval: uint16(59),
  13647. },
  13648. 215: {
  13649. Fbits: uint8(9),
  13650. Fval: uint16(214),
  13651. },
  13652. 216: {
  13653. Fop: uint8(18),
  13654. Fbits: uint8(7),
  13655. Fval: uint16(19),
  13656. },
  13657. 217: {
  13658. Fbits: uint8(8),
  13659. Fval: uint16(107),
  13660. },
  13661. 218: {
  13662. Fbits: uint8(8),
  13663. Fval: uint16(43),
  13664. },
  13665. 219: {
  13666. Fbits: uint8(9),
  13667. Fval: uint16(182),
  13668. },
  13669. 220: {
  13670. Fbits: uint8(8),
  13671. Fval: uint16(11),
  13672. },
  13673. 221: {
  13674. Fbits: uint8(8),
  13675. Fval: uint16(139),
  13676. },
  13677. 222: {
  13678. Fbits: uint8(8),
  13679. Fval: uint16(75),
  13680. },
  13681. 223: {
  13682. Fbits: uint8(9),
  13683. Fval: uint16(246),
  13684. },
  13685. 224: {
  13686. Fop: uint8(16),
  13687. Fbits: uint8(7),
  13688. Fval: uint16(5),
  13689. },
  13690. 225: {
  13691. Fbits: uint8(8),
  13692. Fval: uint16(87),
  13693. },
  13694. 226: {
  13695. Fbits: uint8(8),
  13696. Fval: uint16(23),
  13697. },
  13698. 227: {
  13699. Fop: uint8(64),
  13700. Fbits: uint8(8),
  13701. },
  13702. 228: {
  13703. Fop: uint8(19),
  13704. Fbits: uint8(7),
  13705. Fval: uint16(51),
  13706. },
  13707. 229: {
  13708. Fbits: uint8(8),
  13709. Fval: uint16(119),
  13710. },
  13711. 230: {
  13712. Fbits: uint8(8),
  13713. Fval: uint16(55),
  13714. },
  13715. 231: {
  13716. Fbits: uint8(9),
  13717. Fval: uint16(206),
  13718. },
  13719. 232: {
  13720. Fop: uint8(17),
  13721. Fbits: uint8(7),
  13722. Fval: uint16(15),
  13723. },
  13724. 233: {
  13725. Fbits: uint8(8),
  13726. Fval: uint16(103),
  13727. },
  13728. 234: {
  13729. Fbits: uint8(8),
  13730. Fval: uint16(39),
  13731. },
  13732. 235: {
  13733. Fbits: uint8(9),
  13734. Fval: uint16(174),
  13735. },
  13736. 236: {
  13737. Fbits: uint8(8),
  13738. Fval: uint16(7),
  13739. },
  13740. 237: {
  13741. Fbits: uint8(8),
  13742. Fval: uint16(135),
  13743. },
  13744. 238: {
  13745. Fbits: uint8(8),
  13746. Fval: uint16(71),
  13747. },
  13748. 239: {
  13749. Fbits: uint8(9),
  13750. Fval: uint16(238),
  13751. },
  13752. 240: {
  13753. Fop: uint8(16),
  13754. Fbits: uint8(7),
  13755. Fval: uint16(9),
  13756. },
  13757. 241: {
  13758. Fbits: uint8(8),
  13759. Fval: uint16(95),
  13760. },
  13761. 242: {
  13762. Fbits: uint8(8),
  13763. Fval: uint16(31),
  13764. },
  13765. 243: {
  13766. Fbits: uint8(9),
  13767. Fval: uint16(158),
  13768. },
  13769. 244: {
  13770. Fop: uint8(20),
  13771. Fbits: uint8(7),
  13772. Fval: uint16(99),
  13773. },
  13774. 245: {
  13775. Fbits: uint8(8),
  13776. Fval: uint16(127),
  13777. },
  13778. 246: {
  13779. Fbits: uint8(8),
  13780. Fval: uint16(63),
  13781. },
  13782. 247: {
  13783. Fbits: uint8(9),
  13784. Fval: uint16(222),
  13785. },
  13786. 248: {
  13787. Fop: uint8(18),
  13788. Fbits: uint8(7),
  13789. Fval: uint16(27),
  13790. },
  13791. 249: {
  13792. Fbits: uint8(8),
  13793. Fval: uint16(111),
  13794. },
  13795. 250: {
  13796. Fbits: uint8(8),
  13797. Fval: uint16(47),
  13798. },
  13799. 251: {
  13800. Fbits: uint8(9),
  13801. Fval: uint16(190),
  13802. },
  13803. 252: {
  13804. Fbits: uint8(8),
  13805. Fval: uint16(15),
  13806. },
  13807. 253: {
  13808. Fbits: uint8(8),
  13809. Fval: uint16(143),
  13810. },
  13811. 254: {
  13812. Fbits: uint8(8),
  13813. Fval: uint16(79),
  13814. },
  13815. 255: {
  13816. Fbits: uint8(9),
  13817. Fval: uint16(254),
  13818. },
  13819. 256: {
  13820. Fop: uint8(96),
  13821. Fbits: uint8(7),
  13822. },
  13823. 257: {
  13824. Fbits: uint8(8),
  13825. Fval: uint16(80),
  13826. },
  13827. 258: {
  13828. Fbits: uint8(8),
  13829. Fval: uint16(16),
  13830. },
  13831. 259: {
  13832. Fop: uint8(20),
  13833. Fbits: uint8(8),
  13834. Fval: uint16(115),
  13835. },
  13836. 260: {
  13837. Fop: uint8(18),
  13838. Fbits: uint8(7),
  13839. Fval: uint16(31),
  13840. },
  13841. 261: {
  13842. Fbits: uint8(8),
  13843. Fval: uint16(112),
  13844. },
  13845. 262: {
  13846. Fbits: uint8(8),
  13847. Fval: uint16(48),
  13848. },
  13849. 263: {
  13850. Fbits: uint8(9),
  13851. Fval: uint16(193),
  13852. },
  13853. 264: {
  13854. Fop: uint8(16),
  13855. Fbits: uint8(7),
  13856. Fval: uint16(10),
  13857. },
  13858. 265: {
  13859. Fbits: uint8(8),
  13860. Fval: uint16(96),
  13861. },
  13862. 266: {
  13863. Fbits: uint8(8),
  13864. Fval: uint16(32),
  13865. },
  13866. 267: {
  13867. Fbits: uint8(9),
  13868. Fval: uint16(161),
  13869. },
  13870. 268: {
  13871. Fbits: uint8(8),
  13872. },
  13873. 269: {
  13874. Fbits: uint8(8),
  13875. Fval: uint16(128),
  13876. },
  13877. 270: {
  13878. Fbits: uint8(8),
  13879. Fval: uint16(64),
  13880. },
  13881. 271: {
  13882. Fbits: uint8(9),
  13883. Fval: uint16(225),
  13884. },
  13885. 272: {
  13886. Fop: uint8(16),
  13887. Fbits: uint8(7),
  13888. Fval: uint16(6),
  13889. },
  13890. 273: {
  13891. Fbits: uint8(8),
  13892. Fval: uint16(88),
  13893. },
  13894. 274: {
  13895. Fbits: uint8(8),
  13896. Fval: uint16(24),
  13897. },
  13898. 275: {
  13899. Fbits: uint8(9),
  13900. Fval: uint16(145),
  13901. },
  13902. 276: {
  13903. Fop: uint8(19),
  13904. Fbits: uint8(7),
  13905. Fval: uint16(59),
  13906. },
  13907. 277: {
  13908. Fbits: uint8(8),
  13909. Fval: uint16(120),
  13910. },
  13911. 278: {
  13912. Fbits: uint8(8),
  13913. Fval: uint16(56),
  13914. },
  13915. 279: {
  13916. Fbits: uint8(9),
  13917. Fval: uint16(209),
  13918. },
  13919. 280: {
  13920. Fop: uint8(17),
  13921. Fbits: uint8(7),
  13922. Fval: uint16(17),
  13923. },
  13924. 281: {
  13925. Fbits: uint8(8),
  13926. Fval: uint16(104),
  13927. },
  13928. 282: {
  13929. Fbits: uint8(8),
  13930. Fval: uint16(40),
  13931. },
  13932. 283: {
  13933. Fbits: uint8(9),
  13934. Fval: uint16(177),
  13935. },
  13936. 284: {
  13937. Fbits: uint8(8),
  13938. Fval: uint16(8),
  13939. },
  13940. 285: {
  13941. Fbits: uint8(8),
  13942. Fval: uint16(136),
  13943. },
  13944. 286: {
  13945. Fbits: uint8(8),
  13946. Fval: uint16(72),
  13947. },
  13948. 287: {
  13949. Fbits: uint8(9),
  13950. Fval: uint16(241),
  13951. },
  13952. 288: {
  13953. Fop: uint8(16),
  13954. Fbits: uint8(7),
  13955. Fval: uint16(4),
  13956. },
  13957. 289: {
  13958. Fbits: uint8(8),
  13959. Fval: uint16(84),
  13960. },
  13961. 290: {
  13962. Fbits: uint8(8),
  13963. Fval: uint16(20),
  13964. },
  13965. 291: {
  13966. Fop: uint8(21),
  13967. Fbits: uint8(8),
  13968. Fval: uint16(227),
  13969. },
  13970. 292: {
  13971. Fop: uint8(19),
  13972. Fbits: uint8(7),
  13973. Fval: uint16(43),
  13974. },
  13975. 293: {
  13976. Fbits: uint8(8),
  13977. Fval: uint16(116),
  13978. },
  13979. 294: {
  13980. Fbits: uint8(8),
  13981. Fval: uint16(52),
  13982. },
  13983. 295: {
  13984. Fbits: uint8(9),
  13985. Fval: uint16(201),
  13986. },
  13987. 296: {
  13988. Fop: uint8(17),
  13989. Fbits: uint8(7),
  13990. Fval: uint16(13),
  13991. },
  13992. 297: {
  13993. Fbits: uint8(8),
  13994. Fval: uint16(100),
  13995. },
  13996. 298: {
  13997. Fbits: uint8(8),
  13998. Fval: uint16(36),
  13999. },
  14000. 299: {
  14001. Fbits: uint8(9),
  14002. Fval: uint16(169),
  14003. },
  14004. 300: {
  14005. Fbits: uint8(8),
  14006. Fval: uint16(4),
  14007. },
  14008. 301: {
  14009. Fbits: uint8(8),
  14010. Fval: uint16(132),
  14011. },
  14012. 302: {
  14013. Fbits: uint8(8),
  14014. Fval: uint16(68),
  14015. },
  14016. 303: {
  14017. Fbits: uint8(9),
  14018. Fval: uint16(233),
  14019. },
  14020. 304: {
  14021. Fop: uint8(16),
  14022. Fbits: uint8(7),
  14023. Fval: uint16(8),
  14024. },
  14025. 305: {
  14026. Fbits: uint8(8),
  14027. Fval: uint16(92),
  14028. },
  14029. 306: {
  14030. Fbits: uint8(8),
  14031. Fval: uint16(28),
  14032. },
  14033. 307: {
  14034. Fbits: uint8(9),
  14035. Fval: uint16(153),
  14036. },
  14037. 308: {
  14038. Fop: uint8(20),
  14039. Fbits: uint8(7),
  14040. Fval: uint16(83),
  14041. },
  14042. 309: {
  14043. Fbits: uint8(8),
  14044. Fval: uint16(124),
  14045. },
  14046. 310: {
  14047. Fbits: uint8(8),
  14048. Fval: uint16(60),
  14049. },
  14050. 311: {
  14051. Fbits: uint8(9),
  14052. Fval: uint16(217),
  14053. },
  14054. 312: {
  14055. Fop: uint8(18),
  14056. Fbits: uint8(7),
  14057. Fval: uint16(23),
  14058. },
  14059. 313: {
  14060. Fbits: uint8(8),
  14061. Fval: uint16(108),
  14062. },
  14063. 314: {
  14064. Fbits: uint8(8),
  14065. Fval: uint16(44),
  14066. },
  14067. 315: {
  14068. Fbits: uint8(9),
  14069. Fval: uint16(185),
  14070. },
  14071. 316: {
  14072. Fbits: uint8(8),
  14073. Fval: uint16(12),
  14074. },
  14075. 317: {
  14076. Fbits: uint8(8),
  14077. Fval: uint16(140),
  14078. },
  14079. 318: {
  14080. Fbits: uint8(8),
  14081. Fval: uint16(76),
  14082. },
  14083. 319: {
  14084. Fbits: uint8(9),
  14085. Fval: uint16(249),
  14086. },
  14087. 320: {
  14088. Fop: uint8(16),
  14089. Fbits: uint8(7),
  14090. Fval: uint16(3),
  14091. },
  14092. 321: {
  14093. Fbits: uint8(8),
  14094. Fval: uint16(82),
  14095. },
  14096. 322: {
  14097. Fbits: uint8(8),
  14098. Fval: uint16(18),
  14099. },
  14100. 323: {
  14101. Fop: uint8(21),
  14102. Fbits: uint8(8),
  14103. Fval: uint16(163),
  14104. },
  14105. 324: {
  14106. Fop: uint8(19),
  14107. Fbits: uint8(7),
  14108. Fval: uint16(35),
  14109. },
  14110. 325: {
  14111. Fbits: uint8(8),
  14112. Fval: uint16(114),
  14113. },
  14114. 326: {
  14115. Fbits: uint8(8),
  14116. Fval: uint16(50),
  14117. },
  14118. 327: {
  14119. Fbits: uint8(9),
  14120. Fval: uint16(197),
  14121. },
  14122. 328: {
  14123. Fop: uint8(17),
  14124. Fbits: uint8(7),
  14125. Fval: uint16(11),
  14126. },
  14127. 329: {
  14128. Fbits: uint8(8),
  14129. Fval: uint16(98),
  14130. },
  14131. 330: {
  14132. Fbits: uint8(8),
  14133. Fval: uint16(34),
  14134. },
  14135. 331: {
  14136. Fbits: uint8(9),
  14137. Fval: uint16(165),
  14138. },
  14139. 332: {
  14140. Fbits: uint8(8),
  14141. Fval: uint16(2),
  14142. },
  14143. 333: {
  14144. Fbits: uint8(8),
  14145. Fval: uint16(130),
  14146. },
  14147. 334: {
  14148. Fbits: uint8(8),
  14149. Fval: uint16(66),
  14150. },
  14151. 335: {
  14152. Fbits: uint8(9),
  14153. Fval: uint16(229),
  14154. },
  14155. 336: {
  14156. Fop: uint8(16),
  14157. Fbits: uint8(7),
  14158. Fval: uint16(7),
  14159. },
  14160. 337: {
  14161. Fbits: uint8(8),
  14162. Fval: uint16(90),
  14163. },
  14164. 338: {
  14165. Fbits: uint8(8),
  14166. Fval: uint16(26),
  14167. },
  14168. 339: {
  14169. Fbits: uint8(9),
  14170. Fval: uint16(149),
  14171. },
  14172. 340: {
  14173. Fop: uint8(20),
  14174. Fbits: uint8(7),
  14175. Fval: uint16(67),
  14176. },
  14177. 341: {
  14178. Fbits: uint8(8),
  14179. Fval: uint16(122),
  14180. },
  14181. 342: {
  14182. Fbits: uint8(8),
  14183. Fval: uint16(58),
  14184. },
  14185. 343: {
  14186. Fbits: uint8(9),
  14187. Fval: uint16(213),
  14188. },
  14189. 344: {
  14190. Fop: uint8(18),
  14191. Fbits: uint8(7),
  14192. Fval: uint16(19),
  14193. },
  14194. 345: {
  14195. Fbits: uint8(8),
  14196. Fval: uint16(106),
  14197. },
  14198. 346: {
  14199. Fbits: uint8(8),
  14200. Fval: uint16(42),
  14201. },
  14202. 347: {
  14203. Fbits: uint8(9),
  14204. Fval: uint16(181),
  14205. },
  14206. 348: {
  14207. Fbits: uint8(8),
  14208. Fval: uint16(10),
  14209. },
  14210. 349: {
  14211. Fbits: uint8(8),
  14212. Fval: uint16(138),
  14213. },
  14214. 350: {
  14215. Fbits: uint8(8),
  14216. Fval: uint16(74),
  14217. },
  14218. 351: {
  14219. Fbits: uint8(9),
  14220. Fval: uint16(245),
  14221. },
  14222. 352: {
  14223. Fop: uint8(16),
  14224. Fbits: uint8(7),
  14225. Fval: uint16(5),
  14226. },
  14227. 353: {
  14228. Fbits: uint8(8),
  14229. Fval: uint16(86),
  14230. },
  14231. 354: {
  14232. Fbits: uint8(8),
  14233. Fval: uint16(22),
  14234. },
  14235. 355: {
  14236. Fop: uint8(64),
  14237. Fbits: uint8(8),
  14238. },
  14239. 356: {
  14240. Fop: uint8(19),
  14241. Fbits: uint8(7),
  14242. Fval: uint16(51),
  14243. },
  14244. 357: {
  14245. Fbits: uint8(8),
  14246. Fval: uint16(118),
  14247. },
  14248. 358: {
  14249. Fbits: uint8(8),
  14250. Fval: uint16(54),
  14251. },
  14252. 359: {
  14253. Fbits: uint8(9),
  14254. Fval: uint16(205),
  14255. },
  14256. 360: {
  14257. Fop: uint8(17),
  14258. Fbits: uint8(7),
  14259. Fval: uint16(15),
  14260. },
  14261. 361: {
  14262. Fbits: uint8(8),
  14263. Fval: uint16(102),
  14264. },
  14265. 362: {
  14266. Fbits: uint8(8),
  14267. Fval: uint16(38),
  14268. },
  14269. 363: {
  14270. Fbits: uint8(9),
  14271. Fval: uint16(173),
  14272. },
  14273. 364: {
  14274. Fbits: uint8(8),
  14275. Fval: uint16(6),
  14276. },
  14277. 365: {
  14278. Fbits: uint8(8),
  14279. Fval: uint16(134),
  14280. },
  14281. 366: {
  14282. Fbits: uint8(8),
  14283. Fval: uint16(70),
  14284. },
  14285. 367: {
  14286. Fbits: uint8(9),
  14287. Fval: uint16(237),
  14288. },
  14289. 368: {
  14290. Fop: uint8(16),
  14291. Fbits: uint8(7),
  14292. Fval: uint16(9),
  14293. },
  14294. 369: {
  14295. Fbits: uint8(8),
  14296. Fval: uint16(94),
  14297. },
  14298. 370: {
  14299. Fbits: uint8(8),
  14300. Fval: uint16(30),
  14301. },
  14302. 371: {
  14303. Fbits: uint8(9),
  14304. Fval: uint16(157),
  14305. },
  14306. 372: {
  14307. Fop: uint8(20),
  14308. Fbits: uint8(7),
  14309. Fval: uint16(99),
  14310. },
  14311. 373: {
  14312. Fbits: uint8(8),
  14313. Fval: uint16(126),
  14314. },
  14315. 374: {
  14316. Fbits: uint8(8),
  14317. Fval: uint16(62),
  14318. },
  14319. 375: {
  14320. Fbits: uint8(9),
  14321. Fval: uint16(221),
  14322. },
  14323. 376: {
  14324. Fop: uint8(18),
  14325. Fbits: uint8(7),
  14326. Fval: uint16(27),
  14327. },
  14328. 377: {
  14329. Fbits: uint8(8),
  14330. Fval: uint16(110),
  14331. },
  14332. 378: {
  14333. Fbits: uint8(8),
  14334. Fval: uint16(46),
  14335. },
  14336. 379: {
  14337. Fbits: uint8(9),
  14338. Fval: uint16(189),
  14339. },
  14340. 380: {
  14341. Fbits: uint8(8),
  14342. Fval: uint16(14),
  14343. },
  14344. 381: {
  14345. Fbits: uint8(8),
  14346. Fval: uint16(142),
  14347. },
  14348. 382: {
  14349. Fbits: uint8(8),
  14350. Fval: uint16(78),
  14351. },
  14352. 383: {
  14353. Fbits: uint8(9),
  14354. Fval: uint16(253),
  14355. },
  14356. 384: {
  14357. Fop: uint8(96),
  14358. Fbits: uint8(7),
  14359. },
  14360. 385: {
  14361. Fbits: uint8(8),
  14362. Fval: uint16(81),
  14363. },
  14364. 386: {
  14365. Fbits: uint8(8),
  14366. Fval: uint16(17),
  14367. },
  14368. 387: {
  14369. Fop: uint8(21),
  14370. Fbits: uint8(8),
  14371. Fval: uint16(131),
  14372. },
  14373. 388: {
  14374. Fop: uint8(18),
  14375. Fbits: uint8(7),
  14376. Fval: uint16(31),
  14377. },
  14378. 389: {
  14379. Fbits: uint8(8),
  14380. Fval: uint16(113),
  14381. },
  14382. 390: {
  14383. Fbits: uint8(8),
  14384. Fval: uint16(49),
  14385. },
  14386. 391: {
  14387. Fbits: uint8(9),
  14388. Fval: uint16(195),
  14389. },
  14390. 392: {
  14391. Fop: uint8(16),
  14392. Fbits: uint8(7),
  14393. Fval: uint16(10),
  14394. },
  14395. 393: {
  14396. Fbits: uint8(8),
  14397. Fval: uint16(97),
  14398. },
  14399. 394: {
  14400. Fbits: uint8(8),
  14401. Fval: uint16(33),
  14402. },
  14403. 395: {
  14404. Fbits: uint8(9),
  14405. Fval: uint16(163),
  14406. },
  14407. 396: {
  14408. Fbits: uint8(8),
  14409. Fval: uint16(1),
  14410. },
  14411. 397: {
  14412. Fbits: uint8(8),
  14413. Fval: uint16(129),
  14414. },
  14415. 398: {
  14416. Fbits: uint8(8),
  14417. Fval: uint16(65),
  14418. },
  14419. 399: {
  14420. Fbits: uint8(9),
  14421. Fval: uint16(227),
  14422. },
  14423. 400: {
  14424. Fop: uint8(16),
  14425. Fbits: uint8(7),
  14426. Fval: uint16(6),
  14427. },
  14428. 401: {
  14429. Fbits: uint8(8),
  14430. Fval: uint16(89),
  14431. },
  14432. 402: {
  14433. Fbits: uint8(8),
  14434. Fval: uint16(25),
  14435. },
  14436. 403: {
  14437. Fbits: uint8(9),
  14438. Fval: uint16(147),
  14439. },
  14440. 404: {
  14441. Fop: uint8(19),
  14442. Fbits: uint8(7),
  14443. Fval: uint16(59),
  14444. },
  14445. 405: {
  14446. Fbits: uint8(8),
  14447. Fval: uint16(121),
  14448. },
  14449. 406: {
  14450. Fbits: uint8(8),
  14451. Fval: uint16(57),
  14452. },
  14453. 407: {
  14454. Fbits: uint8(9),
  14455. Fval: uint16(211),
  14456. },
  14457. 408: {
  14458. Fop: uint8(17),
  14459. Fbits: uint8(7),
  14460. Fval: uint16(17),
  14461. },
  14462. 409: {
  14463. Fbits: uint8(8),
  14464. Fval: uint16(105),
  14465. },
  14466. 410: {
  14467. Fbits: uint8(8),
  14468. Fval: uint16(41),
  14469. },
  14470. 411: {
  14471. Fbits: uint8(9),
  14472. Fval: uint16(179),
  14473. },
  14474. 412: {
  14475. Fbits: uint8(8),
  14476. Fval: uint16(9),
  14477. },
  14478. 413: {
  14479. Fbits: uint8(8),
  14480. Fval: uint16(137),
  14481. },
  14482. 414: {
  14483. Fbits: uint8(8),
  14484. Fval: uint16(73),
  14485. },
  14486. 415: {
  14487. Fbits: uint8(9),
  14488. Fval: uint16(243),
  14489. },
  14490. 416: {
  14491. Fop: uint8(16),
  14492. Fbits: uint8(7),
  14493. Fval: uint16(4),
  14494. },
  14495. 417: {
  14496. Fbits: uint8(8),
  14497. Fval: uint16(85),
  14498. },
  14499. 418: {
  14500. Fbits: uint8(8),
  14501. Fval: uint16(21),
  14502. },
  14503. 419: {
  14504. Fop: uint8(16),
  14505. Fbits: uint8(8),
  14506. Fval: uint16(258),
  14507. },
  14508. 420: {
  14509. Fop: uint8(19),
  14510. Fbits: uint8(7),
  14511. Fval: uint16(43),
  14512. },
  14513. 421: {
  14514. Fbits: uint8(8),
  14515. Fval: uint16(117),
  14516. },
  14517. 422: {
  14518. Fbits: uint8(8),
  14519. Fval: uint16(53),
  14520. },
  14521. 423: {
  14522. Fbits: uint8(9),
  14523. Fval: uint16(203),
  14524. },
  14525. 424: {
  14526. Fop: uint8(17),
  14527. Fbits: uint8(7),
  14528. Fval: uint16(13),
  14529. },
  14530. 425: {
  14531. Fbits: uint8(8),
  14532. Fval: uint16(101),
  14533. },
  14534. 426: {
  14535. Fbits: uint8(8),
  14536. Fval: uint16(37),
  14537. },
  14538. 427: {
  14539. Fbits: uint8(9),
  14540. Fval: uint16(171),
  14541. },
  14542. 428: {
  14543. Fbits: uint8(8),
  14544. Fval: uint16(5),
  14545. },
  14546. 429: {
  14547. Fbits: uint8(8),
  14548. Fval: uint16(133),
  14549. },
  14550. 430: {
  14551. Fbits: uint8(8),
  14552. Fval: uint16(69),
  14553. },
  14554. 431: {
  14555. Fbits: uint8(9),
  14556. Fval: uint16(235),
  14557. },
  14558. 432: {
  14559. Fop: uint8(16),
  14560. Fbits: uint8(7),
  14561. Fval: uint16(8),
  14562. },
  14563. 433: {
  14564. Fbits: uint8(8),
  14565. Fval: uint16(93),
  14566. },
  14567. 434: {
  14568. Fbits: uint8(8),
  14569. Fval: uint16(29),
  14570. },
  14571. 435: {
  14572. Fbits: uint8(9),
  14573. Fval: uint16(155),
  14574. },
  14575. 436: {
  14576. Fop: uint8(20),
  14577. Fbits: uint8(7),
  14578. Fval: uint16(83),
  14579. },
  14580. 437: {
  14581. Fbits: uint8(8),
  14582. Fval: uint16(125),
  14583. },
  14584. 438: {
  14585. Fbits: uint8(8),
  14586. Fval: uint16(61),
  14587. },
  14588. 439: {
  14589. Fbits: uint8(9),
  14590. Fval: uint16(219),
  14591. },
  14592. 440: {
  14593. Fop: uint8(18),
  14594. Fbits: uint8(7),
  14595. Fval: uint16(23),
  14596. },
  14597. 441: {
  14598. Fbits: uint8(8),
  14599. Fval: uint16(109),
  14600. },
  14601. 442: {
  14602. Fbits: uint8(8),
  14603. Fval: uint16(45),
  14604. },
  14605. 443: {
  14606. Fbits: uint8(9),
  14607. Fval: uint16(187),
  14608. },
  14609. 444: {
  14610. Fbits: uint8(8),
  14611. Fval: uint16(13),
  14612. },
  14613. 445: {
  14614. Fbits: uint8(8),
  14615. Fval: uint16(141),
  14616. },
  14617. 446: {
  14618. Fbits: uint8(8),
  14619. Fval: uint16(77),
  14620. },
  14621. 447: {
  14622. Fbits: uint8(9),
  14623. Fval: uint16(251),
  14624. },
  14625. 448: {
  14626. Fop: uint8(16),
  14627. Fbits: uint8(7),
  14628. Fval: uint16(3),
  14629. },
  14630. 449: {
  14631. Fbits: uint8(8),
  14632. Fval: uint16(83),
  14633. },
  14634. 450: {
  14635. Fbits: uint8(8),
  14636. Fval: uint16(19),
  14637. },
  14638. 451: {
  14639. Fop: uint8(21),
  14640. Fbits: uint8(8),
  14641. Fval: uint16(195),
  14642. },
  14643. 452: {
  14644. Fop: uint8(19),
  14645. Fbits: uint8(7),
  14646. Fval: uint16(35),
  14647. },
  14648. 453: {
  14649. Fbits: uint8(8),
  14650. Fval: uint16(115),
  14651. },
  14652. 454: {
  14653. Fbits: uint8(8),
  14654. Fval: uint16(51),
  14655. },
  14656. 455: {
  14657. Fbits: uint8(9),
  14658. Fval: uint16(199),
  14659. },
  14660. 456: {
  14661. Fop: uint8(17),
  14662. Fbits: uint8(7),
  14663. Fval: uint16(11),
  14664. },
  14665. 457: {
  14666. Fbits: uint8(8),
  14667. Fval: uint16(99),
  14668. },
  14669. 458: {
  14670. Fbits: uint8(8),
  14671. Fval: uint16(35),
  14672. },
  14673. 459: {
  14674. Fbits: uint8(9),
  14675. Fval: uint16(167),
  14676. },
  14677. 460: {
  14678. Fbits: uint8(8),
  14679. Fval: uint16(3),
  14680. },
  14681. 461: {
  14682. Fbits: uint8(8),
  14683. Fval: uint16(131),
  14684. },
  14685. 462: {
  14686. Fbits: uint8(8),
  14687. Fval: uint16(67),
  14688. },
  14689. 463: {
  14690. Fbits: uint8(9),
  14691. Fval: uint16(231),
  14692. },
  14693. 464: {
  14694. Fop: uint8(16),
  14695. Fbits: uint8(7),
  14696. Fval: uint16(7),
  14697. },
  14698. 465: {
  14699. Fbits: uint8(8),
  14700. Fval: uint16(91),
  14701. },
  14702. 466: {
  14703. Fbits: uint8(8),
  14704. Fval: uint16(27),
  14705. },
  14706. 467: {
  14707. Fbits: uint8(9),
  14708. Fval: uint16(151),
  14709. },
  14710. 468: {
  14711. Fop: uint8(20),
  14712. Fbits: uint8(7),
  14713. Fval: uint16(67),
  14714. },
  14715. 469: {
  14716. Fbits: uint8(8),
  14717. Fval: uint16(123),
  14718. },
  14719. 470: {
  14720. Fbits: uint8(8),
  14721. Fval: uint16(59),
  14722. },
  14723. 471: {
  14724. Fbits: uint8(9),
  14725. Fval: uint16(215),
  14726. },
  14727. 472: {
  14728. Fop: uint8(18),
  14729. Fbits: uint8(7),
  14730. Fval: uint16(19),
  14731. },
  14732. 473: {
  14733. Fbits: uint8(8),
  14734. Fval: uint16(107),
  14735. },
  14736. 474: {
  14737. Fbits: uint8(8),
  14738. Fval: uint16(43),
  14739. },
  14740. 475: {
  14741. Fbits: uint8(9),
  14742. Fval: uint16(183),
  14743. },
  14744. 476: {
  14745. Fbits: uint8(8),
  14746. Fval: uint16(11),
  14747. },
  14748. 477: {
  14749. Fbits: uint8(8),
  14750. Fval: uint16(139),
  14751. },
  14752. 478: {
  14753. Fbits: uint8(8),
  14754. Fval: uint16(75),
  14755. },
  14756. 479: {
  14757. Fbits: uint8(9),
  14758. Fval: uint16(247),
  14759. },
  14760. 480: {
  14761. Fop: uint8(16),
  14762. Fbits: uint8(7),
  14763. Fval: uint16(5),
  14764. },
  14765. 481: {
  14766. Fbits: uint8(8),
  14767. Fval: uint16(87),
  14768. },
  14769. 482: {
  14770. Fbits: uint8(8),
  14771. Fval: uint16(23),
  14772. },
  14773. 483: {
  14774. Fop: uint8(64),
  14775. Fbits: uint8(8),
  14776. },
  14777. 484: {
  14778. Fop: uint8(19),
  14779. Fbits: uint8(7),
  14780. Fval: uint16(51),
  14781. },
  14782. 485: {
  14783. Fbits: uint8(8),
  14784. Fval: uint16(119),
  14785. },
  14786. 486: {
  14787. Fbits: uint8(8),
  14788. Fval: uint16(55),
  14789. },
  14790. 487: {
  14791. Fbits: uint8(9),
  14792. Fval: uint16(207),
  14793. },
  14794. 488: {
  14795. Fop: uint8(17),
  14796. Fbits: uint8(7),
  14797. Fval: uint16(15),
  14798. },
  14799. 489: {
  14800. Fbits: uint8(8),
  14801. Fval: uint16(103),
  14802. },
  14803. 490: {
  14804. Fbits: uint8(8),
  14805. Fval: uint16(39),
  14806. },
  14807. 491: {
  14808. Fbits: uint8(9),
  14809. Fval: uint16(175),
  14810. },
  14811. 492: {
  14812. Fbits: uint8(8),
  14813. Fval: uint16(7),
  14814. },
  14815. 493: {
  14816. Fbits: uint8(8),
  14817. Fval: uint16(135),
  14818. },
  14819. 494: {
  14820. Fbits: uint8(8),
  14821. Fval: uint16(71),
  14822. },
  14823. 495: {
  14824. Fbits: uint8(9),
  14825. Fval: uint16(239),
  14826. },
  14827. 496: {
  14828. Fop: uint8(16),
  14829. Fbits: uint8(7),
  14830. Fval: uint16(9),
  14831. },
  14832. 497: {
  14833. Fbits: uint8(8),
  14834. Fval: uint16(95),
  14835. },
  14836. 498: {
  14837. Fbits: uint8(8),
  14838. Fval: uint16(31),
  14839. },
  14840. 499: {
  14841. Fbits: uint8(9),
  14842. Fval: uint16(159),
  14843. },
  14844. 500: {
  14845. Fop: uint8(20),
  14846. Fbits: uint8(7),
  14847. Fval: uint16(99),
  14848. },
  14849. 501: {
  14850. Fbits: uint8(8),
  14851. Fval: uint16(127),
  14852. },
  14853. 502: {
  14854. Fbits: uint8(8),
  14855. Fval: uint16(63),
  14856. },
  14857. 503: {
  14858. Fbits: uint8(9),
  14859. Fval: uint16(223),
  14860. },
  14861. 504: {
  14862. Fop: uint8(18),
  14863. Fbits: uint8(7),
  14864. Fval: uint16(27),
  14865. },
  14866. 505: {
  14867. Fbits: uint8(8),
  14868. Fval: uint16(111),
  14869. },
  14870. 506: {
  14871. Fbits: uint8(8),
  14872. Fval: uint16(47),
  14873. },
  14874. 507: {
  14875. Fbits: uint8(9),
  14876. Fval: uint16(191),
  14877. },
  14878. 508: {
  14879. Fbits: uint8(8),
  14880. Fval: uint16(15),
  14881. },
  14882. 509: {
  14883. Fbits: uint8(8),
  14884. Fval: uint16(143),
  14885. },
  14886. 510: {
  14887. Fbits: uint8(8),
  14888. Fval: uint16(79),
  14889. },
  14890. 511: {
  14891. Fbits: uint8(9),
  14892. Fval: uint16(255),
  14893. },
  14894. }
  14895. var _distfix1 = [32]Tcode{
  14896. 0: {
  14897. Fop: uint8(16),
  14898. Fbits: uint8(5),
  14899. Fval: uint16(1),
  14900. },
  14901. 1: {
  14902. Fop: uint8(23),
  14903. Fbits: uint8(5),
  14904. Fval: uint16(257),
  14905. },
  14906. 2: {
  14907. Fop: uint8(19),
  14908. Fbits: uint8(5),
  14909. Fval: uint16(17),
  14910. },
  14911. 3: {
  14912. Fop: uint8(27),
  14913. Fbits: uint8(5),
  14914. Fval: uint16(4097),
  14915. },
  14916. 4: {
  14917. Fop: uint8(17),
  14918. Fbits: uint8(5),
  14919. Fval: uint16(5),
  14920. },
  14921. 5: {
  14922. Fop: uint8(25),
  14923. Fbits: uint8(5),
  14924. Fval: uint16(1025),
  14925. },
  14926. 6: {
  14927. Fop: uint8(21),
  14928. Fbits: uint8(5),
  14929. Fval: uint16(65),
  14930. },
  14931. 7: {
  14932. Fop: uint8(29),
  14933. Fbits: uint8(5),
  14934. Fval: uint16(16385),
  14935. },
  14936. 8: {
  14937. Fop: uint8(16),
  14938. Fbits: uint8(5),
  14939. Fval: uint16(3),
  14940. },
  14941. 9: {
  14942. Fop: uint8(24),
  14943. Fbits: uint8(5),
  14944. Fval: uint16(513),
  14945. },
  14946. 10: {
  14947. Fop: uint8(20),
  14948. Fbits: uint8(5),
  14949. Fval: uint16(33),
  14950. },
  14951. 11: {
  14952. Fop: uint8(28),
  14953. Fbits: uint8(5),
  14954. Fval: uint16(8193),
  14955. },
  14956. 12: {
  14957. Fop: uint8(18),
  14958. Fbits: uint8(5),
  14959. Fval: uint16(9),
  14960. },
  14961. 13: {
  14962. Fop: uint8(26),
  14963. Fbits: uint8(5),
  14964. Fval: uint16(2049),
  14965. },
  14966. 14: {
  14967. Fop: uint8(22),
  14968. Fbits: uint8(5),
  14969. Fval: uint16(129),
  14970. },
  14971. 15: {
  14972. Fop: uint8(64),
  14973. Fbits: uint8(5),
  14974. },
  14975. 16: {
  14976. Fop: uint8(16),
  14977. Fbits: uint8(5),
  14978. Fval: uint16(2),
  14979. },
  14980. 17: {
  14981. Fop: uint8(23),
  14982. Fbits: uint8(5),
  14983. Fval: uint16(385),
  14984. },
  14985. 18: {
  14986. Fop: uint8(19),
  14987. Fbits: uint8(5),
  14988. Fval: uint16(25),
  14989. },
  14990. 19: {
  14991. Fop: uint8(27),
  14992. Fbits: uint8(5),
  14993. Fval: uint16(6145),
  14994. },
  14995. 20: {
  14996. Fop: uint8(17),
  14997. Fbits: uint8(5),
  14998. Fval: uint16(7),
  14999. },
  15000. 21: {
  15001. Fop: uint8(25),
  15002. Fbits: uint8(5),
  15003. Fval: uint16(1537),
  15004. },
  15005. 22: {
  15006. Fop: uint8(21),
  15007. Fbits: uint8(5),
  15008. Fval: uint16(97),
  15009. },
  15010. 23: {
  15011. Fop: uint8(29),
  15012. Fbits: uint8(5),
  15013. Fval: uint16(24577),
  15014. },
  15015. 24: {
  15016. Fop: uint8(16),
  15017. Fbits: uint8(5),
  15018. Fval: uint16(4),
  15019. },
  15020. 25: {
  15021. Fop: uint8(24),
  15022. Fbits: uint8(5),
  15023. Fval: uint16(769),
  15024. },
  15025. 26: {
  15026. Fop: uint8(20),
  15027. Fbits: uint8(5),
  15028. Fval: uint16(49),
  15029. },
  15030. 27: {
  15031. Fop: uint8(28),
  15032. Fbits: uint8(5),
  15033. Fval: uint16(12289),
  15034. },
  15035. 28: {
  15036. Fop: uint8(18),
  15037. Fbits: uint8(5),
  15038. Fval: uint16(13),
  15039. },
  15040. 29: {
  15041. Fop: uint8(26),
  15042. Fbits: uint8(5),
  15043. Fval: uint16(3073),
  15044. },
  15045. 30: {
  15046. Fop: uint8(22),
  15047. Fbits: uint8(5),
  15048. Fval: uint16(193),
  15049. },
  15050. 31: {
  15051. Fop: uint8(64),
  15052. Fbits: uint8(5),
  15053. },
  15054. }
  15055. // C documentation
  15056. //
  15057. // /*
  15058. // Update the window with the last wsize (normally 32K) bytes written before
  15059. // returning. If window does not exist yet, create it. This is only called
  15060. // when a window is already in use, or when output has been written during this
  15061. // inflate call, but the end of the deflate stream has not been reached yet.
  15062. // It is also called to create a window for dictionary data when a dictionary
  15063. // is loaded.
  15064. //
  15065. // Providing output buffers larger than 32K to inflate() should provide a speed
  15066. // advantage, since only the last 32K of output is copied to the sliding window
  15067. // upon return from inflate(), and since all distances after the first 32K of
  15068. // output will fall in the output data, making match copies simpler and faster.
  15069. // The advantage may be dependent on the size of the processor's data caches.
  15070. // */
  15071. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  15072. var dist uint32
  15073. var state uintptr
  15074. _, _ = dist, state
  15075. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15076. /* if it hasn't been done already, allocate space for the window */
  15077. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  15078. (*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)))
  15079. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  15080. return int32(1)
  15081. }
  15082. }
  15083. /* if window not in use yet, initialize */
  15084. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  15085. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  15086. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  15087. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  15088. }
  15089. /* copy state->wsize or less output bytes into the circular window */
  15090. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  15091. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  15092. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  15093. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  15094. } else {
  15095. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  15096. if dist > copy1 {
  15097. dist = copy1
  15098. }
  15099. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(dist))
  15100. copy1 -= dist
  15101. if copy1 != 0 {
  15102. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(copy1))
  15103. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  15104. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  15105. } else {
  15106. *(*uint32)(unsafe.Pointer(state + 68)) += dist
  15107. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  15108. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  15109. }
  15110. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  15111. *(*uint32)(unsafe.Pointer(state + 64)) += dist
  15112. }
  15113. }
  15114. }
  15115. return 0
  15116. }
  15117. /* Macros for inflate(): */
  15118. /* check function to use adler32() for zlib or crc32() for gzip */
  15119. /* check macros for header crc */
  15120. /* Load registers with state in inflate() for speed */
  15121. /* Restore state from registers in inflate() */
  15122. /* Clear the input bit accumulator */
  15123. /* Get a byte of input into the bit accumulator, or return from inflate()
  15124. if there is no input available. */
  15125. /* Assure that there are at least n bits in the bit accumulator. If there is
  15126. not enough available input to do that, then return from inflate(). */
  15127. /* Return the low n bits of the bit accumulator (n < 16) */
  15128. /* Remove n bits from the bit accumulator */
  15129. /* Remove zero to seven bits as needed to go to a byte boundary */
  15130. /*
  15131. inflate() uses a state machine to process as much input data and generate as
  15132. much output data as possible before returning. The state machine is
  15133. structured roughly as follows:
  15134. for (;;) switch (state) {
  15135. ...
  15136. case STATEn:
  15137. if (not enough input data or output space to make progress)
  15138. return;
  15139. ... make progress ...
  15140. state = STATEm;
  15141. break;
  15142. ...
  15143. }
  15144. so when inflate() is called again, the same case is attempted again, and
  15145. if the appropriate resources are provided, the machine proceeds to the
  15146. next state. The NEEDBITS() macro is usually the way the state evaluates
  15147. whether it can proceed or should return. NEEDBITS() does the return if
  15148. the requested bits are not available. The typical use of the BITS macros
  15149. is:
  15150. NEEDBITS(n);
  15151. ... do something with BITS(n) ...
  15152. DROPBITS(n);
  15153. where NEEDBITS(n) either returns from inflate() if there isn't enough
  15154. input left to load n bits into the accumulator, or it continues. BITS(n)
  15155. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  15156. the low n bits off the accumulator. INITBITS() clears the accumulator
  15157. and sets the number of available bits to zero. BYTEBITS() discards just
  15158. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  15159. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  15160. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  15161. if there is no input available. The decoding of variable length codes uses
  15162. PULLBYTE() directly in order to pull just enough bytes to decode the next
  15163. code, and no more.
  15164. Some states loop until they get enough input, making sure that enough
  15165. state information is maintained to continue the loop where it left off
  15166. if NEEDBITS() returns in the loop. For example, want, need, and keep
  15167. would all have to actually be part of the saved state in case NEEDBITS()
  15168. returns:
  15169. case STATEw:
  15170. while (want < need) {
  15171. NEEDBITS(n);
  15172. keep[want++] = BITS(n);
  15173. DROPBITS(n);
  15174. }
  15175. state = STATEx;
  15176. case STATEx:
  15177. As shown above, if the next state is also the next case, then the break
  15178. is omitted.
  15179. A state may also return if there is not enough output space available to
  15180. complete that state. Those states are copying stored data, writing a
  15181. literal byte, and copying a matching string.
  15182. When returning, a "goto inf_leave" is used to update the total counters,
  15183. update the check value, and determine whether any progress has been made
  15184. during that inflate() call in order to return the proper return code.
  15185. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  15186. When there is a window, goto inf_leave will update the window with the last
  15187. output written. If a goto inf_leave occurs in the middle of decompression
  15188. and there is no window currently, goto inf_leave will create one and copy
  15189. output to the window for the next call of inflate().
  15190. In this implementation, the flush parameter of inflate() only affects the
  15191. return code (per zlib.h). inflate() always writes as much as possible to
  15192. strm->next_out, given the space available and the provided input--the effect
  15193. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  15194. the allocation of and copying into a sliding window until necessary, which
  15195. provides the effect documented in zlib.h for Z_FINISH when the entire input
  15196. stream available. So the only thing the flush parameter actually does is:
  15197. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  15198. will return Z_BUF_ERROR if it has not reached the end of the stream.
  15199. */
  15200. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  15201. bp := tls.Alloc(16)
  15202. defer tls.Free(16)
  15203. var bits, copy1, have, in, left, len1, out, v46, v48, v49, v50, v52, v53, v64, v66, v70, v75, v76, v90 uint32
  15204. 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
  15205. var here, last Tcode
  15206. var hold, v101, v102, v37, v56, v58, v59, v96, v97, v98 uint64
  15207. var ret, v103, v104, v105, v38 int32
  15208. var v47, v99 bool
  15209. var _ /* hbuf at bp+0 */ [4]uint8
  15210. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  15211. 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) {
  15212. return -int32(2)
  15213. }
  15214. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  15215. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  15216. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  15217. } /* skip check */
  15218. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  15219. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  15220. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  15221. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  15222. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  15223. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  15224. in = have
  15225. out = left
  15226. ret = m_Z_OK
  15227. for {
  15228. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  15229. case int32(_HEAD):
  15230. goto _2
  15231. case int32(_FLAGS):
  15232. goto _3
  15233. case int32(_TIME):
  15234. goto _4
  15235. case int32(_OS):
  15236. goto _5
  15237. case int32(_EXLEN):
  15238. goto _6
  15239. case int32(_EXTRA):
  15240. goto _7
  15241. case int32(_NAME):
  15242. goto _8
  15243. case int32(_COMMENT):
  15244. goto _9
  15245. case int32(_HCRC):
  15246. goto _10
  15247. case int32(_DICTID):
  15248. goto _11
  15249. case int32(_DICT):
  15250. goto _12
  15251. case int32(_TYPE):
  15252. goto _13
  15253. case int32(_TYPEDO):
  15254. goto _14
  15255. case int32(_STORED):
  15256. goto _15
  15257. case int32(_COPY_):
  15258. goto _16
  15259. case int32(_COPY):
  15260. goto _17
  15261. case int32(_TABLE):
  15262. goto _18
  15263. case int32(_LENLENS):
  15264. goto _19
  15265. case int32(_CODELENS):
  15266. goto _20
  15267. case int32(_LEN_):
  15268. goto _21
  15269. case int32(_LEN):
  15270. goto _22
  15271. case int32(_LENEXT):
  15272. goto _23
  15273. case int32(_DIST):
  15274. goto _24
  15275. case int32(_DISTEXT):
  15276. goto _25
  15277. case int32(_MATCH):
  15278. goto _26
  15279. case int32(_LIT):
  15280. goto _27
  15281. case int32(_CHECK):
  15282. goto _28
  15283. case int32(_LENGTH):
  15284. goto _29
  15285. case int32(_DONE):
  15286. goto _30
  15287. case int32(_BAD):
  15288. goto _31
  15289. case int32(_MEM):
  15290. goto _32
  15291. default:
  15292. goto _33
  15293. case int32(_SYNC):
  15294. goto _34
  15295. }
  15296. goto _35
  15297. _2:
  15298. ;
  15299. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  15300. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  15301. goto _35
  15302. }
  15303. for bits < uint32(libc.Int32FromInt32(16)) {
  15304. if have == uint32(0) {
  15305. goto inf_leave
  15306. }
  15307. have--
  15308. v36 = next
  15309. next++
  15310. hold += uint64(*(*uint8)(unsafe.Pointer(v36))) << bits
  15311. bits += uint32(8)
  15312. }
  15313. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint64(0x8b1f) { /* gzip header */
  15314. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  15315. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  15316. }
  15317. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  15318. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15319. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15320. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15321. hold = uint64(0)
  15322. bits = uint32(0)
  15323. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  15324. goto _35
  15325. }
  15326. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15327. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  15328. }
  15329. 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 {
  15330. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 308
  15331. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15332. goto _35
  15333. }
  15334. if uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  15335. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  15336. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15337. goto _35
  15338. }
  15339. hold >>= uint64(libc.Int32FromInt32(4))
  15340. bits -= uint32(libc.Int32FromInt32(4))
  15341. len1 = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  15342. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  15343. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  15344. }
  15345. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  15346. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 358
  15347. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15348. goto _35
  15349. }
  15350. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  15351. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  15352. v37 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  15353. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  15354. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  15355. if hold&uint64(0x200) != 0 {
  15356. v38 = int32(_DICTID)
  15357. } else {
  15358. v38 = int32(_TYPE)
  15359. }
  15360. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  15361. hold = uint64(0)
  15362. bits = uint32(0)
  15363. goto _35
  15364. _3:
  15365. ;
  15366. _41:
  15367. ;
  15368. for bits < uint32(libc.Int32FromInt32(16)) {
  15369. if have == uint32(0) {
  15370. goto inf_leave
  15371. }
  15372. have--
  15373. v42 = next
  15374. next++
  15375. hold += uint64(*(*uint8)(unsafe.Pointer(v42))) << bits
  15376. bits += uint32(8)
  15377. }
  15378. goto _40
  15379. _40:
  15380. ;
  15381. if 0 != 0 {
  15382. goto _41
  15383. }
  15384. goto _39
  15385. _39:
  15386. ;
  15387. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = int32(hold)
  15388. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  15389. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  15390. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15391. goto _35
  15392. }
  15393. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  15394. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 378
  15395. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15396. goto _35
  15397. }
  15398. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15399. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = int32(hold >> libc.Int32FromInt32(8) & libc.Uint64FromInt32(1))
  15400. }
  15401. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15402. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15403. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15404. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15405. }
  15406. hold = uint64(0)
  15407. bits = uint32(0)
  15408. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  15409. /* fallthrough */
  15410. _4:
  15411. ;
  15412. for bits < uint32(libc.Int32FromInt32(32)) {
  15413. if have == uint32(0) {
  15414. goto inf_leave
  15415. }
  15416. have--
  15417. v43 = next
  15418. next++
  15419. hold += uint64(*(*uint8)(unsafe.Pointer(v43))) << bits
  15420. bits += uint32(8)
  15421. }
  15422. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15423. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  15424. }
  15425. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15426. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15427. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15428. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  15429. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  15430. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  15431. }
  15432. hold = uint64(0)
  15433. bits = uint32(0)
  15434. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  15435. /* fallthrough */
  15436. _5:
  15437. ;
  15438. for bits < uint32(libc.Int32FromInt32(16)) {
  15439. if have == uint32(0) {
  15440. goto inf_leave
  15441. }
  15442. have--
  15443. v44 = next
  15444. next++
  15445. hold += uint64(*(*uint8)(unsafe.Pointer(v44))) << bits
  15446. bits += uint32(8)
  15447. }
  15448. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15449. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = int32(hold & libc.Uint64FromInt32(0xff))
  15450. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = int32(hold >> libc.Int32FromInt32(8))
  15451. }
  15452. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15453. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15454. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15455. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15456. }
  15457. hold = uint64(0)
  15458. bits = uint32(0)
  15459. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  15460. /* fallthrough */
  15461. _6:
  15462. ;
  15463. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  15464. for bits < uint32(libc.Int32FromInt32(16)) {
  15465. if have == uint32(0) {
  15466. goto inf_leave
  15467. }
  15468. have--
  15469. v45 = next
  15470. next++
  15471. hold += uint64(*(*uint8)(unsafe.Pointer(v45))) << bits
  15472. bits += uint32(8)
  15473. }
  15474. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold)
  15475. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15476. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = uint32(hold)
  15477. }
  15478. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15479. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  15480. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  15481. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  15482. }
  15483. hold = uint64(0)
  15484. bits = uint32(0)
  15485. } else {
  15486. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15487. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  15488. }
  15489. }
  15490. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  15491. /* fallthrough */
  15492. _7:
  15493. ;
  15494. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  15495. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15496. if copy1 > have {
  15497. copy1 = have
  15498. }
  15499. if copy1 != 0 {
  15500. 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 {
  15501. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15502. len1 = v46
  15503. }
  15504. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  15505. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  15506. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  15507. } else {
  15508. v48 = copy1
  15509. }
  15510. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  15511. }
  15512. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15513. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  15514. }
  15515. have -= copy1
  15516. next += uintptr(copy1)
  15517. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  15518. }
  15519. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  15520. goto inf_leave
  15521. }
  15522. }
  15523. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  15524. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  15525. /* fallthrough */
  15526. _8:
  15527. ;
  15528. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  15529. if have == uint32(0) {
  15530. goto inf_leave
  15531. }
  15532. copy1 = uint32(0)
  15533. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  15534. v49 = copy1
  15535. copy1++
  15536. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  15537. 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 {
  15538. v51 = state + 92
  15539. v50 = *(*uint32)(unsafe.Pointer(v51))
  15540. *(*uint32)(unsafe.Pointer(v51))++
  15541. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  15542. }
  15543. }
  15544. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15545. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  15546. }
  15547. have -= copy1
  15548. next += uintptr(copy1)
  15549. if len1 != 0 {
  15550. goto inf_leave
  15551. }
  15552. } else {
  15553. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15554. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  15555. }
  15556. }
  15557. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  15558. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  15559. /* fallthrough */
  15560. _9:
  15561. ;
  15562. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  15563. if have == uint32(0) {
  15564. goto inf_leave
  15565. }
  15566. copy1 = uint32(0)
  15567. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  15568. v52 = copy1
  15569. copy1++
  15570. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  15571. 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 {
  15572. v54 = state + 92
  15573. v53 = *(*uint32)(unsafe.Pointer(v54))
  15574. *(*uint32)(unsafe.Pointer(v54))++
  15575. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  15576. }
  15577. }
  15578. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  15579. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  15580. }
  15581. have -= copy1
  15582. next += uintptr(copy1)
  15583. if len1 != 0 {
  15584. goto inf_leave
  15585. }
  15586. } else {
  15587. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15588. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  15589. }
  15590. }
  15591. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  15592. /* fallthrough */
  15593. _10:
  15594. ;
  15595. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  15596. for bits < uint32(libc.Int32FromInt32(16)) {
  15597. if have == uint32(0) {
  15598. goto inf_leave
  15599. }
  15600. have--
  15601. v55 = next
  15602. next++
  15603. hold += uint64(*(*uint8)(unsafe.Pointer(v55))) << bits
  15604. bits += uint32(8)
  15605. }
  15606. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint64(0xffff) {
  15607. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 403
  15608. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15609. goto _35
  15610. }
  15611. hold = uint64(0)
  15612. bits = uint32(0)
  15613. }
  15614. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  15615. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  15616. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  15617. }
  15618. v56 = Xcrc32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  15619. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  15620. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  15621. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15622. goto _35
  15623. _11:
  15624. ;
  15625. for bits < uint32(libc.Int32FromInt32(32)) {
  15626. if have == uint32(0) {
  15627. goto inf_leave
  15628. }
  15629. have--
  15630. v57 = next
  15631. next++
  15632. hold += uint64(*(*uint8)(unsafe.Pointer(v57))) << bits
  15633. bits += uint32(8)
  15634. }
  15635. 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)
  15636. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  15637. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  15638. hold = uint64(0)
  15639. bits = uint32(0)
  15640. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  15641. /* fallthrough */
  15642. _12:
  15643. ;
  15644. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  15645. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  15646. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  15647. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  15648. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  15649. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  15650. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  15651. return int32(m_Z_NEED_DICT)
  15652. }
  15653. v59 = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  15654. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  15655. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  15656. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15657. /* fallthrough */
  15658. _13:
  15659. ;
  15660. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  15661. goto inf_leave
  15662. }
  15663. /* fallthrough */
  15664. _14:
  15665. ;
  15666. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  15667. hold >>= uint64(bits & uint32(7))
  15668. bits -= bits & uint32(7)
  15669. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  15670. goto _35
  15671. }
  15672. for bits < uint32(libc.Int32FromInt32(3)) {
  15673. if have == uint32(0) {
  15674. goto inf_leave
  15675. }
  15676. have--
  15677. v60 = next
  15678. next++
  15679. hold += uint64(*(*uint8)(unsafe.Pointer(v60))) << bits
  15680. bits += uint32(8)
  15681. }
  15682. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  15683. hold >>= uint64(libc.Int32FromInt32(1))
  15684. bits -= uint32(libc.Int32FromInt32(1))
  15685. switch uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  15686. case uint32(0): /* stored block */
  15687. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  15688. case uint32(1): /* fixed block */
  15689. _fixedtables1(tls, state)
  15690. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  15691. if flush == int32(m_Z_TREES) {
  15692. hold >>= uint64(libc.Int32FromInt32(2))
  15693. bits -= uint32(libc.Int32FromInt32(2))
  15694. goto inf_leave
  15695. }
  15696. case uint32(2): /* dynamic block */
  15697. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  15698. case uint32(3):
  15699. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 6
  15700. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15701. }
  15702. hold >>= uint64(libc.Int32FromInt32(2))
  15703. bits -= uint32(libc.Int32FromInt32(2))
  15704. goto _35
  15705. _15:
  15706. ;
  15707. hold >>= uint64(bits & uint32(7))
  15708. bits -= bits & uint32(7) /* go to byte boundary */
  15709. for bits < uint32(libc.Int32FromInt32(32)) {
  15710. if have == uint32(0) {
  15711. goto inf_leave
  15712. }
  15713. have--
  15714. v61 = next
  15715. next++
  15716. hold += uint64(*(*uint8)(unsafe.Pointer(v61))) << bits
  15717. bits += uint32(8)
  15718. }
  15719. if hold&uint64(0xffff) != hold>>int32(16)^uint64(0xffff) {
  15720. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 25
  15721. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15722. goto _35
  15723. }
  15724. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(hold) & uint32(0xffff)
  15725. hold = uint64(0)
  15726. bits = uint32(0)
  15727. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  15728. if flush == int32(m_Z_TREES) {
  15729. goto inf_leave
  15730. }
  15731. /* fallthrough */
  15732. _16:
  15733. ;
  15734. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  15735. /* fallthrough */
  15736. _17:
  15737. ;
  15738. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  15739. if copy1 != 0 {
  15740. if copy1 > have {
  15741. copy1 = have
  15742. }
  15743. if copy1 > left {
  15744. copy1 = left
  15745. }
  15746. if copy1 == uint32(0) {
  15747. goto inf_leave
  15748. }
  15749. libc.Xmemcpy(tls, put, next, uint64(copy1))
  15750. have -= copy1
  15751. next += uintptr(copy1)
  15752. left -= copy1
  15753. put += uintptr(copy1)
  15754. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  15755. goto _35
  15756. }
  15757. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  15758. goto _35
  15759. _18:
  15760. ;
  15761. for bits < uint32(libc.Int32FromInt32(14)) {
  15762. if have == uint32(0) {
  15763. goto inf_leave
  15764. }
  15765. have--
  15766. v62 = next
  15767. next++
  15768. hold += uint64(*(*uint8)(unsafe.Pointer(v62))) << bits
  15769. bits += uint32(8)
  15770. }
  15771. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  15772. hold >>= uint64(libc.Int32FromInt32(5))
  15773. bits -= uint32(libc.Int32FromInt32(5))
  15774. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  15775. hold >>= uint64(libc.Int32FromInt32(5))
  15776. bits -= uint32(libc.Int32FromInt32(5))
  15777. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  15778. hold >>= uint64(libc.Int32FromInt32(4))
  15779. bits -= uint32(libc.Int32FromInt32(4))
  15780. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  15781. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 54
  15782. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15783. goto _35
  15784. }
  15785. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15786. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  15787. /* fallthrough */
  15788. _19:
  15789. ;
  15790. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  15791. for bits < uint32(libc.Int32FromInt32(3)) {
  15792. if have == uint32(0) {
  15793. goto inf_leave
  15794. }
  15795. have--
  15796. v63 = next
  15797. next++
  15798. hold += uint64(*(*uint8)(unsafe.Pointer(v63))) << bits
  15799. bits += uint32(8)
  15800. }
  15801. v65 = state + 140
  15802. v64 = *(*uint32)(unsafe.Pointer(v65))
  15803. *(*uint32)(unsafe.Pointer(v65))++
  15804. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v64])*2)) = uint16(uint32(hold) & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  15805. hold >>= uint64(libc.Int32FromInt32(3))
  15806. bits -= uint32(libc.Int32FromInt32(3))
  15807. }
  15808. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  15809. v67 = state + 140
  15810. v66 = *(*uint32)(unsafe.Pointer(v67))
  15811. *(*uint32)(unsafe.Pointer(v67))++
  15812. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(_order1[v66])*2)) = uint16(0)
  15813. }
  15814. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  15815. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15816. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  15817. ret = Xinflate_table(tls, _CODES, state+152, uint32(19), state+144, state+120, state+792)
  15818. if ret != 0 {
  15819. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 90
  15820. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15821. goto _35
  15822. }
  15823. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  15824. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  15825. /* fallthrough */
  15826. _20:
  15827. ;
  15828. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  15829. for {
  15830. 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))
  15831. if uint32(here.Fbits) <= bits {
  15832. break
  15833. }
  15834. if have == uint32(0) {
  15835. goto inf_leave
  15836. }
  15837. have--
  15838. v69 = next
  15839. next++
  15840. hold += uint64(*(*uint8)(unsafe.Pointer(v69))) << bits
  15841. bits += uint32(8)
  15842. goto _68
  15843. _68:
  15844. }
  15845. if int32(here.Fval) < int32(16) {
  15846. hold >>= uint64(here.Fbits)
  15847. bits -= uint32(here.Fbits)
  15848. v71 = state + 140
  15849. v70 = *(*uint32)(unsafe.Pointer(v71))
  15850. *(*uint32)(unsafe.Pointer(v71))++
  15851. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v70)*2)) = here.Fval
  15852. } else {
  15853. if int32(here.Fval) == int32(16) {
  15854. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  15855. if have == uint32(0) {
  15856. goto inf_leave
  15857. }
  15858. have--
  15859. v72 = next
  15860. next++
  15861. hold += uint64(*(*uint8)(unsafe.Pointer(v72))) << bits
  15862. bits += uint32(8)
  15863. }
  15864. hold >>= uint64(here.Fbits)
  15865. bits -= uint32(here.Fbits)
  15866. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  15867. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  15868. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15869. break
  15870. }
  15871. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 152 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  15872. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  15873. hold >>= uint64(libc.Int32FromInt32(2))
  15874. bits -= uint32(libc.Int32FromInt32(2))
  15875. } else {
  15876. if int32(here.Fval) == int32(17) {
  15877. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  15878. if have == uint32(0) {
  15879. goto inf_leave
  15880. }
  15881. have--
  15882. v73 = next
  15883. next++
  15884. hold += uint64(*(*uint8)(unsafe.Pointer(v73))) << bits
  15885. bits += uint32(8)
  15886. }
  15887. hold >>= uint64(here.Fbits)
  15888. bits -= uint32(here.Fbits)
  15889. len1 = uint32(0)
  15890. copy1 = uint32(3) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  15891. hold >>= uint64(libc.Int32FromInt32(3))
  15892. bits -= uint32(libc.Int32FromInt32(3))
  15893. } else {
  15894. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  15895. if have == uint32(0) {
  15896. goto inf_leave
  15897. }
  15898. have--
  15899. v74 = next
  15900. next++
  15901. hold += uint64(*(*uint8)(unsafe.Pointer(v74))) << bits
  15902. bits += uint32(8)
  15903. }
  15904. hold >>= uint64(here.Fbits)
  15905. bits -= uint32(here.Fbits)
  15906. len1 = uint32(0)
  15907. copy1 = uint32(11) + uint32(hold)&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  15908. hold >>= uint64(libc.Int32FromInt32(7))
  15909. bits -= uint32(libc.Int32FromInt32(7))
  15910. }
  15911. }
  15912. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  15913. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 115
  15914. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15915. break
  15916. }
  15917. for {
  15918. v75 = copy1
  15919. copy1--
  15920. if !(v75 != 0) {
  15921. break
  15922. }
  15923. v77 = state + 140
  15924. v76 = *(*uint32)(unsafe.Pointer(v77))
  15925. *(*uint32)(unsafe.Pointer(v77))++
  15926. *(*uint16)(unsafe.Pointer(state + 152 + uintptr(v76)*2)) = uint16(len1)
  15927. }
  15928. }
  15929. }
  15930. /* handle error breaks in while */
  15931. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  15932. goto _35
  15933. }
  15934. /* check for end-of-block code (better have one) */
  15935. if int32(*(*uint16)(unsafe.Pointer(state + 152 + 256*2))) == 0 {
  15936. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 141
  15937. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15938. goto _35
  15939. }
  15940. /* build code tables -- note: do not change the lenbits or distbits
  15941. values here (9 and 6) without reading the comments in inftrees.h
  15942. concerning the ENOUGH constants, which depend on those values */
  15943. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1368
  15944. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15945. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  15946. ret = Xinflate_table(tls, _LENS, state+152, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+144, state+120, state+792)
  15947. if ret != 0 {
  15948. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 178
  15949. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15950. goto _35
  15951. }
  15952. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  15953. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  15954. ret = Xinflate_table(tls, _DISTS, state+152+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+144, state+124, state+792)
  15955. if ret != 0 {
  15956. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 206
  15957. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  15958. goto _35
  15959. }
  15960. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  15961. if flush == int32(m_Z_TREES) {
  15962. goto inf_leave
  15963. }
  15964. /* fallthrough */
  15965. _21:
  15966. ;
  15967. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  15968. /* fallthrough */
  15969. _22:
  15970. ;
  15971. if have >= uint32(6) && left >= uint32(258) {
  15972. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  15973. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  15974. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  15975. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  15976. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  15977. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  15978. Xinflate_fast(tls, strm, out)
  15979. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  15980. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  15981. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  15982. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  15983. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  15984. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  15985. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  15986. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  15987. }
  15988. goto _35
  15989. }
  15990. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  15991. for {
  15992. 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))
  15993. if uint32(here.Fbits) <= bits {
  15994. break
  15995. }
  15996. if have == uint32(0) {
  15997. goto inf_leave
  15998. }
  15999. have--
  16000. v79 = next
  16001. next++
  16002. hold += uint64(*(*uint8)(unsafe.Pointer(v79))) << bits
  16003. bits += uint32(8)
  16004. goto _78
  16005. _78:
  16006. }
  16007. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  16008. last = here
  16009. for {
  16010. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  16011. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  16012. break
  16013. }
  16014. if have == uint32(0) {
  16015. goto inf_leave
  16016. }
  16017. have--
  16018. v81 = next
  16019. next++
  16020. hold += uint64(*(*uint8)(unsafe.Pointer(v81))) << bits
  16021. bits += uint32(8)
  16022. goto _80
  16023. _80:
  16024. }
  16025. hold >>= uint64(last.Fbits)
  16026. bits -= uint32(last.Fbits)
  16027. *(*int32)(unsafe.Pointer(state + 7148)) += int32(last.Fbits)
  16028. }
  16029. hold >>= uint64(here.Fbits)
  16030. bits -= uint32(here.Fbits)
  16031. *(*int32)(unsafe.Pointer(state + 7148)) += int32(here.Fbits)
  16032. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  16033. if int32(here.Fop) == 0 {
  16034. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  16035. goto _35
  16036. }
  16037. if int32(here.Fop)&int32(32) != 0 {
  16038. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  16039. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  16040. goto _35
  16041. }
  16042. if int32(here.Fop)&int32(64) != 0 {
  16043. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 228
  16044. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16045. goto _35
  16046. }
  16047. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  16048. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  16049. /* fallthrough */
  16050. _23:
  16051. ;
  16052. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  16053. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  16054. if have == uint32(0) {
  16055. goto inf_leave
  16056. }
  16057. have--
  16058. v82 = next
  16059. next++
  16060. hold += uint64(*(*uint8)(unsafe.Pointer(v82))) << bits
  16061. bits += uint32(8)
  16062. }
  16063. *(*uint32)(unsafe.Pointer(state + 92)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  16064. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  16065. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  16066. p83 = state + 7148
  16067. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  16068. }
  16069. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16070. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  16071. /* fallthrough */
  16072. _24:
  16073. ;
  16074. for {
  16075. 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))
  16076. if uint32(here.Fbits) <= bits {
  16077. break
  16078. }
  16079. if have == uint32(0) {
  16080. goto inf_leave
  16081. }
  16082. have--
  16083. v85 = next
  16084. next++
  16085. hold += uint64(*(*uint8)(unsafe.Pointer(v85))) << bits
  16086. bits += uint32(8)
  16087. goto _84
  16088. _84:
  16089. }
  16090. if int32(here.Fop)&int32(0xf0) == 0 {
  16091. last = here
  16092. for {
  16093. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+uint32(hold)&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  16094. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  16095. break
  16096. }
  16097. if have == uint32(0) {
  16098. goto inf_leave
  16099. }
  16100. have--
  16101. v87 = next
  16102. next++
  16103. hold += uint64(*(*uint8)(unsafe.Pointer(v87))) << bits
  16104. bits += uint32(8)
  16105. goto _86
  16106. _86:
  16107. }
  16108. hold >>= uint64(last.Fbits)
  16109. bits -= uint32(last.Fbits)
  16110. *(*int32)(unsafe.Pointer(state + 7148)) += int32(last.Fbits)
  16111. }
  16112. hold >>= uint64(here.Fbits)
  16113. bits -= uint32(here.Fbits)
  16114. *(*int32)(unsafe.Pointer(state + 7148)) += int32(here.Fbits)
  16115. if int32(here.Fop)&int32(64) != 0 {
  16116. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 256
  16117. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16118. goto _35
  16119. }
  16120. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  16121. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  16122. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  16123. /* fallthrough */
  16124. _25:
  16125. ;
  16126. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  16127. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  16128. if have == uint32(0) {
  16129. goto inf_leave
  16130. }
  16131. have--
  16132. v88 = next
  16133. next++
  16134. hold += uint64(*(*uint8)(unsafe.Pointer(v88))) << bits
  16135. bits += uint32(8)
  16136. }
  16137. *(*uint32)(unsafe.Pointer(state + 96)) += uint32(hold) & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  16138. hold >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  16139. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  16140. p89 = state + 7148
  16141. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  16142. }
  16143. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  16144. /* fallthrough */
  16145. _26:
  16146. ;
  16147. if left == uint32(0) {
  16148. goto inf_leave
  16149. }
  16150. copy1 = out - left
  16151. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  16152. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  16153. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  16154. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  16155. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 278
  16156. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16157. goto _35
  16158. }
  16159. }
  16160. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  16161. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  16162. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  16163. } else {
  16164. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  16165. }
  16166. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  16167. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16168. }
  16169. } else { /* copy from output */
  16170. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  16171. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16172. }
  16173. if copy1 > left {
  16174. copy1 = left
  16175. }
  16176. left -= copy1
  16177. *(*uint32)(unsafe.Pointer(state + 92)) -= copy1
  16178. for {
  16179. v92 = put
  16180. put++
  16181. v93 = from
  16182. from++
  16183. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  16184. goto _91
  16185. _91:
  16186. ;
  16187. copy1--
  16188. v90 = copy1
  16189. if !(v90 != 0) {
  16190. break
  16191. }
  16192. }
  16193. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  16194. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  16195. }
  16196. goto _35
  16197. _27:
  16198. ;
  16199. if left == uint32(0) {
  16200. goto inf_leave
  16201. }
  16202. v94 = put
  16203. put++
  16204. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  16205. left--
  16206. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  16207. goto _35
  16208. _28:
  16209. ;
  16210. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  16211. for bits < uint32(libc.Int32FromInt32(32)) {
  16212. if have == uint32(0) {
  16213. goto inf_leave
  16214. }
  16215. have--
  16216. v95 = next
  16217. next++
  16218. hold += uint64(*(*uint8)(unsafe.Pointer(v95))) << bits
  16219. bits += uint32(8)
  16220. }
  16221. out -= left
  16222. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  16223. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  16224. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  16225. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16226. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  16227. } else {
  16228. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  16229. }
  16230. v96 = v97
  16231. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  16232. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  16233. }
  16234. out = left
  16235. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  16236. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16237. v98 = hold
  16238. } else {
  16239. v98 = hold>>int32(24)&uint64(0xff) + hold>>int32(8)&uint64(0xff00) + hold&uint64(0xff00)<<int32(8) + hold&uint64(0xff)<<int32(24)
  16240. }
  16241. }
  16242. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  16243. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 423
  16244. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16245. goto _35
  16246. }
  16247. hold = uint64(0)
  16248. bits = uint32(0)
  16249. }
  16250. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  16251. /* fallthrough */
  16252. _29:
  16253. ;
  16254. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16255. for bits < uint32(libc.Int32FromInt32(32)) {
  16256. if have == uint32(0) {
  16257. goto inf_leave
  16258. }
  16259. have--
  16260. v100 = next
  16261. next++
  16262. hold += uint64(*(*uint8)(unsafe.Pointer(v100))) << bits
  16263. bits += uint32(8)
  16264. }
  16265. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint64(0xffffffff) {
  16266. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 444
  16267. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  16268. goto _35
  16269. }
  16270. hold = uint64(0)
  16271. bits = uint32(0)
  16272. }
  16273. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  16274. /* fallthrough */
  16275. _30:
  16276. ;
  16277. ret = int32(m_Z_STREAM_END)
  16278. goto inf_leave
  16279. _31:
  16280. ;
  16281. ret = -int32(3)
  16282. goto inf_leave
  16283. _32:
  16284. ;
  16285. return -int32(4)
  16286. _34:
  16287. ;
  16288. /* fallthrough */
  16289. _33:
  16290. ;
  16291. return -int32(2)
  16292. _35:
  16293. ;
  16294. goto _1
  16295. _1:
  16296. }
  16297. /*
  16298. Return from inflate(), updating the total counts and the check value.
  16299. If there was no progress during the inflate() call, return a buffer
  16300. error. Call updatewindow() to create and/or update the window state.
  16301. Note: a memory error from inflate() is non-recoverable.
  16302. */
  16303. inf_leave:
  16304. ;
  16305. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  16306. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  16307. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  16308. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  16309. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  16310. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  16311. 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)) {
  16312. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  16313. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  16314. return -int32(4)
  16315. }
  16316. }
  16317. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  16318. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  16319. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(in)
  16320. *(*TuLong)(unsafe.Pointer(strm + 40)) += uint64(out)
  16321. *(*uint64)(unsafe.Pointer(state + 40)) += uint64(out)
  16322. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  16323. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  16324. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  16325. } else {
  16326. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  16327. }
  16328. v101 = v102
  16329. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  16330. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  16331. }
  16332. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  16333. v103 = int32(64)
  16334. } else {
  16335. v103 = 0
  16336. }
  16337. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  16338. v104 = int32(128)
  16339. } else {
  16340. v104 = 0
  16341. }
  16342. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  16343. v105 = int32(256)
  16344. } else {
  16345. v105 = 0
  16346. }
  16347. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  16348. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  16349. ret = -int32(5)
  16350. }
  16351. return ret
  16352. }
  16353. var _order1 = [19]uint16{
  16354. 0: uint16(16),
  16355. 1: uint16(17),
  16356. 2: uint16(18),
  16357. 4: uint16(8),
  16358. 5: uint16(7),
  16359. 6: uint16(9),
  16360. 7: uint16(6),
  16361. 8: uint16(10),
  16362. 9: uint16(5),
  16363. 10: uint16(11),
  16364. 11: uint16(4),
  16365. 12: uint16(12),
  16366. 13: uint16(3),
  16367. 14: uint16(13),
  16368. 15: uint16(2),
  16369. 16: uint16(14),
  16370. 17: uint16(1),
  16371. 18: uint16(15),
  16372. }
  16373. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16374. var state uintptr
  16375. _ = state
  16376. if _inflateStateCheck(tls, strm) != 0 {
  16377. return -int32(2)
  16378. }
  16379. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16380. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  16381. (*(*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)
  16382. }
  16383. (*(*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)
  16384. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  16385. return m_Z_OK
  16386. }
  16387. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  16388. var state uintptr
  16389. _ = state
  16390. /* check state */
  16391. if _inflateStateCheck(tls, strm) != 0 {
  16392. return -int32(2)
  16393. }
  16394. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16395. /* copy dictionary */
  16396. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  16397. 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))
  16398. 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))
  16399. }
  16400. if dictLength != uintptr(m_Z_NULL) {
  16401. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  16402. }
  16403. return m_Z_OK
  16404. }
  16405. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  16406. var dictid uint64
  16407. var ret int32
  16408. var state uintptr
  16409. _, _, _ = dictid, ret, state
  16410. /* check state */
  16411. if _inflateStateCheck(tls, strm) != 0 {
  16412. return -int32(2)
  16413. }
  16414. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16415. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  16416. return -int32(2)
  16417. }
  16418. /* check for correct dictionary identifier */
  16419. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  16420. dictid = Xadler32(tls, uint64(0), uintptr(m_Z_NULL), uint32(0))
  16421. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  16422. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  16423. return -int32(3)
  16424. }
  16425. }
  16426. /* copy dictionary to window using updatewindow(), which will amend the
  16427. existing dictionary if appropriate */
  16428. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  16429. if ret != 0 {
  16430. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  16431. return -int32(4)
  16432. }
  16433. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  16434. return m_Z_OK
  16435. }
  16436. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  16437. var state uintptr
  16438. _ = state
  16439. /* check state */
  16440. if _inflateStateCheck(tls, strm) != 0 {
  16441. return -int32(2)
  16442. }
  16443. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16444. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  16445. return -int32(2)
  16446. }
  16447. /* save header structure */
  16448. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  16449. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  16450. return m_Z_OK
  16451. }
  16452. // C documentation
  16453. //
  16454. // /*
  16455. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  16456. // or when out of input. When called, *have is the number of pattern bytes
  16457. // found in order so far, in 0..3. On return *have is updated to the new
  16458. // state. If on return *have equals four, then the pattern was found and the
  16459. // return value is how many bytes were read including the last byte of the
  16460. // pattern. If *have is less than four, then the pattern has not been found
  16461. // yet and the return value is len. In the latter case, syncsearch() can be
  16462. // called again with more data and the *have state. *have is initialized to
  16463. // zero for the first call.
  16464. // */
  16465. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  16466. var got, next uint32
  16467. var v1 int32
  16468. _, _, _ = got, next, v1
  16469. got = *(*uint32)(unsafe.Pointer(have))
  16470. next = uint32(0)
  16471. for next < len1 && got < uint32(4) {
  16472. if got < uint32(2) {
  16473. v1 = 0
  16474. } else {
  16475. v1 = int32(0xff)
  16476. }
  16477. if int32(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  16478. got++
  16479. } else {
  16480. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  16481. got = uint32(0)
  16482. } else {
  16483. got = uint32(4) - got
  16484. }
  16485. }
  16486. next++
  16487. }
  16488. *(*uint32)(unsafe.Pointer(have)) = got
  16489. return next
  16490. }
  16491. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16492. bp := tls.Alloc(16)
  16493. defer tls.Free(16)
  16494. var flags int32
  16495. var in, out uint64
  16496. var len1, v1 uint32
  16497. var state uintptr
  16498. var _ /* buf at bp+0 */ [4]uint8
  16499. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  16500. /* check parameters */
  16501. if _inflateStateCheck(tls, strm) != 0 {
  16502. return -int32(2)
  16503. }
  16504. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16505. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  16506. return -int32(5)
  16507. }
  16508. /* if first time, start search in bit buffer */
  16509. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  16510. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  16511. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64((*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7))
  16512. *(*uint32)(unsafe.Pointer(state + 88)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  16513. len1 = uint32(0)
  16514. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  16515. v1 = len1
  16516. len1++
  16517. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  16518. *(*uint64)(unsafe.Pointer(state + 80)) >>= uint64(8)
  16519. *(*uint32)(unsafe.Pointer(state + 88)) -= uint32(8)
  16520. }
  16521. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  16522. _syncsearch(tls, state+140, bp, len1)
  16523. }
  16524. /* search available input */
  16525. len1 = _syncsearch(tls, state+140, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  16526. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  16527. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  16528. *(*TuLong)(unsafe.Pointer(strm + 16)) += uint64(len1)
  16529. /* return no joy or set up to restart inflate() on a new block */
  16530. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  16531. return -int32(3)
  16532. }
  16533. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  16534. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  16535. } else {
  16536. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  16537. } /* no point in computing a check value now */
  16538. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  16539. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  16540. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  16541. XinflateReset(tls, strm)
  16542. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  16543. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  16544. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  16545. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  16546. return m_Z_OK
  16547. }
  16548. // C documentation
  16549. //
  16550. // /*
  16551. // Returns true if inflate is currently at the end of a block generated by
  16552. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  16553. // implementation to provide an additional safety check. PPP uses
  16554. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  16555. // block. When decompressing, PPP checks that at the end of input packet,
  16556. // inflate is waiting for these length bytes.
  16557. // */
  16558. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  16559. var state uintptr
  16560. _ = state
  16561. if _inflateStateCheck(tls, strm) != 0 {
  16562. return -int32(2)
  16563. }
  16564. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16565. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  16566. }
  16567. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  16568. var copy1, state, window uintptr
  16569. var wsize uint32
  16570. _, _, _, _ = copy1, state, window, wsize
  16571. /* check input */
  16572. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  16573. return -int32(2)
  16574. }
  16575. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  16576. /* allocate space */
  16577. copy1 = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7160)))
  16578. if copy1 == uintptr(m_Z_NULL) {
  16579. return -int32(4)
  16580. }
  16581. window = uintptr(m_Z_NULL)
  16582. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  16583. 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)))
  16584. if window == uintptr(m_Z_NULL) {
  16585. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  16586. return -int32(4)
  16587. }
  16588. }
  16589. /* copy state */
  16590. libc.Xmemcpy(tls, dest, source, uint64(112))
  16591. libc.Xmemcpy(tls, copy1, state, uint64(7160))
  16592. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  16593. 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 {
  16594. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  16595. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1368))/4)*4
  16596. }
  16597. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1368 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1368))/4)*4
  16598. if window != uintptr(m_Z_NULL) {
  16599. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  16600. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(wsize))
  16601. }
  16602. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  16603. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  16604. return m_Z_OK
  16605. }
  16606. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  16607. var state uintptr
  16608. _ = state
  16609. if _inflateStateCheck(tls, strm) != 0 {
  16610. return -int32(2)
  16611. }
  16612. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16613. _ = subvert
  16614. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  16615. return -int32(3)
  16616. }
  16617. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  16618. var state uintptr
  16619. _ = state
  16620. if _inflateStateCheck(tls, strm) != 0 {
  16621. return -int32(2)
  16622. }
  16623. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16624. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  16625. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  16626. } else {
  16627. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  16628. }
  16629. return m_Z_OK
  16630. }
  16631. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int64) {
  16632. var state uintptr
  16633. var v1, v2 uint32
  16634. _, _, _ = state, v1, v2
  16635. if _inflateStateCheck(tls, strm) != 0 {
  16636. return -(libc.Int64FromInt64(1) << libc.Int32FromInt32(16))
  16637. }
  16638. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16639. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  16640. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16641. } else {
  16642. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  16643. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  16644. } else {
  16645. v2 = uint32(0)
  16646. }
  16647. v1 = v2
  16648. }
  16649. return int64(uint64(int64((*Tinflate_state)(unsafe.Pointer(state)).Fback))<<libc.Int32FromInt32(16)) + int64(v1)
  16650. }
  16651. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint64) {
  16652. var state uintptr
  16653. _ = state
  16654. if _inflateStateCheck(tls, strm) != 0 {
  16655. return uint64(-libc.Int32FromInt32(1))
  16656. }
  16657. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16658. return uint64((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1368)) / 4)
  16659. }
  16660. const m_MAXBITS = 15
  16661. /*
  16662. If you use the zlib library in a product, an acknowledgment is welcome
  16663. in the documentation of your product. If for some reason you cannot
  16664. include such an acknowledgment, I would appreciate that you keep this
  16665. copyright string in the executable of your product.
  16666. */
  16667. // C documentation
  16668. //
  16669. // /*
  16670. // Build a set of tables to decode the provided canonical Huffman code.
  16671. // The code lengths are lens[0..codes-1]. The result starts at *table,
  16672. // whose indices are 0..2^bits-1. work is a writable array of at least
  16673. // lens shorts, which is used as a work area. type is the type of code
  16674. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  16675. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  16676. // on return points to the next available entry's address. bits is the
  16677. // requested root table index bits, and on return it is the actual root
  16678. // table index bits. It will differ if the request is greater than the
  16679. // longest code or if it is less than the shortest code.
  16680. // */
  16681. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  16682. bp := tls.Alloc(64)
  16683. defer tls.Free(64)
  16684. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  16685. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  16686. var here Tcode
  16687. var left int32
  16688. var v12, v16 uint16
  16689. var _ /* count at bp+0 */ [16]uint16
  16690. var _ /* offs at bp+32 */ [16]uint16
  16691. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  16692. /*
  16693. Process a set of code lengths to create a canonical Huffman code. The
  16694. code lengths are lens[0..codes-1]. Each length corresponds to the
  16695. symbols 0..codes-1. The Huffman code is generated by first sorting the
  16696. symbols by length from short to long, and retaining the symbol order
  16697. for codes with equal lengths. Then the code starts with all zero bits
  16698. for the first code of the shortest length, and the codes are integer
  16699. increments for the same length, and zeros are appended as the length
  16700. increases. For the deflate format, these bits are stored backwards
  16701. from their more natural integer increment ordering, and so when the
  16702. decoding tables are built in the large loop below, the integer codes
  16703. are incremented backwards.
  16704. This routine assumes, but does not check, that all of the entries in
  16705. lens[] are in the range 0..MAXBITS. The caller must assure this.
  16706. 1..MAXBITS is interpreted as that code length. zero means that that
  16707. symbol does not occur in this code.
  16708. The codes are sorted by computing a count of codes for each length,
  16709. creating from that a table of starting indices for each length in the
  16710. sorted table, and then entering the symbols in order in the sorted
  16711. table. The sorted table is work[], with that space being provided by
  16712. the caller.
  16713. The length counts are used for other purposes as well, i.e. finding
  16714. the minimum and maximum length codes, determining if there are any
  16715. codes at all, checking for a valid set of lengths, and looking ahead
  16716. at length counts to determine sub-table sizes when building the
  16717. decoding tables.
  16718. */
  16719. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  16720. len1 = uint32(0)
  16721. for {
  16722. if !(len1 <= uint32(m_MAXBITS)) {
  16723. break
  16724. }
  16725. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  16726. goto _1
  16727. _1:
  16728. ;
  16729. len1++
  16730. }
  16731. sym = uint32(0)
  16732. for {
  16733. if !(sym < codes) {
  16734. break
  16735. }
  16736. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  16737. goto _2
  16738. _2:
  16739. ;
  16740. sym++
  16741. }
  16742. /* bound code lengths, force root to be within code lengths */
  16743. root = *(*uint32)(unsafe.Pointer(bits))
  16744. max = uint32(m_MAXBITS)
  16745. for {
  16746. if !(max >= uint32(1)) {
  16747. break
  16748. }
  16749. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  16750. break
  16751. }
  16752. goto _3
  16753. _3:
  16754. ;
  16755. max--
  16756. }
  16757. if root > max {
  16758. root = max
  16759. }
  16760. if max == uint32(0) { /* no symbols to code at all */
  16761. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  16762. here.Fbits = libc.Uint8FromInt32(1)
  16763. here.Fval = libc.Uint16FromInt32(0)
  16764. v5 = table
  16765. v4 = *(*uintptr)(unsafe.Pointer(v5))
  16766. *(*uintptr)(unsafe.Pointer(v5)) += 4
  16767. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  16768. v7 = table
  16769. v6 = *(*uintptr)(unsafe.Pointer(v7))
  16770. *(*uintptr)(unsafe.Pointer(v7)) += 4
  16771. *(*Tcode)(unsafe.Pointer(v6)) = here
  16772. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  16773. return 0 /* no symbols, but wait for decoding to report error */
  16774. }
  16775. min = uint32(1)
  16776. for {
  16777. if !(min < max) {
  16778. break
  16779. }
  16780. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  16781. break
  16782. }
  16783. goto _8
  16784. _8:
  16785. ;
  16786. min++
  16787. }
  16788. if root < min {
  16789. root = min
  16790. }
  16791. /* check for an over-subscribed or incomplete set of lengths */
  16792. left = int32(1)
  16793. len1 = uint32(1)
  16794. for {
  16795. if !(len1 <= uint32(m_MAXBITS)) {
  16796. break
  16797. }
  16798. left <<= int32(1)
  16799. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  16800. if left < 0 {
  16801. return -int32(1)
  16802. } /* over-subscribed */
  16803. goto _9
  16804. _9:
  16805. ;
  16806. len1++
  16807. }
  16808. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  16809. return -int32(1)
  16810. } /* incomplete set */
  16811. /* generate offsets into symbol table for each length for sorting */
  16812. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  16813. len1 = uint32(1)
  16814. for {
  16815. if !(len1 < uint32(m_MAXBITS)) {
  16816. break
  16817. }
  16818. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = uint16(int32((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  16819. goto _10
  16820. _10:
  16821. ;
  16822. len1++
  16823. }
  16824. /* sort symbols by length, by symbol order within each length */
  16825. sym = uint32(0)
  16826. for {
  16827. if !(sym < codes) {
  16828. break
  16829. }
  16830. if int32(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  16831. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  16832. v12 = *(*uint16)(unsafe.Pointer(v13))
  16833. *(*uint16)(unsafe.Pointer(v13))++
  16834. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  16835. }
  16836. goto _11
  16837. _11:
  16838. ;
  16839. sym++
  16840. }
  16841. /*
  16842. Create and fill in decoding tables. In this loop, the table being
  16843. filled is at next and has curr index bits. The code being used is huff
  16844. with length len. That code is converted to an index by dropping drop
  16845. bits off of the bottom. For codes where len is less than drop + curr,
  16846. those top drop + curr - len bits are incremented through all values to
  16847. fill the table with replicated entries.
  16848. root is the number of index bits for the root table. When len exceeds
  16849. root, sub-tables are created pointed to by the root entry with an index
  16850. of the low root bits of huff. This is saved in low to check for when a
  16851. new sub-table should be started. drop is zero when the root table is
  16852. being filled, and drop is root when sub-tables are being filled.
  16853. When a new sub-table is needed, it is necessary to look ahead in the
  16854. code lengths to determine what size sub-table is needed. The length
  16855. counts are used for this, and so count[] is decremented as codes are
  16856. entered in the tables.
  16857. used keeps track of how many table entries have been allocated from the
  16858. provided *table space. It is checked for LENS and DIST tables against
  16859. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  16860. the initial root table size constants. See the comments in inftrees.h
  16861. for more information.
  16862. sym increments through all symbols, and the loop terminates when
  16863. all codes of length max, i.e. all codes, have been processed. This
  16864. routine permits incomplete codes, so another loop after this one fills
  16865. in the rest of the decoding tables with invalid code markers.
  16866. */
  16867. /* set up for code type */
  16868. switch type1 {
  16869. case int32(_CODES):
  16870. v14 = work
  16871. extra = v14
  16872. base = v14 /* dummy value--not used */
  16873. match = uint32(20)
  16874. case int32(_LENS):
  16875. base = uintptr(unsafe.Pointer(&_lbase))
  16876. extra = uintptr(unsafe.Pointer(&_lext))
  16877. match = uint32(257)
  16878. default: /* DISTS */
  16879. base = uintptr(unsafe.Pointer(&_dbase))
  16880. extra = uintptr(unsafe.Pointer(&_dext))
  16881. match = uint32(0)
  16882. }
  16883. /* initialize state for loop */
  16884. huff = uint32(0) /* starting code */
  16885. sym = uint32(0) /* starting code symbol */
  16886. len1 = min /* starting code length */
  16887. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  16888. curr = root /* current table index bits */
  16889. drop = uint32(0) /* current bits to drop from code for index */
  16890. low = uint32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  16891. used = uint32(1) << root /* use root table entries */
  16892. mask = used - uint32(1) /* mask for comparing low */
  16893. /* check available table space */
  16894. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  16895. return int32(1)
  16896. }
  16897. /* process all codes and make table entries */
  16898. for {
  16899. /* create table entry */
  16900. here.Fbits = uint8(len1 - drop)
  16901. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  16902. here.Fop = libc.Uint8FromInt32(0)
  16903. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  16904. } else {
  16905. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  16906. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  16907. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  16908. } else {
  16909. here.Fop = uint8(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  16910. here.Fval = uint16(0)
  16911. }
  16912. }
  16913. /* replicate for those indices with low len bits equal to huff */
  16914. incr = uint32(1) << (len1 - drop)
  16915. fill = uint32(1) << curr
  16916. min = fill /* save offset to next table */
  16917. for cond := true; cond; cond = fill != uint32(0) {
  16918. fill -= incr
  16919. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  16920. }
  16921. /* backwards increment the len-bit code huff */
  16922. incr = uint32(1) << (len1 - uint32(1))
  16923. for huff&incr != 0 {
  16924. incr >>= uint32(1)
  16925. }
  16926. if incr != uint32(0) {
  16927. huff &= incr - uint32(1)
  16928. huff += incr
  16929. } else {
  16930. huff = uint32(0)
  16931. }
  16932. /* go to next symbol, update count, len */
  16933. sym++
  16934. v17 = bp + uintptr(len1)*2
  16935. *(*uint16)(unsafe.Pointer(v17))--
  16936. v16 = *(*uint16)(unsafe.Pointer(v17))
  16937. if int32(v16) == 0 {
  16938. if len1 == max {
  16939. break
  16940. }
  16941. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  16942. }
  16943. /* create new sub-table if needed */
  16944. if len1 > root && huff&mask != low {
  16945. /* if first time, transition to sub-tables */
  16946. if drop == uint32(0) {
  16947. drop = root
  16948. }
  16949. /* increment past last table */
  16950. next += uintptr(min) * 4 /* here min is 1 << curr */
  16951. /* determine length of next table */
  16952. curr = len1 - drop
  16953. left = libc.Int32FromInt32(1) << curr
  16954. for curr+drop < max {
  16955. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  16956. if left <= 0 {
  16957. break
  16958. }
  16959. curr++
  16960. left <<= int32(1)
  16961. }
  16962. /* check for enough space */
  16963. used += uint32(1) << curr
  16964. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  16965. return int32(1)
  16966. }
  16967. /* point entry in root table to sub-table */
  16968. low = huff & mask
  16969. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  16970. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  16971. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = uint16((int64(next) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  16972. }
  16973. goto _15
  16974. _15:
  16975. }
  16976. /* fill in remaining table entry if code is incomplete (guaranteed to have
  16977. at most one remaining entry, since if the code is incomplete, the
  16978. maximum code length that was allowed to get this far is one bit) */
  16979. if huff != uint32(0) {
  16980. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  16981. here.Fbits = uint8(len1 - drop)
  16982. here.Fval = libc.Uint16FromInt32(0)
  16983. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  16984. }
  16985. /* set return parameters */
  16986. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  16987. *(*uint32)(unsafe.Pointer(bits)) = root
  16988. return 0
  16989. }
  16990. var _lbase = [31]uint16{
  16991. 0: uint16(3),
  16992. 1: uint16(4),
  16993. 2: uint16(5),
  16994. 3: uint16(6),
  16995. 4: uint16(7),
  16996. 5: uint16(8),
  16997. 6: uint16(9),
  16998. 7: uint16(10),
  16999. 8: uint16(11),
  17000. 9: uint16(13),
  17001. 10: uint16(15),
  17002. 11: uint16(17),
  17003. 12: uint16(19),
  17004. 13: uint16(23),
  17005. 14: uint16(27),
  17006. 15: uint16(31),
  17007. 16: uint16(35),
  17008. 17: uint16(43),
  17009. 18: uint16(51),
  17010. 19: uint16(59),
  17011. 20: uint16(67),
  17012. 21: uint16(83),
  17013. 22: uint16(99),
  17014. 23: uint16(115),
  17015. 24: uint16(131),
  17016. 25: uint16(163),
  17017. 26: uint16(195),
  17018. 27: uint16(227),
  17019. 28: uint16(258),
  17020. }
  17021. var _lext = [31]uint16{
  17022. 0: uint16(16),
  17023. 1: uint16(16),
  17024. 2: uint16(16),
  17025. 3: uint16(16),
  17026. 4: uint16(16),
  17027. 5: uint16(16),
  17028. 6: uint16(16),
  17029. 7: uint16(16),
  17030. 8: uint16(17),
  17031. 9: uint16(17),
  17032. 10: uint16(17),
  17033. 11: uint16(17),
  17034. 12: uint16(18),
  17035. 13: uint16(18),
  17036. 14: uint16(18),
  17037. 15: uint16(18),
  17038. 16: uint16(19),
  17039. 17: uint16(19),
  17040. 18: uint16(19),
  17041. 19: uint16(19),
  17042. 20: uint16(20),
  17043. 21: uint16(20),
  17044. 22: uint16(20),
  17045. 23: uint16(20),
  17046. 24: uint16(21),
  17047. 25: uint16(21),
  17048. 26: uint16(21),
  17049. 27: uint16(21),
  17050. 28: uint16(16),
  17051. 29: uint16(203),
  17052. 30: uint16(77),
  17053. }
  17054. var _dbase = [32]uint16{
  17055. 0: uint16(1),
  17056. 1: uint16(2),
  17057. 2: uint16(3),
  17058. 3: uint16(4),
  17059. 4: uint16(5),
  17060. 5: uint16(7),
  17061. 6: uint16(9),
  17062. 7: uint16(13),
  17063. 8: uint16(17),
  17064. 9: uint16(25),
  17065. 10: uint16(33),
  17066. 11: uint16(49),
  17067. 12: uint16(65),
  17068. 13: uint16(97),
  17069. 14: uint16(129),
  17070. 15: uint16(193),
  17071. 16: uint16(257),
  17072. 17: uint16(385),
  17073. 18: uint16(513),
  17074. 19: uint16(769),
  17075. 20: uint16(1025),
  17076. 21: uint16(1537),
  17077. 22: uint16(2049),
  17078. 23: uint16(3073),
  17079. 24: uint16(4097),
  17080. 25: uint16(6145),
  17081. 26: uint16(8193),
  17082. 27: uint16(12289),
  17083. 28: uint16(16385),
  17084. 29: uint16(24577),
  17085. }
  17086. var _dext = [32]uint16{
  17087. 0: uint16(16),
  17088. 1: uint16(16),
  17089. 2: uint16(16),
  17090. 3: uint16(16),
  17091. 4: uint16(17),
  17092. 5: uint16(17),
  17093. 6: uint16(18),
  17094. 7: uint16(18),
  17095. 8: uint16(19),
  17096. 9: uint16(19),
  17097. 10: uint16(20),
  17098. 11: uint16(20),
  17099. 12: uint16(21),
  17100. 13: uint16(21),
  17101. 14: uint16(22),
  17102. 15: uint16(22),
  17103. 16: uint16(23),
  17104. 17: uint16(23),
  17105. 18: uint16(24),
  17106. 19: uint16(24),
  17107. 20: uint16(25),
  17108. 21: uint16(25),
  17109. 22: uint16(26),
  17110. 23: uint16(26),
  17111. 24: uint16(27),
  17112. 25: uint16(27),
  17113. 26: uint16(28),
  17114. 27: uint16(28),
  17115. 28: uint16(29),
  17116. 29: uint16(29),
  17117. 30: uint16(64),
  17118. 31: uint16(64),
  17119. }
  17120. const m_DIST_CODE_LEN = 512
  17121. const m_END_BLOCK = 256
  17122. const m_MAX_BL_BITS = 7
  17123. const m_REPZ_11_138 = 18
  17124. const m_REPZ_3_10 = 17
  17125. const m_REP_3_6 = 16
  17126. const m_SMALLEST = 1
  17127. const m_TCONST = "const"
  17128. type Tstatic_tree_desc = struct {
  17129. Fstatic_tree uintptr
  17130. Fextra_bits uintptr
  17131. Fextra_base int32
  17132. Felems int32
  17133. Fmax_length int32
  17134. }
  17135. type Tstatic_tree_desc_s = Tstatic_tree_desc
  17136. /* ===========================================================================
  17137. * Constants
  17138. */
  17139. /* Bit length codes must not exceed MAX_BL_BITS bits */
  17140. /* end of block literal code */
  17141. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  17142. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  17143. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  17144. var _extra_lbits = [29]int32{
  17145. 8: int32(1),
  17146. 9: int32(1),
  17147. 10: int32(1),
  17148. 11: int32(1),
  17149. 12: int32(2),
  17150. 13: int32(2),
  17151. 14: int32(2),
  17152. 15: int32(2),
  17153. 16: int32(3),
  17154. 17: int32(3),
  17155. 18: int32(3),
  17156. 19: int32(3),
  17157. 20: int32(4),
  17158. 21: int32(4),
  17159. 22: int32(4),
  17160. 23: int32(4),
  17161. 24: int32(5),
  17162. 25: int32(5),
  17163. 26: int32(5),
  17164. 27: int32(5),
  17165. }
  17166. var _extra_dbits = [30]int32{
  17167. 4: int32(1),
  17168. 5: int32(1),
  17169. 6: int32(2),
  17170. 7: int32(2),
  17171. 8: int32(3),
  17172. 9: int32(3),
  17173. 10: int32(4),
  17174. 11: int32(4),
  17175. 12: int32(5),
  17176. 13: int32(5),
  17177. 14: int32(6),
  17178. 15: int32(6),
  17179. 16: int32(7),
  17180. 17: int32(7),
  17181. 18: int32(8),
  17182. 19: int32(8),
  17183. 20: int32(9),
  17184. 21: int32(9),
  17185. 22: int32(10),
  17186. 23: int32(10),
  17187. 24: int32(11),
  17188. 25: int32(11),
  17189. 26: int32(12),
  17190. 27: int32(12),
  17191. 28: int32(13),
  17192. 29: int32(13),
  17193. }
  17194. var _extra_blbits = [19]int32{
  17195. 16: int32(2),
  17196. 17: int32(3),
  17197. 18: int32(7),
  17198. }
  17199. var _bl_order = [19]Tuch{
  17200. 0: uint8(16),
  17201. 1: uint8(17),
  17202. 2: uint8(18),
  17203. 4: uint8(8),
  17204. 5: uint8(7),
  17205. 6: uint8(9),
  17206. 7: uint8(6),
  17207. 8: uint8(10),
  17208. 9: uint8(5),
  17209. 10: uint8(11),
  17210. 11: uint8(4),
  17211. 12: uint8(12),
  17212. 13: uint8(3),
  17213. 14: uint8(13),
  17214. 15: uint8(2),
  17215. 16: uint8(14),
  17216. 17: uint8(1),
  17217. 18: uint8(15),
  17218. }
  17219. var _static_ltree = [288]Tct_data{
  17220. 0: {
  17221. Ffc: *(*struct {
  17222. Fcode [0]Tush
  17223. Ffreq Tush
  17224. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  17225. Fdl: *(*struct {
  17226. Flen1 [0]Tush
  17227. Fdad Tush
  17228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17229. },
  17230. 1: {
  17231. Ffc: *(*struct {
  17232. Fcode [0]Tush
  17233. Ffreq Tush
  17234. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  17235. Fdl: *(*struct {
  17236. Flen1 [0]Tush
  17237. Fdad Tush
  17238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17239. },
  17240. 2: {
  17241. Ffc: *(*struct {
  17242. Fcode [0]Tush
  17243. Ffreq Tush
  17244. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  17245. Fdl: *(*struct {
  17246. Flen1 [0]Tush
  17247. Fdad Tush
  17248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17249. },
  17250. 3: {
  17251. Ffc: *(*struct {
  17252. Fcode [0]Tush
  17253. Ffreq Tush
  17254. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  17255. Fdl: *(*struct {
  17256. Flen1 [0]Tush
  17257. Fdad Tush
  17258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17259. },
  17260. 4: {
  17261. Ffc: *(*struct {
  17262. Fcode [0]Tush
  17263. Ffreq Tush
  17264. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  17265. Fdl: *(*struct {
  17266. Flen1 [0]Tush
  17267. Fdad Tush
  17268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17269. },
  17270. 5: {
  17271. Ffc: *(*struct {
  17272. Fcode [0]Tush
  17273. Ffreq Tush
  17274. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  17275. Fdl: *(*struct {
  17276. Flen1 [0]Tush
  17277. Fdad Tush
  17278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17279. },
  17280. 6: {
  17281. Ffc: *(*struct {
  17282. Fcode [0]Tush
  17283. Ffreq Tush
  17284. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  17285. Fdl: *(*struct {
  17286. Flen1 [0]Tush
  17287. Fdad Tush
  17288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17289. },
  17290. 7: {
  17291. Ffc: *(*struct {
  17292. Fcode [0]Tush
  17293. Ffreq Tush
  17294. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  17295. Fdl: *(*struct {
  17296. Flen1 [0]Tush
  17297. Fdad Tush
  17298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17299. },
  17300. 8: {
  17301. Ffc: *(*struct {
  17302. Fcode [0]Tush
  17303. Ffreq Tush
  17304. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  17305. Fdl: *(*struct {
  17306. Flen1 [0]Tush
  17307. Fdad Tush
  17308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17309. },
  17310. 9: {
  17311. Ffc: *(*struct {
  17312. Fcode [0]Tush
  17313. Ffreq Tush
  17314. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  17315. Fdl: *(*struct {
  17316. Flen1 [0]Tush
  17317. Fdad Tush
  17318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17319. },
  17320. 10: {
  17321. Ffc: *(*struct {
  17322. Fcode [0]Tush
  17323. Ffreq Tush
  17324. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  17325. Fdl: *(*struct {
  17326. Flen1 [0]Tush
  17327. Fdad Tush
  17328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17329. },
  17330. 11: {
  17331. Ffc: *(*struct {
  17332. Fcode [0]Tush
  17333. Ffreq Tush
  17334. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  17335. Fdl: *(*struct {
  17336. Flen1 [0]Tush
  17337. Fdad Tush
  17338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17339. },
  17340. 12: {
  17341. Ffc: *(*struct {
  17342. Fcode [0]Tush
  17343. Ffreq Tush
  17344. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  17345. Fdl: *(*struct {
  17346. Flen1 [0]Tush
  17347. Fdad Tush
  17348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17349. },
  17350. 13: {
  17351. Ffc: *(*struct {
  17352. Fcode [0]Tush
  17353. Ffreq Tush
  17354. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  17355. Fdl: *(*struct {
  17356. Flen1 [0]Tush
  17357. Fdad Tush
  17358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17359. },
  17360. 14: {
  17361. Ffc: *(*struct {
  17362. Fcode [0]Tush
  17363. Ffreq Tush
  17364. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  17365. Fdl: *(*struct {
  17366. Flen1 [0]Tush
  17367. Fdad Tush
  17368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17369. },
  17370. 15: {
  17371. Ffc: *(*struct {
  17372. Fcode [0]Tush
  17373. Ffreq Tush
  17374. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  17375. Fdl: *(*struct {
  17376. Flen1 [0]Tush
  17377. Fdad Tush
  17378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17379. },
  17380. 16: {
  17381. Ffc: *(*struct {
  17382. Fcode [0]Tush
  17383. Ffreq Tush
  17384. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  17385. Fdl: *(*struct {
  17386. Flen1 [0]Tush
  17387. Fdad Tush
  17388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17389. },
  17390. 17: {
  17391. Ffc: *(*struct {
  17392. Fcode [0]Tush
  17393. Ffreq Tush
  17394. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  17395. Fdl: *(*struct {
  17396. Flen1 [0]Tush
  17397. Fdad Tush
  17398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17399. },
  17400. 18: {
  17401. Ffc: *(*struct {
  17402. Fcode [0]Tush
  17403. Ffreq Tush
  17404. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  17405. Fdl: *(*struct {
  17406. Flen1 [0]Tush
  17407. Fdad Tush
  17408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17409. },
  17410. 19: {
  17411. Ffc: *(*struct {
  17412. Fcode [0]Tush
  17413. Ffreq Tush
  17414. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  17415. Fdl: *(*struct {
  17416. Flen1 [0]Tush
  17417. Fdad Tush
  17418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17419. },
  17420. 20: {
  17421. Ffc: *(*struct {
  17422. Fcode [0]Tush
  17423. Ffreq Tush
  17424. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  17425. Fdl: *(*struct {
  17426. Flen1 [0]Tush
  17427. Fdad Tush
  17428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17429. },
  17430. 21: {
  17431. Ffc: *(*struct {
  17432. Fcode [0]Tush
  17433. Ffreq Tush
  17434. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  17435. Fdl: *(*struct {
  17436. Flen1 [0]Tush
  17437. Fdad Tush
  17438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17439. },
  17440. 22: {
  17441. Ffc: *(*struct {
  17442. Fcode [0]Tush
  17443. Ffreq Tush
  17444. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  17445. Fdl: *(*struct {
  17446. Flen1 [0]Tush
  17447. Fdad Tush
  17448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17449. },
  17450. 23: {
  17451. Ffc: *(*struct {
  17452. Fcode [0]Tush
  17453. Ffreq Tush
  17454. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  17455. Fdl: *(*struct {
  17456. Flen1 [0]Tush
  17457. Fdad Tush
  17458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17459. },
  17460. 24: {
  17461. Ffc: *(*struct {
  17462. Fcode [0]Tush
  17463. Ffreq Tush
  17464. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  17465. Fdl: *(*struct {
  17466. Flen1 [0]Tush
  17467. Fdad Tush
  17468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17469. },
  17470. 25: {
  17471. Ffc: *(*struct {
  17472. Fcode [0]Tush
  17473. Ffreq Tush
  17474. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  17475. Fdl: *(*struct {
  17476. Flen1 [0]Tush
  17477. Fdad Tush
  17478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17479. },
  17480. 26: {
  17481. Ffc: *(*struct {
  17482. Fcode [0]Tush
  17483. Ffreq Tush
  17484. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  17485. Fdl: *(*struct {
  17486. Flen1 [0]Tush
  17487. Fdad Tush
  17488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17489. },
  17490. 27: {
  17491. Ffc: *(*struct {
  17492. Fcode [0]Tush
  17493. Ffreq Tush
  17494. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  17495. Fdl: *(*struct {
  17496. Flen1 [0]Tush
  17497. Fdad Tush
  17498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17499. },
  17500. 28: {
  17501. Ffc: *(*struct {
  17502. Fcode [0]Tush
  17503. Ffreq Tush
  17504. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  17505. Fdl: *(*struct {
  17506. Flen1 [0]Tush
  17507. Fdad Tush
  17508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17509. },
  17510. 29: {
  17511. Ffc: *(*struct {
  17512. Fcode [0]Tush
  17513. Ffreq Tush
  17514. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  17515. Fdl: *(*struct {
  17516. Flen1 [0]Tush
  17517. Fdad Tush
  17518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17519. },
  17520. 30: {
  17521. Ffc: *(*struct {
  17522. Fcode [0]Tush
  17523. Ffreq Tush
  17524. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  17525. Fdl: *(*struct {
  17526. Flen1 [0]Tush
  17527. Fdad Tush
  17528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17529. },
  17530. 31: {
  17531. Ffc: *(*struct {
  17532. Fcode [0]Tush
  17533. Ffreq Tush
  17534. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  17535. Fdl: *(*struct {
  17536. Flen1 [0]Tush
  17537. Fdad Tush
  17538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17539. },
  17540. 32: {
  17541. Ffc: *(*struct {
  17542. Fcode [0]Tush
  17543. Ffreq Tush
  17544. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  17545. Fdl: *(*struct {
  17546. Flen1 [0]Tush
  17547. Fdad Tush
  17548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17549. },
  17550. 33: {
  17551. Ffc: *(*struct {
  17552. Fcode [0]Tush
  17553. Ffreq Tush
  17554. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  17555. Fdl: *(*struct {
  17556. Flen1 [0]Tush
  17557. Fdad Tush
  17558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17559. },
  17560. 34: {
  17561. Ffc: *(*struct {
  17562. Fcode [0]Tush
  17563. Ffreq Tush
  17564. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  17565. Fdl: *(*struct {
  17566. Flen1 [0]Tush
  17567. Fdad Tush
  17568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17569. },
  17570. 35: {
  17571. Ffc: *(*struct {
  17572. Fcode [0]Tush
  17573. Ffreq Tush
  17574. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  17575. Fdl: *(*struct {
  17576. Flen1 [0]Tush
  17577. Fdad Tush
  17578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17579. },
  17580. 36: {
  17581. Ffc: *(*struct {
  17582. Fcode [0]Tush
  17583. Ffreq Tush
  17584. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  17585. Fdl: *(*struct {
  17586. Flen1 [0]Tush
  17587. Fdad Tush
  17588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17589. },
  17590. 37: {
  17591. Ffc: *(*struct {
  17592. Fcode [0]Tush
  17593. Ffreq Tush
  17594. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  17595. Fdl: *(*struct {
  17596. Flen1 [0]Tush
  17597. Fdad Tush
  17598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17599. },
  17600. 38: {
  17601. Ffc: *(*struct {
  17602. Fcode [0]Tush
  17603. Ffreq Tush
  17604. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  17605. Fdl: *(*struct {
  17606. Flen1 [0]Tush
  17607. Fdad Tush
  17608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17609. },
  17610. 39: {
  17611. Ffc: *(*struct {
  17612. Fcode [0]Tush
  17613. Ffreq Tush
  17614. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  17615. Fdl: *(*struct {
  17616. Flen1 [0]Tush
  17617. Fdad Tush
  17618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17619. },
  17620. 40: {
  17621. Ffc: *(*struct {
  17622. Fcode [0]Tush
  17623. Ffreq Tush
  17624. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  17625. Fdl: *(*struct {
  17626. Flen1 [0]Tush
  17627. Fdad Tush
  17628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17629. },
  17630. 41: {
  17631. Ffc: *(*struct {
  17632. Fcode [0]Tush
  17633. Ffreq Tush
  17634. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  17635. Fdl: *(*struct {
  17636. Flen1 [0]Tush
  17637. Fdad Tush
  17638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17639. },
  17640. 42: {
  17641. Ffc: *(*struct {
  17642. Fcode [0]Tush
  17643. Ffreq Tush
  17644. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  17645. Fdl: *(*struct {
  17646. Flen1 [0]Tush
  17647. Fdad Tush
  17648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17649. },
  17650. 43: {
  17651. Ffc: *(*struct {
  17652. Fcode [0]Tush
  17653. Ffreq Tush
  17654. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  17655. Fdl: *(*struct {
  17656. Flen1 [0]Tush
  17657. Fdad Tush
  17658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17659. },
  17660. 44: {
  17661. Ffc: *(*struct {
  17662. Fcode [0]Tush
  17663. Ffreq Tush
  17664. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  17665. Fdl: *(*struct {
  17666. Flen1 [0]Tush
  17667. Fdad Tush
  17668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17669. },
  17670. 45: {
  17671. Ffc: *(*struct {
  17672. Fcode [0]Tush
  17673. Ffreq Tush
  17674. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  17675. Fdl: *(*struct {
  17676. Flen1 [0]Tush
  17677. Fdad Tush
  17678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17679. },
  17680. 46: {
  17681. Ffc: *(*struct {
  17682. Fcode [0]Tush
  17683. Ffreq Tush
  17684. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  17685. Fdl: *(*struct {
  17686. Flen1 [0]Tush
  17687. Fdad Tush
  17688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17689. },
  17690. 47: {
  17691. Ffc: *(*struct {
  17692. Fcode [0]Tush
  17693. Ffreq Tush
  17694. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  17695. Fdl: *(*struct {
  17696. Flen1 [0]Tush
  17697. Fdad Tush
  17698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17699. },
  17700. 48: {
  17701. Ffc: *(*struct {
  17702. Fcode [0]Tush
  17703. Ffreq Tush
  17704. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  17705. Fdl: *(*struct {
  17706. Flen1 [0]Tush
  17707. Fdad Tush
  17708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17709. },
  17710. 49: {
  17711. Ffc: *(*struct {
  17712. Fcode [0]Tush
  17713. Ffreq Tush
  17714. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  17715. Fdl: *(*struct {
  17716. Flen1 [0]Tush
  17717. Fdad Tush
  17718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17719. },
  17720. 50: {
  17721. Ffc: *(*struct {
  17722. Fcode [0]Tush
  17723. Ffreq Tush
  17724. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  17725. Fdl: *(*struct {
  17726. Flen1 [0]Tush
  17727. Fdad Tush
  17728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17729. },
  17730. 51: {
  17731. Ffc: *(*struct {
  17732. Fcode [0]Tush
  17733. Ffreq Tush
  17734. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  17735. Fdl: *(*struct {
  17736. Flen1 [0]Tush
  17737. Fdad Tush
  17738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17739. },
  17740. 52: {
  17741. Ffc: *(*struct {
  17742. Fcode [0]Tush
  17743. Ffreq Tush
  17744. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  17745. Fdl: *(*struct {
  17746. Flen1 [0]Tush
  17747. Fdad Tush
  17748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17749. },
  17750. 53: {
  17751. Ffc: *(*struct {
  17752. Fcode [0]Tush
  17753. Ffreq Tush
  17754. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  17755. Fdl: *(*struct {
  17756. Flen1 [0]Tush
  17757. Fdad Tush
  17758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17759. },
  17760. 54: {
  17761. Ffc: *(*struct {
  17762. Fcode [0]Tush
  17763. Ffreq Tush
  17764. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  17765. Fdl: *(*struct {
  17766. Flen1 [0]Tush
  17767. Fdad Tush
  17768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17769. },
  17770. 55: {
  17771. Ffc: *(*struct {
  17772. Fcode [0]Tush
  17773. Ffreq Tush
  17774. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  17775. Fdl: *(*struct {
  17776. Flen1 [0]Tush
  17777. Fdad Tush
  17778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17779. },
  17780. 56: {
  17781. Ffc: *(*struct {
  17782. Fcode [0]Tush
  17783. Ffreq Tush
  17784. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  17785. Fdl: *(*struct {
  17786. Flen1 [0]Tush
  17787. Fdad Tush
  17788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17789. },
  17790. 57: {
  17791. Ffc: *(*struct {
  17792. Fcode [0]Tush
  17793. Ffreq Tush
  17794. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  17795. Fdl: *(*struct {
  17796. Flen1 [0]Tush
  17797. Fdad Tush
  17798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17799. },
  17800. 58: {
  17801. Ffc: *(*struct {
  17802. Fcode [0]Tush
  17803. Ffreq Tush
  17804. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  17805. Fdl: *(*struct {
  17806. Flen1 [0]Tush
  17807. Fdad Tush
  17808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17809. },
  17810. 59: {
  17811. Ffc: *(*struct {
  17812. Fcode [0]Tush
  17813. Ffreq Tush
  17814. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  17815. Fdl: *(*struct {
  17816. Flen1 [0]Tush
  17817. Fdad Tush
  17818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17819. },
  17820. 60: {
  17821. Ffc: *(*struct {
  17822. Fcode [0]Tush
  17823. Ffreq Tush
  17824. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  17825. Fdl: *(*struct {
  17826. Flen1 [0]Tush
  17827. Fdad Tush
  17828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17829. },
  17830. 61: {
  17831. Ffc: *(*struct {
  17832. Fcode [0]Tush
  17833. Ffreq Tush
  17834. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  17835. Fdl: *(*struct {
  17836. Flen1 [0]Tush
  17837. Fdad Tush
  17838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17839. },
  17840. 62: {
  17841. Ffc: *(*struct {
  17842. Fcode [0]Tush
  17843. Ffreq Tush
  17844. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  17845. Fdl: *(*struct {
  17846. Flen1 [0]Tush
  17847. Fdad Tush
  17848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17849. },
  17850. 63: {
  17851. Ffc: *(*struct {
  17852. Fcode [0]Tush
  17853. Ffreq Tush
  17854. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  17855. Fdl: *(*struct {
  17856. Flen1 [0]Tush
  17857. Fdad Tush
  17858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17859. },
  17860. 64: {
  17861. Ffc: *(*struct {
  17862. Fcode [0]Tush
  17863. Ffreq Tush
  17864. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  17865. Fdl: *(*struct {
  17866. Flen1 [0]Tush
  17867. Fdad Tush
  17868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17869. },
  17870. 65: {
  17871. Ffc: *(*struct {
  17872. Fcode [0]Tush
  17873. Ffreq Tush
  17874. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  17875. Fdl: *(*struct {
  17876. Flen1 [0]Tush
  17877. Fdad Tush
  17878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17879. },
  17880. 66: {
  17881. Ffc: *(*struct {
  17882. Fcode [0]Tush
  17883. Ffreq Tush
  17884. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  17885. Fdl: *(*struct {
  17886. Flen1 [0]Tush
  17887. Fdad Tush
  17888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17889. },
  17890. 67: {
  17891. Ffc: *(*struct {
  17892. Fcode [0]Tush
  17893. Ffreq Tush
  17894. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  17895. Fdl: *(*struct {
  17896. Flen1 [0]Tush
  17897. Fdad Tush
  17898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17899. },
  17900. 68: {
  17901. Ffc: *(*struct {
  17902. Fcode [0]Tush
  17903. Ffreq Tush
  17904. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  17905. Fdl: *(*struct {
  17906. Flen1 [0]Tush
  17907. Fdad Tush
  17908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17909. },
  17910. 69: {
  17911. Ffc: *(*struct {
  17912. Fcode [0]Tush
  17913. Ffreq Tush
  17914. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  17915. Fdl: *(*struct {
  17916. Flen1 [0]Tush
  17917. Fdad Tush
  17918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17919. },
  17920. 70: {
  17921. Ffc: *(*struct {
  17922. Fcode [0]Tush
  17923. Ffreq Tush
  17924. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  17925. Fdl: *(*struct {
  17926. Flen1 [0]Tush
  17927. Fdad Tush
  17928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17929. },
  17930. 71: {
  17931. Ffc: *(*struct {
  17932. Fcode [0]Tush
  17933. Ffreq Tush
  17934. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  17935. Fdl: *(*struct {
  17936. Flen1 [0]Tush
  17937. Fdad Tush
  17938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17939. },
  17940. 72: {
  17941. Ffc: *(*struct {
  17942. Fcode [0]Tush
  17943. Ffreq Tush
  17944. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  17945. Fdl: *(*struct {
  17946. Flen1 [0]Tush
  17947. Fdad Tush
  17948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17949. },
  17950. 73: {
  17951. Ffc: *(*struct {
  17952. Fcode [0]Tush
  17953. Ffreq Tush
  17954. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  17955. Fdl: *(*struct {
  17956. Flen1 [0]Tush
  17957. Fdad Tush
  17958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17959. },
  17960. 74: {
  17961. Ffc: *(*struct {
  17962. Fcode [0]Tush
  17963. Ffreq Tush
  17964. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  17965. Fdl: *(*struct {
  17966. Flen1 [0]Tush
  17967. Fdad Tush
  17968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17969. },
  17970. 75: {
  17971. Ffc: *(*struct {
  17972. Fcode [0]Tush
  17973. Ffreq Tush
  17974. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  17975. Fdl: *(*struct {
  17976. Flen1 [0]Tush
  17977. Fdad Tush
  17978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17979. },
  17980. 76: {
  17981. Ffc: *(*struct {
  17982. Fcode [0]Tush
  17983. Ffreq Tush
  17984. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  17985. Fdl: *(*struct {
  17986. Flen1 [0]Tush
  17987. Fdad Tush
  17988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17989. },
  17990. 77: {
  17991. Ffc: *(*struct {
  17992. Fcode [0]Tush
  17993. Ffreq Tush
  17994. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  17995. Fdl: *(*struct {
  17996. Flen1 [0]Tush
  17997. Fdad Tush
  17998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  17999. },
  18000. 78: {
  18001. Ffc: *(*struct {
  18002. Fcode [0]Tush
  18003. Ffreq Tush
  18004. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  18005. Fdl: *(*struct {
  18006. Flen1 [0]Tush
  18007. Fdad Tush
  18008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18009. },
  18010. 79: {
  18011. Ffc: *(*struct {
  18012. Fcode [0]Tush
  18013. Ffreq Tush
  18014. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  18015. Fdl: *(*struct {
  18016. Flen1 [0]Tush
  18017. Fdad Tush
  18018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18019. },
  18020. 80: {
  18021. Ffc: *(*struct {
  18022. Fcode [0]Tush
  18023. Ffreq Tush
  18024. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  18025. Fdl: *(*struct {
  18026. Flen1 [0]Tush
  18027. Fdad Tush
  18028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18029. },
  18030. 81: {
  18031. Ffc: *(*struct {
  18032. Fcode [0]Tush
  18033. Ffreq Tush
  18034. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  18035. Fdl: *(*struct {
  18036. Flen1 [0]Tush
  18037. Fdad Tush
  18038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18039. },
  18040. 82: {
  18041. Ffc: *(*struct {
  18042. Fcode [0]Tush
  18043. Ffreq Tush
  18044. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  18045. Fdl: *(*struct {
  18046. Flen1 [0]Tush
  18047. Fdad Tush
  18048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18049. },
  18050. 83: {
  18051. Ffc: *(*struct {
  18052. Fcode [0]Tush
  18053. Ffreq Tush
  18054. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  18055. Fdl: *(*struct {
  18056. Flen1 [0]Tush
  18057. Fdad Tush
  18058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18059. },
  18060. 84: {
  18061. Ffc: *(*struct {
  18062. Fcode [0]Tush
  18063. Ffreq Tush
  18064. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  18065. Fdl: *(*struct {
  18066. Flen1 [0]Tush
  18067. Fdad Tush
  18068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18069. },
  18070. 85: {
  18071. Ffc: *(*struct {
  18072. Fcode [0]Tush
  18073. Ffreq Tush
  18074. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  18075. Fdl: *(*struct {
  18076. Flen1 [0]Tush
  18077. Fdad Tush
  18078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18079. },
  18080. 86: {
  18081. Ffc: *(*struct {
  18082. Fcode [0]Tush
  18083. Ffreq Tush
  18084. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  18085. Fdl: *(*struct {
  18086. Flen1 [0]Tush
  18087. Fdad Tush
  18088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18089. },
  18090. 87: {
  18091. Ffc: *(*struct {
  18092. Fcode [0]Tush
  18093. Ffreq Tush
  18094. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  18095. Fdl: *(*struct {
  18096. Flen1 [0]Tush
  18097. Fdad Tush
  18098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18099. },
  18100. 88: {
  18101. Ffc: *(*struct {
  18102. Fcode [0]Tush
  18103. Ffreq Tush
  18104. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  18105. Fdl: *(*struct {
  18106. Flen1 [0]Tush
  18107. Fdad Tush
  18108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18109. },
  18110. 89: {
  18111. Ffc: *(*struct {
  18112. Fcode [0]Tush
  18113. Ffreq Tush
  18114. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  18115. Fdl: *(*struct {
  18116. Flen1 [0]Tush
  18117. Fdad Tush
  18118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18119. },
  18120. 90: {
  18121. Ffc: *(*struct {
  18122. Fcode [0]Tush
  18123. Ffreq Tush
  18124. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  18125. Fdl: *(*struct {
  18126. Flen1 [0]Tush
  18127. Fdad Tush
  18128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18129. },
  18130. 91: {
  18131. Ffc: *(*struct {
  18132. Fcode [0]Tush
  18133. Ffreq Tush
  18134. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  18135. Fdl: *(*struct {
  18136. Flen1 [0]Tush
  18137. Fdad Tush
  18138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18139. },
  18140. 92: {
  18141. Ffc: *(*struct {
  18142. Fcode [0]Tush
  18143. Ffreq Tush
  18144. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  18145. Fdl: *(*struct {
  18146. Flen1 [0]Tush
  18147. Fdad Tush
  18148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18149. },
  18150. 93: {
  18151. Ffc: *(*struct {
  18152. Fcode [0]Tush
  18153. Ffreq Tush
  18154. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  18155. Fdl: *(*struct {
  18156. Flen1 [0]Tush
  18157. Fdad Tush
  18158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18159. },
  18160. 94: {
  18161. Ffc: *(*struct {
  18162. Fcode [0]Tush
  18163. Ffreq Tush
  18164. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  18165. Fdl: *(*struct {
  18166. Flen1 [0]Tush
  18167. Fdad Tush
  18168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18169. },
  18170. 95: {
  18171. Ffc: *(*struct {
  18172. Fcode [0]Tush
  18173. Ffreq Tush
  18174. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  18175. Fdl: *(*struct {
  18176. Flen1 [0]Tush
  18177. Fdad Tush
  18178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18179. },
  18180. 96: {
  18181. Ffc: *(*struct {
  18182. Fcode [0]Tush
  18183. Ffreq Tush
  18184. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18185. Fdl: *(*struct {
  18186. Flen1 [0]Tush
  18187. Fdad Tush
  18188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18189. },
  18190. 97: {
  18191. Ffc: *(*struct {
  18192. Fcode [0]Tush
  18193. Ffreq Tush
  18194. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  18195. Fdl: *(*struct {
  18196. Flen1 [0]Tush
  18197. Fdad Tush
  18198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18199. },
  18200. 98: {
  18201. Ffc: *(*struct {
  18202. Fcode [0]Tush
  18203. Ffreq Tush
  18204. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  18205. Fdl: *(*struct {
  18206. Flen1 [0]Tush
  18207. Fdad Tush
  18208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18209. },
  18210. 99: {
  18211. Ffc: *(*struct {
  18212. Fcode [0]Tush
  18213. Ffreq Tush
  18214. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  18215. Fdl: *(*struct {
  18216. Flen1 [0]Tush
  18217. Fdad Tush
  18218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18219. },
  18220. 100: {
  18221. Ffc: *(*struct {
  18222. Fcode [0]Tush
  18223. Ffreq Tush
  18224. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  18225. Fdl: *(*struct {
  18226. Flen1 [0]Tush
  18227. Fdad Tush
  18228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18229. },
  18230. 101: {
  18231. Ffc: *(*struct {
  18232. Fcode [0]Tush
  18233. Ffreq Tush
  18234. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  18235. Fdl: *(*struct {
  18236. Flen1 [0]Tush
  18237. Fdad Tush
  18238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18239. },
  18240. 102: {
  18241. Ffc: *(*struct {
  18242. Fcode [0]Tush
  18243. Ffreq Tush
  18244. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  18245. Fdl: *(*struct {
  18246. Flen1 [0]Tush
  18247. Fdad Tush
  18248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18249. },
  18250. 103: {
  18251. Ffc: *(*struct {
  18252. Fcode [0]Tush
  18253. Ffreq Tush
  18254. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  18255. Fdl: *(*struct {
  18256. Flen1 [0]Tush
  18257. Fdad Tush
  18258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18259. },
  18260. 104: {
  18261. Ffc: *(*struct {
  18262. Fcode [0]Tush
  18263. Ffreq Tush
  18264. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  18265. Fdl: *(*struct {
  18266. Flen1 [0]Tush
  18267. Fdad Tush
  18268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18269. },
  18270. 105: {
  18271. Ffc: *(*struct {
  18272. Fcode [0]Tush
  18273. Ffreq Tush
  18274. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  18275. Fdl: *(*struct {
  18276. Flen1 [0]Tush
  18277. Fdad Tush
  18278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18279. },
  18280. 106: {
  18281. Ffc: *(*struct {
  18282. Fcode [0]Tush
  18283. Ffreq Tush
  18284. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  18285. Fdl: *(*struct {
  18286. Flen1 [0]Tush
  18287. Fdad Tush
  18288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18289. },
  18290. 107: {
  18291. Ffc: *(*struct {
  18292. Fcode [0]Tush
  18293. Ffreq Tush
  18294. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  18295. Fdl: *(*struct {
  18296. Flen1 [0]Tush
  18297. Fdad Tush
  18298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18299. },
  18300. 108: {
  18301. Ffc: *(*struct {
  18302. Fcode [0]Tush
  18303. Ffreq Tush
  18304. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  18305. Fdl: *(*struct {
  18306. Flen1 [0]Tush
  18307. Fdad Tush
  18308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18309. },
  18310. 109: {
  18311. Ffc: *(*struct {
  18312. Fcode [0]Tush
  18313. Ffreq Tush
  18314. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  18315. Fdl: *(*struct {
  18316. Flen1 [0]Tush
  18317. Fdad Tush
  18318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18319. },
  18320. 110: {
  18321. Ffc: *(*struct {
  18322. Fcode [0]Tush
  18323. Ffreq Tush
  18324. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  18325. Fdl: *(*struct {
  18326. Flen1 [0]Tush
  18327. Fdad Tush
  18328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18329. },
  18330. 111: {
  18331. Ffc: *(*struct {
  18332. Fcode [0]Tush
  18333. Ffreq Tush
  18334. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  18335. Fdl: *(*struct {
  18336. Flen1 [0]Tush
  18337. Fdad Tush
  18338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18339. },
  18340. 112: {
  18341. Ffc: *(*struct {
  18342. Fcode [0]Tush
  18343. Ffreq Tush
  18344. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  18345. Fdl: *(*struct {
  18346. Flen1 [0]Tush
  18347. Fdad Tush
  18348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18349. },
  18350. 113: {
  18351. Ffc: *(*struct {
  18352. Fcode [0]Tush
  18353. Ffreq Tush
  18354. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  18355. Fdl: *(*struct {
  18356. Flen1 [0]Tush
  18357. Fdad Tush
  18358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18359. },
  18360. 114: {
  18361. Ffc: *(*struct {
  18362. Fcode [0]Tush
  18363. Ffreq Tush
  18364. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  18365. Fdl: *(*struct {
  18366. Flen1 [0]Tush
  18367. Fdad Tush
  18368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18369. },
  18370. 115: {
  18371. Ffc: *(*struct {
  18372. Fcode [0]Tush
  18373. Ffreq Tush
  18374. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  18375. Fdl: *(*struct {
  18376. Flen1 [0]Tush
  18377. Fdad Tush
  18378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18379. },
  18380. 116: {
  18381. Ffc: *(*struct {
  18382. Fcode [0]Tush
  18383. Ffreq Tush
  18384. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  18385. Fdl: *(*struct {
  18386. Flen1 [0]Tush
  18387. Fdad Tush
  18388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18389. },
  18390. 117: {
  18391. Ffc: *(*struct {
  18392. Fcode [0]Tush
  18393. Ffreq Tush
  18394. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  18395. Fdl: *(*struct {
  18396. Flen1 [0]Tush
  18397. Fdad Tush
  18398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18399. },
  18400. 118: {
  18401. Ffc: *(*struct {
  18402. Fcode [0]Tush
  18403. Ffreq Tush
  18404. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  18405. Fdl: *(*struct {
  18406. Flen1 [0]Tush
  18407. Fdad Tush
  18408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18409. },
  18410. 119: {
  18411. Ffc: *(*struct {
  18412. Fcode [0]Tush
  18413. Ffreq Tush
  18414. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  18415. Fdl: *(*struct {
  18416. Flen1 [0]Tush
  18417. Fdad Tush
  18418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18419. },
  18420. 120: {
  18421. Ffc: *(*struct {
  18422. Fcode [0]Tush
  18423. Ffreq Tush
  18424. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  18425. Fdl: *(*struct {
  18426. Flen1 [0]Tush
  18427. Fdad Tush
  18428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18429. },
  18430. 121: {
  18431. Ffc: *(*struct {
  18432. Fcode [0]Tush
  18433. Ffreq Tush
  18434. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  18435. Fdl: *(*struct {
  18436. Flen1 [0]Tush
  18437. Fdad Tush
  18438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18439. },
  18440. 122: {
  18441. Ffc: *(*struct {
  18442. Fcode [0]Tush
  18443. Ffreq Tush
  18444. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  18445. Fdl: *(*struct {
  18446. Flen1 [0]Tush
  18447. Fdad Tush
  18448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18449. },
  18450. 123: {
  18451. Ffc: *(*struct {
  18452. Fcode [0]Tush
  18453. Ffreq Tush
  18454. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  18455. Fdl: *(*struct {
  18456. Flen1 [0]Tush
  18457. Fdad Tush
  18458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18459. },
  18460. 124: {
  18461. Ffc: *(*struct {
  18462. Fcode [0]Tush
  18463. Ffreq Tush
  18464. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  18465. Fdl: *(*struct {
  18466. Flen1 [0]Tush
  18467. Fdad Tush
  18468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18469. },
  18470. 125: {
  18471. Ffc: *(*struct {
  18472. Fcode [0]Tush
  18473. Ffreq Tush
  18474. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  18475. Fdl: *(*struct {
  18476. Flen1 [0]Tush
  18477. Fdad Tush
  18478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18479. },
  18480. 126: {
  18481. Ffc: *(*struct {
  18482. Fcode [0]Tush
  18483. Ffreq Tush
  18484. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  18485. Fdl: *(*struct {
  18486. Flen1 [0]Tush
  18487. Fdad Tush
  18488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18489. },
  18490. 127: {
  18491. Ffc: *(*struct {
  18492. Fcode [0]Tush
  18493. Ffreq Tush
  18494. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  18495. Fdl: *(*struct {
  18496. Flen1 [0]Tush
  18497. Fdad Tush
  18498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18499. },
  18500. 128: {
  18501. Ffc: *(*struct {
  18502. Fcode [0]Tush
  18503. Ffreq Tush
  18504. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  18505. Fdl: *(*struct {
  18506. Flen1 [0]Tush
  18507. Fdad Tush
  18508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18509. },
  18510. 129: {
  18511. Ffc: *(*struct {
  18512. Fcode [0]Tush
  18513. Ffreq Tush
  18514. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  18515. Fdl: *(*struct {
  18516. Flen1 [0]Tush
  18517. Fdad Tush
  18518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18519. },
  18520. 130: {
  18521. Ffc: *(*struct {
  18522. Fcode [0]Tush
  18523. Ffreq Tush
  18524. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  18525. Fdl: *(*struct {
  18526. Flen1 [0]Tush
  18527. Fdad Tush
  18528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18529. },
  18530. 131: {
  18531. Ffc: *(*struct {
  18532. Fcode [0]Tush
  18533. Ffreq Tush
  18534. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  18535. Fdl: *(*struct {
  18536. Flen1 [0]Tush
  18537. Fdad Tush
  18538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18539. },
  18540. 132: {
  18541. Ffc: *(*struct {
  18542. Fcode [0]Tush
  18543. Ffreq Tush
  18544. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  18545. Fdl: *(*struct {
  18546. Flen1 [0]Tush
  18547. Fdad Tush
  18548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18549. },
  18550. 133: {
  18551. Ffc: *(*struct {
  18552. Fcode [0]Tush
  18553. Ffreq Tush
  18554. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  18555. Fdl: *(*struct {
  18556. Flen1 [0]Tush
  18557. Fdad Tush
  18558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18559. },
  18560. 134: {
  18561. Ffc: *(*struct {
  18562. Fcode [0]Tush
  18563. Ffreq Tush
  18564. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  18565. Fdl: *(*struct {
  18566. Flen1 [0]Tush
  18567. Fdad Tush
  18568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18569. },
  18570. 135: {
  18571. Ffc: *(*struct {
  18572. Fcode [0]Tush
  18573. Ffreq Tush
  18574. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  18575. Fdl: *(*struct {
  18576. Flen1 [0]Tush
  18577. Fdad Tush
  18578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18579. },
  18580. 136: {
  18581. Ffc: *(*struct {
  18582. Fcode [0]Tush
  18583. Ffreq Tush
  18584. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  18585. Fdl: *(*struct {
  18586. Flen1 [0]Tush
  18587. Fdad Tush
  18588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18589. },
  18590. 137: {
  18591. Ffc: *(*struct {
  18592. Fcode [0]Tush
  18593. Ffreq Tush
  18594. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  18595. Fdl: *(*struct {
  18596. Flen1 [0]Tush
  18597. Fdad Tush
  18598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18599. },
  18600. 138: {
  18601. Ffc: *(*struct {
  18602. Fcode [0]Tush
  18603. Ffreq Tush
  18604. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  18605. Fdl: *(*struct {
  18606. Flen1 [0]Tush
  18607. Fdad Tush
  18608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18609. },
  18610. 139: {
  18611. Ffc: *(*struct {
  18612. Fcode [0]Tush
  18613. Ffreq Tush
  18614. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  18615. Fdl: *(*struct {
  18616. Flen1 [0]Tush
  18617. Fdad Tush
  18618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18619. },
  18620. 140: {
  18621. Ffc: *(*struct {
  18622. Fcode [0]Tush
  18623. Ffreq Tush
  18624. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  18625. Fdl: *(*struct {
  18626. Flen1 [0]Tush
  18627. Fdad Tush
  18628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18629. },
  18630. 141: {
  18631. Ffc: *(*struct {
  18632. Fcode [0]Tush
  18633. Ffreq Tush
  18634. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  18635. Fdl: *(*struct {
  18636. Flen1 [0]Tush
  18637. Fdad Tush
  18638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18639. },
  18640. 142: {
  18641. Ffc: *(*struct {
  18642. Fcode [0]Tush
  18643. Ffreq Tush
  18644. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  18645. Fdl: *(*struct {
  18646. Flen1 [0]Tush
  18647. Fdad Tush
  18648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18649. },
  18650. 143: {
  18651. Ffc: *(*struct {
  18652. Fcode [0]Tush
  18653. Ffreq Tush
  18654. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  18655. Fdl: *(*struct {
  18656. Flen1 [0]Tush
  18657. Fdad Tush
  18658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  18659. },
  18660. 144: {
  18661. Ffc: *(*struct {
  18662. Fcode [0]Tush
  18663. Ffreq Tush
  18664. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  18665. Fdl: *(*struct {
  18666. Flen1 [0]Tush
  18667. Fdad Tush
  18668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18669. },
  18670. 145: {
  18671. Ffc: *(*struct {
  18672. Fcode [0]Tush
  18673. Ffreq Tush
  18674. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  18675. Fdl: *(*struct {
  18676. Flen1 [0]Tush
  18677. Fdad Tush
  18678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18679. },
  18680. 146: {
  18681. Ffc: *(*struct {
  18682. Fcode [0]Tush
  18683. Ffreq Tush
  18684. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  18685. Fdl: *(*struct {
  18686. Flen1 [0]Tush
  18687. Fdad Tush
  18688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18689. },
  18690. 147: {
  18691. Ffc: *(*struct {
  18692. Fcode [0]Tush
  18693. Ffreq Tush
  18694. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  18695. Fdl: *(*struct {
  18696. Flen1 [0]Tush
  18697. Fdad Tush
  18698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18699. },
  18700. 148: {
  18701. Ffc: *(*struct {
  18702. Fcode [0]Tush
  18703. Ffreq Tush
  18704. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  18705. Fdl: *(*struct {
  18706. Flen1 [0]Tush
  18707. Fdad Tush
  18708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18709. },
  18710. 149: {
  18711. Ffc: *(*struct {
  18712. Fcode [0]Tush
  18713. Ffreq Tush
  18714. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  18715. Fdl: *(*struct {
  18716. Flen1 [0]Tush
  18717. Fdad Tush
  18718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18719. },
  18720. 150: {
  18721. Ffc: *(*struct {
  18722. Fcode [0]Tush
  18723. Ffreq Tush
  18724. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  18725. Fdl: *(*struct {
  18726. Flen1 [0]Tush
  18727. Fdad Tush
  18728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18729. },
  18730. 151: {
  18731. Ffc: *(*struct {
  18732. Fcode [0]Tush
  18733. Ffreq Tush
  18734. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  18735. Fdl: *(*struct {
  18736. Flen1 [0]Tush
  18737. Fdad Tush
  18738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18739. },
  18740. 152: {
  18741. Ffc: *(*struct {
  18742. Fcode [0]Tush
  18743. Ffreq Tush
  18744. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  18745. Fdl: *(*struct {
  18746. Flen1 [0]Tush
  18747. Fdad Tush
  18748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18749. },
  18750. 153: {
  18751. Ffc: *(*struct {
  18752. Fcode [0]Tush
  18753. Ffreq Tush
  18754. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  18755. Fdl: *(*struct {
  18756. Flen1 [0]Tush
  18757. Fdad Tush
  18758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18759. },
  18760. 154: {
  18761. Ffc: *(*struct {
  18762. Fcode [0]Tush
  18763. Ffreq Tush
  18764. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  18765. Fdl: *(*struct {
  18766. Flen1 [0]Tush
  18767. Fdad Tush
  18768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18769. },
  18770. 155: {
  18771. Ffc: *(*struct {
  18772. Fcode [0]Tush
  18773. Ffreq Tush
  18774. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  18775. Fdl: *(*struct {
  18776. Flen1 [0]Tush
  18777. Fdad Tush
  18778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18779. },
  18780. 156: {
  18781. Ffc: *(*struct {
  18782. Fcode [0]Tush
  18783. Ffreq Tush
  18784. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  18785. Fdl: *(*struct {
  18786. Flen1 [0]Tush
  18787. Fdad Tush
  18788. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18789. },
  18790. 157: {
  18791. Ffc: *(*struct {
  18792. Fcode [0]Tush
  18793. Ffreq Tush
  18794. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  18795. Fdl: *(*struct {
  18796. Flen1 [0]Tush
  18797. Fdad Tush
  18798. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18799. },
  18800. 158: {
  18801. Ffc: *(*struct {
  18802. Fcode [0]Tush
  18803. Ffreq Tush
  18804. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  18805. Fdl: *(*struct {
  18806. Flen1 [0]Tush
  18807. Fdad Tush
  18808. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18809. },
  18810. 159: {
  18811. Ffc: *(*struct {
  18812. Fcode [0]Tush
  18813. Ffreq Tush
  18814. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  18815. Fdl: *(*struct {
  18816. Flen1 [0]Tush
  18817. Fdad Tush
  18818. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18819. },
  18820. 160: {
  18821. Ffc: *(*struct {
  18822. Fcode [0]Tush
  18823. Ffreq Tush
  18824. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  18825. Fdl: *(*struct {
  18826. Flen1 [0]Tush
  18827. Fdad Tush
  18828. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18829. },
  18830. 161: {
  18831. Ffc: *(*struct {
  18832. Fcode [0]Tush
  18833. Ffreq Tush
  18834. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  18835. Fdl: *(*struct {
  18836. Flen1 [0]Tush
  18837. Fdad Tush
  18838. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18839. },
  18840. 162: {
  18841. Ffc: *(*struct {
  18842. Fcode [0]Tush
  18843. Ffreq Tush
  18844. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  18845. Fdl: *(*struct {
  18846. Flen1 [0]Tush
  18847. Fdad Tush
  18848. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18849. },
  18850. 163: {
  18851. Ffc: *(*struct {
  18852. Fcode [0]Tush
  18853. Ffreq Tush
  18854. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  18855. Fdl: *(*struct {
  18856. Flen1 [0]Tush
  18857. Fdad Tush
  18858. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18859. },
  18860. 164: {
  18861. Ffc: *(*struct {
  18862. Fcode [0]Tush
  18863. Ffreq Tush
  18864. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  18865. Fdl: *(*struct {
  18866. Flen1 [0]Tush
  18867. Fdad Tush
  18868. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18869. },
  18870. 165: {
  18871. Ffc: *(*struct {
  18872. Fcode [0]Tush
  18873. Ffreq Tush
  18874. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  18875. Fdl: *(*struct {
  18876. Flen1 [0]Tush
  18877. Fdad Tush
  18878. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18879. },
  18880. 166: {
  18881. Ffc: *(*struct {
  18882. Fcode [0]Tush
  18883. Ffreq Tush
  18884. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  18885. Fdl: *(*struct {
  18886. Flen1 [0]Tush
  18887. Fdad Tush
  18888. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18889. },
  18890. 167: {
  18891. Ffc: *(*struct {
  18892. Fcode [0]Tush
  18893. Ffreq Tush
  18894. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  18895. Fdl: *(*struct {
  18896. Flen1 [0]Tush
  18897. Fdad Tush
  18898. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18899. },
  18900. 168: {
  18901. Ffc: *(*struct {
  18902. Fcode [0]Tush
  18903. Ffreq Tush
  18904. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  18905. Fdl: *(*struct {
  18906. Flen1 [0]Tush
  18907. Fdad Tush
  18908. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18909. },
  18910. 169: {
  18911. Ffc: *(*struct {
  18912. Fcode [0]Tush
  18913. Ffreq Tush
  18914. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  18915. Fdl: *(*struct {
  18916. Flen1 [0]Tush
  18917. Fdad Tush
  18918. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18919. },
  18920. 170: {
  18921. Ffc: *(*struct {
  18922. Fcode [0]Tush
  18923. Ffreq Tush
  18924. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  18925. Fdl: *(*struct {
  18926. Flen1 [0]Tush
  18927. Fdad Tush
  18928. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18929. },
  18930. 171: {
  18931. Ffc: *(*struct {
  18932. Fcode [0]Tush
  18933. Ffreq Tush
  18934. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  18935. Fdl: *(*struct {
  18936. Flen1 [0]Tush
  18937. Fdad Tush
  18938. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18939. },
  18940. 172: {
  18941. Ffc: *(*struct {
  18942. Fcode [0]Tush
  18943. Ffreq Tush
  18944. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  18945. Fdl: *(*struct {
  18946. Flen1 [0]Tush
  18947. Fdad Tush
  18948. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18949. },
  18950. 173: {
  18951. Ffc: *(*struct {
  18952. Fcode [0]Tush
  18953. Ffreq Tush
  18954. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  18955. Fdl: *(*struct {
  18956. Flen1 [0]Tush
  18957. Fdad Tush
  18958. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18959. },
  18960. 174: {
  18961. Ffc: *(*struct {
  18962. Fcode [0]Tush
  18963. Ffreq Tush
  18964. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  18965. Fdl: *(*struct {
  18966. Flen1 [0]Tush
  18967. Fdad Tush
  18968. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18969. },
  18970. 175: {
  18971. Ffc: *(*struct {
  18972. Fcode [0]Tush
  18973. Ffreq Tush
  18974. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  18975. Fdl: *(*struct {
  18976. Flen1 [0]Tush
  18977. Fdad Tush
  18978. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18979. },
  18980. 176: {
  18981. Ffc: *(*struct {
  18982. Fcode [0]Tush
  18983. Ffreq Tush
  18984. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  18985. Fdl: *(*struct {
  18986. Flen1 [0]Tush
  18987. Fdad Tush
  18988. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18989. },
  18990. 177: {
  18991. Ffc: *(*struct {
  18992. Fcode [0]Tush
  18993. Ffreq Tush
  18994. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  18995. Fdl: *(*struct {
  18996. Flen1 [0]Tush
  18997. Fdad Tush
  18998. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  18999. },
  19000. 178: {
  19001. Ffc: *(*struct {
  19002. Fcode [0]Tush
  19003. Ffreq Tush
  19004. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  19005. Fdl: *(*struct {
  19006. Flen1 [0]Tush
  19007. Fdad Tush
  19008. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19009. },
  19010. 179: {
  19011. Ffc: *(*struct {
  19012. Fcode [0]Tush
  19013. Ffreq Tush
  19014. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  19015. Fdl: *(*struct {
  19016. Flen1 [0]Tush
  19017. Fdad Tush
  19018. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19019. },
  19020. 180: {
  19021. Ffc: *(*struct {
  19022. Fcode [0]Tush
  19023. Ffreq Tush
  19024. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  19025. Fdl: *(*struct {
  19026. Flen1 [0]Tush
  19027. Fdad Tush
  19028. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19029. },
  19030. 181: {
  19031. Ffc: *(*struct {
  19032. Fcode [0]Tush
  19033. Ffreq Tush
  19034. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  19035. Fdl: *(*struct {
  19036. Flen1 [0]Tush
  19037. Fdad Tush
  19038. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19039. },
  19040. 182: {
  19041. Ffc: *(*struct {
  19042. Fcode [0]Tush
  19043. Ffreq Tush
  19044. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  19045. Fdl: *(*struct {
  19046. Flen1 [0]Tush
  19047. Fdad Tush
  19048. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19049. },
  19050. 183: {
  19051. Ffc: *(*struct {
  19052. Fcode [0]Tush
  19053. Ffreq Tush
  19054. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  19055. Fdl: *(*struct {
  19056. Flen1 [0]Tush
  19057. Fdad Tush
  19058. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19059. },
  19060. 184: {
  19061. Ffc: *(*struct {
  19062. Fcode [0]Tush
  19063. Ffreq Tush
  19064. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  19065. Fdl: *(*struct {
  19066. Flen1 [0]Tush
  19067. Fdad Tush
  19068. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19069. },
  19070. 185: {
  19071. Ffc: *(*struct {
  19072. Fcode [0]Tush
  19073. Ffreq Tush
  19074. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  19075. Fdl: *(*struct {
  19076. Flen1 [0]Tush
  19077. Fdad Tush
  19078. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19079. },
  19080. 186: {
  19081. Ffc: *(*struct {
  19082. Fcode [0]Tush
  19083. Ffreq Tush
  19084. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  19085. Fdl: *(*struct {
  19086. Flen1 [0]Tush
  19087. Fdad Tush
  19088. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19089. },
  19090. 187: {
  19091. Ffc: *(*struct {
  19092. Fcode [0]Tush
  19093. Ffreq Tush
  19094. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  19095. Fdl: *(*struct {
  19096. Flen1 [0]Tush
  19097. Fdad Tush
  19098. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19099. },
  19100. 188: {
  19101. Ffc: *(*struct {
  19102. Fcode [0]Tush
  19103. Ffreq Tush
  19104. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  19105. Fdl: *(*struct {
  19106. Flen1 [0]Tush
  19107. Fdad Tush
  19108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19109. },
  19110. 189: {
  19111. Ffc: *(*struct {
  19112. Fcode [0]Tush
  19113. Ffreq Tush
  19114. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  19115. Fdl: *(*struct {
  19116. Flen1 [0]Tush
  19117. Fdad Tush
  19118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19119. },
  19120. 190: {
  19121. Ffc: *(*struct {
  19122. Fcode [0]Tush
  19123. Ffreq Tush
  19124. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  19125. Fdl: *(*struct {
  19126. Flen1 [0]Tush
  19127. Fdad Tush
  19128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19129. },
  19130. 191: {
  19131. Ffc: *(*struct {
  19132. Fcode [0]Tush
  19133. Ffreq Tush
  19134. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  19135. Fdl: *(*struct {
  19136. Flen1 [0]Tush
  19137. Fdad Tush
  19138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19139. },
  19140. 192: {
  19141. Ffc: *(*struct {
  19142. Fcode [0]Tush
  19143. Ffreq Tush
  19144. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19145. Fdl: *(*struct {
  19146. Flen1 [0]Tush
  19147. Fdad Tush
  19148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19149. },
  19150. 193: {
  19151. Ffc: *(*struct {
  19152. Fcode [0]Tush
  19153. Ffreq Tush
  19154. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  19155. Fdl: *(*struct {
  19156. Flen1 [0]Tush
  19157. Fdad Tush
  19158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19159. },
  19160. 194: {
  19161. Ffc: *(*struct {
  19162. Fcode [0]Tush
  19163. Ffreq Tush
  19164. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  19165. Fdl: *(*struct {
  19166. Flen1 [0]Tush
  19167. Fdad Tush
  19168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19169. },
  19170. 195: {
  19171. Ffc: *(*struct {
  19172. Fcode [0]Tush
  19173. Ffreq Tush
  19174. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  19175. Fdl: *(*struct {
  19176. Flen1 [0]Tush
  19177. Fdad Tush
  19178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19179. },
  19180. 196: {
  19181. Ffc: *(*struct {
  19182. Fcode [0]Tush
  19183. Ffreq Tush
  19184. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  19185. Fdl: *(*struct {
  19186. Flen1 [0]Tush
  19187. Fdad Tush
  19188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19189. },
  19190. 197: {
  19191. Ffc: *(*struct {
  19192. Fcode [0]Tush
  19193. Ffreq Tush
  19194. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  19195. Fdl: *(*struct {
  19196. Flen1 [0]Tush
  19197. Fdad Tush
  19198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19199. },
  19200. 198: {
  19201. Ffc: *(*struct {
  19202. Fcode [0]Tush
  19203. Ffreq Tush
  19204. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  19205. Fdl: *(*struct {
  19206. Flen1 [0]Tush
  19207. Fdad Tush
  19208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19209. },
  19210. 199: {
  19211. Ffc: *(*struct {
  19212. Fcode [0]Tush
  19213. Ffreq Tush
  19214. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  19215. Fdl: *(*struct {
  19216. Flen1 [0]Tush
  19217. Fdad Tush
  19218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19219. },
  19220. 200: {
  19221. Ffc: *(*struct {
  19222. Fcode [0]Tush
  19223. Ffreq Tush
  19224. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  19225. Fdl: *(*struct {
  19226. Flen1 [0]Tush
  19227. Fdad Tush
  19228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19229. },
  19230. 201: {
  19231. Ffc: *(*struct {
  19232. Fcode [0]Tush
  19233. Ffreq Tush
  19234. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  19235. Fdl: *(*struct {
  19236. Flen1 [0]Tush
  19237. Fdad Tush
  19238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19239. },
  19240. 202: {
  19241. Ffc: *(*struct {
  19242. Fcode [0]Tush
  19243. Ffreq Tush
  19244. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  19245. Fdl: *(*struct {
  19246. Flen1 [0]Tush
  19247. Fdad Tush
  19248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19249. },
  19250. 203: {
  19251. Ffc: *(*struct {
  19252. Fcode [0]Tush
  19253. Ffreq Tush
  19254. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  19255. Fdl: *(*struct {
  19256. Flen1 [0]Tush
  19257. Fdad Tush
  19258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19259. },
  19260. 204: {
  19261. Ffc: *(*struct {
  19262. Fcode [0]Tush
  19263. Ffreq Tush
  19264. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  19265. Fdl: *(*struct {
  19266. Flen1 [0]Tush
  19267. Fdad Tush
  19268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19269. },
  19270. 205: {
  19271. Ffc: *(*struct {
  19272. Fcode [0]Tush
  19273. Ffreq Tush
  19274. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  19275. Fdl: *(*struct {
  19276. Flen1 [0]Tush
  19277. Fdad Tush
  19278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19279. },
  19280. 206: {
  19281. Ffc: *(*struct {
  19282. Fcode [0]Tush
  19283. Ffreq Tush
  19284. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  19285. Fdl: *(*struct {
  19286. Flen1 [0]Tush
  19287. Fdad Tush
  19288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19289. },
  19290. 207: {
  19291. Ffc: *(*struct {
  19292. Fcode [0]Tush
  19293. Ffreq Tush
  19294. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  19295. Fdl: *(*struct {
  19296. Flen1 [0]Tush
  19297. Fdad Tush
  19298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19299. },
  19300. 208: {
  19301. Ffc: *(*struct {
  19302. Fcode [0]Tush
  19303. Ffreq Tush
  19304. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  19305. Fdl: *(*struct {
  19306. Flen1 [0]Tush
  19307. Fdad Tush
  19308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19309. },
  19310. 209: {
  19311. Ffc: *(*struct {
  19312. Fcode [0]Tush
  19313. Ffreq Tush
  19314. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  19315. Fdl: *(*struct {
  19316. Flen1 [0]Tush
  19317. Fdad Tush
  19318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19319. },
  19320. 210: {
  19321. Ffc: *(*struct {
  19322. Fcode [0]Tush
  19323. Ffreq Tush
  19324. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  19325. Fdl: *(*struct {
  19326. Flen1 [0]Tush
  19327. Fdad Tush
  19328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19329. },
  19330. 211: {
  19331. Ffc: *(*struct {
  19332. Fcode [0]Tush
  19333. Ffreq Tush
  19334. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  19335. Fdl: *(*struct {
  19336. Flen1 [0]Tush
  19337. Fdad Tush
  19338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19339. },
  19340. 212: {
  19341. Ffc: *(*struct {
  19342. Fcode [0]Tush
  19343. Ffreq Tush
  19344. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  19345. Fdl: *(*struct {
  19346. Flen1 [0]Tush
  19347. Fdad Tush
  19348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19349. },
  19350. 213: {
  19351. Ffc: *(*struct {
  19352. Fcode [0]Tush
  19353. Ffreq Tush
  19354. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  19355. Fdl: *(*struct {
  19356. Flen1 [0]Tush
  19357. Fdad Tush
  19358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19359. },
  19360. 214: {
  19361. Ffc: *(*struct {
  19362. Fcode [0]Tush
  19363. Ffreq Tush
  19364. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  19365. Fdl: *(*struct {
  19366. Flen1 [0]Tush
  19367. Fdad Tush
  19368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19369. },
  19370. 215: {
  19371. Ffc: *(*struct {
  19372. Fcode [0]Tush
  19373. Ffreq Tush
  19374. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  19375. Fdl: *(*struct {
  19376. Flen1 [0]Tush
  19377. Fdad Tush
  19378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19379. },
  19380. 216: {
  19381. Ffc: *(*struct {
  19382. Fcode [0]Tush
  19383. Ffreq Tush
  19384. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  19385. Fdl: *(*struct {
  19386. Flen1 [0]Tush
  19387. Fdad Tush
  19388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19389. },
  19390. 217: {
  19391. Ffc: *(*struct {
  19392. Fcode [0]Tush
  19393. Ffreq Tush
  19394. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  19395. Fdl: *(*struct {
  19396. Flen1 [0]Tush
  19397. Fdad Tush
  19398. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19399. },
  19400. 218: {
  19401. Ffc: *(*struct {
  19402. Fcode [0]Tush
  19403. Ffreq Tush
  19404. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  19405. Fdl: *(*struct {
  19406. Flen1 [0]Tush
  19407. Fdad Tush
  19408. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19409. },
  19410. 219: {
  19411. Ffc: *(*struct {
  19412. Fcode [0]Tush
  19413. Ffreq Tush
  19414. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  19415. Fdl: *(*struct {
  19416. Flen1 [0]Tush
  19417. Fdad Tush
  19418. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19419. },
  19420. 220: {
  19421. Ffc: *(*struct {
  19422. Fcode [0]Tush
  19423. Ffreq Tush
  19424. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  19425. Fdl: *(*struct {
  19426. Flen1 [0]Tush
  19427. Fdad Tush
  19428. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19429. },
  19430. 221: {
  19431. Ffc: *(*struct {
  19432. Fcode [0]Tush
  19433. Ffreq Tush
  19434. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  19435. Fdl: *(*struct {
  19436. Flen1 [0]Tush
  19437. Fdad Tush
  19438. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19439. },
  19440. 222: {
  19441. Ffc: *(*struct {
  19442. Fcode [0]Tush
  19443. Ffreq Tush
  19444. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  19445. Fdl: *(*struct {
  19446. Flen1 [0]Tush
  19447. Fdad Tush
  19448. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19449. },
  19450. 223: {
  19451. Ffc: *(*struct {
  19452. Fcode [0]Tush
  19453. Ffreq Tush
  19454. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  19455. Fdl: *(*struct {
  19456. Flen1 [0]Tush
  19457. Fdad Tush
  19458. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19459. },
  19460. 224: {
  19461. Ffc: *(*struct {
  19462. Fcode [0]Tush
  19463. Ffreq Tush
  19464. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  19465. Fdl: *(*struct {
  19466. Flen1 [0]Tush
  19467. Fdad Tush
  19468. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19469. },
  19470. 225: {
  19471. Ffc: *(*struct {
  19472. Fcode [0]Tush
  19473. Ffreq Tush
  19474. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  19475. Fdl: *(*struct {
  19476. Flen1 [0]Tush
  19477. Fdad Tush
  19478. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19479. },
  19480. 226: {
  19481. Ffc: *(*struct {
  19482. Fcode [0]Tush
  19483. Ffreq Tush
  19484. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  19485. Fdl: *(*struct {
  19486. Flen1 [0]Tush
  19487. Fdad Tush
  19488. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19489. },
  19490. 227: {
  19491. Ffc: *(*struct {
  19492. Fcode [0]Tush
  19493. Ffreq Tush
  19494. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  19495. Fdl: *(*struct {
  19496. Flen1 [0]Tush
  19497. Fdad Tush
  19498. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19499. },
  19500. 228: {
  19501. Ffc: *(*struct {
  19502. Fcode [0]Tush
  19503. Ffreq Tush
  19504. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  19505. Fdl: *(*struct {
  19506. Flen1 [0]Tush
  19507. Fdad Tush
  19508. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19509. },
  19510. 229: {
  19511. Ffc: *(*struct {
  19512. Fcode [0]Tush
  19513. Ffreq Tush
  19514. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  19515. Fdl: *(*struct {
  19516. Flen1 [0]Tush
  19517. Fdad Tush
  19518. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19519. },
  19520. 230: {
  19521. Ffc: *(*struct {
  19522. Fcode [0]Tush
  19523. Ffreq Tush
  19524. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  19525. Fdl: *(*struct {
  19526. Flen1 [0]Tush
  19527. Fdad Tush
  19528. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19529. },
  19530. 231: {
  19531. Ffc: *(*struct {
  19532. Fcode [0]Tush
  19533. Ffreq Tush
  19534. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  19535. Fdl: *(*struct {
  19536. Flen1 [0]Tush
  19537. Fdad Tush
  19538. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19539. },
  19540. 232: {
  19541. Ffc: *(*struct {
  19542. Fcode [0]Tush
  19543. Ffreq Tush
  19544. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  19545. Fdl: *(*struct {
  19546. Flen1 [0]Tush
  19547. Fdad Tush
  19548. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19549. },
  19550. 233: {
  19551. Ffc: *(*struct {
  19552. Fcode [0]Tush
  19553. Ffreq Tush
  19554. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  19555. Fdl: *(*struct {
  19556. Flen1 [0]Tush
  19557. Fdad Tush
  19558. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19559. },
  19560. 234: {
  19561. Ffc: *(*struct {
  19562. Fcode [0]Tush
  19563. Ffreq Tush
  19564. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  19565. Fdl: *(*struct {
  19566. Flen1 [0]Tush
  19567. Fdad Tush
  19568. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19569. },
  19570. 235: {
  19571. Ffc: *(*struct {
  19572. Fcode [0]Tush
  19573. Ffreq Tush
  19574. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  19575. Fdl: *(*struct {
  19576. Flen1 [0]Tush
  19577. Fdad Tush
  19578. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19579. },
  19580. 236: {
  19581. Ffc: *(*struct {
  19582. Fcode [0]Tush
  19583. Ffreq Tush
  19584. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  19585. Fdl: *(*struct {
  19586. Flen1 [0]Tush
  19587. Fdad Tush
  19588. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19589. },
  19590. 237: {
  19591. Ffc: *(*struct {
  19592. Fcode [0]Tush
  19593. Ffreq Tush
  19594. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  19595. Fdl: *(*struct {
  19596. Flen1 [0]Tush
  19597. Fdad Tush
  19598. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19599. },
  19600. 238: {
  19601. Ffc: *(*struct {
  19602. Fcode [0]Tush
  19603. Ffreq Tush
  19604. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  19605. Fdl: *(*struct {
  19606. Flen1 [0]Tush
  19607. Fdad Tush
  19608. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19609. },
  19610. 239: {
  19611. Ffc: *(*struct {
  19612. Fcode [0]Tush
  19613. Ffreq Tush
  19614. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  19615. Fdl: *(*struct {
  19616. Flen1 [0]Tush
  19617. Fdad Tush
  19618. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19619. },
  19620. 240: {
  19621. Ffc: *(*struct {
  19622. Fcode [0]Tush
  19623. Ffreq Tush
  19624. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  19625. Fdl: *(*struct {
  19626. Flen1 [0]Tush
  19627. Fdad Tush
  19628. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19629. },
  19630. 241: {
  19631. Ffc: *(*struct {
  19632. Fcode [0]Tush
  19633. Ffreq Tush
  19634. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  19635. Fdl: *(*struct {
  19636. Flen1 [0]Tush
  19637. Fdad Tush
  19638. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19639. },
  19640. 242: {
  19641. Ffc: *(*struct {
  19642. Fcode [0]Tush
  19643. Ffreq Tush
  19644. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  19645. Fdl: *(*struct {
  19646. Flen1 [0]Tush
  19647. Fdad Tush
  19648. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19649. },
  19650. 243: {
  19651. Ffc: *(*struct {
  19652. Fcode [0]Tush
  19653. Ffreq Tush
  19654. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  19655. Fdl: *(*struct {
  19656. Flen1 [0]Tush
  19657. Fdad Tush
  19658. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19659. },
  19660. 244: {
  19661. Ffc: *(*struct {
  19662. Fcode [0]Tush
  19663. Ffreq Tush
  19664. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  19665. Fdl: *(*struct {
  19666. Flen1 [0]Tush
  19667. Fdad Tush
  19668. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19669. },
  19670. 245: {
  19671. Ffc: *(*struct {
  19672. Fcode [0]Tush
  19673. Ffreq Tush
  19674. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  19675. Fdl: *(*struct {
  19676. Flen1 [0]Tush
  19677. Fdad Tush
  19678. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19679. },
  19680. 246: {
  19681. Ffc: *(*struct {
  19682. Fcode [0]Tush
  19683. Ffreq Tush
  19684. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  19685. Fdl: *(*struct {
  19686. Flen1 [0]Tush
  19687. Fdad Tush
  19688. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19689. },
  19690. 247: {
  19691. Ffc: *(*struct {
  19692. Fcode [0]Tush
  19693. Ffreq Tush
  19694. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  19695. Fdl: *(*struct {
  19696. Flen1 [0]Tush
  19697. Fdad Tush
  19698. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19699. },
  19700. 248: {
  19701. Ffc: *(*struct {
  19702. Fcode [0]Tush
  19703. Ffreq Tush
  19704. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  19705. Fdl: *(*struct {
  19706. Flen1 [0]Tush
  19707. Fdad Tush
  19708. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19709. },
  19710. 249: {
  19711. Ffc: *(*struct {
  19712. Fcode [0]Tush
  19713. Ffreq Tush
  19714. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  19715. Fdl: *(*struct {
  19716. Flen1 [0]Tush
  19717. Fdad Tush
  19718. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19719. },
  19720. 250: {
  19721. Ffc: *(*struct {
  19722. Fcode [0]Tush
  19723. Ffreq Tush
  19724. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  19725. Fdl: *(*struct {
  19726. Flen1 [0]Tush
  19727. Fdad Tush
  19728. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19729. },
  19730. 251: {
  19731. Ffc: *(*struct {
  19732. Fcode [0]Tush
  19733. Ffreq Tush
  19734. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  19735. Fdl: *(*struct {
  19736. Flen1 [0]Tush
  19737. Fdad Tush
  19738. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19739. },
  19740. 252: {
  19741. Ffc: *(*struct {
  19742. Fcode [0]Tush
  19743. Ffreq Tush
  19744. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  19745. Fdl: *(*struct {
  19746. Flen1 [0]Tush
  19747. Fdad Tush
  19748. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19749. },
  19750. 253: {
  19751. Ffc: *(*struct {
  19752. Fcode [0]Tush
  19753. Ffreq Tush
  19754. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  19755. Fdl: *(*struct {
  19756. Flen1 [0]Tush
  19757. Fdad Tush
  19758. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19759. },
  19760. 254: {
  19761. Ffc: *(*struct {
  19762. Fcode [0]Tush
  19763. Ffreq Tush
  19764. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  19765. Fdl: *(*struct {
  19766. Flen1 [0]Tush
  19767. Fdad Tush
  19768. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19769. },
  19770. 255: {
  19771. Ffc: *(*struct {
  19772. Fcode [0]Tush
  19773. Ffreq Tush
  19774. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  19775. Fdl: *(*struct {
  19776. Flen1 [0]Tush
  19777. Fdad Tush
  19778. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  19779. },
  19780. 256: {
  19781. Fdl: *(*struct {
  19782. Flen1 [0]Tush
  19783. Fdad Tush
  19784. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19785. },
  19786. 257: {
  19787. Ffc: *(*struct {
  19788. Fcode [0]Tush
  19789. Ffreq Tush
  19790. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  19791. Fdl: *(*struct {
  19792. Flen1 [0]Tush
  19793. Fdad Tush
  19794. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19795. },
  19796. 258: {
  19797. Ffc: *(*struct {
  19798. Fcode [0]Tush
  19799. Ffreq Tush
  19800. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  19801. Fdl: *(*struct {
  19802. Flen1 [0]Tush
  19803. Fdad Tush
  19804. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19805. },
  19806. 259: {
  19807. Ffc: *(*struct {
  19808. Fcode [0]Tush
  19809. Ffreq Tush
  19810. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  19811. Fdl: *(*struct {
  19812. Flen1 [0]Tush
  19813. Fdad Tush
  19814. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19815. },
  19816. 260: {
  19817. Ffc: *(*struct {
  19818. Fcode [0]Tush
  19819. Ffreq Tush
  19820. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  19821. Fdl: *(*struct {
  19822. Flen1 [0]Tush
  19823. Fdad Tush
  19824. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19825. },
  19826. 261: {
  19827. Ffc: *(*struct {
  19828. Fcode [0]Tush
  19829. Ffreq Tush
  19830. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  19831. Fdl: *(*struct {
  19832. Flen1 [0]Tush
  19833. Fdad Tush
  19834. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19835. },
  19836. 262: {
  19837. Ffc: *(*struct {
  19838. Fcode [0]Tush
  19839. Ffreq Tush
  19840. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  19841. Fdl: *(*struct {
  19842. Flen1 [0]Tush
  19843. Fdad Tush
  19844. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19845. },
  19846. 263: {
  19847. Ffc: *(*struct {
  19848. Fcode [0]Tush
  19849. Ffreq Tush
  19850. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  19851. Fdl: *(*struct {
  19852. Flen1 [0]Tush
  19853. Fdad Tush
  19854. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19855. },
  19856. 264: {
  19857. Ffc: *(*struct {
  19858. Fcode [0]Tush
  19859. Ffreq Tush
  19860. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19861. Fdl: *(*struct {
  19862. Flen1 [0]Tush
  19863. Fdad Tush
  19864. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19865. },
  19866. 265: {
  19867. Ffc: *(*struct {
  19868. Fcode [0]Tush
  19869. Ffreq Tush
  19870. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  19871. Fdl: *(*struct {
  19872. Flen1 [0]Tush
  19873. Fdad Tush
  19874. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19875. },
  19876. 266: {
  19877. Ffc: *(*struct {
  19878. Fcode [0]Tush
  19879. Ffreq Tush
  19880. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  19881. Fdl: *(*struct {
  19882. Flen1 [0]Tush
  19883. Fdad Tush
  19884. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19885. },
  19886. 267: {
  19887. Ffc: *(*struct {
  19888. Fcode [0]Tush
  19889. Ffreq Tush
  19890. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  19891. Fdl: *(*struct {
  19892. Flen1 [0]Tush
  19893. Fdad Tush
  19894. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19895. },
  19896. 268: {
  19897. Ffc: *(*struct {
  19898. Fcode [0]Tush
  19899. Ffreq Tush
  19900. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  19901. Fdl: *(*struct {
  19902. Flen1 [0]Tush
  19903. Fdad Tush
  19904. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19905. },
  19906. 269: {
  19907. Ffc: *(*struct {
  19908. Fcode [0]Tush
  19909. Ffreq Tush
  19910. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  19911. Fdl: *(*struct {
  19912. Flen1 [0]Tush
  19913. Fdad Tush
  19914. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19915. },
  19916. 270: {
  19917. Ffc: *(*struct {
  19918. Fcode [0]Tush
  19919. Ffreq Tush
  19920. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  19921. Fdl: *(*struct {
  19922. Flen1 [0]Tush
  19923. Fdad Tush
  19924. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19925. },
  19926. 271: {
  19927. Ffc: *(*struct {
  19928. Fcode [0]Tush
  19929. Ffreq Tush
  19930. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  19931. Fdl: *(*struct {
  19932. Flen1 [0]Tush
  19933. Fdad Tush
  19934. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19935. },
  19936. 272: {
  19937. Ffc: *(*struct {
  19938. Fcode [0]Tush
  19939. Ffreq Tush
  19940. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  19941. Fdl: *(*struct {
  19942. Flen1 [0]Tush
  19943. Fdad Tush
  19944. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19945. },
  19946. 273: {
  19947. Ffc: *(*struct {
  19948. Fcode [0]Tush
  19949. Ffreq Tush
  19950. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  19951. Fdl: *(*struct {
  19952. Flen1 [0]Tush
  19953. Fdad Tush
  19954. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19955. },
  19956. 274: {
  19957. Ffc: *(*struct {
  19958. Fcode [0]Tush
  19959. Ffreq Tush
  19960. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  19961. Fdl: *(*struct {
  19962. Flen1 [0]Tush
  19963. Fdad Tush
  19964. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19965. },
  19966. 275: {
  19967. Ffc: *(*struct {
  19968. Fcode [0]Tush
  19969. Ffreq Tush
  19970. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  19971. Fdl: *(*struct {
  19972. Flen1 [0]Tush
  19973. Fdad Tush
  19974. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19975. },
  19976. 276: {
  19977. Ffc: *(*struct {
  19978. Fcode [0]Tush
  19979. Ffreq Tush
  19980. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  19981. Fdl: *(*struct {
  19982. Flen1 [0]Tush
  19983. Fdad Tush
  19984. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19985. },
  19986. 277: {
  19987. Ffc: *(*struct {
  19988. Fcode [0]Tush
  19989. Ffreq Tush
  19990. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  19991. Fdl: *(*struct {
  19992. Flen1 [0]Tush
  19993. Fdad Tush
  19994. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  19995. },
  19996. 278: {
  19997. Ffc: *(*struct {
  19998. Fcode [0]Tush
  19999. Ffreq Tush
  20000. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  20001. Fdl: *(*struct {
  20002. Flen1 [0]Tush
  20003. Fdad Tush
  20004. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  20005. },
  20006. 279: {
  20007. Ffc: *(*struct {
  20008. Fcode [0]Tush
  20009. Ffreq Tush
  20010. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  20011. Fdl: *(*struct {
  20012. Flen1 [0]Tush
  20013. Fdad Tush
  20014. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  20015. },
  20016. 280: {
  20017. Ffc: *(*struct {
  20018. Fcode [0]Tush
  20019. Ffreq Tush
  20020. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  20021. Fdl: *(*struct {
  20022. Flen1 [0]Tush
  20023. Fdad Tush
  20024. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20025. },
  20026. 281: {
  20027. Ffc: *(*struct {
  20028. Fcode [0]Tush
  20029. Ffreq Tush
  20030. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  20031. Fdl: *(*struct {
  20032. Flen1 [0]Tush
  20033. Fdad Tush
  20034. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20035. },
  20036. 282: {
  20037. Ffc: *(*struct {
  20038. Fcode [0]Tush
  20039. Ffreq Tush
  20040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  20041. Fdl: *(*struct {
  20042. Flen1 [0]Tush
  20043. Fdad Tush
  20044. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20045. },
  20046. 283: {
  20047. Ffc: *(*struct {
  20048. Fcode [0]Tush
  20049. Ffreq Tush
  20050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  20051. Fdl: *(*struct {
  20052. Flen1 [0]Tush
  20053. Fdad Tush
  20054. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20055. },
  20056. 284: {
  20057. Ffc: *(*struct {
  20058. Fcode [0]Tush
  20059. Ffreq Tush
  20060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  20061. Fdl: *(*struct {
  20062. Flen1 [0]Tush
  20063. Fdad Tush
  20064. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20065. },
  20066. 285: {
  20067. Ffc: *(*struct {
  20068. Fcode [0]Tush
  20069. Ffreq Tush
  20070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  20071. Fdl: *(*struct {
  20072. Flen1 [0]Tush
  20073. Fdad Tush
  20074. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20075. },
  20076. 286: {
  20077. Ffc: *(*struct {
  20078. Fcode [0]Tush
  20079. Ffreq Tush
  20080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  20081. Fdl: *(*struct {
  20082. Flen1 [0]Tush
  20083. Fdad Tush
  20084. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20085. },
  20086. 287: {
  20087. Ffc: *(*struct {
  20088. Fcode [0]Tush
  20089. Ffreq Tush
  20090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  20091. Fdl: *(*struct {
  20092. Flen1 [0]Tush
  20093. Fdad Tush
  20094. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20095. },
  20096. }
  20097. var _static_dtree = [30]Tct_data{
  20098. 0: {
  20099. Fdl: *(*struct {
  20100. Flen1 [0]Tush
  20101. Fdad Tush
  20102. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20103. },
  20104. 1: {
  20105. Ffc: *(*struct {
  20106. Fcode [0]Tush
  20107. Ffreq Tush
  20108. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  20109. Fdl: *(*struct {
  20110. Flen1 [0]Tush
  20111. Fdad Tush
  20112. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20113. },
  20114. 2: {
  20115. Ffc: *(*struct {
  20116. Fcode [0]Tush
  20117. Ffreq Tush
  20118. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20119. Fdl: *(*struct {
  20120. Flen1 [0]Tush
  20121. Fdad Tush
  20122. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20123. },
  20124. 3: {
  20125. Ffc: *(*struct {
  20126. Fcode [0]Tush
  20127. Ffreq Tush
  20128. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  20129. Fdl: *(*struct {
  20130. Flen1 [0]Tush
  20131. Fdad Tush
  20132. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20133. },
  20134. 4: {
  20135. Ffc: *(*struct {
  20136. Fcode [0]Tush
  20137. Ffreq Tush
  20138. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  20139. Fdl: *(*struct {
  20140. Flen1 [0]Tush
  20141. Fdad Tush
  20142. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20143. },
  20144. 5: {
  20145. Ffc: *(*struct {
  20146. Fcode [0]Tush
  20147. Ffreq Tush
  20148. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  20149. Fdl: *(*struct {
  20150. Flen1 [0]Tush
  20151. Fdad Tush
  20152. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20153. },
  20154. 6: {
  20155. Ffc: *(*struct {
  20156. Fcode [0]Tush
  20157. Ffreq Tush
  20158. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  20159. Fdl: *(*struct {
  20160. Flen1 [0]Tush
  20161. Fdad Tush
  20162. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20163. },
  20164. 7: {
  20165. Ffc: *(*struct {
  20166. Fcode [0]Tush
  20167. Ffreq Tush
  20168. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  20169. Fdl: *(*struct {
  20170. Flen1 [0]Tush
  20171. Fdad Tush
  20172. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20173. },
  20174. 8: {
  20175. Ffc: *(*struct {
  20176. Fcode [0]Tush
  20177. Ffreq Tush
  20178. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  20179. Fdl: *(*struct {
  20180. Flen1 [0]Tush
  20181. Fdad Tush
  20182. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20183. },
  20184. 9: {
  20185. Ffc: *(*struct {
  20186. Fcode [0]Tush
  20187. Ffreq Tush
  20188. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  20189. Fdl: *(*struct {
  20190. Flen1 [0]Tush
  20191. Fdad Tush
  20192. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20193. },
  20194. 10: {
  20195. Ffc: *(*struct {
  20196. Fcode [0]Tush
  20197. Ffreq Tush
  20198. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  20199. Fdl: *(*struct {
  20200. Flen1 [0]Tush
  20201. Fdad Tush
  20202. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20203. },
  20204. 11: {
  20205. Ffc: *(*struct {
  20206. Fcode [0]Tush
  20207. Ffreq Tush
  20208. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  20209. Fdl: *(*struct {
  20210. Flen1 [0]Tush
  20211. Fdad Tush
  20212. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20213. },
  20214. 12: {
  20215. Ffc: *(*struct {
  20216. Fcode [0]Tush
  20217. Ffreq Tush
  20218. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  20219. Fdl: *(*struct {
  20220. Flen1 [0]Tush
  20221. Fdad Tush
  20222. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20223. },
  20224. 13: {
  20225. Ffc: *(*struct {
  20226. Fcode [0]Tush
  20227. Ffreq Tush
  20228. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  20229. Fdl: *(*struct {
  20230. Flen1 [0]Tush
  20231. Fdad Tush
  20232. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20233. },
  20234. 14: {
  20235. Ffc: *(*struct {
  20236. Fcode [0]Tush
  20237. Ffreq Tush
  20238. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  20239. Fdl: *(*struct {
  20240. Flen1 [0]Tush
  20241. Fdad Tush
  20242. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20243. },
  20244. 15: {
  20245. Ffc: *(*struct {
  20246. Fcode [0]Tush
  20247. Ffreq Tush
  20248. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  20249. Fdl: *(*struct {
  20250. Flen1 [0]Tush
  20251. Fdad Tush
  20252. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20253. },
  20254. 16: {
  20255. Ffc: *(*struct {
  20256. Fcode [0]Tush
  20257. Ffreq Tush
  20258. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  20259. Fdl: *(*struct {
  20260. Flen1 [0]Tush
  20261. Fdad Tush
  20262. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20263. },
  20264. 17: {
  20265. Ffc: *(*struct {
  20266. Fcode [0]Tush
  20267. Ffreq Tush
  20268. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  20269. Fdl: *(*struct {
  20270. Flen1 [0]Tush
  20271. Fdad Tush
  20272. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20273. },
  20274. 18: {
  20275. Ffc: *(*struct {
  20276. Fcode [0]Tush
  20277. Ffreq Tush
  20278. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20279. Fdl: *(*struct {
  20280. Flen1 [0]Tush
  20281. Fdad Tush
  20282. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20283. },
  20284. 19: {
  20285. Ffc: *(*struct {
  20286. Fcode [0]Tush
  20287. Ffreq Tush
  20288. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  20289. Fdl: *(*struct {
  20290. Flen1 [0]Tush
  20291. Fdad Tush
  20292. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20293. },
  20294. 20: {
  20295. Ffc: *(*struct {
  20296. Fcode [0]Tush
  20297. Ffreq Tush
  20298. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20299. Fdl: *(*struct {
  20300. Flen1 [0]Tush
  20301. Fdad Tush
  20302. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20303. },
  20304. 21: {
  20305. Ffc: *(*struct {
  20306. Fcode [0]Tush
  20307. Ffreq Tush
  20308. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  20309. Fdl: *(*struct {
  20310. Flen1 [0]Tush
  20311. Fdad Tush
  20312. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20313. },
  20314. 22: {
  20315. Ffc: *(*struct {
  20316. Fcode [0]Tush
  20317. Ffreq Tush
  20318. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  20319. Fdl: *(*struct {
  20320. Flen1 [0]Tush
  20321. Fdad Tush
  20322. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20323. },
  20324. 23: {
  20325. Ffc: *(*struct {
  20326. Fcode [0]Tush
  20327. Ffreq Tush
  20328. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  20329. Fdl: *(*struct {
  20330. Flen1 [0]Tush
  20331. Fdad Tush
  20332. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20333. },
  20334. 24: {
  20335. Ffc: *(*struct {
  20336. Fcode [0]Tush
  20337. Ffreq Tush
  20338. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  20339. Fdl: *(*struct {
  20340. Flen1 [0]Tush
  20341. Fdad Tush
  20342. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20343. },
  20344. 25: {
  20345. Ffc: *(*struct {
  20346. Fcode [0]Tush
  20347. Ffreq Tush
  20348. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  20349. Fdl: *(*struct {
  20350. Flen1 [0]Tush
  20351. Fdad Tush
  20352. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20353. },
  20354. 26: {
  20355. Ffc: *(*struct {
  20356. Fcode [0]Tush
  20357. Ffreq Tush
  20358. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  20359. Fdl: *(*struct {
  20360. Flen1 [0]Tush
  20361. Fdad Tush
  20362. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20363. },
  20364. 27: {
  20365. Ffc: *(*struct {
  20366. Fcode [0]Tush
  20367. Ffreq Tush
  20368. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  20369. Fdl: *(*struct {
  20370. Flen1 [0]Tush
  20371. Fdad Tush
  20372. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20373. },
  20374. 28: {
  20375. Ffc: *(*struct {
  20376. Fcode [0]Tush
  20377. Ffreq Tush
  20378. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  20379. Fdl: *(*struct {
  20380. Flen1 [0]Tush
  20381. Fdad Tush
  20382. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20383. },
  20384. 29: {
  20385. Ffc: *(*struct {
  20386. Fcode [0]Tush
  20387. Ffreq Tush
  20388. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  20389. Fdl: *(*struct {
  20390. Flen1 [0]Tush
  20391. Fdad Tush
  20392. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20393. },
  20394. }
  20395. var _base_length = [29]int32{
  20396. 1: int32(1),
  20397. 2: int32(2),
  20398. 3: int32(3),
  20399. 4: int32(4),
  20400. 5: int32(5),
  20401. 6: int32(6),
  20402. 7: int32(7),
  20403. 8: int32(8),
  20404. 9: int32(10),
  20405. 10: int32(12),
  20406. 11: int32(14),
  20407. 12: int32(16),
  20408. 13: int32(20),
  20409. 14: int32(24),
  20410. 15: int32(28),
  20411. 16: int32(32),
  20412. 17: int32(40),
  20413. 18: int32(48),
  20414. 19: int32(56),
  20415. 20: int32(64),
  20416. 21: int32(80),
  20417. 22: int32(96),
  20418. 23: int32(112),
  20419. 24: int32(128),
  20420. 25: int32(160),
  20421. 26: int32(192),
  20422. 27: int32(224),
  20423. }
  20424. var _base_dist = [30]int32{
  20425. 1: int32(1),
  20426. 2: int32(2),
  20427. 3: int32(3),
  20428. 4: int32(4),
  20429. 5: int32(6),
  20430. 6: int32(8),
  20431. 7: int32(12),
  20432. 8: int32(16),
  20433. 9: int32(24),
  20434. 10: int32(32),
  20435. 11: int32(48),
  20436. 12: int32(64),
  20437. 13: int32(96),
  20438. 14: int32(128),
  20439. 15: int32(192),
  20440. 16: int32(256),
  20441. 17: int32(384),
  20442. 18: int32(512),
  20443. 19: int32(768),
  20444. 20: int32(1024),
  20445. 21: int32(1536),
  20446. 22: int32(2048),
  20447. 23: int32(3072),
  20448. 24: int32(4096),
  20449. 25: int32(6144),
  20450. 26: int32(8192),
  20451. 27: int32(12288),
  20452. 28: int32(16384),
  20453. 29: int32(24576),
  20454. }
  20455. var _static_l_desc = Tstatic_tree_desc{
  20456. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  20457. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  20458. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  20459. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  20460. Fmax_length: int32(m_MAX_BITS),
  20461. }
  20462. var _static_d_desc = Tstatic_tree_desc{
  20463. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  20464. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  20465. Felems: int32(m_D_CODES),
  20466. Fmax_length: int32(m_MAX_BITS),
  20467. }
  20468. var _static_bl_desc = Tstatic_tree_desc{
  20469. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  20470. Felems: int32(m_BL_CODES),
  20471. Fmax_length: int32(m_MAX_BL_BITS),
  20472. }
  20473. /* ===========================================================================
  20474. * Output a short LSB first on the stream.
  20475. * IN assertion: there is enough room in pendingBuf.
  20476. */
  20477. // C documentation
  20478. //
  20479. // /* ===========================================================================
  20480. // * Reverse the first len bits of a code, using straightforward code (a faster
  20481. // * method would use a table)
  20482. // * IN assertion: 1 <= len <= 15
  20483. // */
  20484. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  20485. var res uint32
  20486. var v1 int32
  20487. _, _ = res, v1
  20488. res = uint32(0)
  20489. for {
  20490. res |= code & uint32(1)
  20491. code >>= uint32(1)
  20492. res <<= uint32(1)
  20493. goto _2
  20494. _2:
  20495. ;
  20496. len1--
  20497. v1 = len1
  20498. if !(v1 > 0) {
  20499. break
  20500. }
  20501. }
  20502. return res >> int32(1)
  20503. }
  20504. // C documentation
  20505. //
  20506. // /* ===========================================================================
  20507. // * Flush the bit buffer, keeping at most 7 bits in it.
  20508. // */
  20509. func _bi_flush(tls *libc.TLS, s uintptr) {
  20510. var v1, v3, v5 Tulg
  20511. var v2, v4, v6, p7 uintptr
  20512. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  20513. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  20514. v2 = s + 40
  20515. v1 = *(*Tulg)(unsafe.Pointer(v2))
  20516. *(*Tulg)(unsafe.Pointer(v2))++
  20517. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20518. v4 = s + 40
  20519. v3 = *(*Tulg)(unsafe.Pointer(v4))
  20520. *(*Tulg)(unsafe.Pointer(v4))++
  20521. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20522. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  20523. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  20524. } else {
  20525. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  20526. v6 = s + 40
  20527. v5 = *(*Tulg)(unsafe.Pointer(v6))
  20528. *(*Tulg)(unsafe.Pointer(v6))++
  20529. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  20530. p7 = s + 5936
  20531. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  20532. *(*int32)(unsafe.Pointer(s + 5940)) -= int32(8)
  20533. }
  20534. }
  20535. }
  20536. // C documentation
  20537. //
  20538. // /* ===========================================================================
  20539. // * Flush the bit buffer and align the output on a byte boundary
  20540. // */
  20541. func _bi_windup(tls *libc.TLS, s uintptr) {
  20542. var v1, v3, v5 Tulg
  20543. var v2, v4, v6 uintptr
  20544. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  20545. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  20546. v2 = s + 40
  20547. v1 = *(*Tulg)(unsafe.Pointer(v2))
  20548. *(*Tulg)(unsafe.Pointer(v2))++
  20549. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  20550. v4 = s + 40
  20551. v3 = *(*Tulg)(unsafe.Pointer(v4))
  20552. *(*Tulg)(unsafe.Pointer(v4))++
  20553. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  20554. } else {
  20555. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  20556. v6 = s + 40
  20557. v5 = *(*Tulg)(unsafe.Pointer(v6))
  20558. *(*Tulg)(unsafe.Pointer(v6))++
  20559. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  20560. }
  20561. }
  20562. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  20563. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  20564. }
  20565. // C documentation
  20566. //
  20567. // /* ===========================================================================
  20568. // * Generate the codes for a given tree and bit counts (which need not be
  20569. // * optimal).
  20570. // * IN assertion: the array bl_count contains the bit length statistics for
  20571. // * the given tree and the field len is set for all tree elements.
  20572. // * OUT assertion: the field code is set for all tree elements of non
  20573. // * zero code length.
  20574. // */
  20575. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  20576. bp := tls.Alloc(32)
  20577. defer tls.Free(32)
  20578. var bits, len1, n int32
  20579. var code uint32
  20580. var v3 Tush
  20581. var v4 uintptr
  20582. var _ /* next_code at bp+0 */ [16]Tush
  20583. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  20584. code = uint32(0) /* code index */
  20585. /* The distribution counts are first used to generate the code values
  20586. * without bit reversal.
  20587. */
  20588. bits = int32(1)
  20589. for {
  20590. if !(bits <= int32(m_MAX_BITS)) {
  20591. break
  20592. }
  20593. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  20594. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  20595. goto _1
  20596. _1:
  20597. ;
  20598. bits++
  20599. }
  20600. /* Check that the bit counts in bl_count are consistent. The last code
  20601. * must be all ones.
  20602. */
  20603. n = 0
  20604. for {
  20605. if !(n <= max_code) {
  20606. break
  20607. }
  20608. len1 = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  20609. if len1 == 0 {
  20610. goto _2
  20611. }
  20612. /* Now reverse the bits */
  20613. v4 = bp + uintptr(len1)*2
  20614. v3 = *(*Tush)(unsafe.Pointer(v4))
  20615. *(*Tush)(unsafe.Pointer(v4))++
  20616. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  20617. goto _2
  20618. _2:
  20619. ;
  20620. n++
  20621. }
  20622. }
  20623. /* Send a code of the given tree. c and tree must not have side effects */
  20624. /* ===========================================================================
  20625. * Send a value on a given number of bits.
  20626. * IN assertion: length <= 16 and value fits in length bits.
  20627. */
  20628. /* the arguments must not have side effects */
  20629. // C documentation
  20630. //
  20631. // /* ===========================================================================
  20632. // * Initialize the various 'constant' tables.
  20633. // */
  20634. func _tr_static_init(tls *libc.TLS) {
  20635. }
  20636. /* ===========================================================================
  20637. * Generate the file trees.h describing the static trees.
  20638. */
  20639. // C documentation
  20640. //
  20641. // /* ===========================================================================
  20642. // * Initialize a new block.
  20643. // */
  20644. func _init_block(tls *libc.TLS, s uintptr) {
  20645. var n int32
  20646. var v4 Tulg
  20647. var v5 TuInt
  20648. _, _, _ = n, v4, v5 /* iterates over tree elements */
  20649. /* Initialize the trees. */
  20650. n = 0
  20651. for {
  20652. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  20653. break
  20654. }
  20655. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4)) = uint16(0)
  20656. goto _1
  20657. _1:
  20658. ;
  20659. n++
  20660. }
  20661. n = 0
  20662. for {
  20663. if !(n < int32(m_D_CODES)) {
  20664. break
  20665. }
  20666. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(n)*4)) = uint16(0)
  20667. goto _2
  20668. _2:
  20669. ;
  20670. n++
  20671. }
  20672. n = 0
  20673. for {
  20674. if !(n < int32(m_BL_CODES)) {
  20675. break
  20676. }
  20677. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(n)*4)) = uint16(0)
  20678. goto _3
  20679. _3:
  20680. ;
  20681. n++
  20682. }
  20683. *(*Tush)(unsafe.Pointer(s + 212 + 256*4)) = uint16(1)
  20684. v4 = libc.Uint64FromInt64(0)
  20685. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  20686. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  20687. v5 = libc.Uint32FromInt32(0)
  20688. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  20689. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  20690. }
  20691. // C documentation
  20692. //
  20693. // /* ===========================================================================
  20694. // * Initialize the tree data structures for a new zlib stream.
  20695. // */
  20696. func x__tr_init(tls *libc.TLS, s uintptr) {
  20697. _tr_static_init(tls)
  20698. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 212
  20699. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  20700. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2504
  20701. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  20702. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2748
  20703. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  20704. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  20705. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  20706. /* Initialize the first block of the first file: */
  20707. _init_block(tls, s)
  20708. }
  20709. /* Index within the heap array of least frequent node in the Huffman tree */
  20710. /* ===========================================================================
  20711. * Remove the smallest element from the heap and recreate the heap with
  20712. * one less element. Updates heap and heap_len.
  20713. */
  20714. /* ===========================================================================
  20715. * Compares to subtrees, using the tree depth as tie breaker when
  20716. * the subtrees have equal frequency. This minimizes the worst case length.
  20717. */
  20718. // C documentation
  20719. //
  20720. // /* ===========================================================================
  20721. // * Restore the heap property by moving down the tree starting at node k,
  20722. // * exchanging a node with the smallest of its two sons if necessary, stopping
  20723. // * when the heap property is re-established (each father smaller than its
  20724. // * two sons).
  20725. // */
  20726. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  20727. var j, v int32
  20728. _, _ = j, v
  20729. v = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4))
  20730. j = k << int32(1) /* left son of k */
  20731. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  20732. /* Set j to the smallest of the two sons: */
  20733. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j+int32(1))*4)))))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))))))) {
  20734. j++
  20735. }
  20736. /* Exit if v is smaller than both sons */
  20737. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(v)))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(*(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4)))))) {
  20738. break
  20739. }
  20740. /* Exchange v with the smallest son */
  20741. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(j)*4))
  20742. k = j
  20743. /* And continue down the tree, setting j to the left son of k */
  20744. j <<= int32(1)
  20745. }
  20746. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(k)*4)) = v
  20747. }
  20748. // C documentation
  20749. //
  20750. // /* ===========================================================================
  20751. // * Compute the optimal bit lengths for a tree and update the total bit length
  20752. // * for the current block.
  20753. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  20754. // * above are the tree nodes sorted by increasing frequency.
  20755. // * OUT assertions: the field len is set to the optimal bit length, the
  20756. // * array bl_count contains the frequencies for each bit length.
  20757. // * The length opt_len is updated; static_len is also updated if stree is
  20758. // * not null.
  20759. // */
  20760. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  20761. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  20762. var extra, stree, tree, p3 uintptr
  20763. var f Tush
  20764. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  20765. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  20766. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  20767. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  20768. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  20769. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  20770. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  20771. overflow = 0 /* number of elements with bit length too large */
  20772. bits = 0
  20773. for {
  20774. if !(bits <= int32(m_MAX_BITS)) {
  20775. break
  20776. }
  20777. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)) = uint16(0)
  20778. goto _1
  20779. _1:
  20780. ;
  20781. bits++
  20782. }
  20783. /* In a first pass, compute the optimal bit lengths (which may
  20784. * overflow in the case of the bit length tree).
  20785. */
  20786. *(*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 */
  20787. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  20788. for {
  20789. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  20790. break
  20791. }
  20792. n = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(h)*4))
  20793. bits = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  20794. if bits > max_length {
  20795. bits = max_length
  20796. overflow++
  20797. }
  20798. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(bits)
  20799. /* We overwrite tree[n].Dad which is no longer needed */
  20800. if n > max_code {
  20801. goto _2
  20802. } /* not a leaf node */
  20803. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))++
  20804. xbits = 0
  20805. if n >= base {
  20806. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  20807. }
  20808. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  20809. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(f) * uint64(uint32(bits+xbits))
  20810. if stree != 0 {
  20811. *(*Tulg)(unsafe.Pointer(s + 5920)) += uint64(f) * uint64(uint32(int32(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits))
  20812. }
  20813. goto _2
  20814. _2:
  20815. ;
  20816. h++
  20817. }
  20818. if overflow == 0 {
  20819. return
  20820. }
  20821. /* This happens for example on obj2 and pic of the Calgary corpus */
  20822. /* Find the first bit length which could increase: */
  20823. for cond := true; cond; cond = overflow > 0 {
  20824. bits = max_length - int32(1)
  20825. for int32(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))) == 0 {
  20826. bits--
  20827. }
  20828. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2))-- /* move one leaf down the tree */
  20829. p3 = s + 2976 + uintptr(bits+int32(1))*2
  20830. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  20831. *(*Tush)(unsafe.Pointer(s + 2976 + uintptr(max_length)*2))--
  20832. /* The brother of the overflow item also moves one step up,
  20833. * but this does not affect bl_count[max_length]
  20834. */
  20835. overflow -= int32(2)
  20836. }
  20837. /* Now recompute all bit lengths, scanning in increasing frequency.
  20838. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  20839. * lengths instead of fixing only the wrong ones. This idea is taken
  20840. * from 'ar' written by Haruhiko Okumura.)
  20841. */
  20842. bits = max_length
  20843. for {
  20844. if !(bits != 0) {
  20845. break
  20846. }
  20847. n = int32(*(*Tush)(unsafe.Pointer(s + 2976 + uintptr(bits)*2)))
  20848. for n != 0 {
  20849. h--
  20850. v5 = h
  20851. m = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v5)*4))
  20852. if m > max_code {
  20853. continue
  20854. }
  20855. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != uint32(bits) {
  20856. *(*Tulg)(unsafe.Pointer(s + 5912)) += (uint64(bits) - uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint64(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  20857. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = uint16(bits)
  20858. }
  20859. n--
  20860. }
  20861. goto _4
  20862. _4:
  20863. ;
  20864. bits--
  20865. }
  20866. }
  20867. // C documentation
  20868. //
  20869. // /* ===========================================================================
  20870. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  20871. // * Update the total bit length for the current block.
  20872. // * IN assertion: the field freq is set for all tree elements.
  20873. // * OUT assertions: the fields len and code are set to the optimal bit length
  20874. // * and corresponding code. The length opt_len is updated; static_len is
  20875. // * also updated if stree is not null. The field max_code is set.
  20876. // */
  20877. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  20878. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  20879. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  20880. var v18 Tush
  20881. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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
  20882. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  20883. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  20884. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  20885. max_code = -int32(1) /* new node being created */
  20886. /* Construct the initial heap, with least frequent element in
  20887. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  20888. * heap[0] is not used.
  20889. */
  20890. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  20891. /* Construct the initial heap, with least frequent element in
  20892. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  20893. * heap[0] is not used.
  20894. */
  20895. (*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)
  20896. n = 0
  20897. for {
  20898. if !(n < elems) {
  20899. break
  20900. }
  20901. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  20902. v3 = s + 5300
  20903. *(*int32)(unsafe.Pointer(v3))++
  20904. v2 = *(*int32)(unsafe.Pointer(v3))
  20905. v4 = n
  20906. max_code = v4
  20907. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v2)*4)) = v4
  20908. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))) = uint8(0)
  20909. } else {
  20910. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  20911. }
  20912. goto _1
  20913. _1:
  20914. ;
  20915. n++
  20916. }
  20917. /* The pkzip format requires that at least one distance code exists,
  20918. * and that at least one bit should be sent even if there is only one
  20919. * possible code. So to avoid special checks later on we force at least
  20920. * two codes of non zero frequency.
  20921. */
  20922. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  20923. if max_code < int32(2) {
  20924. max_code++
  20925. v7 = max_code
  20926. v6 = v7
  20927. } else {
  20928. v6 = 0
  20929. }
  20930. v5 = v6
  20931. v9 = s + 5300
  20932. *(*int32)(unsafe.Pointer(v9))++
  20933. v8 = *(*int32)(unsafe.Pointer(v9))
  20934. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v8)*4)) = v5
  20935. node = v5
  20936. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  20937. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(0)
  20938. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  20939. if stree != 0 {
  20940. *(*Tulg)(unsafe.Pointer(s + 5920)) -= uint64(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  20941. }
  20942. /* node is 0 or 1 so it does not have extra bits */
  20943. }
  20944. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  20945. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  20946. * establish sub-heaps of increasing lengths:
  20947. */
  20948. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  20949. for {
  20950. if !(n >= int32(1)) {
  20951. break
  20952. }
  20953. _pqdownheap(tls, s, tree, n)
  20954. goto _10
  20955. _10:
  20956. ;
  20957. n--
  20958. }
  20959. /* Construct the Huffman tree by repeatedly combining the least two
  20960. * frequent nodes.
  20961. */
  20962. node = elems /* next internal node of the tree */
  20963. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  20964. n = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  20965. v12 = s + 5300
  20966. v11 = *(*int32)(unsafe.Pointer(v12))
  20967. *(*int32)(unsafe.Pointer(v12))--
  20968. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v11)*4))
  20969. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  20970. m = *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) /* m = node of next least frequency */
  20971. v14 = s + 5304
  20972. *(*int32)(unsafe.Pointer(v14))--
  20973. v13 = *(*int32)(unsafe.Pointer(v14))
  20974. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  20975. v16 = s + 5304
  20976. *(*int32)(unsafe.Pointer(v16))--
  20977. v15 = *(*int32)(unsafe.Pointer(v16))
  20978. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v15)*4)) = m
  20979. /* Create a new node father of n and m */
  20980. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + int32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  20981. if int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n)))) >= int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m)))) {
  20982. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(n))))
  20983. } else {
  20984. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(m))))
  20985. }
  20986. *(*Tuch)(unsafe.Pointer(s + 5308 + uintptr(node))) = uint8(v17 + libc.Int32FromInt32(1))
  20987. v18 = uint16(node)
  20988. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  20989. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  20990. /* and insert the new node in the heap */
  20991. v19 = node
  20992. node++
  20993. *(*int32)(unsafe.Pointer(s + 3008 + 1*4)) = v19
  20994. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  20995. }
  20996. v21 = s + 5304
  20997. *(*int32)(unsafe.Pointer(v21))--
  20998. v20 = *(*int32)(unsafe.Pointer(v21))
  20999. *(*int32)(unsafe.Pointer(s + 3008 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 3008 + 1*4))
  21000. /* At this point, the fields freq and dad are set. We can now
  21001. * generate the bit lengths.
  21002. */
  21003. _gen_bitlen(tls, s, desc)
  21004. /* The field len is now set, we can generate the bit codes */
  21005. _gen_codes(tls, tree, max_code, s+2976)
  21006. }
  21007. // C documentation
  21008. //
  21009. // /* ===========================================================================
  21010. // * Scan a literal or distance tree to determine the frequencies of the codes
  21011. // * in the bit length tree.
  21012. // */
  21013. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  21014. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  21015. var p3 uintptr
  21016. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  21017. prevlen = -int32(1) /* length of current code */
  21018. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  21019. count = 0 /* repeat count of the current code */
  21020. max_count = int32(7) /* max repeat count */
  21021. min_count = int32(4) /* min repeat count */
  21022. if nextlen == 0 {
  21023. max_count = int32(138)
  21024. min_count = libc.Int32FromInt32(3)
  21025. }
  21026. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  21027. n = 0
  21028. for {
  21029. if !(n <= max_code) {
  21030. break
  21031. }
  21032. curlen = nextlen
  21033. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  21034. count++
  21035. v2 = count
  21036. if v2 < max_count && curlen == nextlen {
  21037. goto _1
  21038. } else {
  21039. if count < min_count {
  21040. p3 = s + 2748 + uintptr(curlen)*4
  21041. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  21042. } else {
  21043. if curlen != 0 {
  21044. if curlen != prevlen {
  21045. *(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4))++
  21046. }
  21047. *(*Tush)(unsafe.Pointer(s + 2748 + 16*4))++
  21048. } else {
  21049. if count <= int32(10) {
  21050. *(*Tush)(unsafe.Pointer(s + 2748 + 17*4))++
  21051. } else {
  21052. *(*Tush)(unsafe.Pointer(s + 2748 + 18*4))++
  21053. }
  21054. }
  21055. }
  21056. }
  21057. count = 0
  21058. prevlen = curlen
  21059. if nextlen == 0 {
  21060. max_count = int32(138)
  21061. min_count = libc.Int32FromInt32(3)
  21062. } else {
  21063. if curlen == nextlen {
  21064. max_count = int32(6)
  21065. min_count = libc.Int32FromInt32(3)
  21066. } else {
  21067. max_count = int32(7)
  21068. min_count = libc.Int32FromInt32(4)
  21069. }
  21070. }
  21071. goto _1
  21072. _1:
  21073. ;
  21074. n++
  21075. }
  21076. }
  21077. // C documentation
  21078. //
  21079. // /* ===========================================================================
  21080. // * Send a literal or distance tree in compressed form, using the codes in
  21081. // * bl_tree.
  21082. // */
  21083. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  21084. 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
  21085. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  21086. 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
  21087. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  21088. prevlen = -int32(1) /* length of current code */
  21089. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  21090. count = 0 /* repeat count of the current code */
  21091. max_count = int32(7) /* max repeat count */
  21092. min_count = int32(4) /* min repeat count */
  21093. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  21094. if nextlen == 0 {
  21095. max_count = int32(138)
  21096. min_count = libc.Int32FromInt32(3)
  21097. }
  21098. n = 0
  21099. for {
  21100. if !(n <= max_code) {
  21101. break
  21102. }
  21103. curlen = nextlen
  21104. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  21105. count++
  21106. v2 = count
  21107. if v2 < max_count && curlen == nextlen {
  21108. goto _1
  21109. } else {
  21110. if count < min_count {
  21111. for {
  21112. len1 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  21113. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21114. val = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  21115. p5 = s + 5936
  21116. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21117. v7 = s + 40
  21118. v6 = *(*Tulg)(unsafe.Pointer(v7))
  21119. *(*Tulg)(unsafe.Pointer(v7))++
  21120. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21121. v9 = s + 40
  21122. v8 = *(*Tulg)(unsafe.Pointer(v9))
  21123. *(*Tulg)(unsafe.Pointer(v9))++
  21124. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21125. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21126. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21127. } else {
  21128. p10 = s + 5936
  21129. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21130. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21131. }
  21132. goto _4
  21133. _4:
  21134. ;
  21135. count--
  21136. v3 = count
  21137. if !(v3 != 0) {
  21138. break
  21139. }
  21140. }
  21141. } else {
  21142. if curlen != 0 {
  21143. if curlen != prevlen {
  21144. len11 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4 + 2)))
  21145. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21146. val1 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))
  21147. p11 = s + 5936
  21148. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21149. v13 = s + 40
  21150. v12 = *(*Tulg)(unsafe.Pointer(v13))
  21151. *(*Tulg)(unsafe.Pointer(v13))++
  21152. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21153. v15 = s + 40
  21154. v14 = *(*Tulg)(unsafe.Pointer(v15))
  21155. *(*Tulg)(unsafe.Pointer(v15))++
  21156. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21157. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21158. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  21159. } else {
  21160. p16 = s + 5936
  21161. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21162. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  21163. }
  21164. count--
  21165. }
  21166. len2 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4 + 2)))
  21167. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  21168. val2 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))
  21169. p17 = s + 5936
  21170. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21171. v19 = s + 40
  21172. v18 = *(*Tulg)(unsafe.Pointer(v19))
  21173. *(*Tulg)(unsafe.Pointer(v19))++
  21174. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21175. v21 = s + 40
  21176. v20 = *(*Tulg)(unsafe.Pointer(v21))
  21177. *(*Tulg)(unsafe.Pointer(v21))++
  21178. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21179. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21180. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  21181. } else {
  21182. p22 = s + 5936
  21183. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21184. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  21185. }
  21186. len3 = int32(2)
  21187. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  21188. val3 = count - int32(3)
  21189. p23 = s + 5936
  21190. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21191. v25 = s + 40
  21192. v24 = *(*Tulg)(unsafe.Pointer(v25))
  21193. *(*Tulg)(unsafe.Pointer(v25))++
  21194. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21195. v27 = s + 40
  21196. v26 = *(*Tulg)(unsafe.Pointer(v27))
  21197. *(*Tulg)(unsafe.Pointer(v27))++
  21198. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21199. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21200. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  21201. } else {
  21202. p28 = s + 5936
  21203. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21204. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  21205. }
  21206. } else {
  21207. if count <= int32(10) {
  21208. len4 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4 + 2)))
  21209. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  21210. val4 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))
  21211. p29 = s + 5936
  21212. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21213. v31 = s + 40
  21214. v30 = *(*Tulg)(unsafe.Pointer(v31))
  21215. *(*Tulg)(unsafe.Pointer(v31))++
  21216. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21217. v33 = s + 40
  21218. v32 = *(*Tulg)(unsafe.Pointer(v33))
  21219. *(*Tulg)(unsafe.Pointer(v33))++
  21220. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21221. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21222. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  21223. } else {
  21224. p34 = s + 5936
  21225. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21226. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  21227. }
  21228. len5 = int32(3)
  21229. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  21230. val5 = count - int32(3)
  21231. p35 = s + 5936
  21232. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21233. v37 = s + 40
  21234. v36 = *(*Tulg)(unsafe.Pointer(v37))
  21235. *(*Tulg)(unsafe.Pointer(v37))++
  21236. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21237. v39 = s + 40
  21238. v38 = *(*Tulg)(unsafe.Pointer(v39))
  21239. *(*Tulg)(unsafe.Pointer(v39))++
  21240. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21241. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21242. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  21243. } else {
  21244. p40 = s + 5936
  21245. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21246. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  21247. }
  21248. } else {
  21249. len6 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4 + 2)))
  21250. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  21251. val6 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))
  21252. p41 = s + 5936
  21253. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | int32(uint16(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21254. v43 = s + 40
  21255. v42 = *(*Tulg)(unsafe.Pointer(v43))
  21256. *(*Tulg)(unsafe.Pointer(v43))++
  21257. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21258. v45 = s + 40
  21259. v44 = *(*Tulg)(unsafe.Pointer(v45))
  21260. *(*Tulg)(unsafe.Pointer(v45))++
  21261. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21262. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21263. *(*int32)(unsafe.Pointer(s + 5940)) += len6 - int32(m_Buf_size)
  21264. } else {
  21265. p46 = s + 5936
  21266. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21267. *(*int32)(unsafe.Pointer(s + 5940)) += len6
  21268. }
  21269. len7 = int32(7)
  21270. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  21271. val7 = count - int32(11)
  21272. p47 = s + 5936
  21273. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | int32(uint16(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21274. v49 = s + 40
  21275. v48 = *(*Tulg)(unsafe.Pointer(v49))
  21276. *(*Tulg)(unsafe.Pointer(v49))++
  21277. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21278. v51 = s + 40
  21279. v50 = *(*Tulg)(unsafe.Pointer(v51))
  21280. *(*Tulg)(unsafe.Pointer(v51))++
  21281. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21282. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21283. *(*int32)(unsafe.Pointer(s + 5940)) += len7 - int32(m_Buf_size)
  21284. } else {
  21285. p52 = s + 5936
  21286. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | int32(uint16(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21287. *(*int32)(unsafe.Pointer(s + 5940)) += len7
  21288. }
  21289. }
  21290. }
  21291. }
  21292. }
  21293. count = 0
  21294. prevlen = curlen
  21295. if nextlen == 0 {
  21296. max_count = int32(138)
  21297. min_count = libc.Int32FromInt32(3)
  21298. } else {
  21299. if curlen == nextlen {
  21300. max_count = int32(6)
  21301. min_count = libc.Int32FromInt32(3)
  21302. } else {
  21303. max_count = int32(7)
  21304. min_count = libc.Int32FromInt32(4)
  21305. }
  21306. }
  21307. goto _1
  21308. _1:
  21309. ;
  21310. n++
  21311. }
  21312. }
  21313. // C documentation
  21314. //
  21315. // /* ===========================================================================
  21316. // * Construct the Huffman tree for the bit lengths and return the index in
  21317. // * bl_order of the last bit length code to send.
  21318. // */
  21319. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  21320. var max_blindex int32
  21321. _ = max_blindex /* index of last bit length code of non zero freq */
  21322. /* Determine the bit length frequencies for literal and distance trees */
  21323. _scan_tree(tls, s, s+212, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  21324. _scan_tree(tls, s, s+2504, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  21325. /* Build the bit length tree: */
  21326. _build_tree(tls, s, s+2952)
  21327. /* opt_len now includes the length of the tree representations, except the
  21328. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  21329. */
  21330. /* Determine the number of bit length codes to send. The pkzip format
  21331. * requires that at least 4 bit length codes be sent. (appnote.txt says
  21332. * 3 but the actual value used is 4.)
  21333. */
  21334. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  21335. for {
  21336. if !(max_blindex >= int32(3)) {
  21337. break
  21338. }
  21339. if int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  21340. break
  21341. }
  21342. goto _1
  21343. _1:
  21344. ;
  21345. max_blindex--
  21346. }
  21347. /* Update opt_len to include the bit length tree and counts */
  21348. *(*Tulg)(unsafe.Pointer(s + 5912)) += uint64(3)*(uint64(max_blindex)+uint64(1)) + uint64(5) + uint64(5) + uint64(4)
  21349. return max_blindex
  21350. }
  21351. // C documentation
  21352. //
  21353. // /* ===========================================================================
  21354. // * Send the header for a block using dynamic Huffman trees: the counts, the
  21355. // * lengths of the bit length codes, the literal tree and the distance tree.
  21356. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  21357. // */
  21358. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  21359. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  21360. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  21361. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  21362. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  21363. len1 = int32(5)
  21364. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21365. val = lcodes - int32(257)
  21366. p1 = s + 5936
  21367. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21368. v3 = s + 40
  21369. v2 = *(*Tulg)(unsafe.Pointer(v3))
  21370. *(*Tulg)(unsafe.Pointer(v3))++
  21371. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21372. v5 = s + 40
  21373. v4 = *(*Tulg)(unsafe.Pointer(v5))
  21374. *(*Tulg)(unsafe.Pointer(v5))++
  21375. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21376. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21377. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21378. } else {
  21379. p6 = s + 5936
  21380. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21381. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21382. } /* not +255 as stated in appnote.txt */
  21383. len11 = int32(5)
  21384. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21385. val1 = dcodes - int32(1)
  21386. p7 = s + 5936
  21387. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21388. v9 = s + 40
  21389. v8 = *(*Tulg)(unsafe.Pointer(v9))
  21390. *(*Tulg)(unsafe.Pointer(v9))++
  21391. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21392. v11 = s + 40
  21393. v10 = *(*Tulg)(unsafe.Pointer(v11))
  21394. *(*Tulg)(unsafe.Pointer(v11))++
  21395. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21396. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21397. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  21398. } else {
  21399. p12 = s + 5936
  21400. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(uint16(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21401. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  21402. }
  21403. len2 = int32(4)
  21404. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  21405. val2 = blcodes - int32(4)
  21406. p13 = s + 5936
  21407. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21408. v15 = s + 40
  21409. v14 = *(*Tulg)(unsafe.Pointer(v15))
  21410. *(*Tulg)(unsafe.Pointer(v15))++
  21411. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21412. v17 = s + 40
  21413. v16 = *(*Tulg)(unsafe.Pointer(v17))
  21414. *(*Tulg)(unsafe.Pointer(v17))++
  21415. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21416. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21417. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  21418. } else {
  21419. p18 = s + 5936
  21420. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | int32(uint16(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21421. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  21422. } /* not -3 as stated in appnote.txt */
  21423. rank = 0
  21424. for {
  21425. if !(rank < blcodes) {
  21426. break
  21427. }
  21428. len3 = int32(3)
  21429. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  21430. val3 = int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))
  21431. p20 = s + 5936
  21432. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21433. v22 = s + 40
  21434. v21 = *(*Tulg)(unsafe.Pointer(v22))
  21435. *(*Tulg)(unsafe.Pointer(v22))++
  21436. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21437. v24 = s + 40
  21438. v23 = *(*Tulg)(unsafe.Pointer(v24))
  21439. *(*Tulg)(unsafe.Pointer(v24))++
  21440. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21441. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21442. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  21443. } else {
  21444. p25 = s + 5936
  21445. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | int32(*(*Tush)(unsafe.Pointer(s + 2748 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21446. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  21447. }
  21448. goto _19
  21449. _19:
  21450. ;
  21451. rank++
  21452. }
  21453. _send_tree(tls, s, s+212, lcodes-int32(1)) /* literal tree */
  21454. _send_tree(tls, s, s+2504, dcodes-int32(1)) /* distance tree */
  21455. }
  21456. // C documentation
  21457. //
  21458. // /* ===========================================================================
  21459. // * Send a stored block
  21460. // */
  21461. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  21462. var len1, val int32
  21463. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  21464. var v11, v13, v2, v4, v7, v9 Tulg
  21465. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  21466. len1 = int32(3)
  21467. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21468. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  21469. p1 = s + 5936
  21470. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21471. v3 = s + 40
  21472. v2 = *(*Tulg)(unsafe.Pointer(v3))
  21473. *(*Tulg)(unsafe.Pointer(v3))++
  21474. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21475. v5 = s + 40
  21476. v4 = *(*Tulg)(unsafe.Pointer(v5))
  21477. *(*Tulg)(unsafe.Pointer(v5))++
  21478. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21479. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21480. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21481. } else {
  21482. p6 = s + 5936
  21483. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21484. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21485. } /* send block type */
  21486. _bi_windup(tls, s) /* align on byte boundary */
  21487. v8 = s + 40
  21488. v7 = *(*Tulg)(unsafe.Pointer(v8))
  21489. *(*Tulg)(unsafe.Pointer(v8))++
  21490. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  21491. v10 = s + 40
  21492. v9 = *(*Tulg)(unsafe.Pointer(v10))
  21493. *(*Tulg)(unsafe.Pointer(v10))++
  21494. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32(uint16(stored_len)) >> libc.Int32FromInt32(8))
  21495. v12 = s + 40
  21496. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21497. *(*Tulg)(unsafe.Pointer(v12))++
  21498. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  21499. v14 = s + 40
  21500. v13 = *(*Tulg)(unsafe.Pointer(v14))
  21501. *(*Tulg)(unsafe.Pointer(v14))++
  21502. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  21503. if stored_len != 0 {
  21504. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, stored_len)
  21505. }
  21506. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  21507. }
  21508. // C documentation
  21509. //
  21510. // /* ===========================================================================
  21511. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  21512. // */
  21513. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  21514. _bi_flush(tls, s)
  21515. }
  21516. // C documentation
  21517. //
  21518. // /* ===========================================================================
  21519. // * Send one empty static block to give enough lookahead for inflate.
  21520. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  21521. // */
  21522. func x__tr_align(tls *libc.TLS, s uintptr) {
  21523. var len1, len11, val, val1 int32
  21524. var v10, v2, v4, v8 Tulg
  21525. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  21526. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  21527. len1 = int32(3)
  21528. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21529. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  21530. p1 = s + 5936
  21531. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21532. v3 = s + 40
  21533. v2 = *(*Tulg)(unsafe.Pointer(v3))
  21534. *(*Tulg)(unsafe.Pointer(v3))++
  21535. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21536. v5 = s + 40
  21537. v4 = *(*Tulg)(unsafe.Pointer(v5))
  21538. *(*Tulg)(unsafe.Pointer(v5))++
  21539. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21540. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21541. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21542. } else {
  21543. p6 = s + 5936
  21544. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21545. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21546. }
  21547. len11 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  21548. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21549. val1 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  21550. p7 = s + 5936
  21551. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21552. v9 = s + 40
  21553. v8 = *(*Tulg)(unsafe.Pointer(v9))
  21554. *(*Tulg)(unsafe.Pointer(v9))++
  21555. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21556. v11 = s + 40
  21557. v10 = *(*Tulg)(unsafe.Pointer(v11))
  21558. *(*Tulg)(unsafe.Pointer(v11))++
  21559. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21560. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21561. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  21562. } else {
  21563. p12 = s + 5936
  21564. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21565. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  21566. }
  21567. _bi_flush(tls, s)
  21568. }
  21569. // C documentation
  21570. //
  21571. // /* ===========================================================================
  21572. // * Send the block data compressed using the given Huffman trees
  21573. // */
  21574. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  21575. var code, dist, sx, v1, v2, v3 uint32
  21576. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  21577. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  21578. 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
  21579. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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) */
  21580. sx = uint32(0) /* number of extra bits to send */
  21581. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  21582. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  21583. v1 = sx
  21584. sx++
  21585. dist = uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  21586. v2 = sx
  21587. sx++
  21588. dist += uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  21589. v3 = sx
  21590. sx++
  21591. lc = int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  21592. if dist == uint32(0) {
  21593. len1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  21594. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21595. val = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  21596. p4 = s + 5936
  21597. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21598. v6 = s + 40
  21599. v5 = *(*Tulg)(unsafe.Pointer(v6))
  21600. *(*Tulg)(unsafe.Pointer(v6))++
  21601. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21602. v8 = s + 40
  21603. v7 = *(*Tulg)(unsafe.Pointer(v8))
  21604. *(*Tulg)(unsafe.Pointer(v8))++
  21605. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21606. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21607. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21608. } else {
  21609. p9 = s + 5936
  21610. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21611. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21612. } /* send a literal byte */
  21613. } else {
  21614. /* Here, lc is the match length - MIN_MATCH */
  21615. code = uint32(x__length_code[lc])
  21616. len11 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  21617. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21618. val1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  21619. p10 = s + 5936
  21620. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21621. v12 = s + 40
  21622. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21623. *(*Tulg)(unsafe.Pointer(v12))++
  21624. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21625. v14 = s + 40
  21626. v13 = *(*Tulg)(unsafe.Pointer(v14))
  21627. *(*Tulg)(unsafe.Pointer(v14))++
  21628. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21629. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21630. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  21631. } else {
  21632. p15 = s + 5936
  21633. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21634. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  21635. } /* send length code */
  21636. extra = _extra_lbits[code]
  21637. if extra != 0 {
  21638. lc -= _base_length[code]
  21639. len2 = extra
  21640. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  21641. val2 = lc
  21642. p16 = s + 5936
  21643. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21644. v18 = s + 40
  21645. v17 = *(*Tulg)(unsafe.Pointer(v18))
  21646. *(*Tulg)(unsafe.Pointer(v18))++
  21647. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21648. v20 = s + 40
  21649. v19 = *(*Tulg)(unsafe.Pointer(v20))
  21650. *(*Tulg)(unsafe.Pointer(v20))++
  21651. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21652. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21653. *(*int32)(unsafe.Pointer(s + 5940)) += len2 - int32(m_Buf_size)
  21654. } else {
  21655. p21 = s + 5936
  21656. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | int32(uint16(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21657. *(*int32)(unsafe.Pointer(s + 5940)) += len2
  21658. } /* send the extra length bits */
  21659. }
  21660. dist-- /* dist is now the match distance - 1 */
  21661. if dist < uint32(256) {
  21662. v22 = int32(x__dist_code[dist])
  21663. } else {
  21664. v22 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  21665. }
  21666. code = uint32(v22)
  21667. len3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  21668. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  21669. val3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  21670. p23 = s + 5936
  21671. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21672. v25 = s + 40
  21673. v24 = *(*Tulg)(unsafe.Pointer(v25))
  21674. *(*Tulg)(unsafe.Pointer(v25))++
  21675. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21676. v27 = s + 40
  21677. v26 = *(*Tulg)(unsafe.Pointer(v27))
  21678. *(*Tulg)(unsafe.Pointer(v27))++
  21679. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21680. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21681. *(*int32)(unsafe.Pointer(s + 5940)) += len3 - int32(m_Buf_size)
  21682. } else {
  21683. p28 = s + 5936
  21684. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21685. *(*int32)(unsafe.Pointer(s + 5940)) += len3
  21686. } /* send the distance code */
  21687. extra = _extra_dbits[code]
  21688. if extra != 0 {
  21689. dist -= uint32(_base_dist[code])
  21690. len4 = extra
  21691. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  21692. val4 = int32(dist)
  21693. p29 = s + 5936
  21694. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21695. v31 = s + 40
  21696. v30 = *(*Tulg)(unsafe.Pointer(v31))
  21697. *(*Tulg)(unsafe.Pointer(v31))++
  21698. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21699. v33 = s + 40
  21700. v32 = *(*Tulg)(unsafe.Pointer(v33))
  21701. *(*Tulg)(unsafe.Pointer(v33))++
  21702. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21703. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21704. *(*int32)(unsafe.Pointer(s + 5940)) += len4 - int32(m_Buf_size)
  21705. } else {
  21706. p34 = s + 5936
  21707. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21708. *(*int32)(unsafe.Pointer(s + 5940)) += len4
  21709. } /* send the extra distance bits */
  21710. }
  21711. } /* literal or match pair ? */
  21712. /* Check for no overlay of pending_buf on needed symbols */
  21713. }
  21714. }
  21715. len5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  21716. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  21717. val5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  21718. p35 = s + 5936
  21719. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21720. v37 = s + 40
  21721. v36 = *(*Tulg)(unsafe.Pointer(v37))
  21722. *(*Tulg)(unsafe.Pointer(v37))++
  21723. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21724. v39 = s + 40
  21725. v38 = *(*Tulg)(unsafe.Pointer(v39))
  21726. *(*Tulg)(unsafe.Pointer(v39))++
  21727. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21728. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21729. *(*int32)(unsafe.Pointer(s + 5940)) += len5 - int32(m_Buf_size)
  21730. } else {
  21731. p40 = s + 5936
  21732. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21733. *(*int32)(unsafe.Pointer(s + 5940)) += len5
  21734. }
  21735. }
  21736. // C documentation
  21737. //
  21738. // /* ===========================================================================
  21739. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  21740. // * - TEXT if the two conditions below are satisfied:
  21741. // * a) There are no non-portable control characters belonging to the
  21742. // * "block list" (0..6, 14..25, 28..31).
  21743. // * b) There is at least one printable character belonging to the
  21744. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  21745. // * - BINARY otherwise.
  21746. // * - The following partially-portable control characters form a
  21747. // * "gray list" that is ignored in this detection algorithm:
  21748. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  21749. // * IN assertion: the fields Freq of dyn_ltree are set.
  21750. // */
  21751. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  21752. var block_mask uint64
  21753. var n int32
  21754. _, _ = block_mask, n
  21755. /* block_mask is the bit mask of block-listed bytes
  21756. * set bits 0..6, 14..25, and 28..31
  21757. * 0xf3ffc07f = binary 11110011111111111100000001111111
  21758. */
  21759. block_mask = uint64(0xf3ffc07f)
  21760. /* Check for non-textual ("block-listed") bytes. */
  21761. n = 0
  21762. for {
  21763. if !(n <= int32(31)) {
  21764. break
  21765. }
  21766. if block_mask&uint64(1) != 0 && int32(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  21767. return m_Z_BINARY
  21768. }
  21769. goto _1
  21770. _1:
  21771. ;
  21772. n++
  21773. block_mask >>= uint64(1)
  21774. }
  21775. /* Check for textual ("allow-listed") bytes. */
  21776. if int32(*(*Tush)(unsafe.Pointer(s + 212 + 9*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 212 + 10*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 212 + 13*4))) != 0 {
  21777. return int32(m_Z_TEXT)
  21778. }
  21779. n = int32(32)
  21780. for {
  21781. if !(n < int32(m_LITERALS)) {
  21782. break
  21783. }
  21784. if int32(*(*Tush)(unsafe.Pointer(s + 212 + uintptr(n)*4))) != 0 {
  21785. return int32(m_Z_TEXT)
  21786. }
  21787. goto _2
  21788. _2:
  21789. ;
  21790. n++
  21791. }
  21792. /* There are no "block-listed" or "allow-listed" bytes:
  21793. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  21794. */
  21795. return m_Z_BINARY
  21796. }
  21797. // C documentation
  21798. //
  21799. // /* ===========================================================================
  21800. // * Determine the best encoding for the current block: dynamic trees, static
  21801. // * trees or store, and write out the encoded block.
  21802. // */
  21803. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  21804. var len1, len11, max_blindex, val, val1 int32
  21805. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  21806. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  21807. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = 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 */
  21808. max_blindex = 0 /* index of last bit length code of non zero freq */
  21809. /* Build the Huffman trees unless a stored block is forced */
  21810. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  21811. /* Check if the file is binary or text */
  21812. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  21813. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  21814. }
  21815. /* Construct the literal and distance trees */
  21816. _build_tree(tls, s, s+2904)
  21817. _build_tree(tls, s, s+2928)
  21818. /* At this point, opt_len and static_len are the total bit lengths of
  21819. * the compressed block data, excluding the tree representations.
  21820. */
  21821. /* Build the bit length tree for the above two trees, and get the index
  21822. * in bl_order of the last bit length code to send.
  21823. */
  21824. max_blindex = _build_bl_tree(tls, s)
  21825. /* Determine the best encoding. Compute the block lengths in bytes. */
  21826. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint64(3) + uint64(7)) >> int32(3)
  21827. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint64(3) + uint64(7)) >> int32(3)
  21828. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  21829. opt_lenb = static_lenb
  21830. }
  21831. } else {
  21832. v1 = stored_len + libc.Uint64FromInt32(5)
  21833. static_lenb = v1
  21834. opt_lenb = v1 /* force a stored block */
  21835. }
  21836. if stored_len+uint64(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  21837. /* 4: two words for the lengths */
  21838. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  21839. * Otherwise we can't have processed more than WSIZE input bytes since
  21840. * the last block flush, because compression would have been
  21841. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  21842. * transform a block into a stored block.
  21843. */
  21844. x__tr_stored_block(tls, s, buf, stored_len, last)
  21845. } else {
  21846. if static_lenb == opt_lenb {
  21847. len1 = int32(3)
  21848. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  21849. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  21850. p2 = s + 5936
  21851. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21852. v4 = s + 40
  21853. v3 = *(*Tulg)(unsafe.Pointer(v4))
  21854. *(*Tulg)(unsafe.Pointer(v4))++
  21855. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21856. v6 = s + 40
  21857. v5 = *(*Tulg)(unsafe.Pointer(v6))
  21858. *(*Tulg)(unsafe.Pointer(v6))++
  21859. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21860. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21861. *(*int32)(unsafe.Pointer(s + 5940)) += len1 - int32(m_Buf_size)
  21862. } else {
  21863. p7 = s + 5936
  21864. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21865. *(*int32)(unsafe.Pointer(s + 5940)) += len1
  21866. }
  21867. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  21868. } else {
  21869. len11 = int32(3)
  21870. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  21871. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  21872. p8 = s + 5936
  21873. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21874. v10 = s + 40
  21875. v9 = *(*Tulg)(unsafe.Pointer(v10))
  21876. *(*Tulg)(unsafe.Pointer(v10))++
  21877. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  21878. v12 = s + 40
  21879. v11 = *(*Tulg)(unsafe.Pointer(v12))
  21880. *(*Tulg)(unsafe.Pointer(v12))++
  21881. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  21882. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  21883. *(*int32)(unsafe.Pointer(s + 5940)) += len11 - int32(m_Buf_size)
  21884. } else {
  21885. p13 = s + 5936
  21886. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  21887. *(*int32)(unsafe.Pointer(s + 5940)) += len11
  21888. }
  21889. _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))
  21890. _compress_block(tls, s, s+212, s+2504)
  21891. }
  21892. }
  21893. /* The above check is made mod 2^32, for files larger than 512 MB
  21894. * and uLong implemented on 32 bits.
  21895. */
  21896. _init_block(tls, s)
  21897. if last != 0 {
  21898. _bi_windup(tls, s)
  21899. }
  21900. }
  21901. // C documentation
  21902. //
  21903. // /* ===========================================================================
  21904. // * Save the match info and tally the frequency counts. Return true if
  21905. // * the current block must be flushed.
  21906. // */
  21907. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  21908. var v1, v3, v5 TuInt
  21909. var v2, v4, v6 uintptr
  21910. var v7 int32
  21911. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  21912. v2 = s + 5900
  21913. v1 = *(*TuInt)(unsafe.Pointer(v2))
  21914. *(*TuInt)(unsafe.Pointer(v2))++
  21915. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  21916. v4 = s + 5900
  21917. v3 = *(*TuInt)(unsafe.Pointer(v4))
  21918. *(*TuInt)(unsafe.Pointer(v4))++
  21919. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  21920. v6 = s + 5900
  21921. v5 = *(*TuInt)(unsafe.Pointer(v6))
  21922. *(*TuInt)(unsafe.Pointer(v6))++
  21923. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  21924. if dist == uint32(0) {
  21925. /* lc is the unmatched char */
  21926. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(lc)*4))++
  21927. } else {
  21928. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  21929. /* Here, lc is the match length - MIN_MATCH */
  21930. dist-- /* dist = match distance - 1 */
  21931. *(*Tush)(unsafe.Pointer(s + 212 + uintptr(int32(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  21932. if dist < uint32(256) {
  21933. v7 = int32(x__dist_code[dist])
  21934. } else {
  21935. v7 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  21936. }
  21937. *(*Tush)(unsafe.Pointer(s + 2504 + uintptr(v7)*4))++
  21938. }
  21939. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  21940. }
  21941. const m_AT_EACCESS = 0x01
  21942. const m_AT_REMOVEDIR = 0x08
  21943. const m_AT_SYMLINK_FOLLOW = 0x04
  21944. const m_AT_SYMLINK_NOFOLLOW = 0x02
  21945. const m_BUFSIZ = 1024
  21946. const m_COPY = 1
  21947. const m_E2BIG = 7
  21948. const m_EACCES = 13
  21949. const m_EADDRINUSE = 48
  21950. const m_EADDRNOTAVAIL = 49
  21951. const m_EAFNOSUPPORT = 47
  21952. const m_EAGAIN = 35
  21953. const m_EALREADY = 37
  21954. const m_EAUTH = 80
  21955. const m_EBADF = 9
  21956. const m_EBADMSG = 92
  21957. const m_EBADRPC = 72
  21958. const m_EBUSY = 16
  21959. const m_ECANCELED = 88
  21960. const m_ECHILD = 10
  21961. const m_ECONNABORTED = 53
  21962. const m_ECONNREFUSED = 61
  21963. const m_ECONNRESET = 54
  21964. const m_EDEADLK = 11
  21965. const m_EDESTADDRREQ = 39
  21966. const m_EDOM = 33
  21967. const m_EDQUOT = 69
  21968. const m_EEXIST = 17
  21969. const m_EFAULT = 14
  21970. const m_EFBIG = 27
  21971. const m_EFTYPE = 79
  21972. const m_EHOSTDOWN = 64
  21973. const m_EHOSTUNREACH = 65
  21974. const m_EIDRM = 89
  21975. const m_EILSEQ = 84
  21976. const m_EINPROGRESS = 36
  21977. const m_EINTR = 4
  21978. const m_EINVAL = 22
  21979. const m_EIO = 5
  21980. const m_EIPSEC = 82
  21981. const m_EISCONN = 56
  21982. const m_EISDIR = 21
  21983. const m_ELAST = 95
  21984. const m_ELOOP = 62
  21985. const m_EMEDIUMTYPE = 86
  21986. const m_EMFILE = 24
  21987. const m_EMLINK = 31
  21988. const m_EMSGSIZE = 40
  21989. const m_ENAMETOOLONG = 63
  21990. const m_ENEEDAUTH = 81
  21991. const m_ENETDOWN = 50
  21992. const m_ENETRESET = 52
  21993. const m_ENETUNREACH = 51
  21994. const m_ENFILE = 23
  21995. const m_ENOATTR = 83
  21996. const m_ENOBUFS = 55
  21997. const m_ENODEV = 19
  21998. const m_ENOENT = 2
  21999. const m_ENOEXEC = 8
  22000. const m_ENOLCK = 77
  22001. const m_ENOMEDIUM = 85
  22002. const m_ENOMEM = 12
  22003. const m_ENOMSG = 90
  22004. const m_ENOPROTOOPT = 42
  22005. const m_ENOSPC = 28
  22006. const m_ENOSYS = 78
  22007. const m_ENOTBLK = 15
  22008. const m_ENOTCONN = 57
  22009. const m_ENOTDIR = 20
  22010. const m_ENOTEMPTY = 66
  22011. const m_ENOTRECOVERABLE = 93
  22012. const m_ENOTSOCK = 38
  22013. const m_ENOTSUP = 91
  22014. const m_ENOTTY = 25
  22015. const m_ENXIO = 6
  22016. const m_EOPNOTSUPP = 45
  22017. const m_EOVERFLOW = 87
  22018. const m_EOWNERDEAD = 94
  22019. const m_EPERM = 1
  22020. const m_EPFNOSUPPORT = 46
  22021. const m_EPIPE = 32
  22022. const m_EPROCLIM = 67
  22023. const m_EPROCUNAVAIL = 76
  22024. const m_EPROGMISMATCH = 75
  22025. const m_EPROGUNAVAIL = 74
  22026. const m_EPROTO = 95
  22027. const m_EPROTONOSUPPORT = 43
  22028. const m_EPROTOTYPE = 41
  22029. const m_ERANGE = 34
  22030. const m_EREMOTE = 71
  22031. const m_EROFS = 30
  22032. const m_ERPCMISMATCH = 73
  22033. const m_ESHUTDOWN = 58
  22034. const m_ESOCKTNOSUPPORT = 44
  22035. const m_ESPIPE = 29
  22036. const m_ESRCH = 3
  22037. const m_ESTALE = 70
  22038. const m_ETIMEDOUT = 60
  22039. const m_ETOOMANYREFS = 59
  22040. const m_ETXTBSY = 26
  22041. const m_EUSERS = 68
  22042. const m_EWOULDBLOCK = "EAGAIN"
  22043. const m_EXDEV = 18
  22044. const m_FAPPEND = "O_APPEND"
  22045. const m_FASYNC = "O_ASYNC"
  22046. const m_FD_CLOEXEC = 1
  22047. const m_FFSYNC = "O_SYNC"
  22048. const m_FILENAME_MAX = 1024
  22049. const m_FNDELAY = "O_NONBLOCK"
  22050. const m_FNONBLOCK = "O_NONBLOCK"
  22051. const m_FOPEN_MAX = 20
  22052. const m_FREAD = 0x0001
  22053. const m_FWRITE = 0x0002
  22054. const m_F_DUPFD = 0
  22055. const m_F_DUPFD_CLOEXEC = 10
  22056. const m_F_GETFD = 1
  22057. const m_F_GETFL = 3
  22058. const m_F_GETLK = 7
  22059. const m_F_GETOWN = 5
  22060. const m_F_ISATTY = 11
  22061. const m_F_RDLCK = 1
  22062. const m_F_SETFD = 2
  22063. const m_F_SETFL = 4
  22064. const m_F_SETLK = 8
  22065. const m_F_SETLKW = 9
  22066. const m_F_SETOWN = 6
  22067. const m_F_UNLCK = 2
  22068. const m_F_WRLCK = 3
  22069. const m_GZBUFSIZE = 8192
  22070. const m_GZIP = 2
  22071. const m_GZ_APPEND = 1
  22072. const m_GZ_NONE = 0
  22073. const m_GZ_READ = 7247
  22074. const m_GZ_WRITE = 31153
  22075. const m_LOCK_EX = 0x02
  22076. const m_LOCK_NB = 0x04
  22077. const m_LOCK_SH = 0x01
  22078. const m_LOCK_UN = 0x08
  22079. const m_LOOK = 0
  22080. const m_L_ctermid = 1024
  22081. const m_L_tmpnam = 1024
  22082. const m_O_ACCMODE = 0x0003
  22083. const m_O_APPEND = 0x0008
  22084. const m_O_ASYNC = 0x0040
  22085. const m_O_CLOEXEC = 0x10000
  22086. const m_O_CREAT = 0x0200
  22087. const m_O_DIRECTORY = 0x20000
  22088. const m_O_DSYNC = "O_SYNC"
  22089. const m_O_EXCL = 0x0800
  22090. const m_O_EXLOCK = 0x0020
  22091. const m_O_FSYNC = 0x0080
  22092. const m_O_NDELAY = "O_NONBLOCK"
  22093. const m_O_NOCTTY = 0x8000
  22094. const m_O_NOFOLLOW = 0x0100
  22095. const m_O_NONBLOCK = 0x0004
  22096. const m_O_RDONLY = 0x0000
  22097. const m_O_RDWR = 0x0002
  22098. const m_O_RSYNC = "O_SYNC"
  22099. const m_O_SHLOCK = 0x0010
  22100. const m_O_SYNC = 0x0080
  22101. const m_O_TRUNC = 0x0400
  22102. const m_O_WRONLY = 0x0001
  22103. const m_P_tmpdir = "/tmp/"
  22104. const m_TMP_MAX = 0x7fffffff
  22105. const m__IOFBF = 0
  22106. const m__IOLBF = 1
  22107. const m__IONBF = 2
  22108. const m___SALC = 0x4000
  22109. const m___SAPP = 0x0100
  22110. const m___SEOF = 0x0020
  22111. const m___SERR = 0x0040
  22112. const m___SIGN = 0x8000
  22113. const m___SLBF = 0x0001
  22114. const m___SMBF = 0x0080
  22115. const m___SMOD = 0x2000
  22116. const m___SNBF = 0x0002
  22117. const m___SNPT = 0x0800
  22118. const m___SOFF = 0x1000
  22119. const m___SOPT = 0x0400
  22120. const m___SRD = 0x0004
  22121. const m___SRW = 0x0010
  22122. const m___SSTR = 0x0200
  22123. const m___SWR = 0x0008
  22124. type Tfpos_t = int64
  22125. type t__sbuf = struct {
  22126. F_base uintptr
  22127. F_size int32
  22128. }
  22129. type TFILE = struct {
  22130. F_p uintptr
  22131. F_r int32
  22132. F_w int32
  22133. F_flags int16
  22134. F_file int16
  22135. F_bf t__sbuf
  22136. F_lbfsize int32
  22137. F_cookie uintptr
  22138. F_close uintptr
  22139. F_read uintptr
  22140. F_seek uintptr
  22141. F_write uintptr
  22142. F_ext t__sbuf
  22143. F_up uintptr
  22144. F_ur int32
  22145. F_ubuf [3]uint8
  22146. F_nbuf [1]uint8
  22147. F_lb t__sbuf
  22148. F_blksize int32
  22149. F_offset Tfpos_t
  22150. }
  22151. type t__sFILE = TFILE
  22152. type Tflock = struct {
  22153. Fl_start Toff_t
  22154. Fl_len Toff_t
  22155. Fl_pid Tpid_t
  22156. Fl_type int16
  22157. Fl_whence int16
  22158. }
  22159. type Tgz_state = struct {
  22160. Fx TgzFile_s
  22161. Fmode int32
  22162. Ffd int32
  22163. Fpath uintptr
  22164. Fsize uint32
  22165. Fwant uint32
  22166. Fin uintptr
  22167. Fout uintptr
  22168. Fdirect int32
  22169. Fhow int32
  22170. Fstart Toff_t
  22171. Feof int32
  22172. Fpast int32
  22173. Flevel int32
  22174. Fstrategy int32
  22175. Freset int32
  22176. Fskip Toff_t
  22177. Fseek int32
  22178. Ferr int32
  22179. Fmsg uintptr
  22180. Fstrm Tz_stream
  22181. }
  22182. type Tgz_statep = uintptr
  22183. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  22184. return __ccgo_ts
  22185. }
  22186. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  22187. var flags TuLong
  22188. _ = flags
  22189. flags = uint64(0)
  22190. switch int32(libc.Uint64FromInt64(4)) {
  22191. case int32(2):
  22192. case int32(4):
  22193. flags += uint64(1)
  22194. case int32(8):
  22195. flags += uint64(2)
  22196. default:
  22197. flags += uint64(3)
  22198. }
  22199. switch int32(libc.Uint64FromInt64(8)) {
  22200. case int32(2):
  22201. case int32(4):
  22202. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  22203. case int32(8):
  22204. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  22205. default:
  22206. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  22207. }
  22208. switch int32(libc.Uint64FromInt64(8)) {
  22209. case int32(2):
  22210. case int32(4):
  22211. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  22212. case int32(8):
  22213. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  22214. default:
  22215. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  22216. }
  22217. switch int32(libc.Uint64FromInt64(8)) {
  22218. case int32(2):
  22219. case int32(4):
  22220. flags += uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  22221. case int32(8):
  22222. flags += uint64(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  22223. default:
  22224. flags += uint64(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  22225. }
  22226. /*
  22227. #if defined(ASMV) || defined(ASMINF)
  22228. flags += 1 << 9;
  22229. #endif
  22230. */
  22231. return flags
  22232. }
  22233. // C documentation
  22234. //
  22235. // /* exported to allow conversion of error code to string for compress() and
  22236. // * uncompress()
  22237. // */
  22238. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  22239. var v1 int32
  22240. _ = v1
  22241. if err < -int32(6) || err > int32(2) {
  22242. v1 = int32(9)
  22243. } else {
  22244. v1 = int32(2) - err
  22245. }
  22246. return Xz_errmsg[v1]
  22247. }
  22248. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  22249. _ = opaque
  22250. return libc.Xmalloc(tls, uint64(items*size))
  22251. }
  22252. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  22253. _ = opaque
  22254. libc.Xfree(tls, ptr)
  22255. }
  22256. // C documentation
  22257. //
  22258. // /* ===========================================================================
  22259. // Compresses the source buffer into the destination buffer. The level
  22260. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  22261. // length of the source buffer. Upon entry, destLen is the total size of the
  22262. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  22263. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  22264. //
  22265. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  22266. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  22267. // Z_STREAM_ERROR if the level parameter is invalid.
  22268. // */
  22269. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  22270. bp := tls.Alloc(112)
  22271. defer tls.Free(112)
  22272. var err, v3, v4 int32
  22273. var left TuLong
  22274. var max TuInt
  22275. var v1, v2 uint32
  22276. var _ /* stream at bp+0 */ Tz_stream
  22277. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  22278. max = uint32(-libc.Int32FromInt32(1))
  22279. left = *(*TuLongf)(unsafe.Pointer(destLen))
  22280. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  22281. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  22282. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  22283. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  22284. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(112))
  22285. if err != m_Z_OK {
  22286. return err
  22287. }
  22288. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  22289. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  22290. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  22291. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  22292. for cond := true; cond; cond = err == m_Z_OK {
  22293. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  22294. if left > uint64(max) {
  22295. v1 = max
  22296. } else {
  22297. v1 = uint32(left)
  22298. }
  22299. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  22300. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  22301. }
  22302. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  22303. if sourceLen > uint64(max) {
  22304. v2 = max
  22305. } else {
  22306. v2 = uint32(sourceLen)
  22307. }
  22308. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  22309. sourceLen -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  22310. }
  22311. if sourceLen != 0 {
  22312. v3 = m_Z_NO_FLUSH
  22313. } else {
  22314. v3 = int32(m_Z_FINISH)
  22315. }
  22316. err = Xdeflate(tls, bp, v3)
  22317. }
  22318. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  22319. XdeflateEnd(tls, bp)
  22320. if err == int32(m_Z_STREAM_END) {
  22321. v4 = m_Z_OK
  22322. } else {
  22323. v4 = err
  22324. }
  22325. return v4
  22326. }
  22327. // C documentation
  22328. //
  22329. // /* ===========================================================================
  22330. // */
  22331. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  22332. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  22333. }
  22334. // C documentation
  22335. //
  22336. // /* ===========================================================================
  22337. // If the default memLevel or windowBits for deflateInit() is changed, then
  22338. // this function needs to be updated.
  22339. // */
  22340. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  22341. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint64(13)
  22342. }
  22343. // C documentation
  22344. //
  22345. // /* ===========================================================================
  22346. // Decompresses the source buffer into the destination buffer. *sourceLen is
  22347. // the byte length of the source buffer. Upon entry, *destLen is the total size
  22348. // of the destination buffer, which must be large enough to hold the entire
  22349. // uncompressed data. (The size of the uncompressed data must have been saved
  22350. // previously by the compressor and transmitted to the decompressor by some
  22351. // mechanism outside the scope of this compression library.) Upon exit,
  22352. // *destLen is the size of the decompressed data and *sourceLen is the number
  22353. // of source bytes consumed. Upon return, source + *sourceLen points to the
  22354. // first unused input byte.
  22355. //
  22356. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  22357. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  22358. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  22359. // an incomplete zlib stream.
  22360. // */
  22361. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  22362. bp := tls.Alloc(128)
  22363. defer tls.Free(128)
  22364. var err, v3, v4, v5 int32
  22365. var left, len1 TuLong
  22366. var max TuInt
  22367. var v1, v2 uint32
  22368. var _ /* buf at bp+112 */ [1]TByte
  22369. var _ /* stream at bp+0 */ Tz_stream
  22370. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  22371. max = uint32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  22372. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  22373. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  22374. left = *(*TuLongf)(unsafe.Pointer(destLen))
  22375. *(*TuLongf)(unsafe.Pointer(destLen)) = uint64(0)
  22376. } else {
  22377. left = uint64(1)
  22378. dest = bp + 112
  22379. }
  22380. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  22381. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  22382. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  22383. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  22384. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  22385. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(112))
  22386. if err != m_Z_OK {
  22387. return err
  22388. }
  22389. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  22390. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  22391. for cond := true; cond; cond = err == m_Z_OK {
  22392. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  22393. if left > uint64(max) {
  22394. v1 = max
  22395. } else {
  22396. v1 = uint32(left)
  22397. }
  22398. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  22399. left -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out)
  22400. }
  22401. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  22402. if len1 > uint64(max) {
  22403. v2 = max
  22404. } else {
  22405. v2 = uint32(len1)
  22406. }
  22407. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  22408. len1 -= uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  22409. }
  22410. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  22411. }
  22412. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in)
  22413. if dest != bp+112 {
  22414. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  22415. } else {
  22416. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  22417. left = uint64(1)
  22418. }
  22419. }
  22420. XinflateEnd(tls, bp)
  22421. if err == int32(m_Z_STREAM_END) {
  22422. v3 = m_Z_OK
  22423. } else {
  22424. if err == int32(m_Z_NEED_DICT) {
  22425. v4 = -int32(3)
  22426. } else {
  22427. if err == -int32(5) && left+uint64((*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out) != 0 {
  22428. v5 = -int32(3)
  22429. } else {
  22430. v5 = err
  22431. }
  22432. v4 = v5
  22433. }
  22434. v3 = v4
  22435. }
  22436. return v3
  22437. }
  22438. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  22439. bp := tls.Alloc(16)
  22440. defer tls.Free(16)
  22441. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  22442. return Xuncompress2(tls, dest, destLen, source, bp)
  22443. }
  22444. // C documentation
  22445. //
  22446. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  22447. // That way the other gzclose functions can be used instead to avoid linking in
  22448. // unneeded compression or decompression routines. */
  22449. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  22450. var state Tgz_statep
  22451. var v1 int32
  22452. _, _ = state, v1
  22453. if file == libc.UintptrFromInt32(0) {
  22454. return -int32(2)
  22455. }
  22456. state = file
  22457. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22458. v1 = Xgzclose_r(tls, file)
  22459. } else {
  22460. v1 = Xgzclose_w(tls, file)
  22461. }
  22462. return v1
  22463. }
  22464. const m_INT_MAX1 = 2147483647
  22465. const m_LSEEK = "lseek"
  22466. const m_O_APPEND1 = 8
  22467. const m_O_CLOEXEC1 = 65536
  22468. const m_O_CREAT1 = 512
  22469. const m_O_EXCL1 = 2048
  22470. const m_O_RDONLY1 = 0
  22471. const m_O_TRUNC1 = 1024
  22472. const m_O_WRONLY1 = 1
  22473. // C documentation
  22474. //
  22475. // /* Reset gzip file state */
  22476. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  22477. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  22478. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  22479. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  22480. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  22481. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  22482. } else { /* for writing ... */
  22483. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  22484. } /* no deflateReset pending */
  22485. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  22486. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  22487. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  22488. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  22489. }
  22490. // C documentation
  22491. //
  22492. // /* Open a gzip file either by name or file descriptor. */
  22493. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  22494. bp := tls.Alloc(16)
  22495. defer tls.Free(16)
  22496. var cloexec, exclusive, oflag, v1, v2, v3, v4, v5 int32
  22497. var len1 Tz_size_t
  22498. var state Tgz_statep
  22499. _, _, _, _, _, _, _, _, _, _ = cloexec, exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  22500. cloexec = 0
  22501. exclusive = 0
  22502. /* check input */
  22503. if path == libc.UintptrFromInt32(0) {
  22504. return libc.UintptrFromInt32(0)
  22505. }
  22506. /* allocate gzFile structure to return */
  22507. state = libc.Xmalloc(tls, uint64(240))
  22508. if state == libc.UintptrFromInt32(0) {
  22509. return libc.UintptrFromInt32(0)
  22510. }
  22511. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  22512. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  22513. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  22514. /* interpret mode */
  22515. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  22516. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  22517. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  22518. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  22519. for *(*int8)(unsafe.Pointer(mode)) != 0 {
  22520. if int32(*(*int8)(unsafe.Pointer(mode))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(mode))) <= int32('9') {
  22521. (*Tgz_state)(unsafe.Pointer(state)).Flevel = int32(*(*int8)(unsafe.Pointer(mode))) - int32('0')
  22522. } else {
  22523. switch int32(*(*int8)(unsafe.Pointer(mode))) {
  22524. case int32('r'):
  22525. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  22526. case int32('w'):
  22527. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  22528. case int32('a'):
  22529. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  22530. case int32('+'): /* can't read and write at the same time */
  22531. libc.Xfree(tls, state)
  22532. return libc.UintptrFromInt32(0)
  22533. case int32('b'): /* ignore -- will request binary anyway */
  22534. case int32('e'):
  22535. cloexec = int32(1)
  22536. case int32('x'):
  22537. exclusive = int32(1)
  22538. case int32('f'):
  22539. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  22540. case int32('h'):
  22541. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  22542. case int32('R'):
  22543. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  22544. case int32('F'):
  22545. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  22546. case int32('T'):
  22547. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  22548. default: /* could consider as an error, but just ignore */
  22549. }
  22550. }
  22551. mode++
  22552. }
  22553. /* must provide an "r", "w", or "a" */
  22554. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  22555. libc.Xfree(tls, state)
  22556. return libc.UintptrFromInt32(0)
  22557. }
  22558. /* can't force transparent read */
  22559. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22560. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  22561. libc.Xfree(tls, state)
  22562. return libc.UintptrFromInt32(0)
  22563. }
  22564. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  22565. }
  22566. /* save the path name for error messages */
  22567. len1 = libc.Xstrlen(tls, path)
  22568. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  22569. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  22570. libc.Xfree(tls, state)
  22571. return libc.UintptrFromInt32(0)
  22572. }
  22573. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+584, libc.VaList(bp+8, path))
  22574. /* compute the flags for open() */
  22575. if cloexec != 0 {
  22576. v1 = int32(m_O_CLOEXEC1)
  22577. } else {
  22578. v1 = 0
  22579. }
  22580. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22581. v2 = m_O_RDONLY1
  22582. } else {
  22583. if exclusive != 0 {
  22584. v3 = int32(m_O_EXCL1)
  22585. } else {
  22586. v3 = 0
  22587. }
  22588. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  22589. v4 = int32(m_O_TRUNC1)
  22590. } else {
  22591. v4 = int32(m_O_APPEND1)
  22592. }
  22593. v2 = libc.Int32FromInt32(m_O_WRONLY1) | libc.Int32FromInt32(m_O_CREAT1) | v3 | v4
  22594. }
  22595. oflag = v1 | v2
  22596. /* open the file with the appropriate flags (or just use fd) */
  22597. if fd > -int32(1) {
  22598. v5 = fd
  22599. } else {
  22600. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  22601. }
  22602. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v5
  22603. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  22604. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  22605. libc.Xfree(tls, state)
  22606. return libc.UintptrFromInt32(0)
  22607. }
  22608. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  22609. libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_END)) /* so gzoffset() is correct */
  22610. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  22611. }
  22612. /* save the current position for rewinding (only if reading) */
  22613. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22614. (*Tgz_state)(unsafe.Pointer(state)).Fstart = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR))
  22615. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == int64(-int32(1)) {
  22616. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  22617. }
  22618. }
  22619. /* initialize stream */
  22620. _gz_reset(tls, state)
  22621. /* return stream */
  22622. return state
  22623. }
  22624. // C documentation
  22625. //
  22626. // /* -- see zlib.h -- */
  22627. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  22628. return _gz_open(tls, path, -int32(1), mode)
  22629. }
  22630. // C documentation
  22631. //
  22632. // /* -- see zlib.h -- */
  22633. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  22634. return _gz_open(tls, path, -int32(1), mode)
  22635. }
  22636. // C documentation
  22637. //
  22638. // /* -- see zlib.h -- */
  22639. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  22640. bp := tls.Alloc(16)
  22641. defer tls.Free(16)
  22642. var gz TgzFile
  22643. var path, v1 uintptr
  22644. var v2 bool
  22645. _, _, _, _ = gz, path, v1, v2
  22646. if v2 = fd == -int32(1); !v2 {
  22647. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  22648. path = v1
  22649. }
  22650. if v2 || v1 == libc.UintptrFromInt32(0) {
  22651. return libc.UintptrFromInt32(0)
  22652. }
  22653. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+587, libc.VaList(bp+8, fd))
  22654. gz = _gz_open(tls, path, fd, mode)
  22655. libc.Xfree(tls, path)
  22656. return gz
  22657. }
  22658. /* -- see zlib.h -- */
  22659. // C documentation
  22660. //
  22661. // /* -- see zlib.h -- */
  22662. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  22663. var state Tgz_statep
  22664. _ = state
  22665. /* get internal structure and check integrity */
  22666. if file == libc.UintptrFromInt32(0) {
  22667. return -int32(1)
  22668. }
  22669. state = file
  22670. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22671. return -int32(1)
  22672. }
  22673. /* make sure we haven't already allocated memory */
  22674. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  22675. return -int32(1)
  22676. }
  22677. /* check and set requested size */
  22678. if size<<int32(1) < size {
  22679. return -int32(1)
  22680. } /* need to be able to double it */
  22681. if size < uint32(8) {
  22682. size = uint32(8)
  22683. } /* needed to behave well with flushing */
  22684. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  22685. return 0
  22686. }
  22687. // C documentation
  22688. //
  22689. // /* -- see zlib.h -- */
  22690. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  22691. var state Tgz_statep
  22692. _ = state
  22693. /* get internal structure */
  22694. if file == libc.UintptrFromInt32(0) {
  22695. return -int32(1)
  22696. }
  22697. state = file
  22698. /* check that we're reading and that there's no error */
  22699. 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) {
  22700. return -int32(1)
  22701. }
  22702. /* back up and start over */
  22703. if libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fstart, m_SEEK_SET) == int64(-int32(1)) {
  22704. return -int32(1)
  22705. }
  22706. _gz_reset(tls, state)
  22707. return 0
  22708. }
  22709. // C documentation
  22710. //
  22711. // /* -- see zlib.h -- */
  22712. func Xgzseek64(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  22713. var n, v1 uint32
  22714. var ret Toff_t
  22715. var state Tgz_statep
  22716. _, _, _, _ = n, ret, state, v1
  22717. /* get internal structure and check integrity */
  22718. if file == libc.UintptrFromInt32(0) {
  22719. return int64(-int32(1))
  22720. }
  22721. state = file
  22722. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22723. return int64(-int32(1))
  22724. }
  22725. /* check that there's no error */
  22726. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  22727. return int64(-int32(1))
  22728. }
  22729. /* can only seek from start or relative to current position */
  22730. if whence != m_SEEK_SET && whence != int32(m_SEEK_CUR) {
  22731. return int64(-int32(1))
  22732. }
  22733. /* normalize offset to a SEEK_CUR specification */
  22734. if whence == m_SEEK_SET {
  22735. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  22736. } else {
  22737. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22738. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  22739. }
  22740. }
  22741. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22742. /* if within raw area while reading, just go there */
  22743. 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 {
  22744. ret = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, offset-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave), int32(m_SEEK_CUR))
  22745. if ret == int64(-int32(1)) {
  22746. return int64(-int32(1))
  22747. }
  22748. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  22749. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  22750. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  22751. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  22752. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22753. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  22754. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  22755. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  22756. }
  22757. /* calculate skip amount, rewinding if needed for back seek when reading */
  22758. if offset < 0 {
  22759. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  22760. return int64(-int32(1))
  22761. }
  22762. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  22763. if offset < 0 { /* before start of file! */
  22764. return int64(-int32(1))
  22765. }
  22766. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  22767. return int64(-int32(1))
  22768. }
  22769. }
  22770. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  22771. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22772. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  22773. v1 = uint32(offset)
  22774. } else {
  22775. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  22776. }
  22777. n = v1
  22778. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  22779. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  22780. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  22781. offset -= int64(n)
  22782. }
  22783. /* request skip (if not zero) */
  22784. if offset != 0 {
  22785. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  22786. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  22787. }
  22788. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  22789. }
  22790. // C documentation
  22791. //
  22792. // /* -- see zlib.h -- */
  22793. func Xgzseek(tls *libc.TLS, file TgzFile, offset Toff_t, whence int32) (r Toff_t) {
  22794. var ret Toff_t
  22795. var v1 int64
  22796. _, _ = ret, v1
  22797. ret = Xgzseek64(tls, file, offset, whence)
  22798. if ret == ret {
  22799. v1 = ret
  22800. } else {
  22801. v1 = int64(-int32(1))
  22802. }
  22803. return v1
  22804. }
  22805. // C documentation
  22806. //
  22807. // /* -- see zlib.h -- */
  22808. func Xgztell64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  22809. var state Tgz_statep
  22810. var v1 int64
  22811. _, _ = state, v1
  22812. /* get internal structure and check integrity */
  22813. if file == libc.UintptrFromInt32(0) {
  22814. return int64(-int32(1))
  22815. }
  22816. state = file
  22817. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22818. return int64(-int32(1))
  22819. }
  22820. /* return position */
  22821. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  22822. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  22823. } else {
  22824. v1 = 0
  22825. }
  22826. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  22827. }
  22828. // C documentation
  22829. //
  22830. // /* -- see zlib.h -- */
  22831. func Xgztell(tls *libc.TLS, file TgzFile) (r Toff_t) {
  22832. var ret Toff_t
  22833. var v1 int64
  22834. _, _ = ret, v1
  22835. ret = Xgztell64(tls, file)
  22836. if ret == ret {
  22837. v1 = ret
  22838. } else {
  22839. v1 = int64(-int32(1))
  22840. }
  22841. return v1
  22842. }
  22843. // C documentation
  22844. //
  22845. // /* -- see zlib.h -- */
  22846. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r Toff_t) {
  22847. var offset Toff_t
  22848. var state Tgz_statep
  22849. _, _ = offset, state
  22850. /* get internal structure and check integrity */
  22851. if file == libc.UintptrFromInt32(0) {
  22852. return int64(-int32(1))
  22853. }
  22854. state = file
  22855. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22856. return int64(-int32(1))
  22857. }
  22858. /* compute and return effective offset in file */
  22859. offset = libc.Xlseek(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR))
  22860. if offset == int64(-int32(1)) {
  22861. return int64(-int32(1))
  22862. }
  22863. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  22864. offset -= int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  22865. } /* don't count buffered input */
  22866. return offset
  22867. }
  22868. // C documentation
  22869. //
  22870. // /* -- see zlib.h -- */
  22871. func Xgzoffset(tls *libc.TLS, file TgzFile) (r Toff_t) {
  22872. var ret Toff_t
  22873. var v1 int64
  22874. _, _ = ret, v1
  22875. ret = Xgzoffset64(tls, file)
  22876. if ret == ret {
  22877. v1 = ret
  22878. } else {
  22879. v1 = int64(-int32(1))
  22880. }
  22881. return v1
  22882. }
  22883. // C documentation
  22884. //
  22885. // /* -- see zlib.h -- */
  22886. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  22887. var state Tgz_statep
  22888. var v1 int32
  22889. _, _ = state, v1
  22890. /* get internal structure and check integrity */
  22891. if file == libc.UintptrFromInt32(0) {
  22892. return 0
  22893. }
  22894. state = file
  22895. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22896. return 0
  22897. }
  22898. /* return end-of-file state */
  22899. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22900. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  22901. } else {
  22902. v1 = 0
  22903. }
  22904. return v1
  22905. }
  22906. // C documentation
  22907. //
  22908. // /* -- see zlib.h -- */
  22909. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  22910. var state Tgz_statep
  22911. var v1, v2 uintptr
  22912. _, _, _ = state, v1, v2
  22913. /* get internal structure and check integrity */
  22914. if file == libc.UintptrFromInt32(0) {
  22915. return libc.UintptrFromInt32(0)
  22916. }
  22917. state = file
  22918. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22919. return libc.UintptrFromInt32(0)
  22920. }
  22921. /* return error information */
  22922. if errnum != libc.UintptrFromInt32(0) {
  22923. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  22924. }
  22925. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  22926. v1 = __ccgo_ts + 595
  22927. } else {
  22928. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  22929. v2 = __ccgo_ts + 494
  22930. } else {
  22931. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  22932. }
  22933. v1 = v2
  22934. }
  22935. return v1
  22936. }
  22937. // C documentation
  22938. //
  22939. // /* -- see zlib.h -- */
  22940. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  22941. var state Tgz_statep
  22942. _ = state
  22943. /* get internal structure and check integrity */
  22944. if file == libc.UintptrFromInt32(0) {
  22945. return
  22946. }
  22947. state = file
  22948. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  22949. return
  22950. }
  22951. /* clear error and end-of-file */
  22952. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  22953. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  22954. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  22955. }
  22956. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  22957. }
  22958. // C documentation
  22959. //
  22960. // /* Create an error message in allocated memory and set state->err and
  22961. // state->msg accordingly. Free any previous error message already there. Do
  22962. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  22963. // memory). Simply save the error message as a static string. If there is an
  22964. // allocation failure constructing the error message, then convert the error to
  22965. // out of memory. */
  22966. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  22967. bp := tls.Alloc(32)
  22968. defer tls.Free(32)
  22969. var v1 uintptr
  22970. _ = v1
  22971. /* free previously allocated message and clear */
  22972. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  22973. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  22974. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  22975. }
  22976. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  22977. }
  22978. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  22979. if err != m_Z_OK && err != -int32(5) {
  22980. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  22981. }
  22982. /* set error code, and if no message, then done */
  22983. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  22984. if msg == libc.UintptrFromInt32(0) {
  22985. return
  22986. }
  22987. /* for an out of memory error, return literal string when requested */
  22988. if err == -int32(4) {
  22989. return
  22990. }
  22991. /* construct error message with path */
  22992. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  22993. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  22994. if v1 == libc.UintptrFromInt32(0) {
  22995. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  22996. return
  22997. }
  22998. 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))
  22999. }
  23000. // C documentation
  23001. //
  23002. // /* portably return maximum value for an int (when limits.h presumed not
  23003. // available) -- we need to do this to cover cases where 2's complement not
  23004. // used, since C standard permits 1's complement and sign-bit representations,
  23005. // otherwise we could just use ((unsigned)-1) >> 1 */
  23006. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  23007. return uint32(m_INT_MAX1)
  23008. }
  23009. const m_INT_MAX2 = 0x7fffffff
  23010. const m_O_APPEND2 = 0x0008
  23011. const m_O_CLOEXEC2 = 0x10000
  23012. const m_O_CREAT2 = 0x0200
  23013. const m_O_EXCL2 = 0x0800
  23014. const m_O_RDONLY2 = 0x0000
  23015. const m_O_TRUNC2 = 0x0400
  23016. const m_O_WRONLY2 = 0x0001
  23017. // C documentation
  23018. //
  23019. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  23020. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  23021. // This function needs to loop on read(), since read() is not guaranteed to
  23022. // read the number of bytes requested, depending on the type of descriptor. */
  23023. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  23024. var get, max uint32
  23025. var ret int32
  23026. _, _, _ = get, max, ret
  23027. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  23028. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  23029. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  23030. get = len1 - *(*uint32)(unsafe.Pointer(have))
  23031. if get > max {
  23032. get = max
  23033. }
  23034. ret = int32(libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), uint64(get)))
  23035. if ret <= 0 {
  23036. break
  23037. }
  23038. *(*uint32)(unsafe.Pointer(have)) += uint32(ret)
  23039. }
  23040. if ret < 0 {
  23041. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno(tls)))))
  23042. return -int32(1)
  23043. }
  23044. if ret == 0 {
  23045. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  23046. }
  23047. return 0
  23048. }
  23049. // C documentation
  23050. //
  23051. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  23052. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  23053. // file is reached, even though there may be unused data in the buffer. Once
  23054. // that data has been used, no more attempts will be made to read the file.
  23055. // If strm->avail_in != 0, then the current data is moved to the beginning of
  23056. // the input buffer, and then the remainder of the buffer is loaded with the
  23057. // available data from the input file. */
  23058. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  23059. bp := tls.Alloc(16)
  23060. defer tls.Free(16)
  23061. var n, v1 uint32
  23062. var p, q, v3, v4 uintptr
  23063. var strm Tz_streamp
  23064. var _ /* got at bp+0 */ uint32
  23065. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  23066. strm = state + 128
  23067. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  23068. return -int32(1)
  23069. }
  23070. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  23071. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  23072. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23073. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  23074. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  23075. for {
  23076. v3 = p
  23077. p++
  23078. v4 = q
  23079. q++
  23080. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  23081. goto _2
  23082. _2:
  23083. ;
  23084. n--
  23085. v1 = n
  23086. if !(v1 != 0) {
  23087. break
  23088. }
  23089. }
  23090. }
  23091. 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) {
  23092. return -int32(1)
  23093. }
  23094. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  23095. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23096. }
  23097. return 0
  23098. }
  23099. // C documentation
  23100. //
  23101. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  23102. // If this is the first time in, allocate required memory. state->how will be
  23103. // left unchanged if there is no more input data available, will be set to COPY
  23104. // if there is no gzip header and direct copying will be performed, or it will
  23105. // be set to GZIP for decompression. If direct copying, then leftover input
  23106. // data from the input buffer will be copied to the output buffer. In that
  23107. // case, all further file reads will be directly to either the output buffer or
  23108. // a user buffer. If decompressing, the inflate state will be initialized.
  23109. // gz_look() will return 0 on success or -1 on failure. */
  23110. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  23111. var strm Tz_streamp
  23112. _ = strm
  23113. strm = state + 128
  23114. /* allocate read buffers and inflate memory */
  23115. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  23116. /* allocate buffers */
  23117. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  23118. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  23119. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  23120. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  23121. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  23122. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  23123. return -int32(1)
  23124. }
  23125. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  23126. /* allocate inflate memory */
  23127. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  23128. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  23129. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  23130. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  23131. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  23132. if XinflateInit2_(tls, state+128, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(112)) != m_Z_OK { /* gunzip */
  23133. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  23134. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  23135. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  23136. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  23137. return -int32(1)
  23138. }
  23139. }
  23140. /* get at least the magic bytes in the input buffer */
  23141. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  23142. if _gz_avail(tls, state) == -int32(1) {
  23143. return -int32(1)
  23144. }
  23145. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  23146. return 0
  23147. }
  23148. }
  23149. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  23150. a logical dilemma here when considering the case of a partially written
  23151. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  23152. whether this is a single-byte file, or just a partially written gzip
  23153. file -- for here we assume that if a gzip file is being written, then
  23154. the header will be written in a single operation, so that reading a
  23155. single byte is sufficient indication that it is not a gzip file) */
  23156. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  23157. XinflateReset(tls, strm)
  23158. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  23159. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  23160. return 0
  23161. }
  23162. /* no gzip header -- if we were decoding gzip before, then this is trailing
  23163. garbage. Ignore the trailing garbage and finish. */
  23164. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  23165. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  23166. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  23167. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  23168. return 0
  23169. }
  23170. /* doing raw i/o, copy any leftover input to output -- this assumes that
  23171. the output buffer is larger than the input buffer, which also assures
  23172. space for gzungetc() */
  23173. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  23174. 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))
  23175. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  23176. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  23177. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  23178. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  23179. return 0
  23180. }
  23181. // C documentation
  23182. //
  23183. // /* Decompress from input to the provided next_out and avail_out in the state.
  23184. // On return, state->x.have and state->x.next point to the just decompressed
  23185. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  23186. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  23187. // on success, -1 on failure. */
  23188. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  23189. var had uint32
  23190. var ret int32
  23191. var strm Tz_streamp
  23192. var v1 uintptr
  23193. _, _, _, _ = had, ret, strm, v1
  23194. ret = m_Z_OK
  23195. strm = state + 128
  23196. /* fill output buffer up to end of deflate stream */
  23197. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  23198. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  23199. /* get more input for inflate() */
  23200. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  23201. return -int32(1)
  23202. }
  23203. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  23204. Xgz_error(tls, state, -int32(5), __ccgo_ts+619)
  23205. break
  23206. }
  23207. /* decompress and handle errors */
  23208. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  23209. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  23210. Xgz_error(tls, state, -int32(2), __ccgo_ts+642)
  23211. return -int32(1)
  23212. }
  23213. if ret == -int32(4) {
  23214. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  23215. return -int32(1)
  23216. }
  23217. if ret == -int32(3) { /* deflate stream invalid */
  23218. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  23219. v1 = __ccgo_ts + 681
  23220. } else {
  23221. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  23222. }
  23223. Xgz_error(tls, state, -int32(3), v1)
  23224. return -int32(1)
  23225. }
  23226. }
  23227. /* update available output */
  23228. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  23229. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  23230. /* if the gzip stream completed successfully, look for another */
  23231. if ret == int32(m_Z_STREAM_END) {
  23232. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  23233. }
  23234. /* good decompression */
  23235. return 0
  23236. }
  23237. // C documentation
  23238. //
  23239. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  23240. // Data is either copied from the input file or decompressed from the input
  23241. // file depending on state->how. If state->how is LOOK, then a gzip header is
  23242. // looked for to determine whether to copy or decompress. Returns -1 on error,
  23243. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  23244. // end of the input file has been reached and all data has been processed. */
  23245. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  23246. var strm Tz_streamp
  23247. _ = strm
  23248. strm = state + 128
  23249. 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) {
  23250. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  23251. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  23252. if _gz_look(tls, state) == -int32(1) {
  23253. return -int32(1)
  23254. }
  23255. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  23256. return 0
  23257. }
  23258. case int32(m_COPY): /* -> COPY */
  23259. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  23260. return -int32(1)
  23261. }
  23262. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  23263. return 0
  23264. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  23265. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  23266. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  23267. if _gz_decomp(tls, state) == -int32(1) {
  23268. return -int32(1)
  23269. }
  23270. }
  23271. }
  23272. return 0
  23273. }
  23274. // C documentation
  23275. //
  23276. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  23277. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  23278. var n, v1 uint32
  23279. _, _ = n, v1
  23280. /* skip over len bytes or reach end-of-file, whichever comes first */
  23281. for len1 != 0 {
  23282. /* skip over whatever is in output buffer */
  23283. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  23284. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  23285. v1 = uint32(len1)
  23286. } else {
  23287. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  23288. }
  23289. n = v1
  23290. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  23291. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  23292. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  23293. len1 -= int64(n)
  23294. } else {
  23295. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  23296. break
  23297. } else {
  23298. /* get more output, looking for header if required */
  23299. if _gz_fetch(tls, state) == -int32(1) {
  23300. return -int32(1)
  23301. }
  23302. }
  23303. }
  23304. }
  23305. return 0
  23306. }
  23307. // C documentation
  23308. //
  23309. // /* Read len bytes into buf from file, or less than len up to the end of the
  23310. // input. Return the number of bytes read. If zero is returned, either the
  23311. // end of file was reached, or there was an error. state->err must be
  23312. // consulted in that case to determine which. */
  23313. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  23314. bp := tls.Alloc(16)
  23315. defer tls.Free(16)
  23316. var got Tz_size_t
  23317. var _ /* n at bp+0 */ uint32
  23318. _ = got
  23319. /* if len is zero, avoid unnecessary operations */
  23320. if len1 == uint64(0) {
  23321. return uint64(0)
  23322. }
  23323. /* process a skip request */
  23324. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23325. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23326. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23327. return uint64(0)
  23328. }
  23329. }
  23330. /* get len bytes to buf, or less than len if at the end */
  23331. got = uint64(0)
  23332. for cond := true; cond; cond = len1 != 0 {
  23333. /* set n to the maximum amount of len that fits in an unsigned int */
  23334. *(*uint32)(unsafe.Pointer(bp)) = uint32(-libc.Int32FromInt32(1))
  23335. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  23336. *(*uint32)(unsafe.Pointer(bp)) = uint32(len1)
  23337. }
  23338. /* first just try copying data from the output buffer */
  23339. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  23340. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  23341. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  23342. }
  23343. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  23344. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  23345. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  23346. } else {
  23347. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  23348. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  23349. break
  23350. } else {
  23351. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  23352. /* get more output, looking for header if required */
  23353. if _gz_fetch(tls, state) == -int32(1) {
  23354. return uint64(0)
  23355. }
  23356. continue /* no progress yet -- go back to copy above */
  23357. /* the copy above assures that we will leave with space in the
  23358. output buffer, allowing at least one gzungetc() to succeed */
  23359. } else {
  23360. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  23361. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  23362. return uint64(0)
  23363. }
  23364. } else { /* state->how == GZIP */
  23365. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  23366. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  23367. if _gz_decomp(tls, state) == -int32(1) {
  23368. return uint64(0)
  23369. }
  23370. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  23371. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  23372. }
  23373. }
  23374. }
  23375. }
  23376. /* update progress */
  23377. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  23378. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  23379. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  23380. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(*(*uint32)(unsafe.Pointer(bp)))
  23381. }
  23382. /* return number of bytes read into user buffer */
  23383. return got
  23384. }
  23385. // C documentation
  23386. //
  23387. // /* -- see zlib.h -- */
  23388. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  23389. var state Tgz_statep
  23390. _ = state
  23391. /* get internal structure */
  23392. if file == libc.UintptrFromInt32(0) {
  23393. return -int32(1)
  23394. }
  23395. state = file
  23396. /* check that we're reading and that there's no (serious) error */
  23397. 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) {
  23398. return -int32(1)
  23399. }
  23400. /* since an int is returned, make sure len fits in one, otherwise return
  23401. with an error (this avoids a flaw in the interface) */
  23402. if int32(len1) < 0 {
  23403. Xgz_error(tls, state, -int32(2), __ccgo_ts+703)
  23404. return -int32(1)
  23405. }
  23406. /* read len or fewer bytes to buf */
  23407. len1 = uint32(_gz_read(tls, state, buf, uint64(len1)))
  23408. /* check for an error */
  23409. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  23410. return -int32(1)
  23411. }
  23412. /* return the number of bytes read (this is assured to fit in an int) */
  23413. return int32(len1)
  23414. }
  23415. // C documentation
  23416. //
  23417. // /* -- see zlib.h -- */
  23418. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  23419. var len1 Tz_size_t
  23420. var state Tgz_statep
  23421. var v1 uint64
  23422. _, _, _ = len1, state, v1
  23423. /* get internal structure */
  23424. if file == libc.UintptrFromInt32(0) {
  23425. return uint64(0)
  23426. }
  23427. state = file
  23428. /* check that we're reading and that there's no (serious) error */
  23429. 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) {
  23430. return uint64(0)
  23431. }
  23432. /* compute bytes to read -- error on overflow */
  23433. len1 = nitems * size
  23434. if size != 0 && len1/size != nitems {
  23435. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  23436. return uint64(0)
  23437. }
  23438. /* read len or fewer bytes to buf, return the number of full items read */
  23439. if len1 != 0 {
  23440. v1 = _gz_read(tls, state, buf, len1) / size
  23441. } else {
  23442. v1 = uint64(0)
  23443. }
  23444. return v1
  23445. }
  23446. // C documentation
  23447. //
  23448. // /* -- see zlib.h -- */
  23449. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  23450. bp := tls.Alloc(16)
  23451. defer tls.Free(16)
  23452. var state Tgz_statep
  23453. var v1, v2 uintptr
  23454. var v3 int32
  23455. var _ /* buf at bp+0 */ [1]uint8
  23456. _, _, _, _ = state, v1, v2, v3
  23457. /* get internal structure */
  23458. if file == libc.UintptrFromInt32(0) {
  23459. return -int32(1)
  23460. }
  23461. state = file
  23462. /* check that we're reading and that there's no (serious) error */
  23463. 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) {
  23464. return -int32(1)
  23465. }
  23466. /* try output buffer (no need to check for skip request) */
  23467. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  23468. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  23469. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  23470. v2 = state + 8
  23471. v1 = *(*uintptr)(unsafe.Pointer(v2))
  23472. *(*uintptr)(unsafe.Pointer(v2))++
  23473. return int32(*(*uint8)(unsafe.Pointer(v1)))
  23474. }
  23475. /* nothing there -- try gz_read() */
  23476. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  23477. v3 = -int32(1)
  23478. } else {
  23479. v3 = int32((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  23480. }
  23481. return v3
  23482. }
  23483. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  23484. return Xgzgetc(tls, file)
  23485. }
  23486. // C documentation
  23487. //
  23488. // /* -- see zlib.h -- */
  23489. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  23490. var dest, src, v1, v2 uintptr
  23491. var state Tgz_statep
  23492. _, _, _, _, _ = dest, src, state, v1, v2
  23493. /* get internal structure */
  23494. if file == libc.UintptrFromInt32(0) {
  23495. return -int32(1)
  23496. }
  23497. state = file
  23498. /* in case this was just opened, set up the input buffer */
  23499. 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) {
  23500. _gz_look(tls, state)
  23501. }
  23502. /* check that we're reading and that there's no (serious) error */
  23503. 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) {
  23504. return -int32(1)
  23505. }
  23506. /* process a skip request */
  23507. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23508. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23509. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23510. return -int32(1)
  23511. }
  23512. }
  23513. /* can't push EOF */
  23514. if c < 0 {
  23515. return -int32(1)
  23516. }
  23517. /* if output buffer empty, put byte at end (allows more pushing) */
  23518. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  23519. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  23520. (*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)
  23521. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  23522. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  23523. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  23524. return c
  23525. }
  23526. /* if no room, give up (must have already done a gzungetc()) */
  23527. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  23528. Xgz_error(tls, state, -int32(3), __ccgo_ts+767)
  23529. return -int32(1)
  23530. }
  23531. /* slide output data if needed and insert byte before existing data */
  23532. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  23533. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  23534. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  23535. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  23536. dest--
  23537. v1 = dest
  23538. src--
  23539. v2 = src
  23540. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  23541. }
  23542. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  23543. }
  23544. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  23545. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  23546. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  23547. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  23548. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  23549. return c
  23550. }
  23551. // C documentation
  23552. //
  23553. // /* -- see zlib.h -- */
  23554. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  23555. var eol, str uintptr
  23556. var left, n, v1 uint32
  23557. var state Tgz_statep
  23558. _, _, _, _, _, _ = eol, left, n, state, str, v1
  23559. /* check parameters and get internal structure */
  23560. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  23561. return libc.UintptrFromInt32(0)
  23562. }
  23563. state = file
  23564. /* check that we're reading and that there's no (serious) error */
  23565. 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) {
  23566. return libc.UintptrFromInt32(0)
  23567. }
  23568. /* process a skip request */
  23569. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23570. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23571. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23572. return libc.UintptrFromInt32(0)
  23573. }
  23574. }
  23575. /* copy output bytes up to new line or len - 1, whichever comes first --
  23576. append a terminating zero to the string (we don't check for a zero in
  23577. the contents, let the user worry about that) */
  23578. str = buf
  23579. left = uint32(len1) - uint32(1)
  23580. if left != 0 {
  23581. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  23582. /* assure that something is in the output buffer */
  23583. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  23584. return libc.UintptrFromInt32(0)
  23585. } /* error */
  23586. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  23587. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  23588. break /* return what we have */
  23589. }
  23590. /* look for end-of-line in current output buffer */
  23591. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  23592. v1 = left
  23593. } else {
  23594. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  23595. }
  23596. n = v1
  23597. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(n))
  23598. if eol != libc.UintptrFromInt32(0) {
  23599. n = uint32(int64(eol)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  23600. }
  23601. /* copy through end-of-line, or remainder if not found */
  23602. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(n))
  23603. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  23604. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  23605. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  23606. left -= n
  23607. buf += uintptr(n)
  23608. }
  23609. }
  23610. /* return terminated string, or if nothing, end of file */
  23611. if buf == str {
  23612. return libc.UintptrFromInt32(0)
  23613. }
  23614. *(*int8)(unsafe.Pointer(buf)) = 0
  23615. return str
  23616. }
  23617. // C documentation
  23618. //
  23619. // /* -- see zlib.h -- */
  23620. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  23621. var state Tgz_statep
  23622. _ = state
  23623. /* get internal structure */
  23624. if file == libc.UintptrFromInt32(0) {
  23625. return 0
  23626. }
  23627. state = file
  23628. /* if the state is not known, but we can find out, then do so (this is
  23629. mainly for right after a gzopen() or gzdopen()) */
  23630. 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) {
  23631. _gz_look(tls, state)
  23632. }
  23633. /* return 1 if transparent, 0 if processing a gzip stream */
  23634. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  23635. }
  23636. // C documentation
  23637. //
  23638. // /* -- see zlib.h -- */
  23639. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  23640. var err, ret, v1, v2 int32
  23641. var state Tgz_statep
  23642. _, _, _, _, _ = err, ret, state, v1, v2
  23643. /* get internal structure */
  23644. if file == libc.UintptrFromInt32(0) {
  23645. return -int32(2)
  23646. }
  23647. state = file
  23648. /* check that we're reading */
  23649. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  23650. return -int32(2)
  23651. }
  23652. /* free memory and close file */
  23653. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  23654. XinflateEnd(tls, state+128)
  23655. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  23656. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  23657. }
  23658. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  23659. v1 = -int32(5)
  23660. } else {
  23661. v1 = m_Z_OK
  23662. }
  23663. err = v1
  23664. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  23665. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  23666. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  23667. libc.Xfree(tls, state)
  23668. if ret != 0 {
  23669. v2 = -int32(1)
  23670. } else {
  23671. v2 = err
  23672. }
  23673. return v2
  23674. }
  23675. // C documentation
  23676. //
  23677. // /* Initialize state for writing a gzip file. Mark initialization by setting
  23678. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  23679. // success. */
  23680. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  23681. var ret int32
  23682. var strm Tz_streamp
  23683. _, _ = ret, strm
  23684. strm = state + 128
  23685. /* allocate input buffer (double size for gzprintf) */
  23686. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  23687. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  23688. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  23689. return -int32(1)
  23690. }
  23691. /* only need output buffer and deflate state if compressing */
  23692. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  23693. /* allocate output buffer */
  23694. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  23695. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  23696. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  23697. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  23698. return -int32(1)
  23699. }
  23700. /* allocate deflate memory, set up for gzip compression */
  23701. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  23702. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  23703. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  23704. 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))
  23705. if ret != m_Z_OK {
  23706. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  23707. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  23708. Xgz_error(tls, state, -int32(4), __ccgo_ts+595)
  23709. return -int32(1)
  23710. }
  23711. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  23712. }
  23713. /* mark state as initialized */
  23714. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  23715. /* initialize write buffer if compressing */
  23716. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  23717. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  23718. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  23719. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  23720. }
  23721. return 0
  23722. }
  23723. // C documentation
  23724. //
  23725. // /* Compress whatever is at avail_in and next_in and write to the output file.
  23726. // Return -1 if there is an error writing to the output file or if gz_init()
  23727. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  23728. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  23729. // reset to start a new gzip stream. If gz->direct is true, then simply write
  23730. // to the output file without compressing, and ignore flush. */
  23731. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  23732. var have, max, put, v1, v2 uint32
  23733. var ret, writ int32
  23734. var strm Tz_streamp
  23735. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  23736. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  23737. strm = state + 128
  23738. /* allocate memory if this is the first time through */
  23739. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  23740. return -int32(1)
  23741. }
  23742. /* write directly if requested */
  23743. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  23744. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  23745. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  23746. v1 = max
  23747. } else {
  23748. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  23749. }
  23750. put = v1
  23751. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(put)))
  23752. if writ < 0 {
  23753. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno(tls)))))
  23754. return -int32(1)
  23755. }
  23756. *(*TuInt)(unsafe.Pointer(strm + 8)) -= uint32(writ)
  23757. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  23758. }
  23759. return 0
  23760. }
  23761. /* check for a pending reset */
  23762. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  23763. /* don't start a new gzip member unless there is data to write */
  23764. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  23765. return 0
  23766. }
  23767. XdeflateReset(tls, strm)
  23768. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  23769. }
  23770. /* run deflate() on provided input until it produces no more output */
  23771. ret = m_Z_OK
  23772. for cond := true; cond; cond = have != 0 {
  23773. /* write out current buffer contents if full, or if flushing, but if
  23774. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  23775. 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)) {
  23776. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  23777. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(int32(max)) {
  23778. v2 = max
  23779. } else {
  23780. v2 = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  23781. }
  23782. put = v2
  23783. writ = int32(libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(put)))
  23784. if writ < 0 {
  23785. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X__errno(tls)))))
  23786. return -int32(1)
  23787. }
  23788. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  23789. }
  23790. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  23791. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  23792. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  23793. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  23794. }
  23795. }
  23796. /* compress */
  23797. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  23798. ret = Xdeflate(tls, strm, flush)
  23799. if ret == -int32(2) {
  23800. Xgz_error(tls, state, -int32(2), __ccgo_ts+798)
  23801. return -int32(1)
  23802. }
  23803. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  23804. }
  23805. /* if that completed a deflate stream, allow another to start */
  23806. if flush == int32(m_Z_FINISH) {
  23807. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  23808. }
  23809. /* all done, no errors */
  23810. return 0
  23811. }
  23812. // C documentation
  23813. //
  23814. // /* Compress len zeros to output. Return -1 on a write error or memory
  23815. // allocation failure by gz_comp(), or 0 on success. */
  23816. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 Toff_t) (r int32) {
  23817. var first int32
  23818. var n, v1 uint32
  23819. var strm Tz_streamp
  23820. _, _, _, _ = first, n, strm, v1
  23821. strm = state + 128
  23822. /* consume whatever's left in the input buffer */
  23823. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  23824. return -int32(1)
  23825. }
  23826. /* compress len zeros (len guaranteed > 0) */
  23827. first = int32(1)
  23828. for len1 != 0 {
  23829. if libc.Bool(libc.Bool(uint64(4) == uint64(8)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls)) || int64((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  23830. v1 = uint32(len1)
  23831. } else {
  23832. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  23833. }
  23834. n = v1
  23835. if first != 0 {
  23836. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(n))
  23837. first = 0
  23838. }
  23839. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  23840. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23841. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  23842. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  23843. return -int32(1)
  23844. }
  23845. len1 -= int64(n)
  23846. }
  23847. return 0
  23848. }
  23849. // C documentation
  23850. //
  23851. // /* Write len bytes from buf to file. Return the number of bytes written. If
  23852. // the returned value is less than len, then there was an error. */
  23853. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  23854. var copy1, have, n uint32
  23855. var put Tz_size_t
  23856. _, _, _, _ = copy1, have, n, put
  23857. put = len1
  23858. /* if len is zero, avoid unnecessary operations */
  23859. if len1 == uint64(0) {
  23860. return uint64(0)
  23861. }
  23862. /* allocate memory if this is the first time through */
  23863. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  23864. return uint64(0)
  23865. }
  23866. /* check for seek request */
  23867. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23868. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23869. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23870. return uint64(0)
  23871. }
  23872. }
  23873. /* for small len, copy to input buffer, otherwise compress directly */
  23874. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  23875. /* copy to input buffer, compress when full */
  23876. for cond := true; cond; cond = len1 != 0 {
  23877. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  23878. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  23879. }
  23880. have = uint32(int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  23881. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  23882. if uint64(copy1) > len1 {
  23883. copy1 = uint32(len1)
  23884. }
  23885. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(copy1))
  23886. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  23887. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(copy1)
  23888. buf = buf + uintptr(copy1)
  23889. len1 -= uint64(copy1)
  23890. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  23891. return uint64(0)
  23892. }
  23893. }
  23894. } else {
  23895. /* consume whatever's left in the input buffer */
  23896. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  23897. return uint64(0)
  23898. }
  23899. /* directly compress user buffer to file */
  23900. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  23901. for cond := true; cond; cond = len1 != 0 {
  23902. n = uint32(-libc.Int32FromInt32(1))
  23903. if uint64(n) > len1 {
  23904. n = uint32(len1)
  23905. }
  23906. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  23907. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(n)
  23908. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  23909. return uint64(0)
  23910. }
  23911. len1 -= uint64(n)
  23912. }
  23913. }
  23914. /* input was all buffered or compressed */
  23915. return put
  23916. }
  23917. // C documentation
  23918. //
  23919. // /* -- see zlib.h -- */
  23920. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  23921. var state Tgz_statep
  23922. _ = state
  23923. /* get internal structure */
  23924. if file == libc.UintptrFromInt32(0) {
  23925. return 0
  23926. }
  23927. state = file
  23928. /* check that we're writing and that there's no error */
  23929. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23930. return 0
  23931. }
  23932. /* since an int is returned, make sure len fits in one, otherwise return
  23933. with an error (this avoids a flaw in the interface) */
  23934. if int32(len1) < 0 {
  23935. Xgz_error(tls, state, -int32(3), __ccgo_ts+837)
  23936. return 0
  23937. }
  23938. /* write len bytes from buf (the return value will fit in an int) */
  23939. return int32(_gz_write(tls, state, buf, uint64(len1)))
  23940. }
  23941. // C documentation
  23942. //
  23943. // /* -- see zlib.h -- */
  23944. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  23945. var len1 Tz_size_t
  23946. var state Tgz_statep
  23947. var v1 uint64
  23948. _, _, _ = len1, state, v1
  23949. /* get internal structure */
  23950. if file == libc.UintptrFromInt32(0) {
  23951. return uint64(0)
  23952. }
  23953. state = file
  23954. /* check that we're writing and that there's no error */
  23955. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23956. return uint64(0)
  23957. }
  23958. /* compute bytes to read -- error on overflow */
  23959. len1 = nitems * size
  23960. if size != 0 && len1/size != nitems {
  23961. Xgz_error(tls, state, -int32(2), __ccgo_ts+734)
  23962. return uint64(0)
  23963. }
  23964. /* write len bytes to buf, return the number of full items written */
  23965. if len1 != 0 {
  23966. v1 = _gz_write(tls, state, buf, len1) / size
  23967. } else {
  23968. v1 = uint64(0)
  23969. }
  23970. return v1
  23971. }
  23972. // C documentation
  23973. //
  23974. // /* -- see zlib.h -- */
  23975. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  23976. bp := tls.Alloc(16)
  23977. defer tls.Free(16)
  23978. var have uint32
  23979. var state Tgz_statep
  23980. var strm Tz_streamp
  23981. var _ /* buf at bp+0 */ [1]uint8
  23982. _, _, _ = have, state, strm
  23983. /* get internal structure */
  23984. if file == libc.UintptrFromInt32(0) {
  23985. return -int32(1)
  23986. }
  23987. state = file
  23988. strm = state + 128
  23989. /* check that we're writing and that there's no error */
  23990. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  23991. return -int32(1)
  23992. }
  23993. /* check for seek request */
  23994. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  23995. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  23996. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  23997. return -int32(1)
  23998. }
  23999. }
  24000. /* try writing to input buffer for speed (state->size == 0 if buffer not
  24001. initialized) */
  24002. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  24003. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  24004. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  24005. }
  24006. have = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  24007. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  24008. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = uint8(c)
  24009. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  24010. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  24011. return c & int32(0xff)
  24012. }
  24013. }
  24014. /* no room in buffer or not initialized, use gz_write() */
  24015. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = uint8(c)
  24016. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  24017. return -int32(1)
  24018. }
  24019. return c & int32(0xff)
  24020. }
  24021. // C documentation
  24022. //
  24023. // /* -- see zlib.h -- */
  24024. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  24025. var len1, put Tz_size_t
  24026. var state Tgz_statep
  24027. var v1 int32
  24028. _, _, _, _ = len1, put, state, v1
  24029. /* get internal structure */
  24030. if file == libc.UintptrFromInt32(0) {
  24031. return -int32(1)
  24032. }
  24033. state = file
  24034. /* check that we're writing and that there's no error */
  24035. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  24036. return -int32(1)
  24037. }
  24038. /* write string */
  24039. len1 = libc.Xstrlen(tls, s)
  24040. if int32(len1) < 0 || uint64(uint32(len1)) != len1 {
  24041. Xgz_error(tls, state, -int32(2), __ccgo_ts+874)
  24042. return -int32(1)
  24043. }
  24044. put = _gz_write(tls, state, s, len1)
  24045. if put < len1 {
  24046. v1 = -int32(1)
  24047. } else {
  24048. v1 = int32(len1)
  24049. }
  24050. return v1
  24051. }
  24052. /* $OpenBSD: stdarg.h,v 1.10 2020/07/21 23:09:00 daniel Exp $ */
  24053. /*
  24054. * Copyright (c) 2003, 2004 Marc espie <espie@openbsd.org>
  24055. *
  24056. * Permission to use, copy, modify, and distribute this software for any
  24057. * purpose with or without fee is hereby granted, provided that the above
  24058. * copyright notice and this permission notice appear in all copies.
  24059. *
  24060. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  24061. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  24062. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  24063. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  24064. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  24065. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  24066. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  24067. */
  24068. // C documentation
  24069. //
  24070. // /* -- see zlib.h -- */
  24071. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  24072. var left uint32
  24073. var len1 int32
  24074. var next uintptr
  24075. var state Tgz_statep
  24076. var strm Tz_streamp
  24077. _, _, _, _, _ = left, len1, next, state, strm
  24078. /* get internal structure */
  24079. if file == libc.UintptrFromInt32(0) {
  24080. return -int32(2)
  24081. }
  24082. state = file
  24083. strm = state + 128
  24084. /* check that we're writing and that there's no error */
  24085. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  24086. return -int32(2)
  24087. }
  24088. /* make sure we have some buffer space */
  24089. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  24090. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24091. }
  24092. /* check for seek request */
  24093. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  24094. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  24095. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  24096. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24097. }
  24098. }
  24099. /* do the printf() into the input buffer, put length in len -- the input
  24100. buffer is double-sized just for this function, so there is guaranteed to
  24101. be state->size bytes available after the current contents */
  24102. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  24103. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  24104. }
  24105. 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)
  24106. *(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = 0
  24107. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  24108. /* check that printf() results fit in buffer */
  24109. if len1 == 0 || uint32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || int32(*(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  24110. return 0
  24111. }
  24112. /* update buffer and position, compress first half if past that */
  24113. *(*TuInt)(unsafe.Pointer(strm + 8)) += uint32(len1)
  24114. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += int64(len1)
  24115. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  24116. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  24117. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  24118. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  24119. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24120. }
  24121. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(left))
  24122. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  24123. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  24124. }
  24125. return len1
  24126. }
  24127. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  24128. var ret int32
  24129. var va Tva_list
  24130. _, _ = ret, va
  24131. va = va1
  24132. ret = Xgzvprintf(tls, file, format, va)
  24133. _ = va
  24134. return ret
  24135. }
  24136. // C documentation
  24137. //
  24138. // /* -- see zlib.h -- */
  24139. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  24140. var state Tgz_statep
  24141. _ = state
  24142. /* get internal structure */
  24143. if file == libc.UintptrFromInt32(0) {
  24144. return -int32(2)
  24145. }
  24146. state = file
  24147. /* check that we're writing and that there's no error */
  24148. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  24149. return -int32(2)
  24150. }
  24151. /* check flush parameter */
  24152. if flush < 0 || flush > int32(m_Z_FINISH) {
  24153. return -int32(2)
  24154. }
  24155. /* check for seek request */
  24156. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  24157. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  24158. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  24159. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24160. }
  24161. }
  24162. /* compress remaining data with requested flush */
  24163. _gz_comp(tls, state, flush)
  24164. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24165. }
  24166. // C documentation
  24167. //
  24168. // /* -- see zlib.h -- */
  24169. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  24170. var state Tgz_statep
  24171. var strm Tz_streamp
  24172. _, _ = state, strm
  24173. /* get internal structure */
  24174. if file == libc.UintptrFromInt32(0) {
  24175. return -int32(2)
  24176. }
  24177. state = file
  24178. strm = state + 128
  24179. /* check that we're writing and that there's no error */
  24180. 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 {
  24181. return -int32(2)
  24182. }
  24183. /* if no change is requested, then do nothing */
  24184. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  24185. return m_Z_OK
  24186. }
  24187. /* check for seek request */
  24188. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  24189. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  24190. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  24191. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24192. }
  24193. }
  24194. /* change compression parameters for subsequent input */
  24195. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  24196. /* flush previous input with previous parameters before changing */
  24197. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  24198. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24199. }
  24200. XdeflateParams(tls, strm, level, strategy)
  24201. }
  24202. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  24203. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  24204. return m_Z_OK
  24205. }
  24206. // C documentation
  24207. //
  24208. // /* -- see zlib.h -- */
  24209. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  24210. var ret int32
  24211. var state Tgz_statep
  24212. _, _ = ret, state
  24213. ret = m_Z_OK
  24214. /* get internal structure */
  24215. if file == libc.UintptrFromInt32(0) {
  24216. return -int32(2)
  24217. }
  24218. state = file
  24219. /* check that we're writing */
  24220. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  24221. return -int32(2)
  24222. }
  24223. /* check for seek request */
  24224. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  24225. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  24226. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  24227. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24228. }
  24229. }
  24230. /* flush, free memory, and close file */
  24231. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  24232. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  24233. }
  24234. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  24235. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  24236. XdeflateEnd(tls, state+128)
  24237. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  24238. }
  24239. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  24240. }
  24241. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  24242. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  24243. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  24244. ret = -int32(1)
  24245. }
  24246. libc.Xfree(tls, state)
  24247. return ret
  24248. }
  24249. func __ccgo_fp(f interface{}) uintptr {
  24250. type iface [2]uintptr
  24251. return (*iface)(unsafe.Pointer(&f))[1]
  24252. }
  24253. var x__dist_code = [512]Tuch{
  24254. 1: uint8(1),
  24255. 2: uint8(2),
  24256. 3: uint8(3),
  24257. 4: uint8(4),
  24258. 5: uint8(4),
  24259. 6: uint8(5),
  24260. 7: uint8(5),
  24261. 8: uint8(6),
  24262. 9: uint8(6),
  24263. 10: uint8(6),
  24264. 11: uint8(6),
  24265. 12: uint8(7),
  24266. 13: uint8(7),
  24267. 14: uint8(7),
  24268. 15: uint8(7),
  24269. 16: uint8(8),
  24270. 17: uint8(8),
  24271. 18: uint8(8),
  24272. 19: uint8(8),
  24273. 20: uint8(8),
  24274. 21: uint8(8),
  24275. 22: uint8(8),
  24276. 23: uint8(8),
  24277. 24: uint8(9),
  24278. 25: uint8(9),
  24279. 26: uint8(9),
  24280. 27: uint8(9),
  24281. 28: uint8(9),
  24282. 29: uint8(9),
  24283. 30: uint8(9),
  24284. 31: uint8(9),
  24285. 32: uint8(10),
  24286. 33: uint8(10),
  24287. 34: uint8(10),
  24288. 35: uint8(10),
  24289. 36: uint8(10),
  24290. 37: uint8(10),
  24291. 38: uint8(10),
  24292. 39: uint8(10),
  24293. 40: uint8(10),
  24294. 41: uint8(10),
  24295. 42: uint8(10),
  24296. 43: uint8(10),
  24297. 44: uint8(10),
  24298. 45: uint8(10),
  24299. 46: uint8(10),
  24300. 47: uint8(10),
  24301. 48: uint8(11),
  24302. 49: uint8(11),
  24303. 50: uint8(11),
  24304. 51: uint8(11),
  24305. 52: uint8(11),
  24306. 53: uint8(11),
  24307. 54: uint8(11),
  24308. 55: uint8(11),
  24309. 56: uint8(11),
  24310. 57: uint8(11),
  24311. 58: uint8(11),
  24312. 59: uint8(11),
  24313. 60: uint8(11),
  24314. 61: uint8(11),
  24315. 62: uint8(11),
  24316. 63: uint8(11),
  24317. 64: uint8(12),
  24318. 65: uint8(12),
  24319. 66: uint8(12),
  24320. 67: uint8(12),
  24321. 68: uint8(12),
  24322. 69: uint8(12),
  24323. 70: uint8(12),
  24324. 71: uint8(12),
  24325. 72: uint8(12),
  24326. 73: uint8(12),
  24327. 74: uint8(12),
  24328. 75: uint8(12),
  24329. 76: uint8(12),
  24330. 77: uint8(12),
  24331. 78: uint8(12),
  24332. 79: uint8(12),
  24333. 80: uint8(12),
  24334. 81: uint8(12),
  24335. 82: uint8(12),
  24336. 83: uint8(12),
  24337. 84: uint8(12),
  24338. 85: uint8(12),
  24339. 86: uint8(12),
  24340. 87: uint8(12),
  24341. 88: uint8(12),
  24342. 89: uint8(12),
  24343. 90: uint8(12),
  24344. 91: uint8(12),
  24345. 92: uint8(12),
  24346. 93: uint8(12),
  24347. 94: uint8(12),
  24348. 95: uint8(12),
  24349. 96: uint8(13),
  24350. 97: uint8(13),
  24351. 98: uint8(13),
  24352. 99: uint8(13),
  24353. 100: uint8(13),
  24354. 101: uint8(13),
  24355. 102: uint8(13),
  24356. 103: uint8(13),
  24357. 104: uint8(13),
  24358. 105: uint8(13),
  24359. 106: uint8(13),
  24360. 107: uint8(13),
  24361. 108: uint8(13),
  24362. 109: uint8(13),
  24363. 110: uint8(13),
  24364. 111: uint8(13),
  24365. 112: uint8(13),
  24366. 113: uint8(13),
  24367. 114: uint8(13),
  24368. 115: uint8(13),
  24369. 116: uint8(13),
  24370. 117: uint8(13),
  24371. 118: uint8(13),
  24372. 119: uint8(13),
  24373. 120: uint8(13),
  24374. 121: uint8(13),
  24375. 122: uint8(13),
  24376. 123: uint8(13),
  24377. 124: uint8(13),
  24378. 125: uint8(13),
  24379. 126: uint8(13),
  24380. 127: uint8(13),
  24381. 128: uint8(14),
  24382. 129: uint8(14),
  24383. 130: uint8(14),
  24384. 131: uint8(14),
  24385. 132: uint8(14),
  24386. 133: uint8(14),
  24387. 134: uint8(14),
  24388. 135: uint8(14),
  24389. 136: uint8(14),
  24390. 137: uint8(14),
  24391. 138: uint8(14),
  24392. 139: uint8(14),
  24393. 140: uint8(14),
  24394. 141: uint8(14),
  24395. 142: uint8(14),
  24396. 143: uint8(14),
  24397. 144: uint8(14),
  24398. 145: uint8(14),
  24399. 146: uint8(14),
  24400. 147: uint8(14),
  24401. 148: uint8(14),
  24402. 149: uint8(14),
  24403. 150: uint8(14),
  24404. 151: uint8(14),
  24405. 152: uint8(14),
  24406. 153: uint8(14),
  24407. 154: uint8(14),
  24408. 155: uint8(14),
  24409. 156: uint8(14),
  24410. 157: uint8(14),
  24411. 158: uint8(14),
  24412. 159: uint8(14),
  24413. 160: uint8(14),
  24414. 161: uint8(14),
  24415. 162: uint8(14),
  24416. 163: uint8(14),
  24417. 164: uint8(14),
  24418. 165: uint8(14),
  24419. 166: uint8(14),
  24420. 167: uint8(14),
  24421. 168: uint8(14),
  24422. 169: uint8(14),
  24423. 170: uint8(14),
  24424. 171: uint8(14),
  24425. 172: uint8(14),
  24426. 173: uint8(14),
  24427. 174: uint8(14),
  24428. 175: uint8(14),
  24429. 176: uint8(14),
  24430. 177: uint8(14),
  24431. 178: uint8(14),
  24432. 179: uint8(14),
  24433. 180: uint8(14),
  24434. 181: uint8(14),
  24435. 182: uint8(14),
  24436. 183: uint8(14),
  24437. 184: uint8(14),
  24438. 185: uint8(14),
  24439. 186: uint8(14),
  24440. 187: uint8(14),
  24441. 188: uint8(14),
  24442. 189: uint8(14),
  24443. 190: uint8(14),
  24444. 191: uint8(14),
  24445. 192: uint8(15),
  24446. 193: uint8(15),
  24447. 194: uint8(15),
  24448. 195: uint8(15),
  24449. 196: uint8(15),
  24450. 197: uint8(15),
  24451. 198: uint8(15),
  24452. 199: uint8(15),
  24453. 200: uint8(15),
  24454. 201: uint8(15),
  24455. 202: uint8(15),
  24456. 203: uint8(15),
  24457. 204: uint8(15),
  24458. 205: uint8(15),
  24459. 206: uint8(15),
  24460. 207: uint8(15),
  24461. 208: uint8(15),
  24462. 209: uint8(15),
  24463. 210: uint8(15),
  24464. 211: uint8(15),
  24465. 212: uint8(15),
  24466. 213: uint8(15),
  24467. 214: uint8(15),
  24468. 215: uint8(15),
  24469. 216: uint8(15),
  24470. 217: uint8(15),
  24471. 218: uint8(15),
  24472. 219: uint8(15),
  24473. 220: uint8(15),
  24474. 221: uint8(15),
  24475. 222: uint8(15),
  24476. 223: uint8(15),
  24477. 224: uint8(15),
  24478. 225: uint8(15),
  24479. 226: uint8(15),
  24480. 227: uint8(15),
  24481. 228: uint8(15),
  24482. 229: uint8(15),
  24483. 230: uint8(15),
  24484. 231: uint8(15),
  24485. 232: uint8(15),
  24486. 233: uint8(15),
  24487. 234: uint8(15),
  24488. 235: uint8(15),
  24489. 236: uint8(15),
  24490. 237: uint8(15),
  24491. 238: uint8(15),
  24492. 239: uint8(15),
  24493. 240: uint8(15),
  24494. 241: uint8(15),
  24495. 242: uint8(15),
  24496. 243: uint8(15),
  24497. 244: uint8(15),
  24498. 245: uint8(15),
  24499. 246: uint8(15),
  24500. 247: uint8(15),
  24501. 248: uint8(15),
  24502. 249: uint8(15),
  24503. 250: uint8(15),
  24504. 251: uint8(15),
  24505. 252: uint8(15),
  24506. 253: uint8(15),
  24507. 254: uint8(15),
  24508. 255: uint8(15),
  24509. 258: uint8(16),
  24510. 259: uint8(17),
  24511. 260: uint8(18),
  24512. 261: uint8(18),
  24513. 262: uint8(19),
  24514. 263: uint8(19),
  24515. 264: uint8(20),
  24516. 265: uint8(20),
  24517. 266: uint8(20),
  24518. 267: uint8(20),
  24519. 268: uint8(21),
  24520. 269: uint8(21),
  24521. 270: uint8(21),
  24522. 271: uint8(21),
  24523. 272: uint8(22),
  24524. 273: uint8(22),
  24525. 274: uint8(22),
  24526. 275: uint8(22),
  24527. 276: uint8(22),
  24528. 277: uint8(22),
  24529. 278: uint8(22),
  24530. 279: uint8(22),
  24531. 280: uint8(23),
  24532. 281: uint8(23),
  24533. 282: uint8(23),
  24534. 283: uint8(23),
  24535. 284: uint8(23),
  24536. 285: uint8(23),
  24537. 286: uint8(23),
  24538. 287: uint8(23),
  24539. 288: uint8(24),
  24540. 289: uint8(24),
  24541. 290: uint8(24),
  24542. 291: uint8(24),
  24543. 292: uint8(24),
  24544. 293: uint8(24),
  24545. 294: uint8(24),
  24546. 295: uint8(24),
  24547. 296: uint8(24),
  24548. 297: uint8(24),
  24549. 298: uint8(24),
  24550. 299: uint8(24),
  24551. 300: uint8(24),
  24552. 301: uint8(24),
  24553. 302: uint8(24),
  24554. 303: uint8(24),
  24555. 304: uint8(25),
  24556. 305: uint8(25),
  24557. 306: uint8(25),
  24558. 307: uint8(25),
  24559. 308: uint8(25),
  24560. 309: uint8(25),
  24561. 310: uint8(25),
  24562. 311: uint8(25),
  24563. 312: uint8(25),
  24564. 313: uint8(25),
  24565. 314: uint8(25),
  24566. 315: uint8(25),
  24567. 316: uint8(25),
  24568. 317: uint8(25),
  24569. 318: uint8(25),
  24570. 319: uint8(25),
  24571. 320: uint8(26),
  24572. 321: uint8(26),
  24573. 322: uint8(26),
  24574. 323: uint8(26),
  24575. 324: uint8(26),
  24576. 325: uint8(26),
  24577. 326: uint8(26),
  24578. 327: uint8(26),
  24579. 328: uint8(26),
  24580. 329: uint8(26),
  24581. 330: uint8(26),
  24582. 331: uint8(26),
  24583. 332: uint8(26),
  24584. 333: uint8(26),
  24585. 334: uint8(26),
  24586. 335: uint8(26),
  24587. 336: uint8(26),
  24588. 337: uint8(26),
  24589. 338: uint8(26),
  24590. 339: uint8(26),
  24591. 340: uint8(26),
  24592. 341: uint8(26),
  24593. 342: uint8(26),
  24594. 343: uint8(26),
  24595. 344: uint8(26),
  24596. 345: uint8(26),
  24597. 346: uint8(26),
  24598. 347: uint8(26),
  24599. 348: uint8(26),
  24600. 349: uint8(26),
  24601. 350: uint8(26),
  24602. 351: uint8(26),
  24603. 352: uint8(27),
  24604. 353: uint8(27),
  24605. 354: uint8(27),
  24606. 355: uint8(27),
  24607. 356: uint8(27),
  24608. 357: uint8(27),
  24609. 358: uint8(27),
  24610. 359: uint8(27),
  24611. 360: uint8(27),
  24612. 361: uint8(27),
  24613. 362: uint8(27),
  24614. 363: uint8(27),
  24615. 364: uint8(27),
  24616. 365: uint8(27),
  24617. 366: uint8(27),
  24618. 367: uint8(27),
  24619. 368: uint8(27),
  24620. 369: uint8(27),
  24621. 370: uint8(27),
  24622. 371: uint8(27),
  24623. 372: uint8(27),
  24624. 373: uint8(27),
  24625. 374: uint8(27),
  24626. 375: uint8(27),
  24627. 376: uint8(27),
  24628. 377: uint8(27),
  24629. 378: uint8(27),
  24630. 379: uint8(27),
  24631. 380: uint8(27),
  24632. 381: uint8(27),
  24633. 382: uint8(27),
  24634. 383: uint8(27),
  24635. 384: uint8(28),
  24636. 385: uint8(28),
  24637. 386: uint8(28),
  24638. 387: uint8(28),
  24639. 388: uint8(28),
  24640. 389: uint8(28),
  24641. 390: uint8(28),
  24642. 391: uint8(28),
  24643. 392: uint8(28),
  24644. 393: uint8(28),
  24645. 394: uint8(28),
  24646. 395: uint8(28),
  24647. 396: uint8(28),
  24648. 397: uint8(28),
  24649. 398: uint8(28),
  24650. 399: uint8(28),
  24651. 400: uint8(28),
  24652. 401: uint8(28),
  24653. 402: uint8(28),
  24654. 403: uint8(28),
  24655. 404: uint8(28),
  24656. 405: uint8(28),
  24657. 406: uint8(28),
  24658. 407: uint8(28),
  24659. 408: uint8(28),
  24660. 409: uint8(28),
  24661. 410: uint8(28),
  24662. 411: uint8(28),
  24663. 412: uint8(28),
  24664. 413: uint8(28),
  24665. 414: uint8(28),
  24666. 415: uint8(28),
  24667. 416: uint8(28),
  24668. 417: uint8(28),
  24669. 418: uint8(28),
  24670. 419: uint8(28),
  24671. 420: uint8(28),
  24672. 421: uint8(28),
  24673. 422: uint8(28),
  24674. 423: uint8(28),
  24675. 424: uint8(28),
  24676. 425: uint8(28),
  24677. 426: uint8(28),
  24678. 427: uint8(28),
  24679. 428: uint8(28),
  24680. 429: uint8(28),
  24681. 430: uint8(28),
  24682. 431: uint8(28),
  24683. 432: uint8(28),
  24684. 433: uint8(28),
  24685. 434: uint8(28),
  24686. 435: uint8(28),
  24687. 436: uint8(28),
  24688. 437: uint8(28),
  24689. 438: uint8(28),
  24690. 439: uint8(28),
  24691. 440: uint8(28),
  24692. 441: uint8(28),
  24693. 442: uint8(28),
  24694. 443: uint8(28),
  24695. 444: uint8(28),
  24696. 445: uint8(28),
  24697. 446: uint8(28),
  24698. 447: uint8(28),
  24699. 448: uint8(29),
  24700. 449: uint8(29),
  24701. 450: uint8(29),
  24702. 451: uint8(29),
  24703. 452: uint8(29),
  24704. 453: uint8(29),
  24705. 454: uint8(29),
  24706. 455: uint8(29),
  24707. 456: uint8(29),
  24708. 457: uint8(29),
  24709. 458: uint8(29),
  24710. 459: uint8(29),
  24711. 460: uint8(29),
  24712. 461: uint8(29),
  24713. 462: uint8(29),
  24714. 463: uint8(29),
  24715. 464: uint8(29),
  24716. 465: uint8(29),
  24717. 466: uint8(29),
  24718. 467: uint8(29),
  24719. 468: uint8(29),
  24720. 469: uint8(29),
  24721. 470: uint8(29),
  24722. 471: uint8(29),
  24723. 472: uint8(29),
  24724. 473: uint8(29),
  24725. 474: uint8(29),
  24726. 475: uint8(29),
  24727. 476: uint8(29),
  24728. 477: uint8(29),
  24729. 478: uint8(29),
  24730. 479: uint8(29),
  24731. 480: uint8(29),
  24732. 481: uint8(29),
  24733. 482: uint8(29),
  24734. 483: uint8(29),
  24735. 484: uint8(29),
  24736. 485: uint8(29),
  24737. 486: uint8(29),
  24738. 487: uint8(29),
  24739. 488: uint8(29),
  24740. 489: uint8(29),
  24741. 490: uint8(29),
  24742. 491: uint8(29),
  24743. 492: uint8(29),
  24744. 493: uint8(29),
  24745. 494: uint8(29),
  24746. 495: uint8(29),
  24747. 496: uint8(29),
  24748. 497: uint8(29),
  24749. 498: uint8(29),
  24750. 499: uint8(29),
  24751. 500: uint8(29),
  24752. 501: uint8(29),
  24753. 502: uint8(29),
  24754. 503: uint8(29),
  24755. 504: uint8(29),
  24756. 505: uint8(29),
  24757. 506: uint8(29),
  24758. 507: uint8(29),
  24759. 508: uint8(29),
  24760. 509: uint8(29),
  24761. 510: uint8(29),
  24762. 511: uint8(29),
  24763. }
  24764. var x__length_code = [256]Tuch{
  24765. 1: uint8(1),
  24766. 2: uint8(2),
  24767. 3: uint8(3),
  24768. 4: uint8(4),
  24769. 5: uint8(5),
  24770. 6: uint8(6),
  24771. 7: uint8(7),
  24772. 8: uint8(8),
  24773. 9: uint8(8),
  24774. 10: uint8(9),
  24775. 11: uint8(9),
  24776. 12: uint8(10),
  24777. 13: uint8(10),
  24778. 14: uint8(11),
  24779. 15: uint8(11),
  24780. 16: uint8(12),
  24781. 17: uint8(12),
  24782. 18: uint8(12),
  24783. 19: uint8(12),
  24784. 20: uint8(13),
  24785. 21: uint8(13),
  24786. 22: uint8(13),
  24787. 23: uint8(13),
  24788. 24: uint8(14),
  24789. 25: uint8(14),
  24790. 26: uint8(14),
  24791. 27: uint8(14),
  24792. 28: uint8(15),
  24793. 29: uint8(15),
  24794. 30: uint8(15),
  24795. 31: uint8(15),
  24796. 32: uint8(16),
  24797. 33: uint8(16),
  24798. 34: uint8(16),
  24799. 35: uint8(16),
  24800. 36: uint8(16),
  24801. 37: uint8(16),
  24802. 38: uint8(16),
  24803. 39: uint8(16),
  24804. 40: uint8(17),
  24805. 41: uint8(17),
  24806. 42: uint8(17),
  24807. 43: uint8(17),
  24808. 44: uint8(17),
  24809. 45: uint8(17),
  24810. 46: uint8(17),
  24811. 47: uint8(17),
  24812. 48: uint8(18),
  24813. 49: uint8(18),
  24814. 50: uint8(18),
  24815. 51: uint8(18),
  24816. 52: uint8(18),
  24817. 53: uint8(18),
  24818. 54: uint8(18),
  24819. 55: uint8(18),
  24820. 56: uint8(19),
  24821. 57: uint8(19),
  24822. 58: uint8(19),
  24823. 59: uint8(19),
  24824. 60: uint8(19),
  24825. 61: uint8(19),
  24826. 62: uint8(19),
  24827. 63: uint8(19),
  24828. 64: uint8(20),
  24829. 65: uint8(20),
  24830. 66: uint8(20),
  24831. 67: uint8(20),
  24832. 68: uint8(20),
  24833. 69: uint8(20),
  24834. 70: uint8(20),
  24835. 71: uint8(20),
  24836. 72: uint8(20),
  24837. 73: uint8(20),
  24838. 74: uint8(20),
  24839. 75: uint8(20),
  24840. 76: uint8(20),
  24841. 77: uint8(20),
  24842. 78: uint8(20),
  24843. 79: uint8(20),
  24844. 80: uint8(21),
  24845. 81: uint8(21),
  24846. 82: uint8(21),
  24847. 83: uint8(21),
  24848. 84: uint8(21),
  24849. 85: uint8(21),
  24850. 86: uint8(21),
  24851. 87: uint8(21),
  24852. 88: uint8(21),
  24853. 89: uint8(21),
  24854. 90: uint8(21),
  24855. 91: uint8(21),
  24856. 92: uint8(21),
  24857. 93: uint8(21),
  24858. 94: uint8(21),
  24859. 95: uint8(21),
  24860. 96: uint8(22),
  24861. 97: uint8(22),
  24862. 98: uint8(22),
  24863. 99: uint8(22),
  24864. 100: uint8(22),
  24865. 101: uint8(22),
  24866. 102: uint8(22),
  24867. 103: uint8(22),
  24868. 104: uint8(22),
  24869. 105: uint8(22),
  24870. 106: uint8(22),
  24871. 107: uint8(22),
  24872. 108: uint8(22),
  24873. 109: uint8(22),
  24874. 110: uint8(22),
  24875. 111: uint8(22),
  24876. 112: uint8(23),
  24877. 113: uint8(23),
  24878. 114: uint8(23),
  24879. 115: uint8(23),
  24880. 116: uint8(23),
  24881. 117: uint8(23),
  24882. 118: uint8(23),
  24883. 119: uint8(23),
  24884. 120: uint8(23),
  24885. 121: uint8(23),
  24886. 122: uint8(23),
  24887. 123: uint8(23),
  24888. 124: uint8(23),
  24889. 125: uint8(23),
  24890. 126: uint8(23),
  24891. 127: uint8(23),
  24892. 128: uint8(24),
  24893. 129: uint8(24),
  24894. 130: uint8(24),
  24895. 131: uint8(24),
  24896. 132: uint8(24),
  24897. 133: uint8(24),
  24898. 134: uint8(24),
  24899. 135: uint8(24),
  24900. 136: uint8(24),
  24901. 137: uint8(24),
  24902. 138: uint8(24),
  24903. 139: uint8(24),
  24904. 140: uint8(24),
  24905. 141: uint8(24),
  24906. 142: uint8(24),
  24907. 143: uint8(24),
  24908. 144: uint8(24),
  24909. 145: uint8(24),
  24910. 146: uint8(24),
  24911. 147: uint8(24),
  24912. 148: uint8(24),
  24913. 149: uint8(24),
  24914. 150: uint8(24),
  24915. 151: uint8(24),
  24916. 152: uint8(24),
  24917. 153: uint8(24),
  24918. 154: uint8(24),
  24919. 155: uint8(24),
  24920. 156: uint8(24),
  24921. 157: uint8(24),
  24922. 158: uint8(24),
  24923. 159: uint8(24),
  24924. 160: uint8(25),
  24925. 161: uint8(25),
  24926. 162: uint8(25),
  24927. 163: uint8(25),
  24928. 164: uint8(25),
  24929. 165: uint8(25),
  24930. 166: uint8(25),
  24931. 167: uint8(25),
  24932. 168: uint8(25),
  24933. 169: uint8(25),
  24934. 170: uint8(25),
  24935. 171: uint8(25),
  24936. 172: uint8(25),
  24937. 173: uint8(25),
  24938. 174: uint8(25),
  24939. 175: uint8(25),
  24940. 176: uint8(25),
  24941. 177: uint8(25),
  24942. 178: uint8(25),
  24943. 179: uint8(25),
  24944. 180: uint8(25),
  24945. 181: uint8(25),
  24946. 182: uint8(25),
  24947. 183: uint8(25),
  24948. 184: uint8(25),
  24949. 185: uint8(25),
  24950. 186: uint8(25),
  24951. 187: uint8(25),
  24952. 188: uint8(25),
  24953. 189: uint8(25),
  24954. 190: uint8(25),
  24955. 191: uint8(25),
  24956. 192: uint8(26),
  24957. 193: uint8(26),
  24958. 194: uint8(26),
  24959. 195: uint8(26),
  24960. 196: uint8(26),
  24961. 197: uint8(26),
  24962. 198: uint8(26),
  24963. 199: uint8(26),
  24964. 200: uint8(26),
  24965. 201: uint8(26),
  24966. 202: uint8(26),
  24967. 203: uint8(26),
  24968. 204: uint8(26),
  24969. 205: uint8(26),
  24970. 206: uint8(26),
  24971. 207: uint8(26),
  24972. 208: uint8(26),
  24973. 209: uint8(26),
  24974. 210: uint8(26),
  24975. 211: uint8(26),
  24976. 212: uint8(26),
  24977. 213: uint8(26),
  24978. 214: uint8(26),
  24979. 215: uint8(26),
  24980. 216: uint8(26),
  24981. 217: uint8(26),
  24982. 218: uint8(26),
  24983. 219: uint8(26),
  24984. 220: uint8(26),
  24985. 221: uint8(26),
  24986. 222: uint8(26),
  24987. 223: uint8(26),
  24988. 224: uint8(27),
  24989. 225: uint8(27),
  24990. 226: uint8(27),
  24991. 227: uint8(27),
  24992. 228: uint8(27),
  24993. 229: uint8(27),
  24994. 230: uint8(27),
  24995. 231: uint8(27),
  24996. 232: uint8(27),
  24997. 233: uint8(27),
  24998. 234: uint8(27),
  24999. 235: uint8(27),
  25000. 236: uint8(27),
  25001. 237: uint8(27),
  25002. 238: uint8(27),
  25003. 239: uint8(27),
  25004. 240: uint8(27),
  25005. 241: uint8(27),
  25006. 242: uint8(27),
  25007. 243: uint8(27),
  25008. 244: uint8(27),
  25009. 245: uint8(27),
  25010. 246: uint8(27),
  25011. 247: uint8(27),
  25012. 248: uint8(27),
  25013. 249: uint8(27),
  25014. 250: uint8(27),
  25015. 251: uint8(27),
  25016. 252: uint8(27),
  25017. 253: uint8(27),
  25018. 254: uint8(27),
  25019. 255: uint8(28),
  25020. }
  25021. var Xdeflate_copyright = [68]int8{' ', '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', ' '}
  25022. var Xinflate_copyright = [47]int8{' ', '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', ' '}
  25023. var Xz_errmsg = [10]uintptr{
  25024. 0: __ccgo_ts + 467,
  25025. 1: __ccgo_ts + 483,
  25026. 2: __ccgo_ts + 494,
  25027. 3: __ccgo_ts + 495,
  25028. 4: __ccgo_ts + 506,
  25029. 5: __ccgo_ts + 519,
  25030. 6: __ccgo_ts + 530,
  25031. 7: __ccgo_ts + 550,
  25032. 8: __ccgo_ts + 563,
  25033. 9: __ccgo_ts + 494,
  25034. }
  25035. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  25036. 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"