>>8&255,n.check=w(n.check,Pt,2,0),h=0,p=0,n.mode=D;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=ht;break}if((15&h)!==F){t.msg="unknown compression method",n.mode=ht;break}if(h>>>=4,p-=4,_t=8+(15&h),0===n.wbits)n.wbits=_t;else if(_t>n.wbits){t.msg="invalid window size",n.mode=ht;break}n.dmax=1<<_t,t.adler=n.check=1,n.mode=512&h?q:Y,h=0,p=0;break;case D:for(;p<16;){if(0===u)break t;u--,h+=i[a++]<>8&1),512&n.flags&&(Pt[0]=255&h,Pt[1]=h>>>8&255,n.check=w(n.check,Pt,2,0)),h=0,p=0,n.mode=N;case N:for(;p<32;){if(0===u)break t;u--,h+=i[a++]<
>>8&255,Pt[2]=h>>>16&255,Pt[3]=h>>>24&255,n.check=w(n.check,Pt,4,0)),h=0,p=0,n.mode=U;case U:for(;p<16;){if(0===u)break t;u--,h+=i[a++]<
>8),512&n.flags&&(Pt[0]=255&h,Pt[1]=h>>>8&255,n.check=w(n.check,Pt,2,0)),h=0,p=0,n.mode=W;case W:if(1024&n.flags){for(;p<16;){
if(0===u)break t;u--,h+=i[a++]<
>>8&255,n.check=w(n.check,Pt,2,0)),h=0,p=0}else n.head&&(n.head.extra=null);n.mode=j;case j:if(1024&n.flags&&(y=n.length,y>u&&(y=u),y&&(n.head&&(_t=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),b.arraySet(n.head.extra,i,a,y,_t)),512&n.flags&&(n.check=w(n.check,i,y,a)),u-=y,a+=y,n.length-=y),n.length))break t;n.length=0,n.mode=G;case G:if(2048&n.flags){if(0===u)break t;y=0;do{_t=i[a+y++],n.head&&_t&&n.length<65536&&(n.head.name+=String.fromCharCode(_t))}while(_t&&y>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Y;break;case q:for(;p<32;){if(0===u)break t;u--,h+=i[a++]<
>>=7&p,p-=7&p,n.mode=lt;break}for(;p<3;){if(0===u)break t;u--,h+=i[a++]<
>>=1,p-=1,3&h){case 0:n.mode=K;break;case 1:if(c(n),n.mode=nt,e===E){h>>>=2,p-=2;break t}break;case 2:n.mode=$;break;case 3:t.msg="invalid block type",n.mode=ht}h>>>=2,p-=2;break;case K:for(h>>>=7&p,p-=7&p;p<32;){if(0===u)break t;u--,h+=i[a++]<
>>16^65535)){t.msg="invalid stored block lengths",n.mode=ht;break}if(n.length=65535&h,h=0,p=0,n.mode=J,e===E)break t;case J:n.mode=Q;case Q:if(y=n.length){if(y>u&&(y=u),y>l&&(y=l),0===y)break t;b.arraySet(o,i,a,y,s),u-=y,a+=y,l-=y,s+=y,n.length-=y;break}n.mode=Y;break;case $:for(;p<14;){if(0===u)break t;u--,h+=i[a++]<
>>=5,p-=5,n.ndist=1+(31&h),h>>>=5,p-=5,n.ncode=4+(15&h),h>>>=4,p-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ht;break}n.have=0,n.mode=tt;case tt:for(;n.have>>=3,p-=3}for(;n.have<19;)n.lens[Et[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,St={bits:n.lenbits},kt=_(k,n.lens,0,19,n.lencode,0,n.work,St),n.lenbits=St.bits,kt){t.msg="invalid code lengths set",n.mode=ht;break}n.have=0,n.mode=et;case et:for(;n.have>>24,vt=At>>>16&255,bt=65535&At,!(yt<=p);){if(0===u)break t;u--,h+=i[a++]<>>=yt,p-=yt,n.lens[n.have++]=bt;else{if(16===bt){for(Ct=yt+2;p>>=yt,p-=yt,0===n.have){t.msg="invalid bit length repeat",n.mode=ht;break}_t=n.lens[n.have-1],y=3+(3&h),h>>>=2,p-=2}else if(17===bt){for(Ct=yt+3;p>>=yt,p-=yt,_t=0,y=3+(7&h),h>>>=3,p-=3}else{for(Ct=yt+7;p>>=yt,p-=yt,_t=0,y=11+(127&h),h>>>=7,p-=7}if(n.have+y>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ht;break}for(;y--;)n.lens[n.have++]=_t}}if(n.mode===ht)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=ht;break}if(n.lenbits=9,St={bits:n.lenbits},kt=_(S,n.lens,0,n.nlen,n.lencode,0,n.work,St),n.lenbits=St.bits,kt){t.msg="invalid literal/lengths set",n.mode=ht;break}if(n.distbits=6,n.distcode=n.distdyn,St={bits:n.distbits},kt=_(C,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,St),n.distbits=St.bits,kt){t.msg="invalid distances set",n.mode=ht;break}if(n.mode=nt,e===E)break t;case nt:n.mode=rt;case rt:if(u>=6&&l>=258){t.next_out=s,t.avail_out=l,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=p,x(t,g),s=t.next_out,o=t.output,l=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,p=n.bits,n.mode===Y&&(n.back=-1);break}for(n.back=0;At=n.lencode[h&(1<>>24,vt=At>>>16&255,bt=65535&At,!(yt<=p);){if(0===u)break t;u--,h+=i[a++]<>mt)],yt=At>>>24,vt=At>>>16&255,bt=65535&At,!(mt+yt<=p);){if(0===u)break t;u--,h+=i[a++]<
>>=mt,p-=mt,n.back+=mt}if(h>>>=yt,p-=yt,n.back+=yt,n.length=bt,0===vt){n.mode=ut;break}if(32&vt){n.back=-1,n.mode=Y;break}if(64&vt){t.msg="invalid literal/length code",n.mode=ht;break}n.extra=15&vt,n.mode=it;case it:if(n.extra){for(Ct=n.extra;p>>=n.extra,p-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=ot;case ot:for(;At=n.distcode[h&(1<>>24,vt=At>>>16&255,bt=65535&At,!(yt<=p);){if(0===u)break t;u--,h+=i[a++]<>mt)],yt=At>>>24,vt=At>>>16&255,bt=65535&At,!(mt+yt<=p);){if(0===u)break t;u--,h+=i[a++]<
>>=mt,p-=mt,n.back+=mt}if(h>>>=yt,p-=yt,n.back+=yt,64&vt){t.msg="invalid distance code",n.mode=ht;break}n.offset=bt,n.extra=15&vt,n.mode=at;case at:if(n.extra){for(Ct=n.extra;p>>=n.extra,p-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ht;break}n.mode=st;case st:if(0===l)break t;if(y=g-l,n.offset>y){if((y=n.offset-y)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ht;break}y>n.wnext?(y-=n.wnext,v=n.wsize-y):v=n.wnext-y,y>n.length&&(y=n.length),gt=n.window}else gt=o,v=s-n.offset,y=n.length;y>l&&(y=l),l-=y,n.length-=y;do{o[s++]=gt[v++]}while(--y);0===n.length&&(n.mode=rt);break;case ut:if(0===l)break t;o[s++]=n.length,l--,n.mode=rt;break;case lt:if(n.wrap){for(;p<32;){if(0===u)break t;u--,h|=i[a++]<>>24,p>>>=w,d-=w,0===(w=m>>>16&255))A[o++]=65535&m;else{if(!(16&w)){if(0==(64&w)){m=g[(65535&m)+(p&(1<>>=w,d-=w),d<15&&(p+=C[r++]<>>24,p>>>=w,d-=w,!(16&(w=m>>>16&255))){if(0==(64&w)){m=y[(65535&m)+(p&(1<u){t.msg="invalid distance too far back",n.mode=30;break t}if(p>>>=w,d-=w,w=o-a,_>w){if((w=_-w)>c&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(k=0,S=h,0===f){if(k+=l-w,w2;)A[o++]=S[k++],A[o++]=S[k++],A[o++]=S[k++],x-=3;x&&(A[o++]=S[k++],x>1&&(A[o++]=S[k++]))}else{k=o-_;do{A[o++]=A[k++],A[o++]=A[k++],A[o++]=A[k++],x-=3}while(x>2);x&&(A[o++]=A[k++],x>1&&(A[o++]=A[k++]))}break}}break}}while(r>3,r-=x,d-=x<<3,p&=(1<