quake2ts 0.0.293 → 0.0.294
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +1 -1
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +31 -11
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +31 -11
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +7 -7
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +31 -11
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +31 -11
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/playback.d.ts +5 -0
- package/packages/engine/dist/types/demo/playback.d.ts.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quake2ts",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.294",
|
|
4
4
|
"description": "Quake II re-release port to TypeScript with WebGL renderer - A complete game engine with physics, networking, and BSP rendering",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@8.15.7",
|
|
@@ -166,7 +166,7 @@ void main() {
|
|
|
166
166
|
v_texCoord = a_texCoord;
|
|
167
167
|
v_position = worldPos.xyz;
|
|
168
168
|
gl_Position = u_modelViewProjection * vec4(a_position, 1.0);
|
|
169
|
-
}`;var ud=class{constructor(){this._position=_e.create(),this._angles=_e.create(),this._bobAngles=_e.create(),this._bobOffset=_e.create(),this._kickAngles=_e.create(),this._rollAngle=0,this._fov=90,this._aspect=1,this._near=.1,this._far=1e3,this._viewMatrix=me.create(),this._projectionMatrix=me.create(),this._viewProjectionMatrix=me.create(),this._dirty=!0}get position(){return this._position}set position(e){_e.copy(this._position,e),this._dirty=!0}get angles(){return this._angles}set angles(e){_e.copy(this._angles,e),this._dirty=!0}get bobAngles(){return this._bobAngles}set bobAngles(e){_e.copy(this._bobAngles,e),this._dirty=!0}get kickAngles(){return this._kickAngles}set kickAngles(e){_e.copy(this._kickAngles,e),this._dirty=!0}get bobOffset(){return this._bobOffset}set bobOffset(e){_e.copy(this._bobOffset,e),this._dirty=!0}get rollAngle(){return this._rollAngle}set rollAngle(e){this._rollAngle=e,this._dirty=!0}get fov(){return this._fov}set fov(e){this._fov=e,this._dirty=!0}get aspect(){return this._aspect}set aspect(e){this._aspect=e,this._dirty=!0}get viewMatrix(){return this.updateMatrices(),this._viewMatrix}get projectionMatrix(){return this.updateMatrices(),this._projectionMatrix}get viewProjectionMatrix(){return this.updateMatrices(),this._viewProjectionMatrix}getViewmodelProjectionMatrix(e){let t=me.create();return me.perspective(t,e*hi,this._aspect,this._near,this._far),t}updateMatrices(){if(!this._dirty)return;me.perspective(this._projectionMatrix,this._fov*hi,this._aspect,this._near,this._far);let e=me.fromValues(0,-1,0,0,0,0,1,0,-1,0,0,0,0,0,0,1),t=this._angles[0]+this._bobAngles[0]+this._kickAngles[0],n=this._angles[1]+this._bobAngles[1]+this._kickAngles[1],i=this._angles[2]+this._bobAngles[2]+this._kickAngles[2]+this._rollAngle,r=t*hi,a=n*hi,s=i*hi,o=me.create();me.identity(o),me.rotateZ(o,o,-a),me.rotateY(o,o,-r),me.rotateX(o,o,-s);let l=me.create();me.multiply(l,e,o);let c=_e.add(_e.create(),this._position,this._bobOffset),u=_e.negate(_e.create(),c),m=_e.create();_e.transformMat4(m,u,o);let d=_e.fromValues(m[1]||0,m[2]||0,m[0]||0);me.copy(this._viewMatrix,l),this._viewMatrix[12]=d[0],this._viewMatrix[13]=d[1],this._viewMatrix[14]=d[2],me.multiply(this._viewProjectionMatrix,this._projectionMatrix,this._viewMatrix),this._dirty=!1}};var Jp=class{constructor(e){this.buffer=e,this.view=new DataView(e),this.offset=0}hasMore(){return this.offset<this.buffer.byteLength}readNextBlock(){if(this.offset+4>this.buffer.byteLength)return null;let e=this.view.getInt32(this.offset,!0);if(this.offset+=4,e<0||e>2097152)return console.warn(`DemoReader: Invalid block length ${e} at offset ${this.offset-4}`),null;if(this.offset+e>this.buffer.byteLength)return console.warn(`DemoReader: Incomplete block. Expected ${e} bytes, but only ${this.buffer.byteLength-this.offset} remain.`),null;let t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,{length:e,data:new $s(t)}}reset(){this.offset=0}getOffset(){return this.offset}},Qp=4,gu=0,vu=1,ey=2;function Nn(e){let t=e.length;for(;--t>=0;)e[t]=0}var ty=0,dd=1,ny=2,iy=3,ry=258,ao=29,Ri=256,Ai=Ri+1+ao,Mn=30,so=19,md=2*Ai+1,Qt=15,Ns=16,ay=7,oo=256,hd=16,fd=17,_d=18,Ys=new Uint8Array([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]),Nr=new Uint8Array([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]),sy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),gd=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),oy=512,St=new Array((Ai+2)*2);Nn(St);var vi=new Array(Mn*2);Nn(vi);var Si=new Array(oy);Nn(Si);var ki=new Array(ry-iy+1);Nn(ki);var co=new Array(ao);Nn(co);var zr=new Array(Mn);Nn(zr);function zs(e,t,n,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}var vd,pd,yd;function Os(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var wd=e=>e<256?Si[e]:Si[256+(e>>>7)],Ei=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Ue=(e,t,n)=>{e.bi_valid>Ns-n?(e.bi_buf|=t<<e.bi_valid&65535,Ei(e,e.bi_buf),e.bi_buf=t>>Ns-e.bi_valid,e.bi_valid+=n-Ns):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},st=(e,t,n)=>{Ue(e,n[t*2],n[t*2+1])},Ad=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},cy=e=>{e.bi_valid===16?(Ei(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},ly=(e,t)=>{let n=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,m,d,f,g,p=0;for(d=0;d<=Qt;d++)e.bl_count[d]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<md;c++)u=e.heap[c],d=n[n[u*2+1]*2+1]+1,d>l&&(d=l,p++),n[u*2+1]=d,!(u>i)&&(e.bl_count[d]++,f=0,u>=o&&(f=s[u-o]),g=n[u*2],e.opt_len+=g*(d+f),a&&(e.static_len+=g*(r[u*2+1]+f)));if(p!==0){do{for(d=l-1;e.bl_count[d]===0;)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[l]--,p-=2}while(p>0);for(d=l;d!==0;d--)for(u=e.bl_count[d];u!==0;)m=e.heap[--c],!(m>i)&&(n[m*2+1]!==d&&(e.opt_len+=(d-n[m*2+1])*n[m*2],n[m*2+1]=d),u--)}},Sd=(e,t,n)=>{let i=new Array(Qt+1),r=0,a,s;for(a=1;a<=Qt;a++)r=r+n[a-1]<<1,i[a]=r;for(s=0;s<=t;s++){let o=e[s*2+1];o!==0&&(e[s*2]=Ad(i[o]++,o))}},uy=()=>{let e,t,n,i,r,a=new Array(Qt+1);for(n=0,i=0;i<ao-1;i++)for(co[i]=n,e=0;e<1<<Ys[i];e++)ki[n++]=i;for(ki[n-1]=i,r=0,i=0;i<16;i++)for(zr[i]=r,e=0;e<1<<Nr[i];e++)Si[r++]=i;for(r>>=7;i<Mn;i++)for(zr[i]=r<<7,e=0;e<1<<Nr[i]-7;e++)Si[256+r++]=i;for(t=0;t<=Qt;t++)a[t]=0;for(e=0;e<=143;)St[e*2+1]=8,e++,a[8]++;for(;e<=255;)St[e*2+1]=9,e++,a[9]++;for(;e<=279;)St[e*2+1]=7,e++,a[7]++;for(;e<=287;)St[e*2+1]=8,e++,a[8]++;for(Sd(St,Ai+1,a),e=0;e<Mn;e++)vi[e*2+1]=5,vi[e*2]=Ad(e,5);vd=new zs(St,Ys,Ri+1,Ai,Qt),pd=new zs(vi,Nr,0,Mn,Qt),yd=new zs(new Array(0),sy,0,so,ay)},kd=e=>{let t;for(t=0;t<Ai;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Mn;t++)e.dyn_dtree[t*2]=0;for(t=0;t<so;t++)e.bl_tree[t*2]=0;e.dyn_ltree[oo*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Ed=e=>{e.bi_valid>8?Ei(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},pu=(e,t,n,i)=>{let r=t*2,a=n*2;return e[r]<e[a]||e[r]===e[a]&&i[t]<=i[n]},Is=(e,t,n)=>{let i=e.heap[n],r=n<<1;for(;r<=e.heap_len&&(r<e.heap_len&&pu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!pu(t,i,e.heap[r],e.depth));)e.heap[n]=e.heap[r],n=r,r<<=1;e.heap[n]=i},yu=(e,t,n)=>{let i,r,a=0,s,o;if(e.sym_next!==0)do i=e.pending_buf[e.sym_buf+a++]&255,i+=(e.pending_buf[e.sym_buf+a++]&255)<<8,r=e.pending_buf[e.sym_buf+a++],i===0?st(e,r,t):(s=ki[r],st(e,s+Ri+1,t),o=Ys[s],o!==0&&(r-=co[s],Ue(e,r,o)),i--,s=wd(i),st(e,s,n),o=Nr[s],o!==0&&(i-=zr[s],Ue(e,i,o)));while(a<e.sym_next);st(e,oo,t)},qs=(e,t)=>{let n=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,a=t.stat_desc.elems,s,o,l=-1,c;for(e.heap_len=0,e.heap_max=md,s=0;s<a;s++)n[s*2]!==0?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):n[s*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=i[c*2+1]);for(t.max_code=l,s=e.heap_len>>1;s>=1;s--)Is(e,n,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Is(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,n[c*2]=n[s*2]+n[o*2],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,n[s*2+1]=n[o*2+1]=c,e.heap[1]=c++,Is(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ly(e,t),Sd(n,l,e.bl_count)},wu=(e,t,n)=>{let i,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),t[(n+1)*2+1]=65535,i=0;i<=n;i++)a=s,s=t[(i+1)*2+1],!(++o<l&&a===s)&&(o<c?e.bl_tree[a*2]+=o:a!==0?(a!==r&&e.bl_tree[a*2]++,e.bl_tree[hd*2]++):o<=10?e.bl_tree[fd*2]++:e.bl_tree[_d*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))},Au=(e,t,n)=>{let i,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),i=0;i<=n;i++)if(a=s,s=t[(i+1)*2+1],!(++o<l&&a===s)){if(o<c)do st(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(st(e,a,e.bl_tree),o--),st(e,hd,e.bl_tree),Ue(e,o-3,2)):o<=10?(st(e,fd,e.bl_tree),Ue(e,o-3,3)):(st(e,_d,e.bl_tree),Ue(e,o-11,7));o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4)}},dy=e=>{let t;for(wu(e,e.dyn_ltree,e.l_desc.max_code),wu(e,e.dyn_dtree,e.d_desc.max_code),qs(e,e.bl_desc),t=so-1;t>=3&&e.bl_tree[gd[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},my=(e,t,n,i)=>{let r;for(Ue(e,t-257,5),Ue(e,n-1,5),Ue(e,i-4,4),r=0;r<i;r++)Ue(e,e.bl_tree[gd[r]*2+1],3);Au(e,e.dyn_ltree,t-1),Au(e,e.dyn_dtree,n-1)},hy=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return gu;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return vu;for(n=32;n<Ri;n++)if(e.dyn_ltree[n*2]!==0)return vu;return gu},Su=!1,fy=e=>{Su||(uy(),Su=!0),e.l_desc=new Os(e.dyn_ltree,vd),e.d_desc=new Os(e.dyn_dtree,pd),e.bl_desc=new Os(e.bl_tree,yd),e.bi_buf=0,e.bi_valid=0,kd(e)},bd=(e,t,n,i)=>{Ue(e,(ty<<1)+(i?1:0),3),Ed(e),Ei(e,n),Ei(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},_y=e=>{Ue(e,dd<<1,3),st(e,oo,St),cy(e)},gy=(e,t,n,i)=>{let r,a,s=0;e.level>0?(e.strm.data_type===ey&&(e.strm.data_type=hy(e)),qs(e,e.l_desc),qs(e,e.d_desc),s=dy(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=n+5,n+4<=r&&t!==-1?bd(e,t,n,i):e.strategy===Qp||a===r?(Ue(e,(dd<<1)+(i?1:0),3),yu(e,St,vi)):(Ue(e,(ny<<1)+(i?1:0),3),my(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),yu(e,e.dyn_ltree,e.dyn_dtree)),kd(e),i&&Ed(e)},vy=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(ki[n]+Ri+1)*2]++,e.dyn_dtree[wd(t)*2]++),e.sym_next===e.sym_end),py=fy,yy=bd,wy=gy,Ay=vy,Sy=_y,ky={_tr_init:py,_tr_stored_block:yy,_tr_flush_block:wy,_tr_tally:Ay,_tr_align:Sy},Ey=(e,t,n,i)=>{let r=e&65535|0,a=e>>>16&65535|0,s=0;for(;n!==0;){s=n>2e3?2e3:n,n-=s;do r=r+t[i++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0},bi=Ey,by=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},xy=new Uint32Array(by()),Ty=(e,t,n,i)=>{let r=xy,a=i+n;e^=-1;for(let s=i;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1},Te=Ty,nn={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},sn={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:My,_tr_stored_block:js,_tr_flush_block:Ry,_tr_tally:Ct,_tr_align:Ly}=ky,{Z_NO_FLUSH:Pt,Z_PARTIAL_FLUSH:Ny,Z_FULL_FLUSH:zy,Z_FINISH:je,Z_BLOCK:ku,Z_OK:Ne,Z_STREAM_END:Eu,Z_STREAM_ERROR:ot,Z_DATA_ERROR:Oy,Z_BUF_ERROR:Cs,Z_DEFAULT_COMPRESSION:Iy,Z_FILTERED:Cy,Z_HUFFMAN_ONLY:xr,Z_RLE:Py,Z_FIXED:Dy,Z_DEFAULT_STRATEGY:Fy,Z_UNKNOWN:Uy,Z_DEFLATED:Kr}=sn,By=9,Gy=15,Hy=8,Vy=29,Wy=256,Zs=Wy+1+Vy,Ky=30,$y=19,Xy=2*Zs+1,Yy=15,te=3,It=258,ct=It+te+1,qy=32,Rn=42,lo=57,Js=69,Qs=73,eo=91,to=103,en=113,_i=666,Oe=1,zn=2,rn=3,On=4,jy=3,tn=(e,t)=>(e.msg=nn[t],t),bu=e=>e*2-(e>4?9:0),Ot=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Zy=e=>{let t,n,i,r=e.w_size;t=e.hash_size,i=t;do n=e.head[--i],e.head[i]=n>=r?n-r:0;while(--t);t=r,i=t;do n=e.prev[--i],e.prev[i]=n>=r?n-r:0;while(--t)},Jy=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,Dt=Jy,He=e=>{let t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Ve=(e,t)=>{Ry(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,He(e.strm)},re=(e,t)=>{e.pending_buf[e.pending++]=t},fi=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},no=(e,t,n,i)=>{let r=e.avail_in;return r>i&&(r=i),r===0?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),e.state.wrap===1?e.adler=bi(e.adler,t,r,n):e.state.wrap===2&&(e.adler=Te(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},xd=(e,t)=>{let n=e.max_chain_length,i=e.strstart,r,a,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-ct?e.strstart-(e.w_size-ct):0,c=e.window,u=e.w_mask,m=e.prev,d=e.strstart+It,f=c[i+s-1],g=c[i+s];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(c[r+s]!==g||c[r+s-1]!==f||c[r]!==c[i]||c[++r]!==c[i+1])){i+=2,r++;do;while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&i<d);if(a=It-(d-i),i=d-It,a>s){if(e.match_start=t,s=a,a>=o)break;f=c[i+s-1],g=c[i+s]}}while((t=m[t&u])>l&&--n!==0);return s<=e.lookahead?s:e.lookahead},Ln=e=>{let t=e.w_size,n,i,r;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ct)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Zy(e),i+=t),e.strm.avail_in===0)break;if(n=no(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=n,e.lookahead+e.insert>=te)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=Dt(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=Dt(e,e.ins_h,e.window[r+te-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<te)););}while(e.lookahead<ct&&e.strm.avail_in!==0)},Td=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,i,r,a,s=0,o=e.strm.avail_in;do{if(i=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,r=e.strstart-e.block_start,i>r+e.strm.avail_in&&(i=r+e.strm.avail_in),i>a&&(i=a),i<n&&(i===0&&t!==je||t===Pt||i!==r+e.strm.avail_in)))break;s=t===je&&i===r+e.strm.avail_in?1:0,js(e,0,0,s),e.pending_buf[e.pending-4]=i,e.pending_buf[e.pending-3]=i>>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,He(e.strm),r&&(r>i&&(r=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,i-=r),i&&(no(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(s===0);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?On:t!==Pt&&t!==je&&e.strm.avail_in===0&&e.strstart===e.block_start?zn:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(no(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,r=e.strstart-e.block_start,(r>=n||(r||t===je)&&t!==Pt&&e.strm.avail_in===0&&r<=a)&&(i=r>a?a:r,s=t===je&&e.strm.avail_in===0&&i===r?1:0,js(e,e.block_start,i,s),e.block_start+=i,He(e.strm)),s?rn:Oe)},Ps=(e,t)=>{let n,i;for(;;){if(e.lookahead<ct){if(Ln(e),e.lookahead<ct&&t===Pt)return Oe;if(e.lookahead===0)break}if(n=0,e.lookahead>=te&&(e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-ct&&(e.match_length=xd(e,n)),e.match_length>=te)if(i=Ct(e,e.strstart-e.match_start,e.match_length-te),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=te){e.match_length--;do e.strstart++,e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+1]);else i=Ct(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Ve(e,!1),e.strm.avail_out===0))return Oe}return e.insert=e.strstart<te-1?e.strstart:te-1,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn},bn=(e,t)=>{let n,i,r;for(;;){if(e.lookahead<ct){if(Ln(e),e.lookahead<ct&&t===Pt)return Oe;if(e.lookahead===0)break}if(n=0,e.lookahead>=te&&(e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=te-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ct&&(e.match_length=xd(e,n),e.match_length<=5&&(e.strategy===Cy||e.match_length===te&&e.strstart-e.match_start>4096)&&(e.match_length=te-1)),e.prev_length>=te&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-te,i=Ct(e,e.strstart-1-e.prev_match,e.prev_length-te),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=te-1,e.strstart++,i&&(Ve(e,!1),e.strm.avail_out===0))return Oe}else if(e.match_available){if(i=Ct(e,0,e.window[e.strstart-1]),i&&Ve(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Oe}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Ct(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<te-1?e.strstart:te-1,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn},Qy=(e,t)=>{let n,i,r,a,s=e.window;for(;;){if(e.lookahead<=It){if(Ln(e),e.lookahead<=It&&t===Pt)return Oe;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=te&&e.strstart>0&&(r=e.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){a=e.strstart+It;do;while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&r<a);e.match_length=It-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=te?(n=Ct(e,1,e.match_length-te),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Ct(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Ve(e,!1),e.strm.avail_out===0))return Oe}return e.insert=0,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn},ew=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Ln(e),e.lookahead===0)){if(t===Pt)return Oe;break}if(e.match_length=0,n=Ct(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Ve(e,!1),e.strm.avail_out===0))return Oe}return e.insert=0,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn};function at(e,t,n,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=i,this.func=r}var gi=[new at(0,0,0,0,Td),new at(4,4,8,4,Ps),new at(4,5,16,8,Ps),new at(4,6,32,32,Ps),new at(4,4,16,16,bn),new at(8,16,32,32,bn),new at(8,16,128,128,bn),new at(8,32,128,256,bn),new at(32,128,258,1024,bn),new at(32,258,258,4096,bn)],tw=e=>{e.window_size=2*e.w_size,Ot(e.head),e.max_lazy_match=gi[e.level].max_lazy,e.good_match=gi[e.level].good_length,e.nice_match=gi[e.level].nice_length,e.max_chain_length=gi[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=te-1,e.match_available=0,e.ins_h=0};function nw(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Kr,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Xy*2),this.dyn_dtree=new Uint16Array((2*Ky+1)*2),this.bl_tree=new Uint16Array((2*$y+1)*2),Ot(this.dyn_ltree),Ot(this.dyn_dtree),Ot(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Yy+1),this.heap=new Uint16Array(2*Zs+1),Ot(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Zs+1),Ot(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Li=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==Rn&&t.status!==lo&&t.status!==Js&&t.status!==Qs&&t.status!==eo&&t.status!==to&&t.status!==en&&t.status!==_i?1:0},Md=e=>{if(Li(e))return tn(e,ot);e.total_in=e.total_out=0,e.data_type=Uy;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?lo:t.wrap?Rn:en,e.adler=t.wrap===2?0:1,t.last_flush=-2,My(t),Ne},Rd=e=>{let t=Md(e);return t===Ne&&tw(e.state),t},iw=(e,t)=>Li(e)||e.state.wrap!==2?ot:(e.state.gzhead=t,Ne),Ld=(e,t,n,i,r,a)=>{if(!e)return ot;let s=1;if(t===Iy&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>By||n!==Kr||i<8||i>15||t<0||t>9||a<0||a>Dy||i===8&&s!==1)return tn(e,ot);i===8&&(i=9);let o=new nw;return e.state=o,o.strm=e,o.status=Rn,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+te-1)/te),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=t,o.strategy=a,o.method=n,Rd(e)},rw=(e,t)=>Ld(e,t,Kr,Gy,Hy,Fy),aw=(e,t)=>{if(Li(e)||t>ku||t<0)return e?tn(e,ot):ot;let n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===_i&&t!==je)return tn(e,e.avail_out===0?Cs:ot);let i=n.last_flush;if(n.last_flush=t,n.pending!==0){if(He(e),e.avail_out===0)return n.last_flush=-1,Ne}else if(e.avail_in===0&&bu(t)<=bu(i)&&t!==je)return tn(e,Cs);if(n.status===_i&&e.avail_in!==0)return tn(e,Cs);if(n.status===Rn&&n.wrap===0&&(n.status=en),n.status===Rn){let r=Kr+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=xr||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,r|=a<<6,n.strstart!==0&&(r|=qy),r+=31-r%31,fi(n,r),n.strstart!==0&&(fi(n,e.adler>>>16),fi(n,e.adler&65535)),e.adler=1,n.status=en,He(e),n.pending!==0)return n.last_flush=-1,Ne}if(n.status===lo){if(e.adler=0,re(n,31),re(n,139),re(n,8),n.gzhead)re(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),re(n,n.gzhead.time&255),re(n,n.gzhead.time>>8&255),re(n,n.gzhead.time>>16&255),re(n,n.gzhead.time>>24&255),re(n,n.level===9?2:n.strategy>=xr||n.level<2?4:0),re(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(re(n,n.gzhead.extra.length&255),re(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Te(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Js;else if(re(n,0),re(n,0),re(n,0),re(n,0),re(n,0),re(n,n.level===9?2:n.strategy>=xr||n.level<2?4:0),re(n,jy),n.status=en,He(e),n.pending!==0)return n.last_flush=-1,Ne}if(n.status===Js){if(n.gzhead.extra){let r=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let o=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex+=o,He(e),n.pending!==0)return n.last_flush=-1,Ne;r=0,a-=o}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex=0}n.status=Qs}if(n.status===Qs){if(n.gzhead.name){let r=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),He(e),n.pending!==0)return n.last_flush=-1,Ne;r=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,re(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex=0}n.status=eo}if(n.status===eo){if(n.gzhead.comment){let r=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),He(e),n.pending!==0)return n.last_flush=-1,Ne;r=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,re(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r))}n.status=to}if(n.status===to){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(He(e),n.pending!==0))return n.last_flush=-1,Ne;re(n,e.adler&255),re(n,e.adler>>8&255),e.adler=0}if(n.status=en,He(e),n.pending!==0)return n.last_flush=-1,Ne}if(e.avail_in!==0||n.lookahead!==0||t!==Pt&&n.status!==_i){let r=n.level===0?Td(n,t):n.strategy===xr?ew(n,t):n.strategy===Py?Qy(n,t):gi[n.level].func(n,t);if((r===rn||r===On)&&(n.status=_i),r===Oe||r===rn)return e.avail_out===0&&(n.last_flush=-1),Ne;if(r===zn&&(t===Ny?Ly(n):t!==ku&&(js(n,0,0,!1),t===zy&&(Ot(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),He(e),e.avail_out===0))return n.last_flush=-1,Ne}return t!==je?Ne:n.wrap<=0?Eu:(n.wrap===2?(re(n,e.adler&255),re(n,e.adler>>8&255),re(n,e.adler>>16&255),re(n,e.adler>>24&255),re(n,e.total_in&255),re(n,e.total_in>>8&255),re(n,e.total_in>>16&255),re(n,e.total_in>>24&255)):(fi(n,e.adler>>>16),fi(n,e.adler&65535)),He(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Ne:Eu)},sw=e=>{if(Li(e))return ot;let t=e.state.status;return e.state=null,t===en?tn(e,Oy):Ne},ow=(e,t)=>{let n=t.length;if(Li(e))return ot;let i=e.state,r=i.wrap;if(r===2||r===1&&i.status!==Rn||i.lookahead)return ot;if(r===1&&(e.adler=bi(e.adler,t,n,0)),i.wrap=0,n>=i.w_size){r===0&&(Ot(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(n-i.w_size,n),0),t=l,n=i.w_size}let a=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Ln(i);i.lookahead>=te;){let l=i.strstart,c=i.lookahead-(te-1);do i.ins_h=Dt(i,i.ins_h,i.window[l+te-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=te-1,Ln(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=te-1,i.match_available=0,e.next_in=s,e.input=o,e.avail_in=a,i.wrap=r,Ne},cw=rw,lw=Ld,uw=Rd,dw=Md,mw=iw,hw=aw,fw=sw,_w=ow,gw="pako deflate (from Nodeca project)",pi={deflateInit:cw,deflateInit2:lw,deflateReset:uw,deflateResetKeep:dw,deflateSetHeader:mw,deflate:hw,deflateEnd:fw,deflateSetDictionary:_w,deflateInfo:gw},vw=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),pw=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(let i in n)vw(n,i)&&(e[i]=n[i])}}return e},yw=e=>{let t=0;for(let i=0,r=e.length;i<r;i++)t+=e[i].length;let n=new Uint8Array(t);for(let i=0,r=0,a=e.length;i<a;i++){let s=e[i];n.set(s,r),r+=s.length}return n},$r={assign:pw,flattenChunks:yw},Nd=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Nd=!1}var xi=new Uint8Array(256);for(let e=0;e<256;e++)xi[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;xi[254]=xi[254]=1;var ww=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,i,r,a,s=e.length,o=0;for(r=0;r<s;r++)n=e.charCodeAt(r),(n&64512)===55296&&r+1<s&&(i=e.charCodeAt(r+1),(i&64512)===56320&&(n=65536+(n-55296<<10)+(i-56320),r++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(o),a=0,r=0;a<o;r++)n=e.charCodeAt(r),(n&64512)===55296&&r+1<s&&(i=e.charCodeAt(r+1),(i&64512)===56320&&(n=65536+(n-55296<<10)+(i-56320),r++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t},Aw=(e,t)=>{if(t<65534&&e.subarray&&Nd)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n},Sw=(e,t)=>{let n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let i,r,a=new Array(n*2);for(r=0,i=0;i<n;){let s=e[i++];if(s<128){a[r++]=s;continue}let o=xi[s];if(o>4){a[r++]=65533,i+=o-1;continue}for(s&=o===2?31:o===3?15:7;o>1&&i<n;)s=s<<6|e[i++]&63,o--;if(o>1){a[r++]=65533;continue}s<65536?a[r++]=s:(s-=65536,a[r++]=55296|s>>10&1023,a[r++]=56320|s&1023)}return Aw(a,r)},kw=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+xi[e[n]]>t?n:t},Ti={string2buf:ww,buf2string:Sw,utf8border:kw};function Ew(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zd=Ew,Od=Object.prototype.toString,{Z_NO_FLUSH:bw,Z_SYNC_FLUSH:xw,Z_FULL_FLUSH:Tw,Z_FINISH:Mw,Z_OK:Or,Z_STREAM_END:Rw,Z_DEFAULT_COMPRESSION:Lw,Z_DEFAULT_STRATEGY:Nw,Z_DEFLATED:zw}=sn;function Ni(e){this.options=$r.assign({level:Lw,method:zw,chunkSize:16384,windowBits:15,memLevel:8,strategy:Nw},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zd,this.strm.avail_out=0;let n=pi.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Or)throw new Error(nn[n]);if(t.header&&pi.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=Ti.string2buf(t.dictionary):Od.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,n=pi.deflateSetDictionary(this.strm,i),n!==Or)throw new Error(nn[n]);this._dict_set=!0}}Ni.prototype.push=function(e,t){let n=this.strm,i=this.options.chunkSize,r,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?Mw:bw,typeof e=="string"?n.input=Ti.string2buf(e):Od.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),(a===xw||a===Tw)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(r=pi.deflate(n,a),r===Rw)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=pi.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Or;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Ni.prototype.onData=function(e){this.chunks.push(e)};Ni.prototype.onEnd=function(e){e===Or&&(this.result=$r.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function uo(e,t){let n=new Ni(t);if(n.push(e,!0),n.err)throw n.msg||nn[n.err];return n.result}function Ow(e,t){return t=t||{},t.raw=!0,uo(e,t)}function Iw(e,t){return t=t||{},t.gzip=!0,uo(e,t)}var Cw=Ni,Pw=uo,Dw=Ow,Fw=Iw,Uw=sn,Bw={Deflate:Cw,deflate:Pw,deflateRaw:Dw,gzip:Fw,constants:Uw},Tr=16209,Gw=16191,Hw=function(t,n){let i,r,a,s,o,l,c,u,m,d,f,g,p,v,w,L,k,y,E,x,T,O,b,S,N=t.state;i=t.next_in,b=t.input,r=i+(t.avail_in-5),a=t.next_out,S=t.output,s=a-(n-t.avail_out),o=a+(t.avail_out-257),l=N.dmax,c=N.wsize,u=N.whave,m=N.wnext,d=N.window,f=N.hold,g=N.bits,p=N.lencode,v=N.distcode,w=(1<<N.lenbits)-1,L=(1<<N.distbits)-1;e:do{g<15&&(f+=b[i++]<<g,g+=8,f+=b[i++]<<g,g+=8),k=p[f&w];t:for(;;){if(y=k>>>24,f>>>=y,g-=y,y=k>>>16&255,y===0)S[a++]=k&65535;else if(y&16){E=k&65535,y&=15,y&&(g<y&&(f+=b[i++]<<g,g+=8),E+=f&(1<<y)-1,f>>>=y,g-=y),g<15&&(f+=b[i++]<<g,g+=8,f+=b[i++]<<g,g+=8),k=v[f&L];n:for(;;){if(y=k>>>24,f>>>=y,g-=y,y=k>>>16&255,y&16){if(x=k&65535,y&=15,g<y&&(f+=b[i++]<<g,g+=8,g<y&&(f+=b[i++]<<g,g+=8)),x+=f&(1<<y)-1,x>l){t.msg="invalid distance too far back",N.mode=Tr;break e}if(f>>>=y,g-=y,y=a-s,x>y){if(y=x-y,y>u&&N.sane){t.msg="invalid distance too far back",N.mode=Tr;break e}if(T=0,O=d,m===0){if(T+=c-y,y<E){E-=y;do S[a++]=d[T++];while(--y);T=a-x,O=S}}else if(m<y){if(T+=c+m-y,y-=m,y<E){E-=y;do S[a++]=d[T++];while(--y);if(T=0,m<E){y=m,E-=y;do S[a++]=d[T++];while(--y);T=a-x,O=S}}}else if(T+=m-y,y<E){E-=y;do S[a++]=d[T++];while(--y);T=a-x,O=S}for(;E>2;)S[a++]=O[T++],S[a++]=O[T++],S[a++]=O[T++],E-=3;E&&(S[a++]=O[T++],E>1&&(S[a++]=O[T++]))}else{T=a-x;do S[a++]=S[T++],S[a++]=S[T++],S[a++]=S[T++],E-=3;while(E>2);E&&(S[a++]=S[T++],E>1&&(S[a++]=S[T++]))}}else if((y&64)===0){k=v[(k&65535)+(f&(1<<y)-1)];continue n}else{t.msg="invalid distance code",N.mode=Tr;break e}break}}else if((y&64)===0){k=p[(k&65535)+(f&(1<<y)-1)];continue t}else if(y&32){N.mode=Gw;break e}else{t.msg="invalid literal/length code",N.mode=Tr;break e}break}}while(i<r&&a<o);E=g>>3,i-=E,g-=E<<3,f&=(1<<g)-1,t.next_in=i,t.next_out=a,t.avail_in=i<r?5+(r-i):5-(i-r),t.avail_out=a<o?257+(o-a):257-(a-o),N.hold=f,N.bits=g},xn=15,xu=852,Tu=592,Mu=0,Ds=1,Ru=2,Vw=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ww=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Kw=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),$w=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Xw=(e,t,n,i,r,a,s,o)=>{let l=o.bits,c=0,u=0,m=0,d=0,f=0,g=0,p=0,v=0,w=0,L=0,k,y,E,x,T,O=null,b,S=new Uint16Array(xn+1),N=new Uint16Array(xn+1),Z=null,ce,Q,M;for(c=0;c<=xn;c++)S[c]=0;for(u=0;u<i;u++)S[t[n+u]]++;for(f=l,d=xn;d>=1&&S[d]===0;d--);if(f>d&&(f=d),d===0)return r[a++]=1<<24|64<<16|0,r[a++]=1<<24|64<<16|0,o.bits=1,0;for(m=1;m<d&&S[m]===0;m++);for(f<m&&(f=m),v=1,c=1;c<=xn;c++)if(v<<=1,v-=S[c],v<0)return-1;if(v>0&&(e===Mu||d!==1))return-1;for(N[1]=0,c=1;c<xn;c++)N[c+1]=N[c]+S[c];for(u=0;u<i;u++)t[n+u]!==0&&(s[N[t[n+u]]++]=u);if(e===Mu?(O=Z=s,b=20):e===Ds?(O=Vw,Z=Ww,b=257):(O=Kw,Z=$w,b=0),L=0,u=0,c=m,T=a,g=f,p=0,E=-1,w=1<<f,x=w-1,e===Ds&&w>xu||e===Ru&&w>Tu)return 1;for(;;){ce=c-p,s[u]+1<b?(Q=0,M=s[u]):s[u]>=b?(Q=Z[s[u]-b],M=O[s[u]-b]):(Q=96,M=0),k=1<<c-p,y=1<<g,m=y;do y-=k,r[T+(L>>p)+y]=ce<<24|Q<<16|M|0;while(y!==0);for(k=1<<c-1;L&k;)k>>=1;if(k!==0?(L&=k-1,L+=k):L=0,u++,--S[c]===0){if(c===d)break;c=t[n+s[u]]}if(c>f&&(L&x)!==E){for(p===0&&(p=f),T+=m,g=c-p,v=1<<g;g+p<d&&(v-=S[g+p],!(v<=0));)g++,v<<=1;if(w+=1<<g,e===Ds&&w>xu||e===Ru&&w>Tu)return 1;E=L&x,r[E]=f<<24|g<<16|T-a|0}}return L!==0&&(r[T+L]=c-p<<24|64<<16|0),o.bits=f,0},yi=Xw,Yw=0,Id=1,Cd=2,{Z_FINISH:Lu,Z_BLOCK:qw,Z_TREES:Mr,Z_OK:an,Z_STREAM_END:jw,Z_NEED_DICT:Zw,Z_STREAM_ERROR:Ze,Z_DATA_ERROR:Pd,Z_MEM_ERROR:Dd,Z_BUF_ERROR:Jw,Z_DEFLATED:Nu}=sn,Xr=16180,zu=16181,Ou=16182,Iu=16183,Cu=16184,Pu=16185,Du=16186,Fu=16187,Uu=16188,Bu=16189,Ir=16190,At=16191,Fs=16192,Gu=16193,Us=16194,Hu=16195,Vu=16196,Wu=16197,Ku=16198,Rr=16199,Lr=16200,$u=16201,Xu=16202,Yu=16203,qu=16204,ju=16205,Bs=16206,Zu=16207,Ju=16208,ge=16209,Fd=16210,Ud=16211,Qw=852,eA=592,tA=15,nA=tA,Qu=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function iA(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var on=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<Xr||t.mode>Ud?1:0},Bd=e=>{if(on(e))return Ze;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Xr,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Qw),t.distcode=t.distdyn=new Int32Array(eA),t.sane=1,t.back=-1,an},Gd=e=>{if(on(e))return Ze;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Bd(e)},Hd=(e,t)=>{let n;if(on(e))return Ze;let i=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Ze:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=n,i.wbits=t,Gd(e))},Vd=(e,t)=>{if(!e)return Ze;let n=new iA;e.state=n,n.strm=e,n.window=null,n.mode=Xr;let i=Hd(e,t);return i!==an&&(e.state=null),i},rA=e=>Vd(e,nA),ed=!0,Gs,Hs,aA=e=>{if(ed){Gs=new Int32Array(512),Hs=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(yi(Id,e.lens,0,288,Gs,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;yi(Cd,e.lens,0,32,Hs,0,e.work,{bits:5}),ed=!1}e.lencode=Gs,e.lenbits=9,e.distcode=Hs,e.distbits=5},Wd=(e,t,n,i)=>{let r,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(t.subarray(n-i,n-i+r),a.wnext),i-=r,i?(a.window.set(t.subarray(n-i,n),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0},sA=(e,t)=>{let n,i,r,a,s,o,l,c,u,m,d,f,g,p,v=0,w,L,k,y,E,x,T,O,b=new Uint8Array(4),S,N,Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(on(e)||!e.output||!e.input&&e.avail_in!==0)return Ze;n=e.state,n.mode===At&&(n.mode=Fs),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,i=e.input,o=e.avail_in,c=n.hold,u=n.bits,m=o,d=l,O=an;e:for(;;)switch(n.mode){case Xr:if(n.wrap===0){n.mode=Fs;break}for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0),c=0,u=0,n.mode=zu;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=ge;break}if((c&15)!==Nu){e.msg="unknown compression method",n.mode=ge;break}if(c>>>=4,u-=4,T=(c&15)+8,n.wbits===0&&(n.wbits=T),T>15||T>n.wbits){e.msg="invalid window size",n.mode=ge;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?Bu:At,c=0,u=0;break;case zu:for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==Nu){e.msg="unknown compression method",n.mode=ge;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=ge;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0)),c=0,u=0,n.mode=Ou;case Ou:for(;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,b[2]=c>>>16&255,b[3]=c>>>24&255,n.check=Te(n.check,b,4,0)),c=0,u=0,n.mode=Iu;case Iu:for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0)),c=0,u=0,n.mode=Cu;case Cu:if(n.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=Pu;case Pu:if(n.flags&1024&&(f=n.length,f>o&&(f=o),f&&(n.head&&(T=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(a,a+f),T)),n.flags&512&&n.wrap&4&&(n.check=Te(n.check,i,f,a)),o-=f,a+=f,n.length-=f),n.length))break e;n.length=0,n.mode=Du;case Du:if(n.flags&2048){if(o===0)break e;f=0;do T=i[a+f++],n.head&&T&&n.length<65536&&(n.head.name+=String.fromCharCode(T));while(T&&f<o);if(n.flags&512&&n.wrap&4&&(n.check=Te(n.check,i,f,a)),o-=f,a+=f,T)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Fu;case Fu:if(n.flags&4096){if(o===0)break e;f=0;do T=i[a+f++],n.head&&T&&n.length<65536&&(n.head.comment+=String.fromCharCode(T));while(T&&f<o);if(n.flags&512&&n.wrap&4&&(n.check=Te(n.check,i,f,a)),o-=f,a+=f,T)break e}else n.head&&(n.head.comment=null);n.mode=Uu;case Uu:if(n.flags&512){for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=ge;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=At;break;case Bu:for(;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}e.adler=n.check=Qu(c),c=0,u=0,n.mode=Ir;case Ir:if(n.havedict===0)return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,Zw;e.adler=n.check=1,n.mode=At;case At:if(t===qw||t===Mr)break e;case Fs:if(n.last){c>>>=u&7,u-=u&7,n.mode=Bs;break}for(;u<3;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=Gu;break;case 1:if(aA(n),n.mode=Rr,t===Mr){c>>>=2,u-=2;break e}break;case 2:n.mode=Vu;break;case 3:e.msg="invalid block type",n.mode=ge}c>>>=2,u-=2;break;case Gu:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=ge;break}if(n.length=c&65535,c=0,u=0,n.mode=Us,t===Mr)break e;case Us:n.mode=Hu;case Hu:if(f=n.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;r.set(i.subarray(a,a+f),s),o-=f,a+=f,l-=f,s+=f,n.length-=f;break}n.mode=At;break;case Vu:for(;u<14;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ge;break}n.have=0,n.mode=Wu;case Wu:for(;n.have<n.ncode;){for(;u<3;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.lens[Z[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},O=yi(Yw,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,O){e.msg="invalid code lengths set",n.mode=ge;break}n.have=0,n.mode=Ku;case Ku:for(;n.have<n.nlen+n.ndist;){for(;v=n.lencode[c&(1<<n.lenbits)-1],w=v>>>24,L=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(k<16)c>>>=w,u-=w,n.lens[n.have++]=k;else{if(k===16){for(N=w+2;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(c>>>=w,u-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=ge;break}T=n.lens[n.have-1],f=3+(c&3),c>>>=2,u-=2}else if(k===17){for(N=w+3;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=w,u-=w,T=0,f=3+(c&7),c>>>=3,u-=3}else{for(N=w+7;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=w,u-=w,T=0,f=11+(c&127),c>>>=7,u-=7}if(n.have+f>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ge;break}for(;f--;)n.lens[n.have++]=T}}if(n.mode===ge)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=ge;break}if(n.lenbits=9,S={bits:n.lenbits},O=yi(Id,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,O){e.msg="invalid literal/lengths set",n.mode=ge;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},O=yi(Cd,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,O){e.msg="invalid distances set",n.mode=ge;break}if(n.mode=Rr,t===Mr)break e;case Rr:n.mode=Lr;case Lr:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,Hw(e,d),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,i=e.input,o=e.avail_in,c=n.hold,u=n.bits,n.mode===At&&(n.back=-1);break}for(n.back=0;v=n.lencode[c&(1<<n.lenbits)-1],w=v>>>24,L=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(L&&(L&240)===0){for(y=w,E=L,x=k;v=n.lencode[x+((c&(1<<y+E)-1)>>y)],w=v>>>24,L=v>>>16&255,k=v&65535,!(y+w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=w,u-=w,n.back+=w,n.length=k,L===0){n.mode=ju;break}if(L&32){n.back=-1,n.mode=At;break}if(L&64){e.msg="invalid literal/length code",n.mode=ge;break}n.extra=L&15,n.mode=$u;case $u:if(n.extra){for(N=n.extra;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Xu;case Xu:for(;v=n.distcode[c&(1<<n.distbits)-1],w=v>>>24,L=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if((L&240)===0){for(y=w,E=L,x=k;v=n.distcode[x+((c&(1<<y+E)-1)>>y)],w=v>>>24,L=v>>>16&255,k=v&65535,!(y+w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=w,u-=w,n.back+=w,L&64){e.msg="invalid distance code",n.mode=ge;break}n.offset=k,n.extra=L&15,n.mode=Yu;case Yu:if(n.extra){for(N=n.extra;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ge;break}n.mode=qu;case qu:if(l===0)break e;if(f=d-l,n.offset>f){if(f=n.offset-f,f>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ge;break}f>n.wnext?(f-=n.wnext,g=n.wsize-f):g=n.wnext-f,f>n.length&&(f=n.length),p=n.window}else p=r,g=s-n.offset,f=n.length;f>l&&(f=l),l-=f,n.length-=f;do r[s++]=p[g++];while(--f);n.length===0&&(n.mode=Lr);break;case ju:if(l===0)break e;r[s++]=n.length,l--,n.mode=Lr;break;case Bs:if(n.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[a++]<<u,u+=8}if(d-=l,e.total_out+=d,n.total+=d,n.wrap&4&&d&&(e.adler=n.check=n.flags?Te(n.check,r,d,s-d):bi(n.check,r,d,s-d)),d=l,n.wrap&4&&(n.flags?c:Qu(c))!==n.check){e.msg="incorrect data check",n.mode=ge;break}c=0,u=0}n.mode=Zu;case Zu:if(n.wrap&&n.flags){for(;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=ge;break}c=0,u=0}n.mode=Ju;case Ju:O=jw;break e;case ge:O=Pd;break e;case Fd:return Dd;case Ud:default:return Ze}return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,(n.wsize||d!==e.avail_out&&n.mode<ge&&(n.mode<Bs||t!==Lu))&&Wd(e,e.output,e.next_out,d-e.avail_out),m-=e.avail_in,d-=e.avail_out,e.total_in+=m,e.total_out+=d,n.total+=d,n.wrap&4&&d&&(e.adler=n.check=n.flags?Te(n.check,r,d,e.next_out-d):bi(n.check,r,d,e.next_out-d)),e.data_type=n.bits+(n.last?64:0)+(n.mode===At?128:0)+(n.mode===Rr||n.mode===Us?256:0),(m===0&&d===0||t===Lu)&&O===an&&(O=Jw),O},oA=e=>{if(on(e))return Ze;let t=e.state;return t.window&&(t.window=null),e.state=null,an},cA=(e,t)=>{if(on(e))return Ze;let n=e.state;return(n.wrap&2)===0?Ze:(n.head=t,t.done=!1,an)},lA=(e,t)=>{let n=t.length,i,r,a;return on(e)||(i=e.state,i.wrap!==0&&i.mode!==Ir)?Ze:i.mode===Ir&&(r=1,r=bi(r,t,n,0),r!==i.check)?Pd:(a=Wd(e,t,n,n),a?(i.mode=Fd,Dd):(i.havedict=1,an))},uA=Gd,dA=Hd,mA=Bd,hA=rA,fA=Vd,_A=sA,gA=oA,vA=cA,pA=lA,yA="pako inflate (from Nodeca project)",kt={inflateReset:uA,inflateReset2:dA,inflateResetKeep:mA,inflateInit:hA,inflateInit2:fA,inflate:_A,inflateEnd:gA,inflateGetHeader:vA,inflateSetDictionary:pA,inflateInfo:yA};function wA(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var AA=wA,Kd=Object.prototype.toString,{Z_NO_FLUSH:SA,Z_FINISH:kA,Z_OK:Mi,Z_STREAM_END:Vs,Z_NEED_DICT:Ws,Z_STREAM_ERROR:EA,Z_DATA_ERROR:td,Z_MEM_ERROR:bA}=sn;function zi(e){this.options=$r.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zd,this.strm.avail_out=0;let n=kt.inflateInit2(this.strm,t.windowBits);if(n!==Mi)throw new Error(nn[n]);if(this.header=new AA,kt.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Ti.string2buf(t.dictionary):Kd.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=kt.inflateSetDictionary(this.strm,t.dictionary),n!==Mi)))throw new Error(nn[n])}zi.prototype.push=function(e,t){let n=this.strm,i=this.options.chunkSize,r=this.options.dictionary,a,s,o;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?kA:SA,Kd.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),a=kt.inflate(n,s),a===Ws&&r&&(a=kt.inflateSetDictionary(n,r),a===Mi?a=kt.inflate(n,s):a===td&&(a=Ws));n.avail_in>0&&a===Vs&&n.state.wrap>0&&e[n.next_in]!==0;)kt.inflateReset(n),a=kt.inflate(n,s);switch(a){case EA:case td:case Ws:case bA:return this.onEnd(a),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(n.avail_out===0||a===Vs))if(this.options.to==="string"){let l=Ti.utf8border(n.output,n.next_out),c=n.next_out-l,u=Ti.buf2string(n.output,l);n.next_out=c,n.avail_out=i-c,c&&n.output.set(n.output.subarray(l,l+c),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Mi&&o===0)){if(a===Vs)return a=kt.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};zi.prototype.onData=function(e){this.chunks.push(e)};zi.prototype.onEnd=function(e){e===Mi&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$r.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function mo(e,t){let n=new zi(t);if(n.push(e),n.err)throw n.msg||nn[n.err];return n.result}function xA(e,t){return t=t||{},t.raw=!0,mo(e,t)}var TA=zi,MA=mo,RA=xA,LA=mo,NA=sn,zA={Inflate:TA,inflate:MA,inflateRaw:RA,ungzip:LA,constants:NA},{Deflate:OA,deflate:IA,deflateRaw:CA,gzip:PA}=Bw,{Inflate:DA,inflate:FA,inflateRaw:UA,ungzip:BA}=zA,GA=OA,HA=IA,VA=CA,WA=PA,KA=DA,$A=FA,XA=UA,YA=BA,qA=sn,nd={Deflate:GA,deflate:HA,deflateRaw:VA,gzip:WA,Inflate:KA,inflate:$A,inflateRaw:XA,ungzip:YA,constants:qA},Cr=2023,ho=1,fo=2,_o=4,go=8,vo=16,po=32,$d=64,jA=128,ZA=256,yo=512,wo=1024,Ao=2048,Pr=4096,So=8192,Dr=16384,JA=32768,Fr=65536,ko=1<<17,Ur=1<<18,Br=1<<19,Eo=1<<20,bo=1<<21,xo=1<<22,QA=1<<23,To=1<<24,Gr=1<<25,Mo=1<<26,Ro=1<<27,Lo=1<<28,No=1<<29,zo=1<<30,eS=-2147483648,Oo=1,Io=2,Co=4,tS=1,nS=2,iS=128,Tn=()=>({number:0,modelindex:0,modelindex2:0,modelindex3:0,modelindex4:0,frame:0,skinnum:0,effects:0,renderfx:0,origin:{x:0,y:0,z:0},old_origin:{x:0,y:0,z:0},angles:{x:0,y:0,z:0},sound:0,event:0,solid:0,bits:0,bitsHigh:0,alpha:0,scale:0,instanceBits:0,loopVolume:0,loopAttenuation:0,owner:0,oldFrame:0}),id=()=>({pm_type:0,origin:{x:0,y:0,z:0},velocity:{x:0,y:0,z:0},pm_time:0,pm_flags:0,gravity:0,delta_angles:{x:0,y:0,z:0},viewoffset:{x:0,y:0,z:0},viewangles:{x:0,y:0,z:0},kick_angles:{x:0,y:0,z:0},gun_index:0,gun_frame:0,gun_offset:{x:0,y:0,z:0},gun_angles:{x:0,y:0,z:0},blend:[0,0,0,0],fov:0,rdflags:0,stats:new Array(32).fill(0),gunskin:0,gunrate:0,damage_blend:[0,0,0,0],team_id:0}),Po=class Xd{constructor(t,n){this.protocolVersion=0,this.isDemo=tS,this.stream=t,this.handler=n}setProtocolVersion(t){this.protocolVersion=t}getProtocolVersion(){return this.protocolVersion}translateCommand(t){return this.protocolVersion===0&&(t===7||t===12)?J.serverdata:this.protocolVersion===Cr?t:this.protocolVersion===34||this.protocolVersion===25?t<=J.frame?t:J.bad:(this.protocolVersion===0,t)}parseMessage(){for(;this.stream.hasMore();){let t=this.stream.readByte();if(t===-1)break;let n=t;t=this.translateCommand(t);try{switch(t){case J.bad:return;case J.nop:break;case J.disconnect:this.handler&&this.handler.onDisconnect&&this.handler.onDisconnect();break;case J.reconnect:this.handler&&this.handler.onReconnect&&this.handler.onReconnect();break;case J.print:this.parsePrint();break;case J.serverdata:this.parseServerData();break;case J.configstring:this.parseConfigString();break;case J.spawnbaseline:this.parseSpawnBaseline();break;case J.centerprint:this.parseCenterPrint();break;case J.download:this.parseDownload();break;case J.frame:this.parseFrame();break;case J.packetentities:this.parsePacketEntities(!1);break;case J.deltapacketentities:this.parsePacketEntities(!0);break;case J.playerinfo:this.parsePlayerState();break;case J.stufftext:this.parseStuffText();break;case J.layout:this.parseLayout();break;case J.inventory:this.parseInventory();break;case J.sound:this.parseSound();break;case J.muzzleflash:this.parseMuzzleFlash();break;case J.muzzleflash2:this.parseMuzzleFlash2();break;case J.temp_entity:this.parseTempEntity();break;case J.splitclient:this.parseSplitClient();break;case J.configblast:this.parseConfigBlast();break;case J.spawnbaselineblast:this.parseSpawnBaselineBlast();break;case J.level_restart:this.handler&&this.handler.onLevelRestart&&this.handler.onLevelRestart();break;case J.damage:this.parseDamage();break;case J.locprint:this.parseLocPrint();break;case J.fog:this.parseFog();break;case J.waitingforplayers:this.parseWaitingForPlayers();break;case J.bot_chat:this.parseBotChat();break;case J.poi:this.parsePoi();break;case J.help_path:this.parseHelpPath();break;case J.muzzleflash3:this.parseMuzzleFlash3();break;case J.achievement:this.parseAchievement();break;default:console.warn(`Unknown server command: ${n} (translated: ${t}) at offset ${this.stream.getPosition()-1}`);return}}catch(i){console.warn(`Error parsing command ${t}: ${i.message}`);return}}}parsePrint(){let t=this.stream.readByte(),n=this.stream.readString();this.handler&&this.handler.onPrint(t,n)}parseStuffText(){let t=this.stream.readString();this.handler&&this.handler.onStuffText(t)}parseLayout(){let t=this.stream.readString();this.handler&&this.handler.onLayout(t)}parseCenterPrint(){let t=this.stream.readString();this.handler&&this.handler.onCenterPrint(t)}parseServerData(){if(this.protocolVersion=this.stream.readLong(),this.protocolVersion===Cr){let t=this.stream.readLong(),n=this.stream.readByte();this.isDemo=n;let i=this.stream.readByte(),r=this.stream.readString(),a=this.stream.readShort();if(a===-2){let o=this.stream.readShort();for(let l=0;l<o;l++)this.stream.readShort();a=0}else a===-1&&(a=-1);let s=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,0,r,a,s,i,n):console.log(`Server Data (Rerelease): Protocol ${this.protocolVersion}, Level ${s}, Tick ${i}`)}else{let t=this.stream.readLong();this.isDemo=this.stream.readByte();let n=0,i=this.stream.readString(),r=this.stream.readShort(),a=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,n,i,r,a):console.log(`Server Data: Protocol ${this.protocolVersion}, Level ${a}, GameDir ${i}`)}}parseConfigString(){let t=this.stream.readShort(),n=this.stream.readString();this.handler&&this.handler.onConfigString(t,n)}parseSplitClient(){let t=this.stream.readByte();this.handler&&this.handler.onSplitClient&&this.handler.onSplitClient(t)}parseConfigBlast(){let t=this.stream.readShort(),n=this.stream.readShort(),i=this.stream.readData(t);try{let r=nd.inflate(i);r.byteLength!==n&&console.warn(`svc_configblast: Decompressed size mismatch. Expected ${n}, got ${r.byteLength}`);let a=new $s(r.buffer);for(;a.hasMore();){let s=a.readUShort(),o=a.readString();this.handler&&this.handler.onConfigString(s,o)}}catch(r){console.error("svc_configblast: Failed to decompress data",r)}}parseSpawnBaselineBlast(){let t=this.stream.readShort(),n=this.stream.readShort(),i=this.stream.readData(t);try{let r=nd.inflate(i);r.byteLength!==n&&console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${n}, got ${r.byteLength}`);let a=new $s(r.buffer),s=new Xd(a,this.handler);for(;a.hasMore();)s.parseSpawnBaseline()}catch(r){console.error("svc_spawnbaselineblast: Failed to decompress data",r)}}parseLocPrint(){let t=this.stream.readByte(),n=this.stream.readString(),i=this.stream.readByte(),r=[];for(let a=0;a<i;a++)r.push(this.stream.readString());this.handler&&this.handler.onLocPrint&&this.handler.onLocPrint(t,n,r)}parseWaitingForPlayers(){let t=this.stream.readByte();this.handler&&this.handler.onWaitingForPlayers&&this.handler.onWaitingForPlayers(t)}parseBotChat(){let t=this.stream.readString(),n=this.stream.readShort(),i=this.stream.readString();this.handler&&this.handler.onBotChat&&this.handler.onBotChat(i)}parsePoi(){let t=this.stream.readUShort(),n=this.stream.readUShort(),i={x:0,y:0,z:0};this.stream.readPos(i);let r=this.stream.readUShort(),a=this.stream.readByte(),s=this.stream.readByte();this.handler&&this.handler.onPoi&&this.handler.onPoi(s,i)}parseHelpPath(){let t=this.stream.readByte(),n={x:0,y:0,z:0};this.stream.readPos(n);let i={x:0,y:0,z:0};this.stream.readDir(i),this.handler&&this.handler.onHelpPath&&this.handler.onHelpPath(n)}parseAchievement(){let t=this.stream.readString();this.handler&&this.handler.onAchievement&&this.handler.onAchievement(t)}parseDownload(){let t=this.stream.readShort(),n=this.stream.readByte(),i;t>0&&(i=this.stream.readData(t)),this.handler&&this.handler.onDownload(t,n,i)}parseInventory(){let n=new Array(256);for(let i=0;i<256;i++)n[i]=this.stream.readShort();this.handler&&this.handler.onInventory(n)}parseSound(){let t=this.stream.readByte(),n=this.stream.readByte(),i,r,a,s,o;if(t&1&&(i=this.stream.readByte()),t&2&&(r=this.stream.readByte()),t&16&&(a=this.stream.readByte()),t&8&&(s=this.stream.readShort()),t&4){let l={x:0,y:0,z:0};this.stream.readPos(l),o=l}this.handler&&this.handler.onSound(t,n,i,r,a,s,o)}parseMuzzleFlash(){let t=this.stream.readShort(),n=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash(t,n)}parseMuzzleFlash2(){let t=this.stream.readShort(),n=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash2(t,n)}parseMuzzleFlash3(){let t=this.stream.readShort(),n=this.stream.readShort();this.handler&&this.handler.onMuzzleFlash3&&this.handler.onMuzzleFlash3(t,n)}parseFog(){let t=this.stream.readByte();if(t&128){let i=this.stream.readByte();t|=i<<8}let n={};t&1&&(n.density=this.stream.readFloat(),n.skyfactor=this.stream.readByte()),t&2&&(n.red=this.stream.readByte()),t&4&&(n.green=this.stream.readByte()),t&8&&(n.blue=this.stream.readByte()),t&16&&(n.time=this.stream.readShort()),t&32&&(n.hf_falloff=this.stream.readFloat()),t&64&&(n.hf_density=this.stream.readFloat()),t&256&&(n.hf_start_r=this.stream.readByte()),t&512&&(n.hf_start_g=this.stream.readByte()),t&1024&&(n.hf_start_b=this.stream.readByte()),t&2048&&(n.hf_start_dist=this.stream.readLong()),t&4096&&(n.hf_end_r=this.stream.readByte()),t&8192&&(n.hf_end_g=this.stream.readByte()),t&16384&&(n.hf_end_b=this.stream.readByte()),t&32768&&(n.hf_end_dist=this.stream.readLong()),this.handler&&this.handler.onFog&&this.handler.onFog(n)}parseDamage(){let t=this.stream.readByte(),n=[];for(let i=0;i<t;i++){let r=this.stream.readByte(),a={x:0,y:0,z:0};this.stream.readDir(a);let s=r&31,o=(r&32)!==0,l=(r&64)!==0,c=(r&128)!==0;n.push({damage:s,health:o,armor:l,power:c,dir:a})}this.handler&&this.handler.onDamage&&this.handler.onDamage(n)}parseTempEntity(){let t=this.stream.readByte(),n={x:0,y:0,z:0},i={x:0,y:0,z:0},r={x:0,y:0,z:0},a,s,o,l,c;switch(t){case B.EXPLOSION1:case B.EXPLOSION2:case B.ROCKET_EXPLOSION:case B.GRENADE_EXPLOSION:case B.ROCKET_EXPLOSION_WATER:case B.GRENADE_EXPLOSION_WATER:case B.BFG_EXPLOSION:case B.BFG_BIGEXPLOSION:case B.BOSSTPORT:case B.PLASMA_EXPLOSION:case B.PLAIN_EXPLOSION:case B.CHAINFIST_SMOKE:case B.TRACKER_EXPLOSION:case B.TELEPORT_EFFECT:case B.DBALL_GOAL:case B.NUKEBLAST:case B.WIDOWSPLASH:case B.EXPLOSION1_BIG:case B.EXPLOSION1_NP:this.stream.readPos(n);break;case B.GUNSHOT:case B.BLOOD:case B.BLASTER:case B.SHOTGUN:case B.SPARKS:case B.BULLET_SPARKS:case B.SCREEN_SPARKS:case B.SHIELD_SPARKS:case B.BLASTER2:case B.FLECHETTE:case B.MOREBLOOD:case B.ELECTRIC_SPARKS:case B.HEATBEAM_SPARKS:case B.HEATBEAM_STEAM:this.stream.readPos(n),this.stream.readDir(r);break;case B.SPLASH:case B.LASER_SPARKS:case B.WELDING_SPARKS:case B.TUNNEL_SPARKS:a=this.stream.readByte(),this.stream.readPos(n),this.stream.readDir(r),s=this.stream.readByte();break;case B.BLUEHYPERBLASTER:this.protocolVersion>=32?(this.stream.readPos(n),this.stream.readPos(i)):(this.stream.readPos(n),this.stream.readDir(r));break;case B.GREENBLOOD:this.protocolVersion>=32?(this.stream.readPos(n),this.stream.readDir(r)):(this.stream.readPos(n),this.stream.readPos(i));break;case B.RAILTRAIL:case B.BUBBLETRAIL:case B.BFG_LASER:case B.DEBUGTRAIL:case B.BUBBLETRAIL2:this.stream.readPos(n),this.stream.readPos(i);break;case B.PARASITE_ATTACK:case B.MEDIC_CABLE_ATTACK:this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i);break;case B.GRAPPLE_CABLE:o=this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i),this.stream.readPos(r);break;case B.LIGHTNING:l=this.stream.readShort(),c=this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i);break;case B.FLASHLIGHT:this.stream.readPos(n),o=this.stream.readShort();break;case B.FORCEWALL:this.stream.readPos(n),this.stream.readPos(i),s=this.stream.readByte();break;case B.STEAM:let u=this.stream.readShort();a=this.stream.readByte(),this.stream.readPos(n),this.stream.readDir(r),s=this.stream.readByte(),this.stream.readShort(),u!==-1&&this.stream.readLong();break;case B.WIDOWBEAMOUT:this.stream.readShort();case B.HEATBEAM:case B.MONSTER_HEATBEAM:o=this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i),this.stream.readPos(r);break;default:break}this.handler&&this.handler.onTempEntity(t,n,i,r,a,s,o,l,c)}parseSpawnBaseline(){let t=this.parseEntityBits(),n=Tn();this.parseDelta(Tn(),n,t.number,t.bits,t.bitsHigh),this.handler&&this.handler.onSpawnBaseline(n)}parseFrame(){let t=this.stream.readLong(),n=this.stream.readLong(),i=this.stream.readByte(),r=this.stream.readByte(),a=this.stream.readData(r),s=this.stream.readByte();if(s=this.translateCommand(s),s!==J.playerinfo)throw new Error(`Expected svc_playerinfo after svc_frame, got ${s} (translated)`);let o=this.parsePlayerState();if(this.isDemo===iS){let l=this.stream.readByte();for(let c=0;c<l;c++)this.stream.readByte()}this.isDemo===nS&&this.stream.readLong(),this.handler&&this.handler.onFrame({serverFrame:t,deltaFrame:n,surpressCount:i,areaBytes:r,areaBits:a,playerState:o,packetEntities:{delta:!1,entities:[]}})}parsePlayerState(){let t=id(),n=this.stream.readShort();n&1&&(t.pm_type=this.stream.readByte()),n&2&&(t.origin.x=this.stream.readShort()*.125,t.origin.y=this.stream.readShort()*.125,t.origin.z=this.stream.readShort()*.125),n&4&&(t.velocity.x=this.stream.readShort()*.125,t.velocity.y=this.stream.readShort()*.125,t.velocity.z=this.stream.readShort()*.125),n&8&&(t.pm_time=this.stream.readByte()),n&16&&(t.pm_flags=this.stream.readByte()),n&32&&(t.gravity=this.stream.readShort()),n&64&&(t.delta_angles.x=this.stream.readShort()*(180/32768),t.delta_angles.y=this.stream.readShort()*(180/32768),t.delta_angles.z=this.stream.readShort()*(180/32768)),n&128&&(t.viewoffset.x=this.stream.readChar()*.25,t.viewoffset.y=this.stream.readChar()*.25,t.viewoffset.z=this.stream.readChar()*.25),n&256&&(t.viewangles.x=this.stream.readAngle16(),t.viewangles.y=this.stream.readAngle16(),t.viewangles.z=this.stream.readAngle16()),n&512&&(t.kick_angles.x=this.stream.readChar()*.25,t.kick_angles.y=this.stream.readChar()*.25,t.kick_angles.z=this.stream.readChar()*.25),n&4096&&(t.gun_index=this.stream.readByte()),n&8192&&(t.gun_frame=this.stream.readByte(),t.gun_offset.x=this.stream.readChar()*.25,t.gun_offset.y=this.stream.readChar()*.25,t.gun_offset.z=this.stream.readChar()*.25,t.gun_angles.x=this.stream.readChar()*.25,t.gun_angles.y=this.stream.readChar()*.25,t.gun_angles.z=this.stream.readChar()*.25),n&1024&&(t.blend[0]=this.stream.readByte(),t.blend[1]=this.stream.readByte(),t.blend[2]=this.stream.readByte(),t.blend[3]=this.stream.readByte()),n&2048&&(t.fov=this.stream.readByte()),n&16384&&(t.rdflags=this.stream.readByte());let i=this.stream.readLong();for(let r=0;r<32;r++)i&1<<r&&(t.stats[r]=this.stream.readShort());return t}parsePacketEntities(t){let n=this.collectPacketEntities();this.handler&&this.handler.onFrame({serverFrame:0,deltaFrame:0,surpressCount:0,areaBytes:0,areaBits:new Uint8Array,playerState:id(),packetEntities:{delta:t,entities:n}})}collectPacketEntities(){let t=[];for(;;){let n=this.parseEntityBits();if(n.number===0)break;let i=Tn();this.parseDelta(Tn(),i,n.number,n.bits,n.bitsHigh),t.push(i)}return t}parseEntityBits(){let t=this.stream.readByte();t&jA&&(t|=this.stream.readByte()<<8),t&JA&&(t|=this.stream.readByte()<<16),t&QA&&(t|=this.stream.readByte()<<24);let n=0;t&eS&&(n=this.stream.readByte());let i;return t&ZA?i=this.stream.readShort():i=this.stream.readByte(),{number:i,bits:t,bitsHigh:n}}parseDelta(t,n,i,r,a=0){n.number=t.number,n.modelindex=t.modelindex,n.modelindex2=t.modelindex2,n.modelindex3=t.modelindex3,n.modelindex4=t.modelindex4,n.frame=t.frame,n.skinnum=t.skinnum,n.effects=t.effects,n.renderfx=t.renderfx,n.origin.x=t.origin.x,n.origin.y=t.origin.y,n.origin.z=t.origin.z,n.old_origin.x=t.origin.x,n.old_origin.y=t.origin.y,n.old_origin.z=t.origin.z,n.angles.x=t.angles.x,n.angles.y=t.angles.y,n.angles.z=t.angles.z,n.sound=t.sound,n.event=t.event,n.solid=t.solid,n.alpha=t.alpha,n.scale=t.scale,n.instanceBits=t.instanceBits,n.loopVolume=t.loopVolume,n.loopAttenuation=t.loopAttenuation,n.owner=t.owner,n.oldFrame=t.oldFrame,n.number=i,n.bits=r,n.bitsHigh=a,r&Ao&&(n.modelindex=this.stream.readByte()),r&Eo&&(n.modelindex2=this.stream.readByte()),r&bo&&(n.modelindex3=this.stream.readByte()),r&xo&&(n.modelindex4=this.stream.readByte()),r&vo&&(n.frame=this.stream.readByte()),r&ko&&(n.frame=this.stream.readShort()),r&Fr&&r&Gr?n.skinnum=this.stream.readLong():r&Fr?n.skinnum=this.stream.readByte():r&Gr&&(n.skinnum=this.stream.readShort()),r&Dr&&r&Br?n.effects=this.stream.readLong():r&Dr?n.effects=this.stream.readByte():r&Br&&(n.effects=this.stream.readShort()),r&Pr&&r&Ur?n.renderfx=this.stream.readLong():r&Pr?n.renderfx=this.stream.readByte():r&Ur&&(n.renderfx=this.stream.readShort()),r&ho&&(n.origin.x=this.stream.readCoord()),r&fo&&(n.origin.y=this.stream.readCoord()),r&yo&&(n.origin.z=this.stream.readCoord()),r&wo&&(n.angles.x=this.stream.readAngle()),r&_o&&(n.angles.y=this.stream.readAngle()),r&go&&(n.angles.z=this.stream.readAngle()),r&To&&this.stream.readPos(n.old_origin),r&Mo&&(n.sound=this.stream.readByte()),r&po?n.event=this.stream.readByte():n.event=0,r&Ro&&(n.solid=this.stream.readShort()),r&So&&(n.alpha=this.stream.readByte()/255),r&Lo&&(n.scale=this.stream.readFloat()),r&No&&(n.instanceBits=this.stream.readLong()),r&zo&&(n.loopVolume=this.stream.readByte()/255),a&Oo&&(n.loopAttenuation=this.stream.readByte()/255),a&Io&&(n.owner=this.stream.readShort()),a&Co&&(n.oldFrame=this.stream.readShort())}};var Yd=class{constructor(){this.reader=null,this.state=0,this.playbackSpeed=1,this.currentProtocolVersion=0,this.accumulatedTime=0,this.frameDuration=100}setHandler(e){this.handler=e}loadDemo(e){this.reader=new Jp(e),this.state=0,this.accumulatedTime=0,this.currentProtocolVersion=0}play(){this.reader&&(this.state=1)}pause(){this.state===1&&(this.state=2)}stop(){this.state=0,this.reader&&this.reader.reset(),this.accumulatedTime=0,this.currentProtocolVersion=0}setFrameDuration(e){this.frameDuration=e}update(e){if(!(this.state!==1||!this.reader))for(this.accumulatedTime+=e*1e3*this.playbackSpeed;this.accumulatedTime>=this.frameDuration;){if(!this.reader.hasMore()){this.state=3;return}let t=this.reader.readNextBlock();if(!t){this.state=3;return}let n=new Po(t.data,this.handler);n.setProtocolVersion(this.currentProtocolVersion),n.parseMessage(),this.currentProtocolVersion=n.getProtocolVersion(),this.accumulatedTime-=this.frameDuration}}getState(){return this.state}getCurrentTime(){return this.accumulatedTime}};var rS=Object.defineProperty,qd=(e,t)=>{for(var n in t)rS(e,n,{get:t[n],enumerable:!0})},Ut={x:0,y:0,z:0};var NC=Math.PI/180;function Yr(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function jr(e,t){return{x:e.x*t,y:e.y*t,z:e.z*t}}function Ii(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}function aS(e){return Ii(e,e)}function Zr(e){return Math.sqrt(aS(e))}function jd(e){let t=Zr(e);return t===0?e:jr(e,1/t)}var Zd=0,Jd=1,Qd=2,sS=Math.PI/180,zC=180/Math.PI;function Do(e,t){switch(t){case Zd:return e.x;case Jd:return e.y;case Qd:default:return e.z}}function Fo(e){return e*sS}function Cn(e){let t=e%360;return t<0?360+t:t}function Jr(e){let t=Fo(Do(e,Jd)),n=Fo(Do(e,Zd)),i=Fo(Do(e,Qd)),r=Math.sin(t),a=Math.cos(t),s=Math.sin(n),o=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u={x:o*a,y:o*r,z:-s},m={x:-l*s*a-c*-r,y:-l*s*r-c*a,z:-l*o},d={x:c*s*a-l*-r,y:c*s*r-l*a,z:c*o};return{forward:u,right:m,up:d}}var In=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];var ut=1,Bt=2;var Go=8,Ho=16,oS=32;var cS=16384;var Qr=65536,em=1<<17,lS=1<<18,uS=1<<19,dS=1<<20,mS=1<<21,hS=1<<22,fS=1<<23,OC=1<<24,ea=1<<25,_S=1<<26,IC=1<<27,CC=1<<28,PC=1<<29,ta=1<<30,DC=1<<31;var FC=1<<25,UC=1<<28,BC=1<<29,GC=1<<30,HC=1<<31;var VC=ut|Bt,WC=ut|Qr|Bt|ea|ta,KC=ut|Qr|Bt,$C=ut|em|Bt|ea|ta,XC=oS|Go|Ho,YC=ut|Ho|Go,gS=ut|ea|ta|Bt|_S,qC=lS|uS|dS|mS|hS|fS,jC=ut|Go|Ho|ea|ta,ZC=ut|Qr|Bt,JC=ut|Bt,QC=ut|Qr|Bt|em,e7=gS|cS;var t7=Number.MAX_SAFE_INTEGER-1;var Ci=(e=>(e[e.None=0]="None",e[e.Archive=1]="Archive",e[e.UserInfo=2]="UserInfo",e[e.ServerInfo=4]="ServerInfo",e[e.Latch=8]="Latch",e[e.Cheat=16]="Cheat",e))(Ci||{});var tm=256;var vS=256,Pi=8192,Di=2048,Fi=512,pS=256,yS=tm*2,wS=256,Uo=32;var ye=(e=>(e[e.Name=0]="Name",e[e.CdTrack=1]="CdTrack",e[e.Sky=2]="Sky",e[e.SkyAxis=3]="SkyAxis",e[e.SkyRotate=4]="SkyRotate",e[e.StatusBar=5]="StatusBar",e[e.HealthBarName=55]="HealthBarName",e[e.CONFIG_N64_PHYSICS=56]="CONFIG_N64_PHYSICS",e[e.CONFIG_CTF_TEAMS=57]="CONFIG_CTF_TEAMS",e[e.CONFIG_COOP_RESPAWN_STRING=58]="CONFIG_COOP_RESPAWN_STRING",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+Pi]="Sounds",e[e.Images=e.Sounds+Di]="Images",e[e.Lights=e.Images+Fi]="Lights",e[e.ShadowLights=e.Lights+vS]="ShadowLights",e[e.Items=e.ShadowLights+wS]="Items",e[e.PlayerSkins=e.Items+pS]="PlayerSkins",e[e.General=e.PlayerSkins+tm]="General",e[e.WheelWeapons=e.General+yS]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+Uo]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+Uo]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+Uo]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(ye||{}),n7=ye.MaxConfigStrings;var AS={};qd(AS,{addReplayFrame:()=>bS,createReplaySession:()=>ES,deserializeReplay:()=>kS,serializeReplay:()=>SS});function SS(e){return JSON.stringify(e,null,2)}function kS(e){let t=JSON.parse(e);if(!t.metadata||!Array.isArray(t.frames))throw new Error("Invalid replay format: missing metadata or frames");return t}function ES(e,t){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:t},frames:[]}}function bS(e,t,n,i){e.frames.push({serverFrame:n,cmd:t,timestamp:Date.now()-i})}var Ui=(e=>(e[e.None=0]="None",e[e.Feet=1]="Feet",e[e.Waist=2]="Waist",e[e.Under=3]="Under",e))(Ui||{});var Et=(e=>(e[e.Ducked=1]="Ducked",e[e.JumpHeld=2]="JumpHeld",e[e.OnGround=4]="OnGround",e[e.TimeWaterJump=8]="TimeWaterJump",e[e.TimeLand=16]="TimeLand",e[e.TimeTeleport=32]="TimeTeleport",e[e.NoPositionalPrediction=64]="NoPositionalPrediction",e[e.OnLadder=128]="OnLadder",e[e.NoAngularPrediction=256]="NoAngularPrediction",e[e.IgnorePlayerCollision=512]="IgnorePlayerCollision",e[e.TimeTrick=1024]="TimeTrick",e))(Et||{});function Dn(e,t){return(e&t)!==0}var na=(e=>(e[e.Normal=0]="Normal",e[e.Grapple=1]="Grapple",e[e.NoClip=2]="NoClip",e[e.Spectator=3]="Spectator",e[e.Dead=4]="Dead",e[e.Gib=5]="Gib",e[e.Freeze=6]="Freeze",e))(na||{}),dt=(e=>(e[e.None=0]="None",e[e.Attack=1]="Attack",e[e.Use=2]="Use",e[e.Holster=4]="Holster",e[e.Jump=8]="Jump",e[e.Crouch=16]="Crouch",e[e.Any=128]="Any",e))(dt||{});function xS(e){let{velocity:t,frametime:n,onGround:i,groundIsSlick:r,onLadder:a,waterlevel:s,pmFriction:o,pmStopSpeed:l,pmWaterFriction:c}=e,u=Zr(t);if(u<1)return{x:0,y:0,z:t.z};let m=0;if(i&&!r||a){let g=u<l?l:u;m+=g*o*n}s>0&&!a&&(m+=u*c*s*n);let d=u-m;if(d<0&&(d=0),d===u)return t;let f=d/u;return jr(t,f)}function TS(e){let{velocity:t,wishdir:n,wishspeed:i,accel:r,frametime:a}=e,s=Ii(t,n),o=i-s;if(o<=0)return t;let l=r*a*i;return l>o&&(l=o),{x:t.x+n.x*l,y:t.y+n.y*l,z:t.z+n.z*l}}function MS(e){let{forward:t,right:n,cmd:i,maxSpeed:r}=e,a={x:t.x*i.forwardmove+n.x*i.sidemove,y:t.y*i.forwardmove+n.y*i.sidemove,z:0},s=Zr(a);if(s>r){let o=r/s;a=jr(a,o),s=r}return{wishdir:s===0?a:jd(a),wishspeed:s}}function RS(e){let{forward:t,right:n,cmd:i,maxSpeed:r}=e,a={x:t.x*i.forwardmove+n.x*i.sidemove,y:t.y*i.forwardmove+n.y*i.sidemove,z:t.z*i.forwardmove+n.z*i.sidemove};i.upmove>10?a=Yr(a,{x:0,y:0,z:i.upmove}):i.upmove<-10?a=Yr(a,{x:0,y:0,z:i.upmove}):Math.abs(i.forwardmove)<10&&Math.abs(i.sidemove)<10?a=Yr(a,{x:0,y:0,z:-60}):a=Yr(a,{x:0,y:0,z:10});let s=Zr(a);if(s>r){let o=r/s;a=jr(a,o),s=r}return s*=.5,{wishdir:s===0?a:jd(a),wishspeed:s}}function LS(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function NS(e){return e>89&&e<180?89:e<271&&e>=180?271:e}function Vo(e){let{pmFlags:t,cmdAngles:n,deltaAngles:i}=e,r;(t&32)!==0?r={x:0,y:n.y+i.y,z:0}:(r=LS(n,i),r={...r,x:NS(r.x)});let a=Jr(r);return{viewangles:r,...a}}var nm=200,im=200,rm=200,am=140,sm=150,om=3;function zS(e){let t=Cn(e);return t>89&&t<180?89:t<271&&t>=180?271:t}function cm(e,t){return{x:zS(e.x+t.x),y:Cn(e.y+t.y),z:Cn(e.z+t.z)}}function lm(e,t){let n=t.sensitivityX??t.sensitivity,i=(t.sensitivityY??t.sensitivity)*(t.invertY?-1:1);return{x:e.deltaY*i,y:e.deltaX*n,z:0}}var cn=(e=>(e[e.bad=0]="bad",e[e.nop=1]="nop",e[e.move=2]="move",e[e.userinfo=3]="userinfo",e[e.stringcmd=4]="stringcmd",e))(cn||{});var um=64;var dm=0,mm=1,hm=2,fm=3,_m=4,gm=5,vm=6,pm=7,ym=8;var wm=11,Am=12,Sm=13;function OS(e,t,n){let i=Math.floor(n/2),r=n%2!==0,a=t+i,s=e[a]||0;if(r){let o=e[a+1]||0,l=s>>>8&255;return(o&255)<<8|l}else return s&65535}function km(e,t,n,i){let r=i*n,a=Math.floor(r/8),s=r%8,o=(1<<i)-1<<s;return(OS(e,t,a)&o)>>>s}var Bi=(e=>(e.QuadDamage="quad",e.Invulnerability="invulnerability",e.EnviroSuit="enviro_suit",e.Rebreather="rebreather",e.Silencer="silencer",e.PowerScreen="power_screen",e.PowerShield="power_shield",e.QuadFire="quad_fire",e.Invisibility="invisibility",e.Bandolier="bandolier",e.AmmoPack="ammo_pack",e.IRGoggles="ir_goggles",e.DoubleDamage="double_damage",e.SphereVengeance="sphere_vengeance",e.SphereHunter="sphere_hunter",e.SphereDefender="sphere_defender",e.Doppelganger="doppelganger",e.TagToken="tag_token",e.TechResistance="tech_resistance",e.TechStrength="tech_strength",e.TechHaste="tech_haste",e.TechRegeneration="tech_regeneration",e.Flashlight="flashlight",e.Compass="compass",e))(Bi||{}),Ce=(e=>(e[e.STAT_HEALTH_ICON=0]="STAT_HEALTH_ICON",e[e.STAT_HEALTH=1]="STAT_HEALTH",e[e.STAT_AMMO_ICON=2]="STAT_AMMO_ICON",e[e.STAT_AMMO=3]="STAT_AMMO",e[e.STAT_ARMOR_ICON=4]="STAT_ARMOR_ICON",e[e.STAT_ARMOR=5]="STAT_ARMOR",e[e.STAT_SELECTED_ICON=6]="STAT_SELECTED_ICON",e[e.STAT_PICKUP_ICON=7]="STAT_PICKUP_ICON",e[e.STAT_PICKUP_STRING=8]="STAT_PICKUP_STRING",e[e.STAT_TIMER_ICON=9]="STAT_TIMER_ICON",e[e.STAT_TIMER=10]="STAT_TIMER",e[e.STAT_HELPICON=11]="STAT_HELPICON",e[e.STAT_SELECTED_ITEM=12]="STAT_SELECTED_ITEM",e[e.STAT_LAYOUTS=13]="STAT_LAYOUTS",e[e.STAT_FRAGS=14]="STAT_FRAGS",e[e.STAT_FLASHES=15]="STAT_FLASHES",e[e.STAT_CHASE=16]="STAT_CHASE",e[e.STAT_SPECTATOR=17]="STAT_SPECTATOR",e[e.STAT_CTF_TEAM1_PIC=18]="STAT_CTF_TEAM1_PIC",e[e.STAT_CTF_TEAM1_CAPS=19]="STAT_CTF_TEAM1_CAPS",e[e.STAT_CTF_TEAM2_PIC=20]="STAT_CTF_TEAM2_PIC",e[e.STAT_CTF_TEAM2_CAPS=21]="STAT_CTF_TEAM2_CAPS",e[e.STAT_CTF_FLAG_PIC=22]="STAT_CTF_FLAG_PIC",e[e.STAT_CTF_JOINED_TEAM1_PIC=23]="STAT_CTF_JOINED_TEAM1_PIC",e[e.STAT_CTF_JOINED_TEAM2_PIC=24]="STAT_CTF_JOINED_TEAM2_PIC",e[e.STAT_CTF_TEAM1_HEADER=25]="STAT_CTF_TEAM1_HEADER",e[e.STAT_CTF_TEAM2_HEADER=26]="STAT_CTF_TEAM2_HEADER",e[e.STAT_CTF_TECH=27]="STAT_CTF_TECH",e[e.STAT_CTF_ID_VIEW=28]="STAT_CTF_ID_VIEW",e[e.STAT_CTF_MATCH=29]="STAT_CTF_MATCH",e[e.STAT_CTF_ID_VIEW_COLOR=30]="STAT_CTF_ID_VIEW_COLOR",e[e.STAT_CTF_TEAMINFO=31]="STAT_CTF_TEAMINFO",e[e.STAT_WEAPONS_OWNED_1=32]="STAT_WEAPONS_OWNED_1",e[e.STAT_WEAPONS_OWNED_2=33]="STAT_WEAPONS_OWNED_2",e[e.STAT_AMMO_INFO_START=34]="STAT_AMMO_INFO_START",e[e.STAT_POWERUP_INFO_START=41]="STAT_POWERUP_INFO_START",e[e.STAT_KEY_A=44]="STAT_KEY_A",e[e.STAT_KEY_B=45]="STAT_KEY_B",e[e.STAT_KEY_C=46]="STAT_KEY_C",e[e.STAT_ACTIVE_WHEEL_WEAPON=47]="STAT_ACTIVE_WHEEL_WEAPON",e[e.STAT_COOP_RESPAWN=48]="STAT_COOP_RESPAWN",e[e.STAT_LIVES=49]="STAT_LIVES",e[e.STAT_HIT_MARKER=50]="STAT_HIT_MARKER",e[e.STAT_SELECTED_ITEM_NAME=51]="STAT_SELECTED_ITEM_NAME",e[e.STAT_HEALTH_BARS=52]="STAT_HEALTH_BARS",e[e.STAT_ACTIVE_WEAPON=53]="STAT_ACTIVE_WEAPON",e[e.STAT_LAST=54]="STAT_LAST",e))(Ce||{}),Em=12,bm=9,i7=Math.ceil(Em*bm/16),xm=23,Tm=2,r7=Math.ceil(xm*Tm/16),IS={power_screen:0,power_shield:1,quad:3,quad_fire:4,invulnerability:5,invisibility:6,silencer:7,rebreather:8,enviro_suit:9,bandolier:10,ammo_pack:10,ir_goggles:11,double_damage:12,sphere_vengeance:13,sphere_hunter:14,sphere_defender:15,doppelganger:16,flashlight:17,compass:18,tech_resistance:19,tech_strength:20,tech_haste:21,tech_regeneration:22,tag_token:-1};function Mm(e,t){return t<0||t>=Em?0:km(e,34,t,bm)}function ia(e,t){let n;return typeof t=="number"?n=t:n=IS[t],n===void 0||n<0||n>=xm?0:km(e,41,n,Tm)}function Rm(e,t){e.writeByte(t.msec),e.writeByte(t.buttons),e.writeAngle16(t.angles.x),e.writeAngle16(t.angles.y),e.writeAngle16(t.angles.z),e.writeShort(t.forwardmove),e.writeShort(t.sidemove),e.writeShort(t.upmove),e.writeByte(0),e.writeByte(0)}var CS={};qd(CS,{U_ANGLE1:()=>HS,U_ANGLE2:()=>VS,U_ANGLE3:()=>WS,U_EFFECTS:()=>XS,U_EVENT:()=>jS,U_FRAME:()=>KS,U_MODEL:()=>DS,U_MODEL2:()=>JS,U_MODEL3:()=>QS,U_MODEL4:()=>e2,U_MOREBITS:()=>ZS,U_NUMBER:()=>PS,U_ORIGIN1:()=>US,U_ORIGIN2:()=>BS,U_ORIGIN3:()=>GS,U_REMOVE:()=>t2,U_RENDERFX:()=>YS,U_SKIN:()=>$S,U_SOLID:()=>qS,U_SOUND:()=>FS});var PS=1,DS=2,FS=4,US=8,BS=16,GS=32,HS=64,VS=128,WS=256,KS=512,$S=1024,XS=2048,YS=4096,qS=8192,jS=16384,ZS=32768,JS=1,QS=2,e2=4,t2=32768,Oi=.025,Bo=33554432,qr={None:0,Feet:1,Waist:2,Under:3},n2=(e,t)=>{let n={...e.origin};n.z-=.25;let i=t(e.origin,n);return{...e,onGround:i.fraction<1}},i2=(e,t)=>{let n={...e.origin},{mins:i,maxs:r}=e;if(n.z=e.origin.z+i.z+1,!(t(n)&Bo))return{...e,waterLevel:qr.None};let s=qr.Feet,o=e.origin.z+(i.z+r.z)*.5;if(n.z=o,t(n)&Bo){s=qr.Waist;let c=e.origin.z+22;n.z=c,t(n)&Bo&&(s=qr.Under)}return{...e,waterLevel:s}},Wo=(e,t,n,i)=>{let r={...e};r=n2(r,n),r=i2(r,i);let{origin:a,velocity:s,onGround:o,waterLevel:l,viewAngles:c}=r,u=l>=2?c:{x:c.x>180?(c.x-360)/3:c.x/3,y:c.y,z:c.z},{forward:m,right:d}=Jr(u),f=xS({velocity:s,frametime:Oi,onGround:o,groundIsSlick:!1,onLadder:!1,waterlevel:l,pmFriction:6,pmStopSpeed:100,pmWaterFriction:1}),g=l>=2?RS({forward:m,right:d,cmd:t,maxSpeed:320}):MS({forward:m,right:d,cmd:t,maxSpeed:320}),p=TS({velocity:f,wishdir:g.wishdir,wishspeed:g.wishspeed,accel:o||l>=2?10:1,frametime:Oi}),v=n(a,{x:a.x+p.x*Oi,y:a.y+p.y*Oi,z:a.z+p.z*Oi});return{...r,origin:v.endpos,velocity:p}},Lm=class{constructor(e){e instanceof Uint8Array?this.view=new DataView(e.buffer,e.byteOffset,e.byteLength):this.view=new DataView(e),this.offset=0,this.length=this.view.byteLength}getPosition(){return this.offset}seek(e){if(e<0||e>this.length)throw new Error(`Seek out of bounds: ${e} (length: ${this.length})`);this.offset=e}hasMore(){return this.offset<this.length}readChar(){let e=this.view.getInt8(this.offset);return this.offset+=1,e}readByte(){let e=this.view.getUint8(this.offset);return this.offset+=1,e}readShort(){let e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}readUShort(){let e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}readLong(){let e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}readULong(){let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readFloat(){let e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}readString(){let e="";for(;this.offset<this.length;){let t=this.readChar();if(t===-1||t===0)break;e+=String.fromCharCode(t)}return e}readStringLine(){let e="";for(;this.offset<this.length;){let t=this.readChar();if(t===-1||t===0||t===10)break;e+=String.fromCharCode(t)}return e}readCoord(){return this.readShort()*(1/8)}readAngle(){return this.readChar()*(360/256)}readAngle16(){return this.readShort()*360/65536}readData(e){if(this.offset+e>this.length)throw new Error(`Read out of bounds: ${this.offset+e} (length: ${this.length})`);let t=new Uint8Array(this.view.buffer,this.view.byteOffset+this.offset,e);return this.offset+=e,new Uint8Array(t)}readPos(e){e.x=this.readCoord(),e.y=this.readCoord(),e.z=this.readCoord()}readDir(e){let t=this.readByte();if(t>=162){e.x=0,e.y=0,e.z=0;return}let n=In[t];e.x=n[0],e.y=n[1],e.z=n[2]}},Ko=class{constructor(e=1400){typeof e=="number"?(this.buffer=new Uint8Array(e),this.fixed=!1):(this.buffer=e,this.fixed=!0),this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.offset=0}ensureSpace(e){if(this.offset+e>this.buffer.byteLength){if(this.fixed)throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset+e}`);let t=Math.max(this.buffer.byteLength*2,this.offset+e),n=new Uint8Array(t);n.set(this.buffer),this.buffer=n,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength)}}writeByte(e){this.ensureSpace(1),this.view.setUint8(this.offset,e),this.offset+=1}writeChar(e){this.ensureSpace(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureSpace(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureSpace(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureSpace(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let t=e.length;this.ensureSpace(t+1);for(let n=0;n<t;n++)this.view.setUint8(this.offset+n,e.charCodeAt(n));this.view.setUint8(this.offset+t,0),this.offset+=t+1}writeCoord(e){this.writeShort(Math.trunc(e*8))}writeAngle(e){this.writeByte(Math.trunc(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.trunc(e*65536/360)&65535)}writePos(e){this.writeCoord(e.x),this.writeCoord(e.y),this.writeCoord(e.z)}writeDir(e){let t=-1,n=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let i=0;i<In.length;i++){let r=In[i],a=e.x*r[0]+e.y*r[1]+e.z*r[2];a>t&&(t=a,n=i)}this.writeByte(n)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}},Gi=class{constructor(e=1024){this.buffer=new Uint8Array(e),this.view=new DataView(this.buffer.buffer),this.offset=0}ensureCapacity(e){if(this.offset+e>this.buffer.length){let t=Math.max(this.buffer.length*2,this.offset+e),n=new Uint8Array(t);n.set(this.buffer),this.buffer=n,this.view=new DataView(this.buffer.buffer)}}getData(){return this.buffer.slice(0,this.offset)}writeByte(e){this.ensureCapacity(1),this.view.setUint8(this.offset,e),this.offset+=1}writeChar(e){this.ensureCapacity(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureCapacity(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeUShort(e){this.ensureCapacity(2),this.view.setUint16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureCapacity(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureCapacity(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let t=e.length+1;this.ensureCapacity(t);for(let n=0;n<e.length;n++)this.view.setUint8(this.offset+n,e.charCodeAt(n));this.view.setUint8(this.offset+e.length,0),this.offset+=t}writeData(e){this.ensureCapacity(e.length),this.buffer.set(e,this.offset),this.offset+=e.length}writeCoord(e){this.writeShort(Math.round(e*8))}writeAngle(e){this.writeByte(Math.round(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.round(e*65536/360))}writeDir(e,t,n){let i=0,r=-999999,a=Math.sqrt(e*e+t*t+n*n);if(a>0){e/=a,t/=a,n/=a;for(let s=0;s<162;s++){let o=e*In[s][0]+t*In[s][1]+n*In[s][2];o>r&&(r=o,i=s)}}this.writeByte(i)}},Pn=class Ie{constructor(){this.qport=0,this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new Ko(Ie.MAX_MSGLEN);let t=Date.now();this.lastReceived=t,this.lastSent=t,this.qport=Math.floor(Math.random()*65536)}setup(t,n=null){this.qport=t,this.remoteAddress=n,this.reset()}reset(){this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.reliableMessage.reset(),this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(t){this.outgoingSequence++,this.lastSent=Date.now();let n=Ie.PACKET_HEADER,i=this.reliableLength>0?this.reliableLength+2:0,r=t?t.length:0;n+i+r>Ie.MAX_MSGLEN&&(r=Ie.MAX_MSGLEN-n-i,r<0&&(r=0));let a=new ArrayBuffer(n+i+r),s=new DataView(a),o=new Uint8Array(a),l=this.outgoingSequence;this.reliableLength>0&&(l|=2147483648,(this.outgoingReliableSequence&1)!==0&&(l|=1073741824)),s.setUint32(0,l,!0);let c=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(c|=2147483648),s.setUint32(4,c,!0),s.setUint16(8,this.qport,!0);let u=n;if(this.reliableLength>0){s.setUint16(u,this.reliableLength,!0),u+=2;let d=this.reliableMessage.getBuffer().subarray(0,this.reliableLength);o.set(d,u),u+=this.reliableLength}if(t&&r>0){let m=t.slice(0,r);o.set(m,u)}return o}process(t){if(t.length<Ie.PACKET_HEADER)return null;this.lastReceived=Date.now();let n=new DataView(t.buffer,t.byteOffset,t.byteLength),i=n.getUint32(0,!0),r=n.getUint32(4,!0),a=n.getUint16(8,!0);if(this.qport!==a)return null;let s=i&1073741823;if((s-this.incomingSequence|0)<=0)return null;this.incomingSequence=s;let o=r&2147483647,l=(r&2147483648)!==0;if(o>this.incomingAcknowledged&&(this.incomingAcknowledged=o),this.reliableLength>0){let g=l?1:0,p=this.outgoingReliableSequence&1;g!==p&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1)}let c=(i&2147483648)!==0,u=(i&1073741824)!==0?1:0,m=Ie.PACKET_HEADER,d=null;if(c){if(m+2>t.byteLength)return null;let g=n.getUint16(m,!0);m+=2;let p=this.incomingReliableSequence&1;if(u===p){if(this.incomingReliableSequence++,m+g>t.byteLength)return null;d=t.slice(m,m+g)}m+=g}let f=t.slice(m);if(d&&d.length>0){let g=d.length+f.length,p=new Uint8Array(g);return p.set(d,0),p.set(f,d.length),p}return f||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(t){if(this.reliableLength+1>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(t),this.reliableLength++}writeReliableShort(t){if(this.reliableLength+2>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(t),this.reliableLength+=2}writeReliableLong(t){if(this.reliableLength+4>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(t),this.reliableLength+=4}writeReliableString(t){let n=t.length+1;if(this.reliableLength+n>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(t),this.reliableLength+=n}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(t){return t-this.lastSent>1e3}isTimedOut(t,n=3e4){return t-this.lastReceived>n}};Pn.MAX_MSGLEN=1400;Pn.FRAGMENT_SIZE=1024;Pn.PACKET_HEADER=10;Pn.HEADER_OVERHEAD=Pn.PACKET_HEADER+2;var Nm=Pn;var zm=(e=>(e[e.Bullets=0]="Bullets",e[e.Shells=1]="Shells",e[e.Rockets=2]="Rockets",e[e.Grenades=3]="Grenades",e[e.Cells=4]="Cells",e[e.Slugs=5]="Slugs",e[e.MagSlugs=6]="MagSlugs",e[e.Trap=7]="Trap",e[e.Flechettes=8]="Flechettes",e[e.Tesla=9]="Tesla",e[e.Disruptor=10]="Disruptor",e[e.Prox=11]="Prox",e[e.Nuke=12]="Nuke",e[e.Rounds=13]="Rounds",e))(zm||{}),a7=Object.keys(zm).length/2;var ra=["blaster","shotgun","supershotgun","machinegun","chaingun","grenadelauncher","rocketlauncher","grenades","hyperblaster","railgun","bfg10k"],Om={blaster:null,shotgun:1,supershotgun:1,machinegun:0,chaingun:0,grenades:3,grenadelauncher:3,rocketlauncher:2,hyperblaster:4,railgun:5,bfg10k:4,grapple:null,chainfist:null,etf_rifle:8,prox_launcher:11,ionripper:4,plasmabeam:4,phalanx:6,disruptor:10,trap:7};var r2=Object.defineProperty,a2=(e,t)=>{for(var n in t)r2(e,n,{get:t[n],enumerable:!0})},sa=null,aa=[1,1,1,1],Im=["ch1","ch2","ch3"],$o=[null,null,null],s2=e=>{for(let t=0;t<Im.length;t++){let n=Im[t];try{$o[t]=e.Draw_RegisterPic(`pics/${n}.pcx`)}catch{if(t===0)try{$o[t]=e.Draw_RegisterPic("pics/crosshair.pcx")}catch{e.Com_Print(`Failed to load crosshair image
|
|
169
|
+
}`;var ud=class{constructor(){this._position=_e.create(),this._angles=_e.create(),this._bobAngles=_e.create(),this._bobOffset=_e.create(),this._kickAngles=_e.create(),this._rollAngle=0,this._fov=90,this._aspect=1,this._near=.1,this._far=1e3,this._viewMatrix=me.create(),this._projectionMatrix=me.create(),this._viewProjectionMatrix=me.create(),this._dirty=!0}get position(){return this._position}set position(e){_e.copy(this._position,e),this._dirty=!0}get angles(){return this._angles}set angles(e){_e.copy(this._angles,e),this._dirty=!0}get bobAngles(){return this._bobAngles}set bobAngles(e){_e.copy(this._bobAngles,e),this._dirty=!0}get kickAngles(){return this._kickAngles}set kickAngles(e){_e.copy(this._kickAngles,e),this._dirty=!0}get bobOffset(){return this._bobOffset}set bobOffset(e){_e.copy(this._bobOffset,e),this._dirty=!0}get rollAngle(){return this._rollAngle}set rollAngle(e){this._rollAngle=e,this._dirty=!0}get fov(){return this._fov}set fov(e){this._fov=e,this._dirty=!0}get aspect(){return this._aspect}set aspect(e){this._aspect=e,this._dirty=!0}get viewMatrix(){return this.updateMatrices(),this._viewMatrix}get projectionMatrix(){return this.updateMatrices(),this._projectionMatrix}get viewProjectionMatrix(){return this.updateMatrices(),this._viewProjectionMatrix}getViewmodelProjectionMatrix(e){let t=me.create();return me.perspective(t,e*hi,this._aspect,this._near,this._far),t}updateMatrices(){if(!this._dirty)return;me.perspective(this._projectionMatrix,this._fov*hi,this._aspect,this._near,this._far);let e=me.fromValues(0,-1,0,0,0,0,1,0,-1,0,0,0,0,0,0,1),t=this._angles[0]+this._bobAngles[0]+this._kickAngles[0],n=this._angles[1]+this._bobAngles[1]+this._kickAngles[1],i=this._angles[2]+this._bobAngles[2]+this._kickAngles[2]+this._rollAngle,r=t*hi,a=n*hi,s=i*hi,o=me.create();me.identity(o),me.rotateZ(o,o,-a),me.rotateY(o,o,-r),me.rotateX(o,o,-s);let l=me.create();me.multiply(l,e,o);let c=_e.add(_e.create(),this._position,this._bobOffset),u=_e.negate(_e.create(),c),m=_e.create();_e.transformMat4(m,u,o);let d=_e.fromValues(m[1]||0,m[2]||0,m[0]||0);me.copy(this._viewMatrix,l),this._viewMatrix[12]=d[0],this._viewMatrix[13]=d[1],this._viewMatrix[14]=d[2],me.multiply(this._viewProjectionMatrix,this._projectionMatrix,this._viewMatrix),this._dirty=!1}};var Jp=class{constructor(e){this.buffer=e,this.view=new DataView(e),this.offset=0}hasMore(){return this.offset<this.buffer.byteLength}readNextBlock(){if(this.offset+4>this.buffer.byteLength)return null;let e=this.view.getInt32(this.offset,!0);if(this.offset+=4,e<0||e>2097152)return console.warn(`DemoReader: Invalid block length ${e} at offset ${this.offset-4}`),null;if(this.offset+e>this.buffer.byteLength)return console.warn(`DemoReader: Incomplete block. Expected ${e} bytes, but only ${this.buffer.byteLength-this.offset} remain.`),null;let t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,{length:e,data:new $s(t)}}reset(){this.offset=0}getOffset(){return this.offset}},Qp=4,gu=0,vu=1,ey=2;function Nn(e){let t=e.length;for(;--t>=0;)e[t]=0}var ty=0,dd=1,ny=2,iy=3,ry=258,ao=29,Ri=256,Ai=Ri+1+ao,Mn=30,so=19,md=2*Ai+1,Qt=15,Ns=16,ay=7,oo=256,hd=16,fd=17,_d=18,Ys=new Uint8Array([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]),Nr=new Uint8Array([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]),sy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),gd=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),oy=512,St=new Array((Ai+2)*2);Nn(St);var vi=new Array(Mn*2);Nn(vi);var Si=new Array(oy);Nn(Si);var ki=new Array(ry-iy+1);Nn(ki);var co=new Array(ao);Nn(co);var zr=new Array(Mn);Nn(zr);function zs(e,t,n,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}var vd,pd,yd;function Os(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var wd=e=>e<256?Si[e]:Si[256+(e>>>7)],Ei=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Ue=(e,t,n)=>{e.bi_valid>Ns-n?(e.bi_buf|=t<<e.bi_valid&65535,Ei(e,e.bi_buf),e.bi_buf=t>>Ns-e.bi_valid,e.bi_valid+=n-Ns):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},st=(e,t,n)=>{Ue(e,n[t*2],n[t*2+1])},Ad=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},cy=e=>{e.bi_valid===16?(Ei(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},ly=(e,t)=>{let n=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,m,d,f,g,p=0;for(d=0;d<=Qt;d++)e.bl_count[d]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<md;c++)u=e.heap[c],d=n[n[u*2+1]*2+1]+1,d>l&&(d=l,p++),n[u*2+1]=d,!(u>i)&&(e.bl_count[d]++,f=0,u>=o&&(f=s[u-o]),g=n[u*2],e.opt_len+=g*(d+f),a&&(e.static_len+=g*(r[u*2+1]+f)));if(p!==0){do{for(d=l-1;e.bl_count[d]===0;)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[l]--,p-=2}while(p>0);for(d=l;d!==0;d--)for(u=e.bl_count[d];u!==0;)m=e.heap[--c],!(m>i)&&(n[m*2+1]!==d&&(e.opt_len+=(d-n[m*2+1])*n[m*2],n[m*2+1]=d),u--)}},Sd=(e,t,n)=>{let i=new Array(Qt+1),r=0,a,s;for(a=1;a<=Qt;a++)r=r+n[a-1]<<1,i[a]=r;for(s=0;s<=t;s++){let o=e[s*2+1];o!==0&&(e[s*2]=Ad(i[o]++,o))}},uy=()=>{let e,t,n,i,r,a=new Array(Qt+1);for(n=0,i=0;i<ao-1;i++)for(co[i]=n,e=0;e<1<<Ys[i];e++)ki[n++]=i;for(ki[n-1]=i,r=0,i=0;i<16;i++)for(zr[i]=r,e=0;e<1<<Nr[i];e++)Si[r++]=i;for(r>>=7;i<Mn;i++)for(zr[i]=r<<7,e=0;e<1<<Nr[i]-7;e++)Si[256+r++]=i;for(t=0;t<=Qt;t++)a[t]=0;for(e=0;e<=143;)St[e*2+1]=8,e++,a[8]++;for(;e<=255;)St[e*2+1]=9,e++,a[9]++;for(;e<=279;)St[e*2+1]=7,e++,a[7]++;for(;e<=287;)St[e*2+1]=8,e++,a[8]++;for(Sd(St,Ai+1,a),e=0;e<Mn;e++)vi[e*2+1]=5,vi[e*2]=Ad(e,5);vd=new zs(St,Ys,Ri+1,Ai,Qt),pd=new zs(vi,Nr,0,Mn,Qt),yd=new zs(new Array(0),sy,0,so,ay)},kd=e=>{let t;for(t=0;t<Ai;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Mn;t++)e.dyn_dtree[t*2]=0;for(t=0;t<so;t++)e.bl_tree[t*2]=0;e.dyn_ltree[oo*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Ed=e=>{e.bi_valid>8?Ei(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},pu=(e,t,n,i)=>{let r=t*2,a=n*2;return e[r]<e[a]||e[r]===e[a]&&i[t]<=i[n]},Is=(e,t,n)=>{let i=e.heap[n],r=n<<1;for(;r<=e.heap_len&&(r<e.heap_len&&pu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!pu(t,i,e.heap[r],e.depth));)e.heap[n]=e.heap[r],n=r,r<<=1;e.heap[n]=i},yu=(e,t,n)=>{let i,r,a=0,s,o;if(e.sym_next!==0)do i=e.pending_buf[e.sym_buf+a++]&255,i+=(e.pending_buf[e.sym_buf+a++]&255)<<8,r=e.pending_buf[e.sym_buf+a++],i===0?st(e,r,t):(s=ki[r],st(e,s+Ri+1,t),o=Ys[s],o!==0&&(r-=co[s],Ue(e,r,o)),i--,s=wd(i),st(e,s,n),o=Nr[s],o!==0&&(i-=zr[s],Ue(e,i,o)));while(a<e.sym_next);st(e,oo,t)},qs=(e,t)=>{let n=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,a=t.stat_desc.elems,s,o,l=-1,c;for(e.heap_len=0,e.heap_max=md,s=0;s<a;s++)n[s*2]!==0?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):n[s*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=i[c*2+1]);for(t.max_code=l,s=e.heap_len>>1;s>=1;s--)Is(e,n,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Is(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,n[c*2]=n[s*2]+n[o*2],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,n[s*2+1]=n[o*2+1]=c,e.heap[1]=c++,Is(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ly(e,t),Sd(n,l,e.bl_count)},wu=(e,t,n)=>{let i,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),t[(n+1)*2+1]=65535,i=0;i<=n;i++)a=s,s=t[(i+1)*2+1],!(++o<l&&a===s)&&(o<c?e.bl_tree[a*2]+=o:a!==0?(a!==r&&e.bl_tree[a*2]++,e.bl_tree[hd*2]++):o<=10?e.bl_tree[fd*2]++:e.bl_tree[_d*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))},Au=(e,t,n)=>{let i,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),i=0;i<=n;i++)if(a=s,s=t[(i+1)*2+1],!(++o<l&&a===s)){if(o<c)do st(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(st(e,a,e.bl_tree),o--),st(e,hd,e.bl_tree),Ue(e,o-3,2)):o<=10?(st(e,fd,e.bl_tree),Ue(e,o-3,3)):(st(e,_d,e.bl_tree),Ue(e,o-11,7));o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4)}},dy=e=>{let t;for(wu(e,e.dyn_ltree,e.l_desc.max_code),wu(e,e.dyn_dtree,e.d_desc.max_code),qs(e,e.bl_desc),t=so-1;t>=3&&e.bl_tree[gd[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},my=(e,t,n,i)=>{let r;for(Ue(e,t-257,5),Ue(e,n-1,5),Ue(e,i-4,4),r=0;r<i;r++)Ue(e,e.bl_tree[gd[r]*2+1],3);Au(e,e.dyn_ltree,t-1),Au(e,e.dyn_dtree,n-1)},hy=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return gu;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return vu;for(n=32;n<Ri;n++)if(e.dyn_ltree[n*2]!==0)return vu;return gu},Su=!1,fy=e=>{Su||(uy(),Su=!0),e.l_desc=new Os(e.dyn_ltree,vd),e.d_desc=new Os(e.dyn_dtree,pd),e.bl_desc=new Os(e.bl_tree,yd),e.bi_buf=0,e.bi_valid=0,kd(e)},bd=(e,t,n,i)=>{Ue(e,(ty<<1)+(i?1:0),3),Ed(e),Ei(e,n),Ei(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},_y=e=>{Ue(e,dd<<1,3),st(e,oo,St),cy(e)},gy=(e,t,n,i)=>{let r,a,s=0;e.level>0?(e.strm.data_type===ey&&(e.strm.data_type=hy(e)),qs(e,e.l_desc),qs(e,e.d_desc),s=dy(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=n+5,n+4<=r&&t!==-1?bd(e,t,n,i):e.strategy===Qp||a===r?(Ue(e,(dd<<1)+(i?1:0),3),yu(e,St,vi)):(Ue(e,(ny<<1)+(i?1:0),3),my(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),yu(e,e.dyn_ltree,e.dyn_dtree)),kd(e),i&&Ed(e)},vy=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(ki[n]+Ri+1)*2]++,e.dyn_dtree[wd(t)*2]++),e.sym_next===e.sym_end),py=fy,yy=bd,wy=gy,Ay=vy,Sy=_y,ky={_tr_init:py,_tr_stored_block:yy,_tr_flush_block:wy,_tr_tally:Ay,_tr_align:Sy},Ey=(e,t,n,i)=>{let r=e&65535|0,a=e>>>16&65535|0,s=0;for(;n!==0;){s=n>2e3?2e3:n,n-=s;do r=r+t[i++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0},bi=Ey,by=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},xy=new Uint32Array(by()),Ty=(e,t,n,i)=>{let r=xy,a=i+n;e^=-1;for(let s=i;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1},Te=Ty,nn={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},sn={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:My,_tr_stored_block:js,_tr_flush_block:Ry,_tr_tally:Ct,_tr_align:Ly}=ky,{Z_NO_FLUSH:Pt,Z_PARTIAL_FLUSH:Ny,Z_FULL_FLUSH:zy,Z_FINISH:je,Z_BLOCK:ku,Z_OK:Ne,Z_STREAM_END:Eu,Z_STREAM_ERROR:ot,Z_DATA_ERROR:Oy,Z_BUF_ERROR:Cs,Z_DEFAULT_COMPRESSION:Iy,Z_FILTERED:Cy,Z_HUFFMAN_ONLY:xr,Z_RLE:Py,Z_FIXED:Dy,Z_DEFAULT_STRATEGY:Fy,Z_UNKNOWN:Uy,Z_DEFLATED:Kr}=sn,By=9,Gy=15,Hy=8,Vy=29,Wy=256,Zs=Wy+1+Vy,Ky=30,$y=19,Xy=2*Zs+1,Yy=15,te=3,It=258,ct=It+te+1,qy=32,Rn=42,lo=57,Js=69,Qs=73,eo=91,to=103,en=113,_i=666,Oe=1,zn=2,rn=3,On=4,jy=3,tn=(e,t)=>(e.msg=nn[t],t),bu=e=>e*2-(e>4?9:0),Ot=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Zy=e=>{let t,n,i,r=e.w_size;t=e.hash_size,i=t;do n=e.head[--i],e.head[i]=n>=r?n-r:0;while(--t);t=r,i=t;do n=e.prev[--i],e.prev[i]=n>=r?n-r:0;while(--t)},Jy=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,Dt=Jy,He=e=>{let t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Ve=(e,t)=>{Ry(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,He(e.strm)},re=(e,t)=>{e.pending_buf[e.pending++]=t},fi=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},no=(e,t,n,i)=>{let r=e.avail_in;return r>i&&(r=i),r===0?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),n),e.state.wrap===1?e.adler=bi(e.adler,t,r,n):e.state.wrap===2&&(e.adler=Te(e.adler,t,r,n)),e.next_in+=r,e.total_in+=r,r)},xd=(e,t)=>{let n=e.max_chain_length,i=e.strstart,r,a,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-ct?e.strstart-(e.w_size-ct):0,c=e.window,u=e.w_mask,m=e.prev,d=e.strstart+It,f=c[i+s-1],g=c[i+s];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(c[r+s]!==g||c[r+s-1]!==f||c[r]!==c[i]||c[++r]!==c[i+1])){i+=2,r++;do;while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&i<d);if(a=It-(d-i),i=d-It,a>s){if(e.match_start=t,s=a,a>=o)break;f=c[i+s-1],g=c[i+s]}}while((t=m[t&u])>l&&--n!==0);return s<=e.lookahead?s:e.lookahead},Ln=e=>{let t=e.w_size,n,i,r;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ct)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Zy(e),i+=t),e.strm.avail_in===0)break;if(n=no(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=n,e.lookahead+e.insert>=te)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=Dt(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=Dt(e,e.ins_h,e.window[r+te-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<te)););}while(e.lookahead<ct&&e.strm.avail_in!==0)},Td=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,i,r,a,s=0,o=e.strm.avail_in;do{if(i=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,r=e.strstart-e.block_start,i>r+e.strm.avail_in&&(i=r+e.strm.avail_in),i>a&&(i=a),i<n&&(i===0&&t!==je||t===Pt||i!==r+e.strm.avail_in)))break;s=t===je&&i===r+e.strm.avail_in?1:0,js(e,0,0,s),e.pending_buf[e.pending-4]=i,e.pending_buf[e.pending-3]=i>>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,He(e.strm),r&&(r>i&&(r=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,i-=r),i&&(no(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(s===0);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),s?On:t!==Pt&&t!==je&&e.strm.avail_in===0&&e.strstart===e.block_start?zn:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(no(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,r=e.strstart-e.block_start,(r>=n||(r||t===je)&&t!==Pt&&e.strm.avail_in===0&&r<=a)&&(i=r>a?a:r,s=t===je&&e.strm.avail_in===0&&i===r?1:0,js(e,e.block_start,i,s),e.block_start+=i,He(e.strm)),s?rn:Oe)},Ps=(e,t)=>{let n,i;for(;;){if(e.lookahead<ct){if(Ln(e),e.lookahead<ct&&t===Pt)return Oe;if(e.lookahead===0)break}if(n=0,e.lookahead>=te&&(e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-ct&&(e.match_length=xd(e,n)),e.match_length>=te)if(i=Ct(e,e.strstart-e.match_start,e.match_length-te),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=te){e.match_length--;do e.strstart++,e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+1]);else i=Ct(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(Ve(e,!1),e.strm.avail_out===0))return Oe}return e.insert=e.strstart<te-1?e.strstart:te-1,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn},bn=(e,t)=>{let n,i,r;for(;;){if(e.lookahead<ct){if(Ln(e),e.lookahead<ct&&t===Pt)return Oe;if(e.lookahead===0)break}if(n=0,e.lookahead>=te&&(e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=te-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ct&&(e.match_length=xd(e,n),e.match_length<=5&&(e.strategy===Cy||e.match_length===te&&e.strstart-e.match_start>4096)&&(e.match_length=te-1)),e.prev_length>=te&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-te,i=Ct(e,e.strstart-1-e.prev_match,e.prev_length-te),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=Dt(e,e.ins_h,e.window[e.strstart+te-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=te-1,e.strstart++,i&&(Ve(e,!1),e.strm.avail_out===0))return Oe}else if(e.match_available){if(i=Ct(e,0,e.window[e.strstart-1]),i&&Ve(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Oe}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Ct(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<te-1?e.strstart:te-1,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn},Qy=(e,t)=>{let n,i,r,a,s=e.window;for(;;){if(e.lookahead<=It){if(Ln(e),e.lookahead<=It&&t===Pt)return Oe;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=te&&e.strstart>0&&(r=e.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){a=e.strstart+It;do;while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&r<a);e.match_length=It-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=te?(n=Ct(e,1,e.match_length-te),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Ct(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Ve(e,!1),e.strm.avail_out===0))return Oe}return e.insert=0,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn},ew=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Ln(e),e.lookahead===0)){if(t===Pt)return Oe;break}if(e.match_length=0,n=Ct(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Ve(e,!1),e.strm.avail_out===0))return Oe}return e.insert=0,t===je?(Ve(e,!0),e.strm.avail_out===0?rn:On):e.sym_next&&(Ve(e,!1),e.strm.avail_out===0)?Oe:zn};function at(e,t,n,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=i,this.func=r}var gi=[new at(0,0,0,0,Td),new at(4,4,8,4,Ps),new at(4,5,16,8,Ps),new at(4,6,32,32,Ps),new at(4,4,16,16,bn),new at(8,16,32,32,bn),new at(8,16,128,128,bn),new at(8,32,128,256,bn),new at(32,128,258,1024,bn),new at(32,258,258,4096,bn)],tw=e=>{e.window_size=2*e.w_size,Ot(e.head),e.max_lazy_match=gi[e.level].max_lazy,e.good_match=gi[e.level].good_length,e.nice_match=gi[e.level].nice_length,e.max_chain_length=gi[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=te-1,e.match_available=0,e.ins_h=0};function nw(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Kr,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Xy*2),this.dyn_dtree=new Uint16Array((2*Ky+1)*2),this.bl_tree=new Uint16Array((2*$y+1)*2),Ot(this.dyn_ltree),Ot(this.dyn_dtree),Ot(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Yy+1),this.heap=new Uint16Array(2*Zs+1),Ot(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Zs+1),Ot(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Li=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==Rn&&t.status!==lo&&t.status!==Js&&t.status!==Qs&&t.status!==eo&&t.status!==to&&t.status!==en&&t.status!==_i?1:0},Md=e=>{if(Li(e))return tn(e,ot);e.total_in=e.total_out=0,e.data_type=Uy;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?lo:t.wrap?Rn:en,e.adler=t.wrap===2?0:1,t.last_flush=-2,My(t),Ne},Rd=e=>{let t=Md(e);return t===Ne&&tw(e.state),t},iw=(e,t)=>Li(e)||e.state.wrap!==2?ot:(e.state.gzhead=t,Ne),Ld=(e,t,n,i,r,a)=>{if(!e)return ot;let s=1;if(t===Iy&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>By||n!==Kr||i<8||i>15||t<0||t>9||a<0||a>Dy||i===8&&s!==1)return tn(e,ot);i===8&&(i=9);let o=new nw;return e.state=o,o.strm=e,o.status=Rn,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+te-1)/te),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=t,o.strategy=a,o.method=n,Rd(e)},rw=(e,t)=>Ld(e,t,Kr,Gy,Hy,Fy),aw=(e,t)=>{if(Li(e)||t>ku||t<0)return e?tn(e,ot):ot;let n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===_i&&t!==je)return tn(e,e.avail_out===0?Cs:ot);let i=n.last_flush;if(n.last_flush=t,n.pending!==0){if(He(e),e.avail_out===0)return n.last_flush=-1,Ne}else if(e.avail_in===0&&bu(t)<=bu(i)&&t!==je)return tn(e,Cs);if(n.status===_i&&e.avail_in!==0)return tn(e,Cs);if(n.status===Rn&&n.wrap===0&&(n.status=en),n.status===Rn){let r=Kr+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=xr||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,r|=a<<6,n.strstart!==0&&(r|=qy),r+=31-r%31,fi(n,r),n.strstart!==0&&(fi(n,e.adler>>>16),fi(n,e.adler&65535)),e.adler=1,n.status=en,He(e),n.pending!==0)return n.last_flush=-1,Ne}if(n.status===lo){if(e.adler=0,re(n,31),re(n,139),re(n,8),n.gzhead)re(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),re(n,n.gzhead.time&255),re(n,n.gzhead.time>>8&255),re(n,n.gzhead.time>>16&255),re(n,n.gzhead.time>>24&255),re(n,n.level===9?2:n.strategy>=xr||n.level<2?4:0),re(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(re(n,n.gzhead.extra.length&255),re(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Te(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Js;else if(re(n,0),re(n,0),re(n,0),re(n,0),re(n,0),re(n,n.level===9?2:n.strategy>=xr||n.level<2?4:0),re(n,jy),n.status=en,He(e),n.pending!==0)return n.last_flush=-1,Ne}if(n.status===Js){if(n.gzhead.extra){let r=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let o=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+o),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex+=o,He(e),n.pending!==0)return n.last_flush=-1,Ne;r=0,a-=o}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex=0}n.status=Qs}if(n.status===Qs){if(n.gzhead.name){let r=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),He(e),n.pending!==0)return n.last_flush=-1,Ne;r=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,re(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex=0}n.status=eo}if(n.status===eo){if(n.gzhead.comment){let r=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r)),He(e),n.pending!==0)return n.last_flush=-1,Ne;r=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,re(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Te(e.adler,n.pending_buf,n.pending-r,r))}n.status=to}if(n.status===to){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(He(e),n.pending!==0))return n.last_flush=-1,Ne;re(n,e.adler&255),re(n,e.adler>>8&255),e.adler=0}if(n.status=en,He(e),n.pending!==0)return n.last_flush=-1,Ne}if(e.avail_in!==0||n.lookahead!==0||t!==Pt&&n.status!==_i){let r=n.level===0?Td(n,t):n.strategy===xr?ew(n,t):n.strategy===Py?Qy(n,t):gi[n.level].func(n,t);if((r===rn||r===On)&&(n.status=_i),r===Oe||r===rn)return e.avail_out===0&&(n.last_flush=-1),Ne;if(r===zn&&(t===Ny?Ly(n):t!==ku&&(js(n,0,0,!1),t===zy&&(Ot(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),He(e),e.avail_out===0))return n.last_flush=-1,Ne}return t!==je?Ne:n.wrap<=0?Eu:(n.wrap===2?(re(n,e.adler&255),re(n,e.adler>>8&255),re(n,e.adler>>16&255),re(n,e.adler>>24&255),re(n,e.total_in&255),re(n,e.total_in>>8&255),re(n,e.total_in>>16&255),re(n,e.total_in>>24&255)):(fi(n,e.adler>>>16),fi(n,e.adler&65535)),He(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Ne:Eu)},sw=e=>{if(Li(e))return ot;let t=e.state.status;return e.state=null,t===en?tn(e,Oy):Ne},ow=(e,t)=>{let n=t.length;if(Li(e))return ot;let i=e.state,r=i.wrap;if(r===2||r===1&&i.status!==Rn||i.lookahead)return ot;if(r===1&&(e.adler=bi(e.adler,t,n,0)),i.wrap=0,n>=i.w_size){r===0&&(Ot(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(n-i.w_size,n),0),t=l,n=i.w_size}let a=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Ln(i);i.lookahead>=te;){let l=i.strstart,c=i.lookahead-(te-1);do i.ins_h=Dt(i,i.ins_h,i.window[l+te-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=te-1,Ln(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=te-1,i.match_available=0,e.next_in=s,e.input=o,e.avail_in=a,i.wrap=r,Ne},cw=rw,lw=Ld,uw=Rd,dw=Md,mw=iw,hw=aw,fw=sw,_w=ow,gw="pako deflate (from Nodeca project)",pi={deflateInit:cw,deflateInit2:lw,deflateReset:uw,deflateResetKeep:dw,deflateSetHeader:mw,deflate:hw,deflateEnd:fw,deflateSetDictionary:_w,deflateInfo:gw},vw=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),pw=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(let i in n)vw(n,i)&&(e[i]=n[i])}}return e},yw=e=>{let t=0;for(let i=0,r=e.length;i<r;i++)t+=e[i].length;let n=new Uint8Array(t);for(let i=0,r=0,a=e.length;i<a;i++){let s=e[i];n.set(s,r),r+=s.length}return n},$r={assign:pw,flattenChunks:yw},Nd=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Nd=!1}var xi=new Uint8Array(256);for(let e=0;e<256;e++)xi[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;xi[254]=xi[254]=1;var ww=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,i,r,a,s=e.length,o=0;for(r=0;r<s;r++)n=e.charCodeAt(r),(n&64512)===55296&&r+1<s&&(i=e.charCodeAt(r+1),(i&64512)===56320&&(n=65536+(n-55296<<10)+(i-56320),r++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(o),a=0,r=0;a<o;r++)n=e.charCodeAt(r),(n&64512)===55296&&r+1<s&&(i=e.charCodeAt(r+1),(i&64512)===56320&&(n=65536+(n-55296<<10)+(i-56320),r++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|n&63):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|n&63):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|n&63);return t},Aw=(e,t)=>{if(t<65534&&e.subarray&&Nd)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n},Sw=(e,t)=>{let n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let i,r,a=new Array(n*2);for(r=0,i=0;i<n;){let s=e[i++];if(s<128){a[r++]=s;continue}let o=xi[s];if(o>4){a[r++]=65533,i+=o-1;continue}for(s&=o===2?31:o===3?15:7;o>1&&i<n;)s=s<<6|e[i++]&63,o--;if(o>1){a[r++]=65533;continue}s<65536?a[r++]=s:(s-=65536,a[r++]=55296|s>>10&1023,a[r++]=56320|s&1023)}return Aw(a,r)},kw=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+xi[e[n]]>t?n:t},Ti={string2buf:ww,buf2string:Sw,utf8border:kw};function Ew(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zd=Ew,Od=Object.prototype.toString,{Z_NO_FLUSH:bw,Z_SYNC_FLUSH:xw,Z_FULL_FLUSH:Tw,Z_FINISH:Mw,Z_OK:Or,Z_STREAM_END:Rw,Z_DEFAULT_COMPRESSION:Lw,Z_DEFAULT_STRATEGY:Nw,Z_DEFLATED:zw}=sn;function Ni(e){this.options=$r.assign({level:Lw,method:zw,chunkSize:16384,windowBits:15,memLevel:8,strategy:Nw},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zd,this.strm.avail_out=0;let n=pi.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Or)throw new Error(nn[n]);if(t.header&&pi.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=Ti.string2buf(t.dictionary):Od.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,n=pi.deflateSetDictionary(this.strm,i),n!==Or)throw new Error(nn[n]);this._dict_set=!0}}Ni.prototype.push=function(e,t){let n=this.strm,i=this.options.chunkSize,r,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?Mw:bw,typeof e=="string"?n.input=Ti.string2buf(e):Od.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),(a===xw||a===Tw)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(r=pi.deflate(n,a),r===Rw)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=pi.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Or;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Ni.prototype.onData=function(e){this.chunks.push(e)};Ni.prototype.onEnd=function(e){e===Or&&(this.result=$r.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function uo(e,t){let n=new Ni(t);if(n.push(e,!0),n.err)throw n.msg||nn[n.err];return n.result}function Ow(e,t){return t=t||{},t.raw=!0,uo(e,t)}function Iw(e,t){return t=t||{},t.gzip=!0,uo(e,t)}var Cw=Ni,Pw=uo,Dw=Ow,Fw=Iw,Uw=sn,Bw={Deflate:Cw,deflate:Pw,deflateRaw:Dw,gzip:Fw,constants:Uw},Tr=16209,Gw=16191,Hw=function(t,n){let i,r,a,s,o,l,c,u,m,d,f,g,p,v,w,L,k,y,E,x,T,O,b,S,N=t.state;i=t.next_in,b=t.input,r=i+(t.avail_in-5),a=t.next_out,S=t.output,s=a-(n-t.avail_out),o=a+(t.avail_out-257),l=N.dmax,c=N.wsize,u=N.whave,m=N.wnext,d=N.window,f=N.hold,g=N.bits,p=N.lencode,v=N.distcode,w=(1<<N.lenbits)-1,L=(1<<N.distbits)-1;e:do{g<15&&(f+=b[i++]<<g,g+=8,f+=b[i++]<<g,g+=8),k=p[f&w];t:for(;;){if(y=k>>>24,f>>>=y,g-=y,y=k>>>16&255,y===0)S[a++]=k&65535;else if(y&16){E=k&65535,y&=15,y&&(g<y&&(f+=b[i++]<<g,g+=8),E+=f&(1<<y)-1,f>>>=y,g-=y),g<15&&(f+=b[i++]<<g,g+=8,f+=b[i++]<<g,g+=8),k=v[f&L];n:for(;;){if(y=k>>>24,f>>>=y,g-=y,y=k>>>16&255,y&16){if(x=k&65535,y&=15,g<y&&(f+=b[i++]<<g,g+=8,g<y&&(f+=b[i++]<<g,g+=8)),x+=f&(1<<y)-1,x>l){t.msg="invalid distance too far back",N.mode=Tr;break e}if(f>>>=y,g-=y,y=a-s,x>y){if(y=x-y,y>u&&N.sane){t.msg="invalid distance too far back",N.mode=Tr;break e}if(T=0,O=d,m===0){if(T+=c-y,y<E){E-=y;do S[a++]=d[T++];while(--y);T=a-x,O=S}}else if(m<y){if(T+=c+m-y,y-=m,y<E){E-=y;do S[a++]=d[T++];while(--y);if(T=0,m<E){y=m,E-=y;do S[a++]=d[T++];while(--y);T=a-x,O=S}}}else if(T+=m-y,y<E){E-=y;do S[a++]=d[T++];while(--y);T=a-x,O=S}for(;E>2;)S[a++]=O[T++],S[a++]=O[T++],S[a++]=O[T++],E-=3;E&&(S[a++]=O[T++],E>1&&(S[a++]=O[T++]))}else{T=a-x;do S[a++]=S[T++],S[a++]=S[T++],S[a++]=S[T++],E-=3;while(E>2);E&&(S[a++]=S[T++],E>1&&(S[a++]=S[T++]))}}else if((y&64)===0){k=v[(k&65535)+(f&(1<<y)-1)];continue n}else{t.msg="invalid distance code",N.mode=Tr;break e}break}}else if((y&64)===0){k=p[(k&65535)+(f&(1<<y)-1)];continue t}else if(y&32){N.mode=Gw;break e}else{t.msg="invalid literal/length code",N.mode=Tr;break e}break}}while(i<r&&a<o);E=g>>3,i-=E,g-=E<<3,f&=(1<<g)-1,t.next_in=i,t.next_out=a,t.avail_in=i<r?5+(r-i):5-(i-r),t.avail_out=a<o?257+(o-a):257-(a-o),N.hold=f,N.bits=g},xn=15,xu=852,Tu=592,Mu=0,Ds=1,Ru=2,Vw=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ww=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Kw=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),$w=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Xw=(e,t,n,i,r,a,s,o)=>{let l=o.bits,c=0,u=0,m=0,d=0,f=0,g=0,p=0,v=0,w=0,L=0,k,y,E,x,T,O=null,b,S=new Uint16Array(xn+1),N=new Uint16Array(xn+1),Z=null,ce,Q,M;for(c=0;c<=xn;c++)S[c]=0;for(u=0;u<i;u++)S[t[n+u]]++;for(f=l,d=xn;d>=1&&S[d]===0;d--);if(f>d&&(f=d),d===0)return r[a++]=1<<24|64<<16|0,r[a++]=1<<24|64<<16|0,o.bits=1,0;for(m=1;m<d&&S[m]===0;m++);for(f<m&&(f=m),v=1,c=1;c<=xn;c++)if(v<<=1,v-=S[c],v<0)return-1;if(v>0&&(e===Mu||d!==1))return-1;for(N[1]=0,c=1;c<xn;c++)N[c+1]=N[c]+S[c];for(u=0;u<i;u++)t[n+u]!==0&&(s[N[t[n+u]]++]=u);if(e===Mu?(O=Z=s,b=20):e===Ds?(O=Vw,Z=Ww,b=257):(O=Kw,Z=$w,b=0),L=0,u=0,c=m,T=a,g=f,p=0,E=-1,w=1<<f,x=w-1,e===Ds&&w>xu||e===Ru&&w>Tu)return 1;for(;;){ce=c-p,s[u]+1<b?(Q=0,M=s[u]):s[u]>=b?(Q=Z[s[u]-b],M=O[s[u]-b]):(Q=96,M=0),k=1<<c-p,y=1<<g,m=y;do y-=k,r[T+(L>>p)+y]=ce<<24|Q<<16|M|0;while(y!==0);for(k=1<<c-1;L&k;)k>>=1;if(k!==0?(L&=k-1,L+=k):L=0,u++,--S[c]===0){if(c===d)break;c=t[n+s[u]]}if(c>f&&(L&x)!==E){for(p===0&&(p=f),T+=m,g=c-p,v=1<<g;g+p<d&&(v-=S[g+p],!(v<=0));)g++,v<<=1;if(w+=1<<g,e===Ds&&w>xu||e===Ru&&w>Tu)return 1;E=L&x,r[E]=f<<24|g<<16|T-a|0}}return L!==0&&(r[T+L]=c-p<<24|64<<16|0),o.bits=f,0},yi=Xw,Yw=0,Id=1,Cd=2,{Z_FINISH:Lu,Z_BLOCK:qw,Z_TREES:Mr,Z_OK:an,Z_STREAM_END:jw,Z_NEED_DICT:Zw,Z_STREAM_ERROR:Ze,Z_DATA_ERROR:Pd,Z_MEM_ERROR:Dd,Z_BUF_ERROR:Jw,Z_DEFLATED:Nu}=sn,Xr=16180,zu=16181,Ou=16182,Iu=16183,Cu=16184,Pu=16185,Du=16186,Fu=16187,Uu=16188,Bu=16189,Ir=16190,At=16191,Fs=16192,Gu=16193,Us=16194,Hu=16195,Vu=16196,Wu=16197,Ku=16198,Rr=16199,Lr=16200,$u=16201,Xu=16202,Yu=16203,qu=16204,ju=16205,Bs=16206,Zu=16207,Ju=16208,ge=16209,Fd=16210,Ud=16211,Qw=852,eA=592,tA=15,nA=tA,Qu=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function iA(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var on=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<Xr||t.mode>Ud?1:0},Bd=e=>{if(on(e))return Ze;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Xr,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Qw),t.distcode=t.distdyn=new Int32Array(eA),t.sane=1,t.back=-1,an},Gd=e=>{if(on(e))return Ze;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Bd(e)},Hd=(e,t)=>{let n;if(on(e))return Ze;let i=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Ze:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=n,i.wbits=t,Gd(e))},Vd=(e,t)=>{if(!e)return Ze;let n=new iA;e.state=n,n.strm=e,n.window=null,n.mode=Xr;let i=Hd(e,t);return i!==an&&(e.state=null),i},rA=e=>Vd(e,nA),ed=!0,Gs,Hs,aA=e=>{if(ed){Gs=new Int32Array(512),Hs=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(yi(Id,e.lens,0,288,Gs,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;yi(Cd,e.lens,0,32,Hs,0,e.work,{bits:5}),ed=!1}e.lencode=Gs,e.lenbits=9,e.distcode=Hs,e.distbits=5},Wd=(e,t,n,i)=>{let r,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(t.subarray(n-i,n-i+r),a.wnext),i-=r,i?(a.window.set(t.subarray(n-i,n),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0},sA=(e,t)=>{let n,i,r,a,s,o,l,c,u,m,d,f,g,p,v=0,w,L,k,y,E,x,T,O,b=new Uint8Array(4),S,N,Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(on(e)||!e.output||!e.input&&e.avail_in!==0)return Ze;n=e.state,n.mode===At&&(n.mode=Fs),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,i=e.input,o=e.avail_in,c=n.hold,u=n.bits,m=o,d=l,O=an;e:for(;;)switch(n.mode){case Xr:if(n.wrap===0){n.mode=Fs;break}for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0),c=0,u=0,n.mode=zu;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=ge;break}if((c&15)!==Nu){e.msg="unknown compression method",n.mode=ge;break}if(c>>>=4,u-=4,T=(c&15)+8,n.wbits===0&&(n.wbits=T),T>15||T>n.wbits){e.msg="invalid window size",n.mode=ge;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?Bu:At,c=0,u=0;break;case zu:for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==Nu){e.msg="unknown compression method",n.mode=ge;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=ge;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0)),c=0,u=0,n.mode=Ou;case Ou:for(;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,b[2]=c>>>16&255,b[3]=c>>>24&255,n.check=Te(n.check,b,4,0)),c=0,u=0,n.mode=Iu;case Iu:for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0)),c=0,u=0,n.mode=Cu;case Cu:if(n.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(b[0]=c&255,b[1]=c>>>8&255,n.check=Te(n.check,b,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=Pu;case Pu:if(n.flags&1024&&(f=n.length,f>o&&(f=o),f&&(n.head&&(T=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(a,a+f),T)),n.flags&512&&n.wrap&4&&(n.check=Te(n.check,i,f,a)),o-=f,a+=f,n.length-=f),n.length))break e;n.length=0,n.mode=Du;case Du:if(n.flags&2048){if(o===0)break e;f=0;do T=i[a+f++],n.head&&T&&n.length<65536&&(n.head.name+=String.fromCharCode(T));while(T&&f<o);if(n.flags&512&&n.wrap&4&&(n.check=Te(n.check,i,f,a)),o-=f,a+=f,T)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Fu;case Fu:if(n.flags&4096){if(o===0)break e;f=0;do T=i[a+f++],n.head&&T&&n.length<65536&&(n.head.comment+=String.fromCharCode(T));while(T&&f<o);if(n.flags&512&&n.wrap&4&&(n.check=Te(n.check,i,f,a)),o-=f,a+=f,T)break e}else n.head&&(n.head.comment=null);n.mode=Uu;case Uu:if(n.flags&512){for(;u<16;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=ge;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=At;break;case Bu:for(;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}e.adler=n.check=Qu(c),c=0,u=0,n.mode=Ir;case Ir:if(n.havedict===0)return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,Zw;e.adler=n.check=1,n.mode=At;case At:if(t===qw||t===Mr)break e;case Fs:if(n.last){c>>>=u&7,u-=u&7,n.mode=Bs;break}for(;u<3;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=Gu;break;case 1:if(aA(n),n.mode=Rr,t===Mr){c>>>=2,u-=2;break e}break;case 2:n.mode=Vu;break;case 3:e.msg="invalid block type",n.mode=ge}c>>>=2,u-=2;break;case Gu:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=ge;break}if(n.length=c&65535,c=0,u=0,n.mode=Us,t===Mr)break e;case Us:n.mode=Hu;case Hu:if(f=n.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;r.set(i.subarray(a,a+f),s),o-=f,a+=f,l-=f,s+=f,n.length-=f;break}n.mode=At;break;case Vu:for(;u<14;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ge;break}n.have=0,n.mode=Wu;case Wu:for(;n.have<n.ncode;){for(;u<3;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.lens[Z[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[Z[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},O=yi(Yw,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,O){e.msg="invalid code lengths set",n.mode=ge;break}n.have=0,n.mode=Ku;case Ku:for(;n.have<n.nlen+n.ndist;){for(;v=n.lencode[c&(1<<n.lenbits)-1],w=v>>>24,L=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(k<16)c>>>=w,u-=w,n.lens[n.have++]=k;else{if(k===16){for(N=w+2;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(c>>>=w,u-=w,n.have===0){e.msg="invalid bit length repeat",n.mode=ge;break}T=n.lens[n.have-1],f=3+(c&3),c>>>=2,u-=2}else if(k===17){for(N=w+3;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=w,u-=w,T=0,f=3+(c&7),c>>>=3,u-=3}else{for(N=w+7;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=w,u-=w,T=0,f=11+(c&127),c>>>=7,u-=7}if(n.have+f>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ge;break}for(;f--;)n.lens[n.have++]=T}}if(n.mode===ge)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=ge;break}if(n.lenbits=9,S={bits:n.lenbits},O=yi(Id,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,O){e.msg="invalid literal/lengths set",n.mode=ge;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},O=yi(Cd,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,O){e.msg="invalid distances set",n.mode=ge;break}if(n.mode=Rr,t===Mr)break e;case Rr:n.mode=Lr;case Lr:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,Hw(e,d),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,i=e.input,o=e.avail_in,c=n.hold,u=n.bits,n.mode===At&&(n.back=-1);break}for(n.back=0;v=n.lencode[c&(1<<n.lenbits)-1],w=v>>>24,L=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(L&&(L&240)===0){for(y=w,E=L,x=k;v=n.lencode[x+((c&(1<<y+E)-1)>>y)],w=v>>>24,L=v>>>16&255,k=v&65535,!(y+w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=w,u-=w,n.back+=w,n.length=k,L===0){n.mode=ju;break}if(L&32){n.back=-1,n.mode=At;break}if(L&64){e.msg="invalid literal/length code",n.mode=ge;break}n.extra=L&15,n.mode=$u;case $u:if(n.extra){for(N=n.extra;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Xu;case Xu:for(;v=n.distcode[c&(1<<n.distbits)-1],w=v>>>24,L=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if((L&240)===0){for(y=w,E=L,x=k;v=n.distcode[x+((c&(1<<y+E)-1)>>y)],w=v>>>24,L=v>>>16&255,k=v&65535,!(y+w<=u);){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=w,u-=w,n.back+=w,L&64){e.msg="invalid distance code",n.mode=ge;break}n.offset=k,n.extra=L&15,n.mode=Yu;case Yu:if(n.extra){for(N=n.extra;u<N;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ge;break}n.mode=qu;case qu:if(l===0)break e;if(f=d-l,n.offset>f){if(f=n.offset-f,f>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ge;break}f>n.wnext?(f-=n.wnext,g=n.wsize-f):g=n.wnext-f,f>n.length&&(f=n.length),p=n.window}else p=r,g=s-n.offset,f=n.length;f>l&&(f=l),l-=f,n.length-=f;do r[s++]=p[g++];while(--f);n.length===0&&(n.mode=Lr);break;case ju:if(l===0)break e;r[s++]=n.length,l--,n.mode=Lr;break;case Bs:if(n.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[a++]<<u,u+=8}if(d-=l,e.total_out+=d,n.total+=d,n.wrap&4&&d&&(e.adler=n.check=n.flags?Te(n.check,r,d,s-d):bi(n.check,r,d,s-d)),d=l,n.wrap&4&&(n.flags?c:Qu(c))!==n.check){e.msg="incorrect data check",n.mode=ge;break}c=0,u=0}n.mode=Zu;case Zu:if(n.wrap&&n.flags){for(;u<32;){if(o===0)break e;o--,c+=i[a++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=ge;break}c=0,u=0}n.mode=Ju;case Ju:O=jw;break e;case ge:O=Pd;break e;case Fd:return Dd;case Ud:default:return Ze}return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,(n.wsize||d!==e.avail_out&&n.mode<ge&&(n.mode<Bs||t!==Lu))&&Wd(e,e.output,e.next_out,d-e.avail_out),m-=e.avail_in,d-=e.avail_out,e.total_in+=m,e.total_out+=d,n.total+=d,n.wrap&4&&d&&(e.adler=n.check=n.flags?Te(n.check,r,d,e.next_out-d):bi(n.check,r,d,e.next_out-d)),e.data_type=n.bits+(n.last?64:0)+(n.mode===At?128:0)+(n.mode===Rr||n.mode===Us?256:0),(m===0&&d===0||t===Lu)&&O===an&&(O=Jw),O},oA=e=>{if(on(e))return Ze;let t=e.state;return t.window&&(t.window=null),e.state=null,an},cA=(e,t)=>{if(on(e))return Ze;let n=e.state;return(n.wrap&2)===0?Ze:(n.head=t,t.done=!1,an)},lA=(e,t)=>{let n=t.length,i,r,a;return on(e)||(i=e.state,i.wrap!==0&&i.mode!==Ir)?Ze:i.mode===Ir&&(r=1,r=bi(r,t,n,0),r!==i.check)?Pd:(a=Wd(e,t,n,n),a?(i.mode=Fd,Dd):(i.havedict=1,an))},uA=Gd,dA=Hd,mA=Bd,hA=rA,fA=Vd,_A=sA,gA=oA,vA=cA,pA=lA,yA="pako inflate (from Nodeca project)",kt={inflateReset:uA,inflateReset2:dA,inflateResetKeep:mA,inflateInit:hA,inflateInit2:fA,inflate:_A,inflateEnd:gA,inflateGetHeader:vA,inflateSetDictionary:pA,inflateInfo:yA};function wA(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var AA=wA,Kd=Object.prototype.toString,{Z_NO_FLUSH:SA,Z_FINISH:kA,Z_OK:Mi,Z_STREAM_END:Vs,Z_NEED_DICT:Ws,Z_STREAM_ERROR:EA,Z_DATA_ERROR:td,Z_MEM_ERROR:bA}=sn;function zi(e){this.options=$r.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zd,this.strm.avail_out=0;let n=kt.inflateInit2(this.strm,t.windowBits);if(n!==Mi)throw new Error(nn[n]);if(this.header=new AA,kt.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Ti.string2buf(t.dictionary):Kd.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=kt.inflateSetDictionary(this.strm,t.dictionary),n!==Mi)))throw new Error(nn[n])}zi.prototype.push=function(e,t){let n=this.strm,i=this.options.chunkSize,r=this.options.dictionary,a,s,o;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?kA:SA,Kd.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),a=kt.inflate(n,s),a===Ws&&r&&(a=kt.inflateSetDictionary(n,r),a===Mi?a=kt.inflate(n,s):a===td&&(a=Ws));n.avail_in>0&&a===Vs&&n.state.wrap>0&&e[n.next_in]!==0;)kt.inflateReset(n),a=kt.inflate(n,s);switch(a){case EA:case td:case Ws:case bA:return this.onEnd(a),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(n.avail_out===0||a===Vs))if(this.options.to==="string"){let l=Ti.utf8border(n.output,n.next_out),c=n.next_out-l,u=Ti.buf2string(n.output,l);n.next_out=c,n.avail_out=i-c,c&&n.output.set(n.output.subarray(l,l+c),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===Mi&&o===0)){if(a===Vs)return a=kt.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};zi.prototype.onData=function(e){this.chunks.push(e)};zi.prototype.onEnd=function(e){e===Mi&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$r.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function mo(e,t){let n=new zi(t);if(n.push(e),n.err)throw n.msg||nn[n.err];return n.result}function xA(e,t){return t=t||{},t.raw=!0,mo(e,t)}var TA=zi,MA=mo,RA=xA,LA=mo,NA=sn,zA={Inflate:TA,inflate:MA,inflateRaw:RA,ungzip:LA,constants:NA},{Deflate:OA,deflate:IA,deflateRaw:CA,gzip:PA}=Bw,{Inflate:DA,inflate:FA,inflateRaw:UA,ungzip:BA}=zA,GA=OA,HA=IA,VA=CA,WA=PA,KA=DA,$A=FA,XA=UA,YA=BA,qA=sn,nd={Deflate:GA,deflate:HA,deflateRaw:VA,gzip:WA,Inflate:KA,inflate:$A,inflateRaw:XA,ungzip:YA,constants:qA},Cr=2023,ho=1,fo=2,_o=4,go=8,vo=16,po=32,$d=64,jA=128,ZA=256,yo=512,wo=1024,Ao=2048,Pr=4096,So=8192,Dr=16384,JA=32768,Fr=65536,ko=1<<17,Ur=1<<18,Br=1<<19,Eo=1<<20,bo=1<<21,xo=1<<22,QA=1<<23,To=1<<24,Gr=1<<25,Mo=1<<26,Ro=1<<27,Lo=1<<28,No=1<<29,zo=1<<30,eS=-2147483648,Oo=1,Io=2,Co=4,tS=1,nS=2,iS=128,Tn=()=>({number:0,modelindex:0,modelindex2:0,modelindex3:0,modelindex4:0,frame:0,skinnum:0,effects:0,renderfx:0,origin:{x:0,y:0,z:0},old_origin:{x:0,y:0,z:0},angles:{x:0,y:0,z:0},sound:0,event:0,solid:0,bits:0,bitsHigh:0,alpha:0,scale:0,instanceBits:0,loopVolume:0,loopAttenuation:0,owner:0,oldFrame:0}),id=()=>({pm_type:0,origin:{x:0,y:0,z:0},velocity:{x:0,y:0,z:0},pm_time:0,pm_flags:0,gravity:0,delta_angles:{x:0,y:0,z:0},viewoffset:{x:0,y:0,z:0},viewangles:{x:0,y:0,z:0},kick_angles:{x:0,y:0,z:0},gun_index:0,gun_frame:0,gun_offset:{x:0,y:0,z:0},gun_angles:{x:0,y:0,z:0},blend:[0,0,0,0],fov:0,rdflags:0,stats:new Array(32).fill(0),gunskin:0,gunrate:0,damage_blend:[0,0,0,0],team_id:0}),Po=class Xd{constructor(t,n){this.protocolVersion=0,this.isDemo=tS,this.stream=t,this.handler=n}setProtocolVersion(t){this.protocolVersion=t}getProtocolVersion(){return this.protocolVersion}translateCommand(t){return this.protocolVersion===0&&(t===7||t===12)?J.serverdata:this.protocolVersion===Cr?t:this.protocolVersion===34||this.protocolVersion===25?t<=J.frame?t:J.bad:(this.protocolVersion===0,t)}parseMessage(){for(;this.stream.hasMore();){let t=this.stream.readByte();if(t===-1)break;let n=t;t=this.translateCommand(t);try{switch(t){case J.bad:return;case J.nop:break;case J.disconnect:this.handler&&this.handler.onDisconnect&&this.handler.onDisconnect();break;case J.reconnect:this.handler&&this.handler.onReconnect&&this.handler.onReconnect();break;case J.print:this.parsePrint();break;case J.serverdata:this.parseServerData();break;case J.configstring:this.parseConfigString();break;case J.spawnbaseline:this.parseSpawnBaseline();break;case J.centerprint:this.parseCenterPrint();break;case J.download:this.parseDownload();break;case J.frame:this.parseFrame();break;case J.packetentities:this.parsePacketEntities(!1);break;case J.deltapacketentities:this.parsePacketEntities(!0);break;case J.playerinfo:this.parsePlayerState();break;case J.stufftext:this.parseStuffText();break;case J.layout:this.parseLayout();break;case J.inventory:this.parseInventory();break;case J.sound:this.parseSound();break;case J.muzzleflash:this.parseMuzzleFlash();break;case J.muzzleflash2:this.parseMuzzleFlash2();break;case J.temp_entity:this.parseTempEntity();break;case J.splitclient:this.parseSplitClient();break;case J.configblast:this.parseConfigBlast();break;case J.spawnbaselineblast:this.parseSpawnBaselineBlast();break;case J.level_restart:this.handler&&this.handler.onLevelRestart&&this.handler.onLevelRestart();break;case J.damage:this.parseDamage();break;case J.locprint:this.parseLocPrint();break;case J.fog:this.parseFog();break;case J.waitingforplayers:this.parseWaitingForPlayers();break;case J.bot_chat:this.parseBotChat();break;case J.poi:this.parsePoi();break;case J.help_path:this.parseHelpPath();break;case J.muzzleflash3:this.parseMuzzleFlash3();break;case J.achievement:this.parseAchievement();break;default:console.warn(`Unknown server command: ${n} (translated: ${t}) at offset ${this.stream.getPosition()-1}`);return}}catch(i){console.warn(`Error parsing command ${t}: ${i.message}`);return}}}parsePrint(){let t=this.stream.readByte(),n=this.stream.readString();this.handler&&this.handler.onPrint(t,n)}parseStuffText(){let t=this.stream.readString();this.handler&&this.handler.onStuffText(t)}parseLayout(){let t=this.stream.readString();this.handler&&this.handler.onLayout(t)}parseCenterPrint(){let t=this.stream.readString();this.handler&&this.handler.onCenterPrint(t)}parseServerData(){if(this.protocolVersion=this.stream.readLong(),this.protocolVersion===Cr){let t=this.stream.readLong(),n=this.stream.readByte();this.isDemo=n;let i=this.stream.readByte(),r=this.stream.readString(),a=this.stream.readShort();if(a===-2){let o=this.stream.readShort();for(let l=0;l<o;l++)this.stream.readShort();a=0}else a===-1&&(a=-1);let s=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,0,r,a,s,i,n):console.log(`Server Data (Rerelease): Protocol ${this.protocolVersion}, Level ${s}, Tick ${i}`)}else{let t=this.stream.readLong();this.isDemo=this.stream.readByte();let n=0,i=this.stream.readString(),r=this.stream.readShort(),a=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,n,i,r,a):console.log(`Server Data: Protocol ${this.protocolVersion}, Level ${a}, GameDir ${i}`)}}parseConfigString(){let t=this.stream.readShort(),n=this.stream.readString();this.handler&&this.handler.onConfigString(t,n)}parseSplitClient(){let t=this.stream.readByte();this.handler&&this.handler.onSplitClient&&this.handler.onSplitClient(t)}parseConfigBlast(){let t=this.stream.readShort(),n=this.stream.readShort(),i=this.stream.readData(t);try{let r=nd.inflate(i);r.byteLength!==n&&console.warn(`svc_configblast: Decompressed size mismatch. Expected ${n}, got ${r.byteLength}`);let a=new $s(r.buffer);for(;a.hasMore();){let s=a.readUShort(),o=a.readString();this.handler&&this.handler.onConfigString(s,o)}}catch(r){console.error("svc_configblast: Failed to decompress data",r)}}parseSpawnBaselineBlast(){let t=this.stream.readShort(),n=this.stream.readShort(),i=this.stream.readData(t);try{let r=nd.inflate(i);r.byteLength!==n&&console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${n}, got ${r.byteLength}`);let a=new $s(r.buffer),s=new Xd(a,this.handler);for(;a.hasMore();)s.parseSpawnBaseline()}catch(r){console.error("svc_spawnbaselineblast: Failed to decompress data",r)}}parseLocPrint(){let t=this.stream.readByte(),n=this.stream.readString(),i=this.stream.readByte(),r=[];for(let a=0;a<i;a++)r.push(this.stream.readString());this.handler&&this.handler.onLocPrint&&this.handler.onLocPrint(t,n,r)}parseWaitingForPlayers(){let t=this.stream.readByte();this.handler&&this.handler.onWaitingForPlayers&&this.handler.onWaitingForPlayers(t)}parseBotChat(){let t=this.stream.readString(),n=this.stream.readShort(),i=this.stream.readString();this.handler&&this.handler.onBotChat&&this.handler.onBotChat(i)}parsePoi(){let t=this.stream.readUShort(),n=this.stream.readUShort(),i={x:0,y:0,z:0};this.stream.readPos(i);let r=this.stream.readUShort(),a=this.stream.readByte(),s=this.stream.readByte();this.handler&&this.handler.onPoi&&this.handler.onPoi(s,i)}parseHelpPath(){let t=this.stream.readByte(),n={x:0,y:0,z:0};this.stream.readPos(n);let i={x:0,y:0,z:0};this.stream.readDir(i),this.handler&&this.handler.onHelpPath&&this.handler.onHelpPath(n)}parseAchievement(){let t=this.stream.readString();this.handler&&this.handler.onAchievement&&this.handler.onAchievement(t)}parseDownload(){let t=this.stream.readShort(),n=this.stream.readByte(),i;t>0&&(i=this.stream.readData(t)),this.handler&&this.handler.onDownload(t,n,i)}parseInventory(){let n=new Array(256);for(let i=0;i<256;i++)n[i]=this.stream.readShort();this.handler&&this.handler.onInventory(n)}parseSound(){let t=this.stream.readByte(),n=this.stream.readByte(),i,r,a,s,o;if(t&1&&(i=this.stream.readByte()),t&2&&(r=this.stream.readByte()),t&16&&(a=this.stream.readByte()),t&8&&(s=this.stream.readShort()),t&4){let l={x:0,y:0,z:0};this.stream.readPos(l),o=l}this.handler&&this.handler.onSound(t,n,i,r,a,s,o)}parseMuzzleFlash(){let t=this.stream.readShort(),n=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash(t,n)}parseMuzzleFlash2(){let t=this.stream.readShort(),n=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash2(t,n)}parseMuzzleFlash3(){let t=this.stream.readShort(),n=this.stream.readShort();this.handler&&this.handler.onMuzzleFlash3&&this.handler.onMuzzleFlash3(t,n)}parseFog(){let t=this.stream.readByte();if(t&128){let i=this.stream.readByte();t|=i<<8}let n={};t&1&&(n.density=this.stream.readFloat(),n.skyfactor=this.stream.readByte()),t&2&&(n.red=this.stream.readByte()),t&4&&(n.green=this.stream.readByte()),t&8&&(n.blue=this.stream.readByte()),t&16&&(n.time=this.stream.readShort()),t&32&&(n.hf_falloff=this.stream.readFloat()),t&64&&(n.hf_density=this.stream.readFloat()),t&256&&(n.hf_start_r=this.stream.readByte()),t&512&&(n.hf_start_g=this.stream.readByte()),t&1024&&(n.hf_start_b=this.stream.readByte()),t&2048&&(n.hf_start_dist=this.stream.readLong()),t&4096&&(n.hf_end_r=this.stream.readByte()),t&8192&&(n.hf_end_g=this.stream.readByte()),t&16384&&(n.hf_end_b=this.stream.readByte()),t&32768&&(n.hf_end_dist=this.stream.readLong()),this.handler&&this.handler.onFog&&this.handler.onFog(n)}parseDamage(){let t=this.stream.readByte(),n=[];for(let i=0;i<t;i++){let r=this.stream.readByte(),a={x:0,y:0,z:0};this.stream.readDir(a);let s=r&31,o=(r&32)!==0,l=(r&64)!==0,c=(r&128)!==0;n.push({damage:s,health:o,armor:l,power:c,dir:a})}this.handler&&this.handler.onDamage&&this.handler.onDamage(n)}parseTempEntity(){let t=this.stream.readByte(),n={x:0,y:0,z:0},i={x:0,y:0,z:0},r={x:0,y:0,z:0},a,s,o,l,c;switch(t){case B.EXPLOSION1:case B.EXPLOSION2:case B.ROCKET_EXPLOSION:case B.GRENADE_EXPLOSION:case B.ROCKET_EXPLOSION_WATER:case B.GRENADE_EXPLOSION_WATER:case B.BFG_EXPLOSION:case B.BFG_BIGEXPLOSION:case B.BOSSTPORT:case B.PLASMA_EXPLOSION:case B.PLAIN_EXPLOSION:case B.CHAINFIST_SMOKE:case B.TRACKER_EXPLOSION:case B.TELEPORT_EFFECT:case B.DBALL_GOAL:case B.NUKEBLAST:case B.WIDOWSPLASH:case B.EXPLOSION1_BIG:case B.EXPLOSION1_NP:this.stream.readPos(n);break;case B.GUNSHOT:case B.BLOOD:case B.BLASTER:case B.SHOTGUN:case B.SPARKS:case B.BULLET_SPARKS:case B.SCREEN_SPARKS:case B.SHIELD_SPARKS:case B.BLASTER2:case B.FLECHETTE:case B.MOREBLOOD:case B.ELECTRIC_SPARKS:case B.HEATBEAM_SPARKS:case B.HEATBEAM_STEAM:this.stream.readPos(n),this.stream.readDir(r);break;case B.SPLASH:case B.LASER_SPARKS:case B.WELDING_SPARKS:case B.TUNNEL_SPARKS:a=this.stream.readByte(),this.stream.readPos(n),this.stream.readDir(r),s=this.stream.readByte();break;case B.BLUEHYPERBLASTER:this.protocolVersion>=32?(this.stream.readPos(n),this.stream.readPos(i)):(this.stream.readPos(n),this.stream.readDir(r));break;case B.GREENBLOOD:this.protocolVersion>=32?(this.stream.readPos(n),this.stream.readDir(r)):(this.stream.readPos(n),this.stream.readPos(i));break;case B.RAILTRAIL:case B.BUBBLETRAIL:case B.BFG_LASER:case B.DEBUGTRAIL:case B.BUBBLETRAIL2:this.stream.readPos(n),this.stream.readPos(i);break;case B.PARASITE_ATTACK:case B.MEDIC_CABLE_ATTACK:this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i);break;case B.GRAPPLE_CABLE:o=this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i),this.stream.readPos(r);break;case B.LIGHTNING:l=this.stream.readShort(),c=this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i);break;case B.FLASHLIGHT:this.stream.readPos(n),o=this.stream.readShort();break;case B.FORCEWALL:this.stream.readPos(n),this.stream.readPos(i),s=this.stream.readByte();break;case B.STEAM:let u=this.stream.readShort();a=this.stream.readByte(),this.stream.readPos(n),this.stream.readDir(r),s=this.stream.readByte(),this.stream.readShort(),u!==-1&&this.stream.readLong();break;case B.WIDOWBEAMOUT:this.stream.readShort();case B.HEATBEAM:case B.MONSTER_HEATBEAM:o=this.stream.readShort(),this.stream.readPos(n),this.stream.readPos(i),this.stream.readPos(r);break;default:break}this.handler&&this.handler.onTempEntity(t,n,i,r,a,s,o,l,c)}parseSpawnBaseline(){let t=this.parseEntityBits(),n=Tn();this.parseDelta(Tn(),n,t.number,t.bits,t.bitsHigh),this.handler&&this.handler.onSpawnBaseline(n)}parseFrame(){let t=this.stream.readLong(),n=this.stream.readLong(),i=this.stream.readByte(),r=this.stream.readByte(),a=this.stream.readData(r),s=this.stream.readByte();if(s=this.translateCommand(s),s!==J.playerinfo)throw new Error(`Expected svc_playerinfo after svc_frame, got ${s} (translated)`);let o=this.parsePlayerState();if(this.isDemo===iS){let l=this.stream.readByte();for(let c=0;c<l;c++)this.stream.readByte()}this.isDemo===nS&&this.stream.readLong(),this.handler&&this.handler.onFrame({serverFrame:t,deltaFrame:n,surpressCount:i,areaBytes:r,areaBits:a,playerState:o,packetEntities:{delta:!1,entities:[]}})}parsePlayerState(){let t=id(),n=this.stream.readShort();n&1&&(t.pm_type=this.stream.readByte()),n&2&&(t.origin.x=this.stream.readShort()*.125,t.origin.y=this.stream.readShort()*.125,t.origin.z=this.stream.readShort()*.125),n&4&&(t.velocity.x=this.stream.readShort()*.125,t.velocity.y=this.stream.readShort()*.125,t.velocity.z=this.stream.readShort()*.125),n&8&&(t.pm_time=this.stream.readByte()),n&16&&(t.pm_flags=this.stream.readByte()),n&32&&(t.gravity=this.stream.readShort()),n&64&&(t.delta_angles.x=this.stream.readShort()*(180/32768),t.delta_angles.y=this.stream.readShort()*(180/32768),t.delta_angles.z=this.stream.readShort()*(180/32768)),n&128&&(t.viewoffset.x=this.stream.readChar()*.25,t.viewoffset.y=this.stream.readChar()*.25,t.viewoffset.z=this.stream.readChar()*.25),n&256&&(t.viewangles.x=this.stream.readAngle16(),t.viewangles.y=this.stream.readAngle16(),t.viewangles.z=this.stream.readAngle16()),n&512&&(t.kick_angles.x=this.stream.readChar()*.25,t.kick_angles.y=this.stream.readChar()*.25,t.kick_angles.z=this.stream.readChar()*.25),n&4096&&(t.gun_index=this.stream.readByte()),n&8192&&(t.gun_frame=this.stream.readByte(),t.gun_offset.x=this.stream.readChar()*.25,t.gun_offset.y=this.stream.readChar()*.25,t.gun_offset.z=this.stream.readChar()*.25,t.gun_angles.x=this.stream.readChar()*.25,t.gun_angles.y=this.stream.readChar()*.25,t.gun_angles.z=this.stream.readChar()*.25),n&1024&&(t.blend[0]=this.stream.readByte(),t.blend[1]=this.stream.readByte(),t.blend[2]=this.stream.readByte(),t.blend[3]=this.stream.readByte()),n&2048&&(t.fov=this.stream.readByte()),n&16384&&(t.rdflags=this.stream.readByte());let i=this.stream.readLong();for(let r=0;r<32;r++)i&1<<r&&(t.stats[r]=this.stream.readShort());return t}parsePacketEntities(t){let n=this.collectPacketEntities();this.handler&&this.handler.onFrame({serverFrame:0,deltaFrame:0,surpressCount:0,areaBytes:0,areaBits:new Uint8Array,playerState:id(),packetEntities:{delta:t,entities:n}})}collectPacketEntities(){let t=[];for(;;){let n=this.parseEntityBits();if(n.number===0)break;let i=Tn();this.parseDelta(Tn(),i,n.number,n.bits,n.bitsHigh),t.push(i)}return t}parseEntityBits(){let t=this.stream.readByte();t&jA&&(t|=this.stream.readByte()<<8),t&JA&&(t|=this.stream.readByte()<<16),t&QA&&(t|=this.stream.readByte()<<24);let n=0;t&eS&&(n=this.stream.readByte());let i;return t&ZA?i=this.stream.readShort():i=this.stream.readByte(),{number:i,bits:t,bitsHigh:n}}parseDelta(t,n,i,r,a=0){n.number=t.number,n.modelindex=t.modelindex,n.modelindex2=t.modelindex2,n.modelindex3=t.modelindex3,n.modelindex4=t.modelindex4,n.frame=t.frame,n.skinnum=t.skinnum,n.effects=t.effects,n.renderfx=t.renderfx,n.origin.x=t.origin.x,n.origin.y=t.origin.y,n.origin.z=t.origin.z,n.old_origin.x=t.origin.x,n.old_origin.y=t.origin.y,n.old_origin.z=t.origin.z,n.angles.x=t.angles.x,n.angles.y=t.angles.y,n.angles.z=t.angles.z,n.sound=t.sound,n.event=t.event,n.solid=t.solid,n.alpha=t.alpha,n.scale=t.scale,n.instanceBits=t.instanceBits,n.loopVolume=t.loopVolume,n.loopAttenuation=t.loopAttenuation,n.owner=t.owner,n.oldFrame=t.oldFrame,n.number=i,n.bits=r,n.bitsHigh=a,r&Ao&&(n.modelindex=this.stream.readByte()),r&Eo&&(n.modelindex2=this.stream.readByte()),r&bo&&(n.modelindex3=this.stream.readByte()),r&xo&&(n.modelindex4=this.stream.readByte()),r&vo&&(n.frame=this.stream.readByte()),r&ko&&(n.frame=this.stream.readShort()),r&Fr&&r&Gr?n.skinnum=this.stream.readLong():r&Fr?n.skinnum=this.stream.readByte():r&Gr&&(n.skinnum=this.stream.readShort()),r&Dr&&r&Br?n.effects=this.stream.readLong():r&Dr?n.effects=this.stream.readByte():r&Br&&(n.effects=this.stream.readShort()),r&Pr&&r&Ur?n.renderfx=this.stream.readLong():r&Pr?n.renderfx=this.stream.readByte():r&Ur&&(n.renderfx=this.stream.readShort()),r&ho&&(n.origin.x=this.stream.readCoord()),r&fo&&(n.origin.y=this.stream.readCoord()),r&yo&&(n.origin.z=this.stream.readCoord()),r&wo&&(n.angles.x=this.stream.readAngle()),r&_o&&(n.angles.y=this.stream.readAngle()),r&go&&(n.angles.z=this.stream.readAngle()),r&To&&this.stream.readPos(n.old_origin),r&Mo&&(n.sound=this.stream.readByte()),r&po?n.event=this.stream.readByte():n.event=0,r&Ro&&(n.solid=this.stream.readShort()),r&So&&(n.alpha=this.stream.readByte()/255),r&Lo&&(n.scale=this.stream.readFloat()),r&No&&(n.instanceBits=this.stream.readLong()),r&zo&&(n.loopVolume=this.stream.readByte()/255),a&Oo&&(n.loopAttenuation=this.stream.readByte()/255),a&Io&&(n.owner=this.stream.readShort()),a&Co&&(n.oldFrame=this.stream.readShort())}};var Yd=class{constructor(){this.reader=null,this.state=0,this.playbackSpeed=1,this.currentProtocolVersion=0,this.accumulatedTime=0,this.frameDuration=100}setHandler(e){this.handler=e}loadDemo(e){this.reader=new Jp(e),this.state=0,this.accumulatedTime=0,this.currentProtocolVersion=0}play(){this.reader&&(this.state=1)}pause(){this.state===1&&(this.state=2)}stop(){this.state=0,this.reader&&this.reader.reset(),this.accumulatedTime=0,this.currentProtocolVersion=0}setFrameDuration(e){this.frameDuration=e}setSpeed(e){this.playbackSpeed=Math.max(.1,Math.min(e,16))}getSpeed(){return this.playbackSpeed}update(e){if(!(this.state!==1||!this.reader))for(this.accumulatedTime+=e*1e3*this.playbackSpeed;this.accumulatedTime>=this.frameDuration;){if(!this.processNextFrame())return;this.accumulatedTime-=this.frameDuration}}stepForward(){this.reader&&this.processNextFrame()}stepBackward(){console.warn("stepBackward not implemented")}processNextFrame(){if(!this.reader||!this.reader.hasMore())return this.state=3,!1;let e=this.reader.readNextBlock();if(!e)return this.state=3,!1;let t=new Po(e.data,this.handler);return t.setProtocolVersion(this.currentProtocolVersion),t.parseMessage(),this.currentProtocolVersion=t.getProtocolVersion(),!0}getState(){return this.state}getCurrentTime(){return this.accumulatedTime}};var rS=Object.defineProperty,qd=(e,t)=>{for(var n in t)rS(e,n,{get:t[n],enumerable:!0})},Ut={x:0,y:0,z:0};var NC=Math.PI/180;function Yr(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function jr(e,t){return{x:e.x*t,y:e.y*t,z:e.z*t}}function Ii(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}function aS(e){return Ii(e,e)}function Zr(e){return Math.sqrt(aS(e))}function jd(e){let t=Zr(e);return t===0?e:jr(e,1/t)}var Zd=0,Jd=1,Qd=2,sS=Math.PI/180,zC=180/Math.PI;function Do(e,t){switch(t){case Zd:return e.x;case Jd:return e.y;case Qd:default:return e.z}}function Fo(e){return e*sS}function Cn(e){let t=e%360;return t<0?360+t:t}function Jr(e){let t=Fo(Do(e,Jd)),n=Fo(Do(e,Zd)),i=Fo(Do(e,Qd)),r=Math.sin(t),a=Math.cos(t),s=Math.sin(n),o=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u={x:o*a,y:o*r,z:-s},m={x:-l*s*a-c*-r,y:-l*s*r-c*a,z:-l*o},d={x:c*s*a-l*-r,y:c*s*r-l*a,z:c*o};return{forward:u,right:m,up:d}}var In=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];var ut=1,Bt=2;var Go=8,Ho=16,oS=32;var cS=16384;var Qr=65536,em=1<<17,lS=1<<18,uS=1<<19,dS=1<<20,mS=1<<21,hS=1<<22,fS=1<<23,OC=1<<24,ea=1<<25,_S=1<<26,IC=1<<27,CC=1<<28,PC=1<<29,ta=1<<30,DC=1<<31;var FC=1<<25,UC=1<<28,BC=1<<29,GC=1<<30,HC=1<<31;var VC=ut|Bt,WC=ut|Qr|Bt|ea|ta,KC=ut|Qr|Bt,$C=ut|em|Bt|ea|ta,XC=oS|Go|Ho,YC=ut|Ho|Go,gS=ut|ea|ta|Bt|_S,qC=lS|uS|dS|mS|hS|fS,jC=ut|Go|Ho|ea|ta,ZC=ut|Qr|Bt,JC=ut|Bt,QC=ut|Qr|Bt|em,e7=gS|cS;var t7=Number.MAX_SAFE_INTEGER-1;var Ci=(e=>(e[e.None=0]="None",e[e.Archive=1]="Archive",e[e.UserInfo=2]="UserInfo",e[e.ServerInfo=4]="ServerInfo",e[e.Latch=8]="Latch",e[e.Cheat=16]="Cheat",e))(Ci||{});var tm=256;var vS=256,Pi=8192,Di=2048,Fi=512,pS=256,yS=tm*2,wS=256,Uo=32;var ye=(e=>(e[e.Name=0]="Name",e[e.CdTrack=1]="CdTrack",e[e.Sky=2]="Sky",e[e.SkyAxis=3]="SkyAxis",e[e.SkyRotate=4]="SkyRotate",e[e.StatusBar=5]="StatusBar",e[e.HealthBarName=55]="HealthBarName",e[e.CONFIG_N64_PHYSICS=56]="CONFIG_N64_PHYSICS",e[e.CONFIG_CTF_TEAMS=57]="CONFIG_CTF_TEAMS",e[e.CONFIG_COOP_RESPAWN_STRING=58]="CONFIG_COOP_RESPAWN_STRING",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+Pi]="Sounds",e[e.Images=e.Sounds+Di]="Images",e[e.Lights=e.Images+Fi]="Lights",e[e.ShadowLights=e.Lights+vS]="ShadowLights",e[e.Items=e.ShadowLights+wS]="Items",e[e.PlayerSkins=e.Items+pS]="PlayerSkins",e[e.General=e.PlayerSkins+tm]="General",e[e.WheelWeapons=e.General+yS]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+Uo]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+Uo]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+Uo]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(ye||{}),n7=ye.MaxConfigStrings;var AS={};qd(AS,{addReplayFrame:()=>bS,createReplaySession:()=>ES,deserializeReplay:()=>kS,serializeReplay:()=>SS});function SS(e){return JSON.stringify(e,null,2)}function kS(e){let t=JSON.parse(e);if(!t.metadata||!Array.isArray(t.frames))throw new Error("Invalid replay format: missing metadata or frames");return t}function ES(e,t){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:t},frames:[]}}function bS(e,t,n,i){e.frames.push({serverFrame:n,cmd:t,timestamp:Date.now()-i})}var Ui=(e=>(e[e.None=0]="None",e[e.Feet=1]="Feet",e[e.Waist=2]="Waist",e[e.Under=3]="Under",e))(Ui||{});var Et=(e=>(e[e.Ducked=1]="Ducked",e[e.JumpHeld=2]="JumpHeld",e[e.OnGround=4]="OnGround",e[e.TimeWaterJump=8]="TimeWaterJump",e[e.TimeLand=16]="TimeLand",e[e.TimeTeleport=32]="TimeTeleport",e[e.NoPositionalPrediction=64]="NoPositionalPrediction",e[e.OnLadder=128]="OnLadder",e[e.NoAngularPrediction=256]="NoAngularPrediction",e[e.IgnorePlayerCollision=512]="IgnorePlayerCollision",e[e.TimeTrick=1024]="TimeTrick",e))(Et||{});function Dn(e,t){return(e&t)!==0}var na=(e=>(e[e.Normal=0]="Normal",e[e.Grapple=1]="Grapple",e[e.NoClip=2]="NoClip",e[e.Spectator=3]="Spectator",e[e.Dead=4]="Dead",e[e.Gib=5]="Gib",e[e.Freeze=6]="Freeze",e))(na||{}),dt=(e=>(e[e.None=0]="None",e[e.Attack=1]="Attack",e[e.Use=2]="Use",e[e.Holster=4]="Holster",e[e.Jump=8]="Jump",e[e.Crouch=16]="Crouch",e[e.Any=128]="Any",e))(dt||{});function xS(e){let{velocity:t,frametime:n,onGround:i,groundIsSlick:r,onLadder:a,waterlevel:s,pmFriction:o,pmStopSpeed:l,pmWaterFriction:c}=e,u=Zr(t);if(u<1)return{x:0,y:0,z:t.z};let m=0;if(i&&!r||a){let g=u<l?l:u;m+=g*o*n}s>0&&!a&&(m+=u*c*s*n);let d=u-m;if(d<0&&(d=0),d===u)return t;let f=d/u;return jr(t,f)}function TS(e){let{velocity:t,wishdir:n,wishspeed:i,accel:r,frametime:a}=e,s=Ii(t,n),o=i-s;if(o<=0)return t;let l=r*a*i;return l>o&&(l=o),{x:t.x+n.x*l,y:t.y+n.y*l,z:t.z+n.z*l}}function MS(e){let{forward:t,right:n,cmd:i,maxSpeed:r}=e,a={x:t.x*i.forwardmove+n.x*i.sidemove,y:t.y*i.forwardmove+n.y*i.sidemove,z:0},s=Zr(a);if(s>r){let o=r/s;a=jr(a,o),s=r}return{wishdir:s===0?a:jd(a),wishspeed:s}}function RS(e){let{forward:t,right:n,cmd:i,maxSpeed:r}=e,a={x:t.x*i.forwardmove+n.x*i.sidemove,y:t.y*i.forwardmove+n.y*i.sidemove,z:t.z*i.forwardmove+n.z*i.sidemove};i.upmove>10?a=Yr(a,{x:0,y:0,z:i.upmove}):i.upmove<-10?a=Yr(a,{x:0,y:0,z:i.upmove}):Math.abs(i.forwardmove)<10&&Math.abs(i.sidemove)<10?a=Yr(a,{x:0,y:0,z:-60}):a=Yr(a,{x:0,y:0,z:10});let s=Zr(a);if(s>r){let o=r/s;a=jr(a,o),s=r}return s*=.5,{wishdir:s===0?a:jd(a),wishspeed:s}}function LS(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function NS(e){return e>89&&e<180?89:e<271&&e>=180?271:e}function Vo(e){let{pmFlags:t,cmdAngles:n,deltaAngles:i}=e,r;(t&32)!==0?r={x:0,y:n.y+i.y,z:0}:(r=LS(n,i),r={...r,x:NS(r.x)});let a=Jr(r);return{viewangles:r,...a}}var nm=200,im=200,rm=200,am=140,sm=150,om=3;function zS(e){let t=Cn(e);return t>89&&t<180?89:t<271&&t>=180?271:t}function cm(e,t){return{x:zS(e.x+t.x),y:Cn(e.y+t.y),z:Cn(e.z+t.z)}}function lm(e,t){let n=t.sensitivityX??t.sensitivity,i=(t.sensitivityY??t.sensitivity)*(t.invertY?-1:1);return{x:e.deltaY*i,y:e.deltaX*n,z:0}}var cn=(e=>(e[e.bad=0]="bad",e[e.nop=1]="nop",e[e.move=2]="move",e[e.userinfo=3]="userinfo",e[e.stringcmd=4]="stringcmd",e))(cn||{});var um=64;var dm=0,mm=1,hm=2,fm=3,_m=4,gm=5,vm=6,pm=7,ym=8;var wm=11,Am=12,Sm=13;function OS(e,t,n){let i=Math.floor(n/2),r=n%2!==0,a=t+i,s=e[a]||0;if(r){let o=e[a+1]||0,l=s>>>8&255;return(o&255)<<8|l}else return s&65535}function km(e,t,n,i){let r=i*n,a=Math.floor(r/8),s=r%8,o=(1<<i)-1<<s;return(OS(e,t,a)&o)>>>s}var Bi=(e=>(e.QuadDamage="quad",e.Invulnerability="invulnerability",e.EnviroSuit="enviro_suit",e.Rebreather="rebreather",e.Silencer="silencer",e.PowerScreen="power_screen",e.PowerShield="power_shield",e.QuadFire="quad_fire",e.Invisibility="invisibility",e.Bandolier="bandolier",e.AmmoPack="ammo_pack",e.IRGoggles="ir_goggles",e.DoubleDamage="double_damage",e.SphereVengeance="sphere_vengeance",e.SphereHunter="sphere_hunter",e.SphereDefender="sphere_defender",e.Doppelganger="doppelganger",e.TagToken="tag_token",e.TechResistance="tech_resistance",e.TechStrength="tech_strength",e.TechHaste="tech_haste",e.TechRegeneration="tech_regeneration",e.Flashlight="flashlight",e.Compass="compass",e))(Bi||{}),Ce=(e=>(e[e.STAT_HEALTH_ICON=0]="STAT_HEALTH_ICON",e[e.STAT_HEALTH=1]="STAT_HEALTH",e[e.STAT_AMMO_ICON=2]="STAT_AMMO_ICON",e[e.STAT_AMMO=3]="STAT_AMMO",e[e.STAT_ARMOR_ICON=4]="STAT_ARMOR_ICON",e[e.STAT_ARMOR=5]="STAT_ARMOR",e[e.STAT_SELECTED_ICON=6]="STAT_SELECTED_ICON",e[e.STAT_PICKUP_ICON=7]="STAT_PICKUP_ICON",e[e.STAT_PICKUP_STRING=8]="STAT_PICKUP_STRING",e[e.STAT_TIMER_ICON=9]="STAT_TIMER_ICON",e[e.STAT_TIMER=10]="STAT_TIMER",e[e.STAT_HELPICON=11]="STAT_HELPICON",e[e.STAT_SELECTED_ITEM=12]="STAT_SELECTED_ITEM",e[e.STAT_LAYOUTS=13]="STAT_LAYOUTS",e[e.STAT_FRAGS=14]="STAT_FRAGS",e[e.STAT_FLASHES=15]="STAT_FLASHES",e[e.STAT_CHASE=16]="STAT_CHASE",e[e.STAT_SPECTATOR=17]="STAT_SPECTATOR",e[e.STAT_CTF_TEAM1_PIC=18]="STAT_CTF_TEAM1_PIC",e[e.STAT_CTF_TEAM1_CAPS=19]="STAT_CTF_TEAM1_CAPS",e[e.STAT_CTF_TEAM2_PIC=20]="STAT_CTF_TEAM2_PIC",e[e.STAT_CTF_TEAM2_CAPS=21]="STAT_CTF_TEAM2_CAPS",e[e.STAT_CTF_FLAG_PIC=22]="STAT_CTF_FLAG_PIC",e[e.STAT_CTF_JOINED_TEAM1_PIC=23]="STAT_CTF_JOINED_TEAM1_PIC",e[e.STAT_CTF_JOINED_TEAM2_PIC=24]="STAT_CTF_JOINED_TEAM2_PIC",e[e.STAT_CTF_TEAM1_HEADER=25]="STAT_CTF_TEAM1_HEADER",e[e.STAT_CTF_TEAM2_HEADER=26]="STAT_CTF_TEAM2_HEADER",e[e.STAT_CTF_TECH=27]="STAT_CTF_TECH",e[e.STAT_CTF_ID_VIEW=28]="STAT_CTF_ID_VIEW",e[e.STAT_CTF_MATCH=29]="STAT_CTF_MATCH",e[e.STAT_CTF_ID_VIEW_COLOR=30]="STAT_CTF_ID_VIEW_COLOR",e[e.STAT_CTF_TEAMINFO=31]="STAT_CTF_TEAMINFO",e[e.STAT_WEAPONS_OWNED_1=32]="STAT_WEAPONS_OWNED_1",e[e.STAT_WEAPONS_OWNED_2=33]="STAT_WEAPONS_OWNED_2",e[e.STAT_AMMO_INFO_START=34]="STAT_AMMO_INFO_START",e[e.STAT_POWERUP_INFO_START=41]="STAT_POWERUP_INFO_START",e[e.STAT_KEY_A=44]="STAT_KEY_A",e[e.STAT_KEY_B=45]="STAT_KEY_B",e[e.STAT_KEY_C=46]="STAT_KEY_C",e[e.STAT_ACTIVE_WHEEL_WEAPON=47]="STAT_ACTIVE_WHEEL_WEAPON",e[e.STAT_COOP_RESPAWN=48]="STAT_COOP_RESPAWN",e[e.STAT_LIVES=49]="STAT_LIVES",e[e.STAT_HIT_MARKER=50]="STAT_HIT_MARKER",e[e.STAT_SELECTED_ITEM_NAME=51]="STAT_SELECTED_ITEM_NAME",e[e.STAT_HEALTH_BARS=52]="STAT_HEALTH_BARS",e[e.STAT_ACTIVE_WEAPON=53]="STAT_ACTIVE_WEAPON",e[e.STAT_LAST=54]="STAT_LAST",e))(Ce||{}),Em=12,bm=9,i7=Math.ceil(Em*bm/16),xm=23,Tm=2,r7=Math.ceil(xm*Tm/16),IS={power_screen:0,power_shield:1,quad:3,quad_fire:4,invulnerability:5,invisibility:6,silencer:7,rebreather:8,enviro_suit:9,bandolier:10,ammo_pack:10,ir_goggles:11,double_damage:12,sphere_vengeance:13,sphere_hunter:14,sphere_defender:15,doppelganger:16,flashlight:17,compass:18,tech_resistance:19,tech_strength:20,tech_haste:21,tech_regeneration:22,tag_token:-1};function Mm(e,t){return t<0||t>=Em?0:km(e,34,t,bm)}function ia(e,t){let n;return typeof t=="number"?n=t:n=IS[t],n===void 0||n<0||n>=xm?0:km(e,41,n,Tm)}function Rm(e,t){e.writeByte(t.msec),e.writeByte(t.buttons),e.writeAngle16(t.angles.x),e.writeAngle16(t.angles.y),e.writeAngle16(t.angles.z),e.writeShort(t.forwardmove),e.writeShort(t.sidemove),e.writeShort(t.upmove),e.writeByte(0),e.writeByte(0)}var CS={};qd(CS,{U_ANGLE1:()=>HS,U_ANGLE2:()=>VS,U_ANGLE3:()=>WS,U_EFFECTS:()=>XS,U_EVENT:()=>jS,U_FRAME:()=>KS,U_MODEL:()=>DS,U_MODEL2:()=>JS,U_MODEL3:()=>QS,U_MODEL4:()=>e2,U_MOREBITS:()=>ZS,U_NUMBER:()=>PS,U_ORIGIN1:()=>US,U_ORIGIN2:()=>BS,U_ORIGIN3:()=>GS,U_REMOVE:()=>t2,U_RENDERFX:()=>YS,U_SKIN:()=>$S,U_SOLID:()=>qS,U_SOUND:()=>FS});var PS=1,DS=2,FS=4,US=8,BS=16,GS=32,HS=64,VS=128,WS=256,KS=512,$S=1024,XS=2048,YS=4096,qS=8192,jS=16384,ZS=32768,JS=1,QS=2,e2=4,t2=32768,Oi=.025,Bo=33554432,qr={None:0,Feet:1,Waist:2,Under:3},n2=(e,t)=>{let n={...e.origin};n.z-=.25;let i=t(e.origin,n);return{...e,onGround:i.fraction<1}},i2=(e,t)=>{let n={...e.origin},{mins:i,maxs:r}=e;if(n.z=e.origin.z+i.z+1,!(t(n)&Bo))return{...e,waterLevel:qr.None};let s=qr.Feet,o=e.origin.z+(i.z+r.z)*.5;if(n.z=o,t(n)&Bo){s=qr.Waist;let c=e.origin.z+22;n.z=c,t(n)&Bo&&(s=qr.Under)}return{...e,waterLevel:s}},Wo=(e,t,n,i)=>{let r={...e};r=n2(r,n),r=i2(r,i);let{origin:a,velocity:s,onGround:o,waterLevel:l,viewAngles:c}=r,u=l>=2?c:{x:c.x>180?(c.x-360)/3:c.x/3,y:c.y,z:c.z},{forward:m,right:d}=Jr(u),f=xS({velocity:s,frametime:Oi,onGround:o,groundIsSlick:!1,onLadder:!1,waterlevel:l,pmFriction:6,pmStopSpeed:100,pmWaterFriction:1}),g=l>=2?RS({forward:m,right:d,cmd:t,maxSpeed:320}):MS({forward:m,right:d,cmd:t,maxSpeed:320}),p=TS({velocity:f,wishdir:g.wishdir,wishspeed:g.wishspeed,accel:o||l>=2?10:1,frametime:Oi}),v=n(a,{x:a.x+p.x*Oi,y:a.y+p.y*Oi,z:a.z+p.z*Oi});return{...r,origin:v.endpos,velocity:p}},Lm=class{constructor(e){e instanceof Uint8Array?this.view=new DataView(e.buffer,e.byteOffset,e.byteLength):this.view=new DataView(e),this.offset=0,this.length=this.view.byteLength}getPosition(){return this.offset}seek(e){if(e<0||e>this.length)throw new Error(`Seek out of bounds: ${e} (length: ${this.length})`);this.offset=e}hasMore(){return this.offset<this.length}readChar(){let e=this.view.getInt8(this.offset);return this.offset+=1,e}readByte(){let e=this.view.getUint8(this.offset);return this.offset+=1,e}readShort(){let e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}readUShort(){let e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}readLong(){let e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}readULong(){let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readFloat(){let e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}readString(){let e="";for(;this.offset<this.length;){let t=this.readChar();if(t===-1||t===0)break;e+=String.fromCharCode(t)}return e}readStringLine(){let e="";for(;this.offset<this.length;){let t=this.readChar();if(t===-1||t===0||t===10)break;e+=String.fromCharCode(t)}return e}readCoord(){return this.readShort()*(1/8)}readAngle(){return this.readChar()*(360/256)}readAngle16(){return this.readShort()*360/65536}readData(e){if(this.offset+e>this.length)throw new Error(`Read out of bounds: ${this.offset+e} (length: ${this.length})`);let t=new Uint8Array(this.view.buffer,this.view.byteOffset+this.offset,e);return this.offset+=e,new Uint8Array(t)}readPos(e){e.x=this.readCoord(),e.y=this.readCoord(),e.z=this.readCoord()}readDir(e){let t=this.readByte();if(t>=162){e.x=0,e.y=0,e.z=0;return}let n=In[t];e.x=n[0],e.y=n[1],e.z=n[2]}},Ko=class{constructor(e=1400){typeof e=="number"?(this.buffer=new Uint8Array(e),this.fixed=!1):(this.buffer=e,this.fixed=!0),this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.offset=0}ensureSpace(e){if(this.offset+e>this.buffer.byteLength){if(this.fixed)throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset+e}`);let t=Math.max(this.buffer.byteLength*2,this.offset+e),n=new Uint8Array(t);n.set(this.buffer),this.buffer=n,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength)}}writeByte(e){this.ensureSpace(1),this.view.setUint8(this.offset,e),this.offset+=1}writeChar(e){this.ensureSpace(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureSpace(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureSpace(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureSpace(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let t=e.length;this.ensureSpace(t+1);for(let n=0;n<t;n++)this.view.setUint8(this.offset+n,e.charCodeAt(n));this.view.setUint8(this.offset+t,0),this.offset+=t+1}writeCoord(e){this.writeShort(Math.trunc(e*8))}writeAngle(e){this.writeByte(Math.trunc(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.trunc(e*65536/360)&65535)}writePos(e){this.writeCoord(e.x),this.writeCoord(e.y),this.writeCoord(e.z)}writeDir(e){let t=-1,n=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let i=0;i<In.length;i++){let r=In[i],a=e.x*r[0]+e.y*r[1]+e.z*r[2];a>t&&(t=a,n=i)}this.writeByte(n)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}},Gi=class{constructor(e=1024){this.buffer=new Uint8Array(e),this.view=new DataView(this.buffer.buffer),this.offset=0}ensureCapacity(e){if(this.offset+e>this.buffer.length){let t=Math.max(this.buffer.length*2,this.offset+e),n=new Uint8Array(t);n.set(this.buffer),this.buffer=n,this.view=new DataView(this.buffer.buffer)}}getData(){return this.buffer.slice(0,this.offset)}writeByte(e){this.ensureCapacity(1),this.view.setUint8(this.offset,e),this.offset+=1}writeChar(e){this.ensureCapacity(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureCapacity(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeUShort(e){this.ensureCapacity(2),this.view.setUint16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureCapacity(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureCapacity(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let t=e.length+1;this.ensureCapacity(t);for(let n=0;n<e.length;n++)this.view.setUint8(this.offset+n,e.charCodeAt(n));this.view.setUint8(this.offset+e.length,0),this.offset+=t}writeData(e){this.ensureCapacity(e.length),this.buffer.set(e,this.offset),this.offset+=e.length}writeCoord(e){this.writeShort(Math.round(e*8))}writeAngle(e){this.writeByte(Math.round(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.round(e*65536/360))}writeDir(e,t,n){let i=0,r=-999999,a=Math.sqrt(e*e+t*t+n*n);if(a>0){e/=a,t/=a,n/=a;for(let s=0;s<162;s++){let o=e*In[s][0]+t*In[s][1]+n*In[s][2];o>r&&(r=o,i=s)}}this.writeByte(i)}},Pn=class Ie{constructor(){this.qport=0,this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new Ko(Ie.MAX_MSGLEN);let t=Date.now();this.lastReceived=t,this.lastSent=t,this.qport=Math.floor(Math.random()*65536)}setup(t,n=null){this.qport=t,this.remoteAddress=n,this.reset()}reset(){this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.reliableMessage.reset(),this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(t){this.outgoingSequence++,this.lastSent=Date.now();let n=Ie.PACKET_HEADER,i=this.reliableLength>0?this.reliableLength+2:0,r=t?t.length:0;n+i+r>Ie.MAX_MSGLEN&&(r=Ie.MAX_MSGLEN-n-i,r<0&&(r=0));let a=new ArrayBuffer(n+i+r),s=new DataView(a),o=new Uint8Array(a),l=this.outgoingSequence;this.reliableLength>0&&(l|=2147483648,(this.outgoingReliableSequence&1)!==0&&(l|=1073741824)),s.setUint32(0,l,!0);let c=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(c|=2147483648),s.setUint32(4,c,!0),s.setUint16(8,this.qport,!0);let u=n;if(this.reliableLength>0){s.setUint16(u,this.reliableLength,!0),u+=2;let d=this.reliableMessage.getBuffer().subarray(0,this.reliableLength);o.set(d,u),u+=this.reliableLength}if(t&&r>0){let m=t.slice(0,r);o.set(m,u)}return o}process(t){if(t.length<Ie.PACKET_HEADER)return null;this.lastReceived=Date.now();let n=new DataView(t.buffer,t.byteOffset,t.byteLength),i=n.getUint32(0,!0),r=n.getUint32(4,!0),a=n.getUint16(8,!0);if(this.qport!==a)return null;let s=i&1073741823;if((s-this.incomingSequence|0)<=0)return null;this.incomingSequence=s;let o=r&2147483647,l=(r&2147483648)!==0;if(o>this.incomingAcknowledged&&(this.incomingAcknowledged=o),this.reliableLength>0){let g=l?1:0,p=this.outgoingReliableSequence&1;g!==p&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1)}let c=(i&2147483648)!==0,u=(i&1073741824)!==0?1:0,m=Ie.PACKET_HEADER,d=null;if(c){if(m+2>t.byteLength)return null;let g=n.getUint16(m,!0);m+=2;let p=this.incomingReliableSequence&1;if(u===p){if(this.incomingReliableSequence++,m+g>t.byteLength)return null;d=t.slice(m,m+g)}m+=g}let f=t.slice(m);if(d&&d.length>0){let g=d.length+f.length,p=new Uint8Array(g);return p.set(d,0),p.set(f,d.length),p}return f||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(t){if(this.reliableLength+1>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(t),this.reliableLength++}writeReliableShort(t){if(this.reliableLength+2>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(t),this.reliableLength+=2}writeReliableLong(t){if(this.reliableLength+4>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(t),this.reliableLength+=4}writeReliableString(t){let n=t.length+1;if(this.reliableLength+n>Ie.MAX_MSGLEN-Ie.HEADER_OVERHEAD)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(t),this.reliableLength+=n}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(t){return t-this.lastSent>1e3}isTimedOut(t,n=3e4){return t-this.lastReceived>n}};Pn.MAX_MSGLEN=1400;Pn.FRAGMENT_SIZE=1024;Pn.PACKET_HEADER=10;Pn.HEADER_OVERHEAD=Pn.PACKET_HEADER+2;var Nm=Pn;var zm=(e=>(e[e.Bullets=0]="Bullets",e[e.Shells=1]="Shells",e[e.Rockets=2]="Rockets",e[e.Grenades=3]="Grenades",e[e.Cells=4]="Cells",e[e.Slugs=5]="Slugs",e[e.MagSlugs=6]="MagSlugs",e[e.Trap=7]="Trap",e[e.Flechettes=8]="Flechettes",e[e.Tesla=9]="Tesla",e[e.Disruptor=10]="Disruptor",e[e.Prox=11]="Prox",e[e.Nuke=12]="Nuke",e[e.Rounds=13]="Rounds",e))(zm||{}),a7=Object.keys(zm).length/2;var ra=["blaster","shotgun","supershotgun","machinegun","chaingun","grenadelauncher","rocketlauncher","grenades","hyperblaster","railgun","bfg10k"],Om={blaster:null,shotgun:1,supershotgun:1,machinegun:0,chaingun:0,grenades:3,grenadelauncher:3,rocketlauncher:2,hyperblaster:4,railgun:5,bfg10k:4,grapple:null,chainfist:null,etf_rifle:8,prox_launcher:11,ionripper:4,plasmabeam:4,phalanx:6,disruptor:10,trap:7};var r2=Object.defineProperty,a2=(e,t)=>{for(var n in t)r2(e,n,{get:t[n],enumerable:!0})},sa=null,aa=[1,1,1,1],Im=["ch1","ch2","ch3"],$o=[null,null,null],s2=e=>{for(let t=0;t<Im.length;t++){let n=Im[t];try{$o[t]=e.Draw_RegisterPic(`pics/${n}.pcx`)}catch{if(t===0)try{$o[t]=e.Draw_RegisterPic("pics/crosshair.pcx")}catch{e.Com_Print(`Failed to load crosshair image
|
|
170
170
|
`)}}}sa=$o[0]},o2=(e,t,n)=>{if(sa){let i=e.Draw_GetPicSize(sa),r=(t-i.width)/2,a=(n-i.height)/2;e.SCR_DrawColorPic(r,a,sa,{x:aa[0],y:aa[1],z:aa[2]},aa[3])}},Bm=new Map,c2=["w_blaster","w_shotgun","w_sshotgun","w_machinegun","w_chaingun","w_glauncher","w_rlauncher","w_hyperblaster","w_railgun","w_bfg","w_grapple","a_grenades","a_bullets","a_cells","a_rockets","a_shells","a_slugs","p_quad","p_invulnerability","p_silencer","p_rebreather","p_envirosuit","p_adrenaline","p_megahealth","i_jacketarmor","i_combatarmor","i_bodyarmor","i_powerscreen","i_powershield","k_datacd","k_powercube","k_pyramid","k_dataspin","k_security","k_bluekey","k_redkey"],l2=e=>{for(let t of c2)try{let n=e.Draw_RegisterPic(`pics/${t}.pcx`);Bm.set(t,n)}catch{e.Com_Print(`Failed to load HUD image: pics/${t}.pcx
|
|
171
171
|
`)}},u2=new Map,d2=["d_left","d_right","d_up","d_down"],m2=e=>{for(let t of d2)try{let n=e.Draw_RegisterPic(`pics/${t}.pcx`);u2.set(t,n)}catch{e.Com_Print(`Failed to load HUD image: pics/${t}.pcx
|
|
172
172
|
`)}},h2=(e,t,n,i)=>{(!t.damageAlpha||t.damageAlpha<=0)&&(!t.damageIndicators||t.damageIndicators.length)},Cm=3e3,Pm=5e3,Dm=4,f2=class{constructor(){this.centerPrintMsg=null,this.notifyMessages=[]}addCenterPrint(e,t){this.centerPrintMsg={text:e,startTime:t,duration:Cm}}addNotify(e,t){this.notifyMessages.push({text:e,startTime:t,duration:Pm}),this.notifyMessages.length>Dm&&this.notifyMessages.shift()}setCenterPrint(e,t){this.centerPrintMsg={text:e,startTime:t,duration:Cm}}addNotification(e,t,n){this.notifyMessages.push({text:e,startTime:n,duration:Pm}),this.notifyMessages.length>Dm&&this.notifyMessages.shift()}clearNotifications(){this.notifyMessages=[]}clearCenterPrint(){this.centerPrintMsg=null}drawCenterPrint(e,t,n){if(!this.centerPrintMsg)return;if(t>this.centerPrintMsg.startTime+this.centerPrintMsg.duration){this.centerPrintMsg=null;return}let i=n.CENTER_PRINT_Y;e.SCR_DrawCenterString(i,this.centerPrintMsg.text)}drawNotifications(e,t){for(;this.notifyMessages.length>0&&t>this.notifyMessages[0].startTime+this.notifyMessages[0].duration;)this.notifyMessages.shift();let n=10;for(let i of this.notifyMessages)e.SCR_DrawFontString(10,n,i.text),n+=10}},_2=3e3,g2=class{constructor(){this.subtitle=null}addSubtitle(e,t){this.subtitle={text:e,startTime:t,duration:_2}}drawSubtitles(e,t){if(!this.subtitle)return;if(t>this.subtitle.startTime+this.subtitle.duration){this.subtitle=null;return}e.SCR_DrawCenterString(200,this.subtitle.text)}},v2=(e,t,n,i)=>{if(!t.blend)return;let[r,a,s,o]=t.blend},p2=(e,t,n,i)=>{if(!t.pickupIcon)return;let r=Bm.get(t.pickupIcon);if(r){let a=e.Draw_GetPicSize(r),s=n-a.width-10,o=i-a.height-10;e.SCR_DrawPic(s,o,r)}},Xo=(e,t,n,i,r,a,s)=>{let o=Math.abs(i).toString();for(let l=0;l<o.length;l++){let c=parseInt(o[l]),u=r[c];u&&(s?e.SCR_DrawColorPic(t+l*a,n,u,{x:s[0],y:s[1],z:s[2]},s[3]):e.SCR_DrawPic(t+l*a,n,u))}},y2=(e,t,n,i,r,a)=>{let s=t.stats[Ce.STAT_HEALTH]||0,o=t.stats[Ce.STAT_ARMOR]||0,l=t.stats[Ce.STAT_AMMO]||0,c=t.stats[Ce.STAT_ARMOR_ICON]||0,u;if(s<=25&&(u=[1,0,0,1]),n.length>0&&(Xo(e,a.HEALTH_X,a.HEALTH_Y,s,n,i,u),Xo(e,a.ARMOR_X,a.ARMOR_Y,o,n,i),Xo(e,a.AMMO_X,a.AMMO_Y,l,n,i)),c>0){let m=e.get_configstring(ye.Images+c);if(m){let d=e.Draw_RegisterPic(m);d&&e.SCR_DrawPic(a.ARMOR_X-24,a.ARMOR_Y-2,d)}}if(t.pickupIcon){let m=e.Draw_RegisterPic(t.pickupIcon);m&&e.SCR_DrawPic(a.WEAPON_ICON_X,a.WEAPON_ICON_Y,m)}else{let m=t.stats[Ce.STAT_SELECTED_ICON]||0;if(m>0){let d=e.get_configstring(ye.Images+m);if(d){let f=e.Draw_RegisterPic(d);f&&e.SCR_DrawPic(a.WEAPON_ICON_X,a.WEAPON_ICON_Y,f)}}}},Yo=640,Fn=480,w2=(e,t)=>{let n=e/Yo,i=t/Fn,r=Math.min(n,i);return{HEALTH_X:100*r,HEALTH_Y:t-(Fn-450)*r,ARMOR_X:200*r,ARMOR_Y:t-(Fn-450)*r,AMMO_X:e-(Yo-540)*r,AMMO_Y:t-(Fn-450)*r,CENTER_PRINT_X:e/2,CENTER_PRINT_Y:100*r,WEAPON_ICON_X:10*r,WEAPON_ICON_Y:t-(Fn-450)*r,POWERUP_X:e-(Yo-610)*r,POWERUP_Y:t-(Fn-450)*r,scale:r}},Ee=null,Jo=[],Gm=0,Qo=new f2,Hm=new g2;function A2(e){Ee=e}function S2(){if(Ee){Jo.length=0;for(let e=0;e<10;e++)try{let t=Ee.Draw_RegisterPic(`pics/hud/num_${e}.pcx`);Jo.push(t),e===0&&(Gm=Ee.Draw_GetPicSize(t).width)}catch{Ee.Com_Print(`Warning: Failed to load HUD image: pics/hud/num_${e}.pcx
|