>>8&255,e.check=i(e.check,S,2,0),f=0,C=0,e.mode=2;break}if(e.flags=0,e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&f)<<8)+(f>>8))%31){A.msg="incorrect header check",e.mode=g;break}if(8!=(15&f)){A.msg="unknown compression method",e.mode=g;break}if(C-=4,P=8+(15&(f>>>=4)),0===e.wbits)e.wbits=P;else if(P>e.wbits){A.msg="invalid window size",e.mode=g;break}e.dmax=1<>8&1),512&e.flags&&(S[0]=255&f,S[1]=f>>>8&255,e.check=i(e.check,S,2,0)),f=0,C=0,e.mode=3;case 3:for(;C<32;){if(0===Q)break A;Q--,f+=l[E++]<>>8&255,S[2]=f>>>16&255,S[3]=f>>>24&255,e.check=i(e.check,S,4,0)),f=0,C=0,e.mode=4;case 4:for(;C<16;){if(0===Q)break A;Q--,f+=l[E++]<>8),512&e.flags&&(S[0]=255&f,S[1]=f>>>8&255,e.check=i(e.check,S,2,0)),f=0,C=0,e.mode=5;case 5:if(1024&e.flags){for(;C<16;){if(0===Q)break A;Q--,f+=l[E++]<>>8&255,e.check=i(e.check,S,2,0)),f=0,C=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(1024&e.flags&&((p=e.length)>Q&&(p=Q),p&&(e.head&&(P=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Array(e.head.extra_len)),n.arraySet(e.head.extra,l,E,p,P)),512&e.flags&&(e.check=i(e.check,l,p,E)),Q-=p,E+=p,e.length-=p),e.length))break A;e.length=0,e.mode=7;case 7:if(2048&e.flags){if(0===Q)break A;p=0;do{P=l[E+p++],e.head&&P&&e.length<65536&&(e.head.name+=String.fromCharCode(P))}while(P&&p>9&1,e.head.done=!0),A.adler=e.check=0,e.mode=B;break;case 10:for(;C<32;){if(0===Q)break A;Q--,f+=l[E++]<>>=7&C,C-=7&C,e.mode=27;break}for(;C<3;){if(0===Q)break A;Q--,f+=l[E++]<>>=1)){case 0:e.mode=14;break;case 1:if(d(e),e.mode=20,6===t){f>>>=2,C-=2;break A}break;case 2:e.mode=17;break;case 3:A.msg="invalid block type",e.mode=g}f>>>=2,C-=2;break;case 14:for(f>>>=7&C,C-=7&C;C<32;){if(0===Q)break A;Q--,f+=l[E++]<>>16^65535)){A.msg="invalid stored block lengths",e.mode=g;break}if(e.length=65535&f,f=0,C=0,e.mode=15,6===t)break A;case 15:e.mode=16;case 16:if(p=e.length){if(p>Q&&(p=Q),p>u&&(p=u),0===p)break A;n.arraySet(w,l,E,p,h),Q-=p,E+=p,u-=p,h+=p,e.length-=p;break}e.mode=B;break;case 17:for(;C<14;){if(0===Q)break A;Q--,f+=l[E++]<>>=5,C-=5,e.ndist=1+(31&f),f>>>=5,C-=5,e.ncode=4+(15&f),f>>>=4,C-=4,e.nlen>286||e.ndist>30){A.msg="too many length or distance symbols",e.mode=g;break}e.have=0,e.mode=18;case 18:for(;e.have>>=3,C-=3}for(;e.have<19;)e.lens[T[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,N={bits:e.lenbits},x=o(0,e.lens,0,19,e.lencode,0,e.work,N),e.lenbits=N.bits,x){A.msg="invalid code lengths set",e.mode=g;break}e.have=0,e.mode=19;case 19:for(;e.have>>16&255,b=65535&G,!((Y=G>>>24)<=C);){if(0===Q)break A;Q--,f+=l[E++]<>>=Y,C-=Y,e.lens[e.have++]=b;else{if(16===b){for(R=Y+2;C>>=Y,C-=Y,0===e.have){A.msg="invalid bit length repeat",e.mode=g;break}P=e.lens[e.have-1],p=3+(3&f),f>>>=2,C-=2}else if(17===b){for(R=Y+3;C>>=Y)),f>>>=3,C-=3}else{for(R=Y+7;C>>=Y)),f>>>=7,C-=7}if(e.have+p>e.nlen+e.ndist){A.msg="invalid bit length repeat",e.mode=g;break}for(;p--;)e.lens[e.have++]=P}}if(e.mode===g)break;if(0===e.lens[256]){A.msg="invalid code -- missing end-of-block",e.mode=g;break}if(e.lenbits=9,N={bits:e.lenbits},x=o(1,e.lens,0,e.nlen,e.lencode,0,e.work,N),e.lenbits=N.bits,x){A.msg="invalid literal/lengths set",e.mode=g;break}if(e.distbits=6,e.distcode=e.distdyn,N={bits:e.distbits},x=o(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,N),e.distbits=N.bits,x){A.msg="invalid distances set",e.mode=g;break}if(e.mode=20,6===t)break A;case 20:e.mode=21;case 21:if(Q>=6&&u>=258){A.next_out=h,A.avail_out=u,A.next_in=E,A.avail_in=Q,e.hold=f,e.bits=C,s(A,I),h=A.next_out,w=A.output,u=A.avail_out,E=A.next_in,l=A.input,Q=A.avail_in,f=e.hold,C=e.bits,e.mode===B&&(e.back=-1);break}for(e.back=0;m=(G=e.lencode[f&(1<>>16&255,b=65535&G,!((Y=G>>>24)<=C);){if(0===Q)break A;Q--,f+=l[E++]<>v)])>>>16&255,b=65535&G,!(v+(Y=G>>>24)<=C);){if(0===Q)break A;Q--,f+=l[E++]<>>=v,C-=v,e.back+=v}if(f>>>=Y,C-=Y,e.back+=Y,e.length=b,0===m){e.mode=26;break}if(32&m){e.back=-1,e.mode=B;break}if(64&m){A.msg="invalid literal/length code",e.mode=g;break}e.extra=15&m,e.mode=22;case 22:if(e.extra){for(R=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=23;case 23:for(;m=(G=e.distcode[f&(1<>>16&255,b=65535&G,!((Y=G>>>24)<=C);){if(0===Q)break A;Q--,f+=l[E++]<>v)])>>>16&255,b=65535&G,!(v+(Y=G>>>24)<=C);){if(0===Q)break A;Q--,f+=l[E++]<