quake2ts 0.0.440 → 0.0.441
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 +1 -1
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +1 -1
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/browser/index.global.js +1 -1
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +1 -1
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +1 -1
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/parser.d.ts.map +1 -1
|
@@ -167,7 +167,7 @@ void main() {
|
|
|
167
167
|
v_texCoord = a_texCoord;
|
|
168
168
|
v_position = worldPos.xyz;
|
|
169
169
|
gl_Position = u_modelViewProjection * vec4(a_position, 1.0);
|
|
170
|
-
}`;var F1=class{constructor(){this._position=te.create(),this._angles=te.create(),this._bobAngles=te.create(),this._bobOffset=te.create(),this._kickAngles=te.create(),this._rollAngle=0,this._fov=90,this._aspect=1,this._near=.1,this._far=1e3,this._viewMatrix=Oe.create(),this._projectionMatrix=Oe.create(),this._viewProjectionMatrix=Oe.create(),this._dirty=!0}get position(){return this._position}set position(e){te.equals(this._position,e)||(te.copy(this._position,e),this._dirty=!0,this.triggerMoveEvent())}get angles(){return this._angles}set angles(e){te.equals(this._angles,e)||(te.copy(this._angles,e),this._dirty=!0,this.triggerMoveEvent())}get bobAngles(){return this._bobAngles}set bobAngles(e){te.copy(this._bobAngles,e),this._dirty=!0}get kickAngles(){return this._kickAngles}set kickAngles(e){te.copy(this._kickAngles,e),this._dirty=!0}get bobOffset(){return this._bobOffset}set bobOffset(e){te.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}setPosition(e,t,i){let n=te.fromValues(e,t,i);te.equals(this._position,n)||(te.copy(this._position,n),this._dirty=!0,this.triggerMoveEvent())}setRotation(e,t,i){let n=te.fromValues(e,t,i);te.equals(this._angles,n)||(te.copy(this._angles,n),this._dirty=!0,this.triggerMoveEvent())}setFov(e){this.fov=e}setAspectRatio(e){this.aspect=e}lookAt(e){let t=te.create();if(te.subtract(t,e,this._position),te.length(t)<.001)return;let n=Math.atan2(t[1],t[0])*Dg,r=Math.hypot(t[0],t[1]),a=-Math.atan2(t[2],r)*Dg;this.setRotation(a,n,0)}triggerMoveEvent(){this.onCameraMove&&this.onCameraMove({position:te.clone(this._position),angles:te.clone(this._angles)})}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=Oe.create();return Oe.perspective(t,e*Aa,this._aspect,this._near,this._far),t}screenToWorldRay(e,t){let i=e*2-1,n=1-t*2,r=te.fromValues(i,n,-1),a=te.fromValues(i,n,1),s=Oe.create();Oe.invert(s,this.viewProjectionMatrix);let o=te.create(),l=te.create();te.transformMat4(o,r,s),te.transformMat4(l,a,s);let c=te.create();return te.subtract(c,l,o),te.normalize(c,c),{origin:te.clone(this._position),direction:c}}updateMatrices(){if(!this._dirty)return;Oe.perspective(this._projectionMatrix,this._fov*Aa,this._aspect,this._near,this._far);let e=Oe.fromValues(0,0,-1,0,-1,0,0,0,0,1,0,0,0,0,0,1),t=this._angles[0]+this._bobAngles[0]+this._kickAngles[0],i=this._angles[1]+this._bobAngles[1]+this._kickAngles[1],n=this._angles[2]+this._bobAngles[2]+this._kickAngles[2]+this._rollAngle,r=t*Aa,a=i*Aa,s=n*Aa,o=Oe.create();Oe.identity(o),Oe.rotateZ(o,o,-a),Oe.rotateY(o,o,-r),Oe.rotateX(o,o,-s);let l=Oe.create();Oe.multiply(l,e,o);let c=te.add(te.create(),this._position,this._bobOffset),m=te.negate(te.create(),c),d=te.create();te.transformMat4(d,m,o);let u=te.fromValues(d[1]?-d[1]:0,d[2]||0,d[0]?-d[0]:0);Oe.copy(this._viewMatrix,l),this._viewMatrix[12]=u[0],this._viewMatrix[13]=u[1],this._viewMatrix[14]=u[2],Oe.multiply(this._viewProjectionMatrix,this._projectionMatrix,this._viewMatrix),this._dirty=!1}};var D1=class{constructor(e){this.messageOffsets=[],this.buffer=e,this.view=new DataView(e),this.offset=0,this.scan()}scan(){let e=0;for(this.messageOffsets=[];e+4<=this.buffer.byteLength;){let t=this.view.getInt32(e,!0);if(t<0||t>2097152){console.warn(`DemoReader: Invalid block length ${t} at offset ${e} during scan`);break}if(e+4+t>this.buffer.byteLength){console.warn(`DemoReader: Incomplete block at offset ${e} during scan`);break}this.messageOffsets.push(e),e+=4+t}}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(e<0||this.offset+4+e>this.buffer.byteLength)return null;this.offset+=4;let t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,{length:e,data:new cd(t)}}reset(){this.offset=0}seekToMessage(e){return e<0||e>=this.messageOffsets.length?!1:(this.offset=this.messageOffsets[e],!0)}getMessageCount(){return this.messageOffsets.length}getOffset(){return this.offset}getProgress(){let e=this.offset,t=this.buffer.byteLength;return{current:e,total:t,percent:t>0?e/t*100:0}}},Nx=4,Ug=0,Bg=1,Ox=2;function br(e){let t=e.length;for(;--t>=0;)e[t]=0}var Ix=0,U1=1,Cx=2,Px=3,Fx=258,kd=29,Da=256,za=Da+1+kd,wr=30,Ad=19,B1=2*za+1,Un=15,$m=16,Dx=7,bd=256,G1=16,H1=17,V1=18,md=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]),Oo=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]),Ux=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),W1=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Bx=512,Wi=new Array((za+2)*2);br(Wi);var Ta=new Array(wr*2);br(Ta);var La=new Array(Bx);br(La);var Na=new Array(Fx-Px+1);br(Na);var Ed=new Array(kd);br(Ed);var Io=new Array(wr);br(Io);function Xm(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}var K1,$1,X1;function Ym(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var Y1=e=>e<256?La[e]:La[256+(e>>>7)],Oa=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Rt=(e,t,i)=>{e.bi_valid>$m-i?(e.bi_buf|=t<<e.bi_valid&65535,Oa(e,e.bi_buf),e.bi_buf=t>>$m-e.bi_valid,e.bi_valid+=i-$m):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)},bi=(e,t,i)=>{Rt(e,i[t*2],i[t*2+1])},Z1=(e,t)=>{let i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1},Gx=e=>{e.bi_valid===16?(Oa(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)},Hx=(e,t)=>{let i=t.dyn_tree,n=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,m,d,u,f,h,v=0;for(u=0;u<=Un;u++)e.bl_count[u]=0;for(i[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<B1;c++)m=e.heap[c],u=i[i[m*2+1]*2+1]+1,u>l&&(u=l,v++),i[m*2+1]=u,!(m>n)&&(e.bl_count[u]++,f=0,m>=o&&(f=s[m-o]),h=i[m*2],e.opt_len+=h*(u+f),a&&(e.static_len+=h*(r[m*2+1]+f)));if(v!==0){do{for(u=l-1;e.bl_count[u]===0;)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,v-=2}while(v>0);for(u=l;u!==0;u--)for(m=e.bl_count[u];m!==0;)d=e.heap[--c],!(d>n)&&(i[d*2+1]!==u&&(e.opt_len+=(u-i[d*2+1])*i[d*2],i[d*2+1]=u),m--)}},q1=(e,t,i)=>{let n=new Array(Un+1),r=0,a,s;for(a=1;a<=Un;a++)r=r+i[a-1]<<1,n[a]=r;for(s=0;s<=t;s++){let o=e[s*2+1];o!==0&&(e[s*2]=Z1(n[o]++,o))}},Vx=()=>{let e,t,i,n,r,a=new Array(Un+1);for(i=0,n=0;n<kd-1;n++)for(Ed[n]=i,e=0;e<1<<md[n];e++)Na[i++]=n;for(Na[i-1]=n,r=0,n=0;n<16;n++)for(Io[n]=r,e=0;e<1<<Oo[n];e++)La[r++]=n;for(r>>=7;n<wr;n++)for(Io[n]=r<<7,e=0;e<1<<Oo[n]-7;e++)La[256+r++]=n;for(t=0;t<=Un;t++)a[t]=0;for(e=0;e<=143;)Wi[e*2+1]=8,e++,a[8]++;for(;e<=255;)Wi[e*2+1]=9,e++,a[9]++;for(;e<=279;)Wi[e*2+1]=7,e++,a[7]++;for(;e<=287;)Wi[e*2+1]=8,e++,a[8]++;for(q1(Wi,za+1,a),e=0;e<wr;e++)Ta[e*2+1]=5,Ta[e*2]=Z1(e,5);K1=new Xm(Wi,md,Da+1,za,Un),$1=new Xm(Ta,Oo,0,wr,Un),X1=new Xm(new Array(0),Ux,0,Ad,Dx)},j1=e=>{let t;for(t=0;t<za;t++)e.dyn_ltree[t*2]=0;for(t=0;t<wr;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Ad;t++)e.bl_tree[t*2]=0;e.dyn_ltree[bd*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},J1=e=>{e.bi_valid>8?Oa(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Gg=(e,t,i,n)=>{let r=t*2,a=i*2;return e[r]<e[a]||e[r]===e[a]&&n[t]<=n[i]},Zm=(e,t,i)=>{let n=e.heap[i],r=i<<1;for(;r<=e.heap_len&&(r<e.heap_len&&Gg(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Gg(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n},Hg=(e,t,i)=>{let n,r,a=0,s,o;if(e.sym_next!==0)do n=e.pending_buf[e.sym_buf+a++]&255,n+=(e.pending_buf[e.sym_buf+a++]&255)<<8,r=e.pending_buf[e.sym_buf+a++],n===0?bi(e,r,t):(s=Na[r],bi(e,s+Da+1,t),o=md[s],o!==0&&(r-=Ed[s],Rt(e,r,o)),n--,s=Y1(n),bi(e,s,i),o=Oo[s],o!==0&&(n-=Io[s],Rt(e,n,o)));while(a<e.sym_next);bi(e,bd,t)},dd=(e,t)=>{let i=t.dyn_tree,n=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=B1,s=0;s<a;s++)i[s*2]!==0?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):i[s*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,i[c*2]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=n[c*2+1]);for(t.max_code=l,s=e.heap_len>>1;s>=1;s--)Zm(e,i,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Zm(e,i,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,i[c*2]=i[s*2]+i[o*2],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,i[s*2+1]=i[o*2+1]=c,e.heap[1]=c++,Zm(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Hx(e,t),q1(i,l,e.bl_count)},Vg=(e,t,i)=>{let n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),t[(i+1)*2+1]=65535,n=0;n<=i;n++)a=s,s=t[(n+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[G1*2]++):o<=10?e.bl_tree[H1*2]++:e.bl_tree[V1*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))},Wg=(e,t,i)=>{let n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),n=0;n<=i;n++)if(a=s,s=t[(n+1)*2+1],!(++o<l&&a===s)){if(o<c)do bi(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(bi(e,a,e.bl_tree),o--),bi(e,G1,e.bl_tree),Rt(e,o-3,2)):o<=10?(bi(e,H1,e.bl_tree),Rt(e,o-3,3)):(bi(e,V1,e.bl_tree),Rt(e,o-11,7));o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4)}},Wx=e=>{let t;for(Vg(e,e.dyn_ltree,e.l_desc.max_code),Vg(e,e.dyn_dtree,e.d_desc.max_code),dd(e,e.bl_desc),t=Ad-1;t>=3&&e.bl_tree[W1[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Kx=(e,t,i,n)=>{let r;for(Rt(e,t-257,5),Rt(e,i-1,5),Rt(e,n-4,4),r=0;r<n;r++)Rt(e,e.bl_tree[W1[r]*2+1],3);Wg(e,e.dyn_ltree,t-1),Wg(e,e.dyn_dtree,i-1)},$x=e=>{let t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return Ug;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return Bg;for(i=32;i<Da;i++)if(e.dyn_ltree[i*2]!==0)return Bg;return Ug},Kg=!1,Xx=e=>{Kg||(Vx(),Kg=!0),e.l_desc=new Ym(e.dyn_ltree,K1),e.d_desc=new Ym(e.dyn_dtree,$1),e.bl_desc=new Ym(e.bl_tree,X1),e.bi_buf=0,e.bi_valid=0,j1(e)},Q1=(e,t,i,n)=>{Rt(e,(Ix<<1)+(n?1:0),3),J1(e),Oa(e,i),Oa(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i},Yx=e=>{Rt(e,U1<<1,3),bi(e,bd,Wi),Gx(e)},Zx=(e,t,i,n)=>{let r,a,s=0;e.level>0?(e.strm.data_type===Ox&&(e.strm.data_type=$x(e)),dd(e,e.l_desc),dd(e,e.d_desc),s=Wx(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=i+5,i+4<=r&&t!==-1?Q1(e,t,i,n):e.strategy===Nx||a===r?(Rt(e,(U1<<1)+(n?1:0),3),Hg(e,Wi,Ta)):(Rt(e,(Cx<<1)+(n?1:0),3),Kx(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Hg(e,e.dyn_ltree,e.dyn_dtree)),j1(e),n&&J1(e)},qx=(e,t,i)=>(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++]=i,t===0?e.dyn_ltree[i*2]++:(e.matches++,t--,e.dyn_ltree[(Na[i]+Da+1)*2]++,e.dyn_dtree[Y1(t)*2]++),e.sym_next===e.sym_end),jx=Xx,Jx=Q1,Qx=Zx,e8=qx,t8=Yx,i8={_tr_init:jx,_tr_stored_block:Jx,_tr_flush_block:Qx,_tr_tally:e8,_tr_align:t8},n8=(e,t,i,n)=>{let r=e&65535|0,a=e>>>16&65535|0,s=0;for(;i!==0;){s=i>2e3?2e3:i,i-=s;do r=r+t[n++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0},Ia=n8,r8=()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t},a8=new Uint32Array(r8()),s8=(e,t,i,n)=>{let r=a8,a=n+i;e^=-1;for(let s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1},rt=s8,Hn={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"},Kn={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:o8,_tr_stored_block:ud,_tr_flush_block:c8,_tr_tally:gn,_tr_align:l8}=i8,{Z_NO_FLUSH:_n,Z_PARTIAL_FLUSH:m8,Z_FULL_FLUSH:d8,Z_FINISH:Zt,Z_BLOCK:$g,Z_OK:ct,Z_STREAM_END:Xg,Z_STREAM_ERROR:Ei,Z_DATA_ERROR:u8,Z_BUF_ERROR:qm,Z_DEFAULT_COMPRESSION:f8,Z_FILTERED:h8,Z_HUFFMAN_ONLY:Mo,Z_RLE:g8,Z_FIXED:_8,Z_DEFAULT_STRATEGY:p8,Z_UNKNOWN:v8,Z_DEFLATED:$o}=Kn,y8=9,w8=15,S8=8,k8=29,A8=256,fd=A8+1+k8,b8=30,E8=19,x8=2*fd+1,T8=15,Se=3,hn=258,xi=hn+Se+1,M8=32,kr=42,xd=57,hd=69,gd=73,_d=91,pd=103,Bn=113,Ea=666,kt=1,Er=2,Vn=3,xr=4,R8=3,Gn=(e,t)=>(e.msg=Hn[t],t),Yg=e=>e*2-(e>4?9:0),fn=e=>{let t=e.length;for(;--t>=0;)e[t]=0},z8=e=>{let t,i,n,r=e.w_size;t=e.hash_size,n=t;do i=e.head[--n],e.head[n]=i>=r?i-r:0;while(--t);t=r,n=t;do i=e.prev[--n],e.prev[n]=i>=r?i-r:0;while(--t)},L8=(e,t,i)=>(t<<e.hash_shift^i)&e.hash_mask,pn=L8,Dt=e=>{let t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,t.pending===0&&(t.pending_out=0))},Ut=(e,t)=>{c8(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Dt(e.strm)},Te=(e,t)=>{e.pending_buf[e.pending++]=t},ba=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},vd=(e,t,i,n)=>{let r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),e.state.wrap===1?e.adler=Ia(e.adler,t,r,i):e.state.wrap===2&&(e.adler=rt(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},e_=(e,t)=>{let i=e.max_chain_length,n=e.strstart,r,a,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-xi?e.strstart-(e.w_size-xi):0,c=e.window,m=e.w_mask,d=e.prev,u=e.strstart+hn,f=c[n+s-1],h=c[n+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(c[r+s]!==h||c[r+s-1]!==f||c[r]!==c[n]||c[++r]!==c[n+1])){n+=2,r++;do;while(c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&n<u);if(a=hn-(u-n),n=u-hn,a>s){if(e.match_start=t,s=a,a>=o)break;f=c[n+s-1],h=c[n+s]}}while((t=d[t&m])>l&&--i!==0);return s<=e.lookahead?s:e.lookahead},Ar=e=>{let t=e.w_size,i,n,r;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-xi)&&(e.window.set(e.window.subarray(t,t+t-n),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),z8(e),n+=t),e.strm.avail_in===0)break;if(i=vd(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=i,e.lookahead+e.insert>=Se)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=pn(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=pn(e,e.ins_h,e.window[r+Se-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<Se)););}while(e.lookahead<xi&&e.strm.avail_in!==0)},t_=(e,t)=>{let i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n,r,a,s=0,o=e.strm.avail_in;do{if(n=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,r=e.strstart-e.block_start,n>r+e.strm.avail_in&&(n=r+e.strm.avail_in),n>a&&(n=a),n<i&&(n===0&&t!==Zt||t===_n||n!==r+e.strm.avail_in)))break;s=t===Zt&&n===r+e.strm.avail_in?1:0,ud(e,0,0,s),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Dt(e.strm),r&&(r>n&&(r=n),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,n-=r),n&&(vd(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}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?xr:t!==_n&&t!==Zt&&e.strm.avail_in===0&&e.strstart===e.block_start?Er:(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&&(vd(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,i=a>e.w_size?e.w_size:a,r=e.strstart-e.block_start,(r>=i||(r||t===Zt)&&t!==_n&&e.strm.avail_in===0&&r<=a)&&(n=r>a?a:r,s=t===Zt&&e.strm.avail_in===0&&n===r?1:0,ud(e,e.block_start,n,s),e.block_start+=n,Dt(e.strm)),s?Vn:kt)},jm=(e,t)=>{let i,n;for(;;){if(e.lookahead<xi){if(Ar(e),e.lookahead<xi&&t===_n)return kt;if(e.lookahead===0)break}if(i=0,e.lookahead>=Se&&(e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),i!==0&&e.strstart-i<=e.w_size-xi&&(e.match_length=e_(e,i)),e.match_length>=Se)if(n=gn(e,e.strstart-e.match_start,e.match_length-Se),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Se){e.match_length--;do e.strstart++,e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=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=pn(e,e.ins_h,e.window[e.strstart+1]);else n=gn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Ut(e,!1),e.strm.avail_out===0))return kt}return e.insert=e.strstart<Se-1?e.strstart:Se-1,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er},_r=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<xi){if(Ar(e),e.lookahead<xi&&t===_n)return kt;if(e.lookahead===0)break}if(i=0,e.lookahead>=Se&&(e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=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=Se-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-xi&&(e.match_length=e_(e,i),e.match_length<=5&&(e.strategy===h8||e.match_length===Se&&e.strstart-e.match_start>4096)&&(e.match_length=Se-1)),e.prev_length>=Se&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-Se,n=gn(e,e.strstart-1-e.prev_match,e.prev_length-Se),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=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=Se-1,e.strstart++,n&&(Ut(e,!1),e.strm.avail_out===0))return kt}else if(e.match_available){if(n=gn(e,0,e.window[e.strstart-1]),n&&Ut(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return kt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=gn(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Se-1?e.strstart:Se-1,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er},N8=(e,t)=>{let i,n,r,a,s=e.window;for(;;){if(e.lookahead<=hn){if(Ar(e),e.lookahead<=hn&&t===_n)return kt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Se&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+hn;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);e.match_length=hn-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Se?(i=gn(e,1,e.match_length-Se),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=gn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(Ut(e,!1),e.strm.avail_out===0))return kt}return e.insert=0,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er},O8=(e,t)=>{let i;for(;;){if(e.lookahead===0&&(Ar(e),e.lookahead===0)){if(t===_n)return kt;break}if(e.match_length=0,i=gn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(Ut(e,!1),e.strm.avail_out===0))return kt}return e.insert=0,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er};function Ai(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}var xa=[new Ai(0,0,0,0,t_),new Ai(4,4,8,4,jm),new Ai(4,5,16,8,jm),new Ai(4,6,32,32,jm),new Ai(4,4,16,16,_r),new Ai(8,16,32,32,_r),new Ai(8,16,128,128,_r),new Ai(8,32,128,256,_r),new Ai(32,128,258,1024,_r),new Ai(32,258,258,4096,_r)],I8=e=>{e.window_size=2*e.w_size,fn(e.head),e.max_lazy_match=xa[e.level].max_lazy,e.good_match=xa[e.level].good_length,e.nice_match=xa[e.level].nice_length,e.max_chain_length=xa[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Se-1,e.match_available=0,e.ins_h=0};function C8(){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=$o,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(x8*2),this.dyn_dtree=new Uint16Array((2*b8+1)*2),this.bl_tree=new Uint16Array((2*E8+1)*2),fn(this.dyn_ltree),fn(this.dyn_dtree),fn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(T8+1),this.heap=new Uint16Array(2*fd+1),fn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*fd+1),fn(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 Ua=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==kr&&t.status!==xd&&t.status!==hd&&t.status!==gd&&t.status!==_d&&t.status!==pd&&t.status!==Bn&&t.status!==Ea?1:0},i_=e=>{if(Ua(e))return Gn(e,Ei);e.total_in=e.total_out=0,e.data_type=v8;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?xd:t.wrap?kr:Bn,e.adler=t.wrap===2?0:1,t.last_flush=-2,o8(t),ct},n_=e=>{let t=i_(e);return t===ct&&I8(e.state),t},P8=(e,t)=>Ua(e)||e.state.wrap!==2?Ei:(e.state.gzhead=t,ct),r_=(e,t,i,n,r,a)=>{if(!e)return Ei;let s=1;if(t===f8&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>y8||i!==$o||n<8||n>15||t<0||t>9||a<0||a>_8||n===8&&s!==1)return Gn(e,Ei);n===8&&(n=9);let o=new C8;return e.state=o,o.strm=e,o.status=kr,o.wrap=s,o.gzhead=null,o.w_bits=n,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+Se-1)/Se),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=i,n_(e)},F8=(e,t)=>r_(e,t,$o,w8,S8,p8),D8=(e,t)=>{if(Ua(e)||t>$g||t<0)return e?Gn(e,Ei):Ei;let i=e.state;if(!e.output||e.avail_in!==0&&!e.input||i.status===Ea&&t!==Zt)return Gn(e,e.avail_out===0?qm:Ei);let n=i.last_flush;if(i.last_flush=t,i.pending!==0){if(Dt(e),e.avail_out===0)return i.last_flush=-1,ct}else if(e.avail_in===0&&Yg(t)<=Yg(n)&&t!==Zt)return Gn(e,qm);if(i.status===Ea&&e.avail_in!==0)return Gn(e,qm);if(i.status===kr&&i.wrap===0&&(i.status=Bn),i.status===kr){let r=$o+(i.w_bits-8<<4)<<8,a=-1;if(i.strategy>=Mo||i.level<2?a=0:i.level<6?a=1:i.level===6?a=2:a=3,r|=a<<6,i.strstart!==0&&(r|=M8),r+=31-r%31,ba(i,r),i.strstart!==0&&(ba(i,e.adler>>>16),ba(i,e.adler&65535)),e.adler=1,i.status=Bn,Dt(e),i.pending!==0)return i.last_flush=-1,ct}if(i.status===xd){if(e.adler=0,Te(i,31),Te(i,139),Te(i,8),i.gzhead)Te(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Te(i,i.gzhead.time&255),Te(i,i.gzhead.time>>8&255),Te(i,i.gzhead.time>>16&255),Te(i,i.gzhead.time>>24&255),Te(i,i.level===9?2:i.strategy>=Mo||i.level<2?4:0),Te(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Te(i,i.gzhead.extra.length&255),Te(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=rt(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=hd;else if(Te(i,0),Te(i,0),Te(i,0),Te(i,0),Te(i,0),Te(i,i.level===9?2:i.strategy>=Mo||i.level<2?4:0),Te(i,R8),i.status=Bn,Dt(e),i.pending!==0)return i.last_flush=-1,ct}if(i.status===hd){if(i.gzhead.extra){let r=i.pending,a=(i.gzhead.extra.length&65535)-i.gzindex;for(;i.pending+a>i.pending_buf_size;){let o=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+o),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex+=o,Dt(e),i.pending!==0)return i.last_flush=-1,ct;r=0,a-=o}let s=new Uint8Array(i.gzhead.extra);i.pending_buf.set(s.subarray(i.gzindex,i.gzindex+a),i.pending),i.pending+=a,i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex=0}i.status=gd}if(i.status===gd){if(i.gzhead.name){let r=i.pending,a;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),Dt(e),i.pending!==0)return i.last_flush=-1,ct;r=0}i.gzindex<i.gzhead.name.length?a=i.gzhead.name.charCodeAt(i.gzindex++)&255:a=0,Te(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex=0}i.status=_d}if(i.status===_d){if(i.gzhead.comment){let r=i.pending,a;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),Dt(e),i.pending!==0)return i.last_flush=-1,ct;r=0}i.gzindex<i.gzhead.comment.length?a=i.gzhead.comment.charCodeAt(i.gzindex++)&255:a=0,Te(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r))}i.status=pd}if(i.status===pd){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(Dt(e),i.pending!==0))return i.last_flush=-1,ct;Te(i,e.adler&255),Te(i,e.adler>>8&255),e.adler=0}if(i.status=Bn,Dt(e),i.pending!==0)return i.last_flush=-1,ct}if(e.avail_in!==0||i.lookahead!==0||t!==_n&&i.status!==Ea){let r=i.level===0?t_(i,t):i.strategy===Mo?O8(i,t):i.strategy===g8?N8(i,t):xa[i.level].func(i,t);if((r===Vn||r===xr)&&(i.status=Ea),r===kt||r===Vn)return e.avail_out===0&&(i.last_flush=-1),ct;if(r===Er&&(t===m8?l8(i):t!==$g&&(ud(i,0,0,!1),t===d8&&(fn(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),Dt(e),e.avail_out===0))return i.last_flush=-1,ct}return t!==Zt?ct:i.wrap<=0?Xg:(i.wrap===2?(Te(i,e.adler&255),Te(i,e.adler>>8&255),Te(i,e.adler>>16&255),Te(i,e.adler>>24&255),Te(i,e.total_in&255),Te(i,e.total_in>>8&255),Te(i,e.total_in>>16&255),Te(i,e.total_in>>24&255)):(ba(i,e.adler>>>16),ba(i,e.adler&65535)),Dt(e),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?ct:Xg)},U8=e=>{if(Ua(e))return Ei;let t=e.state.status;return e.state=null,t===Bn?Gn(e,u8):ct},B8=(e,t)=>{let i=t.length;if(Ua(e))return Ei;let n=e.state,r=n.wrap;if(r===2||r===1&&n.status!==kr||n.lookahead)return Ei;if(r===1&&(e.adler=Ia(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){r===0&&(fn(n.head),n.strstart=0,n.block_start=0,n.insert=0);let l=new Uint8Array(n.w_size);l.set(t.subarray(i-n.w_size,i),0),t=l,i=n.w_size}let a=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Ar(n);n.lookahead>=Se;){let l=n.strstart,c=n.lookahead-(Se-1);do n.ins_h=pn(n,n.ins_h,n.window[l+Se-1]),n.prev[l&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=l,l++;while(--c);n.strstart=l,n.lookahead=Se-1,Ar(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Se-1,n.match_available=0,e.next_in=s,e.input=o,e.avail_in=a,n.wrap=r,ct},G8=F8,H8=r_,V8=n_,W8=i_,K8=P8,$8=D8,X8=U8,Y8=B8,Z8="pako deflate (from Nodeca project)",Ma={deflateInit:G8,deflateInit2:H8,deflateReset:V8,deflateResetKeep:W8,deflateSetHeader:K8,deflate:$8,deflateEnd:X8,deflateSetDictionary:Y8,deflateInfo:Z8},q8=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),j8=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let i=t.shift();if(i){if(typeof i!="object")throw new TypeError(i+"must be non-object");for(let n in i)q8(i,n)&&(e[n]=i[n])}}return e},J8=e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;let i=new Uint8Array(t);for(let n=0,r=0,a=e.length;n<a;n++){let s=e[n];i.set(s,r),r+=s.length}return i},Xo={assign:j8,flattenChunks:J8},a_=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{a_=!1}var Ca=new Uint8Array(256);for(let e=0;e<256;e++)Ca[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Ca[254]=Ca[254]=1;var Q8=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(t=new Uint8Array(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t},eT=(e,t)=>{if(t<65534&&e.subarray&&a_)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i},tT=(e,t)=>{let i=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let n,r,a=new Array(i*2);for(r=0,n=0;n<i;){let s=e[n++];if(s<128){a[r++]=s;continue}let o=Ca[s];if(o>4){a[r++]=65533,n+=o-1;continue}for(s&=o===2?31:o===3?15:7;o>1&&n<i;)s=s<<6|e[n++]&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 eT(a,r)},iT=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let i=t-1;for(;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+Ca[e[i]]>t?i:t},Pa={string2buf:Q8,buf2string:tT,utf8border:iT};function nT(){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 s_=nT,o_=Object.prototype.toString,{Z_NO_FLUSH:rT,Z_SYNC_FLUSH:aT,Z_FULL_FLUSH:sT,Z_FINISH:oT,Z_OK:Co,Z_STREAM_END:cT,Z_DEFAULT_COMPRESSION:lT,Z_DEFAULT_STRATEGY:mT,Z_DEFLATED:dT}=Kn;function Ba(e){this.options=Xo.assign({level:lT,method:dT,chunkSize:16384,windowBits:15,memLevel:8,strategy:mT},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 s_,this.strm.avail_out=0;let i=Ma.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Co)throw new Error(Hn[i]);if(t.header&&Ma.deflateSetHeader(this.strm,t.header),t.dictionary){let n;if(typeof t.dictionary=="string"?n=Pa.string2buf(t.dictionary):o_.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=Ma.deflateSetDictionary(this.strm,n),i!==Co)throw new Error(Hn[i]);this._dict_set=!0}}Ba.prototype.push=function(e,t){let i=this.strm,n=this.options.chunkSize,r,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?oT:rT,typeof e=="string"?i.input=Pa.string2buf(e):o_.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){if(i.avail_out===0&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(a===aT||a===sT)&&i.avail_out<=6){this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;continue}if(r=Ma.deflate(i,a),r===cT)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Ma.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Co;if(i.avail_out===0){this.onData(i.output);continue}if(a>0&&i.next_out>0){this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;continue}if(i.avail_in===0)break}return!0};Ba.prototype.onData=function(e){this.chunks.push(e)};Ba.prototype.onEnd=function(e){e===Co&&(this.result=Xo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Td(e,t){let i=new Ba(t);if(i.push(e,!0),i.err)throw i.msg||Hn[i.err];return i.result}function uT(e,t){return t=t||{},t.raw=!0,Td(e,t)}function fT(e,t){return t=t||{},t.gzip=!0,Td(e,t)}var hT=Ba,gT=Td,_T=uT,pT=fT,vT=Kn,yT={Deflate:hT,deflate:gT,deflateRaw:_T,gzip:pT,constants:vT},Ro=16209,wT=16191,ST=function(t,i){let n,r,a,s,o,l,c,m,d,u,f,h,v,g,y,k,b,w,S,O,E,K,C,T,B=t.state;n=t.next_in,C=t.input,r=n+(t.avail_in-5),a=t.next_out,T=t.output,s=a-(i-t.avail_out),o=a+(t.avail_out-257),l=B.dmax,c=B.wsize,m=B.whave,d=B.wnext,u=B.window,f=B.hold,h=B.bits,v=B.lencode,g=B.distcode,y=(1<<B.lenbits)-1,k=(1<<B.distbits)-1;e:do{h<15&&(f+=C[n++]<<h,h+=8,f+=C[n++]<<h,h+=8),b=v[f&y];t:for(;;){if(w=b>>>24,f>>>=w,h-=w,w=b>>>16&255,w===0)T[a++]=b&65535;else if(w&16){S=b&65535,w&=15,w&&(h<w&&(f+=C[n++]<<h,h+=8),S+=f&(1<<w)-1,f>>>=w,h-=w),h<15&&(f+=C[n++]<<h,h+=8,f+=C[n++]<<h,h+=8),b=g[f&k];i:for(;;){if(w=b>>>24,f>>>=w,h-=w,w=b>>>16&255,w&16){if(O=b&65535,w&=15,h<w&&(f+=C[n++]<<h,h+=8,h<w&&(f+=C[n++]<<h,h+=8)),O+=f&(1<<w)-1,O>l){t.msg="invalid distance too far back",B.mode=Ro;break e}if(f>>>=w,h-=w,w=a-s,O>w){if(w=O-w,w>m&&B.sane){t.msg="invalid distance too far back",B.mode=Ro;break e}if(E=0,K=u,d===0){if(E+=c-w,w<S){S-=w;do T[a++]=u[E++];while(--w);E=a-O,K=T}}else if(d<w){if(E+=c+d-w,w-=d,w<S){S-=w;do T[a++]=u[E++];while(--w);if(E=0,d<S){w=d,S-=w;do T[a++]=u[E++];while(--w);E=a-O,K=T}}}else if(E+=d-w,w<S){S-=w;do T[a++]=u[E++];while(--w);E=a-O,K=T}for(;S>2;)T[a++]=K[E++],T[a++]=K[E++],T[a++]=K[E++],S-=3;S&&(T[a++]=K[E++],S>1&&(T[a++]=K[E++]))}else{E=a-O;do T[a++]=T[E++],T[a++]=T[E++],T[a++]=T[E++],S-=3;while(S>2);S&&(T[a++]=T[E++],S>1&&(T[a++]=T[E++]))}}else if((w&64)===0){b=g[(b&65535)+(f&(1<<w)-1)];continue i}else{t.msg="invalid distance code",B.mode=Ro;break e}break}}else if((w&64)===0){b=v[(b&65535)+(f&(1<<w)-1)];continue t}else if(w&32){B.mode=wT;break e}else{t.msg="invalid literal/length code",B.mode=Ro;break e}break}}while(n<r&&a<o);S=h>>3,n-=S,h-=S<<3,f&=(1<<h)-1,t.next_in=n,t.next_out=a,t.avail_in=n<r?5+(r-n):5-(n-r),t.avail_out=a<o?257+(o-a):257-(a-o),B.hold=f,B.bits=h},pr=15,Zg=852,qg=592,jg=0,Jm=1,Jg=2,kT=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]),AT=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]),bT=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]),ET=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]),xT=(e,t,i,n,r,a,s,o)=>{let l=o.bits,c=0,m=0,d=0,u=0,f=0,h=0,v=0,g=0,y=0,k=0,b,w,S,O,E,K=null,C,T=new Uint16Array(pr+1),B=new Uint16Array(pr+1),ee=null,ye,A,P;for(c=0;c<=pr;c++)T[c]=0;for(m=0;m<n;m++)T[t[i+m]]++;for(f=l,u=pr;u>=1&&T[u]===0;u--);if(f>u&&(f=u),u===0)return r[a++]=1<<24|64<<16|0,r[a++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d<u&&T[d]===0;d++);for(f<d&&(f=d),g=1,c=1;c<=pr;c++)if(g<<=1,g-=T[c],g<0)return-1;if(g>0&&(e===jg||u!==1))return-1;for(B[1]=0,c=1;c<pr;c++)B[c+1]=B[c]+T[c];for(m=0;m<n;m++)t[i+m]!==0&&(s[B[t[i+m]]++]=m);if(e===jg?(K=ee=s,C=20):e===Jm?(K=kT,ee=AT,C=257):(K=bT,ee=ET,C=0),k=0,m=0,c=d,E=a,h=f,v=0,S=-1,y=1<<f,O=y-1,e===Jm&&y>Zg||e===Jg&&y>qg)return 1;for(;;){ye=c-v,s[m]+1<C?(A=0,P=s[m]):s[m]>=C?(A=ee[s[m]-C],P=K[s[m]-C]):(A=96,P=0),b=1<<c-v,w=1<<h,d=w;do w-=b,r[E+(k>>v)+w]=ye<<24|A<<16|P|0;while(w!==0);for(b=1<<c-1;k&b;)b>>=1;if(b!==0?(k&=b-1,k+=b):k=0,m++,--T[c]===0){if(c===u)break;c=t[i+s[m]]}if(c>f&&(k&O)!==S){for(v===0&&(v=f),E+=d,h=c-v,g=1<<h;h+v<u&&(g-=T[h+v],!(g<=0));)h++,g<<=1;if(y+=1<<h,e===Jm&&y>Zg||e===Jg&&y>qg)return 1;S=k&O,r[S]=f<<24|h<<16|E-a|0}}return k!==0&&(r[E+k]=c-v<<24|64<<16|0),o.bits=f,0},Ra=xT,TT=0,c_=1,l_=2,{Z_FINISH:Qg,Z_BLOCK:MT,Z_TREES:zo,Z_OK:Wn,Z_STREAM_END:RT,Z_NEED_DICT:zT,Z_STREAM_ERROR:qt,Z_DATA_ERROR:m_,Z_MEM_ERROR:d_,Z_BUF_ERROR:LT,Z_DEFLATED:e1}=Kn,Yo=16180,t1=16181,i1=16182,n1=16183,r1=16184,a1=16185,s1=16186,o1=16187,c1=16188,l1=16189,Po=16190,Vi=16191,Qm=16192,m1=16193,ed=16194,d1=16195,u1=16196,f1=16197,h1=16198,Lo=16199,No=16200,g1=16201,_1=16202,p1=16203,v1=16204,y1=16205,td=16206,w1=16207,S1=16208,Fe=16209,u_=16210,f_=16211,NT=852,OT=592,IT=15,CT=IT,k1=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function PT(){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 $n=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<Yo||t.mode>f_?1:0},h_=e=>{if($n(e))return qt;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=Yo,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(NT),t.distcode=t.distdyn=new Int32Array(OT),t.sane=1,t.back=-1,Wn},g_=e=>{if($n(e))return qt;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,h_(e)},__=(e,t)=>{let i;if($n(e))return qt;let n=e.state;return t<0?(i=0,t=-t):(i=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?qt:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,g_(e))},p_=(e,t)=>{if(!e)return qt;let i=new PT;e.state=i,i.strm=e,i.window=null,i.mode=Yo;let n=__(e,t);return n!==Wn&&(e.state=null),n},FT=e=>p_(e,CT),A1=!0,id,nd,DT=e=>{if(A1){id=new Int32Array(512),nd=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(Ra(c_,e.lens,0,288,id,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ra(l_,e.lens,0,32,nd,0,e.work,{bits:5}),A1=!1}e.lencode=id,e.lenbits=9,e.distcode=nd,e.distbits=5},v_=(e,t,i,n)=>{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)),n>=a.wsize?(a.window.set(t.subarray(i-a.wsize,i),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),a.window.set(t.subarray(i-n,i-n+r),a.wnext),n-=r,n?(a.window.set(t.subarray(i-n,i),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0},UT=(e,t)=>{let i,n,r,a,s,o,l,c,m,d,u,f,h,v,g=0,y,k,b,w,S,O,E,K,C=new Uint8Array(4),T,B,ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if($n(e)||!e.output||!e.input&&e.avail_in!==0)return qt;i=e.state,i.mode===Vi&&(i.mode=Qm),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,m=i.bits,d=o,u=l,K=Wn;e:for(;;)switch(i.mode){case Yo:if(i.wrap===0){i.mode=Qm;break}for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.wrap&2&&c===35615){i.wbits===0&&(i.wbits=15),i.check=0,C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0),c=0,m=0,i.mode=t1;break}if(i.head&&(i.head.done=!1),!(i.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",i.mode=Fe;break}if((c&15)!==e1){e.msg="unknown compression method",i.mode=Fe;break}if(c>>>=4,m-=4,E=(c&15)+8,i.wbits===0&&(i.wbits=E),E>15||E>i.wbits){e.msg="invalid window size",i.mode=Fe;break}i.dmax=1<<i.wbits,i.flags=0,e.adler=i.check=1,i.mode=c&512?l1:Vi,c=0,m=0;break;case t1:for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.flags=c,(i.flags&255)!==e1){e.msg="unknown compression method",i.mode=Fe;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=Fe;break}i.head&&(i.head.text=c>>8&1),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0)),c=0,m=0,i.mode=i1;case i1:for(;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.head&&(i.head.time=c),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,C[2]=c>>>16&255,C[3]=c>>>24&255,i.check=rt(i.check,C,4,0)),c=0,m=0,i.mode=n1;case n1:for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.head&&(i.head.xflags=c&255,i.head.os=c>>8),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0)),c=0,m=0,i.mode=r1;case r1:if(i.flags&1024){for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.length=c,i.head&&(i.head.extra_len=c),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0)),c=0,m=0}else i.head&&(i.head.extra=null);i.mode=a1;case a1:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(E=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(a,a+f),E)),i.flags&512&&i.wrap&4&&(i.check=rt(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=s1;case s1:if(i.flags&2048){if(o===0)break e;f=0;do E=n[a+f++],i.head&&E&&i.length<65536&&(i.head.name+=String.fromCharCode(E));while(E&&f<o);if(i.flags&512&&i.wrap&4&&(i.check=rt(i.check,n,f,a)),o-=f,a+=f,E)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=o1;case o1:if(i.flags&4096){if(o===0)break e;f=0;do E=n[a+f++],i.head&&E&&i.length<65536&&(i.head.comment+=String.fromCharCode(E));while(E&&f<o);if(i.flags&512&&i.wrap&4&&(i.check=rt(i.check,n,f,a)),o-=f,a+=f,E)break e}else i.head&&(i.head.comment=null);i.mode=c1;case c1:if(i.flags&512){for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.wrap&4&&c!==(i.check&65535)){e.msg="header crc mismatch",i.mode=Fe;break}c=0,m=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Vi;break;case l1:for(;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}e.adler=i.check=k1(c),c=0,m=0,i.mode=Po;case Po:if(i.havedict===0)return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=m,zT;e.adler=i.check=1,i.mode=Vi;case Vi:if(t===MT||t===zo)break e;case Qm:if(i.last){c>>>=m&7,m-=m&7,i.mode=td;break}for(;m<3;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}switch(i.last=c&1,c>>>=1,m-=1,c&3){case 0:i.mode=m1;break;case 1:if(DT(i),i.mode=Lo,t===zo){c>>>=2,m-=2;break e}break;case 2:i.mode=u1;break;case 3:e.msg="invalid block type",i.mode=Fe}c>>>=2,m-=2;break;case m1:for(c>>>=m&7,m-=m&7;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",i.mode=Fe;break}if(i.length=c&65535,c=0,m=0,i.mode=ed,t===zo)break e;case ed:i.mode=d1;case d1:if(f=i.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;r.set(n.subarray(a,a+f),s),o-=f,a+=f,l-=f,s+=f,i.length-=f;break}i.mode=Vi;break;case u1:for(;m<14;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.nlen=(c&31)+257,c>>>=5,m-=5,i.ndist=(c&31)+1,c>>>=5,m-=5,i.ncode=(c&15)+4,c>>>=4,m-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Fe;break}i.have=0,i.mode=f1;case f1:for(;i.have<i.ncode;){for(;m<3;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.lens[ee[i.have++]]=c&7,c>>>=3,m-=3}for(;i.have<19;)i.lens[ee[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,T={bits:i.lenbits},K=Ra(TT,i.lens,0,19,i.lencode,0,i.work,T),i.lenbits=T.bits,K){e.msg="invalid code lengths set",i.mode=Fe;break}i.have=0,i.mode=h1;case h1:for(;i.have<i.nlen+i.ndist;){for(;g=i.lencode[c&(1<<i.lenbits)-1],y=g>>>24,k=g>>>16&255,b=g&65535,!(y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(b<16)c>>>=y,m-=y,i.lens[i.have++]=b;else{if(b===16){for(B=y+2;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(c>>>=y,m-=y,i.have===0){e.msg="invalid bit length repeat",i.mode=Fe;break}E=i.lens[i.have-1],f=3+(c&3),c>>>=2,m-=2}else if(b===17){for(B=y+3;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=y,m-=y,E=0,f=3+(c&7),c>>>=3,m-=3}else{for(B=y+7;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=y,m-=y,E=0,f=11+(c&127),c>>>=7,m-=7}if(i.have+f>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Fe;break}for(;f--;)i.lens[i.have++]=E}}if(i.mode===Fe)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=Fe;break}if(i.lenbits=9,T={bits:i.lenbits},K=Ra(c_,i.lens,0,i.nlen,i.lencode,0,i.work,T),i.lenbits=T.bits,K){e.msg="invalid literal/lengths set",i.mode=Fe;break}if(i.distbits=6,i.distcode=i.distdyn,T={bits:i.distbits},K=Ra(l_,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,T),i.distbits=T.bits,K){e.msg="invalid distances set",i.mode=Fe;break}if(i.mode=Lo,t===zo)break e;case Lo:i.mode=No;case No:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=m,ST(e,u),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,m=i.bits,i.mode===Vi&&(i.back=-1);break}for(i.back=0;g=i.lencode[c&(1<<i.lenbits)-1],y=g>>>24,k=g>>>16&255,b=g&65535,!(y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(k&&(k&240)===0){for(w=y,S=k,O=b;g=i.lencode[O+((c&(1<<w+S)-1)>>w)],y=g>>>24,k=g>>>16&255,b=g&65535,!(w+y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=w,m-=w,i.back+=w}if(c>>>=y,m-=y,i.back+=y,i.length=b,k===0){i.mode=y1;break}if(k&32){i.back=-1,i.mode=Vi;break}if(k&64){e.msg="invalid literal/length code",i.mode=Fe;break}i.extra=k&15,i.mode=g1;case g1:if(i.extra){for(B=i.extra;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.length+=c&(1<<i.extra)-1,c>>>=i.extra,m-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=_1;case _1:for(;g=i.distcode[c&(1<<i.distbits)-1],y=g>>>24,k=g>>>16&255,b=g&65535,!(y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if((k&240)===0){for(w=y,S=k,O=b;g=i.distcode[O+((c&(1<<w+S)-1)>>w)],y=g>>>24,k=g>>>16&255,b=g&65535,!(w+y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=w,m-=w,i.back+=w}if(c>>>=y,m-=y,i.back+=y,k&64){e.msg="invalid distance code",i.mode=Fe;break}i.offset=b,i.extra=k&15,i.mode=p1;case p1:if(i.extra){for(B=i.extra;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.offset+=c&(1<<i.extra)-1,c>>>=i.extra,m-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Fe;break}i.mode=v1;case v1:if(l===0)break e;if(f=u-l,i.offset>f){if(f=i.offset-f,f>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Fe;break}f>i.wnext?(f-=i.wnext,h=i.wsize-f):h=i.wnext-f,f>i.length&&(f=i.length),v=i.window}else v=r,h=s-i.offset,f=i.length;f>l&&(f=l),l-=f,i.length-=f;do r[s++]=v[h++];while(--f);i.length===0&&(i.mode=No);break;case y1:if(l===0)break e;r[s++]=i.length,l--,i.mode=No;break;case td:if(i.wrap){for(;m<32;){if(o===0)break e;o--,c|=n[a++]<<m,m+=8}if(u-=l,e.total_out+=u,i.total+=u,i.wrap&4&&u&&(e.adler=i.check=i.flags?rt(i.check,r,u,s-u):Ia(i.check,r,u,s-u)),u=l,i.wrap&4&&(i.flags?c:k1(c))!==i.check){e.msg="incorrect data check",i.mode=Fe;break}c=0,m=0}i.mode=w1;case w1:if(i.wrap&&i.flags){for(;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.wrap&4&&c!==(i.total&4294967295)){e.msg="incorrect length check",i.mode=Fe;break}c=0,m=0}i.mode=S1;case S1:K=RT;break e;case Fe:K=m_;break e;case u_:return d_;case f_:default:return qt}return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=m,(i.wsize||u!==e.avail_out&&i.mode<Fe&&(i.mode<td||t!==Qg))&&v_(e,e.output,e.next_out,u-e.avail_out),d-=e.avail_in,u-=e.avail_out,e.total_in+=d,e.total_out+=u,i.total+=u,i.wrap&4&&u&&(e.adler=i.check=i.flags?rt(i.check,r,u,e.next_out-u):Ia(i.check,r,u,e.next_out-u)),e.data_type=i.bits+(i.last?64:0)+(i.mode===Vi?128:0)+(i.mode===Lo||i.mode===ed?256:0),(d===0&&u===0||t===Qg)&&K===Wn&&(K=LT),K},BT=e=>{if($n(e))return qt;let t=e.state;return t.window&&(t.window=null),e.state=null,Wn},GT=(e,t)=>{if($n(e))return qt;let i=e.state;return(i.wrap&2)===0?qt:(i.head=t,t.done=!1,Wn)},HT=(e,t)=>{let i=t.length,n,r,a;return $n(e)||(n=e.state,n.wrap!==0&&n.mode!==Po)?qt:n.mode===Po&&(r=1,r=Ia(r,t,i,0),r!==n.check)?m_:(a=v_(e,t,i,i),a?(n.mode=u_,d_):(n.havedict=1,Wn))},VT=g_,WT=__,KT=h_,$T=FT,XT=p_,YT=UT,ZT=BT,qT=GT,jT=HT,JT="pako inflate (from Nodeca project)",Ki={inflateReset:VT,inflateReset2:WT,inflateResetKeep:KT,inflateInit:$T,inflateInit2:XT,inflate:YT,inflateEnd:ZT,inflateGetHeader:qT,inflateSetDictionary:jT,inflateInfo:JT};function QT(){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 eM=QT,y_=Object.prototype.toString,{Z_NO_FLUSH:tM,Z_FINISH:iM,Z_OK:Fa,Z_STREAM_END:rd,Z_NEED_DICT:ad,Z_STREAM_ERROR:nM,Z_DATA_ERROR:b1,Z_MEM_ERROR:rM}=Kn;function Ga(e){this.options=Xo.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 s_,this.strm.avail_out=0;let i=Ki.inflateInit2(this.strm,t.windowBits);if(i!==Fa)throw new Error(Hn[i]);if(this.header=new eM,Ki.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Pa.string2buf(t.dictionary):y_.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Ki.inflateSetDictionary(this.strm,t.dictionary),i!==Fa)))throw new Error(Hn[i])}Ga.prototype.push=function(e,t){let i=this.strm,n=this.options.chunkSize,r=this.options.dictionary,a,s,o;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?iM:tM,y_.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(i.avail_out===0&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),a=Ki.inflate(i,s),a===ad&&r&&(a=Ki.inflateSetDictionary(i,r),a===Fa?a=Ki.inflate(i,s):a===b1&&(a=ad));i.avail_in>0&&a===rd&&i.state.wrap>0&&e[i.next_in]!==0;)Ki.inflateReset(i),a=Ki.inflate(i,s);switch(a){case nM:case b1:case ad:case rM:return this.onEnd(a),this.ended=!0,!1}if(o=i.avail_out,i.next_out&&(i.avail_out===0||a===rd))if(this.options.to==="string"){let l=Pa.utf8border(i.output,i.next_out),c=i.next_out-l,m=Pa.buf2string(i.output,l);i.next_out=c,i.avail_out=n-c,c&&i.output.set(i.output.subarray(l,l+c),0),this.onData(m)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(!(a===Fa&&o===0)){if(a===rd)return a=Ki.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(i.avail_in===0)break}}return!0};Ga.prototype.onData=function(e){this.chunks.push(e)};Ga.prototype.onEnd=function(e){e===Fa&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Xo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Md(e,t){let i=new Ga(t);if(i.push(e),i.err)throw i.msg||Hn[i.err];return i.result}function aM(e,t){return t=t||{},t.raw=!0,Md(e,t)}var sM=Ga,oM=Md,cM=aM,lM=Md,mM=Kn,dM={Inflate:sM,inflate:oM,inflateRaw:cM,ungzip:lM,constants:mM},{Deflate:uM,deflate:fM,deflateRaw:hM,gzip:gM}=yT,{Inflate:_M,inflate:pM,inflateRaw:vM,ungzip:yM}=dM,wM=uM,SM=fM,kM=hM,AM=gM,bM=_M,EM=pM,xM=vM,TM=yM,MM=Kn,E1={Deflate:wM,deflate:SM,deflateRaw:kM,gzip:AM,Inflate:bM,inflate:EM,inflateRaw:xM,ungzip:TM,constants:MM},vr=2023,Rd=1,zd=2,Ld=4,Nd=8,Od=16,Id=32,Cd=64,x1=128,RM=256,Pd=512,Fd=1024,Dd=2048,Fo=4096,Ud=8192,Do=16384,zM=32768,Uo=65536,Bd=1<<17,Bo=1<<18,Go=1<<19,Gd=1<<20,Hd=1<<21,Vd=1<<22,LM=1<<23,Wd=1<<24,Ho=1<<25,Kd=1<<26,$d=1<<27,Xd=1<<28,Yd=1<<29,Zd=1<<30,NM=-2147483648,qd=1,jd=2,Jd=4,OM=1,IM=2,CM=128,yr=()=>({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}),T1=()=>({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}),Zo=class w_{constructor(t,i,n=!1){this.protocolVersion=0,this.isDemo=OM,this.strictMode=!1,this.errorCount=0,this.stream=t,this.handler=i,this.strictMode=n}setProtocolVersion(t){this.protocolVersion=t}getProtocolVersion(){return this.protocolVersion}getErrorCount(){return this.errorCount}translateCommand(t){return this.protocolVersion===0&&(t===7||t===12)?ce.serverdata:this.protocolVersion===vr?t:this.protocolVersion===34||this.protocolVersion===25?t<=ce.frame?t:t===22?ce.playerinfo:t===23?ce.packetentities:ce.bad:(this.protocolVersion===0,t)}parseMessage(){for(;this.stream.hasMore();){let t=-1;try{t=this.stream.readByte()}catch{break}if(t===-1)break;let i=t;t=this.translateCommand(t);try{switch(t){case ce.bad:this.strictMode;return;case ce.nop:break;case ce.disconnect:this.handler&&this.handler.onDisconnect&&this.handler.onDisconnect();break;case ce.reconnect:this.handler&&this.handler.onReconnect&&this.handler.onReconnect();break;case ce.print:this.parsePrint();break;case ce.serverdata:this.parseServerData();break;case ce.configstring:this.parseConfigString();break;case ce.spawnbaseline:this.parseSpawnBaseline();break;case ce.centerprint:this.parseCenterPrint();break;case ce.download:this.parseDownload();break;case ce.frame:this.parseFrame();break;case ce.packetentities:this.parsePacketEntities(!1);break;case ce.deltapacketentities:this.parsePacketEntities(!0);break;case ce.playerinfo:this.parsePlayerState();break;case ce.stufftext:this.parseStuffText();break;case ce.layout:this.parseLayout();break;case ce.inventory:this.parseInventory();break;case ce.sound:this.parseSound();break;case ce.muzzleflash:this.parseMuzzleFlash();break;case ce.muzzleflash2:this.parseMuzzleFlash2();break;case ce.temp_entity:this.parseTempEntity();break;case ce.splitclient:this.parseSplitClient();break;case ce.configblast:this.parseConfigBlast();break;case ce.spawnbaselineblast:this.parseSpawnBaselineBlast();break;case ce.level_restart:this.handler&&this.handler.onLevelRestart&&this.handler.onLevelRestart();break;case ce.damage:this.parseDamage();break;case ce.locprint:this.parseLocPrint();break;case ce.fog:this.parseFog();break;case ce.waitingforplayers:this.parseWaitingForPlayers();break;case ce.bot_chat:this.parseBotChat();break;case ce.poi:this.parsePoi();break;case ce.help_path:this.parseHelpPath();break;case ce.muzzleflash3:this.parseMuzzleFlash3();break;case ce.achievement:this.parseAchievement();break;default:let n=`Unknown server command: ${i} (translated: ${t}) at offset ${this.stream.getPosition()-1}`;if(this.strictMode)throw new Error(n);console.warn(n),this.errorCount++;return}}catch(n){let r=`offset ${this.stream.getPosition()}, cmd ${t}, protocol ${this.protocolVersion}`;if(console.warn(`Error parsing command ${t} (${r}): ${n.message}`),this.errorCount++,this.strictMode)throw n;return}}}parsePrint(){let t=this.stream.readByte(),i=this.stream.readString();this.handler&&this.handler.onPrint(t,i)}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===vr){let t=this.stream.readLong(),i=this.stream.readByte();this.isDemo=i;let n=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,n,i):console.log(`Server Data (Rerelease): Protocol ${this.protocolVersion}, Level ${s}, Tick ${n}`)}else{let t=this.stream.readLong();this.isDemo=this.stream.readByte();let i=0,n=this.stream.readString(),r=this.stream.readShort(),a=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,i,n,r,a):console.log(`Server Data: Protocol ${this.protocolVersion}, Level ${a}, GameDir ${n}`)}}parseConfigString(){let t=this.stream.readShort(),i=this.stream.readString();this.handler&&this.handler.onConfigString(t,i)}parseSplitClient(){let t=this.stream.readByte();this.handler&&this.handler.onSplitClient&&this.handler.onSplitClient(t)}parseConfigBlast(){let t=this.stream.readShort(),i=this.stream.readShort(),n=this.stream.readData(t);try{let r=E1.inflate(n);r.byteLength!==i&&console.warn(`svc_configblast: Decompressed size mismatch. Expected ${i}, got ${r.byteLength}`);let a=new cd(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(),i=this.stream.readShort(),n=this.stream.readData(t);try{let r=E1.inflate(n);r.byteLength!==i&&console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${i}, got ${r.byteLength}`);let a=new cd(r.buffer),s=new w_(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(),i=this.stream.readString(),n=this.stream.readByte(),r=[];for(let a=0;a<n;a++)r.push(this.stream.readString());this.handler&&this.handler.onLocPrint&&this.handler.onLocPrint(t,i,r)}parseWaitingForPlayers(){let t=this.stream.readByte();this.handler&&this.handler.onWaitingForPlayers&&this.handler.onWaitingForPlayers(t)}parseBotChat(){let t=this.stream.readString(),i=this.stream.readShort(),n=this.stream.readString();this.handler&&this.handler.onBotChat&&this.handler.onBotChat(n)}parsePoi(){let t=this.stream.readUShort(),i=this.stream.readUShort(),n={x:0,y:0,z:0};this.stream.readPos(n);let r=this.stream.readUShort(),a=this.stream.readByte(),s=this.stream.readByte();this.handler&&this.handler.onPoi&&this.handler.onPoi(s,n)}parseHelpPath(){let t=this.stream.readByte(),i={x:0,y:0,z:0};this.stream.readPos(i);let n={x:0,y:0,z:0};this.stream.readDir(n),this.handler&&this.handler.onHelpPath&&this.handler.onHelpPath(i)}parseAchievement(){let t=this.stream.readString();this.handler&&this.handler.onAchievement&&this.handler.onAchievement(t)}parseDownload(){let t=this.stream.readShort(),i=this.stream.readByte(),n;t>0&&(n=this.stream.readData(t)),this.handler&&this.handler.onDownload(t,i,n)}parseInventory(){let i=new Array(256);for(let n=0;n<256;n++)i[n]=this.stream.readShort();this.handler&&this.handler.onInventory(i)}parseSound(){let t=this.stream.readByte(),i=this.stream.readByte(),n,r,a,s,o;if(t&1&&(n=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,i,n,r,a,s,o)}parseMuzzleFlash(){let t=this.stream.readShort(),i=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash(t,i)}parseMuzzleFlash2(){let t=this.stream.readShort(),i=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash2(t,i)}parseMuzzleFlash3(){let t=this.stream.readShort(),i=this.stream.readShort();this.handler&&this.handler.onMuzzleFlash3&&this.handler.onMuzzleFlash3(t,i)}parseFog(){let t=this.stream.readByte();if(t&128){let n=this.stream.readByte();t|=n<<8}let i={};t&1&&(i.density=this.stream.readFloat(),i.skyfactor=this.stream.readByte()),t&2&&(i.red=this.stream.readByte()),t&4&&(i.green=this.stream.readByte()),t&8&&(i.blue=this.stream.readByte()),t&16&&(i.time=this.stream.readShort()),t&32&&(i.hf_falloff=this.stream.readFloat()),t&64&&(i.hf_density=this.stream.readFloat()),t&256&&(i.hf_start_r=this.stream.readByte()),t&512&&(i.hf_start_g=this.stream.readByte()),t&1024&&(i.hf_start_b=this.stream.readByte()),t&2048&&(i.hf_start_dist=this.stream.readLong()),t&4096&&(i.hf_end_r=this.stream.readByte()),t&8192&&(i.hf_end_g=this.stream.readByte()),t&16384&&(i.hf_end_b=this.stream.readByte()),t&32768&&(i.hf_end_dist=this.stream.readLong()),this.handler&&this.handler.onFog&&this.handler.onFog(i)}parseDamage(){let t=this.stream.readByte(),i=[];for(let n=0;n<t;n++){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;i.push({damage:s,health:o,armor:l,power:c,dir:a})}this.handler&&this.handler.onDamage&&this.handler.onDamage(i)}parseTempEntity(){let t=this.stream.readByte(),i={x:0,y:0,z:0},n={x:0,y:0,z:0},r={x:0,y:0,z:0},a,s,o,l,c;switch(t){case J.EXPLOSION1:case J.EXPLOSION2:case J.ROCKET_EXPLOSION:case J.GRENADE_EXPLOSION:case J.ROCKET_EXPLOSION_WATER:case J.GRENADE_EXPLOSION_WATER:case J.BFG_EXPLOSION:case J.BFG_BIGEXPLOSION:case J.BOSSTPORT:case J.PLASMA_EXPLOSION:case J.PLAIN_EXPLOSION:case J.CHAINFIST_SMOKE:case J.TRACKER_EXPLOSION:case J.TELEPORT_EFFECT:case J.DBALL_GOAL:case J.NUKEBLAST:case J.WIDOWSPLASH:case J.EXPLOSION1_BIG:case J.EXPLOSION1_NP:this.stream.readPos(i);break;case J.GUNSHOT:case J.BLOOD:case J.BLASTER:case J.SHOTGUN:case J.SPARKS:case J.BULLET_SPARKS:case J.SCREEN_SPARKS:case J.SHIELD_SPARKS:case J.BLASTER2:case J.FLECHETTE:case J.MOREBLOOD:case J.ELECTRIC_SPARKS:case J.HEATBEAM_SPARKS:case J.HEATBEAM_STEAM:this.stream.readPos(i),this.stream.readDir(r);break;case J.SPLASH:case J.LASER_SPARKS:case J.WELDING_SPARKS:case J.TUNNEL_SPARKS:a=this.stream.readByte(),this.stream.readPos(i),this.stream.readDir(r),s=this.stream.readByte();break;case J.BLUEHYPERBLASTER:this.protocolVersion>=32?(this.stream.readPos(i),this.stream.readPos(n)):(this.stream.readPos(i),this.stream.readDir(r));break;case J.GREENBLOOD:this.protocolVersion>=32?(this.stream.readPos(i),this.stream.readDir(r)):(this.stream.readPos(i),this.stream.readPos(n));break;case J.RAILTRAIL:case J.BUBBLETRAIL:case J.BFG_LASER:case J.DEBUGTRAIL:case J.BUBBLETRAIL2:this.stream.readPos(i),this.stream.readPos(n);break;case J.PARASITE_ATTACK:case J.MEDIC_CABLE_ATTACK:this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n);break;case J.GRAPPLE_CABLE:o=this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n),this.stream.readPos(r);break;case J.LIGHTNING:l=this.stream.readShort(),c=this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n);break;case J.FLASHLIGHT:this.stream.readPos(i),o=this.stream.readShort();break;case J.FORCEWALL:this.stream.readPos(i),this.stream.readPos(n),s=this.stream.readByte();break;case J.STEAM:let m=this.stream.readShort();a=this.stream.readByte(),this.stream.readPos(i),this.stream.readDir(r),s=this.stream.readByte(),this.stream.readShort(),m!==-1&&this.stream.readLong();break;case J.WIDOWBEAMOUT:this.stream.readShort();case J.HEATBEAM:case J.MONSTER_HEATBEAM:o=this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n),this.stream.readPos(r);break;default:break}this.handler&&this.handler.onTempEntity(t,i,n,r,a,s,o,l,c)}parseSpawnBaseline(){let t=this.parseEntityBits(),i=yr();this.parseDelta(yr(),i,t.number,t.bits,t.bitsHigh),this.handler&&this.handler.onSpawnBaseline(i)}parseFrame(){let t=this.stream.readLong(),i=this.stream.readLong(),n=0;this.protocolVersion!==26&&(n=this.stream.readByte());let r=this.stream.readByte(),a=this.stream.readData(r),s=this.stream.readByte();if(s=this.translateCommand(s),s!==ce.playerinfo)throw new Error(`Expected svc_playerinfo after svc_frame, got ${s} (translated)`);let o=this.parsePlayerState(),l=this.stream.readByte();if(l=this.translateCommand(l),l!==ce.packetentities)throw new Error(`Expected svc_packetentities after svc_playerinfo, got ${l} (translated)`);let c=this.collectPacketEntities();if(this.isDemo===CM){let m=this.stream.readByte();for(let d=0;d<m;d++)this.stream.readByte()}this.isDemo===IM&&this.stream.readLong(),this.handler&&this.handler.onFrame({serverFrame:t,deltaFrame:i,surpressCount:n,areaBytes:r,areaBits:a,playerState:o,packetEntities:{delta:!0,entities:c}})}parsePlayerState(){let t=T1(),i=this.stream.readShort();i&1&&(t.pm_type=this.stream.readByte()),i&2&&(t.origin.x=this.stream.readShort()*.125,t.origin.y=this.stream.readShort()*.125,t.origin.z=this.stream.readShort()*.125),i&4&&(t.velocity.x=this.stream.readShort()*.125,t.velocity.y=this.stream.readShort()*.125,t.velocity.z=this.stream.readShort()*.125),i&8&&(t.pm_time=this.stream.readByte()),i&16&&(t.pm_flags=this.stream.readByte()),i&32&&(t.gravity=this.stream.readShort()),i&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)),i&128&&(t.viewoffset.x=this.stream.readChar()*.25,t.viewoffset.y=this.stream.readChar()*.25,t.viewoffset.z=this.stream.readChar()*.25),i&256&&(t.viewangles.x=this.stream.readAngle16(),t.viewangles.y=this.stream.readAngle16(),t.viewangles.z=this.stream.readAngle16()),i&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),i&4096&&(t.gun_index=this.stream.readByte()),i&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),i&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()),i&2048&&(t.fov=this.stream.readByte()),i&16384&&(t.rdflags=this.stream.readByte());let n=this.stream.readLong();for(let r=0;r<32;r++)n&1<<r&&(t.stats[r]=this.stream.readShort());return t}parsePacketEntities(t){let i=this.collectPacketEntities();this.handler&&this.handler.onFrame({serverFrame:0,deltaFrame:0,surpressCount:0,areaBytes:0,areaBits:new Uint8Array,playerState:T1(),packetEntities:{delta:t,entities:i}})}collectPacketEntities(){let t=[];for(;;){let i=this.parseEntityBits();if(i.bits&Cd){if(i.number===0)break;continue}let n=yr(),r=i.number===0&&!(i.bits&x1);if((i.number!==0||r)&&this.parseDelta(yr(),n,i.number,i.bits,i.bitsHigh),i.number===0)break;t.push(n)}return t}parseEntityBits(){let t=this.stream.readByte();t&x1&&(t|=this.stream.readByte()<<8),t&zM&&(t|=this.stream.readByte()<<16),t&LM&&(t|=this.stream.readByte()<<24);let i=0;this.protocolVersion===vr&&t&NM&&(i=this.stream.readByte());let n;return t&RM?n=this.stream.readShort():n=this.stream.readByte(),{number:n,bits:t,bitsHigh:i}}parseDelta(t,i,n,r,a=0){i.number=t.number,i.modelindex=t.modelindex,i.modelindex2=t.modelindex2,i.modelindex3=t.modelindex3,i.modelindex4=t.modelindex4,i.frame=t.frame,i.skinnum=t.skinnum,i.effects=t.effects,i.renderfx=t.renderfx,i.origin.x=t.origin.x,i.origin.y=t.origin.y,i.origin.z=t.origin.z,i.old_origin.x=t.origin.x,i.old_origin.y=t.origin.y,i.old_origin.z=t.origin.z,i.angles.x=t.angles.x,i.angles.y=t.angles.y,i.angles.z=t.angles.z,i.sound=t.sound,i.event=t.event,i.solid=t.solid,i.alpha=t.alpha,i.scale=t.scale,i.instanceBits=t.instanceBits,i.loopVolume=t.loopVolume,i.loopAttenuation=t.loopAttenuation,i.owner=t.owner,i.oldFrame=t.oldFrame,i.number=n,i.bits=r,i.bitsHigh=a,r&Dd&&(i.modelindex=this.stream.readByte()),r&Gd&&(i.modelindex2=this.stream.readByte()),r&Hd&&(i.modelindex3=this.stream.readByte()),r&Vd&&(i.modelindex4=this.stream.readByte()),r&Od&&(i.frame=this.stream.readByte()),r&Bd&&(i.frame=this.stream.readShort()),r&Uo&&r&Ho?i.skinnum=this.stream.readLong():r&Uo?i.skinnum=this.stream.readByte():r&Ho&&(i.skinnum=this.stream.readShort()),r&Do&&r&Go?i.effects=this.stream.readLong():r&Do?i.effects=this.stream.readByte():r&Go&&(i.effects=this.stream.readShort()),r&Fo&&r&Bo?i.renderfx=this.stream.readLong():r&Fo?i.renderfx=this.stream.readByte():r&Bo&&(i.renderfx=this.stream.readShort()),r&Rd&&(i.origin.x=this.stream.readCoord()),r&zd&&(i.origin.y=this.stream.readCoord()),r&Pd&&(i.origin.z=this.stream.readCoord()),r&Fd&&(i.angles.x=this.stream.readAngle()),r&Ld&&(i.angles.y=this.stream.readAngle()),r&Nd&&(i.angles.z=this.stream.readAngle()),r&Wd&&this.stream.readPos(i.old_origin),r&Kd&&(i.sound=this.stream.readByte()),r&Id?i.event=this.stream.readByte():i.event=0,r&$d&&(i.solid=this.stream.readShort()),this.protocolVersion===vr&&(r&Ud&&(i.alpha=this.stream.readByte()/255),r&Xd&&(i.scale=this.stream.readFloat()),r&Yd&&(i.instanceBits=this.stream.readLong()),r&Zd&&(i.loopVolume=this.stream.readByte()/255),a&qd&&(i.loopAttenuation=this.stream.readByte()/255),a&jd&&(i.owner=this.stream.readShort()),a&Jd&&(i.oldFrame=this.stream.readShort()))}};var PM=class{constructor(e){this.events=[],this.summary={totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map},this.header=null,this.configStrings=new Map,this.serverInfo={},this.statistics=null,this.playerStats=new Map,this.weaponStats=new Map,this.activeEntities=new Set,this.buffer=e}analyze(){let e=new D1(this.buffer),t=-1,i=0,n=.1,r=0,a={onServerData:(s,o,l,c,m,d,u,f)=>{r=s,this.header={protocolVersion:s,gameDir:c,levelName:d,playerNum:m,serverCount:o,spawnCount:o,tickRate:u,demoType:f},u&&u>0&&(n=1/u)},onConfigString:(s,o)=>{this.configStrings.set(s,o),s===0&&this.parseServerInfo(o)},onSpawnBaseline:s=>{},onFrame:s=>{let o=new Set;if(s.packetEntities&&s.packetEntities.entities)for(let l of s.packetEntities.entities)o.add(l.number),this.activeEntities.has(l.number)||this.recordEvent({type:5,frame:t,time:i,entityId:l.number,position:{x:l.origin.x,y:l.origin.y,z:l.origin.z},description:`Entity ${l.number} spawned`});this.activeEntities=o,s.playerState&&this.header},onPrint:(s,o)=>{(o.includes("died")||o.includes("killed")||o.includes("suicide"))&&(this.summary.totalDeaths++,this.recordEvent({type:4,frame:t,time:i,description:o.trim()})),o.startsWith("You got the ")&&this.recordEvent({type:3,frame:t,time:i,description:o.trim()})},onCenterPrint:()=>{},onStuffText:()=>{},onSound:()=>{},onTempEntity:()=>{},onLayout:()=>{},onInventory:()=>{},onMuzzleFlash:(s,o)=>{this.handleWeaponFire(s,o,t,i)},onMuzzleFlash2:(s,o)=>{this.handleWeaponFire(s,o,t,i)},onMuzzleFlash3:(s,o)=>{this.handleWeaponFire(s,o,t,i)},onDisconnect:()=>{},onReconnect:()=>{},onDownload:()=>{},onDamage:s=>{for(let o of s)if(this.recordEvent({type:2,frame:t,time:i,value:o.damage,position:o.dir,description:`Took ${o.damage} damage`}),this.summary.damageReceived+=o.damage,this.header){let l=this.getOrCreatePlayerStats(this.header.playerNum);l.damageReceived+=o.damage}}};for(;e.hasMore();){let s=e.readNextBlock();if(!s)break;t++,i=t*n;let o=new Zo(s.data,a);o.setProtocolVersion(r),o.parseMessage(),r=o.getProtocolVersion()}return this.statistics={duration:i,frameCount:t+1,averageFps:(t+1)/(i||1),mapName:this.header?.levelName||"unknown",playerCount:1},{events:this.events,summary:this.summary,header:this.header,configStrings:this.configStrings,serverInfo:this.serverInfo,statistics:this.statistics,playerStats:this.playerStats,weaponStats:this.weaponStats}}handleWeaponFire(e,t,i,n){this.recordEvent({type:0,frame:i,time:n,entityId:e,value:t,description:`Weapon ${t} fired by ${e}`});let r=this.summary.weaponUsage.get(t)||0;this.summary.weaponUsage.set(t,r+1);let a=this.getOrCreateWeaponStat(e,t);a.shotsFired++}recordEvent(e){this.events.push(e)}parseServerInfo(e){let t=e.split("\\");for(let i=1;i<t.length;i+=2)i+1<t.length&&(this.serverInfo[t[i]]=t[i+1])}getOrCreatePlayerStats(e){let t=this.playerStats.get(e);return t||(t={kills:0,deaths:0,damageDealt:0,damageReceived:0,suicides:0},this.playerStats.set(e,t)),t}getOrCreateWeaponStat(e,t){let i=this.weaponStats.get(e);i||(i=[],this.weaponStats.set(e,i));let n=i.find(r=>r.weaponId===t);return n||(n={weaponId:t,shotsFired:0,hits:0,kills:0},i.push(n)),n}};var Ha=(e=>(e[e.Stopped=0]="Stopped",e[e.Playing=1]="Playing",e[e.Paused=2]="Paused",e[e.Finished=3]="Finished",e))(Ha||{}),S_=class{constructor(){this.reader=null,this.buffer=null,this.state=0,this.playbackSpeed=1,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.lastFrameData=null,this.accumulatedTime=0,this.frameDuration=100,this.snapshotInterval=100,this.snapshots=new Map,this.cachedEvents=null,this.cachedSummary=null,this.cachedHeader=null,this.cachedConfigStrings=null,this.cachedServerInfo=null,this.cachedStatistics=null,this.cachedPlayerStats=null,this.cachedWeaponStats=null,this.cameraMode=0,this.thirdPersonDistance=80,this.thirdPersonOffset={x:0,y:0,z:0}}setHandler(e){this.handler=e}setCallbacks(e){this.callbacks=e}loadDemo(e){this.buffer=e,this.reader=new D1(e),this.transitionState(0),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.snapshots.clear(),this.lastFrameData=null,this.cachedEvents=null,this.cachedSummary=null,this.cachedHeader=null,this.cachedConfigStrings=null,this.cachedServerInfo=null,this.cachedStatistics=null,this.cachedPlayerStats=null,this.cachedWeaponStats=null}play(){this.reader&&this.state!==1&&this.transitionState(1)}pause(){this.state===1&&this.transitionState(2)}stop(){this.transitionState(0),this.reader&&this.reader.reset(),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.lastFrameData=null}transitionState(e){this.state!==e&&(this.state=e,this.callbacks?.onPlaybackStateChange&&this.callbacks.onPlaybackStateChange(e))}setFrameDuration(e){this.frameDuration=e}setSpeed(e){this.playbackSpeed=Math.max(.1,Math.min(e,16))}getSpeed(){return this.playbackSpeed}getPlaybackSpeed(){return this.playbackSpeed}getInterpolationFactor(){return this.frameDuration<=0?0:Math.max(0,Math.min(1,this.accumulatedTime/this.frameDuration))}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,this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}}stepForward(){this.reader&&(this.processNextFrame(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime()))}stepBackward(){this.reader&&this.currentFrameIndex>0&&this.seek(this.currentFrameIndex-1)}seekToTime(e){let t=Math.floor(e*1e3/this.frameDuration);this.seek(t)}seekToFrame(e){this.seek(e)}seek(e){if(!this.reader)return;let t=this.getTotalFrames();if(e<0&&(e=0),e>=t&&(e=t-1),e===this.currentFrameIndex+1){this.processNextFrame(),this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete();return}let i=-1,n=null;if(e>this.currentFrameIndex&&this.currentFrameIndex!==-1&&(i=this.currentFrameIndex),this.callbacks?.onRestoreSnapshot)for(let[r,a]of this.snapshots)r<=e&&r>i&&(i=r,n=a);for(i===-1&&this.currentFrameIndex>e?(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0):i===-1&&(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0),n&&this.callbacks?.onRestoreSnapshot&&(this.callbacks.onRestoreSnapshot(n),this.reader.seekToMessage(i+1)?this.currentFrameIndex=i:(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0));this.currentFrameIndex<e&&(this.callbacks?.onCaptureSnapshot&&(this.currentFrameIndex+1)%this.snapshotInterval,!!this.processNextFrame()););this.accumulatedTime=0,this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}processNextFrame(){if(!this.reader||!this.reader.hasMore())return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;let e=this.reader.readNextBlock();if(!e)return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;this.currentFrameIndex++;try{let t={...this.handler,onFrame:n=>{this.lastFrameData=n,this.handler?.onFrame&&this.handler.onFrame(n),this.callbacks?.onFrameUpdate&&this.callbacks.onFrameUpdate(n)}},i=new Zo(e.data,this.handler?t:void 0);if(i.setProtocolVersion(this.currentProtocolVersion),i.parseMessage(),this.currentProtocolVersion=i.getProtocolVersion(),this.callbacks?.onCaptureSnapshot&&this.currentFrameIndex%this.snapshotInterval===0&&this.currentFrameIndex>0){let n=this.callbacks.onCaptureSnapshot(this.currentFrameIndex);n&&this.snapshots.set(this.currentFrameIndex,n)}}catch(t){return console.error("Error processing demo frame",t),this.callbacks?.onPlaybackError&&this.callbacks.onPlaybackError(t instanceof Error?t:new Error(String(t))),!1}return!0}getState(){return this.state}getCurrentTime(){return this.currentFrameIndex<0?this.accumulatedTime:this.currentFrameIndex*this.frameDuration+this.accumulatedTime}getFrameCount(){return this.reader?this.reader.getMessageCount():0}getTotalFrames(){return this.getFrameCount()}getCurrentFrame(){return this.currentFrameIndex<0?0:this.currentFrameIndex}getDuration(){return this.getFrameCount()*this.frameDuration/1e3}getTotalBytes(){return this.reader?this.reader.getProgress().total:0}getProcessedBytes(){return this.reader?this.reader.getOffset():0}getFrameData(e){if(e===this.currentFrameIndex&&this.lastFrameData)return this.lastFrameData;let t=this.state;return this.pause(),this.seek(e),t===1&&this.play(),this.lastFrameData}getFramePlayerState(e){if(e===this.currentFrameIndex&&this.handler?.getPlayerState){let i=this.handler.getPlayerState();if(i)return i}let t=this.getFrameData(e);return t?t.playerState:null}getFrameEntities(e){if(e===this.currentFrameIndex&&this.handler?.getEntities){let t=this.handler.getEntities();if(t)return Array.from(t.values())}if(this.seek(e),this.handler?.getEntities){let t=this.handler.getEntities();return t?Array.from(t.values()):[]}return[]}compareFrames(e,t){let i=this.getFramePlayerState(e),n=this.getFrameEntities(e),r=new Map;n.forEach(c=>r.set(c.number,c));let a=this.getFramePlayerState(t),s=this.getFrameEntities(t),o=new Map;s.forEach(c=>o.set(c.number,c));let l={frameA:e,frameB:t,playerStateDiff:{origin:null,viewangles:null,health:null,ammo:null},entityDiffs:{added:[],removed:[],moved:[]}};i&&a&&((i.origin.x!==a.origin.x||i.origin.y!==a.origin.y||i.origin.z!==a.origin.z)&&(l.playerStateDiff.origin={x:a.origin.x-i.origin.x,y:a.origin.y-i.origin.y,z:a.origin.z-i.origin.z}),i.stats[1]!==a.stats[1]&&(l.playerStateDiff.health=a.stats[1]-i.stats[1]),i.stats[2]!==a.stats[2]&&(l.playerStateDiff.ammo=a.stats[2]-i.stats[2]));for(let[c,m]of o){let d=r.get(c);d?(d.origin.x!==m.origin.x||d.origin.y!==m.origin.y||d.origin.z!==m.origin.z)&&l.entityDiffs.moved.push({id:c,delta:{x:m.origin.x-d.origin.x,y:m.origin.y-d.origin.y,z:m.origin.z-d.origin.z}}):l.entityDiffs.added.push(c)}for(let[c,m]of r)o.has(c)||l.entityDiffs.removed.push(c);return l}getEntityTrajectory(e,t,i){let n=[],r=this.getCurrentFrame();for(this.seek(t);this.getCurrentFrame()<=i&&this.state!==3;){let a=null;if(e===-1){let s=this.getFramePlayerState(this.getCurrentFrame());s&&(a={...s.origin})}else if(this.handler?.getEntities){let s=this.handler.getEntities().get(e);s&&(a={...s.origin})}if(a&&n.push(a),this.getCurrentFrame()===i)break;this.stepForward()}return this.seek(r),n}getDemoEvents(){return this.ensureAnalysis(),this.cachedEvents||[]}filterEvents(e,t){return this.getDemoEvents().filter(n=>!(n.type!==e||t!==void 0&&n.entityId!==t))}getEventSummary(){return this.ensureAnalysis(),this.cachedSummary||{totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map}}getDemoHeader(){return this.ensureAnalysis(),this.cachedHeader}getDemoConfigStrings(){return this.ensureAnalysis(),this.cachedConfigStrings||new Map}getDemoServerInfo(){return this.ensureAnalysis(),this.cachedServerInfo||{}}getDemoStatistics(){return this.ensureAnalysis(),this.cachedStatistics}getPlayerStatistics(e){return this.ensureAnalysis(),this.cachedPlayerStats?.get(e)||null}getWeaponStatistics(e){return this.ensureAnalysis(),this.cachedWeaponStats?.get(e)||null}ensureAnalysis(){if(!this.cachedEvents&&this.buffer){let t=new PM(this.buffer).analyze();this.cachedEvents=t.events,this.cachedSummary=t.summary,this.cachedHeader=t.header,this.cachedConfigStrings=t.configStrings,this.cachedServerInfo=t.serverInfo,this.cachedStatistics=t.statistics,this.cachedPlayerStats=t.playerStats,this.cachedWeaponStats=t.weaponStats}}setCameraMode(e){this.cameraMode=e}getCameraMode(){return this.cameraMode}setThirdPersonDistance(e){this.thirdPersonDistance=e}setThirdPersonOffset(e){this.thirdPersonOffset=e}},k_=class{constructor(){this.isRecording=!1,this.startTime=0,this.frameCount=0,this.filename=null,this.lastMessageSize=-1,this.messageBuffer=new O1(1024*1024)}startRecording(e,t=0){this.isRecording||(this.isRecording=!0,this.filename=e,this.startTime=t,this.frameCount=0,this.messageBuffer.reset(),console.log(`DemoRecorder: Started recording to ${e}`))}recordMessage(e){if(this.isRecording){this.messageBuffer.writeLong(e.byteLength);for(let t=0;t<e.length;t++)this.messageBuffer.writeByte(e[t]);this.frameCount++}}stopRecording(){return this.isRecording?(this.isRecording=!1,this.messageBuffer.writeLong(-1),console.log(`DemoRecorder: Stopped recording. Frames: ${this.frameCount}, Size: ${this.messageBuffer.getOffset()} bytes`),this.messageBuffer.getData()):null}getIsRecording(){return this.isRecording}},A_=class{static validate(e,t){if(t&&!t.toLowerCase().endsWith(".dm2"))return{valid:!1,error:"Invalid file extension (expected .dm2)"};if(e.byteLength<5)return{valid:!1,error:"File too small to be a valid demo"};let i=new DataView(e),n=i.getInt32(0,!0);if(n<=0||n>e.byteLength-4)return{valid:!1,error:`Invalid first block length: ${n}`};let r=i.getUint8(4);if(r!==ce.serverdata)return{valid:!1,error:`First command is not svc_serverdata (expected ${ce.serverdata}, got ${r})`};let a=-1;return n>=5&&(a=i.getInt32(5,!0)),{valid:!0,version:a}}};var FM=Object.defineProperty,b_=(e,t)=>{for(var i in t)FM(e,i,{get:t[i],enumerable:!0})},yn={x:0,y:0,z:0};var _ie=Math.PI/180;function qo(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function E_(e,t){return{x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}}function Rr(e,t){return{x:e.x*t,y:e.y*t,z:e.z*t}}function Wa(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}function DM(e){return Wa(e,e)}function Yn(e){return Math.sqrt(DM(e))}function x_(e){let t=Yn(e);return t===0?e:Rr(e,1/t)}var T_=0,M_=1,R_=2,UM=Math.PI/180,pie=180/Math.PI;function Qd(e,t){switch(t){case T_:return e.x;case M_:return e.y;case R_:default:return e.z}}function eu(e){return e*UM}function Mr(e){let t=e%360;return t<0?360+t:t}function $i(e){let t=eu(Qd(e,M_)),i=eu(Qd(e,T_)),n=eu(Qd(e,R_)),r=Math.sin(t),a=Math.cos(t),s=Math.sin(i),o=Math.cos(i),l=Math.sin(n),c=Math.cos(n),m={x:o*a,y:o*r,z:-s},d={x:-l*s*a-c*-r,y:-l*s*r-c*a,z:-l*o},u={x:c*s*a-l*-r,y:c*s*r-l*a,z:c*o};return{forward:m,right:d,up:u}}var Tr=[[-.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 Mi=1,wn=2;var nu=8,ru=16,BM=32;var GM=16384;var Jo=65536,z_=1<<17,HM=1<<18,VM=1<<19,WM=1<<20,KM=1<<21,$M=1<<22,XM=1<<23,vie=1<<24,Qo=1<<25,YM=1<<26,yie=1<<27,wie=1<<28,Sie=1<<29,ec=1<<30,kie=1<<31;var Aie=1<<25,bie=1<<28,Eie=1<<29,xie=1<<30,Tie=1<<31;var Mie=Mi|wn,Rie=Mi|Jo|wn|Qo|ec,zie=Mi|Jo|wn,Lie=Mi|z_|wn|Qo|ec,Nie=BM|nu|ru,Oie=Mi|ru|nu,ZM=Mi|Qo|ec|wn|YM,Iie=HM|VM|WM|KM|$M|XM,Cie=Mi|nu|ru|Qo|ec,Pie=Mi|Jo|wn,Fie=Mi|wn,Die=Mi|Jo|wn|z_,Uie=ZM|GM;var Bie=Number.MAX_SAFE_INTEGER-1;var Zn=(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))(Zn||{});var L_=256;var qM=256,Ka=8192,$a=2048,Xa=512,jM=256,JM=L_*2,QM=256,tu=32;var Ve=(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.Story=54]="Story",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+Ka]="Sounds",e[e.Images=e.Sounds+$a]="Images",e[e.Lights=e.Images+Xa]="Lights",e[e.ShadowLights=e.Lights+qM]="ShadowLights",e[e.Items=e.ShadowLights+QM]="Items",e[e.PlayerSkins=e.Items+jM]="PlayerSkins",e[e.General=e.PlayerSkins+L_]="General",e[e.WheelWeapons=e.General+JM]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+tu]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+tu]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+tu]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(Ve||{}),Gie=Ve.MaxConfigStrings;var e4={};b_(e4,{addReplayFrame:()=>r4,createReplaySession:()=>n4,deserializeReplay:()=>i4,serializeReplay:()=>t4});function t4(e){return JSON.stringify(e,null,2)}function i4(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 n4(e,t){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:t},frames:[]}}function r4(e,t,i,n){e.frames.push({serverFrame:i,cmd:t,timestamp:Date.now()-n})}var Ya=(e=>(e[e.None=0]="None",e[e.Feet=1]="Feet",e[e.Waist=2]="Waist",e[e.Under=3]="Under",e))(Ya||{});var Xi=(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))(Xi||{});function zr(e,t){return(e&t)!==0}var tc=(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))(tc||{}),Ri=(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.Attack2=32]="Attack2",e[e.Any=128]="Any",e))(Ri||{});function a4(e){let{velocity:t,frametime:i,onGround:n,groundIsSlick:r,onLadder:a,waterlevel:s,pmFriction:o,pmStopSpeed:l,pmWaterFriction:c}=e,m=Yn(t);if(m<1)return{x:0,y:0,z:t.z};let d=0;if(n&&!r||a){let h=m<l?l:m;d+=h*o*i}s>0&&!a&&(d+=m*c*s*i);let u=m-d;if(u<0&&(u=0),u===m)return t;let f=u/m;return Rr(t,f)}function s4(e){let{velocity:t,wishdir:i,wishspeed:n,accel:r,frametime:a}=e,s=Wa(t,i),o=n-s;if(o<=0)return t;let l=r*a*n;return l>o&&(l=o),{x:t.x+i.x*l,y:t.y+i.y*l,z:t.z+i.z*l}}function o4(e){let{forward:t,right:i,cmd:n,maxSpeed:r}=e,a={x:t.x*n.forwardmove+i.x*n.sidemove,y:t.y*n.forwardmove+i.y*n.sidemove,z:0},s=Yn(a);if(s>r){let o=r/s;a=Rr(a,o),s=r}return{wishdir:s===0?a:x_(a),wishspeed:s}}function c4(e){let{forward:t,right:i,cmd:n,maxSpeed:r}=e,a={x:t.x*n.forwardmove+i.x*n.sidemove,y:t.y*n.forwardmove+i.y*n.sidemove,z:t.z*n.forwardmove+i.z*n.sidemove};n.upmove>10?a=qo(a,{x:0,y:0,z:n.upmove}):n.upmove<-10?a=qo(a,{x:0,y:0,z:n.upmove}):Math.abs(n.forwardmove)<10&&Math.abs(n.sidemove)<10?a=qo(a,{x:0,y:0,z:-60}):a=qo(a,{x:0,y:0,z:10});let s=Yn(a);if(s>r){let o=r/s;a=Rr(a,o),s=r}return s*=.5,{wishdir:s===0?a:x_(a),wishspeed:s}}function l4(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function m4(e){return e>89&&e<180?89:e<271&&e>=180?271:e}function au(e){let{pmFlags:t,cmdAngles:i,deltaAngles:n}=e,r;(t&32)!==0?r={x:0,y:i.y+n.y,z:0}:(r=l4(i,n),r={...r,x:m4(r.x)});let a=$i(r);return{viewangles:r,...a}}var N_=200,O_=200,I_=200,C_=140,P_=150,F_=3;function d4(e){let t=Mr(e);return t>89&&t<180?89:t<271&&t>=180?271:t}function D_(e,t){return{x:d4(e.x+t.x),y:Mr(e.y+t.y),z:Mr(e.z+t.z)}}function U_(e,t){let i=t.sensitivityX??t.sensitivity,n=(t.sensitivityY??t.sensitivity)*(t.invertY?-1:1);return{x:e.deltaY*n,y:e.deltaX*i,z:0}}var qn=(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))(qn||{}),ii=(e=>(e[e.GUNSHOT=0]="GUNSHOT",e[e.BLOOD=1]="BLOOD",e[e.BLASTER=2]="BLASTER",e[e.RAILTRAIL=3]="RAILTRAIL",e[e.SHOTGUN=4]="SHOTGUN",e[e.EXPLOSION1=5]="EXPLOSION1",e[e.EXPLOSION2=6]="EXPLOSION2",e[e.ROCKET_EXPLOSION=7]="ROCKET_EXPLOSION",e[e.GRENADE_EXPLOSION=8]="GRENADE_EXPLOSION",e[e.SPARKS=9]="SPARKS",e[e.SPLASH=10]="SPLASH",e[e.BUBBLETRAIL=11]="BUBBLETRAIL",e[e.SCREEN_SPARKS=12]="SCREEN_SPARKS",e[e.SHIELD_SPARKS=13]="SHIELD_SPARKS",e[e.BULLET_SPARKS=14]="BULLET_SPARKS",e[e.LASER_SPARKS=15]="LASER_SPARKS",e[e.PARASITE_ATTACK=16]="PARASITE_ATTACK",e[e.ROCKET_EXPLOSION_WATER=17]="ROCKET_EXPLOSION_WATER",e[e.GRENADE_EXPLOSION_WATER=18]="GRENADE_EXPLOSION_WATER",e[e.MEDIC_CABLE_ATTACK=19]="MEDIC_CABLE_ATTACK",e[e.BFG_EXPLOSION=20]="BFG_EXPLOSION",e[e.BFG_BIGEXPLOSION=21]="BFG_BIGEXPLOSION",e[e.BOSSTPORT=22]="BOSSTPORT",e[e.BFG_LASER=23]="BFG_LASER",e[e.GRAPPLE_CABLE=24]="GRAPPLE_CABLE",e[e.WELDING_SPARKS=25]="WELDING_SPARKS",e[e.GREENBLOOD=26]="GREENBLOOD",e[e.BLUEHYPERBLASTER=27]="BLUEHYPERBLASTER",e[e.PLASMA_EXPLOSION=28]="PLASMA_EXPLOSION",e[e.TUNNEL_SPARKS=29]="TUNNEL_SPARKS",e[e.BLASTER2=30]="BLASTER2",e[e.RAILTRAIL2=31]="RAILTRAIL2",e[e.FLAME=32]="FLAME",e[e.LIGHTNING=33]="LIGHTNING",e[e.DEBUGTRAIL=34]="DEBUGTRAIL",e[e.PLAIN_EXPLOSION=35]="PLAIN_EXPLOSION",e[e.FLASHLIGHT=36]="FLASHLIGHT",e[e.FORCEWALL=37]="FORCEWALL",e[e.HEATBEAM=38]="HEATBEAM",e[e.MONSTER_HEATBEAM=39]="MONSTER_HEATBEAM",e[e.STEAM=40]="STEAM",e[e.BUBBLETRAIL2=41]="BUBBLETRAIL2",e[e.MOREBLOOD=42]="MOREBLOOD",e[e.HEATBEAM_SPARKS=43]="HEATBEAM_SPARKS",e[e.HEATBEAM_STEAM=44]="HEATBEAM_STEAM",e[e.CHAINFIST_SMOKE=45]="CHAINFIST_SMOKE",e[e.ELECTRIC_SPARKS=46]="ELECTRIC_SPARKS",e[e.TRACKER_EXPLOSION=47]="TRACKER_EXPLOSION",e[e.TELEPORT_EFFECT=48]="TELEPORT_EFFECT",e[e.DBALL_GOAL=49]="DBALL_GOAL",e[e.WIDOWBEAMOUT=50]="WIDOWBEAMOUT",e[e.NUKEBLAST=51]="NUKEBLAST",e[e.WIDOWSPLASH=52]="WIDOWSPLASH",e[e.EXPLOSION1_BIG=53]="EXPLOSION1_BIG",e[e.EXPLOSION1_NP=54]="EXPLOSION1_NP",e[e.FLECHETTE=55]="FLECHETTE",e[e.BLUEHYPERBLASTER_KEX=56]="BLUEHYPERBLASTER_KEX",e[e.BFG_ZAP=57]="BFG_ZAP",e[e.BERSERK_SLAM=58]="BERSERK_SLAM",e[e.GRAPPLE_CABLE_2=59]="GRAPPLE_CABLE_2",e[e.POWER_SPLASH=60]="POWER_SPLASH",e[e.LIGHTNING_BEAM=61]="LIGHTNING_BEAM",e[e.EXPLOSION1_NL=62]="EXPLOSION1_NL",e[e.EXPLOSION2_NL=63]="EXPLOSION2_NL",e))(ii||{});var B_=64;var Za=0,qa=1,ja=2,Ja=3,Qa=4,es=5,ts=6,is=7,ns=8;var rs=11,as=12,ss=13;var su=17;function u4(e,t,i){let n=Math.floor(i/2),r=i%2!==0,a=t+n,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 G_(e,t,i,n){let r=n*i,a=Math.floor(r/8),s=r%8,o=(1<<n)-1<<s;return(u4(e,t,a)&o)>>>s}var os=(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))(os||{}),lt=(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))(lt||{}),H_=12,V_=9,Hie=Math.ceil(H_*V_/16),W_=23,K_=2,Vie=Math.ceil(W_*K_/16),f4={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 $_(e,t){return t<0||t>=H_?0:G_(e,34,t,V_)}function ic(e,t){let i;return typeof t=="number"?i=t:i=f4[t],i===void 0||i<0||i>=W_?0:G_(e,41,i,K_)}function X_(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 Bt=(e=>(e[e.MinLight=1]="MinLight",e[e.ViewerModel=2]="ViewerModel",e[e.WeaponModel=4]="WeaponModel",e[e.FullBright=8]="FullBright",e[e.DepthHack=16]="DepthHack",e[e.Translucent=32]="Translucent",e[e.FrameLerp=64]="FrameLerp",e[e.Beam=128]="Beam",e[e.CustomLight=256]="CustomLight",e[e.Glow=512]="Glow",e[e.ShellRed=1024]="ShellRed",e[e.ShellGreen=2048]="ShellGreen",e[e.ShellBlue=4096]="ShellBlue",e[e.IrVisible=32768]="IrVisible",e[e.ShellDouble=65536]="ShellDouble",e[e.ShellHalfDam=131072]="ShellHalfDam",e[e.MinLightPlus=262144]="MinLightPlus",e[e.ExtraLight=524288]="ExtraLight",e[e.BeamLightning=1048576]="BeamLightning",e[e.Flashlight=2097152]="Flashlight",e))(Bt||{});var ni=(e=>(e[e.Rotate=4]="Rotate",e[e.Gib=8]="Gib",e[e.RotateScript=16]="RotateScript",e[e.Blaster=32]="Blaster",e[e.Rocket=64]="Rocket",e[e.Grenade=128]="Grenade",e[e.HyperBlaster=256]="HyperBlaster",e[e.Bfg=512]="Bfg",e[e.ColorShell=1024]="ColorShell",e[e.Powerscreen=2048]="Powerscreen",e[e.Anim01=4096]="Anim01",e[e.Anim23=8192]="Anim23",e[e.AnimAll=16384]="AnimAll",e[e.AnimAllFast=32768]="AnimAllFast",e[e.Quad=65536]="Quad",e[e.Pent=131072]="Pent",e[e.Explosion=262144]="Explosion",e[e.Teleport=524288]="Teleport",e[e.Flag1=1048576]="Flag1",e[e.Flag2=2097152]="Flag2",e[e.Boomerang=4194304]="Boomerang",e[e.Greengibs=8388608]="Greengibs",e[e.Bluehyperblaster=16777216]="Bluehyperblaster",e[e.Spinning=33554432]="Spinning",e[e.Plasma=67108864]="Plasma",e[e.Trap=134217728]="Trap",e[e.Tracker=268435456]="Tracker",e[e.Double=536870912]="Double",e[e.Sphinx=1073741824]="Sphinx",e[e.TagTrail=2147483648]="TagTrail",e))(ni||{});var h4={};b_(h4,{U_ANGLE1:()=>S4,U_ANGLE2:()=>k4,U_ANGLE3:()=>A4,U_EFFECTS:()=>x4,U_EVENT:()=>R4,U_FRAME:()=>b4,U_MODEL:()=>_4,U_MODEL2:()=>L4,U_MODEL3:()=>N4,U_MODEL4:()=>O4,U_MOREBITS:()=>z4,U_NUMBER:()=>g4,U_ORIGIN1:()=>v4,U_ORIGIN2:()=>y4,U_ORIGIN3:()=>w4,U_REMOVE:()=>I4,U_RENDERFX:()=>T4,U_SKIN:()=>E4,U_SOLID:()=>M4,U_SOUND:()=>p4});var g4=1,_4=2,p4=4,v4=8,y4=16,w4=32,S4=64,k4=128,A4=256,b4=512,E4=1024,x4=2048,T4=4096,M4=8192,R4=16384,z4=32768,L4=1,N4=2,O4=4,I4=32768,Va=.025,iu=33554432,jo={None:0,Feet:1,Waist:2,Under:3},C4=(e,t)=>{let i={...e.origin};i.z-=.25;let n=t(e.origin,i);return{...e,onGround:n.fraction<1}},P4=(e,t)=>{let i={...e.origin},{mins:n,maxs:r}=e;if(i.z=e.origin.z+n.z+1,!(t(i)&iu))return{...e,waterLevel:jo.None};let s=jo.Feet,o=e.origin.z+(n.z+r.z)*.5;if(i.z=o,t(i)&iu){s=jo.Waist;let c=e.origin.z+22;i.z=c,t(i)&iu&&(s=jo.Under)}return{...e,waterLevel:s}},ou=(e,t,i,n)=>{let r={...e};r=C4(r,i),r=P4(r,n);let{origin:a,velocity:s,onGround:o,waterLevel:l,viewAngles:c}=r,m=l>=2?c:{x:c.x>180?(c.x-360)/3:c.x/3,y:c.y,z:c.z},{forward:d,right:u}=$i(m),f=a4({velocity:s,frametime:Va,onGround:o,groundIsSlick:!1,onLadder:!1,waterlevel:l,pmFriction:6,pmStopSpeed:100,pmWaterFriction:1}),h=l>=2?c4({forward:d,right:u,cmd:t,maxSpeed:320}):o4({forward:d,right:u,cmd:t,maxSpeed:320}),v=s4({velocity:f,wishdir:h.wishdir,wishspeed:h.wishspeed,accel:o||l>=2?10:1,frametime:Va}),g=i(a,{x:a.x+v.x*Va,y:a.y+v.y*Va,z:a.z+v.z*Va});return{...r,origin:g.endpos,velocity:v}},Y_=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}getLength(){return this.length}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 i=Tr[t];e.x=i[0],e.y=i[1],e.z=i[2]}},cu=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),i=new Uint8Array(t);i.set(this.buffer),this.buffer=i,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 i=0;i<t;i++)this.view.setUint8(this.offset+i,e.charCodeAt(i));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,i=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let n=0;n<Tr.length;n++){let r=Tr[n],a=e.x*r[0]+e.y*r[1]+e.z*r[2];a>t&&(t=a,i=n)}this.writeByte(i)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}},cs=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),i=new Uint8Array(t);i.set(this.buffer),this.buffer=i,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 i=0;i<e.length;i++)this.view.setUint8(this.offset+i,e.charCodeAt(i));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,i){let n=0,r=-999999,a=Math.sqrt(e*e+t*t+i*i);if(a>0){e/=a,t/=a,i/=a;for(let s=0;s<162;s++){let o=e*Tr[s][0]+t*Tr[s][1]+i*Tr[s][2];o>r&&(r=o,n=s)}}this.writeByte(n)}},Xn=class pt{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.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new cu(pt.MAX_RELIABLE_BUFFER);let t=Date.now();this.lastReceived=t,this.lastSent=t,this.qport=Math.floor(Math.random()*65536)}setup(t,i=null){this.qport=t,this.remoteAddress=i,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.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(t){this.outgoingSequence++,this.lastSent=Date.now();let i=0,n=!1,r=0;this.reliableLength>0&&(this.reliableLength>pt.FRAGMENT_SIZE?(n=!0,this.fragmentSendOffset>=this.reliableLength&&(this.fragmentSendOffset=0),i=this.reliableLength-this.fragmentSendOffset,i>pt.FRAGMENT_SIZE&&(i=pt.FRAGMENT_SIZE),r=this.fragmentSendOffset,this.fragmentSendOffset+=i):i=this.reliableLength);let a=pt.PACKET_HEADER,s=i>0?2+(n?8:0):0,o=t?t.length:0;a+s+i+o>pt.MAX_MSGLEN&&(o=pt.MAX_MSGLEN-a-s-i,o<0&&(o=0));let l=new ArrayBuffer(a+s+i+o),c=new DataView(l),m=new Uint8Array(l),d=this.outgoingSequence;i>0&&(d|=2147483648,(this.outgoingReliableSequence&1)!==0&&(d|=1073741824)),c.setUint32(0,d,!0);let u=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(u|=2147483648),c.setUint32(4,u,!0),c.setUint16(8,this.qport,!0);let f=a;if(i>0){let h=i;n&&(h|=32768),c.setUint16(f,h,!0),f+=2,n&&(c.setUint32(f,r,!0),f+=4,c.setUint32(f,this.reliableLength,!0),f+=4);let g=this.reliableMessage.getBuffer().subarray(r,r+i);m.set(g,f),f+=i}if(t&&o>0){let h=t.slice(0,o);m.set(h,f)}return m}process(t){if(t.length<pt.PACKET_HEADER)return null;this.lastReceived=Date.now();let i=new DataView(t.buffer,t.byteOffset,t.byteLength),n=i.getUint32(0,!0),r=i.getUint32(4,!0),a=i.getUint16(8,!0);if(this.qport!==a)return null;let s=n&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 h=l?1:0,v=this.outgoingReliableSequence&1;h!==v&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1,this.fragmentSendOffset=0)}let c=(n&2147483648)!==0,m=(n&1073741824)!==0?1:0,d=pt.PACKET_HEADER,u=null;if(c){if(d+2>t.byteLength)return null;let h=i.getUint16(d,!0);d+=2;let v=(h&32768)!==0;h&=32767;let g=this.incomingReliableSequence&1;if(m===g)if(v){if(d+8>t.byteLength)return null;let y=i.getUint32(d,!0);d+=4;let k=i.getUint32(d,!0);if(d+=4,k>pt.MAX_RELIABLE_BUFFER)return console.warn(`NetChan: received invalid fragment total ${k} > ${pt.MAX_RELIABLE_BUFFER}`),null;if((!this.fragmentBuffer||this.fragmentBuffer.length!==k)&&(this.fragmentBuffer=new Uint8Array(k),this.fragmentLength=k,this.fragmentReceived=0),d+h>t.byteLength)return null;let b=t.subarray(d,d+h);y===this.fragmentReceived&&y+h<=k&&(this.fragmentBuffer.set(b,y),this.fragmentReceived+=h,this.fragmentReceived>=k&&(u=this.fragmentBuffer,this.incomingReliableSequence++,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0))}else{if(this.incomingReliableSequence++,d+h>t.byteLength)return null;u=t.slice(d,d+h)}d+=h}let f=t.slice(d);if(u&&u.length>0){let h=u.length+f.length,v=new Uint8Array(h);return v.set(u,0),v.set(f,u.length),v}return f||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(t){if(this.reliableLength+1>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(t),this.reliableLength++}writeReliableShort(t){if(this.reliableLength+2>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(t),this.reliableLength+=2}writeReliableLong(t){if(this.reliableLength+4>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(t),this.reliableLength+=4}writeReliableString(t){let i=t.length+1;if(this.reliableLength+i>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(t),this.reliableLength+=i}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(t){return t-this.lastSent>1e3}isTimedOut(t,i=3e4){return t-this.lastReceived>i}};Xn.MAX_MSGLEN=1400;Xn.FRAGMENT_SIZE=1024;Xn.PACKET_HEADER=10;Xn.HEADER_OVERHEAD=Xn.PACKET_HEADER+2;Xn.MAX_RELIABLE_BUFFER=262144;var Z_=Xn;var q_=(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))(q_||{}),Wie=Object.keys(q_).length/2;var nc=["blaster","shotgun","supershotgun","machinegun","chaingun","grenadelauncher","rocketlauncher","grenades","hyperblaster","railgun","bfg10k"],j_={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 F4=Object.defineProperty,D4=(e,t)=>{for(var i in t)F4(e,i,{get:t[i],enumerable:!0})},ac=null,rc=[1,1,1,1],J_=["ch1","ch2","ch3"],lu=[null,null,null],U4=e=>{for(let t=0;t<J_.length;t++){let i=J_[t];try{lu[t]=e.Draw_RegisterPic(`pics/${i}.pcx`)}catch{if(t===0)try{lu[t]=e.Draw_RegisterPic("pics/crosshair.pcx")}catch{e.Com_Print(`Failed to load crosshair image
|
|
170
|
+
}`;var F1=class{constructor(){this._position=te.create(),this._angles=te.create(),this._bobAngles=te.create(),this._bobOffset=te.create(),this._kickAngles=te.create(),this._rollAngle=0,this._fov=90,this._aspect=1,this._near=.1,this._far=1e3,this._viewMatrix=Oe.create(),this._projectionMatrix=Oe.create(),this._viewProjectionMatrix=Oe.create(),this._dirty=!0}get position(){return this._position}set position(e){te.equals(this._position,e)||(te.copy(this._position,e),this._dirty=!0,this.triggerMoveEvent())}get angles(){return this._angles}set angles(e){te.equals(this._angles,e)||(te.copy(this._angles,e),this._dirty=!0,this.triggerMoveEvent())}get bobAngles(){return this._bobAngles}set bobAngles(e){te.copy(this._bobAngles,e),this._dirty=!0}get kickAngles(){return this._kickAngles}set kickAngles(e){te.copy(this._kickAngles,e),this._dirty=!0}get bobOffset(){return this._bobOffset}set bobOffset(e){te.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}setPosition(e,t,i){let n=te.fromValues(e,t,i);te.equals(this._position,n)||(te.copy(this._position,n),this._dirty=!0,this.triggerMoveEvent())}setRotation(e,t,i){let n=te.fromValues(e,t,i);te.equals(this._angles,n)||(te.copy(this._angles,n),this._dirty=!0,this.triggerMoveEvent())}setFov(e){this.fov=e}setAspectRatio(e){this.aspect=e}lookAt(e){let t=te.create();if(te.subtract(t,e,this._position),te.length(t)<.001)return;let n=Math.atan2(t[1],t[0])*Dg,r=Math.hypot(t[0],t[1]),a=-Math.atan2(t[2],r)*Dg;this.setRotation(a,n,0)}triggerMoveEvent(){this.onCameraMove&&this.onCameraMove({position:te.clone(this._position),angles:te.clone(this._angles)})}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=Oe.create();return Oe.perspective(t,e*Aa,this._aspect,this._near,this._far),t}screenToWorldRay(e,t){let i=e*2-1,n=1-t*2,r=te.fromValues(i,n,-1),a=te.fromValues(i,n,1),s=Oe.create();Oe.invert(s,this.viewProjectionMatrix);let o=te.create(),l=te.create();te.transformMat4(o,r,s),te.transformMat4(l,a,s);let c=te.create();return te.subtract(c,l,o),te.normalize(c,c),{origin:te.clone(this._position),direction:c}}updateMatrices(){if(!this._dirty)return;Oe.perspective(this._projectionMatrix,this._fov*Aa,this._aspect,this._near,this._far);let e=Oe.fromValues(0,0,-1,0,-1,0,0,0,0,1,0,0,0,0,0,1),t=this._angles[0]+this._bobAngles[0]+this._kickAngles[0],i=this._angles[1]+this._bobAngles[1]+this._kickAngles[1],n=this._angles[2]+this._bobAngles[2]+this._kickAngles[2]+this._rollAngle,r=t*Aa,a=i*Aa,s=n*Aa,o=Oe.create();Oe.identity(o),Oe.rotateZ(o,o,-a),Oe.rotateY(o,o,-r),Oe.rotateX(o,o,-s);let l=Oe.create();Oe.multiply(l,e,o);let c=te.add(te.create(),this._position,this._bobOffset),m=te.negate(te.create(),c),d=te.create();te.transformMat4(d,m,o);let u=te.fromValues(d[1]?-d[1]:0,d[2]||0,d[0]?-d[0]:0);Oe.copy(this._viewMatrix,l),this._viewMatrix[12]=u[0],this._viewMatrix[13]=u[1],this._viewMatrix[14]=u[2],Oe.multiply(this._viewProjectionMatrix,this._projectionMatrix,this._viewMatrix),this._dirty=!1}};var D1=class{constructor(e){this.messageOffsets=[],this.buffer=e,this.view=new DataView(e),this.offset=0,this.scan()}scan(){let e=0;for(this.messageOffsets=[];e+4<=this.buffer.byteLength;){let t=this.view.getInt32(e,!0);if(t<0||t>2097152){console.warn(`DemoReader: Invalid block length ${t} at offset ${e} during scan`);break}if(e+4+t>this.buffer.byteLength){console.warn(`DemoReader: Incomplete block at offset ${e} during scan`);break}this.messageOffsets.push(e),e+=4+t}}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(e<0||this.offset+4+e>this.buffer.byteLength)return null;this.offset+=4;let t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,{length:e,data:new cd(t)}}reset(){this.offset=0}seekToMessage(e){return e<0||e>=this.messageOffsets.length?!1:(this.offset=this.messageOffsets[e],!0)}getMessageCount(){return this.messageOffsets.length}getOffset(){return this.offset}getProgress(){let e=this.offset,t=this.buffer.byteLength;return{current:e,total:t,percent:t>0?e/t*100:0}}},Nx=4,Ug=0,Bg=1,Ox=2;function br(e){let t=e.length;for(;--t>=0;)e[t]=0}var Ix=0,U1=1,Cx=2,Px=3,Fx=258,kd=29,Da=256,za=Da+1+kd,wr=30,Ad=19,B1=2*za+1,Un=15,$m=16,Dx=7,bd=256,G1=16,H1=17,V1=18,md=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]),Oo=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]),Ux=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),W1=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Bx=512,Wi=new Array((za+2)*2);br(Wi);var Ta=new Array(wr*2);br(Ta);var La=new Array(Bx);br(La);var Na=new Array(Fx-Px+1);br(Na);var Ed=new Array(kd);br(Ed);var Io=new Array(wr);br(Io);function Xm(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}var K1,$1,X1;function Ym(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var Y1=e=>e<256?La[e]:La[256+(e>>>7)],Oa=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Rt=(e,t,i)=>{e.bi_valid>$m-i?(e.bi_buf|=t<<e.bi_valid&65535,Oa(e,e.bi_buf),e.bi_buf=t>>$m-e.bi_valid,e.bi_valid+=i-$m):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)},bi=(e,t,i)=>{Rt(e,i[t*2],i[t*2+1])},Z1=(e,t)=>{let i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1},Gx=e=>{e.bi_valid===16?(Oa(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)},Hx=(e,t)=>{let i=t.dyn_tree,n=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,m,d,u,f,h,v=0;for(u=0;u<=Un;u++)e.bl_count[u]=0;for(i[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<B1;c++)m=e.heap[c],u=i[i[m*2+1]*2+1]+1,u>l&&(u=l,v++),i[m*2+1]=u,!(m>n)&&(e.bl_count[u]++,f=0,m>=o&&(f=s[m-o]),h=i[m*2],e.opt_len+=h*(u+f),a&&(e.static_len+=h*(r[m*2+1]+f)));if(v!==0){do{for(u=l-1;e.bl_count[u]===0;)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,v-=2}while(v>0);for(u=l;u!==0;u--)for(m=e.bl_count[u];m!==0;)d=e.heap[--c],!(d>n)&&(i[d*2+1]!==u&&(e.opt_len+=(u-i[d*2+1])*i[d*2],i[d*2+1]=u),m--)}},q1=(e,t,i)=>{let n=new Array(Un+1),r=0,a,s;for(a=1;a<=Un;a++)r=r+i[a-1]<<1,n[a]=r;for(s=0;s<=t;s++){let o=e[s*2+1];o!==0&&(e[s*2]=Z1(n[o]++,o))}},Vx=()=>{let e,t,i,n,r,a=new Array(Un+1);for(i=0,n=0;n<kd-1;n++)for(Ed[n]=i,e=0;e<1<<md[n];e++)Na[i++]=n;for(Na[i-1]=n,r=0,n=0;n<16;n++)for(Io[n]=r,e=0;e<1<<Oo[n];e++)La[r++]=n;for(r>>=7;n<wr;n++)for(Io[n]=r<<7,e=0;e<1<<Oo[n]-7;e++)La[256+r++]=n;for(t=0;t<=Un;t++)a[t]=0;for(e=0;e<=143;)Wi[e*2+1]=8,e++,a[8]++;for(;e<=255;)Wi[e*2+1]=9,e++,a[9]++;for(;e<=279;)Wi[e*2+1]=7,e++,a[7]++;for(;e<=287;)Wi[e*2+1]=8,e++,a[8]++;for(q1(Wi,za+1,a),e=0;e<wr;e++)Ta[e*2+1]=5,Ta[e*2]=Z1(e,5);K1=new Xm(Wi,md,Da+1,za,Un),$1=new Xm(Ta,Oo,0,wr,Un),X1=new Xm(new Array(0),Ux,0,Ad,Dx)},j1=e=>{let t;for(t=0;t<za;t++)e.dyn_ltree[t*2]=0;for(t=0;t<wr;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Ad;t++)e.bl_tree[t*2]=0;e.dyn_ltree[bd*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},J1=e=>{e.bi_valid>8?Oa(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Gg=(e,t,i,n)=>{let r=t*2,a=i*2;return e[r]<e[a]||e[r]===e[a]&&n[t]<=n[i]},Zm=(e,t,i)=>{let n=e.heap[i],r=i<<1;for(;r<=e.heap_len&&(r<e.heap_len&&Gg(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Gg(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n},Hg=(e,t,i)=>{let n,r,a=0,s,o;if(e.sym_next!==0)do n=e.pending_buf[e.sym_buf+a++]&255,n+=(e.pending_buf[e.sym_buf+a++]&255)<<8,r=e.pending_buf[e.sym_buf+a++],n===0?bi(e,r,t):(s=Na[r],bi(e,s+Da+1,t),o=md[s],o!==0&&(r-=Ed[s],Rt(e,r,o)),n--,s=Y1(n),bi(e,s,i),o=Oo[s],o!==0&&(n-=Io[s],Rt(e,n,o)));while(a<e.sym_next);bi(e,bd,t)},dd=(e,t)=>{let i=t.dyn_tree,n=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=B1,s=0;s<a;s++)i[s*2]!==0?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):i[s*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,i[c*2]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=n[c*2+1]);for(t.max_code=l,s=e.heap_len>>1;s>=1;s--)Zm(e,i,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Zm(e,i,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,i[c*2]=i[s*2]+i[o*2],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,i[s*2+1]=i[o*2+1]=c,e.heap[1]=c++,Zm(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Hx(e,t),q1(i,l,e.bl_count)},Vg=(e,t,i)=>{let n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),t[(i+1)*2+1]=65535,n=0;n<=i;n++)a=s,s=t[(n+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[G1*2]++):o<=10?e.bl_tree[H1*2]++:e.bl_tree[V1*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))},Wg=(e,t,i)=>{let n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),n=0;n<=i;n++)if(a=s,s=t[(n+1)*2+1],!(++o<l&&a===s)){if(o<c)do bi(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(bi(e,a,e.bl_tree),o--),bi(e,G1,e.bl_tree),Rt(e,o-3,2)):o<=10?(bi(e,H1,e.bl_tree),Rt(e,o-3,3)):(bi(e,V1,e.bl_tree),Rt(e,o-11,7));o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4)}},Wx=e=>{let t;for(Vg(e,e.dyn_ltree,e.l_desc.max_code),Vg(e,e.dyn_dtree,e.d_desc.max_code),dd(e,e.bl_desc),t=Ad-1;t>=3&&e.bl_tree[W1[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},Kx=(e,t,i,n)=>{let r;for(Rt(e,t-257,5),Rt(e,i-1,5),Rt(e,n-4,4),r=0;r<n;r++)Rt(e,e.bl_tree[W1[r]*2+1],3);Wg(e,e.dyn_ltree,t-1),Wg(e,e.dyn_dtree,i-1)},$x=e=>{let t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return Ug;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return Bg;for(i=32;i<Da;i++)if(e.dyn_ltree[i*2]!==0)return Bg;return Ug},Kg=!1,Xx=e=>{Kg||(Vx(),Kg=!0),e.l_desc=new Ym(e.dyn_ltree,K1),e.d_desc=new Ym(e.dyn_dtree,$1),e.bl_desc=new Ym(e.bl_tree,X1),e.bi_buf=0,e.bi_valid=0,j1(e)},Q1=(e,t,i,n)=>{Rt(e,(Ix<<1)+(n?1:0),3),J1(e),Oa(e,i),Oa(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i},Yx=e=>{Rt(e,U1<<1,3),bi(e,bd,Wi),Gx(e)},Zx=(e,t,i,n)=>{let r,a,s=0;e.level>0?(e.strm.data_type===Ox&&(e.strm.data_type=$x(e)),dd(e,e.l_desc),dd(e,e.d_desc),s=Wx(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=i+5,i+4<=r&&t!==-1?Q1(e,t,i,n):e.strategy===Nx||a===r?(Rt(e,(U1<<1)+(n?1:0),3),Hg(e,Wi,Ta)):(Rt(e,(Cx<<1)+(n?1:0),3),Kx(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Hg(e,e.dyn_ltree,e.dyn_dtree)),j1(e),n&&J1(e)},qx=(e,t,i)=>(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++]=i,t===0?e.dyn_ltree[i*2]++:(e.matches++,t--,e.dyn_ltree[(Na[i]+Da+1)*2]++,e.dyn_dtree[Y1(t)*2]++),e.sym_next===e.sym_end),jx=Xx,Jx=Q1,Qx=Zx,e8=qx,t8=Yx,i8={_tr_init:jx,_tr_stored_block:Jx,_tr_flush_block:Qx,_tr_tally:e8,_tr_align:t8},n8=(e,t,i,n)=>{let r=e&65535|0,a=e>>>16&65535|0,s=0;for(;i!==0;){s=i>2e3?2e3:i,i-=s;do r=r+t[n++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0},Ia=n8,r8=()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t},a8=new Uint32Array(r8()),s8=(e,t,i,n)=>{let r=a8,a=n+i;e^=-1;for(let s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1},rt=s8,Hn={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"},Kn={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:o8,_tr_stored_block:ud,_tr_flush_block:c8,_tr_tally:gn,_tr_align:l8}=i8,{Z_NO_FLUSH:_n,Z_PARTIAL_FLUSH:m8,Z_FULL_FLUSH:d8,Z_FINISH:Zt,Z_BLOCK:$g,Z_OK:ct,Z_STREAM_END:Xg,Z_STREAM_ERROR:Ei,Z_DATA_ERROR:u8,Z_BUF_ERROR:qm,Z_DEFAULT_COMPRESSION:f8,Z_FILTERED:h8,Z_HUFFMAN_ONLY:Mo,Z_RLE:g8,Z_FIXED:_8,Z_DEFAULT_STRATEGY:p8,Z_UNKNOWN:v8,Z_DEFLATED:$o}=Kn,y8=9,w8=15,S8=8,k8=29,A8=256,fd=A8+1+k8,b8=30,E8=19,x8=2*fd+1,T8=15,Se=3,hn=258,xi=hn+Se+1,M8=32,kr=42,xd=57,hd=69,gd=73,_d=91,pd=103,Bn=113,Ea=666,kt=1,Er=2,Vn=3,xr=4,R8=3,Gn=(e,t)=>(e.msg=Hn[t],t),Yg=e=>e*2-(e>4?9:0),fn=e=>{let t=e.length;for(;--t>=0;)e[t]=0},z8=e=>{let t,i,n,r=e.w_size;t=e.hash_size,n=t;do i=e.head[--n],e.head[n]=i>=r?i-r:0;while(--t);t=r,n=t;do i=e.prev[--n],e.prev[n]=i>=r?i-r:0;while(--t)},L8=(e,t,i)=>(t<<e.hash_shift^i)&e.hash_mask,pn=L8,Dt=e=>{let t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,t.pending===0&&(t.pending_out=0))},Ut=(e,t)=>{c8(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Dt(e.strm)},Te=(e,t)=>{e.pending_buf[e.pending++]=t},ba=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},vd=(e,t,i,n)=>{let r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),e.state.wrap===1?e.adler=Ia(e.adler,t,r,i):e.state.wrap===2&&(e.adler=rt(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},e_=(e,t)=>{let i=e.max_chain_length,n=e.strstart,r,a,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-xi?e.strstart-(e.w_size-xi):0,c=e.window,m=e.w_mask,d=e.prev,u=e.strstart+hn,f=c[n+s-1],h=c[n+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(c[r+s]!==h||c[r+s-1]!==f||c[r]!==c[n]||c[++r]!==c[n+1])){n+=2,r++;do;while(c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&n<u);if(a=hn-(u-n),n=u-hn,a>s){if(e.match_start=t,s=a,a>=o)break;f=c[n+s-1],h=c[n+s]}}while((t=d[t&m])>l&&--i!==0);return s<=e.lookahead?s:e.lookahead},Ar=e=>{let t=e.w_size,i,n,r;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-xi)&&(e.window.set(e.window.subarray(t,t+t-n),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),z8(e),n+=t),e.strm.avail_in===0)break;if(i=vd(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=i,e.lookahead+e.insert>=Se)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=pn(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=pn(e,e.ins_h,e.window[r+Se-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<Se)););}while(e.lookahead<xi&&e.strm.avail_in!==0)},t_=(e,t)=>{let i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n,r,a,s=0,o=e.strm.avail_in;do{if(n=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,r=e.strstart-e.block_start,n>r+e.strm.avail_in&&(n=r+e.strm.avail_in),n>a&&(n=a),n<i&&(n===0&&t!==Zt||t===_n||n!==r+e.strm.avail_in)))break;s=t===Zt&&n===r+e.strm.avail_in?1:0,ud(e,0,0,s),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Dt(e.strm),r&&(r>n&&(r=n),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,n-=r),n&&(vd(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}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?xr:t!==_n&&t!==Zt&&e.strm.avail_in===0&&e.strstart===e.block_start?Er:(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&&(vd(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,i=a>e.w_size?e.w_size:a,r=e.strstart-e.block_start,(r>=i||(r||t===Zt)&&t!==_n&&e.strm.avail_in===0&&r<=a)&&(n=r>a?a:r,s=t===Zt&&e.strm.avail_in===0&&n===r?1:0,ud(e,e.block_start,n,s),e.block_start+=n,Dt(e.strm)),s?Vn:kt)},jm=(e,t)=>{let i,n;for(;;){if(e.lookahead<xi){if(Ar(e),e.lookahead<xi&&t===_n)return kt;if(e.lookahead===0)break}if(i=0,e.lookahead>=Se&&(e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),i!==0&&e.strstart-i<=e.w_size-xi&&(e.match_length=e_(e,i)),e.match_length>=Se)if(n=gn(e,e.strstart-e.match_start,e.match_length-Se),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Se){e.match_length--;do e.strstart++,e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=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=pn(e,e.ins_h,e.window[e.strstart+1]);else n=gn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Ut(e,!1),e.strm.avail_out===0))return kt}return e.insert=e.strstart<Se-1?e.strstart:Se-1,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er},_r=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<xi){if(Ar(e),e.lookahead<xi&&t===_n)return kt;if(e.lookahead===0)break}if(i=0,e.lookahead>=Se&&(e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=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=Se-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-xi&&(e.match_length=e_(e,i),e.match_length<=5&&(e.strategy===h8||e.match_length===Se&&e.strstart-e.match_start>4096)&&(e.match_length=Se-1)),e.prev_length>=Se&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-Se,n=gn(e,e.strstart-1-e.prev_match,e.prev_length-Se),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=pn(e,e.ins_h,e.window[e.strstart+Se-1]),i=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=Se-1,e.strstart++,n&&(Ut(e,!1),e.strm.avail_out===0))return kt}else if(e.match_available){if(n=gn(e,0,e.window[e.strstart-1]),n&&Ut(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return kt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=gn(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Se-1?e.strstart:Se-1,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er},N8=(e,t)=>{let i,n,r,a,s=e.window;for(;;){if(e.lookahead<=hn){if(Ar(e),e.lookahead<=hn&&t===_n)return kt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Se&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+hn;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);e.match_length=hn-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Se?(i=gn(e,1,e.match_length-Se),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=gn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(Ut(e,!1),e.strm.avail_out===0))return kt}return e.insert=0,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er},O8=(e,t)=>{let i;for(;;){if(e.lookahead===0&&(Ar(e),e.lookahead===0)){if(t===_n)return kt;break}if(e.match_length=0,i=gn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(Ut(e,!1),e.strm.avail_out===0))return kt}return e.insert=0,t===Zt?(Ut(e,!0),e.strm.avail_out===0?Vn:xr):e.sym_next&&(Ut(e,!1),e.strm.avail_out===0)?kt:Er};function Ai(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}var xa=[new Ai(0,0,0,0,t_),new Ai(4,4,8,4,jm),new Ai(4,5,16,8,jm),new Ai(4,6,32,32,jm),new Ai(4,4,16,16,_r),new Ai(8,16,32,32,_r),new Ai(8,16,128,128,_r),new Ai(8,32,128,256,_r),new Ai(32,128,258,1024,_r),new Ai(32,258,258,4096,_r)],I8=e=>{e.window_size=2*e.w_size,fn(e.head),e.max_lazy_match=xa[e.level].max_lazy,e.good_match=xa[e.level].good_length,e.nice_match=xa[e.level].nice_length,e.max_chain_length=xa[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Se-1,e.match_available=0,e.ins_h=0};function C8(){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=$o,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(x8*2),this.dyn_dtree=new Uint16Array((2*b8+1)*2),this.bl_tree=new Uint16Array((2*E8+1)*2),fn(this.dyn_ltree),fn(this.dyn_dtree),fn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(T8+1),this.heap=new Uint16Array(2*fd+1),fn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*fd+1),fn(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 Ua=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==kr&&t.status!==xd&&t.status!==hd&&t.status!==gd&&t.status!==_d&&t.status!==pd&&t.status!==Bn&&t.status!==Ea?1:0},i_=e=>{if(Ua(e))return Gn(e,Ei);e.total_in=e.total_out=0,e.data_type=v8;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?xd:t.wrap?kr:Bn,e.adler=t.wrap===2?0:1,t.last_flush=-2,o8(t),ct},n_=e=>{let t=i_(e);return t===ct&&I8(e.state),t},P8=(e,t)=>Ua(e)||e.state.wrap!==2?Ei:(e.state.gzhead=t,ct),r_=(e,t,i,n,r,a)=>{if(!e)return Ei;let s=1;if(t===f8&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>y8||i!==$o||n<8||n>15||t<0||t>9||a<0||a>_8||n===8&&s!==1)return Gn(e,Ei);n===8&&(n=9);let o=new C8;return e.state=o,o.strm=e,o.status=kr,o.wrap=s,o.gzhead=null,o.w_bits=n,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+Se-1)/Se),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=i,n_(e)},F8=(e,t)=>r_(e,t,$o,w8,S8,p8),D8=(e,t)=>{if(Ua(e)||t>$g||t<0)return e?Gn(e,Ei):Ei;let i=e.state;if(!e.output||e.avail_in!==0&&!e.input||i.status===Ea&&t!==Zt)return Gn(e,e.avail_out===0?qm:Ei);let n=i.last_flush;if(i.last_flush=t,i.pending!==0){if(Dt(e),e.avail_out===0)return i.last_flush=-1,ct}else if(e.avail_in===0&&Yg(t)<=Yg(n)&&t!==Zt)return Gn(e,qm);if(i.status===Ea&&e.avail_in!==0)return Gn(e,qm);if(i.status===kr&&i.wrap===0&&(i.status=Bn),i.status===kr){let r=$o+(i.w_bits-8<<4)<<8,a=-1;if(i.strategy>=Mo||i.level<2?a=0:i.level<6?a=1:i.level===6?a=2:a=3,r|=a<<6,i.strstart!==0&&(r|=M8),r+=31-r%31,ba(i,r),i.strstart!==0&&(ba(i,e.adler>>>16),ba(i,e.adler&65535)),e.adler=1,i.status=Bn,Dt(e),i.pending!==0)return i.last_flush=-1,ct}if(i.status===xd){if(e.adler=0,Te(i,31),Te(i,139),Te(i,8),i.gzhead)Te(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Te(i,i.gzhead.time&255),Te(i,i.gzhead.time>>8&255),Te(i,i.gzhead.time>>16&255),Te(i,i.gzhead.time>>24&255),Te(i,i.level===9?2:i.strategy>=Mo||i.level<2?4:0),Te(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Te(i,i.gzhead.extra.length&255),Te(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=rt(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=hd;else if(Te(i,0),Te(i,0),Te(i,0),Te(i,0),Te(i,0),Te(i,i.level===9?2:i.strategy>=Mo||i.level<2?4:0),Te(i,R8),i.status=Bn,Dt(e),i.pending!==0)return i.last_flush=-1,ct}if(i.status===hd){if(i.gzhead.extra){let r=i.pending,a=(i.gzhead.extra.length&65535)-i.gzindex;for(;i.pending+a>i.pending_buf_size;){let o=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+o),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex+=o,Dt(e),i.pending!==0)return i.last_flush=-1,ct;r=0,a-=o}let s=new Uint8Array(i.gzhead.extra);i.pending_buf.set(s.subarray(i.gzindex,i.gzindex+a),i.pending),i.pending+=a,i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex=0}i.status=gd}if(i.status===gd){if(i.gzhead.name){let r=i.pending,a;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),Dt(e),i.pending!==0)return i.last_flush=-1,ct;r=0}i.gzindex<i.gzhead.name.length?a=i.gzhead.name.charCodeAt(i.gzindex++)&255:a=0,Te(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex=0}i.status=_d}if(i.status===_d){if(i.gzhead.comment){let r=i.pending,a;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r)),Dt(e),i.pending!==0)return i.last_flush=-1,ct;r=0}i.gzindex<i.gzhead.comment.length?a=i.gzhead.comment.charCodeAt(i.gzindex++)&255:a=0,Te(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>r&&(e.adler=rt(e.adler,i.pending_buf,i.pending-r,r))}i.status=pd}if(i.status===pd){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(Dt(e),i.pending!==0))return i.last_flush=-1,ct;Te(i,e.adler&255),Te(i,e.adler>>8&255),e.adler=0}if(i.status=Bn,Dt(e),i.pending!==0)return i.last_flush=-1,ct}if(e.avail_in!==0||i.lookahead!==0||t!==_n&&i.status!==Ea){let r=i.level===0?t_(i,t):i.strategy===Mo?O8(i,t):i.strategy===g8?N8(i,t):xa[i.level].func(i,t);if((r===Vn||r===xr)&&(i.status=Ea),r===kt||r===Vn)return e.avail_out===0&&(i.last_flush=-1),ct;if(r===Er&&(t===m8?l8(i):t!==$g&&(ud(i,0,0,!1),t===d8&&(fn(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),Dt(e),e.avail_out===0))return i.last_flush=-1,ct}return t!==Zt?ct:i.wrap<=0?Xg:(i.wrap===2?(Te(i,e.adler&255),Te(i,e.adler>>8&255),Te(i,e.adler>>16&255),Te(i,e.adler>>24&255),Te(i,e.total_in&255),Te(i,e.total_in>>8&255),Te(i,e.total_in>>16&255),Te(i,e.total_in>>24&255)):(ba(i,e.adler>>>16),ba(i,e.adler&65535)),Dt(e),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?ct:Xg)},U8=e=>{if(Ua(e))return Ei;let t=e.state.status;return e.state=null,t===Bn?Gn(e,u8):ct},B8=(e,t)=>{let i=t.length;if(Ua(e))return Ei;let n=e.state,r=n.wrap;if(r===2||r===1&&n.status!==kr||n.lookahead)return Ei;if(r===1&&(e.adler=Ia(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){r===0&&(fn(n.head),n.strstart=0,n.block_start=0,n.insert=0);let l=new Uint8Array(n.w_size);l.set(t.subarray(i-n.w_size,i),0),t=l,i=n.w_size}let a=e.avail_in,s=e.next_in,o=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Ar(n);n.lookahead>=Se;){let l=n.strstart,c=n.lookahead-(Se-1);do n.ins_h=pn(n,n.ins_h,n.window[l+Se-1]),n.prev[l&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=l,l++;while(--c);n.strstart=l,n.lookahead=Se-1,Ar(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Se-1,n.match_available=0,e.next_in=s,e.input=o,e.avail_in=a,n.wrap=r,ct},G8=F8,H8=r_,V8=n_,W8=i_,K8=P8,$8=D8,X8=U8,Y8=B8,Z8="pako deflate (from Nodeca project)",Ma={deflateInit:G8,deflateInit2:H8,deflateReset:V8,deflateResetKeep:W8,deflateSetHeader:K8,deflate:$8,deflateEnd:X8,deflateSetDictionary:Y8,deflateInfo:Z8},q8=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),j8=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let i=t.shift();if(i){if(typeof i!="object")throw new TypeError(i+"must be non-object");for(let n in i)q8(i,n)&&(e[n]=i[n])}}return e},J8=e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;let i=new Uint8Array(t);for(let n=0,r=0,a=e.length;n<a;n++){let s=e[n];i.set(s,r),r+=s.length}return i},Xo={assign:j8,flattenChunks:J8},a_=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{a_=!1}var Ca=new Uint8Array(256);for(let e=0;e<256;e++)Ca[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Ca[254]=Ca[254]=1;var Q8=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(t=new Uint8Array(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t},eT=(e,t)=>{if(t<65534&&e.subarray&&a_)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i},tT=(e,t)=>{let i=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let n,r,a=new Array(i*2);for(r=0,n=0;n<i;){let s=e[n++];if(s<128){a[r++]=s;continue}let o=Ca[s];if(o>4){a[r++]=65533,n+=o-1;continue}for(s&=o===2?31:o===3?15:7;o>1&&n<i;)s=s<<6|e[n++]&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 eT(a,r)},iT=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let i=t-1;for(;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+Ca[e[i]]>t?i:t},Pa={string2buf:Q8,buf2string:tT,utf8border:iT};function nT(){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 s_=nT,o_=Object.prototype.toString,{Z_NO_FLUSH:rT,Z_SYNC_FLUSH:aT,Z_FULL_FLUSH:sT,Z_FINISH:oT,Z_OK:Co,Z_STREAM_END:cT,Z_DEFAULT_COMPRESSION:lT,Z_DEFAULT_STRATEGY:mT,Z_DEFLATED:dT}=Kn;function Ba(e){this.options=Xo.assign({level:lT,method:dT,chunkSize:16384,windowBits:15,memLevel:8,strategy:mT},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 s_,this.strm.avail_out=0;let i=Ma.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Co)throw new Error(Hn[i]);if(t.header&&Ma.deflateSetHeader(this.strm,t.header),t.dictionary){let n;if(typeof t.dictionary=="string"?n=Pa.string2buf(t.dictionary):o_.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=Ma.deflateSetDictionary(this.strm,n),i!==Co)throw new Error(Hn[i]);this._dict_set=!0}}Ba.prototype.push=function(e,t){let i=this.strm,n=this.options.chunkSize,r,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?oT:rT,typeof e=="string"?i.input=Pa.string2buf(e):o_.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){if(i.avail_out===0&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(a===aT||a===sT)&&i.avail_out<=6){this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;continue}if(r=Ma.deflate(i,a),r===cT)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Ma.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Co;if(i.avail_out===0){this.onData(i.output);continue}if(a>0&&i.next_out>0){this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;continue}if(i.avail_in===0)break}return!0};Ba.prototype.onData=function(e){this.chunks.push(e)};Ba.prototype.onEnd=function(e){e===Co&&(this.result=Xo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Td(e,t){let i=new Ba(t);if(i.push(e,!0),i.err)throw i.msg||Hn[i.err];return i.result}function uT(e,t){return t=t||{},t.raw=!0,Td(e,t)}function fT(e,t){return t=t||{},t.gzip=!0,Td(e,t)}var hT=Ba,gT=Td,_T=uT,pT=fT,vT=Kn,yT={Deflate:hT,deflate:gT,deflateRaw:_T,gzip:pT,constants:vT},Ro=16209,wT=16191,ST=function(t,i){let n,r,a,s,o,l,c,m,d,u,f,h,v,g,y,k,b,w,S,O,E,K,C,T,B=t.state;n=t.next_in,C=t.input,r=n+(t.avail_in-5),a=t.next_out,T=t.output,s=a-(i-t.avail_out),o=a+(t.avail_out-257),l=B.dmax,c=B.wsize,m=B.whave,d=B.wnext,u=B.window,f=B.hold,h=B.bits,v=B.lencode,g=B.distcode,y=(1<<B.lenbits)-1,k=(1<<B.distbits)-1;e:do{h<15&&(f+=C[n++]<<h,h+=8,f+=C[n++]<<h,h+=8),b=v[f&y];t:for(;;){if(w=b>>>24,f>>>=w,h-=w,w=b>>>16&255,w===0)T[a++]=b&65535;else if(w&16){S=b&65535,w&=15,w&&(h<w&&(f+=C[n++]<<h,h+=8),S+=f&(1<<w)-1,f>>>=w,h-=w),h<15&&(f+=C[n++]<<h,h+=8,f+=C[n++]<<h,h+=8),b=g[f&k];i:for(;;){if(w=b>>>24,f>>>=w,h-=w,w=b>>>16&255,w&16){if(O=b&65535,w&=15,h<w&&(f+=C[n++]<<h,h+=8,h<w&&(f+=C[n++]<<h,h+=8)),O+=f&(1<<w)-1,O>l){t.msg="invalid distance too far back",B.mode=Ro;break e}if(f>>>=w,h-=w,w=a-s,O>w){if(w=O-w,w>m&&B.sane){t.msg="invalid distance too far back",B.mode=Ro;break e}if(E=0,K=u,d===0){if(E+=c-w,w<S){S-=w;do T[a++]=u[E++];while(--w);E=a-O,K=T}}else if(d<w){if(E+=c+d-w,w-=d,w<S){S-=w;do T[a++]=u[E++];while(--w);if(E=0,d<S){w=d,S-=w;do T[a++]=u[E++];while(--w);E=a-O,K=T}}}else if(E+=d-w,w<S){S-=w;do T[a++]=u[E++];while(--w);E=a-O,K=T}for(;S>2;)T[a++]=K[E++],T[a++]=K[E++],T[a++]=K[E++],S-=3;S&&(T[a++]=K[E++],S>1&&(T[a++]=K[E++]))}else{E=a-O;do T[a++]=T[E++],T[a++]=T[E++],T[a++]=T[E++],S-=3;while(S>2);S&&(T[a++]=T[E++],S>1&&(T[a++]=T[E++]))}}else if((w&64)===0){b=g[(b&65535)+(f&(1<<w)-1)];continue i}else{t.msg="invalid distance code",B.mode=Ro;break e}break}}else if((w&64)===0){b=v[(b&65535)+(f&(1<<w)-1)];continue t}else if(w&32){B.mode=wT;break e}else{t.msg="invalid literal/length code",B.mode=Ro;break e}break}}while(n<r&&a<o);S=h>>3,n-=S,h-=S<<3,f&=(1<<h)-1,t.next_in=n,t.next_out=a,t.avail_in=n<r?5+(r-n):5-(n-r),t.avail_out=a<o?257+(o-a):257-(a-o),B.hold=f,B.bits=h},pr=15,Zg=852,qg=592,jg=0,Jm=1,Jg=2,kT=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]),AT=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]),bT=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]),ET=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]),xT=(e,t,i,n,r,a,s,o)=>{let l=o.bits,c=0,m=0,d=0,u=0,f=0,h=0,v=0,g=0,y=0,k=0,b,w,S,O,E,K=null,C,T=new Uint16Array(pr+1),B=new Uint16Array(pr+1),ee=null,ye,A,P;for(c=0;c<=pr;c++)T[c]=0;for(m=0;m<n;m++)T[t[i+m]]++;for(f=l,u=pr;u>=1&&T[u]===0;u--);if(f>u&&(f=u),u===0)return r[a++]=1<<24|64<<16|0,r[a++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d<u&&T[d]===0;d++);for(f<d&&(f=d),g=1,c=1;c<=pr;c++)if(g<<=1,g-=T[c],g<0)return-1;if(g>0&&(e===jg||u!==1))return-1;for(B[1]=0,c=1;c<pr;c++)B[c+1]=B[c]+T[c];for(m=0;m<n;m++)t[i+m]!==0&&(s[B[t[i+m]]++]=m);if(e===jg?(K=ee=s,C=20):e===Jm?(K=kT,ee=AT,C=257):(K=bT,ee=ET,C=0),k=0,m=0,c=d,E=a,h=f,v=0,S=-1,y=1<<f,O=y-1,e===Jm&&y>Zg||e===Jg&&y>qg)return 1;for(;;){ye=c-v,s[m]+1<C?(A=0,P=s[m]):s[m]>=C?(A=ee[s[m]-C],P=K[s[m]-C]):(A=96,P=0),b=1<<c-v,w=1<<h,d=w;do w-=b,r[E+(k>>v)+w]=ye<<24|A<<16|P|0;while(w!==0);for(b=1<<c-1;k&b;)b>>=1;if(b!==0?(k&=b-1,k+=b):k=0,m++,--T[c]===0){if(c===u)break;c=t[i+s[m]]}if(c>f&&(k&O)!==S){for(v===0&&(v=f),E+=d,h=c-v,g=1<<h;h+v<u&&(g-=T[h+v],!(g<=0));)h++,g<<=1;if(y+=1<<h,e===Jm&&y>Zg||e===Jg&&y>qg)return 1;S=k&O,r[S]=f<<24|h<<16|E-a|0}}return k!==0&&(r[E+k]=c-v<<24|64<<16|0),o.bits=f,0},Ra=xT,TT=0,c_=1,l_=2,{Z_FINISH:Qg,Z_BLOCK:MT,Z_TREES:zo,Z_OK:Wn,Z_STREAM_END:RT,Z_NEED_DICT:zT,Z_STREAM_ERROR:qt,Z_DATA_ERROR:m_,Z_MEM_ERROR:d_,Z_BUF_ERROR:LT,Z_DEFLATED:e1}=Kn,Yo=16180,t1=16181,i1=16182,n1=16183,r1=16184,a1=16185,s1=16186,o1=16187,c1=16188,l1=16189,Po=16190,Vi=16191,Qm=16192,m1=16193,ed=16194,d1=16195,u1=16196,f1=16197,h1=16198,Lo=16199,No=16200,g1=16201,_1=16202,p1=16203,v1=16204,y1=16205,td=16206,w1=16207,S1=16208,Fe=16209,u_=16210,f_=16211,NT=852,OT=592,IT=15,CT=IT,k1=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function PT(){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 $n=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<Yo||t.mode>f_?1:0},h_=e=>{if($n(e))return qt;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=Yo,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(NT),t.distcode=t.distdyn=new Int32Array(OT),t.sane=1,t.back=-1,Wn},g_=e=>{if($n(e))return qt;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,h_(e)},__=(e,t)=>{let i;if($n(e))return qt;let n=e.state;return t<0?(i=0,t=-t):(i=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?qt:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,g_(e))},p_=(e,t)=>{if(!e)return qt;let i=new PT;e.state=i,i.strm=e,i.window=null,i.mode=Yo;let n=__(e,t);return n!==Wn&&(e.state=null),n},FT=e=>p_(e,CT),A1=!0,id,nd,DT=e=>{if(A1){id=new Int32Array(512),nd=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(Ra(c_,e.lens,0,288,id,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Ra(l_,e.lens,0,32,nd,0,e.work,{bits:5}),A1=!1}e.lencode=id,e.lenbits=9,e.distcode=nd,e.distbits=5},v_=(e,t,i,n)=>{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)),n>=a.wsize?(a.window.set(t.subarray(i-a.wsize,i),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),a.window.set(t.subarray(i-n,i-n+r),a.wnext),n-=r,n?(a.window.set(t.subarray(i-n,i),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0},UT=(e,t)=>{let i,n,r,a,s,o,l,c,m,d,u,f,h,v,g=0,y,k,b,w,S,O,E,K,C=new Uint8Array(4),T,B,ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if($n(e)||!e.output||!e.input&&e.avail_in!==0)return qt;i=e.state,i.mode===Vi&&(i.mode=Qm),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,m=i.bits,d=o,u=l,K=Wn;e:for(;;)switch(i.mode){case Yo:if(i.wrap===0){i.mode=Qm;break}for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.wrap&2&&c===35615){i.wbits===0&&(i.wbits=15),i.check=0,C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0),c=0,m=0,i.mode=t1;break}if(i.head&&(i.head.done=!1),!(i.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",i.mode=Fe;break}if((c&15)!==e1){e.msg="unknown compression method",i.mode=Fe;break}if(c>>>=4,m-=4,E=(c&15)+8,i.wbits===0&&(i.wbits=E),E>15||E>i.wbits){e.msg="invalid window size",i.mode=Fe;break}i.dmax=1<<i.wbits,i.flags=0,e.adler=i.check=1,i.mode=c&512?l1:Vi,c=0,m=0;break;case t1:for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.flags=c,(i.flags&255)!==e1){e.msg="unknown compression method",i.mode=Fe;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=Fe;break}i.head&&(i.head.text=c>>8&1),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0)),c=0,m=0,i.mode=i1;case i1:for(;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.head&&(i.head.time=c),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,C[2]=c>>>16&255,C[3]=c>>>24&255,i.check=rt(i.check,C,4,0)),c=0,m=0,i.mode=n1;case n1:for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.head&&(i.head.xflags=c&255,i.head.os=c>>8),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0)),c=0,m=0,i.mode=r1;case r1:if(i.flags&1024){for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.length=c,i.head&&(i.head.extra_len=c),i.flags&512&&i.wrap&4&&(C[0]=c&255,C[1]=c>>>8&255,i.check=rt(i.check,C,2,0)),c=0,m=0}else i.head&&(i.head.extra=null);i.mode=a1;case a1:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(E=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(a,a+f),E)),i.flags&512&&i.wrap&4&&(i.check=rt(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=s1;case s1:if(i.flags&2048){if(o===0)break e;f=0;do E=n[a+f++],i.head&&E&&i.length<65536&&(i.head.name+=String.fromCharCode(E));while(E&&f<o);if(i.flags&512&&i.wrap&4&&(i.check=rt(i.check,n,f,a)),o-=f,a+=f,E)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=o1;case o1:if(i.flags&4096){if(o===0)break e;f=0;do E=n[a+f++],i.head&&E&&i.length<65536&&(i.head.comment+=String.fromCharCode(E));while(E&&f<o);if(i.flags&512&&i.wrap&4&&(i.check=rt(i.check,n,f,a)),o-=f,a+=f,E)break e}else i.head&&(i.head.comment=null);i.mode=c1;case c1:if(i.flags&512){for(;m<16;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.wrap&4&&c!==(i.check&65535)){e.msg="header crc mismatch",i.mode=Fe;break}c=0,m=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Vi;break;case l1:for(;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}e.adler=i.check=k1(c),c=0,m=0,i.mode=Po;case Po:if(i.havedict===0)return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=m,zT;e.adler=i.check=1,i.mode=Vi;case Vi:if(t===MT||t===zo)break e;case Qm:if(i.last){c>>>=m&7,m-=m&7,i.mode=td;break}for(;m<3;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}switch(i.last=c&1,c>>>=1,m-=1,c&3){case 0:i.mode=m1;break;case 1:if(DT(i),i.mode=Lo,t===zo){c>>>=2,m-=2;break e}break;case 2:i.mode=u1;break;case 3:e.msg="invalid block type",i.mode=Fe}c>>>=2,m-=2;break;case m1:for(c>>>=m&7,m-=m&7;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",i.mode=Fe;break}if(i.length=c&65535,c=0,m=0,i.mode=ed,t===zo)break e;case ed:i.mode=d1;case d1:if(f=i.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;r.set(n.subarray(a,a+f),s),o-=f,a+=f,l-=f,s+=f,i.length-=f;break}i.mode=Vi;break;case u1:for(;m<14;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.nlen=(c&31)+257,c>>>=5,m-=5,i.ndist=(c&31)+1,c>>>=5,m-=5,i.ncode=(c&15)+4,c>>>=4,m-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Fe;break}i.have=0,i.mode=f1;case f1:for(;i.have<i.ncode;){for(;m<3;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.lens[ee[i.have++]]=c&7,c>>>=3,m-=3}for(;i.have<19;)i.lens[ee[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,T={bits:i.lenbits},K=Ra(TT,i.lens,0,19,i.lencode,0,i.work,T),i.lenbits=T.bits,K){e.msg="invalid code lengths set",i.mode=Fe;break}i.have=0,i.mode=h1;case h1:for(;i.have<i.nlen+i.ndist;){for(;g=i.lencode[c&(1<<i.lenbits)-1],y=g>>>24,k=g>>>16&255,b=g&65535,!(y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(b<16)c>>>=y,m-=y,i.lens[i.have++]=b;else{if(b===16){for(B=y+2;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(c>>>=y,m-=y,i.have===0){e.msg="invalid bit length repeat",i.mode=Fe;break}E=i.lens[i.have-1],f=3+(c&3),c>>>=2,m-=2}else if(b===17){for(B=y+3;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=y,m-=y,E=0,f=3+(c&7),c>>>=3,m-=3}else{for(B=y+7;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=y,m-=y,E=0,f=11+(c&127),c>>>=7,m-=7}if(i.have+f>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Fe;break}for(;f--;)i.lens[i.have++]=E}}if(i.mode===Fe)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=Fe;break}if(i.lenbits=9,T={bits:i.lenbits},K=Ra(c_,i.lens,0,i.nlen,i.lencode,0,i.work,T),i.lenbits=T.bits,K){e.msg="invalid literal/lengths set",i.mode=Fe;break}if(i.distbits=6,i.distcode=i.distdyn,T={bits:i.distbits},K=Ra(l_,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,T),i.distbits=T.bits,K){e.msg="invalid distances set",i.mode=Fe;break}if(i.mode=Lo,t===zo)break e;case Lo:i.mode=No;case No:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=m,ST(e,u),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,m=i.bits,i.mode===Vi&&(i.back=-1);break}for(i.back=0;g=i.lencode[c&(1<<i.lenbits)-1],y=g>>>24,k=g>>>16&255,b=g&65535,!(y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(k&&(k&240)===0){for(w=y,S=k,O=b;g=i.lencode[O+((c&(1<<w+S)-1)>>w)],y=g>>>24,k=g>>>16&255,b=g&65535,!(w+y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=w,m-=w,i.back+=w}if(c>>>=y,m-=y,i.back+=y,i.length=b,k===0){i.mode=y1;break}if(k&32){i.back=-1,i.mode=Vi;break}if(k&64){e.msg="invalid literal/length code",i.mode=Fe;break}i.extra=k&15,i.mode=g1;case g1:if(i.extra){for(B=i.extra;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.length+=c&(1<<i.extra)-1,c>>>=i.extra,m-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=_1;case _1:for(;g=i.distcode[c&(1<<i.distbits)-1],y=g>>>24,k=g>>>16&255,b=g&65535,!(y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if((k&240)===0){for(w=y,S=k,O=b;g=i.distcode[O+((c&(1<<w+S)-1)>>w)],y=g>>>24,k=g>>>16&255,b=g&65535,!(w+y<=m);){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}c>>>=w,m-=w,i.back+=w}if(c>>>=y,m-=y,i.back+=y,k&64){e.msg="invalid distance code",i.mode=Fe;break}i.offset=b,i.extra=k&15,i.mode=p1;case p1:if(i.extra){for(B=i.extra;m<B;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}i.offset+=c&(1<<i.extra)-1,c>>>=i.extra,m-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Fe;break}i.mode=v1;case v1:if(l===0)break e;if(f=u-l,i.offset>f){if(f=i.offset-f,f>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Fe;break}f>i.wnext?(f-=i.wnext,h=i.wsize-f):h=i.wnext-f,f>i.length&&(f=i.length),v=i.window}else v=r,h=s-i.offset,f=i.length;f>l&&(f=l),l-=f,i.length-=f;do r[s++]=v[h++];while(--f);i.length===0&&(i.mode=No);break;case y1:if(l===0)break e;r[s++]=i.length,l--,i.mode=No;break;case td:if(i.wrap){for(;m<32;){if(o===0)break e;o--,c|=n[a++]<<m,m+=8}if(u-=l,e.total_out+=u,i.total+=u,i.wrap&4&&u&&(e.adler=i.check=i.flags?rt(i.check,r,u,s-u):Ia(i.check,r,u,s-u)),u=l,i.wrap&4&&(i.flags?c:k1(c))!==i.check){e.msg="incorrect data check",i.mode=Fe;break}c=0,m=0}i.mode=w1;case w1:if(i.wrap&&i.flags){for(;m<32;){if(o===0)break e;o--,c+=n[a++]<<m,m+=8}if(i.wrap&4&&c!==(i.total&4294967295)){e.msg="incorrect length check",i.mode=Fe;break}c=0,m=0}i.mode=S1;case S1:K=RT;break e;case Fe:K=m_;break e;case u_:return d_;case f_:default:return qt}return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=m,(i.wsize||u!==e.avail_out&&i.mode<Fe&&(i.mode<td||t!==Qg))&&v_(e,e.output,e.next_out,u-e.avail_out),d-=e.avail_in,u-=e.avail_out,e.total_in+=d,e.total_out+=u,i.total+=u,i.wrap&4&&u&&(e.adler=i.check=i.flags?rt(i.check,r,u,e.next_out-u):Ia(i.check,r,u,e.next_out-u)),e.data_type=i.bits+(i.last?64:0)+(i.mode===Vi?128:0)+(i.mode===Lo||i.mode===ed?256:0),(d===0&&u===0||t===Qg)&&K===Wn&&(K=LT),K},BT=e=>{if($n(e))return qt;let t=e.state;return t.window&&(t.window=null),e.state=null,Wn},GT=(e,t)=>{if($n(e))return qt;let i=e.state;return(i.wrap&2)===0?qt:(i.head=t,t.done=!1,Wn)},HT=(e,t)=>{let i=t.length,n,r,a;return $n(e)||(n=e.state,n.wrap!==0&&n.mode!==Po)?qt:n.mode===Po&&(r=1,r=Ia(r,t,i,0),r!==n.check)?m_:(a=v_(e,t,i,i),a?(n.mode=u_,d_):(n.havedict=1,Wn))},VT=g_,WT=__,KT=h_,$T=FT,XT=p_,YT=UT,ZT=BT,qT=GT,jT=HT,JT="pako inflate (from Nodeca project)",Ki={inflateReset:VT,inflateReset2:WT,inflateResetKeep:KT,inflateInit:$T,inflateInit2:XT,inflate:YT,inflateEnd:ZT,inflateGetHeader:qT,inflateSetDictionary:jT,inflateInfo:JT};function QT(){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 eM=QT,y_=Object.prototype.toString,{Z_NO_FLUSH:tM,Z_FINISH:iM,Z_OK:Fa,Z_STREAM_END:rd,Z_NEED_DICT:ad,Z_STREAM_ERROR:nM,Z_DATA_ERROR:b1,Z_MEM_ERROR:rM}=Kn;function Ga(e){this.options=Xo.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 s_,this.strm.avail_out=0;let i=Ki.inflateInit2(this.strm,t.windowBits);if(i!==Fa)throw new Error(Hn[i]);if(this.header=new eM,Ki.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Pa.string2buf(t.dictionary):y_.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Ki.inflateSetDictionary(this.strm,t.dictionary),i!==Fa)))throw new Error(Hn[i])}Ga.prototype.push=function(e,t){let i=this.strm,n=this.options.chunkSize,r=this.options.dictionary,a,s,o;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?iM:tM,y_.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(i.avail_out===0&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),a=Ki.inflate(i,s),a===ad&&r&&(a=Ki.inflateSetDictionary(i,r),a===Fa?a=Ki.inflate(i,s):a===b1&&(a=ad));i.avail_in>0&&a===rd&&i.state.wrap>0&&e[i.next_in]!==0;)Ki.inflateReset(i),a=Ki.inflate(i,s);switch(a){case nM:case b1:case ad:case rM:return this.onEnd(a),this.ended=!0,!1}if(o=i.avail_out,i.next_out&&(i.avail_out===0||a===rd))if(this.options.to==="string"){let l=Pa.utf8border(i.output,i.next_out),c=i.next_out-l,m=Pa.buf2string(i.output,l);i.next_out=c,i.avail_out=n-c,c&&i.output.set(i.output.subarray(l,l+c),0),this.onData(m)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(!(a===Fa&&o===0)){if(a===rd)return a=Ki.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(i.avail_in===0)break}}return!0};Ga.prototype.onData=function(e){this.chunks.push(e)};Ga.prototype.onEnd=function(e){e===Fa&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Xo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Md(e,t){let i=new Ga(t);if(i.push(e),i.err)throw i.msg||Hn[i.err];return i.result}function aM(e,t){return t=t||{},t.raw=!0,Md(e,t)}var sM=Ga,oM=Md,cM=aM,lM=Md,mM=Kn,dM={Inflate:sM,inflate:oM,inflateRaw:cM,ungzip:lM,constants:mM},{Deflate:uM,deflate:fM,deflateRaw:hM,gzip:gM}=yT,{Inflate:_M,inflate:pM,inflateRaw:vM,ungzip:yM}=dM,wM=uM,SM=fM,kM=hM,AM=gM,bM=_M,EM=pM,xM=vM,TM=yM,MM=Kn,E1={Deflate:wM,deflate:SM,deflateRaw:kM,gzip:AM,Inflate:bM,inflate:EM,inflateRaw:xM,ungzip:TM,constants:MM},vr=2023,Rd=1,zd=2,Ld=4,Nd=8,Od=16,Id=32,Cd=64,x1=128,RM=256,Pd=512,Fd=1024,Dd=2048,Fo=4096,Ud=8192,Do=16384,zM=32768,Uo=65536,Bd=1<<17,Bo=1<<18,Go=1<<19,Gd=1<<20,Hd=1<<21,Vd=1<<22,LM=1<<23,Wd=1<<24,Ho=1<<25,Kd=1<<26,$d=1<<27,Xd=1<<28,Yd=1<<29,Zd=1<<30,NM=-2147483648,qd=1,jd=2,Jd=4,OM=1,IM=2,CM=128,yr=()=>({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}),T1=()=>({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}),Zo=class w_{constructor(t,i,n=!1){this.protocolVersion=0,this.isDemo=OM,this.strictMode=!1,this.errorCount=0,this.stream=t,this.handler=i,this.strictMode=n}setProtocolVersion(t){this.protocolVersion=t}getProtocolVersion(){return this.protocolVersion}getErrorCount(){return this.errorCount}translateCommand(t){return this.protocolVersion===0&&(t===7||t===12)?ce.serverdata:this.protocolVersion===vr?t:this.protocolVersion===34||this.protocolVersion===25?t<=ce.frame?t:t===22?ce.playerinfo:t===23?ce.packetentities:ce.bad:(this.protocolVersion===0,t)}parseMessage(){for(;this.stream.hasMore();){let t=-1;try{t=this.stream.readByte()}catch{break}if(t===-1)break;let i=t;t=this.translateCommand(t);try{switch(t){case ce.bad:this.strictMode;return;case ce.nop:break;case ce.disconnect:this.handler&&this.handler.onDisconnect&&this.handler.onDisconnect();break;case ce.reconnect:this.handler&&this.handler.onReconnect&&this.handler.onReconnect();break;case ce.print:this.parsePrint();break;case ce.serverdata:this.parseServerData();break;case ce.configstring:this.parseConfigString();break;case ce.spawnbaseline:this.parseSpawnBaseline();break;case ce.centerprint:this.parseCenterPrint();break;case ce.download:this.parseDownload();break;case ce.frame:this.parseFrame();break;case ce.packetentities:this.parsePacketEntities(!1);break;case ce.deltapacketentities:this.parsePacketEntities(!0);break;case ce.playerinfo:this.parsePlayerState();break;case ce.stufftext:this.parseStuffText();break;case ce.layout:this.parseLayout();break;case ce.inventory:this.parseInventory();break;case ce.sound:this.parseSound();break;case ce.muzzleflash:this.parseMuzzleFlash();break;case ce.muzzleflash2:this.parseMuzzleFlash2();break;case ce.temp_entity:this.parseTempEntity();break;case ce.splitclient:this.parseSplitClient();break;case ce.configblast:this.parseConfigBlast();break;case ce.spawnbaselineblast:this.parseSpawnBaselineBlast();break;case ce.level_restart:this.handler&&this.handler.onLevelRestart&&this.handler.onLevelRestart();break;case ce.damage:this.parseDamage();break;case ce.locprint:this.parseLocPrint();break;case ce.fog:this.parseFog();break;case ce.waitingforplayers:this.parseWaitingForPlayers();break;case ce.bot_chat:this.parseBotChat();break;case ce.poi:this.parsePoi();break;case ce.help_path:this.parseHelpPath();break;case ce.muzzleflash3:this.parseMuzzleFlash3();break;case ce.achievement:this.parseAchievement();break;default:let n=`Unknown server command: ${i} (translated: ${t}) at offset ${this.stream.getPosition()-1}`;if(this.strictMode)throw new Error(n);console.warn(n),this.errorCount++;return}}catch(n){let r=`offset ${this.stream.getPosition()}, cmd ${t}, protocol ${this.protocolVersion}`;if(console.warn(`Error parsing command ${t} (${r}): ${n.message}`),this.errorCount++,this.strictMode)throw n;return}}}parsePrint(){let t=this.stream.readByte(),i=this.stream.readString();this.handler&&this.handler.onPrint(t,i)}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===vr){let t=this.stream.readLong(),i=this.stream.readByte();this.isDemo=i;let n=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,n,i):console.log(`Server Data (Rerelease): Protocol ${this.protocolVersion}, Level ${s}, Tick ${n}`)}else{let t=this.stream.readLong();this.isDemo=this.stream.readByte();let i=0,n=this.stream.readString(),r=this.stream.readShort(),a=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,i,n,r,a):console.log(`Server Data: Protocol ${this.protocolVersion}, Level ${a}, GameDir ${n}`)}}parseConfigString(){let t=this.stream.readShort(),i=this.stream.readString();this.handler&&this.handler.onConfigString(t,i)}parseSplitClient(){let t=this.stream.readByte();this.handler&&this.handler.onSplitClient&&this.handler.onSplitClient(t)}parseConfigBlast(){let t=this.stream.readShort(),i=this.stream.readShort(),n=this.stream.readData(t);try{let r=E1.inflate(n);r.byteLength!==i&&console.warn(`svc_configblast: Decompressed size mismatch. Expected ${i}, got ${r.byteLength}`);let a=new cd(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(),i=this.stream.readShort(),n=this.stream.readData(t);try{let r=E1.inflate(n);r.byteLength!==i&&console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${i}, got ${r.byteLength}`);let a=new cd(r.buffer),s=new w_(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(),i=this.stream.readString(),n=this.stream.readByte(),r=[];for(let a=0;a<n;a++)r.push(this.stream.readString());this.handler&&this.handler.onLocPrint&&this.handler.onLocPrint(t,i,r)}parseWaitingForPlayers(){let t=this.stream.readByte();this.handler&&this.handler.onWaitingForPlayers&&this.handler.onWaitingForPlayers(t)}parseBotChat(){let t=this.stream.readString(),i=this.stream.readShort(),n=this.stream.readString();this.handler&&this.handler.onBotChat&&this.handler.onBotChat(n)}parsePoi(){let t=this.stream.readUShort(),i=this.stream.readUShort(),n={x:0,y:0,z:0};this.stream.readPos(n);let r=this.stream.readUShort(),a=this.stream.readByte(),s=this.stream.readByte();this.handler&&this.handler.onPoi&&this.handler.onPoi(s,n)}parseHelpPath(){let t=this.stream.readByte(),i={x:0,y:0,z:0};this.stream.readPos(i);let n={x:0,y:0,z:0};this.stream.readDir(n),this.handler&&this.handler.onHelpPath&&this.handler.onHelpPath(i)}parseAchievement(){let t=this.stream.readString();this.handler&&this.handler.onAchievement&&this.handler.onAchievement(t)}parseDownload(){let t=this.stream.readShort(),i=this.stream.readByte(),n;t>0&&(n=this.stream.readData(t)),this.handler&&this.handler.onDownload(t,i,n)}parseInventory(){let i=new Array(256);for(let n=0;n<256;n++)i[n]=this.stream.readShort();this.handler&&this.handler.onInventory(i)}parseSound(){let t=this.stream.readByte(),i=this.stream.readByte(),n,r,a,s,o;if(t&1&&(n=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,i,n,r,a,s,o)}parseMuzzleFlash(){let t=this.stream.readShort(),i=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash(t,i)}parseMuzzleFlash2(){let t=this.stream.readShort(),i=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash2(t,i)}parseMuzzleFlash3(){let t=this.stream.readShort(),i=this.stream.readShort();this.handler&&this.handler.onMuzzleFlash3&&this.handler.onMuzzleFlash3(t,i)}parseFog(){let t=this.stream.readByte();if(t&128){let n=this.stream.readByte();t|=n<<8}let i={};t&1&&(i.density=this.stream.readFloat(),i.skyfactor=this.stream.readByte()),t&2&&(i.red=this.stream.readByte()),t&4&&(i.green=this.stream.readByte()),t&8&&(i.blue=this.stream.readByte()),t&16&&(i.time=this.stream.readShort()),t&32&&(i.hf_falloff=this.stream.readFloat()),t&64&&(i.hf_density=this.stream.readFloat()),t&256&&(i.hf_start_r=this.stream.readByte()),t&512&&(i.hf_start_g=this.stream.readByte()),t&1024&&(i.hf_start_b=this.stream.readByte()),t&2048&&(i.hf_start_dist=this.stream.readLong()),t&4096&&(i.hf_end_r=this.stream.readByte()),t&8192&&(i.hf_end_g=this.stream.readByte()),t&16384&&(i.hf_end_b=this.stream.readByte()),t&32768&&(i.hf_end_dist=this.stream.readLong()),this.handler&&this.handler.onFog&&this.handler.onFog(i)}parseDamage(){let t=this.stream.readByte(),i=[];for(let n=0;n<t;n++){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;i.push({damage:s,health:o,armor:l,power:c,dir:a})}this.handler&&this.handler.onDamage&&this.handler.onDamage(i)}parseTempEntity(){let t=this.stream.readByte(),i={x:0,y:0,z:0},n={x:0,y:0,z:0},r={x:0,y:0,z:0},a,s,o,l,c;switch(t){case J.EXPLOSION1:case J.EXPLOSION2:case J.ROCKET_EXPLOSION:case J.GRENADE_EXPLOSION:case J.ROCKET_EXPLOSION_WATER:case J.GRENADE_EXPLOSION_WATER:case J.BFG_EXPLOSION:case J.BFG_BIGEXPLOSION:case J.BOSSTPORT:case J.PLASMA_EXPLOSION:case J.PLAIN_EXPLOSION:case J.CHAINFIST_SMOKE:case J.TRACKER_EXPLOSION:case J.TELEPORT_EFFECT:case J.DBALL_GOAL:case J.NUKEBLAST:case J.WIDOWSPLASH:case J.EXPLOSION1_BIG:case J.EXPLOSION1_NP:this.stream.readPos(i);break;case J.GUNSHOT:case J.BLOOD:case J.BLASTER:case J.SHOTGUN:case J.SPARKS:case J.BULLET_SPARKS:case J.SCREEN_SPARKS:case J.SHIELD_SPARKS:case J.BLASTER2:case J.FLECHETTE:case J.MOREBLOOD:case J.ELECTRIC_SPARKS:case J.HEATBEAM_SPARKS:case J.HEATBEAM_STEAM:this.stream.readPos(i),this.stream.readDir(r);break;case J.SPLASH:case J.LASER_SPARKS:case J.WELDING_SPARKS:case J.TUNNEL_SPARKS:a=this.stream.readByte(),this.stream.readPos(i),this.stream.readDir(r),s=this.stream.readByte();break;case J.BLUEHYPERBLASTER:this.protocolVersion>=32?(this.stream.readPos(i),this.stream.readPos(n)):(this.stream.readPos(i),this.stream.readDir(r));break;case J.GREENBLOOD:this.protocolVersion>=32?(this.stream.readPos(i),this.stream.readDir(r)):(this.stream.readPos(i),this.stream.readPos(n));break;case J.RAILTRAIL:case J.BUBBLETRAIL:case J.BFG_LASER:case J.DEBUGTRAIL:case J.BUBBLETRAIL2:this.stream.readPos(i),this.stream.readPos(n);break;case J.PARASITE_ATTACK:case J.MEDIC_CABLE_ATTACK:this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n);break;case J.GRAPPLE_CABLE:o=this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n),this.stream.readPos(r);break;case J.LIGHTNING:l=this.stream.readShort(),c=this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n);break;case J.FLASHLIGHT:this.stream.readPos(i),o=this.stream.readShort();break;case J.FORCEWALL:this.stream.readPos(i),this.stream.readPos(n),s=this.stream.readByte();break;case J.STEAM:let m=this.stream.readShort();a=this.stream.readByte(),this.stream.readPos(i),this.stream.readDir(r),s=this.stream.readByte(),this.stream.readShort(),m!==-1&&this.stream.readLong();break;case J.WIDOWBEAMOUT:this.stream.readShort();case J.HEATBEAM:case J.MONSTER_HEATBEAM:o=this.stream.readShort(),this.stream.readPos(i),this.stream.readPos(n),this.stream.readPos(r);break;default:break}this.handler&&this.handler.onTempEntity(t,i,n,r,a,s,o,l,c)}parseSpawnBaseline(){let t=this.parseEntityBits(),i=yr();this.parseDelta(yr(),i,t.number,t.bits,t.bitsHigh),this.handler&&this.handler.onSpawnBaseline(i)}parseFrame(){let t=this.stream.readLong(),i=this.stream.readLong(),n=0;this.protocolVersion!==26&&this.protocolVersion!==25&&(n=this.stream.readByte());let r=this.stream.readByte(),a=this.stream.readData(r),s=this.stream.readByte();if(s=this.translateCommand(s),s!==ce.playerinfo)throw new Error(`Expected svc_playerinfo after svc_frame, got ${s} (translated)`);let o=this.parsePlayerState(),l=this.stream.readByte();if(l=this.translateCommand(l),l!==ce.packetentities)throw new Error(`Expected svc_packetentities after svc_playerinfo, got ${l} (translated)`);let c=this.collectPacketEntities();if(this.isDemo===CM){let m=this.stream.readByte();for(let d=0;d<m;d++)this.stream.readByte()}this.isDemo===IM&&this.stream.readLong(),this.handler&&this.handler.onFrame({serverFrame:t,deltaFrame:i,surpressCount:n,areaBytes:r,areaBits:a,playerState:o,packetEntities:{delta:!0,entities:c}})}parsePlayerState(){let t=T1(),i=this.stream.readShort();i&1&&(t.pm_type=this.stream.readByte()),i&2&&(t.origin.x=this.stream.readShort()*.125,t.origin.y=this.stream.readShort()*.125,t.origin.z=this.stream.readShort()*.125),i&4&&(t.velocity.x=this.stream.readShort()*.125,t.velocity.y=this.stream.readShort()*.125,t.velocity.z=this.stream.readShort()*.125),i&8&&(t.pm_time=this.stream.readByte()),i&16&&(t.pm_flags=this.stream.readByte()),i&32&&(t.gravity=this.stream.readShort()),i&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)),i&128&&(t.viewoffset.x=this.stream.readChar()*.25,t.viewoffset.y=this.stream.readChar()*.25,t.viewoffset.z=this.stream.readChar()*.25),i&256&&(t.viewangles.x=this.stream.readAngle16(),t.viewangles.y=this.stream.readAngle16(),t.viewangles.z=this.stream.readAngle16()),i&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),i&4096&&(t.gun_index=this.stream.readByte()),i&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),i&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()),i&2048&&(t.fov=this.stream.readByte()),i&16384&&(t.rdflags=this.stream.readByte());let n=this.stream.readLong();for(let r=0;r<32;r++)n&1<<r&&(t.stats[r]=this.stream.readShort());return t}parsePacketEntities(t){let i=this.collectPacketEntities();this.handler&&this.handler.onFrame({serverFrame:0,deltaFrame:0,surpressCount:0,areaBytes:0,areaBits:new Uint8Array,playerState:T1(),packetEntities:{delta:t,entities:i}})}collectPacketEntities(){let t=[];for(;;){let i=this.parseEntityBits();if(i.bits&Cd){if(i.number===0)break;continue}let n=yr(),r=i.number===0&&!(i.bits&x1);if((i.number!==0||r)&&this.parseDelta(yr(),n,i.number,i.bits,i.bitsHigh),i.number===0)break;t.push(n)}return t}parseEntityBits(){let t=this.stream.readByte();t&x1&&(t|=this.stream.readByte()<<8),t&zM&&(t|=this.stream.readByte()<<16),t&LM&&(t|=this.stream.readByte()<<24);let i=0;this.protocolVersion===vr&&t&NM&&(i=this.stream.readByte());let n;return t&RM?n=this.stream.readShort():n=this.stream.readByte(),{number:n,bits:t,bitsHigh:i}}parseDelta(t,i,n,r,a=0){i.number=t.number,i.modelindex=t.modelindex,i.modelindex2=t.modelindex2,i.modelindex3=t.modelindex3,i.modelindex4=t.modelindex4,i.frame=t.frame,i.skinnum=t.skinnum,i.effects=t.effects,i.renderfx=t.renderfx,i.origin.x=t.origin.x,i.origin.y=t.origin.y,i.origin.z=t.origin.z,i.old_origin.x=t.origin.x,i.old_origin.y=t.origin.y,i.old_origin.z=t.origin.z,i.angles.x=t.angles.x,i.angles.y=t.angles.y,i.angles.z=t.angles.z,i.sound=t.sound,i.event=t.event,i.solid=t.solid,i.alpha=t.alpha,i.scale=t.scale,i.instanceBits=t.instanceBits,i.loopVolume=t.loopVolume,i.loopAttenuation=t.loopAttenuation,i.owner=t.owner,i.oldFrame=t.oldFrame,i.number=n,i.bits=r,i.bitsHigh=a,r&Dd&&(i.modelindex=this.stream.readByte()),r&Gd&&(i.modelindex2=this.stream.readByte()),r&Hd&&(i.modelindex3=this.stream.readByte()),r&Vd&&(i.modelindex4=this.stream.readByte()),r&Od&&(i.frame=this.stream.readByte()),r&Bd&&(i.frame=this.stream.readShort()),r&Uo&&r&Ho?i.skinnum=this.stream.readLong():r&Uo?i.skinnum=this.stream.readByte():r&Ho&&(i.skinnum=this.stream.readShort()),r&Do&&r&Go?i.effects=this.stream.readLong():r&Do?i.effects=this.stream.readByte():r&Go&&(i.effects=this.stream.readShort()),r&Fo&&r&Bo?i.renderfx=this.stream.readLong():r&Fo?i.renderfx=this.stream.readByte():r&Bo&&(i.renderfx=this.stream.readShort()),r&Rd&&(i.origin.x=this.stream.readCoord()),r&zd&&(i.origin.y=this.stream.readCoord()),r&Pd&&(i.origin.z=this.stream.readCoord()),r&Fd&&(i.angles.x=this.stream.readAngle()),r&Ld&&(i.angles.y=this.stream.readAngle()),r&Nd&&(i.angles.z=this.stream.readAngle()),r&Wd&&this.stream.readPos(i.old_origin),r&Kd&&(i.sound=this.stream.readByte()),r&Id?i.event=this.stream.readByte():i.event=0,r&$d&&(i.solid=this.stream.readShort()),this.protocolVersion===vr&&(r&Ud&&(i.alpha=this.stream.readByte()/255),r&Xd&&(i.scale=this.stream.readFloat()),r&Yd&&(i.instanceBits=this.stream.readLong()),r&Zd&&(i.loopVolume=this.stream.readByte()/255),a&qd&&(i.loopAttenuation=this.stream.readByte()/255),a&jd&&(i.owner=this.stream.readShort()),a&Jd&&(i.oldFrame=this.stream.readShort()))}};var PM=class{constructor(e){this.events=[],this.summary={totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map},this.header=null,this.configStrings=new Map,this.serverInfo={},this.statistics=null,this.playerStats=new Map,this.weaponStats=new Map,this.activeEntities=new Set,this.buffer=e}analyze(){let e=new D1(this.buffer),t=-1,i=0,n=.1,r=0,a={onServerData:(s,o,l,c,m,d,u,f)=>{r=s,this.header={protocolVersion:s,gameDir:c,levelName:d,playerNum:m,serverCount:o,spawnCount:o,tickRate:u,demoType:f},u&&u>0&&(n=1/u)},onConfigString:(s,o)=>{this.configStrings.set(s,o),s===0&&this.parseServerInfo(o)},onSpawnBaseline:s=>{},onFrame:s=>{let o=new Set;if(s.packetEntities&&s.packetEntities.entities)for(let l of s.packetEntities.entities)o.add(l.number),this.activeEntities.has(l.number)||this.recordEvent({type:5,frame:t,time:i,entityId:l.number,position:{x:l.origin.x,y:l.origin.y,z:l.origin.z},description:`Entity ${l.number} spawned`});this.activeEntities=o,s.playerState&&this.header},onPrint:(s,o)=>{(o.includes("died")||o.includes("killed")||o.includes("suicide"))&&(this.summary.totalDeaths++,this.recordEvent({type:4,frame:t,time:i,description:o.trim()})),o.startsWith("You got the ")&&this.recordEvent({type:3,frame:t,time:i,description:o.trim()})},onCenterPrint:()=>{},onStuffText:()=>{},onSound:()=>{},onTempEntity:()=>{},onLayout:()=>{},onInventory:()=>{},onMuzzleFlash:(s,o)=>{this.handleWeaponFire(s,o,t,i)},onMuzzleFlash2:(s,o)=>{this.handleWeaponFire(s,o,t,i)},onMuzzleFlash3:(s,o)=>{this.handleWeaponFire(s,o,t,i)},onDisconnect:()=>{},onReconnect:()=>{},onDownload:()=>{},onDamage:s=>{for(let o of s)if(this.recordEvent({type:2,frame:t,time:i,value:o.damage,position:o.dir,description:`Took ${o.damage} damage`}),this.summary.damageReceived+=o.damage,this.header){let l=this.getOrCreatePlayerStats(this.header.playerNum);l.damageReceived+=o.damage}}};for(;e.hasMore();){let s=e.readNextBlock();if(!s)break;t++,i=t*n;let o=new Zo(s.data,a);o.setProtocolVersion(r),o.parseMessage(),r=o.getProtocolVersion()}return this.statistics={duration:i,frameCount:t+1,averageFps:(t+1)/(i||1),mapName:this.header?.levelName||"unknown",playerCount:1},{events:this.events,summary:this.summary,header:this.header,configStrings:this.configStrings,serverInfo:this.serverInfo,statistics:this.statistics,playerStats:this.playerStats,weaponStats:this.weaponStats}}handleWeaponFire(e,t,i,n){this.recordEvent({type:0,frame:i,time:n,entityId:e,value:t,description:`Weapon ${t} fired by ${e}`});let r=this.summary.weaponUsage.get(t)||0;this.summary.weaponUsage.set(t,r+1);let a=this.getOrCreateWeaponStat(e,t);a.shotsFired++}recordEvent(e){this.events.push(e)}parseServerInfo(e){let t=e.split("\\");for(let i=1;i<t.length;i+=2)i+1<t.length&&(this.serverInfo[t[i]]=t[i+1])}getOrCreatePlayerStats(e){let t=this.playerStats.get(e);return t||(t={kills:0,deaths:0,damageDealt:0,damageReceived:0,suicides:0},this.playerStats.set(e,t)),t}getOrCreateWeaponStat(e,t){let i=this.weaponStats.get(e);i||(i=[],this.weaponStats.set(e,i));let n=i.find(r=>r.weaponId===t);return n||(n={weaponId:t,shotsFired:0,hits:0,kills:0},i.push(n)),n}};var Ha=(e=>(e[e.Stopped=0]="Stopped",e[e.Playing=1]="Playing",e[e.Paused=2]="Paused",e[e.Finished=3]="Finished",e))(Ha||{}),S_=class{constructor(){this.reader=null,this.buffer=null,this.state=0,this.playbackSpeed=1,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.lastFrameData=null,this.accumulatedTime=0,this.frameDuration=100,this.snapshotInterval=100,this.snapshots=new Map,this.cachedEvents=null,this.cachedSummary=null,this.cachedHeader=null,this.cachedConfigStrings=null,this.cachedServerInfo=null,this.cachedStatistics=null,this.cachedPlayerStats=null,this.cachedWeaponStats=null,this.cameraMode=0,this.thirdPersonDistance=80,this.thirdPersonOffset={x:0,y:0,z:0}}setHandler(e){this.handler=e}setCallbacks(e){this.callbacks=e}loadDemo(e){this.buffer=e,this.reader=new D1(e),this.transitionState(0),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.snapshots.clear(),this.lastFrameData=null,this.cachedEvents=null,this.cachedSummary=null,this.cachedHeader=null,this.cachedConfigStrings=null,this.cachedServerInfo=null,this.cachedStatistics=null,this.cachedPlayerStats=null,this.cachedWeaponStats=null}play(){this.reader&&this.state!==1&&this.transitionState(1)}pause(){this.state===1&&this.transitionState(2)}stop(){this.transitionState(0),this.reader&&this.reader.reset(),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.lastFrameData=null}transitionState(e){this.state!==e&&(this.state=e,this.callbacks?.onPlaybackStateChange&&this.callbacks.onPlaybackStateChange(e))}setFrameDuration(e){this.frameDuration=e}setSpeed(e){this.playbackSpeed=Math.max(.1,Math.min(e,16))}getSpeed(){return this.playbackSpeed}getPlaybackSpeed(){return this.playbackSpeed}getInterpolationFactor(){return this.frameDuration<=0?0:Math.max(0,Math.min(1,this.accumulatedTime/this.frameDuration))}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,this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}}stepForward(){this.reader&&(this.processNextFrame(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime()))}stepBackward(){this.reader&&this.currentFrameIndex>0&&this.seek(this.currentFrameIndex-1)}seekToTime(e){let t=Math.floor(e*1e3/this.frameDuration);this.seek(t)}seekToFrame(e){this.seek(e)}seek(e){if(!this.reader)return;let t=this.getTotalFrames();if(e<0&&(e=0),e>=t&&(e=t-1),e===this.currentFrameIndex+1){this.processNextFrame(),this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete();return}let i=-1,n=null;if(e>this.currentFrameIndex&&this.currentFrameIndex!==-1&&(i=this.currentFrameIndex),this.callbacks?.onRestoreSnapshot)for(let[r,a]of this.snapshots)r<=e&&r>i&&(i=r,n=a);for(i===-1&&this.currentFrameIndex>e?(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0):i===-1&&(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0),n&&this.callbacks?.onRestoreSnapshot&&(this.callbacks.onRestoreSnapshot(n),this.reader.seekToMessage(i+1)?this.currentFrameIndex=i:(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0));this.currentFrameIndex<e&&(this.callbacks?.onCaptureSnapshot&&(this.currentFrameIndex+1)%this.snapshotInterval,!!this.processNextFrame()););this.accumulatedTime=0,this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}processNextFrame(){if(!this.reader||!this.reader.hasMore())return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;let e=this.reader.readNextBlock();if(!e)return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;this.currentFrameIndex++;try{let t={...this.handler,onFrame:n=>{this.lastFrameData=n,this.handler?.onFrame&&this.handler.onFrame(n),this.callbacks?.onFrameUpdate&&this.callbacks.onFrameUpdate(n)}},i=new Zo(e.data,this.handler?t:void 0);if(i.setProtocolVersion(this.currentProtocolVersion),i.parseMessage(),this.currentProtocolVersion=i.getProtocolVersion(),this.callbacks?.onCaptureSnapshot&&this.currentFrameIndex%this.snapshotInterval===0&&this.currentFrameIndex>0){let n=this.callbacks.onCaptureSnapshot(this.currentFrameIndex);n&&this.snapshots.set(this.currentFrameIndex,n)}}catch(t){return console.error("Error processing demo frame",t),this.callbacks?.onPlaybackError&&this.callbacks.onPlaybackError(t instanceof Error?t:new Error(String(t))),!1}return!0}getState(){return this.state}getCurrentTime(){return this.currentFrameIndex<0?this.accumulatedTime:this.currentFrameIndex*this.frameDuration+this.accumulatedTime}getFrameCount(){return this.reader?this.reader.getMessageCount():0}getTotalFrames(){return this.getFrameCount()}getCurrentFrame(){return this.currentFrameIndex<0?0:this.currentFrameIndex}getDuration(){return this.getFrameCount()*this.frameDuration/1e3}getTotalBytes(){return this.reader?this.reader.getProgress().total:0}getProcessedBytes(){return this.reader?this.reader.getOffset():0}getFrameData(e){if(e===this.currentFrameIndex&&this.lastFrameData)return this.lastFrameData;let t=this.state;return this.pause(),this.seek(e),t===1&&this.play(),this.lastFrameData}getFramePlayerState(e){if(e===this.currentFrameIndex&&this.handler?.getPlayerState){let i=this.handler.getPlayerState();if(i)return i}let t=this.getFrameData(e);return t?t.playerState:null}getFrameEntities(e){if(e===this.currentFrameIndex&&this.handler?.getEntities){let t=this.handler.getEntities();if(t)return Array.from(t.values())}if(this.seek(e),this.handler?.getEntities){let t=this.handler.getEntities();return t?Array.from(t.values()):[]}return[]}compareFrames(e,t){let i=this.getFramePlayerState(e),n=this.getFrameEntities(e),r=new Map;n.forEach(c=>r.set(c.number,c));let a=this.getFramePlayerState(t),s=this.getFrameEntities(t),o=new Map;s.forEach(c=>o.set(c.number,c));let l={frameA:e,frameB:t,playerStateDiff:{origin:null,viewangles:null,health:null,ammo:null},entityDiffs:{added:[],removed:[],moved:[]}};i&&a&&((i.origin.x!==a.origin.x||i.origin.y!==a.origin.y||i.origin.z!==a.origin.z)&&(l.playerStateDiff.origin={x:a.origin.x-i.origin.x,y:a.origin.y-i.origin.y,z:a.origin.z-i.origin.z}),i.stats[1]!==a.stats[1]&&(l.playerStateDiff.health=a.stats[1]-i.stats[1]),i.stats[2]!==a.stats[2]&&(l.playerStateDiff.ammo=a.stats[2]-i.stats[2]));for(let[c,m]of o){let d=r.get(c);d?(d.origin.x!==m.origin.x||d.origin.y!==m.origin.y||d.origin.z!==m.origin.z)&&l.entityDiffs.moved.push({id:c,delta:{x:m.origin.x-d.origin.x,y:m.origin.y-d.origin.y,z:m.origin.z-d.origin.z}}):l.entityDiffs.added.push(c)}for(let[c,m]of r)o.has(c)||l.entityDiffs.removed.push(c);return l}getEntityTrajectory(e,t,i){let n=[],r=this.getCurrentFrame();for(this.seek(t);this.getCurrentFrame()<=i&&this.state!==3;){let a=null;if(e===-1){let s=this.getFramePlayerState(this.getCurrentFrame());s&&(a={...s.origin})}else if(this.handler?.getEntities){let s=this.handler.getEntities().get(e);s&&(a={...s.origin})}if(a&&n.push(a),this.getCurrentFrame()===i)break;this.stepForward()}return this.seek(r),n}getDemoEvents(){return this.ensureAnalysis(),this.cachedEvents||[]}filterEvents(e,t){return this.getDemoEvents().filter(n=>!(n.type!==e||t!==void 0&&n.entityId!==t))}getEventSummary(){return this.ensureAnalysis(),this.cachedSummary||{totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map}}getDemoHeader(){return this.ensureAnalysis(),this.cachedHeader}getDemoConfigStrings(){return this.ensureAnalysis(),this.cachedConfigStrings||new Map}getDemoServerInfo(){return this.ensureAnalysis(),this.cachedServerInfo||{}}getDemoStatistics(){return this.ensureAnalysis(),this.cachedStatistics}getPlayerStatistics(e){return this.ensureAnalysis(),this.cachedPlayerStats?.get(e)||null}getWeaponStatistics(e){return this.ensureAnalysis(),this.cachedWeaponStats?.get(e)||null}ensureAnalysis(){if(!this.cachedEvents&&this.buffer){let t=new PM(this.buffer).analyze();this.cachedEvents=t.events,this.cachedSummary=t.summary,this.cachedHeader=t.header,this.cachedConfigStrings=t.configStrings,this.cachedServerInfo=t.serverInfo,this.cachedStatistics=t.statistics,this.cachedPlayerStats=t.playerStats,this.cachedWeaponStats=t.weaponStats}}setCameraMode(e){this.cameraMode=e}getCameraMode(){return this.cameraMode}setThirdPersonDistance(e){this.thirdPersonDistance=e}setThirdPersonOffset(e){this.thirdPersonOffset=e}},k_=class{constructor(){this.isRecording=!1,this.startTime=0,this.frameCount=0,this.filename=null,this.lastMessageSize=-1,this.messageBuffer=new O1(1024*1024)}startRecording(e,t=0){this.isRecording||(this.isRecording=!0,this.filename=e,this.startTime=t,this.frameCount=0,this.messageBuffer.reset(),console.log(`DemoRecorder: Started recording to ${e}`))}recordMessage(e){if(this.isRecording){this.messageBuffer.writeLong(e.byteLength);for(let t=0;t<e.length;t++)this.messageBuffer.writeByte(e[t]);this.frameCount++}}stopRecording(){return this.isRecording?(this.isRecording=!1,this.messageBuffer.writeLong(-1),console.log(`DemoRecorder: Stopped recording. Frames: ${this.frameCount}, Size: ${this.messageBuffer.getOffset()} bytes`),this.messageBuffer.getData()):null}getIsRecording(){return this.isRecording}},A_=class{static validate(e,t){if(t&&!t.toLowerCase().endsWith(".dm2"))return{valid:!1,error:"Invalid file extension (expected .dm2)"};if(e.byteLength<5)return{valid:!1,error:"File too small to be a valid demo"};let i=new DataView(e),n=i.getInt32(0,!0);if(n<=0||n>e.byteLength-4)return{valid:!1,error:`Invalid first block length: ${n}`};let r=i.getUint8(4);if(r!==ce.serverdata)return{valid:!1,error:`First command is not svc_serverdata (expected ${ce.serverdata}, got ${r})`};let a=-1;return n>=5&&(a=i.getInt32(5,!0)),{valid:!0,version:a}}};var FM=Object.defineProperty,b_=(e,t)=>{for(var i in t)FM(e,i,{get:t[i],enumerable:!0})},yn={x:0,y:0,z:0};var _ie=Math.PI/180;function qo(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function E_(e,t){return{x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}}function Rr(e,t){return{x:e.x*t,y:e.y*t,z:e.z*t}}function Wa(e,t){return e.x*t.x+e.y*t.y+e.z*t.z}function DM(e){return Wa(e,e)}function Yn(e){return Math.sqrt(DM(e))}function x_(e){let t=Yn(e);return t===0?e:Rr(e,1/t)}var T_=0,M_=1,R_=2,UM=Math.PI/180,pie=180/Math.PI;function Qd(e,t){switch(t){case T_:return e.x;case M_:return e.y;case R_:default:return e.z}}function eu(e){return e*UM}function Mr(e){let t=e%360;return t<0?360+t:t}function $i(e){let t=eu(Qd(e,M_)),i=eu(Qd(e,T_)),n=eu(Qd(e,R_)),r=Math.sin(t),a=Math.cos(t),s=Math.sin(i),o=Math.cos(i),l=Math.sin(n),c=Math.cos(n),m={x:o*a,y:o*r,z:-s},d={x:-l*s*a-c*-r,y:-l*s*r-c*a,z:-l*o},u={x:c*s*a-l*-r,y:c*s*r-l*a,z:c*o};return{forward:m,right:d,up:u}}var Tr=[[-.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 Mi=1,wn=2;var nu=8,ru=16,BM=32;var GM=16384;var Jo=65536,z_=1<<17,HM=1<<18,VM=1<<19,WM=1<<20,KM=1<<21,$M=1<<22,XM=1<<23,vie=1<<24,Qo=1<<25,YM=1<<26,yie=1<<27,wie=1<<28,Sie=1<<29,ec=1<<30,kie=1<<31;var Aie=1<<25,bie=1<<28,Eie=1<<29,xie=1<<30,Tie=1<<31;var Mie=Mi|wn,Rie=Mi|Jo|wn|Qo|ec,zie=Mi|Jo|wn,Lie=Mi|z_|wn|Qo|ec,Nie=BM|nu|ru,Oie=Mi|ru|nu,ZM=Mi|Qo|ec|wn|YM,Iie=HM|VM|WM|KM|$M|XM,Cie=Mi|nu|ru|Qo|ec,Pie=Mi|Jo|wn,Fie=Mi|wn,Die=Mi|Jo|wn|z_,Uie=ZM|GM;var Bie=Number.MAX_SAFE_INTEGER-1;var Zn=(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))(Zn||{});var L_=256;var qM=256,Ka=8192,$a=2048,Xa=512,jM=256,JM=L_*2,QM=256,tu=32;var Ve=(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.Story=54]="Story",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+Ka]="Sounds",e[e.Images=e.Sounds+$a]="Images",e[e.Lights=e.Images+Xa]="Lights",e[e.ShadowLights=e.Lights+qM]="ShadowLights",e[e.Items=e.ShadowLights+QM]="Items",e[e.PlayerSkins=e.Items+jM]="PlayerSkins",e[e.General=e.PlayerSkins+L_]="General",e[e.WheelWeapons=e.General+JM]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+tu]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+tu]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+tu]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(Ve||{}),Gie=Ve.MaxConfigStrings;var e4={};b_(e4,{addReplayFrame:()=>r4,createReplaySession:()=>n4,deserializeReplay:()=>i4,serializeReplay:()=>t4});function t4(e){return JSON.stringify(e,null,2)}function i4(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 n4(e,t){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:t},frames:[]}}function r4(e,t,i,n){e.frames.push({serverFrame:i,cmd:t,timestamp:Date.now()-n})}var Ya=(e=>(e[e.None=0]="None",e[e.Feet=1]="Feet",e[e.Waist=2]="Waist",e[e.Under=3]="Under",e))(Ya||{});var Xi=(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))(Xi||{});function zr(e,t){return(e&t)!==0}var tc=(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))(tc||{}),Ri=(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.Attack2=32]="Attack2",e[e.Any=128]="Any",e))(Ri||{});function a4(e){let{velocity:t,frametime:i,onGround:n,groundIsSlick:r,onLadder:a,waterlevel:s,pmFriction:o,pmStopSpeed:l,pmWaterFriction:c}=e,m=Yn(t);if(m<1)return{x:0,y:0,z:t.z};let d=0;if(n&&!r||a){let h=m<l?l:m;d+=h*o*i}s>0&&!a&&(d+=m*c*s*i);let u=m-d;if(u<0&&(u=0),u===m)return t;let f=u/m;return Rr(t,f)}function s4(e){let{velocity:t,wishdir:i,wishspeed:n,accel:r,frametime:a}=e,s=Wa(t,i),o=n-s;if(o<=0)return t;let l=r*a*n;return l>o&&(l=o),{x:t.x+i.x*l,y:t.y+i.y*l,z:t.z+i.z*l}}function o4(e){let{forward:t,right:i,cmd:n,maxSpeed:r}=e,a={x:t.x*n.forwardmove+i.x*n.sidemove,y:t.y*n.forwardmove+i.y*n.sidemove,z:0},s=Yn(a);if(s>r){let o=r/s;a=Rr(a,o),s=r}return{wishdir:s===0?a:x_(a),wishspeed:s}}function c4(e){let{forward:t,right:i,cmd:n,maxSpeed:r}=e,a={x:t.x*n.forwardmove+i.x*n.sidemove,y:t.y*n.forwardmove+i.y*n.sidemove,z:t.z*n.forwardmove+i.z*n.sidemove};n.upmove>10?a=qo(a,{x:0,y:0,z:n.upmove}):n.upmove<-10?a=qo(a,{x:0,y:0,z:n.upmove}):Math.abs(n.forwardmove)<10&&Math.abs(n.sidemove)<10?a=qo(a,{x:0,y:0,z:-60}):a=qo(a,{x:0,y:0,z:10});let s=Yn(a);if(s>r){let o=r/s;a=Rr(a,o),s=r}return s*=.5,{wishdir:s===0?a:x_(a),wishspeed:s}}function l4(e,t){return{x:e.x+t.x,y:e.y+t.y,z:e.z+t.z}}function m4(e){return e>89&&e<180?89:e<271&&e>=180?271:e}function au(e){let{pmFlags:t,cmdAngles:i,deltaAngles:n}=e,r;(t&32)!==0?r={x:0,y:i.y+n.y,z:0}:(r=l4(i,n),r={...r,x:m4(r.x)});let a=$i(r);return{viewangles:r,...a}}var N_=200,O_=200,I_=200,C_=140,P_=150,F_=3;function d4(e){let t=Mr(e);return t>89&&t<180?89:t<271&&t>=180?271:t}function D_(e,t){return{x:d4(e.x+t.x),y:Mr(e.y+t.y),z:Mr(e.z+t.z)}}function U_(e,t){let i=t.sensitivityX??t.sensitivity,n=(t.sensitivityY??t.sensitivity)*(t.invertY?-1:1);return{x:e.deltaY*n,y:e.deltaX*i,z:0}}var qn=(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))(qn||{}),ii=(e=>(e[e.GUNSHOT=0]="GUNSHOT",e[e.BLOOD=1]="BLOOD",e[e.BLASTER=2]="BLASTER",e[e.RAILTRAIL=3]="RAILTRAIL",e[e.SHOTGUN=4]="SHOTGUN",e[e.EXPLOSION1=5]="EXPLOSION1",e[e.EXPLOSION2=6]="EXPLOSION2",e[e.ROCKET_EXPLOSION=7]="ROCKET_EXPLOSION",e[e.GRENADE_EXPLOSION=8]="GRENADE_EXPLOSION",e[e.SPARKS=9]="SPARKS",e[e.SPLASH=10]="SPLASH",e[e.BUBBLETRAIL=11]="BUBBLETRAIL",e[e.SCREEN_SPARKS=12]="SCREEN_SPARKS",e[e.SHIELD_SPARKS=13]="SHIELD_SPARKS",e[e.BULLET_SPARKS=14]="BULLET_SPARKS",e[e.LASER_SPARKS=15]="LASER_SPARKS",e[e.PARASITE_ATTACK=16]="PARASITE_ATTACK",e[e.ROCKET_EXPLOSION_WATER=17]="ROCKET_EXPLOSION_WATER",e[e.GRENADE_EXPLOSION_WATER=18]="GRENADE_EXPLOSION_WATER",e[e.MEDIC_CABLE_ATTACK=19]="MEDIC_CABLE_ATTACK",e[e.BFG_EXPLOSION=20]="BFG_EXPLOSION",e[e.BFG_BIGEXPLOSION=21]="BFG_BIGEXPLOSION",e[e.BOSSTPORT=22]="BOSSTPORT",e[e.BFG_LASER=23]="BFG_LASER",e[e.GRAPPLE_CABLE=24]="GRAPPLE_CABLE",e[e.WELDING_SPARKS=25]="WELDING_SPARKS",e[e.GREENBLOOD=26]="GREENBLOOD",e[e.BLUEHYPERBLASTER=27]="BLUEHYPERBLASTER",e[e.PLASMA_EXPLOSION=28]="PLASMA_EXPLOSION",e[e.TUNNEL_SPARKS=29]="TUNNEL_SPARKS",e[e.BLASTER2=30]="BLASTER2",e[e.RAILTRAIL2=31]="RAILTRAIL2",e[e.FLAME=32]="FLAME",e[e.LIGHTNING=33]="LIGHTNING",e[e.DEBUGTRAIL=34]="DEBUGTRAIL",e[e.PLAIN_EXPLOSION=35]="PLAIN_EXPLOSION",e[e.FLASHLIGHT=36]="FLASHLIGHT",e[e.FORCEWALL=37]="FORCEWALL",e[e.HEATBEAM=38]="HEATBEAM",e[e.MONSTER_HEATBEAM=39]="MONSTER_HEATBEAM",e[e.STEAM=40]="STEAM",e[e.BUBBLETRAIL2=41]="BUBBLETRAIL2",e[e.MOREBLOOD=42]="MOREBLOOD",e[e.HEATBEAM_SPARKS=43]="HEATBEAM_SPARKS",e[e.HEATBEAM_STEAM=44]="HEATBEAM_STEAM",e[e.CHAINFIST_SMOKE=45]="CHAINFIST_SMOKE",e[e.ELECTRIC_SPARKS=46]="ELECTRIC_SPARKS",e[e.TRACKER_EXPLOSION=47]="TRACKER_EXPLOSION",e[e.TELEPORT_EFFECT=48]="TELEPORT_EFFECT",e[e.DBALL_GOAL=49]="DBALL_GOAL",e[e.WIDOWBEAMOUT=50]="WIDOWBEAMOUT",e[e.NUKEBLAST=51]="NUKEBLAST",e[e.WIDOWSPLASH=52]="WIDOWSPLASH",e[e.EXPLOSION1_BIG=53]="EXPLOSION1_BIG",e[e.EXPLOSION1_NP=54]="EXPLOSION1_NP",e[e.FLECHETTE=55]="FLECHETTE",e[e.BLUEHYPERBLASTER_KEX=56]="BLUEHYPERBLASTER_KEX",e[e.BFG_ZAP=57]="BFG_ZAP",e[e.BERSERK_SLAM=58]="BERSERK_SLAM",e[e.GRAPPLE_CABLE_2=59]="GRAPPLE_CABLE_2",e[e.POWER_SPLASH=60]="POWER_SPLASH",e[e.LIGHTNING_BEAM=61]="LIGHTNING_BEAM",e[e.EXPLOSION1_NL=62]="EXPLOSION1_NL",e[e.EXPLOSION2_NL=63]="EXPLOSION2_NL",e))(ii||{});var B_=64;var Za=0,qa=1,ja=2,Ja=3,Qa=4,es=5,ts=6,is=7,ns=8;var rs=11,as=12,ss=13;var su=17;function u4(e,t,i){let n=Math.floor(i/2),r=i%2!==0,a=t+n,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 G_(e,t,i,n){let r=n*i,a=Math.floor(r/8),s=r%8,o=(1<<n)-1<<s;return(u4(e,t,a)&o)>>>s}var os=(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))(os||{}),lt=(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))(lt||{}),H_=12,V_=9,Hie=Math.ceil(H_*V_/16),W_=23,K_=2,Vie=Math.ceil(W_*K_/16),f4={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 $_(e,t){return t<0||t>=H_?0:G_(e,34,t,V_)}function ic(e,t){let i;return typeof t=="number"?i=t:i=f4[t],i===void 0||i<0||i>=W_?0:G_(e,41,i,K_)}function X_(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 Bt=(e=>(e[e.MinLight=1]="MinLight",e[e.ViewerModel=2]="ViewerModel",e[e.WeaponModel=4]="WeaponModel",e[e.FullBright=8]="FullBright",e[e.DepthHack=16]="DepthHack",e[e.Translucent=32]="Translucent",e[e.FrameLerp=64]="FrameLerp",e[e.Beam=128]="Beam",e[e.CustomLight=256]="CustomLight",e[e.Glow=512]="Glow",e[e.ShellRed=1024]="ShellRed",e[e.ShellGreen=2048]="ShellGreen",e[e.ShellBlue=4096]="ShellBlue",e[e.IrVisible=32768]="IrVisible",e[e.ShellDouble=65536]="ShellDouble",e[e.ShellHalfDam=131072]="ShellHalfDam",e[e.MinLightPlus=262144]="MinLightPlus",e[e.ExtraLight=524288]="ExtraLight",e[e.BeamLightning=1048576]="BeamLightning",e[e.Flashlight=2097152]="Flashlight",e))(Bt||{});var ni=(e=>(e[e.Rotate=4]="Rotate",e[e.Gib=8]="Gib",e[e.RotateScript=16]="RotateScript",e[e.Blaster=32]="Blaster",e[e.Rocket=64]="Rocket",e[e.Grenade=128]="Grenade",e[e.HyperBlaster=256]="HyperBlaster",e[e.Bfg=512]="Bfg",e[e.ColorShell=1024]="ColorShell",e[e.Powerscreen=2048]="Powerscreen",e[e.Anim01=4096]="Anim01",e[e.Anim23=8192]="Anim23",e[e.AnimAll=16384]="AnimAll",e[e.AnimAllFast=32768]="AnimAllFast",e[e.Quad=65536]="Quad",e[e.Pent=131072]="Pent",e[e.Explosion=262144]="Explosion",e[e.Teleport=524288]="Teleport",e[e.Flag1=1048576]="Flag1",e[e.Flag2=2097152]="Flag2",e[e.Boomerang=4194304]="Boomerang",e[e.Greengibs=8388608]="Greengibs",e[e.Bluehyperblaster=16777216]="Bluehyperblaster",e[e.Spinning=33554432]="Spinning",e[e.Plasma=67108864]="Plasma",e[e.Trap=134217728]="Trap",e[e.Tracker=268435456]="Tracker",e[e.Double=536870912]="Double",e[e.Sphinx=1073741824]="Sphinx",e[e.TagTrail=2147483648]="TagTrail",e))(ni||{});var h4={};b_(h4,{U_ANGLE1:()=>S4,U_ANGLE2:()=>k4,U_ANGLE3:()=>A4,U_EFFECTS:()=>x4,U_EVENT:()=>R4,U_FRAME:()=>b4,U_MODEL:()=>_4,U_MODEL2:()=>L4,U_MODEL3:()=>N4,U_MODEL4:()=>O4,U_MOREBITS:()=>z4,U_NUMBER:()=>g4,U_ORIGIN1:()=>v4,U_ORIGIN2:()=>y4,U_ORIGIN3:()=>w4,U_REMOVE:()=>I4,U_RENDERFX:()=>T4,U_SKIN:()=>E4,U_SOLID:()=>M4,U_SOUND:()=>p4});var g4=1,_4=2,p4=4,v4=8,y4=16,w4=32,S4=64,k4=128,A4=256,b4=512,E4=1024,x4=2048,T4=4096,M4=8192,R4=16384,z4=32768,L4=1,N4=2,O4=4,I4=32768,Va=.025,iu=33554432,jo={None:0,Feet:1,Waist:2,Under:3},C4=(e,t)=>{let i={...e.origin};i.z-=.25;let n=t(e.origin,i);return{...e,onGround:n.fraction<1}},P4=(e,t)=>{let i={...e.origin},{mins:n,maxs:r}=e;if(i.z=e.origin.z+n.z+1,!(t(i)&iu))return{...e,waterLevel:jo.None};let s=jo.Feet,o=e.origin.z+(n.z+r.z)*.5;if(i.z=o,t(i)&iu){s=jo.Waist;let c=e.origin.z+22;i.z=c,t(i)&iu&&(s=jo.Under)}return{...e,waterLevel:s}},ou=(e,t,i,n)=>{let r={...e};r=C4(r,i),r=P4(r,n);let{origin:a,velocity:s,onGround:o,waterLevel:l,viewAngles:c}=r,m=l>=2?c:{x:c.x>180?(c.x-360)/3:c.x/3,y:c.y,z:c.z},{forward:d,right:u}=$i(m),f=a4({velocity:s,frametime:Va,onGround:o,groundIsSlick:!1,onLadder:!1,waterlevel:l,pmFriction:6,pmStopSpeed:100,pmWaterFriction:1}),h=l>=2?c4({forward:d,right:u,cmd:t,maxSpeed:320}):o4({forward:d,right:u,cmd:t,maxSpeed:320}),v=s4({velocity:f,wishdir:h.wishdir,wishspeed:h.wishspeed,accel:o||l>=2?10:1,frametime:Va}),g=i(a,{x:a.x+v.x*Va,y:a.y+v.y*Va,z:a.z+v.z*Va});return{...r,origin:g.endpos,velocity:v}},Y_=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}getLength(){return this.length}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 i=Tr[t];e.x=i[0],e.y=i[1],e.z=i[2]}},cu=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),i=new Uint8Array(t);i.set(this.buffer),this.buffer=i,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 i=0;i<t;i++)this.view.setUint8(this.offset+i,e.charCodeAt(i));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,i=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let n=0;n<Tr.length;n++){let r=Tr[n],a=e.x*r[0]+e.y*r[1]+e.z*r[2];a>t&&(t=a,i=n)}this.writeByte(i)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}},cs=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),i=new Uint8Array(t);i.set(this.buffer),this.buffer=i,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 i=0;i<e.length;i++)this.view.setUint8(this.offset+i,e.charCodeAt(i));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,i){let n=0,r=-999999,a=Math.sqrt(e*e+t*t+i*i);if(a>0){e/=a,t/=a,i/=a;for(let s=0;s<162;s++){let o=e*Tr[s][0]+t*Tr[s][1]+i*Tr[s][2];o>r&&(r=o,n=s)}}this.writeByte(n)}},Xn=class pt{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.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new cu(pt.MAX_RELIABLE_BUFFER);let t=Date.now();this.lastReceived=t,this.lastSent=t,this.qport=Math.floor(Math.random()*65536)}setup(t,i=null){this.qport=t,this.remoteAddress=i,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.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(t){this.outgoingSequence++,this.lastSent=Date.now();let i=0,n=!1,r=0;this.reliableLength>0&&(this.reliableLength>pt.FRAGMENT_SIZE?(n=!0,this.fragmentSendOffset>=this.reliableLength&&(this.fragmentSendOffset=0),i=this.reliableLength-this.fragmentSendOffset,i>pt.FRAGMENT_SIZE&&(i=pt.FRAGMENT_SIZE),r=this.fragmentSendOffset,this.fragmentSendOffset+=i):i=this.reliableLength);let a=pt.PACKET_HEADER,s=i>0?2+(n?8:0):0,o=t?t.length:0;a+s+i+o>pt.MAX_MSGLEN&&(o=pt.MAX_MSGLEN-a-s-i,o<0&&(o=0));let l=new ArrayBuffer(a+s+i+o),c=new DataView(l),m=new Uint8Array(l),d=this.outgoingSequence;i>0&&(d|=2147483648,(this.outgoingReliableSequence&1)!==0&&(d|=1073741824)),c.setUint32(0,d,!0);let u=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(u|=2147483648),c.setUint32(4,u,!0),c.setUint16(8,this.qport,!0);let f=a;if(i>0){let h=i;n&&(h|=32768),c.setUint16(f,h,!0),f+=2,n&&(c.setUint32(f,r,!0),f+=4,c.setUint32(f,this.reliableLength,!0),f+=4);let g=this.reliableMessage.getBuffer().subarray(r,r+i);m.set(g,f),f+=i}if(t&&o>0){let h=t.slice(0,o);m.set(h,f)}return m}process(t){if(t.length<pt.PACKET_HEADER)return null;this.lastReceived=Date.now();let i=new DataView(t.buffer,t.byteOffset,t.byteLength),n=i.getUint32(0,!0),r=i.getUint32(4,!0),a=i.getUint16(8,!0);if(this.qport!==a)return null;let s=n&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 h=l?1:0,v=this.outgoingReliableSequence&1;h!==v&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1,this.fragmentSendOffset=0)}let c=(n&2147483648)!==0,m=(n&1073741824)!==0?1:0,d=pt.PACKET_HEADER,u=null;if(c){if(d+2>t.byteLength)return null;let h=i.getUint16(d,!0);d+=2;let v=(h&32768)!==0;h&=32767;let g=this.incomingReliableSequence&1;if(m===g)if(v){if(d+8>t.byteLength)return null;let y=i.getUint32(d,!0);d+=4;let k=i.getUint32(d,!0);if(d+=4,k>pt.MAX_RELIABLE_BUFFER)return console.warn(`NetChan: received invalid fragment total ${k} > ${pt.MAX_RELIABLE_BUFFER}`),null;if((!this.fragmentBuffer||this.fragmentBuffer.length!==k)&&(this.fragmentBuffer=new Uint8Array(k),this.fragmentLength=k,this.fragmentReceived=0),d+h>t.byteLength)return null;let b=t.subarray(d,d+h);y===this.fragmentReceived&&y+h<=k&&(this.fragmentBuffer.set(b,y),this.fragmentReceived+=h,this.fragmentReceived>=k&&(u=this.fragmentBuffer,this.incomingReliableSequence++,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0))}else{if(this.incomingReliableSequence++,d+h>t.byteLength)return null;u=t.slice(d,d+h)}d+=h}let f=t.slice(d);if(u&&u.length>0){let h=u.length+f.length,v=new Uint8Array(h);return v.set(u,0),v.set(f,u.length),v}return f||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(t){if(this.reliableLength+1>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(t),this.reliableLength++}writeReliableShort(t){if(this.reliableLength+2>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(t),this.reliableLength+=2}writeReliableLong(t){if(this.reliableLength+4>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(t),this.reliableLength+=4}writeReliableString(t){let i=t.length+1;if(this.reliableLength+i>pt.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(t),this.reliableLength+=i}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(t){return t-this.lastSent>1e3}isTimedOut(t,i=3e4){return t-this.lastReceived>i}};Xn.MAX_MSGLEN=1400;Xn.FRAGMENT_SIZE=1024;Xn.PACKET_HEADER=10;Xn.HEADER_OVERHEAD=Xn.PACKET_HEADER+2;Xn.MAX_RELIABLE_BUFFER=262144;var Z_=Xn;var q_=(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))(q_||{}),Wie=Object.keys(q_).length/2;var nc=["blaster","shotgun","supershotgun","machinegun","chaingun","grenadelauncher","rocketlauncher","grenades","hyperblaster","railgun","bfg10k"],j_={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 F4=Object.defineProperty,D4=(e,t)=>{for(var i in t)F4(e,i,{get:t[i],enumerable:!0})},ac=null,rc=[1,1,1,1],J_=["ch1","ch2","ch3"],lu=[null,null,null],U4=e=>{for(let t=0;t<J_.length;t++){let i=J_[t];try{lu[t]=e.Draw_RegisterPic(`pics/${i}.pcx`)}catch{if(t===0)try{lu[t]=e.Draw_RegisterPic("pics/crosshair.pcx")}catch{e.Com_Print(`Failed to load crosshair image
|
|
171
171
|
`)}}}ac=lu[0]},B4=(e,t,i)=>{if(ac){let n=e.Draw_GetPicSize(ac),r=(t-n.width)/2,a=(i-n.height)/2;e.SCR_DrawColorPic(r,a,ac,{x:rc[0],y:rc[1],z:rc[2]},rc[3])}},rp=new Map,G4=["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"],H4=e=>{for(let t of G4)try{let i=e.Draw_RegisterPic(`pics/${t}.pcx`);rp.set(t,i)}catch{e.Com_Print(`Failed to load HUD image: pics/${t}.pcx
|
|
172
172
|
`)}},V4=new Map,W4=["d_left","d_right","d_up","d_down"],K4=e=>{for(let t of W4)try{let i=e.Draw_RegisterPic(`pics/${t}.pcx`);V4.set(t,i)}catch{e.Com_Print(`Failed to load HUD image: pics/${t}.pcx
|
|
173
173
|
`)}},$4=(e,t,i,n)=>{(!t.damageAlpha||t.damageAlpha<=0)&&(!t.damageIndicators||t.damageIndicators.length)},Q_=3e3,ep=5e3,tp=4,X4=class{constructor(){this.centerPrintMsg=null,this.notifyMessages=[]}addCenterPrint(e,t){this.centerPrintMsg={text:e,startTime:t,duration:Q_}}addNotify(e,t){this.notifyMessages.push({text:e,startTime:t,duration:ep}),this.notifyMessages.length>tp&&this.notifyMessages.shift()}setCenterPrint(e,t){this.centerPrintMsg={text:e,startTime:t,duration:Q_}}addNotification(e,t,i){this.notifyMessages.push({text:e,startTime:i,duration:ep}),this.notifyMessages.length>tp&&this.notifyMessages.shift()}clearNotifications(){this.notifyMessages=[]}clearCenterPrint(){this.centerPrintMsg=null}drawCenterPrint(e,t,i){if(!this.centerPrintMsg)return;if(t>this.centerPrintMsg.startTime+this.centerPrintMsg.duration){this.centerPrintMsg=null;return}let n=i.CENTER_PRINT_Y;e.SCR_DrawCenterString(n,this.centerPrintMsg.text)}drawNotifications(e,t){for(;this.notifyMessages.length>0&&t>this.notifyMessages[0].startTime+this.notifyMessages[0].duration;)this.notifyMessages.shift();let i=10;for(let n of this.notifyMessages)e.SCR_DrawFontString(10,i,n.text),i+=e.SCR_FontLineHeight()}},Y4=3e3,Z4=class{constructor(){this.subtitle=null}addSubtitle(e,t){this.subtitle={text:e,startTime:t,duration:Y4}}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)}},q4=(e,t,i,n)=>{if(!t.blend)return;let[r,a,s,o]=t.blend},j4=(e,t,i,n)=>{if(!t.pickupIcon)return;let r=rp.get(t.pickupIcon);if(r){let a=e.Draw_GetPicSize(r),s=i-a.width-10,o=n-a.height-10;e.SCR_DrawPic(s,o,r)}},mu=(e,t,i,n,r,a,s)=>{let o=Math.abs(n).toString();for(let l=0;l<o.length;l++){let c=parseInt(o[l]),m=r[c];m&&(s?e.SCR_DrawColorPic(t+l*a,i,m,{x:s[0],y:s[1],z:s[2]},s[3]):e.SCR_DrawPic(t+l*a,i,m))}},J4=(e,t,i,n,r,a)=>{let s=t.stats[lt.STAT_HEALTH]||0,o=t.stats[lt.STAT_ARMOR]||0,l=t.stats[lt.STAT_AMMO]||0,c=t.stats[lt.STAT_ARMOR_ICON]||0,m;if(s<=25&&(m=[1,0,0,1]),i.length>0&&(mu(e,a.HEALTH_X,a.HEALTH_Y,s,i,n,m),mu(e,a.ARMOR_X,a.ARMOR_Y,o,i,n),mu(e,a.AMMO_X,a.AMMO_Y,l,i,n)),c>0){let d=e.get_configstring(Ve.Images+c);if(d){let u=e.Draw_RegisterPic(d);u&&e.SCR_DrawPic(a.ARMOR_X-24,a.ARMOR_Y-2,u)}}if(t.pickupIcon){let d=e.Draw_RegisterPic(t.pickupIcon);d&&e.SCR_DrawPic(a.WEAPON_ICON_X,a.WEAPON_ICON_Y,d)}else{let d=t.stats[lt.STAT_SELECTED_ICON]||0;if(d>0){let u=e.get_configstring(Ve.Images+d);if(u){let f=e.Draw_RegisterPic(u);f&&e.SCR_DrawPic(a.WEAPON_ICON_X,a.WEAPON_ICON_Y,f)}}}},du=640,Lr=480,Q4=(e,t)=>{let i=e/du,n=t/Lr,r=Math.min(i,n);return{HEALTH_X:100*r,HEALTH_Y:t-(Lr-450)*r,ARMOR_X:200*r,ARMOR_Y:t-(Lr-450)*r,AMMO_X:e-(du-540)*r,AMMO_Y:t-(Lr-450)*r,CENTER_PRINT_X:e/2,CENTER_PRINT_Y:100*r,WEAPON_ICON_X:10*r,WEAPON_ICON_Y:t-(Lr-450)*r,POWERUP_X:e-(du-610)*r,POWERUP_Y:t-(Lr-450)*r,scale:r}},et=null,_u=[],ap=0,pu=new X4,sp=new Z4;function eR(e){et=e}function tR(){if(et){_u.length=0;for(let e=0;e<10;e++)try{let t=et.Draw_RegisterPic(`pics/hud/num_${e}.pcx`);_u.push(t),e===0&&(ap=et.Draw_GetPicSize(t).width)}catch{et.Com_Print(`Warning: Failed to load HUD image: pics/hud/num_${e}.pcx
|