memoscan
← all memos

Memo 0x07d39276…ea9d81 on Ethereum

// fflate gunzip - minimal implementation var fflate=(function(){ var u8=Uint8Array,u16=Uint16Array,u32=Uint32Array; var fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]); var fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]); var clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]); var freb=function(eb,start){var b=new u16(31);for(var i=0;i<31;++i)b[i]=start+=1<<eb[i-1];var r=new u32(b[30]);for(var i=1;i<30;++i)for(var j=b[i];j<b[i+1];++j)r[j]=(j-b[i]<<5)|i;return[b,r]}; var fl=freb(fleb,2),fd=freb(fdeb,0);var flm=fl[0],flrm=fl[1];var fdm=fd[0],fdrm=fd[1]; var rev=new u16(32768);for(var i=0;i<32768;++i){var x=(i&0xAAAA)>>>1|(i&0x5555)<<1;x=(x&0xCCCC)>>>2|(x&0x3333)<<2;x=(x&0xF0F0)>>>4|(x&0x0F0F)<<4;rev[i]=((x&0xFF00)>>>8|(x&0x00FF)<<8)>>>1} var hMap=function(cd,mb,r){var s=cd.length;var i=0;var l=new u16(mb);for(;i<s;++i)++l[cd[i]-1];var le=new u16(mb);for(i=0;i<mb;++i)le[i]=(le[i-1]+l[i-1])<<1;var co;if(r){co=new u16(1<<mb);var rvb=15-mb;for(i=0;i<s;++i)if(cd[i])for(var sv=i<<4|cd[i],rm=mb-cd[i],j=le[cd[i]-1]++<<rm,e=j|(1<<rm)-1;j<=e;++j)co[rev[j]>>>rvb]=sv}else{co=new u16(s);for(i=0;i<s;++i)if(cd[i])co[i]=rev[le[cd[i]-1]++]>>>15-cd[i]}return co}; var flt=new u8(288);for(var i=0;i<144;++i)flt[i]=8;for(var i=144;i<256;++i)flt[i]=9;for(var i=256;i<280;++i)flt[i]=7;for(var i=280;i<288;++i)flt[i]=8; var fdt=new u8(32);for(var i=0;i<32;++i)fdt[i]=5;var flrmt=hMap(flt,9,1),fdrmt=hMap(fdt,5,1); var max=function(a){var m=a[0];for(var i=1;i<a.length;++i)if(a[i]>m)m=a[i];return m}; var bits=function(d,p,m){var o=p/8|0;return(d[o]|d[o+1]<<8)>>(p&7)&m}; var bits16=function(d,p){var o=p/8|0;return(d[o]|d[o+1]<<8|d[o+2]<<16)>>(p&7)}; var shft=function(p){return(p/8|0)+(p&7&&1)}; var slc=function(v,s,e){if(s==null||s<0)s=0;if(e==null||e>v.length)e=v.length;var n=new(v instanceof u16?u16:v instanceof u32?u32:u8)(e-s);n.set(v.subarray(s,e));return n}; var inflt=function(dat,buf,st){var sl=dat.length;if(!sl||st&&!st.l&&sl<5)return buf||new u8(0);var noBuf=!buf||st;var noSt=!st||st.i;if(!st)st={};if(!buf)buf=new u8(sl*3);var cbuf=function(l){var bl=buf.length;if(l>bl){var nbuf=new u8(Math.max(bl*2,l));nbuf.set(buf);buf=nbuf}};var final=st.f||0,pos=st.p||0,bt=st.b||0,lm=st.l,dm=st.d,lbt=st.m,dbt=st.n;var tbts=sl*8;do{if(!lm){st.f=final=bits(dat,pos,1);var type=bits(dat,pos+1,3);pos+=3;if(!type){var s=shft(pos)+4,l=dat[s-4]|dat[s-3]<<8,t=s+l;if(t>sl){if(noSt)throw'unexpected EOF';break}if(noBuf)cbuf(bt+l);buf.set(dat.subarray(s,t),bt);st.b=bt+=l,st.p=pos=t*8;continue}else if(type==1)lm=flrmt,dm=fdrmt,lbt=9,dbt=5;else if(type==2){var hLit=bits(dat,pos,31)+257,hDist=bits(dat,pos+5,31)+1,hcLen=bits(dat,pos+10,15)+4;pos+=14;var ldt=new u8(hLit+hDist),clt=new u8(19);for(var i=0;i<hcLen;++i)clt[clim[i]]=bits(dat,pos+i*3,7);pos+=hcLen*3;var clm=max(clt),clrm=hMap(clt,clm,1);for(var i=0;i<ldt.length;){var r=clrm[bits(dat,pos,clm)];pos+=r&15;var s=r>>>4;if(s<16)ldt[i++]=s;else{var c=0,n=0;if(s==16)n=3+bits(dat,pos,3),pos+=2,c=ldt[i-1];else if(s==17)n=3+bits(dat,pos,7),pos+=3;else if(s==18)n=11+bits(dat,pos,127),pos+=7;while(n--)ldt[i++]=c}}var lt=ldt.subarray(0,hLit),dt=ldt.subarray(hLit);lbt=max(lt);dbt=max(dt);lm=hMap(lt,lbt,1);dm=hMap(dt,dbt,1)}else throw'invalid block type';if(pos>tbts)throw'unexpected EOF'}if(noBuf)cbuf(bt+131072);var lms=(1<<lbt)-1,dms=(1<<dbt)-1;var mxa=lbt+dbt+18;while(!(final&&pos+mxa>tbts)){var c=lm[bits16(dat,pos)&lms],sym=c>>>4;pos+=c&15;if(pos>tbts)throw'unexpected EOF';if(!c)throw'invalid length/literal';if(sym<256)buf[bt++]=sym;else if(sym==256){lm=null;break}else{var add=sym-254;if(sym>264){var i=sym-257,b=fleb[i];add=bits(dat,pos,(1<<b)-1)+flm[i];pos+=b}var d=dm[bits16(dat,pos)&dms],dsym=d>>>4;if(!d)throw'invalid distance';pos+=d&15;var dt=fdm[dsym];if(dsym>3){var b=fdeb[dsym];dt+=bits16(dat,pos)&(1<<b)-1;pos+=b}if(pos>tbts)throw'unexpected EOF';if(noBuf)cbuf(bt+131072);var end=bt+add;for(;bt<end;bt+=4){buf[bt]=buf[bt-dt];buf[bt+1]=buf[bt+1-dt];buf[bt+2]=buf[bt+2-dt];buf[bt+3]=buf[bt+3-dt]}bt=end}}st.l=lm,st.p=pos,st.b=bt;if(lm)final=1,st.m=lbt,st.d=dm,st.n=dbt}while(!final);return bt==buf.length?buf:slc(buf,0,bt)}; var zlv=function(d){if((d[0]&15)!=8||d[0]>>>4>7||(d[0]<<8|d[1])%31)throw'invalid zlib data';if(d[1]&32)throw'invalid zlib data: preset dictionaries not supported'}; function gunzipSync(data){var st={i:2};if(data[0]!=31||data[1]!=139||data[2]!=8)throw'invalid gzip data';var flg=data[3];var st=10;if(flg&4)st+=data[10]|(data[11]<<8)+2;if(flg&8){var z=st;while(data[st++]);};if(flg&16){var z=st;while(data[st++]);};if(flg&2)st+=2;return inflt(data.subarray(st,-8),new u8(data[data.length-4]|data[data.length-3]<<8|data[data.length-2]<<16|data[data.length-1]<<24))} return{gunzipSync:gunzipSync}})();