Loading
function(e){"use strict";var t=30,n=12;e.exports=function(e,r){var i,s,a,o,l,u,c,d,_,f,p,h,m,E,g,A,I,T,S,y,v,N,C,R,O;i=e.state,s=e.next_in,R=e.input,a=s+(e.avail_in-5),o=e.next_out,O=e.output,l=o-(r-e.avail_out),u=o+(e.avail_out-257),c=i.dmax,d=i.wsize,_=i.whave,f=i.wnext,p=i.window,h=i.hold,m=i.bits,E=i.lencode,g=i.distcode,A=(1<<i.lenbits)-1,I=(1<<i.distbits)-1;r:do for(m<15&&(h+=R[s++]<<m,m+=8,h+=R[s++]<<m,m+=8),T=E[h&A];;){if(h>>>=S=T>>>24,m-=S,0==(S=T>>>16&255))O[o++]=65535&T;else if(16&S)for(y=65535&T,(S&=15)&&(m<S&&(h+=R[s++]<<m,m+=8),y+=h&(1<<S)-1,h>>>=S,m-=S),m<15&&(h+=R[s++]<<m,m+=8,h+=R[s++]<<m,m+=8),T=g[h&I];;){if(h>>>=S=T>>>24,m-=S,16&(S=T>>>16&255)){if(v=65535&T,m<(S&=15)&&(h+=R[s++]<<m,(m+=8)<S&&(h+=R[s++]<<m,m+=8)),(v+=h&(1<<S)-1)>c){e.msg="invalid distance too far back",i.mode=t;break r}if(h>>>=S,m-=S,v>(S=o-l)){if((S=v-S)>_&&i.sane){e.msg="invalid distance too far back",i.mode=t;break r}if(N=0,C=p,0===f){if(N+=d-S,S<y){y-=S;do O[o++]=p[N++];while(--S);N=o-v,C=O}}else if(f<S){if(N+=d+f-S,(S-=f)<y){y-=S;do O[o++]=p[N++];while(--S);if(N=0,f<y){y-=S=f;do O[o++]=p[N++];while(--S);N=o-v,C=O}}}else if(N+=f-S,S<y){y-=S;do O[o++]=p[N++];while(--S);N=o-v,C=O}for(;y>2;)O[o++]=C[N++],O[o++]=C[N++],O[o++]=C[N++],y-=3;y&&(O[o++]=C[N++],y>1&&(O[o++]=C[N++]))}else{N=o-v;do O[o++]=O[N++],O[o++]=O[N++],O[o++]=O[N++],y-=3;while(y>2);y&&(O[o++]=O[N++],y>1&&(O[o++]=O[N++]))}}else if((64&S)==0){T=g[(65535&T)+(h&(1<<S)-1)];continue}else{e.msg="invalid distance code",i.mode=t;break r}break}else if((64&S)==0){T=E[(65535&T)+(h&(1<<S)-1)];continue}else if(32&S){i.mode=n;break r}else{e.msg="invalid literal/length code",i.mode=t;break r}break}while(s<a&&o<u);s-=y=m>>3,m-=y<<3,h&=(1<<m)-1,e.next_in=s,e.next_out=o,e.avail_in=s<a?5+(a-s):5-(s-a),e.avail_out=o<u?257+(u-o):257-(o-u),i.hold=h,i.bits=m}}