genosdb 0.27.0 → 0.28.0

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/README.md CHANGED
@@ -88,7 +88,7 @@ Browser + GenosDB
88
88
  - Performance optimization.
89
89
  - **Intelligent Hybrid Synchronization:**
90
90
  GenosDB overcomes the limitations of naive P2P sync with an intelligent, dual-mode engine. It automatically exchanges tiny, compressed Deltas between active peers using a sliding-window Oplog for blazing-fast, low-latency updates. For peers that are too far out of sync, it seamlessly switches to a robust Full-State Fallback, guaranteeing absolute data consistency for everyone, no matter how long they've been offline.
91
- - **Access Control Lists (ACLs):** Optional submodule for fine-grained, node-level permissions, allowing owners to grant/revoke specific permissions ('read', 'write', 'delete') to other users per node, complementing the existing RBAC system.
91
+ - **Access Control Lists (ACLs):** Optional submodule for fine-grained, node-level permissions, allowing owners to grant/revoke specific permissions ('read', 'write', 'delete') to other users per node, complementing the existing RBAC system. On encrypted (`db.sm.put`) records these are cryptographic: `grant` shares a per-record key envelope and `revoke` rotates the key, so revoked readers cannot decrypt anything written afterwards.
92
92
  - **Governance (Role Promotion & Demotion):** Optional engine that resolves each user's role from declarative rules (native GenosDB queries) using **last-match-wins** — a merit ladder where climbing overrides lower tiers and losing the condition auto-demotes. Every change is signed by a superadmin — from a browser session, or by the always-on Fallback Server. ([Governance](https://github.com/estebanrfp/gdb/blob/main/docs/governance.md))
93
93
  - **Fallback Server (GenosSRV):** Optional always-on superpeer shipped with the dist as a single zero-dependency file — durable memory, availability anchor for peers that reconnect, both transports (full mesh and Cellular Mesh), **24/7 governance**, and optionally the room's **signaling**, so discovery itself runs on your infrastructure. The entire stack in one deployable file: one command anywhere Bun runs, or a one-click deploy on any container platform. ([Fallback Server](https://github.com/estebanrfp/gdb/blob/main/docs/genosdb-fallback-server.md))
94
94
 
package/dist/gdb.min.js CHANGED
@@ -1,2 +1,2 @@
1
1
  var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
2
- function H8(J){let Q=J.length,W=0,V=0;while(V<Q){let q=J.charCodeAt(V++);if((q&4294967168)===0){W++;continue}else if((q&4294965248)===0)W+=2;else{if(q>=55296&&q<=56319){if(V<Q){let X=J.charCodeAt(V);if((X&64512)===56320)++V,q=((q&1023)<<10)+(X&1023)+65536}}if((q&4294901760)===0)W+=3;else W+=4}}return W}function aJ(J,Q,W){let V=J.length,q=W,X=0;while(X<V){let P=J.charCodeAt(X++);if((P&4294967168)===0){Q[q++]=P;continue}else if((P&4294965248)===0)Q[q++]=P>>6&31|192;else{if(P>=55296&&P<=56319){if(X<V){let G=J.charCodeAt(X);if((G&64512)===56320)++X,P=((P&1023)<<10)+(G&1023)+65536}}if((P&4294901760)===0)Q[q++]=P>>12&15|224,Q[q++]=P>>6&63|128;else Q[q++]=P>>18&7|240,Q[q++]=P>>12&63|128,Q[q++]=P>>6&63|128}Q[q++]=P&63|128}}var sJ=new TextEncoder,tJ=50;function eJ(J,Q,W){sJ.encodeInto(J,Q.subarray(W))}function $8(J,Q,W){if(J.length>tJ)eJ(J,Q,W);else aJ(J,Q,W)}var J5=4096;function T0(J,Q,W){let V=Q,q=V+W,X=[],P="";while(V<q){let G=J[V++];if((G&128)===0)X.push(G);else if((G&224)===192){let H=J[V++]&63;X.push((G&31)<<6|H)}else if((G&240)===224){let H=J[V++]&63,Y=J[V++]&63;X.push((G&31)<<12|H<<6|Y)}else if((G&248)===240){let H=J[V++]&63,Y=J[V++]&63,U=J[V++]&63,Z=(G&7)<<18|H<<12|Y<<6|U;if(Z>65535)Z-=65536,X.push(Z>>>10&1023|55296),Z=56320|Z&1023;X.push(Z)}else X.push(G);if(X.length>=J5)P+=String.fromCharCode(...X),X.length=0}if(X.length>0)P+=String.fromCharCode(...X);return P}var W5=new TextDecoder,Q5=200;function V5(J,Q,W){let V=J.subarray(Q,Q+W);return W5.decode(V)}function k8(J,Q,W){if(W>Q5)return V5(J,Q,W);else return T0(J,Q,W)}class T6{constructor(J,Q){this.type=J,this.data=Q}}class n extends Error{constructor(J){super(J);let Q=Object.create(n.prototype);Object.setPrototypeOf(this,Q),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:n.name})}}var v6=4294967295;function B8(J,Q,W){let V=W/4294967296,q=W;J.setUint32(Q,V),J.setUint32(Q+4,q)}function F0(J,Q,W){let V=Math.floor(W/4294967296),q=W;J.setUint32(Q,V),J.setUint32(Q+4,q)}function Z0(J,Q){let W=J.getInt32(Q),V=J.getUint32(Q+4);return W*4294967296+V}function j8(J,Q){let W=J.getUint32(Q),V=J.getUint32(Q+4);return W*4294967296+V}var q5=-1,X5=4294967295,G5=17179869183;function Y5({sec:J,nsec:Q}){if(J>=0&&Q>=0&&J<=G5)if(Q===0&&J<=X5){let W=new Uint8Array(4);return new DataView(W.buffer).setUint32(0,J),W}else{let W=J/4294967296,V=J&4294967295,q=new Uint8Array(8),X=new DataView(q.buffer);return X.setUint32(0,Q<<2|W&3),X.setUint32(4,V),q}else{let W=new Uint8Array(12),V=new DataView(W.buffer);return V.setUint32(0,Q),F0(V,4,J),W}}function P5(J){let Q=J.getTime(),W=Math.floor(Q/1000),V=(Q-W*1000)*1e6,q=Math.floor(V/1e9);return{sec:W+q,nsec:V-q*1e9}}function U5(J){if(J instanceof Date){let Q=P5(J);return Y5(Q)}else return null}function K5(J){let Q=new DataView(J.buffer,J.byteOffset,J.byteLength);switch(J.byteLength){case 4:{let W=Q.getUint32(0),V=0;return{sec:W,nsec:0}}case 8:{let W=Q.getUint32(0),V=Q.getUint32(4),q=(W&3)*4294967296+V,X=W>>>2;return{sec:q,nsec:X}}case 12:{let W=Z0(Q,4),V=Q.getUint32(0);return{sec:W,nsec:V}}default:throw new n(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${J.length}`)}}function F5(J){let Q=K5(J);return new Date(Q.sec*1000+Q.nsec/1e6)}var M8={type:q5,encode:U5,decode:F5};class j6{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(M8)}register({type:J,encode:Q,decode:W}){if(J>=0)this.encoders[J]=Q,this.decoders[J]=W;else{let V=-1-J;this.builtInEncoders[V]=Q,this.builtInDecoders[V]=W}}tryToEncode(J,Q){for(let W=0;W<this.builtInEncoders.length;W++){let V=this.builtInEncoders[W];if(V!=null){let q=V(J,Q);if(q!=null){let X=-1-W;return new T6(X,q)}}}for(let W=0;W<this.encoders.length;W++){let V=this.encoders[W];if(V!=null){let q=V(J,Q);if(q!=null)return new T6(W,q)}}if(J instanceof T6)return J;return null}decode(J,Q,W){let V=Q<0?this.builtInDecoders[-1-Q]:this.decoders[Q];if(V)return V(J,Q,W);else return new T6(Q,J)}}j6.defaultCodec=new j6;function Z5(J){return J instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&J instanceof SharedArrayBuffer}function _6(J){if(J instanceof Uint8Array)return J;else if(ArrayBuffer.isView(J))return new Uint8Array(J.buffer,J.byteOffset,J.byteLength);else if(Z5(J))return new Uint8Array(J);else return Uint8Array.from(J)}var z5=100,H5=2048;class z0{constructor(J){this.entered=!1,this.extensionCodec=J?.extensionCodec??j6.defaultCodec,this.context=J?.context,this.useBigInt64=J?.useBigInt64??!1,this.maxDepth=J?.maxDepth??z5,this.initialBufferSize=J?.initialBufferSize??H5,this.sortKeys=J?.sortKeys??!1,this.forceFloat32=J?.forceFloat32??!1,this.ignoreUndefined=J?.ignoreUndefined??!1,this.forceIntegerToFloat=J?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new z0({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(J){if(this.entered)return this.clone().encodeSharedRef(J);try{return this.entered=!0,this.reinitializeState(),this.doEncode(J,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(J){if(this.entered)return this.clone().encode(J);try{return this.entered=!0,this.reinitializeState(),this.doEncode(J,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(J,Q){if(Q>this.maxDepth)throw Error(`Too deep objects in depth ${Q}`);if(J==null)this.encodeNil();else if(typeof J==="boolean")this.encodeBoolean(J);else if(typeof J==="number")if(!this.forceIntegerToFloat)this.encodeNumber(J);else this.encodeNumberAsFloat(J);else if(typeof J==="string")this.encodeString(J);else if(this.useBigInt64&&typeof J==="bigint")this.encodeBigInt64(J);else this.encodeObject(J,Q)}ensureBufferSizeToWrite(J){let Q=this.pos+J;if(this.view.byteLength<Q)this.resizeBuffer(Q*2)}resizeBuffer(J){let Q=new ArrayBuffer(J),W=new Uint8Array(Q),V=new DataView(Q);W.set(this.bytes),this.view=V,this.bytes=W}encodeNil(){this.writeU8(192)}encodeBoolean(J){if(J===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(J){if(!this.forceIntegerToFloat&&Number.isSafeInteger(J))if(J>=0)if(J<128)this.writeU8(J);else if(J<256)this.writeU8(204),this.writeU8(J);else if(J<65536)this.writeU8(205),this.writeU16(J);else if(J<4294967296)this.writeU8(206),this.writeU32(J);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(J);else this.encodeNumberAsFloat(J);else if(J>=-32)this.writeU8(224|J+32);else if(J>=-128)this.writeU8(208),this.writeI8(J);else if(J>=-32768)this.writeU8(209),this.writeI16(J);else if(J>=-2147483648)this.writeU8(210),this.writeI32(J);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(J);else this.encodeNumberAsFloat(J);else this.encodeNumberAsFloat(J)}encodeNumberAsFloat(J){if(this.forceFloat32)this.writeU8(202),this.writeF32(J);else this.writeU8(203),this.writeF64(J)}encodeBigInt64(J){if(J>=BigInt(0))this.writeU8(207),this.writeBigUint64(J);else this.writeU8(211),this.writeBigInt64(J)}writeStringHeader(J){if(J<32)this.writeU8(160+J);else if(J<256)this.writeU8(217),this.writeU8(J);else if(J<65536)this.writeU8(218),this.writeU16(J);else if(J<4294967296)this.writeU8(219),this.writeU32(J);else throw Error(`Too long string: ${J} bytes in UTF-8`)}encodeString(J){let W=H8(J);this.ensureBufferSizeToWrite(5+W),this.writeStringHeader(W),$8(J,this.bytes,this.pos),this.pos+=W}encodeObject(J,Q){let W=this.extensionCodec.tryToEncode(J,this.context);if(W!=null)this.encodeExtension(W);else if(Array.isArray(J))this.encodeArray(J,Q);else if(ArrayBuffer.isView(J))this.encodeBinary(J);else if(typeof J==="object")this.encodeMap(J,Q);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(J)}`)}encodeBinary(J){let Q=J.byteLength;if(Q<256)this.writeU8(196),this.writeU8(Q);else if(Q<65536)this.writeU8(197),this.writeU16(Q);else if(Q<4294967296)this.writeU8(198),this.writeU32(Q);else throw Error(`Too large binary: ${Q}`);let W=_6(J);this.writeU8a(W)}encodeArray(J,Q){let W=J.length;if(W<16)this.writeU8(144+W);else if(W<65536)this.writeU8(220),this.writeU16(W);else if(W<4294967296)this.writeU8(221),this.writeU32(W);else throw Error(`Too large array: ${W}`);for(let V of J)this.doEncode(V,Q+1)}countWithoutUndefined(J,Q){let W=0;for(let V of Q)if(J[V]!==void 0)W++;return W}encodeMap(J,Q){let W=Object.keys(J);if(this.sortKeys)W.sort();let V=this.ignoreUndefined?this.countWithoutUndefined(J,W):W.length;if(V<16)this.writeU8(128+V);else if(V<65536)this.writeU8(222),this.writeU16(V);else if(V<4294967296)this.writeU8(223),this.writeU32(V);else throw Error(`Too large map object: ${V}`);for(let q of W){let X=J[q];if(!(this.ignoreUndefined&&X===void 0))this.encodeString(q),this.doEncode(X,Q+1)}}encodeExtension(J){if(typeof J.data==="function"){let W=J.data(this.pos+6),V=W.length;if(V>=4294967296)throw Error(`Too large extension object: ${V}`);this.writeU8(201),this.writeU32(V),this.writeI8(J.type),this.writeU8a(W);return}let Q=J.data.length;if(Q===1)this.writeU8(212);else if(Q===2)this.writeU8(213);else if(Q===4)this.writeU8(214);else if(Q===8)this.writeU8(215);else if(Q===16)this.writeU8(216);else if(Q<256)this.writeU8(199),this.writeU8(Q);else if(Q<65536)this.writeU8(200),this.writeU16(Q);else if(Q<4294967296)this.writeU8(201),this.writeU32(Q);else throw Error(`Too large extension object: ${Q}`);this.writeI8(J.type),this.writeU8a(J.data)}writeU8(J){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,J),this.pos++}writeU8a(J){let Q=J.length;this.ensureBufferSizeToWrite(Q),this.bytes.set(J,this.pos),this.pos+=Q}writeI8(J){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,J),this.pos++}writeU16(J){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,J),this.pos+=2}writeI16(J){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,J),this.pos+=2}writeU32(J){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,J),this.pos+=4}writeI32(J){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,J),this.pos+=4}writeF32(J){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,J),this.pos+=4}writeF64(J){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,J),this.pos+=8}writeU64(J){this.ensureBufferSizeToWrite(8),B8(this.view,this.pos,J),this.pos+=8}writeI64(J){this.ensureBufferSizeToWrite(8),F0(this.view,this.pos,J),this.pos+=8}writeBigUint64(J){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,J),this.pos+=8}writeBigInt64(J){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,J),this.pos+=8}}function H0(J,Q){return new z0(Q).encodeSharedRef(J)}function $0(J){return`${J<0?"-":""}0x${Math.abs(J).toString(16).padStart(2,"0")}`}var $5=16,k5=16;class v0{constructor(J=$5,Q=k5){this.hit=0,this.miss=0,this.maxKeyLength=J,this.maxLengthPerKey=Q,this.caches=[];for(let W=0;W<this.maxKeyLength;W++)this.caches.push([])}canBeCached(J){return J>0&&J<=this.maxKeyLength}find(J,Q,W){let V=this.caches[W-1];J:for(let q of V){let X=q.bytes;for(let P=0;P<W;P++)if(X[P]!==J[Q+P])continue J;return q.str}return null}store(J,Q){let W=this.caches[J.length-1],V={bytes:J,str:Q};if(W.length>=this.maxLengthPerKey)W[Math.random()*W.length|0]=V;else W.push(V)}decode(J,Q,W){let V=this.find(J,Q,W);if(V!=null)return this.hit++,V;this.miss++;let q=T0(J,Q,W),X=Uint8Array.prototype.slice.call(J,Q,Q+W);return this.store(X,q),q}}var g0="array",d6="map_key",L8="map_value",B5=(J)=>{if(typeof J==="string"||typeof J==="number")return J;throw new n("The type of key must be string or number but "+typeof J)};class R8{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(J){let Q=this.getUninitializedStateFromPool();Q.type=g0,Q.position=0,Q.size=J,Q.array=Array(J)}pushMapState(J){let Q=this.getUninitializedStateFromPool();Q.type=d6,Q.readCount=0,Q.size=J,Q.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let J={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(J)}return this.stack[this.stackHeadPosition]}release(J){if(this.stack[this.stackHeadPosition]!==J)throw Error("Invalid stack state. Released state is not on top of the stack.");if(J.type===g0){let W=J;W.size=0,W.array=void 0,W.position=0,W.type=void 0}if(J.type===d6||J.type===L8){let W=J;W.size=0,W.map=void 0,W.readCount=0,W.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var c6=-1,E0=new DataView(new ArrayBuffer(0)),j5=new Uint8Array(E0.buffer);try{E0.getInt8(0)}catch(J){if(!(J instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var C8=RangeError("Insufficient data"),M5=new v0;class k0{constructor(J){this.totalPos=0,this.pos=0,this.view=E0,this.bytes=j5,this.headByte=c6,this.stack=new R8,this.entered=!1,this.extensionCodec=J?.extensionCodec??j6.defaultCodec,this.context=J?.context,this.useBigInt64=J?.useBigInt64??!1,this.rawStrings=J?.rawStrings??!1,this.maxStrLength=J?.maxStrLength??v6,this.maxBinLength=J?.maxBinLength??v6,this.maxArrayLength=J?.maxArrayLength??v6,this.maxMapLength=J?.maxMapLength??v6,this.maxExtLength=J?.maxExtLength??v6,this.keyDecoder=J?.keyDecoder!==void 0?J.keyDecoder:M5,this.mapKeyConverter=J?.mapKeyConverter??B5}clone(){return new k0({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=c6,this.stack.reset()}setBuffer(J){let Q=_6(J);this.bytes=Q,this.view=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),this.pos=0}appendBuffer(J){if(this.headByte===c6&&!this.hasRemaining(1))this.setBuffer(J);else{let Q=this.bytes.subarray(this.pos),W=_6(J),V=new Uint8Array(Q.length+W.length);V.set(Q),V.set(W,Q.length),this.setBuffer(V)}}hasRemaining(J){return this.view.byteLength-this.pos>=J}createExtraByteError(J){let{view:Q,pos:W}=this;return RangeError(`Extra ${Q.byteLength-W} of ${Q.byteLength} byte(s) found at buffer[${J}]`)}decode(J){if(this.entered)return this.clone().decode(J);try{this.entered=!0,this.reinitializeState(),this.setBuffer(J);let Q=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return Q}finally{this.entered=!1}}*decodeMulti(J){if(this.entered){yield*this.clone().decodeMulti(J);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(J);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(J){if(this.entered)return this.clone().decodeAsync(J);try{this.entered=!0;let Q=!1,W;for await(let P of J){if(Q)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(P);try{W=this.doDecodeSync(),Q=!0}catch(G){if(!(G instanceof RangeError))throw G}this.totalPos+=this.pos}if(Q){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return W}let{headByte:V,pos:q,totalPos:X}=this;throw RangeError(`Insufficient data in parsing ${$0(V)} at ${X} (${q} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(J){return this.decodeMultiAsync(J,!0)}decodeStream(J){return this.decodeMultiAsync(J,!1)}async*decodeMultiAsync(J,Q){if(this.entered){yield*this.clone().decodeMultiAsync(J,Q);return}try{this.entered=!0;let W=Q,V=-1;for await(let q of J){if(Q&&V===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(q),W)V=this.readArraySize(),W=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--V===0)break}catch(X){if(!(X instanceof RangeError))throw X}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){J:while(!0){let J=this.readHeadByte(),Q;if(J>=224)Q=J-256;else if(J<192)if(J<128)Q=J;else if(J<144){let V=J-128;if(V!==0){this.pushMapState(V),this.complete();continue J}else Q={}}else if(J<160){let V=J-144;if(V!==0){this.pushArrayState(V),this.complete();continue J}else Q=[]}else{let V=J-160;Q=this.decodeString(V,0)}else if(J===192)Q=null;else if(J===194)Q=!1;else if(J===195)Q=!0;else if(J===202)Q=this.readF32();else if(J===203)Q=this.readF64();else if(J===204)Q=this.readU8();else if(J===205)Q=this.readU16();else if(J===206)Q=this.readU32();else if(J===207)if(this.useBigInt64)Q=this.readU64AsBigInt();else Q=this.readU64();else if(J===208)Q=this.readI8();else if(J===209)Q=this.readI16();else if(J===210)Q=this.readI32();else if(J===211)if(this.useBigInt64)Q=this.readI64AsBigInt();else Q=this.readI64();else if(J===217){let V=this.lookU8();Q=this.decodeString(V,1)}else if(J===218){let V=this.lookU16();Q=this.decodeString(V,2)}else if(J===219){let V=this.lookU32();Q=this.decodeString(V,4)}else if(J===220){let V=this.readU16();if(V!==0){this.pushArrayState(V),this.complete();continue J}else Q=[]}else if(J===221){let V=this.readU32();if(V!==0){this.pushArrayState(V),this.complete();continue J}else Q=[]}else if(J===222){let V=this.readU16();if(V!==0){this.pushMapState(V),this.complete();continue J}else Q={}}else if(J===223){let V=this.readU32();if(V!==0){this.pushMapState(V),this.complete();continue J}else Q={}}else if(J===196){let V=this.lookU8();Q=this.decodeBinary(V,1)}else if(J===197){let V=this.lookU16();Q=this.decodeBinary(V,2)}else if(J===198){let V=this.lookU32();Q=this.decodeBinary(V,4)}else if(J===212)Q=this.decodeExtension(1,0);else if(J===213)Q=this.decodeExtension(2,0);else if(J===214)Q=this.decodeExtension(4,0);else if(J===215)Q=this.decodeExtension(8,0);else if(J===216)Q=this.decodeExtension(16,0);else if(J===199){let V=this.lookU8();Q=this.decodeExtension(V,1)}else if(J===200){let V=this.lookU16();Q=this.decodeExtension(V,2)}else if(J===201){let V=this.lookU32();Q=this.decodeExtension(V,4)}else throw new n(`Unrecognized type byte: ${$0(J)}`);this.complete();let W=this.stack;while(W.length>0){let V=W.top();if(V.type===g0)if(V.array[V.position]=Q,V.position++,V.position===V.size)Q=V.array,W.release(V);else continue J;else if(V.type===d6){if(Q==="__proto__")throw new n("The key __proto__ is not allowed");V.key=this.mapKeyConverter(Q),V.type=L8;continue J}else if(V.map[V.key]=Q,V.readCount++,V.readCount===V.size)Q=V.map,W.release(V);else{V.key=null,V.type=d6;continue J}}return Q}}readHeadByte(){if(this.headByte===c6)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=c6}readArraySize(){let J=this.readHeadByte();switch(J){case 220:return this.readU16();case 221:return this.readU32();default:if(J<160)return J-144;else throw new n(`Unrecognized array type byte: ${$0(J)}`)}}pushMapState(J){if(J>this.maxMapLength)throw new n(`Max length exceeded: map length (${J}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(J)}pushArrayState(J){if(J>this.maxArrayLength)throw new n(`Max length exceeded: array length (${J}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(J)}decodeString(J,Q){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(J,Q);return this.decodeBinary(J,Q)}decodeUtf8String(J,Q){if(J>this.maxStrLength)throw new n(`Max length exceeded: UTF-8 byte length (${J}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+Q+J)throw C8;let W=this.pos+Q,V;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(J))V=this.keyDecoder.decode(this.bytes,W,J);else V=k8(this.bytes,W,J);return this.pos+=Q+J,V}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===d6;return!1}decodeBinary(J,Q){if(J>this.maxBinLength)throw new n(`Max length exceeded: bin length (${J}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(J+Q))throw C8;let W=this.pos+Q,V=this.bytes.subarray(W,W+J);return this.pos+=Q+J,V}decodeExtension(J,Q){if(J>this.maxExtLength)throw new n(`Max length exceeded: ext length (${J}) > maxExtLength (${this.maxExtLength})`);let W=this.view.getInt8(this.pos+Q),V=this.decodeBinary(J,Q+1);return this.extensionCodec.decode(V,W,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let J=this.view.getUint8(this.pos);return this.pos++,J}readI8(){let J=this.view.getInt8(this.pos);return this.pos++,J}readU16(){let J=this.view.getUint16(this.pos);return this.pos+=2,J}readI16(){let J=this.view.getInt16(this.pos);return this.pos+=2,J}readU32(){let J=this.view.getUint32(this.pos);return this.pos+=4,J}readI32(){let J=this.view.getInt32(this.pos);return this.pos+=4,J}readU64(){let J=j8(this.view,this.pos);return this.pos+=8,J}readI64(){let J=Z0(this.view,this.pos);return this.pos+=8,J}readU64AsBigInt(){let J=this.view.getBigUint64(this.pos);return this.pos+=8,J}readI64AsBigInt(){let J=this.view.getBigInt64(this.pos);return this.pos+=8,J}readF32(){let J=this.view.getFloat32(this.pos);return this.pos+=4,J}readF64(){let J=this.view.getFloat64(this.pos);return this.pos+=8,J}}function M6(J,Q){return new k0(Q).decode(J)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function h6(J){let Q=J.length;while(--Q>=0)J[Q]=0}var C5=0,YJ=1,L5=2,R5=3,O5=258,q8=29,X0=256,s6=X0+1+q8,y6=30,X8=19,PJ=2*s6+1,C6=15,y0=16,x5=7,G8=256,UJ=16,KJ=17,FJ=18,o0=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]),R0=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]),D5=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ZJ=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I5=512,K6=Array((s6+2)*2);h6(K6);var r6=Array(y6*2);h6(r6);var t6=Array(I5);h6(t6);var e6=Array(O5-R5+1);h6(e6);var Y8=Array(q8);h6(Y8);var O0=Array(y6);h6(O0);function f0(J,Q,W,V,q){this.static_tree=J,this.extra_bits=Q,this.extra_base=W,this.elems=V,this.max_length=q,this.has_stree=J&&J.length}var zJ,HJ,$J;function b0(J,Q){this.dyn_tree=J,this.max_code=0,this.stat_desc=Q}var kJ=(J)=>{return J<256?t6[J]:t6[256+(J>>>7)]},J0=(J,Q)=>{J.pending_buf[J.pending++]=Q&255,J.pending_buf[J.pending++]=Q>>>8&255},a=(J,Q,W)=>{if(J.bi_valid>y0-W)J.bi_buf|=Q<<J.bi_valid&65535,J0(J,J.bi_buf),J.bi_buf=Q>>y0-J.bi_valid,J.bi_valid+=W-y0;else J.bi_buf|=Q<<J.bi_valid&65535,J.bi_valid+=W},q6=(J,Q,W)=>{a(J,W[Q*2],W[Q*2+1])},BJ=(J,Q)=>{let W=0;do W|=J&1,J>>>=1,W<<=1;while(--Q>0);return W>>>1},w5=(J)=>{if(J.bi_valid===16)J0(J,J.bi_buf),J.bi_buf=0,J.bi_valid=0;else if(J.bi_valid>=8)J.pending_buf[J.pending++]=J.bi_buf&255,J.bi_buf>>=8,J.bi_valid-=8},A5=(J,Q)=>{let{dyn_tree:W,max_code:V}=Q,q=Q.stat_desc.static_tree,X=Q.stat_desc.has_stree,P=Q.stat_desc.extra_bits,G=Q.stat_desc.extra_base,H=Q.stat_desc.max_length,Y,U,Z,F,K,$,I=0;for(F=0;F<=C6;F++)J.bl_count[F]=0;W[J.heap[J.heap_max]*2+1]=0;for(Y=J.heap_max+1;Y<PJ;Y++){if(U=J.heap[Y],F=W[W[U*2+1]*2+1]+1,F>H)F=H,I++;if(W[U*2+1]=F,U>V)continue;if(J.bl_count[F]++,K=0,U>=G)K=P[U-G];if($=W[U*2],J.opt_len+=$*(F+K),X)J.static_len+=$*(q[U*2+1]+K)}if(I===0)return;do{F=H-1;while(J.bl_count[F]===0)F--;J.bl_count[F]--,J.bl_count[F+1]+=2,J.bl_count[H]--,I-=2}while(I>0);for(F=H;F!==0;F--){U=J.bl_count[F];while(U!==0){if(Z=J.heap[--Y],Z>V)continue;if(W[Z*2+1]!==F)J.opt_len+=(F-W[Z*2+1])*W[Z*2],W[Z*2+1]=F;U--}}},jJ=(J,Q,W)=>{let V=Array(C6+1),q=0,X,P;for(X=1;X<=C6;X++)q=q+W[X-1]<<1,V[X]=q;for(P=0;P<=Q;P++){let G=J[P*2+1];if(G===0)continue;J[P*2]=BJ(V[G]++,G)}},N5=()=>{let J,Q,W,V,q,X=Array(C6+1);W=0;for(V=0;V<q8-1;V++){Y8[V]=W;for(J=0;J<1<<o0[V];J++)e6[W++]=V}e6[W-1]=V,q=0;for(V=0;V<16;V++){O0[V]=q;for(J=0;J<1<<R0[V];J++)t6[q++]=V}q>>=7;for(;V<y6;V++){O0[V]=q<<7;for(J=0;J<1<<R0[V]-7;J++)t6[256+q++]=V}for(Q=0;Q<=C6;Q++)X[Q]=0;J=0;while(J<=143)K6[J*2+1]=8,J++,X[8]++;while(J<=255)K6[J*2+1]=9,J++,X[9]++;while(J<=279)K6[J*2+1]=7,J++,X[7]++;while(J<=287)K6[J*2+1]=8,J++,X[8]++;jJ(K6,s6+1,X);for(J=0;J<y6;J++)r6[J*2+1]=5,r6[J*2]=BJ(J,5);zJ=new f0(K6,o0,X0+1,s6,C6),HJ=new f0(r6,R0,0,y6,C6),$J=new f0([],D5,0,X8,x5)},MJ=(J)=>{let Q;for(Q=0;Q<s6;Q++)J.dyn_ltree[Q*2]=0;for(Q=0;Q<y6;Q++)J.dyn_dtree[Q*2]=0;for(Q=0;Q<X8;Q++)J.bl_tree[Q*2]=0;J.dyn_ltree[G8*2]=1,J.opt_len=J.static_len=0,J.sym_next=J.matches=0},CJ=(J)=>{if(J.bi_valid>8)J0(J,J.bi_buf);else if(J.bi_valid>0)J.pending_buf[J.pending++]=J.bi_buf;J.bi_buf=0,J.bi_valid=0},O8=(J,Q,W,V)=>{let q=Q*2,X=W*2;return J[q]<J[X]||J[q]===J[X]&&V[Q]<=V[W]},h0=(J,Q,W)=>{let V=J.heap[W],q=W<<1;while(q<=J.heap_len){if(q<J.heap_len&&O8(Q,J.heap[q+1],J.heap[q],J.depth))q++;if(O8(Q,V,J.heap[q],J.depth))break;J.heap[W]=J.heap[q],W=q,q<<=1}J.heap[W]=V},x8=(J,Q,W)=>{let V,q,X=0,P,G;if(J.sym_next!==0)do if(V=J.pending_buf[J.sym_buf+X++]&255,V+=(J.pending_buf[J.sym_buf+X++]&255)<<8,q=J.pending_buf[J.sym_buf+X++],V===0)q6(J,q,Q);else{if(P=e6[q],q6(J,P+X0+1,Q),G=o0[P],G!==0)q-=Y8[P],a(J,q,G);if(V--,P=kJ(V),q6(J,P,W),G=R0[P],G!==0)V-=O0[P],a(J,V,G)}while(X<J.sym_next);q6(J,G8,Q)},a0=(J,Q)=>{let W=Q.dyn_tree,V=Q.stat_desc.static_tree,q=Q.stat_desc.has_stree,X=Q.stat_desc.elems,P,G,H=-1,Y;J.heap_len=0,J.heap_max=PJ;for(P=0;P<X;P++)if(W[P*2]!==0)J.heap[++J.heap_len]=H=P,J.depth[P]=0;else W[P*2+1]=0;while(J.heap_len<2)if(Y=J.heap[++J.heap_len]=H<2?++H:0,W[Y*2]=1,J.depth[Y]=0,J.opt_len--,q)J.static_len-=V[Y*2+1];Q.max_code=H;for(P=J.heap_len>>1;P>=1;P--)h0(J,W,P);Y=X;do P=J.heap[1],J.heap[1]=J.heap[J.heap_len--],h0(J,W,1),G=J.heap[1],J.heap[--J.heap_max]=P,J.heap[--J.heap_max]=G,W[Y*2]=W[P*2]+W[G*2],J.depth[Y]=(J.depth[P]>=J.depth[G]?J.depth[P]:J.depth[G])+1,W[P*2+1]=W[G*2+1]=Y,J.heap[1]=Y++,h0(J,W,1);while(J.heap_len>=2);J.heap[--J.heap_max]=J.heap[1],A5(J,Q),jJ(W,H,J.bl_count)},D8=(J,Q,W)=>{let V,q=-1,X,P=Q[1],G=0,H=7,Y=4;if(P===0)H=138,Y=3;Q[(W+1)*2+1]=65535;for(V=0;V<=W;V++){if(X=P,P=Q[(V+1)*2+1],++G<H&&X===P)continue;else if(G<Y)J.bl_tree[X*2]+=G;else if(X!==0){if(X!==q)J.bl_tree[X*2]++;J.bl_tree[UJ*2]++}else if(G<=10)J.bl_tree[KJ*2]++;else J.bl_tree[FJ*2]++;if(G=0,q=X,P===0)H=138,Y=3;else if(X===P)H=6,Y=3;else H=7,Y=4}},I8=(J,Q,W)=>{let V,q=-1,X,P=Q[1],G=0,H=7,Y=4;if(P===0)H=138,Y=3;for(V=0;V<=W;V++){if(X=P,P=Q[(V+1)*2+1],++G<H&&X===P)continue;else if(G<Y)do q6(J,X,J.bl_tree);while(--G!==0);else if(X!==0){if(X!==q)q6(J,X,J.bl_tree),G--;q6(J,UJ,J.bl_tree),a(J,G-3,2)}else if(G<=10)q6(J,KJ,J.bl_tree),a(J,G-3,3);else q6(J,FJ,J.bl_tree),a(J,G-11,7);if(G=0,q=X,P===0)H=138,Y=3;else if(X===P)H=6,Y=3;else H=7,Y=4}},S5=(J)=>{let Q;D8(J,J.dyn_ltree,J.l_desc.max_code),D8(J,J.dyn_dtree,J.d_desc.max_code),a0(J,J.bl_desc);for(Q=X8-1;Q>=3;Q--)if(J.bl_tree[ZJ[Q]*2+1]!==0)break;return J.opt_len+=3*(Q+1)+5+5+4,Q},T5=(J,Q,W,V)=>{let q;a(J,Q-257,5),a(J,W-1,5),a(J,V-4,4);for(q=0;q<V;q++)a(J,J.bl_tree[ZJ[q]*2+1],3);I8(J,J.dyn_ltree,Q-1),I8(J,J.dyn_dtree,W-1)},v5=(J)=>{let Q=4093624447,W;for(W=0;W<=31;W++,Q>>>=1)if(Q&1&&J.dyn_ltree[W*2]!==0)return 0;if(J.dyn_ltree[18]!==0||J.dyn_ltree[20]!==0||J.dyn_ltree[26]!==0)return 1;for(W=32;W<X0;W++)if(J.dyn_ltree[W*2]!==0)return 1;return 0},w8=!1,g5=(J)=>{if(!w8)N5(),w8=!0;J.l_desc=new b0(J.dyn_ltree,zJ),J.d_desc=new b0(J.dyn_dtree,HJ),J.bl_desc=new b0(J.bl_tree,$J),J.bi_buf=0,J.bi_valid=0,MJ(J)},LJ=(J,Q,W,V)=>{if(a(J,(C5<<1)+(V?1:0),3),CJ(J),J0(J,W),J0(J,~W),W)J.pending_buf.set(J.window.subarray(Q,Q+W),J.pending);J.pending+=W},E5=(J)=>{a(J,YJ<<1,3),q6(J,G8,K6),w5(J)},y5=(J,Q,W,V)=>{let q,X,P=0;if(J.level>0){if(J.strm.data_type===2)J.strm.data_type=v5(J);if(a0(J,J.l_desc),a0(J,J.d_desc),P=S5(J),q=J.opt_len+3+7>>>3,X=J.static_len+3+7>>>3,X<=q)q=X}else q=X=W+5;if(W+4<=q&&Q!==-1)LJ(J,Q,W,V);else if(J.strategy===4||X===q)a(J,(YJ<<1)+(V?1:0),3),x8(J,K6,r6);else a(J,(L5<<1)+(V?1:0),3),T5(J,J.l_desc.max_code+1,J.d_desc.max_code+1,P+1),x8(J,J.dyn_ltree,J.dyn_dtree);if(MJ(J),V)CJ(J)},f5=(J,Q,W)=>{if(J.pending_buf[J.sym_buf+J.sym_next++]=Q,J.pending_buf[J.sym_buf+J.sym_next++]=Q>>8,J.pending_buf[J.sym_buf+J.sym_next++]=W,Q===0)J.dyn_ltree[W*2]++;else J.matches++,Q--,J.dyn_ltree[(e6[W]+X0+1)*2]++,J.dyn_dtree[kJ(Q)*2]++;return J.sym_next===J.sym_end},b5=g5,h5=LJ,p5=y5,u5=f5,m5=E5,_5={_tr_init:b5,_tr_stored_block:h5,_tr_flush_block:p5,_tr_tally:u5,_tr_align:m5},c5=(J,Q,W,V)=>{let q=J&65535|0,X=J>>>16&65535|0,P=0;while(W!==0){P=W>2000?2000:W,W-=P;do q=q+Q[V++]|0,X=X+q|0;while(--P);q%=65521,X%=65521}return q|X<<16|0},W0=c5,d5=()=>{let J,Q=[];for(var W=0;W<256;W++){J=W;for(var V=0;V<8;V++)J=J&1?3988292384^J>>>1:J>>>1;Q[W]=J}return Q},l5=new Uint32Array(d5()),i5=(J,Q,W,V)=>{let q=l5,X=V+W;J^=-1;for(let P=V;P<X;P++)J=J>>>8^q[(J^Q[P])&255];return J^-1},l=i5,O6={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"},I6={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:n5,_tr_stored_block:s0,_tr_flush_block:r5,_tr_tally:H6,_tr_align:o5}=_5,{Z_NO_FLUSH:$6,Z_PARTIAL_FLUSH:a5,Z_FULL_FLUSH:s5,Z_FINISH:e,Z_BLOCK:A8,Z_OK:i,Z_STREAM_END:N8,Z_STREAM_ERROR:X6,Z_DATA_ERROR:t5,Z_BUF_ERROR:p0,Z_DEFAULT_COMPRESSION:e5,Z_FILTERED:J1,Z_HUFFMAN_ONLY:B0,Z_RLE:W1,Z_FIXED:Q1,Z_DEFAULT_STRATEGY:V1,Z_UNKNOWN:q1,Z_DEFLATED:I0}=I6,X1=9,G1=15,Y1=8,P1=29,U1=256,t0=U1+1+P1,K1=30,F1=19,Z1=2*t0+1,z1=15,v=3,z6=258,G6=z6+v+1,H1=32,f6=42,P8=57,e0=69,J8=73,W8=91,Q8=103,L6=113,i6=666,r=1,p6=2,x6=3,u6=4,$1=3,R6=(J,Q)=>{return J.msg=O6[Q],Q},S8=(J)=>{return J*2-(J>4?9:0)},Z6=(J)=>{let Q=J.length;while(--Q>=0)J[Q]=0},k1=(J)=>{let Q,W,V,q=J.w_size;Q=J.hash_size,V=Q;do W=J.head[--V],J.head[V]=W>=q?W-q:0;while(--Q);Q=q,V=Q;do W=J.prev[--V],J.prev[V]=W>=q?W-q:0;while(--Q)},B1=(J,Q,W)=>(Q<<J.hash_shift^W)&J.hash_mask,k6=B1,s=(J)=>{let Q=J.state,W=Q.pending;if(W>J.avail_out)W=J.avail_out;if(W===0)return;if(J.output.set(Q.pending_buf.subarray(Q.pending_out,Q.pending_out+W),J.next_out),J.next_out+=W,Q.pending_out+=W,J.total_out+=W,J.avail_out-=W,Q.pending-=W,Q.pending===0)Q.pending_out=0},t=(J,Q)=>{r5(J,J.block_start>=0?J.block_start:-1,J.strstart-J.block_start,Q),J.block_start=J.strstart,s(J.strm)},b=(J,Q)=>{J.pending_buf[J.pending++]=Q},l6=(J,Q)=>{J.pending_buf[J.pending++]=Q>>>8&255,J.pending_buf[J.pending++]=Q&255},V8=(J,Q,W,V)=>{let q=J.avail_in;if(q>V)q=V;if(q===0)return 0;if(J.avail_in-=q,Q.set(J.input.subarray(J.next_in,J.next_in+q),W),J.state.wrap===1)J.adler=W0(J.adler,Q,q,W);else if(J.state.wrap===2)J.adler=l(J.adler,Q,q,W);return J.next_in+=q,J.total_in+=q,q},RJ=(J,Q)=>{let{max_chain_length:W,strstart:V}=J,q,X,P=J.prev_length,G=J.nice_match,H=J.strstart>J.w_size-G6?J.strstart-(J.w_size-G6):0,Y=J.window,U=J.w_mask,Z=J.prev,F=J.strstart+z6,K=Y[V+P-1],$=Y[V+P];if(J.prev_length>=J.good_match)W>>=2;if(G>J.lookahead)G=J.lookahead;do{if(q=Q,Y[q+P]!==$||Y[q+P-1]!==K||Y[q]!==Y[V]||Y[++q]!==Y[V+1])continue;V+=2,q++;do;while(Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&V<F);if(X=z6-(F-V),V=F-z6,X>P){if(J.match_start=Q,P=X,X>=G)break;K=Y[V+P-1],$=Y[V+P]}}while((Q=Z[Q&U])>H&&--W!==0);if(P<=J.lookahead)return P;return J.lookahead},b6=(J)=>{let Q=J.w_size,W,V,q;do{if(V=J.window_size-J.lookahead-J.strstart,J.strstart>=Q+(Q-G6)){if(J.window.set(J.window.subarray(Q,Q+Q-V),0),J.match_start-=Q,J.strstart-=Q,J.block_start-=Q,J.insert>J.strstart)J.insert=J.strstart;k1(J),V+=Q}if(J.strm.avail_in===0)break;if(W=V8(J.strm,J.window,J.strstart+J.lookahead,V),J.lookahead+=W,J.lookahead+J.insert>=v){q=J.strstart-J.insert,J.ins_h=J.window[q],J.ins_h=k6(J,J.ins_h,J.window[q+1]);while(J.insert)if(J.ins_h=k6(J,J.ins_h,J.window[q+v-1]),J.prev[q&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=q,q++,J.insert--,J.lookahead+J.insert<v)break}}while(J.lookahead<G6&&J.strm.avail_in!==0)},OJ=(J,Q)=>{let W=J.pending_buf_size-5>J.w_size?J.w_size:J.pending_buf_size-5,V,q,X,P=0,G=J.strm.avail_in;do{if(V=65535,X=J.bi_valid+42>>3,J.strm.avail_out<X)break;if(X=J.strm.avail_out-X,q=J.strstart-J.block_start,V>q+J.strm.avail_in)V=q+J.strm.avail_in;if(V>X)V=X;if(V<W&&(V===0&&Q!==e||Q===$6||V!==q+J.strm.avail_in))break;if(P=Q===e&&V===q+J.strm.avail_in?1:0,s0(J,0,0,P),J.pending_buf[J.pending-4]=V,J.pending_buf[J.pending-3]=V>>8,J.pending_buf[J.pending-2]=~V,J.pending_buf[J.pending-1]=~V>>8,s(J.strm),q){if(q>V)q=V;J.strm.output.set(J.window.subarray(J.block_start,J.block_start+q),J.strm.next_out),J.strm.next_out+=q,J.strm.avail_out-=q,J.strm.total_out+=q,J.block_start+=q,V-=q}if(V)V8(J.strm,J.strm.output,J.strm.next_out,V),J.strm.next_out+=V,J.strm.avail_out-=V,J.strm.total_out+=V}while(P===0);if(G-=J.strm.avail_in,G){if(G>=J.w_size)J.matches=2,J.window.set(J.strm.input.subarray(J.strm.next_in-J.w_size,J.strm.next_in),0),J.strstart=J.w_size,J.insert=J.strstart;else{if(J.window_size-J.strstart<=G){if(J.strstart-=J.w_size,J.window.set(J.window.subarray(J.w_size,J.w_size+J.strstart),0),J.matches<2)J.matches++;if(J.insert>J.strstart)J.insert=J.strstart}J.window.set(J.strm.input.subarray(J.strm.next_in-G,J.strm.next_in),J.strstart),J.strstart+=G,J.insert+=G>J.w_size-J.insert?J.w_size-J.insert:G}J.block_start=J.strstart}if(J.high_water<J.strstart)J.high_water=J.strstart;if(P)return u6;if(Q!==$6&&Q!==e&&J.strm.avail_in===0&&J.strstart===J.block_start)return p6;if(X=J.window_size-J.strstart,J.strm.avail_in>X&&J.block_start>=J.w_size){if(J.block_start-=J.w_size,J.strstart-=J.w_size,J.window.set(J.window.subarray(J.w_size,J.w_size+J.strstart),0),J.matches<2)J.matches++;if(X+=J.w_size,J.insert>J.strstart)J.insert=J.strstart}if(X>J.strm.avail_in)X=J.strm.avail_in;if(X)V8(J.strm,J.window,J.strstart,X),J.strstart+=X,J.insert+=X>J.w_size-J.insert?J.w_size-J.insert:X;if(J.high_water<J.strstart)J.high_water=J.strstart;if(X=J.bi_valid+42>>3,X=J.pending_buf_size-X>65535?65535:J.pending_buf_size-X,W=X>J.w_size?J.w_size:X,q=J.strstart-J.block_start,q>=W||(q||Q===e)&&Q!==$6&&J.strm.avail_in===0&&q<=X)V=q>X?X:q,P=Q===e&&J.strm.avail_in===0&&V===q?1:0,s0(J,J.block_start,V,P),J.block_start+=V,s(J.strm);return P?x6:r},u0=(J,Q)=>{let W,V;for(;;){if(J.lookahead<G6){if(b6(J),J.lookahead<G6&&Q===$6)return r;if(J.lookahead===0)break}if(W=0,J.lookahead>=v)J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;if(W!==0&&J.strstart-W<=J.w_size-G6)J.match_length=RJ(J,W);if(J.match_length>=v)if(V=H6(J,J.strstart-J.match_start,J.match_length-v),J.lookahead-=J.match_length,J.match_length<=J.max_lazy_match&&J.lookahead>=v){J.match_length--;do J.strstart++,J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;while(--J.match_length!==0);J.strstart++}else J.strstart+=J.match_length,J.match_length=0,J.ins_h=J.window[J.strstart],J.ins_h=k6(J,J.ins_h,J.window[J.strstart+1]);else V=H6(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++;if(V){if(t(J,!1),J.strm.avail_out===0)return r}}if(J.insert=J.strstart<v-1?J.strstart:v-1,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6},g6=(J,Q)=>{let W,V,q;for(;;){if(J.lookahead<G6){if(b6(J),J.lookahead<G6&&Q===$6)return r;if(J.lookahead===0)break}if(W=0,J.lookahead>=v)J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;if(J.prev_length=J.match_length,J.prev_match=J.match_start,J.match_length=v-1,W!==0&&J.prev_length<J.max_lazy_match&&J.strstart-W<=J.w_size-G6){if(J.match_length=RJ(J,W),J.match_length<=5&&(J.strategy===J1||J.match_length===v&&J.strstart-J.match_start>4096))J.match_length=v-1}if(J.prev_length>=v&&J.match_length<=J.prev_length){q=J.strstart+J.lookahead-v,V=H6(J,J.strstart-1-J.prev_match,J.prev_length-v),J.lookahead-=J.prev_length-1,J.prev_length-=2;do if(++J.strstart<=q)J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;while(--J.prev_length!==0);if(J.match_available=0,J.match_length=v-1,J.strstart++,V){if(t(J,!1),J.strm.avail_out===0)return r}}else if(J.match_available){if(V=H6(J,0,J.window[J.strstart-1]),V)t(J,!1);if(J.strstart++,J.lookahead--,J.strm.avail_out===0)return r}else J.match_available=1,J.strstart++,J.lookahead--}if(J.match_available)V=H6(J,0,J.window[J.strstart-1]),J.match_available=0;if(J.insert=J.strstart<v-1?J.strstart:v-1,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6},j1=(J,Q)=>{let W,V,q,X,P=J.window;for(;;){if(J.lookahead<=z6){if(b6(J),J.lookahead<=z6&&Q===$6)return r;if(J.lookahead===0)break}if(J.match_length=0,J.lookahead>=v&&J.strstart>0){if(q=J.strstart-1,V=P[q],V===P[++q]&&V===P[++q]&&V===P[++q]){X=J.strstart+z6;do;while(V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&q<X);if(J.match_length=z6-(X-q),J.match_length>J.lookahead)J.match_length=J.lookahead}}if(J.match_length>=v)W=H6(J,1,J.match_length-v),J.lookahead-=J.match_length,J.strstart+=J.match_length,J.match_length=0;else W=H6(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++;if(W){if(t(J,!1),J.strm.avail_out===0)return r}}if(J.insert=0,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6},M1=(J,Q)=>{let W;for(;;){if(J.lookahead===0){if(b6(J),J.lookahead===0){if(Q===$6)return r;break}}if(J.match_length=0,W=H6(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++,W){if(t(J,!1),J.strm.avail_out===0)return r}}if(J.insert=0,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6};function V6(J,Q,W,V,q){this.good_length=J,this.max_lazy=Q,this.nice_length=W,this.max_chain=V,this.func=q}var n6=[new V6(0,0,0,0,OJ),new V6(4,4,8,4,u0),new V6(4,5,16,8,u0),new V6(4,6,32,32,u0),new V6(4,4,16,16,g6),new V6(8,16,32,32,g6),new V6(8,16,128,128,g6),new V6(8,32,128,256,g6),new V6(32,128,258,1024,g6),new V6(32,258,258,4096,g6)],C1=(J)=>{J.window_size=2*J.w_size,Z6(J.head),J.max_lazy_match=n6[J.level].max_lazy,J.good_match=n6[J.level].good_length,J.nice_match=n6[J.level].nice_length,J.max_chain_length=n6[J.level].max_chain,J.strstart=0,J.block_start=0,J.lookahead=0,J.insert=0,J.match_length=J.prev_length=v-1,J.match_available=0,J.ins_h=0};function L1(){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=I0,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(Z1*2),this.dyn_dtree=new Uint16Array((2*K1+1)*2),this.bl_tree=new Uint16Array((2*F1+1)*2),Z6(this.dyn_ltree),Z6(this.dyn_dtree),Z6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(z1+1),this.heap=new Uint16Array(2*t0+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*t0+1),Z6(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 G0=(J)=>{if(!J)return 1;let Q=J.state;if(!Q||Q.strm!==J||Q.status!==f6&&Q.status!==P8&&Q.status!==e0&&Q.status!==J8&&Q.status!==W8&&Q.status!==Q8&&Q.status!==L6&&Q.status!==i6)return 1;return 0},xJ=(J)=>{if(G0(J))return R6(J,X6);J.total_in=J.total_out=0,J.data_type=q1;let Q=J.state;if(Q.pending=0,Q.pending_out=0,Q.wrap<0)Q.wrap=-Q.wrap;return Q.status=Q.wrap===2?P8:Q.wrap?f6:L6,J.adler=Q.wrap===2?0:1,Q.last_flush=-2,n5(Q),i},DJ=(J)=>{let Q=xJ(J);if(Q===i)C1(J.state);return Q},R1=(J,Q)=>{if(G0(J)||J.state.wrap!==2)return X6;return J.state.gzhead=Q,i},IJ=(J,Q,W,V,q,X)=>{if(!J)return X6;let P=1;if(Q===e5)Q=6;if(V<0)P=0,V=-V;else if(V>15)P=2,V-=16;if(q<1||q>X1||W!==I0||V<8||V>15||Q<0||Q>9||X<0||X>Q1||V===8&&P!==1)return R6(J,X6);if(V===8)V=9;let G=new L1;return J.state=G,G.strm=J,G.status=f6,G.wrap=P,G.gzhead=null,G.w_bits=V,G.w_size=1<<G.w_bits,G.w_mask=G.w_size-1,G.hash_bits=q+7,G.hash_size=1<<G.hash_bits,G.hash_mask=G.hash_size-1,G.hash_shift=~~((G.hash_bits+v-1)/v),G.window=new Uint8Array(G.w_size*2),G.head=new Uint16Array(G.hash_size),G.prev=new Uint16Array(G.w_size),G.lit_bufsize=1<<q+6,G.pending_buf_size=G.lit_bufsize*4,G.pending_buf=new Uint8Array(G.pending_buf_size),G.sym_buf=G.lit_bufsize,G.sym_end=(G.lit_bufsize-1)*3,G.level=Q,G.strategy=X,G.method=W,DJ(J)},O1=(J,Q)=>{return IJ(J,Q,I0,G1,Y1,V1)},x1=(J,Q)=>{if(G0(J)||Q>A8||Q<0)return J?R6(J,X6):X6;let W=J.state;if(!J.output||J.avail_in!==0&&!J.input||W.status===i6&&Q!==e)return R6(J,J.avail_out===0?p0:X6);let V=W.last_flush;if(W.last_flush=Q,W.pending!==0){if(s(J),J.avail_out===0)return W.last_flush=-1,i}else if(J.avail_in===0&&S8(Q)<=S8(V)&&Q!==e)return R6(J,p0);if(W.status===i6&&J.avail_in!==0)return R6(J,p0);if(W.status===f6&&W.wrap===0)W.status=L6;if(W.status===f6){let q=I0+(W.w_bits-8<<4)<<8,X=-1;if(W.strategy>=B0||W.level<2)X=0;else if(W.level<6)X=1;else if(W.level===6)X=2;else X=3;if(q|=X<<6,W.strstart!==0)q|=H1;if(q+=31-q%31,l6(W,q),W.strstart!==0)l6(W,J.adler>>>16),l6(W,J.adler&65535);if(J.adler=1,W.status=L6,s(J),W.pending!==0)return W.last_flush=-1,i}if(W.status===P8)if(J.adler=0,b(W,31),b(W,139),b(W,8),!W.gzhead){if(b(W,0),b(W,0),b(W,0),b(W,0),b(W,0),b(W,W.level===9?2:W.strategy>=B0||W.level<2?4:0),b(W,$1),W.status=L6,s(J),W.pending!==0)return W.last_flush=-1,i}else{if(b(W,(W.gzhead.text?1:0)+(W.gzhead.hcrc?2:0)+(!W.gzhead.extra?0:4)+(!W.gzhead.name?0:8)+(!W.gzhead.comment?0:16)),b(W,W.gzhead.time&255),b(W,W.gzhead.time>>8&255),b(W,W.gzhead.time>>16&255),b(W,W.gzhead.time>>24&255),b(W,W.level===9?2:W.strategy>=B0||W.level<2?4:0),b(W,W.gzhead.os&255),W.gzhead.extra&&W.gzhead.extra.length)b(W,W.gzhead.extra.length&255),b(W,W.gzhead.extra.length>>8&255);if(W.gzhead.hcrc)J.adler=l(J.adler,W.pending_buf,W.pending,0);W.gzindex=0,W.status=e0}if(W.status===e0){if(W.gzhead.extra){let q=W.pending,X=(W.gzhead.extra.length&65535)-W.gzindex;while(W.pending+X>W.pending_buf_size){let G=W.pending_buf_size-W.pending;if(W.pending_buf.set(W.gzhead.extra.subarray(W.gzindex,W.gzindex+G),W.pending),W.pending=W.pending_buf_size,W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);if(W.gzindex+=G,s(J),W.pending!==0)return W.last_flush=-1,i;q=0,X-=G}let P=new Uint8Array(W.gzhead.extra);if(W.pending_buf.set(P.subarray(W.gzindex,W.gzindex+X),W.pending),W.pending+=X,W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);W.gzindex=0}W.status=J8}if(W.status===J8){if(W.gzhead.name){let q=W.pending,X;do{if(W.pending===W.pending_buf_size){if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);if(s(J),W.pending!==0)return W.last_flush=-1,i;q=0}if(W.gzindex<W.gzhead.name.length)X=W.gzhead.name.charCodeAt(W.gzindex++)&255;else X=0;b(W,X)}while(X!==0);if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);W.gzindex=0}W.status=W8}if(W.status===W8){if(W.gzhead.comment){let q=W.pending,X;do{if(W.pending===W.pending_buf_size){if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);if(s(J),W.pending!==0)return W.last_flush=-1,i;q=0}if(W.gzindex<W.gzhead.comment.length)X=W.gzhead.comment.charCodeAt(W.gzindex++)&255;else X=0;b(W,X)}while(X!==0);if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q)}W.status=Q8}if(W.status===Q8){if(W.gzhead.hcrc){if(W.pending+2>W.pending_buf_size){if(s(J),W.pending!==0)return W.last_flush=-1,i}b(W,J.adler&255),b(W,J.adler>>8&255),J.adler=0}if(W.status=L6,s(J),W.pending!==0)return W.last_flush=-1,i}if(J.avail_in!==0||W.lookahead!==0||Q!==$6&&W.status!==i6){let q=W.level===0?OJ(W,Q):W.strategy===B0?M1(W,Q):W.strategy===W1?j1(W,Q):n6[W.level].func(W,Q);if(q===x6||q===u6)W.status=i6;if(q===r||q===x6){if(J.avail_out===0)W.last_flush=-1;return i}if(q===p6){if(Q===a5)o5(W);else if(Q!==A8){if(s0(W,0,0,!1),Q===s5){if(Z6(W.head),W.lookahead===0)W.strstart=0,W.block_start=0,W.insert=0}}if(s(J),J.avail_out===0)return W.last_flush=-1,i}}if(Q!==e)return i;if(W.wrap<=0)return N8;if(W.wrap===2)b(W,J.adler&255),b(W,J.adler>>8&255),b(W,J.adler>>16&255),b(W,J.adler>>24&255),b(W,J.total_in&255),b(W,J.total_in>>8&255),b(W,J.total_in>>16&255),b(W,J.total_in>>24&255);else l6(W,J.adler>>>16),l6(W,J.adler&65535);if(s(J),W.wrap>0)W.wrap=-W.wrap;return W.pending!==0?i:N8},D1=(J)=>{if(G0(J))return X6;let Q=J.state.status;return J.state=null,Q===L6?R6(J,t5):i},I1=(J,Q)=>{let W=Q.length;if(G0(J))return X6;let V=J.state,q=V.wrap;if(q===2||q===1&&V.status!==f6||V.lookahead)return X6;if(q===1)J.adler=W0(J.adler,Q,W,0);if(V.wrap=0,W>=V.w_size){if(q===0)Z6(V.head),V.strstart=0,V.block_start=0,V.insert=0;let H=new Uint8Array(V.w_size);H.set(Q.subarray(W-V.w_size,W),0),Q=H,W=V.w_size}let{avail_in:X,next_in:P,input:G}=J;J.avail_in=W,J.next_in=0,J.input=Q,b6(V);while(V.lookahead>=v){let H=V.strstart,Y=V.lookahead-(v-1);do V.ins_h=k6(V,V.ins_h,V.window[H+v-1]),V.prev[H&V.w_mask]=V.head[V.ins_h],V.head[V.ins_h]=H,H++;while(--Y);V.strstart=H,V.lookahead=v-1,b6(V)}return V.strstart+=V.lookahead,V.block_start=V.strstart,V.insert=V.lookahead,V.lookahead=0,V.match_length=V.prev_length=v-1,V.match_available=0,J.next_in=P,J.input=G,J.avail_in=X,V.wrap=q,i},w1=O1,A1=IJ,N1=DJ,S1=xJ,T1=R1,v1=x1,g1=D1,E1=I1,y1="pako deflate (from Nodeca project)",o6={deflateInit:w1,deflateInit2:A1,deflateReset:N1,deflateResetKeep:S1,deflateSetHeader:T1,deflate:v1,deflateEnd:g1,deflateSetDictionary:E1,deflateInfo:y1},f1=(J,Q)=>{return Object.prototype.hasOwnProperty.call(J,Q)},b1=function(J){let Q=Array.prototype.slice.call(arguments,1);while(Q.length){let W=Q.shift();if(!W)continue;if(typeof W!=="object")throw TypeError(W+"must be non-object");for(let V in W)if(f1(W,V))J[V]=W[V]}return J},h1=(J)=>{let Q=0;for(let V=0,q=J.length;V<q;V++)Q+=J[V].length;let W=new Uint8Array(Q);for(let V=0,q=0,X=J.length;V<X;V++){let P=J[V];W.set(P,q),q+=P.length}return W},w0={assign:b1,flattenChunks:h1},wJ=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(J){wJ=!1}var Q0=new Uint8Array(256);for(let J=0;J<256;J++)Q0[J]=J>=252?6:J>=248?5:J>=240?4:J>=224?3:J>=192?2:1;Q0[254]=Q0[254]=1;var p1=(J)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(J);let Q,W,V,q,X,P=J.length,G=0;for(q=0;q<P;q++){if(W=J.charCodeAt(q),(W&64512)===55296&&q+1<P){if(V=J.charCodeAt(q+1),(V&64512)===56320)W=65536+(W-55296<<10)+(V-56320),q++}G+=W<128?1:W<2048?2:W<65536?3:4}Q=new Uint8Array(G);for(X=0,q=0;X<G;q++){if(W=J.charCodeAt(q),(W&64512)===55296&&q+1<P){if(V=J.charCodeAt(q+1),(V&64512)===56320)W=65536+(W-55296<<10)+(V-56320),q++}if(W<128)Q[X++]=W;else if(W<2048)Q[X++]=192|W>>>6,Q[X++]=128|W&63;else if(W<65536)Q[X++]=224|W>>>12,Q[X++]=128|W>>>6&63,Q[X++]=128|W&63;else Q[X++]=240|W>>>18,Q[X++]=128|W>>>12&63,Q[X++]=128|W>>>6&63,Q[X++]=128|W&63}return Q},u1=(J,Q)=>{if(Q<65534){if(J.subarray&&wJ)return String.fromCharCode.apply(null,J.length===Q?J:J.subarray(0,Q))}let W="";for(let V=0;V<Q;V++)W+=String.fromCharCode(J[V]);return W},m1=(J,Q)=>{let W=Q||J.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(J.subarray(0,Q));let V,q,X=Array(W*2);for(q=0,V=0;V<W;){let P=J[V++];if(P<128){X[q++]=P;continue}let G=Q0[P];if(G>4){X[q++]=65533,V+=G-1;continue}P&=G===2?31:G===3?15:7;while(G>1&&V<W)P=P<<6|J[V++]&63,G--;if(G>1){X[q++]=65533;continue}if(P<65536)X[q++]=P;else P-=65536,X[q++]=55296|P>>10&1023,X[q++]=56320|P&1023}return u1(X,q)},_1=(J,Q)=>{if(Q=Q||J.length,Q>J.length)Q=J.length;let W=Q-1;while(W>=0&&(J[W]&192)===128)W--;if(W<0)return Q;if(W===0)return Q;return W+Q0[J[W]]>Q?W:Q},V0={string2buf:p1,buf2string:m1,utf8border:_1};function c1(){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 AJ=c1,NJ=Object.prototype.toString,{Z_NO_FLUSH:d1,Z_SYNC_FLUSH:l1,Z_FULL_FLUSH:i1,Z_FINISH:n1,Z_OK:x0,Z_STREAM_END:r1,Z_DEFAULT_COMPRESSION:o1,Z_DEFAULT_STRATEGY:a1,Z_DEFLATED:s1}=I6;function Y0(J){this.options=w0.assign({level:o1,method:s1,chunkSize:16384,windowBits:15,memLevel:8,strategy:a1},J||{});let Q=this.options;if(Q.raw&&Q.windowBits>0)Q.windowBits=-Q.windowBits;else if(Q.gzip&&Q.windowBits>0&&Q.windowBits<16)Q.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new AJ,this.strm.avail_out=0;let W=o6.deflateInit2(this.strm,Q.level,Q.method,Q.windowBits,Q.memLevel,Q.strategy);if(W!==x0)throw Error(O6[W]);if(Q.header)o6.deflateSetHeader(this.strm,Q.header);if(Q.dictionary){let V;if(typeof Q.dictionary==="string")V=V0.string2buf(Q.dictionary);else if(NJ.call(Q.dictionary)==="[object ArrayBuffer]")V=new Uint8Array(Q.dictionary);else V=Q.dictionary;if(W=o6.deflateSetDictionary(this.strm,V),W!==x0)throw Error(O6[W]);this._dict_set=!0}}Y0.prototype.push=function(J,Q){let W=this.strm,V=this.options.chunkSize,q,X;if(this.ended)return!1;if(Q===~~Q)X=Q;else X=Q===!0?n1:d1;if(typeof J==="string")W.input=V0.string2buf(J);else if(NJ.call(J)==="[object ArrayBuffer]")W.input=new Uint8Array(J);else W.input=J;W.next_in=0,W.avail_in=W.input.length;for(;;){if(W.avail_out===0)W.output=new Uint8Array(V),W.next_out=0,W.avail_out=V;if((X===l1||X===i1)&&W.avail_out<=6){this.onData(W.output.subarray(0,W.next_out)),W.avail_out=0;continue}if(q=o6.deflate(W,X),q===r1){if(W.next_out>0)this.onData(W.output.subarray(0,W.next_out));return q=o6.deflateEnd(this.strm),this.onEnd(q),this.ended=!0,q===x0}if(W.avail_out===0){this.onData(W.output);continue}if(X>0&&W.next_out>0){this.onData(W.output.subarray(0,W.next_out)),W.avail_out=0;continue}if(W.avail_in===0)break}return!0};Y0.prototype.onData=function(J){this.chunks.push(J)};Y0.prototype.onEnd=function(J){if(J===x0)this.result=w0.flattenChunks(this.chunks);this.chunks=[],this.err=J,this.msg=this.strm.msg};function U8(J,Q){let W=new Y0(Q);if(W.push(J,!0),W.err)throw W.msg||O6[W.err];return W.result}function t1(J,Q){return Q=Q||{},Q.raw=!0,U8(J,Q)}function e1(J,Q){return Q=Q||{},Q.gzip=!0,U8(J,Q)}var JW=Y0,WW=U8,QW=t1,VW=e1,qW=I6,XW={Deflate:JW,deflate:WW,deflateRaw:QW,gzip:VW,constants:qW},j0=16209,GW=16191,YW=function(Q,W){let V,q,X,P,G,H,Y,U,Z,F,K,$,I,j,C,x,w,k,N,h,L,g,S,D,T=Q.state;V=Q.next_in,S=Q.input,q=V+(Q.avail_in-5),X=Q.next_out,D=Q.output,P=X-(W-Q.avail_out),G=X+(Q.avail_out-257),H=T.dmax,Y=T.wsize,U=T.whave,Z=T.wnext,F=T.window,K=T.hold,$=T.bits,I=T.lencode,j=T.distcode,C=(1<<T.lenbits)-1,x=(1<<T.distbits)-1;J:do{if($<15)K+=S[V++]<<$,$+=8,K+=S[V++]<<$,$+=8;w=I[K&C];W:for(;;){if(k=w>>>24,K>>>=k,$-=k,k=w>>>16&255,k===0)D[X++]=w&65535;else if(k&16){if(N=w&65535,k&=15,k){if($<k)K+=S[V++]<<$,$+=8;N+=K&(1<<k)-1,K>>>=k,$-=k}if($<15)K+=S[V++]<<$,$+=8,K+=S[V++]<<$,$+=8;w=j[K&x];Q:for(;;){if(k=w>>>24,K>>>=k,$-=k,k=w>>>16&255,k&16){if(h=w&65535,k&=15,$<k){if(K+=S[V++]<<$,$+=8,$<k)K+=S[V++]<<$,$+=8}if(h+=K&(1<<k)-1,h>H){Q.msg="invalid distance too far back",T.mode=j0;break J}if(K>>>=k,$-=k,k=X-P,h>k){if(k=h-k,k>U){if(T.sane){Q.msg="invalid distance too far back",T.mode=j0;break J}}if(L=0,g=F,Z===0){if(L+=Y-k,k<N){N-=k;do D[X++]=F[L++];while(--k);L=X-h,g=D}}else if(Z<k){if(L+=Y+Z-k,k-=Z,k<N){N-=k;do D[X++]=F[L++];while(--k);if(L=0,Z<N){k=Z,N-=k;do D[X++]=F[L++];while(--k);L=X-h,g=D}}}else if(L+=Z-k,k<N){N-=k;do D[X++]=F[L++];while(--k);L=X-h,g=D}while(N>2)D[X++]=g[L++],D[X++]=g[L++],D[X++]=g[L++],N-=3;if(N){if(D[X++]=g[L++],N>1)D[X++]=g[L++]}}else{L=X-h;do D[X++]=D[L++],D[X++]=D[L++],D[X++]=D[L++],N-=3;while(N>2);if(N){if(D[X++]=D[L++],N>1)D[X++]=D[L++]}}}else if((k&64)===0){w=j[(w&65535)+(K&(1<<k)-1)];continue Q}else{Q.msg="invalid distance code",T.mode=j0;break J}break}}else if((k&64)===0){w=I[(w&65535)+(K&(1<<k)-1)];continue W}else if(k&32){T.mode=GW;break J}else{Q.msg="invalid literal/length code",T.mode=j0;break J}break}}while(V<q&&X<G);N=$>>3,V-=N,$-=N<<3,K&=(1<<$)-1,Q.next_in=V,Q.next_out=X,Q.avail_in=V<q?5+(q-V):5-(V-q),Q.avail_out=X<G?257+(G-X):257-(X-G),T.hold=K,T.bits=$;return},E6=15,T8=852,v8=592,g8=0,m0=1,E8=2,PW=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]),UW=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),KW=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),FW=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]),ZW=(J,Q,W,V,q,X,P,G)=>{let H=G.bits,Y=0,U=0,Z=0,F=0,K=0,$=0,I=0,j=0,C=0,x=0,w,k,N,h,L,g=null,S,D=new Uint16Array(E6+1),T=new Uint16Array(E6+1),Q6=null,Y6,P6,B6;for(Y=0;Y<=E6;Y++)D[Y]=0;for(U=0;U<V;U++)D[Q[W+U]]++;K=H;for(F=E6;F>=1;F--)if(D[F]!==0)break;if(K>F)K=F;if(F===0)return q[X++]=20971520,q[X++]=20971520,G.bits=1,0;for(Z=1;Z<F;Z++)if(D[Z]!==0)break;if(K<Z)K=Z;j=1;for(Y=1;Y<=E6;Y++)if(j<<=1,j-=D[Y],j<0)return-1;if(j>0&&(J===g8||F!==1))return-1;T[1]=0;for(Y=1;Y<E6;Y++)T[Y+1]=T[Y]+D[Y];for(U=0;U<V;U++)if(Q[W+U]!==0)P[T[Q[W+U]]++]=U;if(J===g8)g=Q6=P,S=20;else if(J===m0)g=PW,Q6=UW,S=257;else g=KW,Q6=FW,S=0;if(x=0,U=0,Y=Z,L=X,$=K,I=0,N=-1,C=1<<K,h=C-1,J===m0&&C>T8||J===E8&&C>v8)return 1;for(;;){if(Y6=Y-I,P[U]+1<S)P6=0,B6=P[U];else if(P[U]>=S)P6=Q6[P[U]-S],B6=g[P[U]-S];else P6=96,B6=0;w=1<<Y-I,k=1<<$,Z=k;do k-=w,q[L+(x>>I)+k]=Y6<<24|P6<<16|B6|0;while(k!==0);w=1<<Y-1;while(x&w)w>>=1;if(w!==0)x&=w-1,x+=w;else x=0;if(U++,--D[Y]===0){if(Y===F)break;Y=Q[W+P[U]]}if(Y>K&&(x&h)!==N){if(I===0)I=K;L+=Z,$=Y-I,j=1<<$;while($+I<F){if(j-=D[$+I],j<=0)break;$++,j<<=1}if(C+=1<<$,J===m0&&C>T8||J===E8&&C>v8)return 1;N=x&h,q[N]=K<<24|$<<16|L-X|0}}if(x!==0)q[L+x]=Y-I<<24|4194304|0;return G.bits=K,0},a6=ZW,zW=0,SJ=1,TJ=2,{Z_FINISH:y8,Z_BLOCK:HW,Z_TREES:M0,Z_OK:D6,Z_STREAM_END:$W,Z_NEED_DICT:kW,Z_STREAM_ERROR:J6,Z_DATA_ERROR:vJ,Z_MEM_ERROR:gJ,Z_BUF_ERROR:BW,Z_DEFLATED:f8}=I6,A0=16180,b8=16181,h8=16182,p8=16183,u8=16184,m8=16185,_8=16186,c8=16187,d8=16188,l8=16189,D0=16190,U6=16191,_0=16192,i8=16193,c0=16194,n8=16195,r8=16196,o8=16197,a8=16198,C0=16199,L0=16200,s8=16201,t8=16202,e8=16203,JJ=16204,WJ=16205,d0=16206,QJ=16207,VJ=16208,m=16209,EJ=16210,yJ=16211,jW=852,MW=592,CW=15,LW=CW,qJ=(J)=>{return(J>>>24&255)+(J>>>8&65280)+((J&65280)<<8)+((J&255)<<24)};function RW(){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 w6=(J)=>{if(!J)return 1;let Q=J.state;if(!Q||Q.strm!==J||Q.mode<A0||Q.mode>yJ)return 1;return 0},fJ=(J)=>{if(w6(J))return J6;let Q=J.state;if(J.total_in=J.total_out=Q.total=0,J.msg="",Q.wrap)J.adler=Q.wrap&1;return Q.mode=A0,Q.last=0,Q.havedict=0,Q.flags=-1,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new Int32Array(jW),Q.distcode=Q.distdyn=new Int32Array(MW),Q.sane=1,Q.back=-1,D6},bJ=(J)=>{if(w6(J))return J6;let Q=J.state;return Q.wsize=0,Q.whave=0,Q.wnext=0,fJ(J)},hJ=(J,Q)=>{let W;if(w6(J))return J6;let V=J.state;if(Q<0)W=0,Q=-Q;else if(W=(Q>>4)+5,Q<48)Q&=15;if(Q&&(Q<8||Q>15))return J6;if(V.window!==null&&V.wbits!==Q)V.window=null;return V.wrap=W,V.wbits=Q,bJ(J)},pJ=(J,Q)=>{if(!J)return J6;let W=new RW;J.state=W,W.strm=J,W.window=null,W.mode=A0;let V=hJ(J,Q);if(V!==D6)J.state=null;return V},OW=(J)=>{return pJ(J,LW)},XJ=!0,l0,i0,xW=(J)=>{if(XJ){l0=new Int32Array(512),i0=new Int32Array(32);let Q=0;while(Q<144)J.lens[Q++]=8;while(Q<256)J.lens[Q++]=9;while(Q<280)J.lens[Q++]=7;while(Q<288)J.lens[Q++]=8;a6(SJ,J.lens,0,288,l0,0,J.work,{bits:9}),Q=0;while(Q<32)J.lens[Q++]=5;a6(TJ,J.lens,0,32,i0,0,J.work,{bits:5}),XJ=!1}J.lencode=l0,J.lenbits=9,J.distcode=i0,J.distbits=5},uJ=(J,Q,W,V)=>{let q,X=J.state;if(X.window===null)X.wsize=1<<X.wbits,X.wnext=0,X.whave=0,X.window=new Uint8Array(X.wsize);if(V>=X.wsize)X.window.set(Q.subarray(W-X.wsize,W),0),X.wnext=0,X.whave=X.wsize;else{if(q=X.wsize-X.wnext,q>V)q=V;if(X.window.set(Q.subarray(W-V,W-V+q),X.wnext),V-=q,V)X.window.set(Q.subarray(W-V,W),0),X.wnext=V,X.whave=X.wsize;else{if(X.wnext+=q,X.wnext===X.wsize)X.wnext=0;if(X.whave<X.wsize)X.whave+=q}}return 0},DW=(J,Q)=>{let W,V,q,X,P,G,H,Y,U,Z,F,K,$,I,j=0,C,x,w,k,N,h,L,g,S=new Uint8Array(4),D,T,Q6=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(w6(J)||!J.output||!J.input&&J.avail_in!==0)return J6;if(W=J.state,W.mode===U6)W.mode=_0;P=J.next_out,q=J.output,H=J.avail_out,X=J.next_in,V=J.input,G=J.avail_in,Y=W.hold,U=W.bits,Z=G,F=H,g=D6;J:for(;;)switch(W.mode){case A0:if(W.wrap===0){W.mode=_0;break}while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.wrap&2&&Y===35615){if(W.wbits===0)W.wbits=15;W.check=0,S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0),Y=0,U=0,W.mode=b8;break}if(W.head)W.head.done=!1;if(!(W.wrap&1)||(((Y&255)<<8)+(Y>>8))%31){J.msg="incorrect header check",W.mode=m;break}if((Y&15)!==f8){J.msg="unknown compression method",W.mode=m;break}if(Y>>>=4,U-=4,L=(Y&15)+8,W.wbits===0)W.wbits=L;if(L>15||L>W.wbits){J.msg="invalid window size",W.mode=m;break}W.dmax=1<<W.wbits,W.flags=0,J.adler=W.check=1,W.mode=Y&512?l8:U6,Y=0,U=0;break;case b8:while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.flags=Y,(W.flags&255)!==f8){J.msg="unknown compression method",W.mode=m;break}if(W.flags&57344){J.msg="unknown header flags set",W.mode=m;break}if(W.head)W.head.text=Y>>8&1;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0);Y=0,U=0,W.mode=h8;case h8:while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.head)W.head.time=Y;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,S[2]=Y>>>16&255,S[3]=Y>>>24&255,W.check=l(W.check,S,4,0);Y=0,U=0,W.mode=p8;case p8:while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.head)W.head.xflags=Y&255,W.head.os=Y>>8;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0);Y=0,U=0,W.mode=u8;case u8:if(W.flags&1024){while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.length=Y,W.head)W.head.extra_len=Y;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0);Y=0,U=0}else if(W.head)W.head.extra=null;W.mode=m8;case m8:if(W.flags&1024){if(K=W.length,K>G)K=G;if(K){if(W.head){if(L=W.head.extra_len-W.length,!W.head.extra)W.head.extra=new Uint8Array(W.head.extra_len);W.head.extra.set(V.subarray(X,X+K),L)}if(W.flags&512&&W.wrap&4)W.check=l(W.check,V,K,X);G-=K,X+=K,W.length-=K}if(W.length)break J}W.length=0,W.mode=_8;case _8:if(W.flags&2048){if(G===0)break J;K=0;do if(L=V[X+K++],W.head&&L&&W.length<65536)W.head.name+=String.fromCharCode(L);while(L&&K<G);if(W.flags&512&&W.wrap&4)W.check=l(W.check,V,K,X);if(G-=K,X+=K,L)break J}else if(W.head)W.head.name=null;W.length=0,W.mode=c8;case c8:if(W.flags&4096){if(G===0)break J;K=0;do if(L=V[X+K++],W.head&&L&&W.length<65536)W.head.comment+=String.fromCharCode(L);while(L&&K<G);if(W.flags&512&&W.wrap&4)W.check=l(W.check,V,K,X);if(G-=K,X+=K,L)break J}else if(W.head)W.head.comment=null;W.mode=d8;case d8:if(W.flags&512){while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.wrap&4&&Y!==(W.check&65535)){J.msg="header crc mismatch",W.mode=m;break}Y=0,U=0}if(W.head)W.head.hcrc=W.flags>>9&1,W.head.done=!0;J.adler=W.check=0,W.mode=U6;break;case l8:while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}J.adler=W.check=qJ(Y),Y=0,U=0,W.mode=D0;case D0:if(W.havedict===0)return J.next_out=P,J.avail_out=H,J.next_in=X,J.avail_in=G,W.hold=Y,W.bits=U,kW;J.adler=W.check=1,W.mode=U6;case U6:if(Q===HW||Q===M0)break J;case _0:if(W.last){Y>>>=U&7,U-=U&7,W.mode=d0;break}while(U<3){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}switch(W.last=Y&1,Y>>>=1,U-=1,Y&3){case 0:W.mode=i8;break;case 1:if(xW(W),W.mode=C0,Q===M0){Y>>>=2,U-=2;break J}break;case 2:W.mode=r8;break;case 3:J.msg="invalid block type",W.mode=m}Y>>>=2,U-=2;break;case i8:Y>>>=U&7,U-=U&7;while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if((Y&65535)!==(Y>>>16^65535)){J.msg="invalid stored block lengths",W.mode=m;break}if(W.length=Y&65535,Y=0,U=0,W.mode=c0,Q===M0)break J;case c0:W.mode=n8;case n8:if(K=W.length,K){if(K>G)K=G;if(K>H)K=H;if(K===0)break J;q.set(V.subarray(X,X+K),P),G-=K,X+=K,H-=K,P+=K,W.length-=K;break}W.mode=U6;break;case r8:while(U<14){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.nlen=(Y&31)+257,Y>>>=5,U-=5,W.ndist=(Y&31)+1,Y>>>=5,U-=5,W.ncode=(Y&15)+4,Y>>>=4,U-=4,W.nlen>286||W.ndist>30){J.msg="too many length or distance symbols",W.mode=m;break}W.have=0,W.mode=o8;case o8:while(W.have<W.ncode){while(U<3){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}W.lens[Q6[W.have++]]=Y&7,Y>>>=3,U-=3}while(W.have<19)W.lens[Q6[W.have++]]=0;if(W.lencode=W.lendyn,W.lenbits=7,D={bits:W.lenbits},g=a6(zW,W.lens,0,19,W.lencode,0,W.work,D),W.lenbits=D.bits,g){J.msg="invalid code lengths set",W.mode=m;break}W.have=0,W.mode=a8;case a8:while(W.have<W.nlen+W.ndist){for(;;){if(j=W.lencode[Y&(1<<W.lenbits)-1],C=j>>>24,x=j>>>16&255,w=j&65535,C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(w<16)Y>>>=C,U-=C,W.lens[W.have++]=w;else{if(w===16){T=C+2;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(Y>>>=C,U-=C,W.have===0){J.msg="invalid bit length repeat",W.mode=m;break}L=W.lens[W.have-1],K=3+(Y&3),Y>>>=2,U-=2}else if(w===17){T=C+3;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=C,U-=C,L=0,K=3+(Y&7),Y>>>=3,U-=3}else{T=C+7;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=C,U-=C,L=0,K=11+(Y&127),Y>>>=7,U-=7}if(W.have+K>W.nlen+W.ndist){J.msg="invalid bit length repeat",W.mode=m;break}while(K--)W.lens[W.have++]=L}}if(W.mode===m)break;if(W.lens[256]===0){J.msg="invalid code -- missing end-of-block",W.mode=m;break}if(W.lenbits=9,D={bits:W.lenbits},g=a6(SJ,W.lens,0,W.nlen,W.lencode,0,W.work,D),W.lenbits=D.bits,g){J.msg="invalid literal/lengths set",W.mode=m;break}if(W.distbits=6,W.distcode=W.distdyn,D={bits:W.distbits},g=a6(TJ,W.lens,W.nlen,W.ndist,W.distcode,0,W.work,D),W.distbits=D.bits,g){J.msg="invalid distances set",W.mode=m;break}if(W.mode=C0,Q===M0)break J;case C0:W.mode=L0;case L0:if(G>=6&&H>=258){if(J.next_out=P,J.avail_out=H,J.next_in=X,J.avail_in=G,W.hold=Y,W.bits=U,YW(J,F),P=J.next_out,q=J.output,H=J.avail_out,X=J.next_in,V=J.input,G=J.avail_in,Y=W.hold,U=W.bits,W.mode===U6)W.back=-1;break}W.back=0;for(;;){if(j=W.lencode[Y&(1<<W.lenbits)-1],C=j>>>24,x=j>>>16&255,w=j&65535,C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(x&&(x&240)===0){k=C,N=x,h=w;for(;;){if(j=W.lencode[h+((Y&(1<<k+N)-1)>>k)],C=j>>>24,x=j>>>16&255,w=j&65535,k+C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=k,U-=k,W.back+=k}if(Y>>>=C,U-=C,W.back+=C,W.length=w,x===0){W.mode=WJ;break}if(x&32){W.back=-1,W.mode=U6;break}if(x&64){J.msg="invalid literal/length code",W.mode=m;break}W.extra=x&15,W.mode=s8;case s8:if(W.extra){T=W.extra;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}W.length+=Y&(1<<W.extra)-1,Y>>>=W.extra,U-=W.extra,W.back+=W.extra}W.was=W.length,W.mode=t8;case t8:for(;;){if(j=W.distcode[Y&(1<<W.distbits)-1],C=j>>>24,x=j>>>16&255,w=j&65535,C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if((x&240)===0){k=C,N=x,h=w;for(;;){if(j=W.distcode[h+((Y&(1<<k+N)-1)>>k)],C=j>>>24,x=j>>>16&255,w=j&65535,k+C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=k,U-=k,W.back+=k}if(Y>>>=C,U-=C,W.back+=C,x&64){J.msg="invalid distance code",W.mode=m;break}W.offset=w,W.extra=x&15,W.mode=e8;case e8:if(W.extra){T=W.extra;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}W.offset+=Y&(1<<W.extra)-1,Y>>>=W.extra,U-=W.extra,W.back+=W.extra}if(W.offset>W.dmax){J.msg="invalid distance too far back",W.mode=m;break}W.mode=JJ;case JJ:if(H===0)break J;if(K=F-H,W.offset>K){if(K=W.offset-K,K>W.whave){if(W.sane){J.msg="invalid distance too far back",W.mode=m;break}}if(K>W.wnext)K-=W.wnext,$=W.wsize-K;else $=W.wnext-K;if(K>W.length)K=W.length;I=W.window}else I=q,$=P-W.offset,K=W.length;if(K>H)K=H;H-=K,W.length-=K;do q[P++]=I[$++];while(--K);if(W.length===0)W.mode=L0;break;case WJ:if(H===0)break J;q[P++]=W.length,H--,W.mode=L0;break;case d0:if(W.wrap){while(U<32){if(G===0)break J;G--,Y|=V[X++]<<U,U+=8}if(F-=H,J.total_out+=F,W.total+=F,W.wrap&4&&F)J.adler=W.check=W.flags?l(W.check,q,F,P-F):W0(W.check,q,F,P-F);if(F=H,W.wrap&4&&(W.flags?Y:qJ(Y))!==W.check){J.msg="incorrect data check",W.mode=m;break}Y=0,U=0}W.mode=QJ;case QJ:if(W.wrap&&W.flags){while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.wrap&4&&Y!==(W.total&4294967295)){J.msg="incorrect length check",W.mode=m;break}Y=0,U=0}W.mode=VJ;case VJ:g=$W;break J;case m:g=vJ;break J;case EJ:return gJ;case yJ:default:return J6}if(J.next_out=P,J.avail_out=H,J.next_in=X,J.avail_in=G,W.hold=Y,W.bits=U,W.wsize||F!==J.avail_out&&W.mode<m&&(W.mode<d0||Q!==y8)){if(uJ(J,J.output,J.next_out,F-J.avail_out));}if(Z-=J.avail_in,F-=J.avail_out,J.total_in+=Z,J.total_out+=F,W.total+=F,W.wrap&4&&F)J.adler=W.check=W.flags?l(W.check,q,F,J.next_out-F):W0(W.check,q,F,J.next_out-F);if(J.data_type=W.bits+(W.last?64:0)+(W.mode===U6?128:0)+(W.mode===C0||W.mode===c0?256:0),(Z===0&&F===0||Q===y8)&&g===D6)g=BW;return g},IW=(J)=>{if(w6(J))return J6;let Q=J.state;if(Q.window)Q.window=null;return J.state=null,D6},wW=(J,Q)=>{if(w6(J))return J6;let W=J.state;if((W.wrap&2)===0)return J6;return W.head=Q,Q.done=!1,D6},AW=(J,Q)=>{let W=Q.length,V,q,X;if(w6(J))return J6;if(V=J.state,V.wrap!==0&&V.mode!==D0)return J6;if(V.mode===D0){if(q=1,q=W0(q,Q,W,0),q!==V.check)return vJ}if(X=uJ(J,Q,W,W),X)return V.mode=EJ,gJ;return V.havedict=1,D6},NW=bJ,SW=hJ,TW=fJ,vW=OW,gW=pJ,EW=DW,yW=IW,fW=wW,bW=AW,hW="pako inflate (from Nodeca project)",F6={inflateReset:NW,inflateReset2:SW,inflateResetKeep:TW,inflateInit:vW,inflateInit2:gW,inflate:EW,inflateEnd:yW,inflateGetHeader:fW,inflateSetDictionary:bW,inflateInfo:hW};function pW(){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 uW=pW,mJ=Object.prototype.toString,{Z_NO_FLUSH:mW,Z_FINISH:_W,Z_OK:q0,Z_STREAM_END:n0,Z_NEED_DICT:r0,Z_STREAM_ERROR:cW,Z_DATA_ERROR:GJ,Z_MEM_ERROR:dW}=I6;function P0(J){this.options=w0.assign({chunkSize:65536,windowBits:15,to:""},J||{});let Q=this.options;if(Q.raw&&Q.windowBits>=0&&Q.windowBits<16){if(Q.windowBits=-Q.windowBits,Q.windowBits===0)Q.windowBits=-15}if(Q.windowBits>=0&&Q.windowBits<16&&!(J&&J.windowBits))Q.windowBits+=32;if(Q.windowBits>15&&Q.windowBits<48){if((Q.windowBits&15)===0)Q.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new AJ,this.strm.avail_out=0;let W=F6.inflateInit2(this.strm,Q.windowBits);if(W!==q0)throw Error(O6[W]);if(this.header=new uW,F6.inflateGetHeader(this.strm,this.header),Q.dictionary){if(typeof Q.dictionary==="string")Q.dictionary=V0.string2buf(Q.dictionary);else if(mJ.call(Q.dictionary)==="[object ArrayBuffer]")Q.dictionary=new Uint8Array(Q.dictionary);if(Q.raw){if(W=F6.inflateSetDictionary(this.strm,Q.dictionary),W!==q0)throw Error(O6[W])}}}P0.prototype.push=function(J,Q){let W=this.strm,V=this.options.chunkSize,q=this.options.dictionary,X,P,G;if(this.ended)return!1;if(Q===~~Q)P=Q;else P=Q===!0?_W:mW;if(mJ.call(J)==="[object ArrayBuffer]")W.input=new Uint8Array(J);else W.input=J;W.next_in=0,W.avail_in=W.input.length;for(;;){if(W.avail_out===0)W.output=new Uint8Array(V),W.next_out=0,W.avail_out=V;if(X=F6.inflate(W,P),X===r0&&q){if(X=F6.inflateSetDictionary(W,q),X===q0)X=F6.inflate(W,P);else if(X===GJ)X=r0}while(W.avail_in>0&&X===n0&&W.state.wrap>0&&J[W.next_in]!==0)F6.inflateReset(W),X=F6.inflate(W,P);switch(X){case cW:case GJ:case r0:case dW:return this.onEnd(X),this.ended=!0,!1}if(G=W.avail_out,W.next_out){if(W.avail_out===0||X===n0)if(this.options.to==="string"){let H=V0.utf8border(W.output,W.next_out),Y=W.next_out-H,U=V0.buf2string(W.output,H);if(W.next_out=Y,W.avail_out=V-Y,Y)W.output.set(W.output.subarray(H,H+Y),0);this.onData(U)}else this.onData(W.output.length===W.next_out?W.output:W.output.subarray(0,W.next_out))}if(X===q0&&G===0)continue;if(X===n0)return X=F6.inflateEnd(this.strm),this.onEnd(X),this.ended=!0,!0;if(W.avail_in===0)break}return!0};P0.prototype.onData=function(J){this.chunks.push(J)};P0.prototype.onEnd=function(J){if(J===q0)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=w0.flattenChunks(this.chunks);this.chunks=[],this.err=J,this.msg=this.strm.msg};function K8(J,Q){let W=new P0(Q);if(W.push(J),W.err)throw W.msg||O6[W.err];return W.result}function lW(J,Q){return Q=Q||{},Q.raw=!0,K8(J,Q)}var iW=P0,nW=K8,rW=lW,oW=K8,aW=I6,sW={Inflate:iW,inflate:nW,inflateRaw:rW,ungzip:oW,constants:aW},{Deflate:tW,deflate:eW,deflateRaw:J7,gzip:W7}=XW,{Inflate:Q7,inflate:V7,inflateRaw:q7,ungzip:X7}=sW,G7=tW,Y7=eW,P7=J7,U7=W7,K7=Q7,F7=V7,Z7=q7,z7=X7,H7=I6,m6={Deflate:G7,deflate:Y7,deflateRaw:P7,gzip:U7,Inflate:K7,inflate:F7,inflateRaw:Z7,ungzip:z7,constants:H7};function _J(J,Q,W){let V=Q.timestamp;if(V?.physical>Date.now()+7200000)V={physical:Date.now()+7200000,logical:V.logical};if(Q?.value?.priority===!0&&typeof Q.id==="string"&&Q.id.startsWith("user:")&&"role"in Q.value){let{priority:q,...X}=Q.value;return{resolved:!0,value:X,timestamp:V}}if(Q?.value?.priority!==void 0){let{priority:q,...X}=Q.value;Q={...Q,value:X}}if(!J?.timestamp)return{resolved:!0,value:Q.value,timestamp:V};if(W.compare(V,J.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:Q.value,timestamp:V}}function cJ(J,Q=50){let W=`gdb_oplog_${J}`,V=[];function q(){try{let P=localStorage.getItem(W);V=P?JSON.parse(P):[]}catch(P){log.error("❌ GDB: Failed to load oplog from localStorage:",P),V=[]}}function X(){try{localStorage.setItem(W,JSON.stringify(V))}catch(P){log.error("❌ GDB: Failed to save oplog to localStorage:",P)}}return q(),{remove(P){V=V.filter((G)=>G.id!==P),X()},add(P){if(V.push(P),V.length>Q)V.shift();X()},getDelta(P,G){if(!P)return[...V];return V.filter((H)=>G(H.timestamp,P)>0)},getOldest(){return V[0]},clear(){V=[],localStorage.removeItem(W)}}}var $7=()=>{let J=new Map,Q=async(U,Z)=>{let F=J.get(U)??[];J.set(U,F);let K=F[F.length-1]??Promise.resolve(),$,I=new Promise((j)=>$=j);F.push(I);try{return await K,await Z()}finally{if(F.shift(),$(),!F.length)J.delete(U)}},W=(U,Z)=>navigator.locks?.request?.(`opfs:${U}`,{mode:"exclusive"},Z)??Q(U,Z),V=async()=>{try{let U=await navigator.storage.getDirectory(),F=await(await U.getFileHandle("~opfs-sync-test",{create:!0})).createSyncAccessHandle?.();return await F?.close(),await U.removeEntry("~opfs-sync-test"),!!F}catch{return!1}},q="idb",X=(async()=>{if(await V()){q="sync";return}try{let U=await navigator.storage.getDirectory(),F=await(await U.getFileHandle("~opfs-async-test",{create:!0})).createWritable?.();await F?.close(),await U.removeEntry("~opfs-async-test"),q=F?"async":"idb"}catch{q="idb"}})(),P=navigator.storage.getDirectory(),G=(()=>{let U,Z=()=>U??=new Promise((F,K)=>{let $=indexedDB.open("opfs-fallback-db",1);$.onupgradeneeded=()=>$.result.createObjectStore("files"),$.onsuccess=()=>F($.result),$.onerror=()=>K($.error)});return{get:async(F)=>{let K=await Z();return new Promise(($,I)=>{let C=K.transaction("files","readonly").objectStore("files").get(F);C.onsuccess=()=>$(C.result||new Uint8Array),C.onerror=()=>I(C.error)})},set:async(F,K)=>{let $=await Z();return new Promise((I,j)=>{let x=$.transaction("files","readwrite").objectStore("files").put(K,F);x.onsuccess=()=>I(),x.onerror=()=>j(x.error)})}}})(),H=async(U)=>{await X;try{if(q==="idb"){let j=await G.get(U);self.postMessage({type:"loaded",name:U,data:j},[j.buffer]);return}let F=await(await P).getFileHandle(U).catch(()=>null);if(!F){let j=new Uint8Array;self.postMessage({type:"loaded",name:U,data:j},[j.buffer]);return}let K=async()=>{try{let j=await F.createSyncAccessHandle();try{let C=j.getSize(),x=new Uint8Array(C),w=j.read(x,{at:0}),k=x.slice(0,w);self.postMessage({type:"loaded",name:U,data:k},[k.buffer])}finally{j.close()}}catch(j){if(j?.name==="NoModificationAllowedError"){let C=await F.getFile(),x=new Uint8Array(await C.arrayBuffer());self.postMessage({type:"loaded",name:U,data:x},[x.buffer])}else throw j}};if(q==="sync"){await W(U,K);return}let $=await F.getFile(),I=new Uint8Array(await $.arrayBuffer());self.postMessage({type:"loaded",name:U,data:I},[I.buffer])}catch(Z){if(Z?.name==="NotFoundError"){let F=new Uint8Array;self.postMessage({type:"loaded",name:U,data:F},[F.buffer]);return}self.postMessage({type:"error",name:U,message:Z?.message??"Error reading file"})}},Y=async(U,Z)=>{if(await X,!(Z instanceof Uint8Array))return{type:"error",name:U,message:"Content must be a Uint8Array"};return W(U,async()=>{try{if(q==="idb")return await G.set(U,Z),{type:"saved",name:U};let K=await(await P).getFileHandle(U,{create:!0});if(q==="sync"){let $=await K.createSyncAccessHandle();try{$.truncate(0),$.write(Z,{at:0}),$.flush()}finally{$.close()}}else{let $=await K.createWritable();try{await $.write(Z)}finally{await $.close()}}return{type:"saved",name:U}}catch(F){return{type:"error",name:U,message:F?.message??"Error saving file"}}})};self.onmessage=async({data:U})=>{let{type:Z,name:F,content:K}=U;await X;let $={load:()=>H(F),save:()=>Y(F,K)};try{let I=$[Z],j=I?await I():{type:"error",message:`Unrecognized action type: ${Z}`};if(j&&j.type)self.postMessage(j)}catch(I){self.postMessage({type:"error",name:F,message:I?.message??"Unexpected worker error"})}}},dJ=$7;var U0={$eq:(J,Q)=>J===Q,$ne:(J,Q)=>J!==Q,$gt:(J,Q)=>J>Q,$gte:(J,Q)=>J>=Q,$lt:(J,Q)=>J<Q,$lte:(J,Q)=>J<=Q,$in:(J,Q)=>Array.isArray(Q)&&(Array.isArray(J)?J.some((W)=>Q.includes(W)):Q.includes(J)),$between:(J,[Q,W])=>J>=Q&&J<=W,$exists:(J,Q)=>Q?J!==void 0:J===void 0,$startsWith:(J,Q)=>typeof J==="string"&&J.startsWith(Q),$endsWith:(J,Q)=>typeof J==="string"&&J.endsWith(Q),$contains:(J,Q)=>typeof J==="string"&&J.includes(Q),$text:{global:(J,Q)=>{let W=(q)=>String(q).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=W(Q);return Object.values(J).some((q)=>typeof q==="object"?null.fieldSearch(q,V):W(q).includes(V))},field:(J,Q)=>{let W=(q)=>String(q).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=W(Q);return Array.isArray(J)?J.some((q)=>W(q).includes(V)):W(J).includes(V)}},$like:(J,Q)=>typeof J==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(J),$regex:(J,Q)=>typeof J==="string"&&new RegExp(Q.$regex||Q,"i").test(J),$and:(J,Q,W)=>Q.every((V)=>W.createFilter(V,W.allNodes)(J)),$or:(J,Q,W)=>Q.some((V)=>W.createFilter(V,W.allNodes)(J)),$not:(J,Q,W)=>!W.createFilter(Q,W.allNodes)(J),$edge:(J,Q,W)=>{if(!J.edges?.length||typeof Q!=="object"||Q===null)return!1;let V=W.createFilter(Q,W.allNodes),q=[...J.edges],X=new Set(q).add(J.id),P=[];while(q.length){let G=q.shift(),H=W.allNodes[G];if(!H)continue;if(V(H))P.push(H);H.edges?.forEach((Y)=>!X.has(Y)&&X.add(Y)&&q.push(Y))}if(P.length)J._edgeResult=P;return P.length>0}},N0=(J,Q)=>Q.split(".").reduce((W,V)=>W&&typeof W==="object"&&(V in W)?W[V]:void 0,J),S0=(J,Q)=>{if(Object.keys(J).length===0)return()=>!0;return(W)=>Object.entries(J).every(([V,q])=>{if(V.startsWith("$"))return U0[V](W,q,{createFilter:S0,allNodes:Q});let X=N0(W.value,V);if(X===void 0)X=N0(W,V);if(q instanceof RegExp)return q.test(String(X));if(typeof q!=="object"||q===null)return U0.$eq(X,q);return Object.entries(q).every(([P,G])=>{if(P==="$text")return U0.$text.field(X,G);if(P==="$between"&&G.every((H)=>H instanceof Date))return U0.$between(new Date(X),G);return U0[P]?.(X,G,{createFilter:S0,allNodes:Q})??!1})})},F8=(J,Q)=>{let{$edge:W,...V}=Q.query||{},q=S0(V,J),X=Object.values(J).filter(q),G=[...W?(()=>{let H=S0({$edge:W},J);X.forEach((U)=>H(U));let Y=new Map;return X.forEach((U)=>{if(U._edgeResult)U._edgeResult.forEach((Z)=>Y.set(Z.id,Z)),delete U._edgeResult}),Array.from(Y.values())})():X];if(Q.field){let H=Q.order==="asc"?1:-1;G.sort((Y,U)=>{let Z=N0(Y.value,Q.field),F=N0(U.value,Q.field);if(typeof Z==="string"&&typeof F==="string")return Z.localeCompare(F)*H;return((Z??0)-(F??0))*H})}if(Q.$after){let H=G.findIndex((Y)=>Y.id===Q.$after);G=H>=0?G.slice(H+1):[]}if(Q.$before){let H=G.findIndex((Y)=>Y.id===Q.$before);G=H>=0?G.slice(0,H):[]}if(Q.$limit)G=G.slice(0,Q.$limit);return G};function lJ(){let J=Date.now(),Q=0;return{now(){let W=Date.now();return J=Math.max(J,W),Q++,{physical:J,logical:Q}},update(W){if(!W||typeof W.physical!=="number"||typeof W.logical!=="number"){log.warn("⚠️ HybridClock.update received an invalid remote timestamp.",W);return}J=Math.max(J,W.physical),Q=Math.max(Q,W.logical)+1},compare(W,V){if(!W&&!V)return 0;if(!W)return-1;if(!V)return 1;if(W.physical>V.physical)return 1;if(W.physical<V.physical)return-1;if(W.logical>V.logical)return 1;if(W.logical<V.logical)return-1;return 0}}}var k7={sm:()=>import(new URL("./sm.min.js",import.meta.url).href),ai:()=>import(new URL("./ai.min.js",import.meta.url).href),audit:()=>import(new URL("./audit.min.js",import.meta.url).href),geo:()=>import(new URL("./geo.min.js",import.meta.url).href),nlq:()=>import(new URL("./nlq.min.js",import.meta.url).href),genosrtc:()=>import(new URL("./genosrtc.min.js",import.meta.url).href)},iJ=(J,Q)=>J.length===Q.length&&J.every((W,V)=>W===Q[V]),Z8=(J)=>J&&typeof J==="object"?globalThis.structuredClone?.(J)??JSON.parse(JSON.stringify(J)):J,nJ=(J,Q=16)=>{let W=null,V=null;return(...q)=>{if(!V)V={},V.promise=new Promise((P,G)=>(V.resolve=P,V.reject=G));if(W)("cancelIdleCallback"in window?cancelIdleCallback:clearTimeout)(W);let X=async()=>{W=null;let P=V;V=null;try{P.resolve(await J(...q))}catch(G){P.reject(G)}};return W="requestIdleCallback"in window?requestIdleCallback(X,{timeout:Q}):setTimeout(X,Q),V.promise}},B7=(J)=>{let Q=null;return()=>{if(Q!==null)return;Q=requestAnimationFrame(()=>{Q=null,J()})}};async function j7(){if(log.info(navigator?.storage?.getDirectory?"✅ OPFS is enabled.":"\uD83D\uDEAB OPFS is not available."),navigator?.storage?.getDirectory)await navigator.storage.getDirectory()}function M7(){let J={nodes:{}};return{get nodes(){return J.nodes},set nodes(Q){J.nodes=Q||{}},upsert(Q,W,V){let q=J.nodes[Q];J.nodes[Q]={id:Q,value:W&&typeof W==="object"?Z8(W):W,edges:q?.edges?[...q.edges]:[],timestamp:V}},get(Q){return J.nodes[Q]||null},link(Q,W,V){let q=J.nodes[Q],X=J.nodes[W];if(q&&X&&!q.edges.includes(W))J.nodes[Q]={...q,edges:[...q.edges,W],timestamp:V}},unlink(Q,W,V){let q=J.nodes[Q];if(q?.edges.includes(W))J.nodes[Q]={...q,edges:q.edges.filter((X)=>X!==W),timestamp:V}},getAllNodes(){return Object.values(J.nodes)},serialize(){return m6.deflate(H0(J.nodes))},deserialize(Q){J.nodes=M6(m6.inflate(new Uint8Array(Q)))}}}async function yQ(J,Q={}){Q.debug&&(globalThis.__gdbDebug=!0),log.info("\x1B[36m⚡ GenosDB: Empowering distributed graph databases with real-time synchronization and scalability. Learn more: https://github.com/estebanrfp/gdb ⚡\x1B[0m");let{rtc:W=!1,password:V,sm:q=!1,audit:X=!1,ai:P=!1,geo:G=!1,nlq:H=!1,saveDelay:Y=200,oplogSize:U=200}=Q,Z=M7(),F=lJ(),K=cJ(J,U),$=[],I=null,j=[],C=null,x=null,w=null,k=null,N=[],h=null,L={};Object.defineProperties(L,{syncChannel:{get:()=>x},broadcastChannel:{get:()=>w},hybridClock:{get:()=>F},graph:{get:()=>({getAllNodes:()=>Z.getAllNodes(),get:(B)=>Z.get(B)})},worker:{get:()=>C},oplog:{get:()=>K},options:{get:()=>Q},pako:{get:()=>m6},encode:{get:()=>H0},decode:{get:()=>M6},deepClone:{get:()=>Z8}});async function g(B,R){try{let M=await k7[B](),E=R&&typeof R==="object"?R:{},c=await M.init?.(L,M,E);if(c)Object.assign(L,c);return M}catch(M){throw log.error(`❌ Initialization of ${B} failed:`,M),M}}function S(){let B=localStorage.getItem(`${J}_time`);I=B?JSON.parse(B):null}function D(B){I=B,localStorage.setItem(`${J}_time`,JSON.stringify(B))}function T(){try{let B=URL.createObjectURL(new Blob([`(${dJ.toString()})()`],{type:"application/javascript"}));C=new Worker(B),URL.revokeObjectURL(B),C.addEventListener("message",({data:R})=>log.info(`\uD83D\uDCBE ${R.name} ${R.type}`)),log.info("⚙️ Worker initialized successfully.")}catch({message:B}){log.error("❌ Failed to initialize worker:",B)}}function Q6(){let B={...Z.nodes};j.forEach((R)=>R(B))}let Y6=B7(()=>Q6()),P6=nJ(async()=>{let B=N.splice(0,N.length);if(!B.length)return!1;return await x.send(B),!0},16);async function B6(){try{let R=await((M)=>new Promise((E,c)=>{let y=async({data:z})=>{if(z.type==="loaded"&&z.name===M)C.removeEventListener("message",y),E(new Uint8Array(z.data));else if(z.type==="error")C.removeEventListener("message",y),c(Error(z.message||"Unknown error"))};C.addEventListener("message",y),C.postMessage({type:"load",name:M})}))(`${J}_graph.msgpack`).catch(()=>new Uint8Array);R.byteLength>0?Z.deserialize(R):log.info("\uD83D\uDCBE New database. File will be created on first save.")}catch({message:B}){log.error("❌ Error loading the graph:",B)}}async function z8(){try{let B=Z.serialize();return await((M,E)=>new Promise((c,y)=>{let z=({data:A})=>{if(A.type==="saved"&&A.name===M)C.removeEventListener("message",z),c();else if(A.type==="error")C.removeEventListener("message",z),y(Error(A.message||"Save error"))};C.addEventListener("message",z),C.postMessage({type:"save",name:M,content:E})}))(`${J}_graph.msgpack`,B),w.postMessage("update"),!0}catch({message:B}){throw log.error("❌ Save error:",B),Error("Save failed")}}let A6=nJ(()=>z8(),Y);async function rJ(B){let R=!1,M=null,E=(z)=>{if(!M||F.compare(z,M)>0)M=z},c=(z)=>{try{if(z instanceof Uint8Array)return M6(m6.inflate(z));if(Array.isArray(z))return z;if(z&&typeof z==="object")return M6(m6.inflate(new Uint8Array(Object.values(z))))}catch(A){log.error("❌ deltaSync decode failed",A)}return null},y={upsert:(z)=>{let A=Z.get(z.id);if(!A){for(let d of K.getDelta(null))if(d.type==="remove"&&d.id===z.id&&F.compare(d.timestamp,z.timestamp)>=0)return}if(h&&!h.op(z,A)){log.warn(`⚠️ [SYNC-AUTH] upsert denied: ${z.id}`);return}let{resolved:O,value:p,timestamp:_}=_J(A,z,F);if(!O)return;if(Z.upsert(z.id,p,_),z.signature&&h?.isOwned(p))Z.get(z.id).meta={author:z.originEthAddress,sig:z.signature,signedPayload:{type:"upsert",id:z.id,value:z.value,timestamp:z.timestamp,originUser:z.originUser}};F.update(_),K.add({type:"upsert",id:z.id,timestamp:_}),R=!0,E(_)},remove:(z)=>{let A=Z.get(z.id);if(!A||F.compare(A.timestamp,z.timestamp)>=0)return;if(h&&!h.op(z,A)){log.warn(`⚠️ [SYNC-AUTH] remove denied: ${z.id}`);return}delete Z.nodes[z.id],F.update(z.timestamp),K.add({type:"remove",id:z.id,timestamp:z.timestamp}),R=!0,E(z.timestamp)},link:(z)=>{let A=Z.get(z.sourceId),O=Z.get(z.targetId);if(!A||!O||F.compare(A.timestamp,z.timestamp)>=0)return;Z.link(z.sourceId,z.targetId,z.timestamp),F.update(z.timestamp),K.add({type:"link",...z}),R=!0,E(z.timestamp)},unlink:(z)=>{let A=Z.get(z.sourceId);if(!A||F.compare(A.timestamp,z.timestamp)>=0)return;Z.unlink(z.sourceId,z.targetId,z.timestamp),F.update(z.timestamp),K.add({type:"unlink",...z}),R=!0,E(z.timestamp)},sync:async({timestamp:z})=>{let A=K.getOldest();if(z==null||A&&F.compare(z,A.timestamp)<0)return log.info("\uD83D\uDCA5 [FALLBACK] Peer too far behind → sending FULL state."),x.send([{type:"fullStateSync",graphData:Z.nodes,removals:K.getDelta(null).filter((d)=>d.type==="remove"),timestamp:I}]);let p=K.getDelta(null);if(!p.length)return;let _=p.map((d)=>{if(d.type!=="upsert")return d;let f=Z.get(d.id);if(f?.meta)return{...f.meta.signedPayload,originEthAddress:f.meta.author,signature:f.meta.sig};return{...d,value:f?.value}});log.info(`\uD83D\uDE80 [DELTA SYNC SENDING] ${_.length} ops.`),await x.send([{type:"deltaSync",operations:_,timestamp:I}])},deltaSync:({operations:z})=>{let A=c(z);if(!Array.isArray(A)){log.warn("⚠️ deltaSync payload not array. Ignored.");return}log.info(`\uD83D\uDEF0️ [DELTA SYNC RECEIVED] ${A.length} ops.`);for(let O of A)if(O&&y[O.type])y[O.type](O);else if(O)log.warn(`\uD83E\uDD37 Unknown op: ${O.type}`)},fullStateSync:async({graphData:z,removals:A,timestamp:O})=>{if(!z||typeof z!=="object"){log.error("❌ Invalid full graph data received");return}try{log.info("\uD83D\uDCE6 [FULL SYNC RECEIVED] Merging full graph.");let p=z,_=new Map;for(let f of K.getDelta(null))if(f.type==="remove")_.set(f.id,f.timestamp);for(let[f,o]of Object.entries(p)){let S6=Z.nodes[f],u=o.meta?.signedPayload?.timestamp??o.timestamp,W6=S6?.timestamp??_.get(f);if(!W6||F.compare(W6,u)<0){if(h&&!h.node(o,S6)){log.warn(`⚠️ [SYNC-AUTH] fullStateSync upsert denied: ${f}`);continue}Z.nodes[f]=o.meta?{...o,value:o.meta.signedPayload.value,timestamp:u}:o,K.add({type:"upsert",id:f,timestamp:u})}}for(let f of A??[]){let o=Z.nodes[f.id];if(o&&F.compare(o.timestamp,f.timestamp)<0){if(h&&!h.removal(o)){log.warn(`⚠️ [SYNC-AUTH] fullStateSync removal denied: ${f.id}`);continue}delete Z.nodes[f.id],K.add({type:"remove",id:f.id,timestamp:f.timestamp})}}let d=new Set(Object.keys(p));if(Object.keys(Z.nodes).some((f)=>!d.has(f)))x.send([{type:"fullStateSync",graphData:Z.nodes,removals:K.getDelta(null).filter((f)=>f.type==="remove"),timestamp:I}]);if(R=!0,O)E(O),F.update(O)}catch(p){log.error("❌ Full sync failed:",p)}}};for(let z of B)if(y[z.type])await y[z.type](z);else log.warn(`\uD83E\uDD37 Unknown type: ${z.type}`);if(M&&(!I||F.compare(M,I)>0))log.info(`\uD83D\uDCC8 [GLOBAL TS] Advanced to ${M.logical}`),D(M);if(R)log.info("\uD83D\uDCBE [STATE CHANGED] Saving + emitting."),await A6(),Y6()}Object.assign(L,{use(B){if(typeof B==="function")$.push(B)},setSyncAuthGate(B){h=B},captureProvenance(B){let R=!1;for(let M of B??[]){if(M?.type!=="upsert"||!M.signature||!h?.isOwned(M.value))continue;let E=Z.get(M.id);if(!E||F.compare(E.timestamp,M.timestamp)!==0)continue;E.meta={author:M.originEthAddress,sig:M.signature,signedPayload:{type:"upsert",id:M.id,value:M.value,timestamp:M.timestamp,originUser:M.originUser}},R=!0}if(R)A6()},async put(B,R){let M=F.now();D(M),R=R??crypto.randomUUID(),Z.upsert(R,B,M),K.add({type:"upsert",id:R,timestamp:M}),A6();try{N.push({type:"upsert",id:R,value:B,timestamp:M}),P6().catch(()=>{})}finally{Y6()}return R},async link(B,R){let M=F.now();if(!Z.nodes[B]||!Z.nodes[R]){log.warn(`⚠️ One or both nodes (${B}, ${R}) do not exist.`);return}Z.link(B,R,M),K.add({type:"link",sourceId:B,targetId:R,timestamp:M}),A6(),D(M);try{N.push({type:"link",sourceId:B,targetId:R,timestamp:M}),P6().catch(()=>{})}finally{Y6()}},async unlink(B,R){let M=F.now();if(!Z.nodes[B]?.edges.includes(R)){log.warn(`⚠️ No edge from '${B}' to '${R}'.`);return}Z.unlink(B,R,M),K.add({type:"unlink",sourceId:B,targetId:R,timestamp:M}),A6(),D(M);try{N.push({type:"unlink",sourceId:B,targetId:R,timestamp:M}),P6().catch(()=>{})}finally{Y6()}},async remove(B){let R=F.now(),M=Z.get(B);if(!M)return log.warn(`⚠️ Node with ID '${B}' not found.`);delete Z.nodes[B],K.add({type:"remove",id:B,timestamp:R}),Object.values(Z.nodes).forEach((E)=>E.edges=E.edges.filter((c)=>c!==B)),A6(),D(R);try{N.push({type:"remove",id:B,value:M.value,timestamp:R}),P6().catch(()=>{})}finally{Y6()}},async get(B,R=null){if(typeof B!=="string")return{result:null};let M=Z.get(B);if(!M){if(R)R(null);return{result:null}}let E=(z)=>{if(!z)return null;let A=z.value!==null&&typeof z.value==="object"?{...z.value}:z.value;return{...z,value:A}};if(!R)return{result:E(M)};let c=M.timestamp;R(E(M));let y=(z)=>{let A=z[B];if(A){if(F.compare(A.timestamp,c)>0)c=A.timestamp,R(E(A))}else R(null),j.splice(j.indexOf(y),1)};return j.push(y),{result:E(M),unsubscribe:()=>{let z=j.indexOf(y);if(z>-1)j.splice(z,1)}}},async map(...B){let M={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},E=null,c=!1;B.forEach((O)=>typeof O==="function"?E=O:O&&typeof O==="object"&&(c=c||("realtime"in O),Object.assign(M,O))),E&&!c&&(M.realtime=!0);let y=F8(Z.nodes,M),z=null,A=(O)=>{let p=new Map(y.map((u)=>[u.id,u])),_=new Map(O.map((u)=>[u.id,u])),d=[],f=[],o=[];for(let[u,W6]of _){let K0=p.get(u);if(!K0)d.push(W6);else if((W6.timestamp?.physical||0)!==(K0.timestamp?.physical||0)||(W6.timestamp?.logical||0)!==(K0.timestamp?.logical||0)||!iJ(W6.edges||[],K0.edges||[]))f.push(W6)}for(let[u]of p)if(!_.has(u))o.push(p.get(u));let S6=(u,W6)=>E({id:u.id,value:W6==="removed"?null:u.value,edges:u.edges||[],timestamp:u.timestamp||null,action:W6});d.forEach((u)=>S6(u,"added")),o.forEach((u)=>S6(u,"removed")),f.forEach((u)=>S6(u,"updated"))};if(E){if(y.forEach((O)=>{E({id:O.id,value:O.value,edges:O.edges,timestamp:O.timestamp,action:"initial"})}),M.realtime){let O=(p)=>{let _=p.timestamp?.physical||0,d=p.timestamp?.logical||0,f=(p.edges||[]).join(",");return`${p.id}:${_}:${d}:${f}`};z=(p)=>{let _=F8(p,M);if(_.length!==y.length)A(_),y=_;else{let d=_.map(O),f=y.map(O);if(!iJ(d,f))A(_),y=_}},j.push(z)}}return{results:y,...M.realtime&&E&&z&&{unsubscribe:()=>{let O=j.indexOf(z);O>-1&&j.splice(O,1)}}}},async clear(){Z.nodes={},I=null,localStorage.removeItem(`${J}_time`),K.clear(),await z8(),Q6(),log.info("✅ All data has been deleted.")}}),T(),S(),await j7(),await B6();let N6=[];if(q)N6.push(g("sm",q));if(P)N6.push(g("ai",P));if(X)N6.push(g("audit",X));if(G)N6.push(g("geo",G));if(H)N6.push(g("nlq",H));await Promise.all(N6);let oJ=`graph-sync-room-${J}`;if(W){let B=W?.constructor===Object?W:{},{join:R,selfId:M}=await g("genosrtc"),E={appId:"1234",...V&&{password:V},...B.relayUrls&&{relayUrls:B.relayUrls},...B.turnConfig&&{turnConfig:B.turnConfig},...B.cells&&{cells:!0},...B.cells&&B.cells!==!0&&{overlay:B.cells}},c=R(E,oJ);x=c.channel("syncGraph"),k=R(E,`app-sync-${J}`),L.room=k,L.selfId=M,c.on("peer:join",async(y)=>{log.info("⚡ New peer connected:",y),x.send([{type:"sync",timestamp:I}])}),c.on("peer:leave",(y)=>{log.info("⚡ Peer disconnected:",y)}),x?.on("message",async(y)=>{let z;try{if(y instanceof Uint8Array||y instanceof ArrayBuffer){let O=M6(y);z=Array.isArray(O)?O:[O]}else z=Array.isArray(y)?y:[y]}catch(O){return log.error("❌ Failed to decode MessagePack:",O)}let A=new Map([...new Set(z.flatMap((O)=>["id","sourceId","targetId"].map((p)=>O&&O[p]).filter(Boolean)))].map((O)=>Z.get(O)?[O,Z8(Z.get(O))]:null).filter(Boolean));for(let O of $)try{if(z=await O(z,A),!z||!z.length)return}catch(p){log.error("❌ Middleware error, discarding message.",p);return}await rJ(z)})}return w=new BroadcastChannel(`graphdb_sync_${J}`),w.onmessage=async(B)=>{if(B.data==="update")log.info("\uD83D\uDD04 Update received from another tab..."),await B6(),S(),Y6()},log.info(`✅ GenosDB [ \x1B[32m${J}\x1B[0m ] instance is ready.`),L}export{yQ as gdb};
2
+ function H8(J){let Q=J.length,W=0,V=0;while(V<Q){let q=J.charCodeAt(V++);if((q&4294967168)===0){W++;continue}else if((q&4294965248)===0)W+=2;else{if(q>=55296&&q<=56319){if(V<Q){let X=J.charCodeAt(V);if((X&64512)===56320)++V,q=((q&1023)<<10)+(X&1023)+65536}}if((q&4294901760)===0)W+=3;else W+=4}}return W}function aJ(J,Q,W){let V=J.length,q=W,X=0;while(X<V){let P=J.charCodeAt(X++);if((P&4294967168)===0){Q[q++]=P;continue}else if((P&4294965248)===0)Q[q++]=P>>6&31|192;else{if(P>=55296&&P<=56319){if(X<V){let G=J.charCodeAt(X);if((G&64512)===56320)++X,P=((P&1023)<<10)+(G&1023)+65536}}if((P&4294901760)===0)Q[q++]=P>>12&15|224,Q[q++]=P>>6&63|128;else Q[q++]=P>>18&7|240,Q[q++]=P>>12&63|128,Q[q++]=P>>6&63|128}Q[q++]=P&63|128}}var sJ=new TextEncoder,tJ=50;function eJ(J,Q,W){sJ.encodeInto(J,Q.subarray(W))}function $8(J,Q,W){if(J.length>tJ)eJ(J,Q,W);else aJ(J,Q,W)}var J5=4096;function T0(J,Q,W){let V=Q,q=V+W,X=[],P="";while(V<q){let G=J[V++];if((G&128)===0)X.push(G);else if((G&224)===192){let H=J[V++]&63;X.push((G&31)<<6|H)}else if((G&240)===224){let H=J[V++]&63,Y=J[V++]&63;X.push((G&31)<<12|H<<6|Y)}else if((G&248)===240){let H=J[V++]&63,Y=J[V++]&63,U=J[V++]&63,Z=(G&7)<<18|H<<12|Y<<6|U;if(Z>65535)Z-=65536,X.push(Z>>>10&1023|55296),Z=56320|Z&1023;X.push(Z)}else X.push(G);if(X.length>=J5)P+=String.fromCharCode(...X),X.length=0}if(X.length>0)P+=String.fromCharCode(...X);return P}var W5=new TextDecoder,Q5=200;function V5(J,Q,W){let V=J.subarray(Q,Q+W);return W5.decode(V)}function k8(J,Q,W){if(W>Q5)return V5(J,Q,W);else return T0(J,Q,W)}class T6{constructor(J,Q){this.type=J,this.data=Q}}class n extends Error{constructor(J){super(J);let Q=Object.create(n.prototype);Object.setPrototypeOf(this,Q),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:n.name})}}var v6=4294967295;function B8(J,Q,W){let V=W/4294967296,q=W;J.setUint32(Q,V),J.setUint32(Q+4,q)}function F0(J,Q,W){let V=Math.floor(W/4294967296),q=W;J.setUint32(Q,V),J.setUint32(Q+4,q)}function Z0(J,Q){let W=J.getInt32(Q),V=J.getUint32(Q+4);return W*4294967296+V}function j8(J,Q){let W=J.getUint32(Q),V=J.getUint32(Q+4);return W*4294967296+V}var q5=-1,X5=4294967295,G5=17179869183;function Y5({sec:J,nsec:Q}){if(J>=0&&Q>=0&&J<=G5)if(Q===0&&J<=X5){let W=new Uint8Array(4);return new DataView(W.buffer).setUint32(0,J),W}else{let W=J/4294967296,V=J&4294967295,q=new Uint8Array(8),X=new DataView(q.buffer);return X.setUint32(0,Q<<2|W&3),X.setUint32(4,V),q}else{let W=new Uint8Array(12),V=new DataView(W.buffer);return V.setUint32(0,Q),F0(V,4,J),W}}function P5(J){let Q=J.getTime(),W=Math.floor(Q/1000),V=(Q-W*1000)*1e6,q=Math.floor(V/1e9);return{sec:W+q,nsec:V-q*1e9}}function U5(J){if(J instanceof Date){let Q=P5(J);return Y5(Q)}else return null}function K5(J){let Q=new DataView(J.buffer,J.byteOffset,J.byteLength);switch(J.byteLength){case 4:{let W=Q.getUint32(0),V=0;return{sec:W,nsec:0}}case 8:{let W=Q.getUint32(0),V=Q.getUint32(4),q=(W&3)*4294967296+V,X=W>>>2;return{sec:q,nsec:X}}case 12:{let W=Z0(Q,4),V=Q.getUint32(0);return{sec:W,nsec:V}}default:throw new n(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${J.length}`)}}function F5(J){let Q=K5(J);return new Date(Q.sec*1000+Q.nsec/1e6)}var M8={type:q5,encode:U5,decode:F5};class j6{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(M8)}register({type:J,encode:Q,decode:W}){if(J>=0)this.encoders[J]=Q,this.decoders[J]=W;else{let V=-1-J;this.builtInEncoders[V]=Q,this.builtInDecoders[V]=W}}tryToEncode(J,Q){for(let W=0;W<this.builtInEncoders.length;W++){let V=this.builtInEncoders[W];if(V!=null){let q=V(J,Q);if(q!=null){let X=-1-W;return new T6(X,q)}}}for(let W=0;W<this.encoders.length;W++){let V=this.encoders[W];if(V!=null){let q=V(J,Q);if(q!=null)return new T6(W,q)}}if(J instanceof T6)return J;return null}decode(J,Q,W){let V=Q<0?this.builtInDecoders[-1-Q]:this.decoders[Q];if(V)return V(J,Q,W);else return new T6(Q,J)}}j6.defaultCodec=new j6;function Z5(J){return J instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&J instanceof SharedArrayBuffer}function _6(J){if(J instanceof Uint8Array)return J;else if(ArrayBuffer.isView(J))return new Uint8Array(J.buffer,J.byteOffset,J.byteLength);else if(Z5(J))return new Uint8Array(J);else return Uint8Array.from(J)}var z5=100,H5=2048;class z0{constructor(J){this.entered=!1,this.extensionCodec=J?.extensionCodec??j6.defaultCodec,this.context=J?.context,this.useBigInt64=J?.useBigInt64??!1,this.maxDepth=J?.maxDepth??z5,this.initialBufferSize=J?.initialBufferSize??H5,this.sortKeys=J?.sortKeys??!1,this.forceFloat32=J?.forceFloat32??!1,this.ignoreUndefined=J?.ignoreUndefined??!1,this.forceIntegerToFloat=J?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new z0({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(J){if(this.entered)return this.clone().encodeSharedRef(J);try{return this.entered=!0,this.reinitializeState(),this.doEncode(J,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(J){if(this.entered)return this.clone().encode(J);try{return this.entered=!0,this.reinitializeState(),this.doEncode(J,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(J,Q){if(Q>this.maxDepth)throw Error(`Too deep objects in depth ${Q}`);if(J==null)this.encodeNil();else if(typeof J==="boolean")this.encodeBoolean(J);else if(typeof J==="number")if(!this.forceIntegerToFloat)this.encodeNumber(J);else this.encodeNumberAsFloat(J);else if(typeof J==="string")this.encodeString(J);else if(this.useBigInt64&&typeof J==="bigint")this.encodeBigInt64(J);else this.encodeObject(J,Q)}ensureBufferSizeToWrite(J){let Q=this.pos+J;if(this.view.byteLength<Q)this.resizeBuffer(Q*2)}resizeBuffer(J){let Q=new ArrayBuffer(J),W=new Uint8Array(Q),V=new DataView(Q);W.set(this.bytes),this.view=V,this.bytes=W}encodeNil(){this.writeU8(192)}encodeBoolean(J){if(J===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(J){if(!this.forceIntegerToFloat&&Number.isSafeInteger(J))if(J>=0)if(J<128)this.writeU8(J);else if(J<256)this.writeU8(204),this.writeU8(J);else if(J<65536)this.writeU8(205),this.writeU16(J);else if(J<4294967296)this.writeU8(206),this.writeU32(J);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(J);else this.encodeNumberAsFloat(J);else if(J>=-32)this.writeU8(224|J+32);else if(J>=-128)this.writeU8(208),this.writeI8(J);else if(J>=-32768)this.writeU8(209),this.writeI16(J);else if(J>=-2147483648)this.writeU8(210),this.writeI32(J);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(J);else this.encodeNumberAsFloat(J);else this.encodeNumberAsFloat(J)}encodeNumberAsFloat(J){if(this.forceFloat32)this.writeU8(202),this.writeF32(J);else this.writeU8(203),this.writeF64(J)}encodeBigInt64(J){if(J>=BigInt(0))this.writeU8(207),this.writeBigUint64(J);else this.writeU8(211),this.writeBigInt64(J)}writeStringHeader(J){if(J<32)this.writeU8(160+J);else if(J<256)this.writeU8(217),this.writeU8(J);else if(J<65536)this.writeU8(218),this.writeU16(J);else if(J<4294967296)this.writeU8(219),this.writeU32(J);else throw Error(`Too long string: ${J} bytes in UTF-8`)}encodeString(J){let W=H8(J);this.ensureBufferSizeToWrite(5+W),this.writeStringHeader(W),$8(J,this.bytes,this.pos),this.pos+=W}encodeObject(J,Q){let W=this.extensionCodec.tryToEncode(J,this.context);if(W!=null)this.encodeExtension(W);else if(Array.isArray(J))this.encodeArray(J,Q);else if(ArrayBuffer.isView(J))this.encodeBinary(J);else if(typeof J==="object")this.encodeMap(J,Q);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(J)}`)}encodeBinary(J){let Q=J.byteLength;if(Q<256)this.writeU8(196),this.writeU8(Q);else if(Q<65536)this.writeU8(197),this.writeU16(Q);else if(Q<4294967296)this.writeU8(198),this.writeU32(Q);else throw Error(`Too large binary: ${Q}`);let W=_6(J);this.writeU8a(W)}encodeArray(J,Q){let W=J.length;if(W<16)this.writeU8(144+W);else if(W<65536)this.writeU8(220),this.writeU16(W);else if(W<4294967296)this.writeU8(221),this.writeU32(W);else throw Error(`Too large array: ${W}`);for(let V of J)this.doEncode(V,Q+1)}countWithoutUndefined(J,Q){let W=0;for(let V of Q)if(J[V]!==void 0)W++;return W}encodeMap(J,Q){let W=Object.keys(J);if(this.sortKeys)W.sort();let V=this.ignoreUndefined?this.countWithoutUndefined(J,W):W.length;if(V<16)this.writeU8(128+V);else if(V<65536)this.writeU8(222),this.writeU16(V);else if(V<4294967296)this.writeU8(223),this.writeU32(V);else throw Error(`Too large map object: ${V}`);for(let q of W){let X=J[q];if(!(this.ignoreUndefined&&X===void 0))this.encodeString(q),this.doEncode(X,Q+1)}}encodeExtension(J){if(typeof J.data==="function"){let W=J.data(this.pos+6),V=W.length;if(V>=4294967296)throw Error(`Too large extension object: ${V}`);this.writeU8(201),this.writeU32(V),this.writeI8(J.type),this.writeU8a(W);return}let Q=J.data.length;if(Q===1)this.writeU8(212);else if(Q===2)this.writeU8(213);else if(Q===4)this.writeU8(214);else if(Q===8)this.writeU8(215);else if(Q===16)this.writeU8(216);else if(Q<256)this.writeU8(199),this.writeU8(Q);else if(Q<65536)this.writeU8(200),this.writeU16(Q);else if(Q<4294967296)this.writeU8(201),this.writeU32(Q);else throw Error(`Too large extension object: ${Q}`);this.writeI8(J.type),this.writeU8a(J.data)}writeU8(J){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,J),this.pos++}writeU8a(J){let Q=J.length;this.ensureBufferSizeToWrite(Q),this.bytes.set(J,this.pos),this.pos+=Q}writeI8(J){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,J),this.pos++}writeU16(J){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,J),this.pos+=2}writeI16(J){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,J),this.pos+=2}writeU32(J){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,J),this.pos+=4}writeI32(J){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,J),this.pos+=4}writeF32(J){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,J),this.pos+=4}writeF64(J){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,J),this.pos+=8}writeU64(J){this.ensureBufferSizeToWrite(8),B8(this.view,this.pos,J),this.pos+=8}writeI64(J){this.ensureBufferSizeToWrite(8),F0(this.view,this.pos,J),this.pos+=8}writeBigUint64(J){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,J),this.pos+=8}writeBigInt64(J){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,J),this.pos+=8}}function H0(J,Q){return new z0(Q).encodeSharedRef(J)}function $0(J){return`${J<0?"-":""}0x${Math.abs(J).toString(16).padStart(2,"0")}`}var $5=16,k5=16;class v0{constructor(J=$5,Q=k5){this.hit=0,this.miss=0,this.maxKeyLength=J,this.maxLengthPerKey=Q,this.caches=[];for(let W=0;W<this.maxKeyLength;W++)this.caches.push([])}canBeCached(J){return J>0&&J<=this.maxKeyLength}find(J,Q,W){let V=this.caches[W-1];J:for(let q of V){let X=q.bytes;for(let P=0;P<W;P++)if(X[P]!==J[Q+P])continue J;return q.str}return null}store(J,Q){let W=this.caches[J.length-1],V={bytes:J,str:Q};if(W.length>=this.maxLengthPerKey)W[Math.random()*W.length|0]=V;else W.push(V)}decode(J,Q,W){let V=this.find(J,Q,W);if(V!=null)return this.hit++,V;this.miss++;let q=T0(J,Q,W),X=Uint8Array.prototype.slice.call(J,Q,Q+W);return this.store(X,q),q}}var g0="array",d6="map_key",L8="map_value",B5=(J)=>{if(typeof J==="string"||typeof J==="number")return J;throw new n("The type of key must be string or number but "+typeof J)};class R8{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(J){let Q=this.getUninitializedStateFromPool();Q.type=g0,Q.position=0,Q.size=J,Q.array=Array(J)}pushMapState(J){let Q=this.getUninitializedStateFromPool();Q.type=d6,Q.readCount=0,Q.size=J,Q.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let J={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(J)}return this.stack[this.stackHeadPosition]}release(J){if(this.stack[this.stackHeadPosition]!==J)throw Error("Invalid stack state. Released state is not on top of the stack.");if(J.type===g0){let W=J;W.size=0,W.array=void 0,W.position=0,W.type=void 0}if(J.type===d6||J.type===L8){let W=J;W.size=0,W.map=void 0,W.readCount=0,W.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var c6=-1,E0=new DataView(new ArrayBuffer(0)),j5=new Uint8Array(E0.buffer);try{E0.getInt8(0)}catch(J){if(!(J instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var C8=RangeError("Insufficient data"),M5=new v0;class k0{constructor(J){this.totalPos=0,this.pos=0,this.view=E0,this.bytes=j5,this.headByte=c6,this.stack=new R8,this.entered=!1,this.extensionCodec=J?.extensionCodec??j6.defaultCodec,this.context=J?.context,this.useBigInt64=J?.useBigInt64??!1,this.rawStrings=J?.rawStrings??!1,this.maxStrLength=J?.maxStrLength??v6,this.maxBinLength=J?.maxBinLength??v6,this.maxArrayLength=J?.maxArrayLength??v6,this.maxMapLength=J?.maxMapLength??v6,this.maxExtLength=J?.maxExtLength??v6,this.keyDecoder=J?.keyDecoder!==void 0?J.keyDecoder:M5,this.mapKeyConverter=J?.mapKeyConverter??B5}clone(){return new k0({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=c6,this.stack.reset()}setBuffer(J){let Q=_6(J);this.bytes=Q,this.view=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),this.pos=0}appendBuffer(J){if(this.headByte===c6&&!this.hasRemaining(1))this.setBuffer(J);else{let Q=this.bytes.subarray(this.pos),W=_6(J),V=new Uint8Array(Q.length+W.length);V.set(Q),V.set(W,Q.length),this.setBuffer(V)}}hasRemaining(J){return this.view.byteLength-this.pos>=J}createExtraByteError(J){let{view:Q,pos:W}=this;return RangeError(`Extra ${Q.byteLength-W} of ${Q.byteLength} byte(s) found at buffer[${J}]`)}decode(J){if(this.entered)return this.clone().decode(J);try{this.entered=!0,this.reinitializeState(),this.setBuffer(J);let Q=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return Q}finally{this.entered=!1}}*decodeMulti(J){if(this.entered){yield*this.clone().decodeMulti(J);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(J);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(J){if(this.entered)return this.clone().decodeAsync(J);try{this.entered=!0;let Q=!1,W;for await(let P of J){if(Q)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(P);try{W=this.doDecodeSync(),Q=!0}catch(G){if(!(G instanceof RangeError))throw G}this.totalPos+=this.pos}if(Q){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return W}let{headByte:V,pos:q,totalPos:X}=this;throw RangeError(`Insufficient data in parsing ${$0(V)} at ${X} (${q} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(J){return this.decodeMultiAsync(J,!0)}decodeStream(J){return this.decodeMultiAsync(J,!1)}async*decodeMultiAsync(J,Q){if(this.entered){yield*this.clone().decodeMultiAsync(J,Q);return}try{this.entered=!0;let W=Q,V=-1;for await(let q of J){if(Q&&V===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(q),W)V=this.readArraySize(),W=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--V===0)break}catch(X){if(!(X instanceof RangeError))throw X}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){J:while(!0){let J=this.readHeadByte(),Q;if(J>=224)Q=J-256;else if(J<192)if(J<128)Q=J;else if(J<144){let V=J-128;if(V!==0){this.pushMapState(V),this.complete();continue J}else Q={}}else if(J<160){let V=J-144;if(V!==0){this.pushArrayState(V),this.complete();continue J}else Q=[]}else{let V=J-160;Q=this.decodeString(V,0)}else if(J===192)Q=null;else if(J===194)Q=!1;else if(J===195)Q=!0;else if(J===202)Q=this.readF32();else if(J===203)Q=this.readF64();else if(J===204)Q=this.readU8();else if(J===205)Q=this.readU16();else if(J===206)Q=this.readU32();else if(J===207)if(this.useBigInt64)Q=this.readU64AsBigInt();else Q=this.readU64();else if(J===208)Q=this.readI8();else if(J===209)Q=this.readI16();else if(J===210)Q=this.readI32();else if(J===211)if(this.useBigInt64)Q=this.readI64AsBigInt();else Q=this.readI64();else if(J===217){let V=this.lookU8();Q=this.decodeString(V,1)}else if(J===218){let V=this.lookU16();Q=this.decodeString(V,2)}else if(J===219){let V=this.lookU32();Q=this.decodeString(V,4)}else if(J===220){let V=this.readU16();if(V!==0){this.pushArrayState(V),this.complete();continue J}else Q=[]}else if(J===221){let V=this.readU32();if(V!==0){this.pushArrayState(V),this.complete();continue J}else Q=[]}else if(J===222){let V=this.readU16();if(V!==0){this.pushMapState(V),this.complete();continue J}else Q={}}else if(J===223){let V=this.readU32();if(V!==0){this.pushMapState(V),this.complete();continue J}else Q={}}else if(J===196){let V=this.lookU8();Q=this.decodeBinary(V,1)}else if(J===197){let V=this.lookU16();Q=this.decodeBinary(V,2)}else if(J===198){let V=this.lookU32();Q=this.decodeBinary(V,4)}else if(J===212)Q=this.decodeExtension(1,0);else if(J===213)Q=this.decodeExtension(2,0);else if(J===214)Q=this.decodeExtension(4,0);else if(J===215)Q=this.decodeExtension(8,0);else if(J===216)Q=this.decodeExtension(16,0);else if(J===199){let V=this.lookU8();Q=this.decodeExtension(V,1)}else if(J===200){let V=this.lookU16();Q=this.decodeExtension(V,2)}else if(J===201){let V=this.lookU32();Q=this.decodeExtension(V,4)}else throw new n(`Unrecognized type byte: ${$0(J)}`);this.complete();let W=this.stack;while(W.length>0){let V=W.top();if(V.type===g0)if(V.array[V.position]=Q,V.position++,V.position===V.size)Q=V.array,W.release(V);else continue J;else if(V.type===d6){if(Q==="__proto__")throw new n("The key __proto__ is not allowed");V.key=this.mapKeyConverter(Q),V.type=L8;continue J}else if(V.map[V.key]=Q,V.readCount++,V.readCount===V.size)Q=V.map,W.release(V);else{V.key=null,V.type=d6;continue J}}return Q}}readHeadByte(){if(this.headByte===c6)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=c6}readArraySize(){let J=this.readHeadByte();switch(J){case 220:return this.readU16();case 221:return this.readU32();default:if(J<160)return J-144;else throw new n(`Unrecognized array type byte: ${$0(J)}`)}}pushMapState(J){if(J>this.maxMapLength)throw new n(`Max length exceeded: map length (${J}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(J)}pushArrayState(J){if(J>this.maxArrayLength)throw new n(`Max length exceeded: array length (${J}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(J)}decodeString(J,Q){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(J,Q);return this.decodeBinary(J,Q)}decodeUtf8String(J,Q){if(J>this.maxStrLength)throw new n(`Max length exceeded: UTF-8 byte length (${J}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+Q+J)throw C8;let W=this.pos+Q,V;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(J))V=this.keyDecoder.decode(this.bytes,W,J);else V=k8(this.bytes,W,J);return this.pos+=Q+J,V}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===d6;return!1}decodeBinary(J,Q){if(J>this.maxBinLength)throw new n(`Max length exceeded: bin length (${J}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(J+Q))throw C8;let W=this.pos+Q,V=this.bytes.subarray(W,W+J);return this.pos+=Q+J,V}decodeExtension(J,Q){if(J>this.maxExtLength)throw new n(`Max length exceeded: ext length (${J}) > maxExtLength (${this.maxExtLength})`);let W=this.view.getInt8(this.pos+Q),V=this.decodeBinary(J,Q+1);return this.extensionCodec.decode(V,W,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let J=this.view.getUint8(this.pos);return this.pos++,J}readI8(){let J=this.view.getInt8(this.pos);return this.pos++,J}readU16(){let J=this.view.getUint16(this.pos);return this.pos+=2,J}readI16(){let J=this.view.getInt16(this.pos);return this.pos+=2,J}readU32(){let J=this.view.getUint32(this.pos);return this.pos+=4,J}readI32(){let J=this.view.getInt32(this.pos);return this.pos+=4,J}readU64(){let J=j8(this.view,this.pos);return this.pos+=8,J}readI64(){let J=Z0(this.view,this.pos);return this.pos+=8,J}readU64AsBigInt(){let J=this.view.getBigUint64(this.pos);return this.pos+=8,J}readI64AsBigInt(){let J=this.view.getBigInt64(this.pos);return this.pos+=8,J}readF32(){let J=this.view.getFloat32(this.pos);return this.pos+=4,J}readF64(){let J=this.view.getFloat64(this.pos);return this.pos+=8,J}}function M6(J,Q){return new k0(Q).decode(J)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function h6(J){let Q=J.length;while(--Q>=0)J[Q]=0}var C5=0,YJ=1,L5=2,R5=3,O5=258,q8=29,X0=256,s6=X0+1+q8,y6=30,X8=19,PJ=2*s6+1,C6=15,y0=16,x5=7,G8=256,UJ=16,KJ=17,FJ=18,o0=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]),R0=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]),D5=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ZJ=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I5=512,K6=Array((s6+2)*2);h6(K6);var r6=Array(y6*2);h6(r6);var t6=Array(I5);h6(t6);var e6=Array(O5-R5+1);h6(e6);var Y8=Array(q8);h6(Y8);var O0=Array(y6);h6(O0);function f0(J,Q,W,V,q){this.static_tree=J,this.extra_bits=Q,this.extra_base=W,this.elems=V,this.max_length=q,this.has_stree=J&&J.length}var zJ,HJ,$J;function b0(J,Q){this.dyn_tree=J,this.max_code=0,this.stat_desc=Q}var kJ=(J)=>{return J<256?t6[J]:t6[256+(J>>>7)]},J0=(J,Q)=>{J.pending_buf[J.pending++]=Q&255,J.pending_buf[J.pending++]=Q>>>8&255},a=(J,Q,W)=>{if(J.bi_valid>y0-W)J.bi_buf|=Q<<J.bi_valid&65535,J0(J,J.bi_buf),J.bi_buf=Q>>y0-J.bi_valid,J.bi_valid+=W-y0;else J.bi_buf|=Q<<J.bi_valid&65535,J.bi_valid+=W},q6=(J,Q,W)=>{a(J,W[Q*2],W[Q*2+1])},BJ=(J,Q)=>{let W=0;do W|=J&1,J>>>=1,W<<=1;while(--Q>0);return W>>>1},w5=(J)=>{if(J.bi_valid===16)J0(J,J.bi_buf),J.bi_buf=0,J.bi_valid=0;else if(J.bi_valid>=8)J.pending_buf[J.pending++]=J.bi_buf&255,J.bi_buf>>=8,J.bi_valid-=8},A5=(J,Q)=>{let{dyn_tree:W,max_code:V}=Q,q=Q.stat_desc.static_tree,X=Q.stat_desc.has_stree,P=Q.stat_desc.extra_bits,G=Q.stat_desc.extra_base,H=Q.stat_desc.max_length,Y,U,Z,F,K,$,I=0;for(F=0;F<=C6;F++)J.bl_count[F]=0;W[J.heap[J.heap_max]*2+1]=0;for(Y=J.heap_max+1;Y<PJ;Y++){if(U=J.heap[Y],F=W[W[U*2+1]*2+1]+1,F>H)F=H,I++;if(W[U*2+1]=F,U>V)continue;if(J.bl_count[F]++,K=0,U>=G)K=P[U-G];if($=W[U*2],J.opt_len+=$*(F+K),X)J.static_len+=$*(q[U*2+1]+K)}if(I===0)return;do{F=H-1;while(J.bl_count[F]===0)F--;J.bl_count[F]--,J.bl_count[F+1]+=2,J.bl_count[H]--,I-=2}while(I>0);for(F=H;F!==0;F--){U=J.bl_count[F];while(U!==0){if(Z=J.heap[--Y],Z>V)continue;if(W[Z*2+1]!==F)J.opt_len+=(F-W[Z*2+1])*W[Z*2],W[Z*2+1]=F;U--}}},jJ=(J,Q,W)=>{let V=Array(C6+1),q=0,X,P;for(X=1;X<=C6;X++)q=q+W[X-1]<<1,V[X]=q;for(P=0;P<=Q;P++){let G=J[P*2+1];if(G===0)continue;J[P*2]=BJ(V[G]++,G)}},N5=()=>{let J,Q,W,V,q,X=Array(C6+1);W=0;for(V=0;V<q8-1;V++){Y8[V]=W;for(J=0;J<1<<o0[V];J++)e6[W++]=V}e6[W-1]=V,q=0;for(V=0;V<16;V++){O0[V]=q;for(J=0;J<1<<R0[V];J++)t6[q++]=V}q>>=7;for(;V<y6;V++){O0[V]=q<<7;for(J=0;J<1<<R0[V]-7;J++)t6[256+q++]=V}for(Q=0;Q<=C6;Q++)X[Q]=0;J=0;while(J<=143)K6[J*2+1]=8,J++,X[8]++;while(J<=255)K6[J*2+1]=9,J++,X[9]++;while(J<=279)K6[J*2+1]=7,J++,X[7]++;while(J<=287)K6[J*2+1]=8,J++,X[8]++;jJ(K6,s6+1,X);for(J=0;J<y6;J++)r6[J*2+1]=5,r6[J*2]=BJ(J,5);zJ=new f0(K6,o0,X0+1,s6,C6),HJ=new f0(r6,R0,0,y6,C6),$J=new f0([],D5,0,X8,x5)},MJ=(J)=>{let Q;for(Q=0;Q<s6;Q++)J.dyn_ltree[Q*2]=0;for(Q=0;Q<y6;Q++)J.dyn_dtree[Q*2]=0;for(Q=0;Q<X8;Q++)J.bl_tree[Q*2]=0;J.dyn_ltree[G8*2]=1,J.opt_len=J.static_len=0,J.sym_next=J.matches=0},CJ=(J)=>{if(J.bi_valid>8)J0(J,J.bi_buf);else if(J.bi_valid>0)J.pending_buf[J.pending++]=J.bi_buf;J.bi_buf=0,J.bi_valid=0},O8=(J,Q,W,V)=>{let q=Q*2,X=W*2;return J[q]<J[X]||J[q]===J[X]&&V[Q]<=V[W]},h0=(J,Q,W)=>{let V=J.heap[W],q=W<<1;while(q<=J.heap_len){if(q<J.heap_len&&O8(Q,J.heap[q+1],J.heap[q],J.depth))q++;if(O8(Q,V,J.heap[q],J.depth))break;J.heap[W]=J.heap[q],W=q,q<<=1}J.heap[W]=V},x8=(J,Q,W)=>{let V,q,X=0,P,G;if(J.sym_next!==0)do if(V=J.pending_buf[J.sym_buf+X++]&255,V+=(J.pending_buf[J.sym_buf+X++]&255)<<8,q=J.pending_buf[J.sym_buf+X++],V===0)q6(J,q,Q);else{if(P=e6[q],q6(J,P+X0+1,Q),G=o0[P],G!==0)q-=Y8[P],a(J,q,G);if(V--,P=kJ(V),q6(J,P,W),G=R0[P],G!==0)V-=O0[P],a(J,V,G)}while(X<J.sym_next);q6(J,G8,Q)},a0=(J,Q)=>{let W=Q.dyn_tree,V=Q.stat_desc.static_tree,q=Q.stat_desc.has_stree,X=Q.stat_desc.elems,P,G,H=-1,Y;J.heap_len=0,J.heap_max=PJ;for(P=0;P<X;P++)if(W[P*2]!==0)J.heap[++J.heap_len]=H=P,J.depth[P]=0;else W[P*2+1]=0;while(J.heap_len<2)if(Y=J.heap[++J.heap_len]=H<2?++H:0,W[Y*2]=1,J.depth[Y]=0,J.opt_len--,q)J.static_len-=V[Y*2+1];Q.max_code=H;for(P=J.heap_len>>1;P>=1;P--)h0(J,W,P);Y=X;do P=J.heap[1],J.heap[1]=J.heap[J.heap_len--],h0(J,W,1),G=J.heap[1],J.heap[--J.heap_max]=P,J.heap[--J.heap_max]=G,W[Y*2]=W[P*2]+W[G*2],J.depth[Y]=(J.depth[P]>=J.depth[G]?J.depth[P]:J.depth[G])+1,W[P*2+1]=W[G*2+1]=Y,J.heap[1]=Y++,h0(J,W,1);while(J.heap_len>=2);J.heap[--J.heap_max]=J.heap[1],A5(J,Q),jJ(W,H,J.bl_count)},D8=(J,Q,W)=>{let V,q=-1,X,P=Q[1],G=0,H=7,Y=4;if(P===0)H=138,Y=3;Q[(W+1)*2+1]=65535;for(V=0;V<=W;V++){if(X=P,P=Q[(V+1)*2+1],++G<H&&X===P)continue;else if(G<Y)J.bl_tree[X*2]+=G;else if(X!==0){if(X!==q)J.bl_tree[X*2]++;J.bl_tree[UJ*2]++}else if(G<=10)J.bl_tree[KJ*2]++;else J.bl_tree[FJ*2]++;if(G=0,q=X,P===0)H=138,Y=3;else if(X===P)H=6,Y=3;else H=7,Y=4}},I8=(J,Q,W)=>{let V,q=-1,X,P=Q[1],G=0,H=7,Y=4;if(P===0)H=138,Y=3;for(V=0;V<=W;V++){if(X=P,P=Q[(V+1)*2+1],++G<H&&X===P)continue;else if(G<Y)do q6(J,X,J.bl_tree);while(--G!==0);else if(X!==0){if(X!==q)q6(J,X,J.bl_tree),G--;q6(J,UJ,J.bl_tree),a(J,G-3,2)}else if(G<=10)q6(J,KJ,J.bl_tree),a(J,G-3,3);else q6(J,FJ,J.bl_tree),a(J,G-11,7);if(G=0,q=X,P===0)H=138,Y=3;else if(X===P)H=6,Y=3;else H=7,Y=4}},S5=(J)=>{let Q;D8(J,J.dyn_ltree,J.l_desc.max_code),D8(J,J.dyn_dtree,J.d_desc.max_code),a0(J,J.bl_desc);for(Q=X8-1;Q>=3;Q--)if(J.bl_tree[ZJ[Q]*2+1]!==0)break;return J.opt_len+=3*(Q+1)+5+5+4,Q},T5=(J,Q,W,V)=>{let q;a(J,Q-257,5),a(J,W-1,5),a(J,V-4,4);for(q=0;q<V;q++)a(J,J.bl_tree[ZJ[q]*2+1],3);I8(J,J.dyn_ltree,Q-1),I8(J,J.dyn_dtree,W-1)},v5=(J)=>{let Q=4093624447,W;for(W=0;W<=31;W++,Q>>>=1)if(Q&1&&J.dyn_ltree[W*2]!==0)return 0;if(J.dyn_ltree[18]!==0||J.dyn_ltree[20]!==0||J.dyn_ltree[26]!==0)return 1;for(W=32;W<X0;W++)if(J.dyn_ltree[W*2]!==0)return 1;return 0},w8=!1,g5=(J)=>{if(!w8)N5(),w8=!0;J.l_desc=new b0(J.dyn_ltree,zJ),J.d_desc=new b0(J.dyn_dtree,HJ),J.bl_desc=new b0(J.bl_tree,$J),J.bi_buf=0,J.bi_valid=0,MJ(J)},LJ=(J,Q,W,V)=>{if(a(J,(C5<<1)+(V?1:0),3),CJ(J),J0(J,W),J0(J,~W),W)J.pending_buf.set(J.window.subarray(Q,Q+W),J.pending);J.pending+=W},E5=(J)=>{a(J,YJ<<1,3),q6(J,G8,K6),w5(J)},y5=(J,Q,W,V)=>{let q,X,P=0;if(J.level>0){if(J.strm.data_type===2)J.strm.data_type=v5(J);if(a0(J,J.l_desc),a0(J,J.d_desc),P=S5(J),q=J.opt_len+3+7>>>3,X=J.static_len+3+7>>>3,X<=q)q=X}else q=X=W+5;if(W+4<=q&&Q!==-1)LJ(J,Q,W,V);else if(J.strategy===4||X===q)a(J,(YJ<<1)+(V?1:0),3),x8(J,K6,r6);else a(J,(L5<<1)+(V?1:0),3),T5(J,J.l_desc.max_code+1,J.d_desc.max_code+1,P+1),x8(J,J.dyn_ltree,J.dyn_dtree);if(MJ(J),V)CJ(J)},f5=(J,Q,W)=>{if(J.pending_buf[J.sym_buf+J.sym_next++]=Q,J.pending_buf[J.sym_buf+J.sym_next++]=Q>>8,J.pending_buf[J.sym_buf+J.sym_next++]=W,Q===0)J.dyn_ltree[W*2]++;else J.matches++,Q--,J.dyn_ltree[(e6[W]+X0+1)*2]++,J.dyn_dtree[kJ(Q)*2]++;return J.sym_next===J.sym_end},b5=g5,h5=LJ,p5=y5,u5=f5,m5=E5,_5={_tr_init:b5,_tr_stored_block:h5,_tr_flush_block:p5,_tr_tally:u5,_tr_align:m5},c5=(J,Q,W,V)=>{let q=J&65535|0,X=J>>>16&65535|0,P=0;while(W!==0){P=W>2000?2000:W,W-=P;do q=q+Q[V++]|0,X=X+q|0;while(--P);q%=65521,X%=65521}return q|X<<16|0},W0=c5,d5=()=>{let J,Q=[];for(var W=0;W<256;W++){J=W;for(var V=0;V<8;V++)J=J&1?3988292384^J>>>1:J>>>1;Q[W]=J}return Q},l5=new Uint32Array(d5()),i5=(J,Q,W,V)=>{let q=l5,X=V+W;J^=-1;for(let P=V;P<X;P++)J=J>>>8^q[(J^Q[P])&255];return J^-1},l=i5,O6={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"},I6={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:n5,_tr_stored_block:s0,_tr_flush_block:r5,_tr_tally:H6,_tr_align:o5}=_5,{Z_NO_FLUSH:$6,Z_PARTIAL_FLUSH:a5,Z_FULL_FLUSH:s5,Z_FINISH:e,Z_BLOCK:A8,Z_OK:i,Z_STREAM_END:N8,Z_STREAM_ERROR:X6,Z_DATA_ERROR:t5,Z_BUF_ERROR:p0,Z_DEFAULT_COMPRESSION:e5,Z_FILTERED:J1,Z_HUFFMAN_ONLY:B0,Z_RLE:W1,Z_FIXED:Q1,Z_DEFAULT_STRATEGY:V1,Z_UNKNOWN:q1,Z_DEFLATED:I0}=I6,X1=9,G1=15,Y1=8,P1=29,U1=256,t0=U1+1+P1,K1=30,F1=19,Z1=2*t0+1,z1=15,v=3,z6=258,G6=z6+v+1,H1=32,f6=42,P8=57,e0=69,J8=73,W8=91,Q8=103,L6=113,i6=666,r=1,p6=2,x6=3,u6=4,$1=3,R6=(J,Q)=>{return J.msg=O6[Q],Q},S8=(J)=>{return J*2-(J>4?9:0)},Z6=(J)=>{let Q=J.length;while(--Q>=0)J[Q]=0},k1=(J)=>{let Q,W,V,q=J.w_size;Q=J.hash_size,V=Q;do W=J.head[--V],J.head[V]=W>=q?W-q:0;while(--Q);Q=q,V=Q;do W=J.prev[--V],J.prev[V]=W>=q?W-q:0;while(--Q)},B1=(J,Q,W)=>(Q<<J.hash_shift^W)&J.hash_mask,k6=B1,s=(J)=>{let Q=J.state,W=Q.pending;if(W>J.avail_out)W=J.avail_out;if(W===0)return;if(J.output.set(Q.pending_buf.subarray(Q.pending_out,Q.pending_out+W),J.next_out),J.next_out+=W,Q.pending_out+=W,J.total_out+=W,J.avail_out-=W,Q.pending-=W,Q.pending===0)Q.pending_out=0},t=(J,Q)=>{r5(J,J.block_start>=0?J.block_start:-1,J.strstart-J.block_start,Q),J.block_start=J.strstart,s(J.strm)},b=(J,Q)=>{J.pending_buf[J.pending++]=Q},l6=(J,Q)=>{J.pending_buf[J.pending++]=Q>>>8&255,J.pending_buf[J.pending++]=Q&255},V8=(J,Q,W,V)=>{let q=J.avail_in;if(q>V)q=V;if(q===0)return 0;if(J.avail_in-=q,Q.set(J.input.subarray(J.next_in,J.next_in+q),W),J.state.wrap===1)J.adler=W0(J.adler,Q,q,W);else if(J.state.wrap===2)J.adler=l(J.adler,Q,q,W);return J.next_in+=q,J.total_in+=q,q},RJ=(J,Q)=>{let{max_chain_length:W,strstart:V}=J,q,X,P=J.prev_length,G=J.nice_match,H=J.strstart>J.w_size-G6?J.strstart-(J.w_size-G6):0,Y=J.window,U=J.w_mask,Z=J.prev,F=J.strstart+z6,K=Y[V+P-1],$=Y[V+P];if(J.prev_length>=J.good_match)W>>=2;if(G>J.lookahead)G=J.lookahead;do{if(q=Q,Y[q+P]!==$||Y[q+P-1]!==K||Y[q]!==Y[V]||Y[++q]!==Y[V+1])continue;V+=2,q++;do;while(Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&Y[++V]===Y[++q]&&V<F);if(X=z6-(F-V),V=F-z6,X>P){if(J.match_start=Q,P=X,X>=G)break;K=Y[V+P-1],$=Y[V+P]}}while((Q=Z[Q&U])>H&&--W!==0);if(P<=J.lookahead)return P;return J.lookahead},b6=(J)=>{let Q=J.w_size,W,V,q;do{if(V=J.window_size-J.lookahead-J.strstart,J.strstart>=Q+(Q-G6)){if(J.window.set(J.window.subarray(Q,Q+Q-V),0),J.match_start-=Q,J.strstart-=Q,J.block_start-=Q,J.insert>J.strstart)J.insert=J.strstart;k1(J),V+=Q}if(J.strm.avail_in===0)break;if(W=V8(J.strm,J.window,J.strstart+J.lookahead,V),J.lookahead+=W,J.lookahead+J.insert>=v){q=J.strstart-J.insert,J.ins_h=J.window[q],J.ins_h=k6(J,J.ins_h,J.window[q+1]);while(J.insert)if(J.ins_h=k6(J,J.ins_h,J.window[q+v-1]),J.prev[q&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=q,q++,J.insert--,J.lookahead+J.insert<v)break}}while(J.lookahead<G6&&J.strm.avail_in!==0)},OJ=(J,Q)=>{let W=J.pending_buf_size-5>J.w_size?J.w_size:J.pending_buf_size-5,V,q,X,P=0,G=J.strm.avail_in;do{if(V=65535,X=J.bi_valid+42>>3,J.strm.avail_out<X)break;if(X=J.strm.avail_out-X,q=J.strstart-J.block_start,V>q+J.strm.avail_in)V=q+J.strm.avail_in;if(V>X)V=X;if(V<W&&(V===0&&Q!==e||Q===$6||V!==q+J.strm.avail_in))break;if(P=Q===e&&V===q+J.strm.avail_in?1:0,s0(J,0,0,P),J.pending_buf[J.pending-4]=V,J.pending_buf[J.pending-3]=V>>8,J.pending_buf[J.pending-2]=~V,J.pending_buf[J.pending-1]=~V>>8,s(J.strm),q){if(q>V)q=V;J.strm.output.set(J.window.subarray(J.block_start,J.block_start+q),J.strm.next_out),J.strm.next_out+=q,J.strm.avail_out-=q,J.strm.total_out+=q,J.block_start+=q,V-=q}if(V)V8(J.strm,J.strm.output,J.strm.next_out,V),J.strm.next_out+=V,J.strm.avail_out-=V,J.strm.total_out+=V}while(P===0);if(G-=J.strm.avail_in,G){if(G>=J.w_size)J.matches=2,J.window.set(J.strm.input.subarray(J.strm.next_in-J.w_size,J.strm.next_in),0),J.strstart=J.w_size,J.insert=J.strstart;else{if(J.window_size-J.strstart<=G){if(J.strstart-=J.w_size,J.window.set(J.window.subarray(J.w_size,J.w_size+J.strstart),0),J.matches<2)J.matches++;if(J.insert>J.strstart)J.insert=J.strstart}J.window.set(J.strm.input.subarray(J.strm.next_in-G,J.strm.next_in),J.strstart),J.strstart+=G,J.insert+=G>J.w_size-J.insert?J.w_size-J.insert:G}J.block_start=J.strstart}if(J.high_water<J.strstart)J.high_water=J.strstart;if(P)return u6;if(Q!==$6&&Q!==e&&J.strm.avail_in===0&&J.strstart===J.block_start)return p6;if(X=J.window_size-J.strstart,J.strm.avail_in>X&&J.block_start>=J.w_size){if(J.block_start-=J.w_size,J.strstart-=J.w_size,J.window.set(J.window.subarray(J.w_size,J.w_size+J.strstart),0),J.matches<2)J.matches++;if(X+=J.w_size,J.insert>J.strstart)J.insert=J.strstart}if(X>J.strm.avail_in)X=J.strm.avail_in;if(X)V8(J.strm,J.window,J.strstart,X),J.strstart+=X,J.insert+=X>J.w_size-J.insert?J.w_size-J.insert:X;if(J.high_water<J.strstart)J.high_water=J.strstart;if(X=J.bi_valid+42>>3,X=J.pending_buf_size-X>65535?65535:J.pending_buf_size-X,W=X>J.w_size?J.w_size:X,q=J.strstart-J.block_start,q>=W||(q||Q===e)&&Q!==$6&&J.strm.avail_in===0&&q<=X)V=q>X?X:q,P=Q===e&&J.strm.avail_in===0&&V===q?1:0,s0(J,J.block_start,V,P),J.block_start+=V,s(J.strm);return P?x6:r},u0=(J,Q)=>{let W,V;for(;;){if(J.lookahead<G6){if(b6(J),J.lookahead<G6&&Q===$6)return r;if(J.lookahead===0)break}if(W=0,J.lookahead>=v)J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;if(W!==0&&J.strstart-W<=J.w_size-G6)J.match_length=RJ(J,W);if(J.match_length>=v)if(V=H6(J,J.strstart-J.match_start,J.match_length-v),J.lookahead-=J.match_length,J.match_length<=J.max_lazy_match&&J.lookahead>=v){J.match_length--;do J.strstart++,J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;while(--J.match_length!==0);J.strstart++}else J.strstart+=J.match_length,J.match_length=0,J.ins_h=J.window[J.strstart],J.ins_h=k6(J,J.ins_h,J.window[J.strstart+1]);else V=H6(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++;if(V){if(t(J,!1),J.strm.avail_out===0)return r}}if(J.insert=J.strstart<v-1?J.strstart:v-1,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6},g6=(J,Q)=>{let W,V,q;for(;;){if(J.lookahead<G6){if(b6(J),J.lookahead<G6&&Q===$6)return r;if(J.lookahead===0)break}if(W=0,J.lookahead>=v)J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;if(J.prev_length=J.match_length,J.prev_match=J.match_start,J.match_length=v-1,W!==0&&J.prev_length<J.max_lazy_match&&J.strstart-W<=J.w_size-G6){if(J.match_length=RJ(J,W),J.match_length<=5&&(J.strategy===J1||J.match_length===v&&J.strstart-J.match_start>4096))J.match_length=v-1}if(J.prev_length>=v&&J.match_length<=J.prev_length){q=J.strstart+J.lookahead-v,V=H6(J,J.strstart-1-J.prev_match,J.prev_length-v),J.lookahead-=J.prev_length-1,J.prev_length-=2;do if(++J.strstart<=q)J.ins_h=k6(J,J.ins_h,J.window[J.strstart+v-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;while(--J.prev_length!==0);if(J.match_available=0,J.match_length=v-1,J.strstart++,V){if(t(J,!1),J.strm.avail_out===0)return r}}else if(J.match_available){if(V=H6(J,0,J.window[J.strstart-1]),V)t(J,!1);if(J.strstart++,J.lookahead--,J.strm.avail_out===0)return r}else J.match_available=1,J.strstart++,J.lookahead--}if(J.match_available)V=H6(J,0,J.window[J.strstart-1]),J.match_available=0;if(J.insert=J.strstart<v-1?J.strstart:v-1,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6},j1=(J,Q)=>{let W,V,q,X,P=J.window;for(;;){if(J.lookahead<=z6){if(b6(J),J.lookahead<=z6&&Q===$6)return r;if(J.lookahead===0)break}if(J.match_length=0,J.lookahead>=v&&J.strstart>0){if(q=J.strstart-1,V=P[q],V===P[++q]&&V===P[++q]&&V===P[++q]){X=J.strstart+z6;do;while(V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&V===P[++q]&&q<X);if(J.match_length=z6-(X-q),J.match_length>J.lookahead)J.match_length=J.lookahead}}if(J.match_length>=v)W=H6(J,1,J.match_length-v),J.lookahead-=J.match_length,J.strstart+=J.match_length,J.match_length=0;else W=H6(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++;if(W){if(t(J,!1),J.strm.avail_out===0)return r}}if(J.insert=0,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6},M1=(J,Q)=>{let W;for(;;){if(J.lookahead===0){if(b6(J),J.lookahead===0){if(Q===$6)return r;break}}if(J.match_length=0,W=H6(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++,W){if(t(J,!1),J.strm.avail_out===0)return r}}if(J.insert=0,Q===e){if(t(J,!0),J.strm.avail_out===0)return x6;return u6}if(J.sym_next){if(t(J,!1),J.strm.avail_out===0)return r}return p6};function V6(J,Q,W,V,q){this.good_length=J,this.max_lazy=Q,this.nice_length=W,this.max_chain=V,this.func=q}var n6=[new V6(0,0,0,0,OJ),new V6(4,4,8,4,u0),new V6(4,5,16,8,u0),new V6(4,6,32,32,u0),new V6(4,4,16,16,g6),new V6(8,16,32,32,g6),new V6(8,16,128,128,g6),new V6(8,32,128,256,g6),new V6(32,128,258,1024,g6),new V6(32,258,258,4096,g6)],C1=(J)=>{J.window_size=2*J.w_size,Z6(J.head),J.max_lazy_match=n6[J.level].max_lazy,J.good_match=n6[J.level].good_length,J.nice_match=n6[J.level].nice_length,J.max_chain_length=n6[J.level].max_chain,J.strstart=0,J.block_start=0,J.lookahead=0,J.insert=0,J.match_length=J.prev_length=v-1,J.match_available=0,J.ins_h=0};function L1(){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=I0,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(Z1*2),this.dyn_dtree=new Uint16Array((2*K1+1)*2),this.bl_tree=new Uint16Array((2*F1+1)*2),Z6(this.dyn_ltree),Z6(this.dyn_dtree),Z6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(z1+1),this.heap=new Uint16Array(2*t0+1),Z6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*t0+1),Z6(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 G0=(J)=>{if(!J)return 1;let Q=J.state;if(!Q||Q.strm!==J||Q.status!==f6&&Q.status!==P8&&Q.status!==e0&&Q.status!==J8&&Q.status!==W8&&Q.status!==Q8&&Q.status!==L6&&Q.status!==i6)return 1;return 0},xJ=(J)=>{if(G0(J))return R6(J,X6);J.total_in=J.total_out=0,J.data_type=q1;let Q=J.state;if(Q.pending=0,Q.pending_out=0,Q.wrap<0)Q.wrap=-Q.wrap;return Q.status=Q.wrap===2?P8:Q.wrap?f6:L6,J.adler=Q.wrap===2?0:1,Q.last_flush=-2,n5(Q),i},DJ=(J)=>{let Q=xJ(J);if(Q===i)C1(J.state);return Q},R1=(J,Q)=>{if(G0(J)||J.state.wrap!==2)return X6;return J.state.gzhead=Q,i},IJ=(J,Q,W,V,q,X)=>{if(!J)return X6;let P=1;if(Q===e5)Q=6;if(V<0)P=0,V=-V;else if(V>15)P=2,V-=16;if(q<1||q>X1||W!==I0||V<8||V>15||Q<0||Q>9||X<0||X>Q1||V===8&&P!==1)return R6(J,X6);if(V===8)V=9;let G=new L1;return J.state=G,G.strm=J,G.status=f6,G.wrap=P,G.gzhead=null,G.w_bits=V,G.w_size=1<<G.w_bits,G.w_mask=G.w_size-1,G.hash_bits=q+7,G.hash_size=1<<G.hash_bits,G.hash_mask=G.hash_size-1,G.hash_shift=~~((G.hash_bits+v-1)/v),G.window=new Uint8Array(G.w_size*2),G.head=new Uint16Array(G.hash_size),G.prev=new Uint16Array(G.w_size),G.lit_bufsize=1<<q+6,G.pending_buf_size=G.lit_bufsize*4,G.pending_buf=new Uint8Array(G.pending_buf_size),G.sym_buf=G.lit_bufsize,G.sym_end=(G.lit_bufsize-1)*3,G.level=Q,G.strategy=X,G.method=W,DJ(J)},O1=(J,Q)=>{return IJ(J,Q,I0,G1,Y1,V1)},x1=(J,Q)=>{if(G0(J)||Q>A8||Q<0)return J?R6(J,X6):X6;let W=J.state;if(!J.output||J.avail_in!==0&&!J.input||W.status===i6&&Q!==e)return R6(J,J.avail_out===0?p0:X6);let V=W.last_flush;if(W.last_flush=Q,W.pending!==0){if(s(J),J.avail_out===0)return W.last_flush=-1,i}else if(J.avail_in===0&&S8(Q)<=S8(V)&&Q!==e)return R6(J,p0);if(W.status===i6&&J.avail_in!==0)return R6(J,p0);if(W.status===f6&&W.wrap===0)W.status=L6;if(W.status===f6){let q=I0+(W.w_bits-8<<4)<<8,X=-1;if(W.strategy>=B0||W.level<2)X=0;else if(W.level<6)X=1;else if(W.level===6)X=2;else X=3;if(q|=X<<6,W.strstart!==0)q|=H1;if(q+=31-q%31,l6(W,q),W.strstart!==0)l6(W,J.adler>>>16),l6(W,J.adler&65535);if(J.adler=1,W.status=L6,s(J),W.pending!==0)return W.last_flush=-1,i}if(W.status===P8)if(J.adler=0,b(W,31),b(W,139),b(W,8),!W.gzhead){if(b(W,0),b(W,0),b(W,0),b(W,0),b(W,0),b(W,W.level===9?2:W.strategy>=B0||W.level<2?4:0),b(W,$1),W.status=L6,s(J),W.pending!==0)return W.last_flush=-1,i}else{if(b(W,(W.gzhead.text?1:0)+(W.gzhead.hcrc?2:0)+(!W.gzhead.extra?0:4)+(!W.gzhead.name?0:8)+(!W.gzhead.comment?0:16)),b(W,W.gzhead.time&255),b(W,W.gzhead.time>>8&255),b(W,W.gzhead.time>>16&255),b(W,W.gzhead.time>>24&255),b(W,W.level===9?2:W.strategy>=B0||W.level<2?4:0),b(W,W.gzhead.os&255),W.gzhead.extra&&W.gzhead.extra.length)b(W,W.gzhead.extra.length&255),b(W,W.gzhead.extra.length>>8&255);if(W.gzhead.hcrc)J.adler=l(J.adler,W.pending_buf,W.pending,0);W.gzindex=0,W.status=e0}if(W.status===e0){if(W.gzhead.extra){let q=W.pending,X=(W.gzhead.extra.length&65535)-W.gzindex;while(W.pending+X>W.pending_buf_size){let G=W.pending_buf_size-W.pending;if(W.pending_buf.set(W.gzhead.extra.subarray(W.gzindex,W.gzindex+G),W.pending),W.pending=W.pending_buf_size,W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);if(W.gzindex+=G,s(J),W.pending!==0)return W.last_flush=-1,i;q=0,X-=G}let P=new Uint8Array(W.gzhead.extra);if(W.pending_buf.set(P.subarray(W.gzindex,W.gzindex+X),W.pending),W.pending+=X,W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);W.gzindex=0}W.status=J8}if(W.status===J8){if(W.gzhead.name){let q=W.pending,X;do{if(W.pending===W.pending_buf_size){if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);if(s(J),W.pending!==0)return W.last_flush=-1,i;q=0}if(W.gzindex<W.gzhead.name.length)X=W.gzhead.name.charCodeAt(W.gzindex++)&255;else X=0;b(W,X)}while(X!==0);if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);W.gzindex=0}W.status=W8}if(W.status===W8){if(W.gzhead.comment){let q=W.pending,X;do{if(W.pending===W.pending_buf_size){if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q);if(s(J),W.pending!==0)return W.last_flush=-1,i;q=0}if(W.gzindex<W.gzhead.comment.length)X=W.gzhead.comment.charCodeAt(W.gzindex++)&255;else X=0;b(W,X)}while(X!==0);if(W.gzhead.hcrc&&W.pending>q)J.adler=l(J.adler,W.pending_buf,W.pending-q,q)}W.status=Q8}if(W.status===Q8){if(W.gzhead.hcrc){if(W.pending+2>W.pending_buf_size){if(s(J),W.pending!==0)return W.last_flush=-1,i}b(W,J.adler&255),b(W,J.adler>>8&255),J.adler=0}if(W.status=L6,s(J),W.pending!==0)return W.last_flush=-1,i}if(J.avail_in!==0||W.lookahead!==0||Q!==$6&&W.status!==i6){let q=W.level===0?OJ(W,Q):W.strategy===B0?M1(W,Q):W.strategy===W1?j1(W,Q):n6[W.level].func(W,Q);if(q===x6||q===u6)W.status=i6;if(q===r||q===x6){if(J.avail_out===0)W.last_flush=-1;return i}if(q===p6){if(Q===a5)o5(W);else if(Q!==A8){if(s0(W,0,0,!1),Q===s5){if(Z6(W.head),W.lookahead===0)W.strstart=0,W.block_start=0,W.insert=0}}if(s(J),J.avail_out===0)return W.last_flush=-1,i}}if(Q!==e)return i;if(W.wrap<=0)return N8;if(W.wrap===2)b(W,J.adler&255),b(W,J.adler>>8&255),b(W,J.adler>>16&255),b(W,J.adler>>24&255),b(W,J.total_in&255),b(W,J.total_in>>8&255),b(W,J.total_in>>16&255),b(W,J.total_in>>24&255);else l6(W,J.adler>>>16),l6(W,J.adler&65535);if(s(J),W.wrap>0)W.wrap=-W.wrap;return W.pending!==0?i:N8},D1=(J)=>{if(G0(J))return X6;let Q=J.state.status;return J.state=null,Q===L6?R6(J,t5):i},I1=(J,Q)=>{let W=Q.length;if(G0(J))return X6;let V=J.state,q=V.wrap;if(q===2||q===1&&V.status!==f6||V.lookahead)return X6;if(q===1)J.adler=W0(J.adler,Q,W,0);if(V.wrap=0,W>=V.w_size){if(q===0)Z6(V.head),V.strstart=0,V.block_start=0,V.insert=0;let H=new Uint8Array(V.w_size);H.set(Q.subarray(W-V.w_size,W),0),Q=H,W=V.w_size}let{avail_in:X,next_in:P,input:G}=J;J.avail_in=W,J.next_in=0,J.input=Q,b6(V);while(V.lookahead>=v){let H=V.strstart,Y=V.lookahead-(v-1);do V.ins_h=k6(V,V.ins_h,V.window[H+v-1]),V.prev[H&V.w_mask]=V.head[V.ins_h],V.head[V.ins_h]=H,H++;while(--Y);V.strstart=H,V.lookahead=v-1,b6(V)}return V.strstart+=V.lookahead,V.block_start=V.strstart,V.insert=V.lookahead,V.lookahead=0,V.match_length=V.prev_length=v-1,V.match_available=0,J.next_in=P,J.input=G,J.avail_in=X,V.wrap=q,i},w1=O1,A1=IJ,N1=DJ,S1=xJ,T1=R1,v1=x1,g1=D1,E1=I1,y1="pako deflate (from Nodeca project)",o6={deflateInit:w1,deflateInit2:A1,deflateReset:N1,deflateResetKeep:S1,deflateSetHeader:T1,deflate:v1,deflateEnd:g1,deflateSetDictionary:E1,deflateInfo:y1},f1=(J,Q)=>{return Object.prototype.hasOwnProperty.call(J,Q)},b1=function(J){let Q=Array.prototype.slice.call(arguments,1);while(Q.length){let W=Q.shift();if(!W)continue;if(typeof W!=="object")throw TypeError(W+"must be non-object");for(let V in W)if(f1(W,V))J[V]=W[V]}return J},h1=(J)=>{let Q=0;for(let V=0,q=J.length;V<q;V++)Q+=J[V].length;let W=new Uint8Array(Q);for(let V=0,q=0,X=J.length;V<X;V++){let P=J[V];W.set(P,q),q+=P.length}return W},w0={assign:b1,flattenChunks:h1},wJ=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(J){wJ=!1}var Q0=new Uint8Array(256);for(let J=0;J<256;J++)Q0[J]=J>=252?6:J>=248?5:J>=240?4:J>=224?3:J>=192?2:1;Q0[254]=Q0[254]=1;var p1=(J)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(J);let Q,W,V,q,X,P=J.length,G=0;for(q=0;q<P;q++){if(W=J.charCodeAt(q),(W&64512)===55296&&q+1<P){if(V=J.charCodeAt(q+1),(V&64512)===56320)W=65536+(W-55296<<10)+(V-56320),q++}G+=W<128?1:W<2048?2:W<65536?3:4}Q=new Uint8Array(G);for(X=0,q=0;X<G;q++){if(W=J.charCodeAt(q),(W&64512)===55296&&q+1<P){if(V=J.charCodeAt(q+1),(V&64512)===56320)W=65536+(W-55296<<10)+(V-56320),q++}if(W<128)Q[X++]=W;else if(W<2048)Q[X++]=192|W>>>6,Q[X++]=128|W&63;else if(W<65536)Q[X++]=224|W>>>12,Q[X++]=128|W>>>6&63,Q[X++]=128|W&63;else Q[X++]=240|W>>>18,Q[X++]=128|W>>>12&63,Q[X++]=128|W>>>6&63,Q[X++]=128|W&63}return Q},u1=(J,Q)=>{if(Q<65534){if(J.subarray&&wJ)return String.fromCharCode.apply(null,J.length===Q?J:J.subarray(0,Q))}let W="";for(let V=0;V<Q;V++)W+=String.fromCharCode(J[V]);return W},m1=(J,Q)=>{let W=Q||J.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(J.subarray(0,Q));let V,q,X=Array(W*2);for(q=0,V=0;V<W;){let P=J[V++];if(P<128){X[q++]=P;continue}let G=Q0[P];if(G>4){X[q++]=65533,V+=G-1;continue}P&=G===2?31:G===3?15:7;while(G>1&&V<W)P=P<<6|J[V++]&63,G--;if(G>1){X[q++]=65533;continue}if(P<65536)X[q++]=P;else P-=65536,X[q++]=55296|P>>10&1023,X[q++]=56320|P&1023}return u1(X,q)},_1=(J,Q)=>{if(Q=Q||J.length,Q>J.length)Q=J.length;let W=Q-1;while(W>=0&&(J[W]&192)===128)W--;if(W<0)return Q;if(W===0)return Q;return W+Q0[J[W]]>Q?W:Q},V0={string2buf:p1,buf2string:m1,utf8border:_1};function c1(){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 AJ=c1,NJ=Object.prototype.toString,{Z_NO_FLUSH:d1,Z_SYNC_FLUSH:l1,Z_FULL_FLUSH:i1,Z_FINISH:n1,Z_OK:x0,Z_STREAM_END:r1,Z_DEFAULT_COMPRESSION:o1,Z_DEFAULT_STRATEGY:a1,Z_DEFLATED:s1}=I6;function Y0(J){this.options=w0.assign({level:o1,method:s1,chunkSize:16384,windowBits:15,memLevel:8,strategy:a1},J||{});let Q=this.options;if(Q.raw&&Q.windowBits>0)Q.windowBits=-Q.windowBits;else if(Q.gzip&&Q.windowBits>0&&Q.windowBits<16)Q.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new AJ,this.strm.avail_out=0;let W=o6.deflateInit2(this.strm,Q.level,Q.method,Q.windowBits,Q.memLevel,Q.strategy);if(W!==x0)throw Error(O6[W]);if(Q.header)o6.deflateSetHeader(this.strm,Q.header);if(Q.dictionary){let V;if(typeof Q.dictionary==="string")V=V0.string2buf(Q.dictionary);else if(NJ.call(Q.dictionary)==="[object ArrayBuffer]")V=new Uint8Array(Q.dictionary);else V=Q.dictionary;if(W=o6.deflateSetDictionary(this.strm,V),W!==x0)throw Error(O6[W]);this._dict_set=!0}}Y0.prototype.push=function(J,Q){let W=this.strm,V=this.options.chunkSize,q,X;if(this.ended)return!1;if(Q===~~Q)X=Q;else X=Q===!0?n1:d1;if(typeof J==="string")W.input=V0.string2buf(J);else if(NJ.call(J)==="[object ArrayBuffer]")W.input=new Uint8Array(J);else W.input=J;W.next_in=0,W.avail_in=W.input.length;for(;;){if(W.avail_out===0)W.output=new Uint8Array(V),W.next_out=0,W.avail_out=V;if((X===l1||X===i1)&&W.avail_out<=6){this.onData(W.output.subarray(0,W.next_out)),W.avail_out=0;continue}if(q=o6.deflate(W,X),q===r1){if(W.next_out>0)this.onData(W.output.subarray(0,W.next_out));return q=o6.deflateEnd(this.strm),this.onEnd(q),this.ended=!0,q===x0}if(W.avail_out===0){this.onData(W.output);continue}if(X>0&&W.next_out>0){this.onData(W.output.subarray(0,W.next_out)),W.avail_out=0;continue}if(W.avail_in===0)break}return!0};Y0.prototype.onData=function(J){this.chunks.push(J)};Y0.prototype.onEnd=function(J){if(J===x0)this.result=w0.flattenChunks(this.chunks);this.chunks=[],this.err=J,this.msg=this.strm.msg};function U8(J,Q){let W=new Y0(Q);if(W.push(J,!0),W.err)throw W.msg||O6[W.err];return W.result}function t1(J,Q){return Q=Q||{},Q.raw=!0,U8(J,Q)}function e1(J,Q){return Q=Q||{},Q.gzip=!0,U8(J,Q)}var JW=Y0,WW=U8,QW=t1,VW=e1,qW=I6,XW={Deflate:JW,deflate:WW,deflateRaw:QW,gzip:VW,constants:qW},j0=16209,GW=16191,YW=function(Q,W){let V,q,X,P,G,H,Y,U,Z,F,K,$,I,j,C,x,w,k,N,h,L,g,S,D,T=Q.state;V=Q.next_in,S=Q.input,q=V+(Q.avail_in-5),X=Q.next_out,D=Q.output,P=X-(W-Q.avail_out),G=X+(Q.avail_out-257),H=T.dmax,Y=T.wsize,U=T.whave,Z=T.wnext,F=T.window,K=T.hold,$=T.bits,I=T.lencode,j=T.distcode,C=(1<<T.lenbits)-1,x=(1<<T.distbits)-1;J:do{if($<15)K+=S[V++]<<$,$+=8,K+=S[V++]<<$,$+=8;w=I[K&C];W:for(;;){if(k=w>>>24,K>>>=k,$-=k,k=w>>>16&255,k===0)D[X++]=w&65535;else if(k&16){if(N=w&65535,k&=15,k){if($<k)K+=S[V++]<<$,$+=8;N+=K&(1<<k)-1,K>>>=k,$-=k}if($<15)K+=S[V++]<<$,$+=8,K+=S[V++]<<$,$+=8;w=j[K&x];Q:for(;;){if(k=w>>>24,K>>>=k,$-=k,k=w>>>16&255,k&16){if(h=w&65535,k&=15,$<k){if(K+=S[V++]<<$,$+=8,$<k)K+=S[V++]<<$,$+=8}if(h+=K&(1<<k)-1,h>H){Q.msg="invalid distance too far back",T.mode=j0;break J}if(K>>>=k,$-=k,k=X-P,h>k){if(k=h-k,k>U){if(T.sane){Q.msg="invalid distance too far back",T.mode=j0;break J}}if(L=0,g=F,Z===0){if(L+=Y-k,k<N){N-=k;do D[X++]=F[L++];while(--k);L=X-h,g=D}}else if(Z<k){if(L+=Y+Z-k,k-=Z,k<N){N-=k;do D[X++]=F[L++];while(--k);if(L=0,Z<N){k=Z,N-=k;do D[X++]=F[L++];while(--k);L=X-h,g=D}}}else if(L+=Z-k,k<N){N-=k;do D[X++]=F[L++];while(--k);L=X-h,g=D}while(N>2)D[X++]=g[L++],D[X++]=g[L++],D[X++]=g[L++],N-=3;if(N){if(D[X++]=g[L++],N>1)D[X++]=g[L++]}}else{L=X-h;do D[X++]=D[L++],D[X++]=D[L++],D[X++]=D[L++],N-=3;while(N>2);if(N){if(D[X++]=D[L++],N>1)D[X++]=D[L++]}}}else if((k&64)===0){w=j[(w&65535)+(K&(1<<k)-1)];continue Q}else{Q.msg="invalid distance code",T.mode=j0;break J}break}}else if((k&64)===0){w=I[(w&65535)+(K&(1<<k)-1)];continue W}else if(k&32){T.mode=GW;break J}else{Q.msg="invalid literal/length code",T.mode=j0;break J}break}}while(V<q&&X<G);N=$>>3,V-=N,$-=N<<3,K&=(1<<$)-1,Q.next_in=V,Q.next_out=X,Q.avail_in=V<q?5+(q-V):5-(V-q),Q.avail_out=X<G?257+(G-X):257-(X-G),T.hold=K,T.bits=$;return},E6=15,T8=852,v8=592,g8=0,m0=1,E8=2,PW=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]),UW=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),KW=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),FW=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]),ZW=(J,Q,W,V,q,X,P,G)=>{let H=G.bits,Y=0,U=0,Z=0,F=0,K=0,$=0,I=0,j=0,C=0,x=0,w,k,N,h,L,g=null,S,D=new Uint16Array(E6+1),T=new Uint16Array(E6+1),Q6=null,Y6,P6,B6;for(Y=0;Y<=E6;Y++)D[Y]=0;for(U=0;U<V;U++)D[Q[W+U]]++;K=H;for(F=E6;F>=1;F--)if(D[F]!==0)break;if(K>F)K=F;if(F===0)return q[X++]=20971520,q[X++]=20971520,G.bits=1,0;for(Z=1;Z<F;Z++)if(D[Z]!==0)break;if(K<Z)K=Z;j=1;for(Y=1;Y<=E6;Y++)if(j<<=1,j-=D[Y],j<0)return-1;if(j>0&&(J===g8||F!==1))return-1;T[1]=0;for(Y=1;Y<E6;Y++)T[Y+1]=T[Y]+D[Y];for(U=0;U<V;U++)if(Q[W+U]!==0)P[T[Q[W+U]]++]=U;if(J===g8)g=Q6=P,S=20;else if(J===m0)g=PW,Q6=UW,S=257;else g=KW,Q6=FW,S=0;if(x=0,U=0,Y=Z,L=X,$=K,I=0,N=-1,C=1<<K,h=C-1,J===m0&&C>T8||J===E8&&C>v8)return 1;for(;;){if(Y6=Y-I,P[U]+1<S)P6=0,B6=P[U];else if(P[U]>=S)P6=Q6[P[U]-S],B6=g[P[U]-S];else P6=96,B6=0;w=1<<Y-I,k=1<<$,Z=k;do k-=w,q[L+(x>>I)+k]=Y6<<24|P6<<16|B6|0;while(k!==0);w=1<<Y-1;while(x&w)w>>=1;if(w!==0)x&=w-1,x+=w;else x=0;if(U++,--D[Y]===0){if(Y===F)break;Y=Q[W+P[U]]}if(Y>K&&(x&h)!==N){if(I===0)I=K;L+=Z,$=Y-I,j=1<<$;while($+I<F){if(j-=D[$+I],j<=0)break;$++,j<<=1}if(C+=1<<$,J===m0&&C>T8||J===E8&&C>v8)return 1;N=x&h,q[N]=K<<24|$<<16|L-X|0}}if(x!==0)q[L+x]=Y-I<<24|4194304|0;return G.bits=K,0},a6=ZW,zW=0,SJ=1,TJ=2,{Z_FINISH:y8,Z_BLOCK:HW,Z_TREES:M0,Z_OK:D6,Z_STREAM_END:$W,Z_NEED_DICT:kW,Z_STREAM_ERROR:J6,Z_DATA_ERROR:vJ,Z_MEM_ERROR:gJ,Z_BUF_ERROR:BW,Z_DEFLATED:f8}=I6,A0=16180,b8=16181,h8=16182,p8=16183,u8=16184,m8=16185,_8=16186,c8=16187,d8=16188,l8=16189,D0=16190,U6=16191,_0=16192,i8=16193,c0=16194,n8=16195,r8=16196,o8=16197,a8=16198,C0=16199,L0=16200,s8=16201,t8=16202,e8=16203,JJ=16204,WJ=16205,d0=16206,QJ=16207,VJ=16208,m=16209,EJ=16210,yJ=16211,jW=852,MW=592,CW=15,LW=CW,qJ=(J)=>{return(J>>>24&255)+(J>>>8&65280)+((J&65280)<<8)+((J&255)<<24)};function RW(){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 w6=(J)=>{if(!J)return 1;let Q=J.state;if(!Q||Q.strm!==J||Q.mode<A0||Q.mode>yJ)return 1;return 0},fJ=(J)=>{if(w6(J))return J6;let Q=J.state;if(J.total_in=J.total_out=Q.total=0,J.msg="",Q.wrap)J.adler=Q.wrap&1;return Q.mode=A0,Q.last=0,Q.havedict=0,Q.flags=-1,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new Int32Array(jW),Q.distcode=Q.distdyn=new Int32Array(MW),Q.sane=1,Q.back=-1,D6},bJ=(J)=>{if(w6(J))return J6;let Q=J.state;return Q.wsize=0,Q.whave=0,Q.wnext=0,fJ(J)},hJ=(J,Q)=>{let W;if(w6(J))return J6;let V=J.state;if(Q<0)W=0,Q=-Q;else if(W=(Q>>4)+5,Q<48)Q&=15;if(Q&&(Q<8||Q>15))return J6;if(V.window!==null&&V.wbits!==Q)V.window=null;return V.wrap=W,V.wbits=Q,bJ(J)},pJ=(J,Q)=>{if(!J)return J6;let W=new RW;J.state=W,W.strm=J,W.window=null,W.mode=A0;let V=hJ(J,Q);if(V!==D6)J.state=null;return V},OW=(J)=>{return pJ(J,LW)},XJ=!0,l0,i0,xW=(J)=>{if(XJ){l0=new Int32Array(512),i0=new Int32Array(32);let Q=0;while(Q<144)J.lens[Q++]=8;while(Q<256)J.lens[Q++]=9;while(Q<280)J.lens[Q++]=7;while(Q<288)J.lens[Q++]=8;a6(SJ,J.lens,0,288,l0,0,J.work,{bits:9}),Q=0;while(Q<32)J.lens[Q++]=5;a6(TJ,J.lens,0,32,i0,0,J.work,{bits:5}),XJ=!1}J.lencode=l0,J.lenbits=9,J.distcode=i0,J.distbits=5},uJ=(J,Q,W,V)=>{let q,X=J.state;if(X.window===null)X.wsize=1<<X.wbits,X.wnext=0,X.whave=0,X.window=new Uint8Array(X.wsize);if(V>=X.wsize)X.window.set(Q.subarray(W-X.wsize,W),0),X.wnext=0,X.whave=X.wsize;else{if(q=X.wsize-X.wnext,q>V)q=V;if(X.window.set(Q.subarray(W-V,W-V+q),X.wnext),V-=q,V)X.window.set(Q.subarray(W-V,W),0),X.wnext=V,X.whave=X.wsize;else{if(X.wnext+=q,X.wnext===X.wsize)X.wnext=0;if(X.whave<X.wsize)X.whave+=q}}return 0},DW=(J,Q)=>{let W,V,q,X,P,G,H,Y,U,Z,F,K,$,I,j=0,C,x,w,k,N,h,L,g,S=new Uint8Array(4),D,T,Q6=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(w6(J)||!J.output||!J.input&&J.avail_in!==0)return J6;if(W=J.state,W.mode===U6)W.mode=_0;P=J.next_out,q=J.output,H=J.avail_out,X=J.next_in,V=J.input,G=J.avail_in,Y=W.hold,U=W.bits,Z=G,F=H,g=D6;J:for(;;)switch(W.mode){case A0:if(W.wrap===0){W.mode=_0;break}while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.wrap&2&&Y===35615){if(W.wbits===0)W.wbits=15;W.check=0,S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0),Y=0,U=0,W.mode=b8;break}if(W.head)W.head.done=!1;if(!(W.wrap&1)||(((Y&255)<<8)+(Y>>8))%31){J.msg="incorrect header check",W.mode=m;break}if((Y&15)!==f8){J.msg="unknown compression method",W.mode=m;break}if(Y>>>=4,U-=4,L=(Y&15)+8,W.wbits===0)W.wbits=L;if(L>15||L>W.wbits){J.msg="invalid window size",W.mode=m;break}W.dmax=1<<W.wbits,W.flags=0,J.adler=W.check=1,W.mode=Y&512?l8:U6,Y=0,U=0;break;case b8:while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.flags=Y,(W.flags&255)!==f8){J.msg="unknown compression method",W.mode=m;break}if(W.flags&57344){J.msg="unknown header flags set",W.mode=m;break}if(W.head)W.head.text=Y>>8&1;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0);Y=0,U=0,W.mode=h8;case h8:while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.head)W.head.time=Y;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,S[2]=Y>>>16&255,S[3]=Y>>>24&255,W.check=l(W.check,S,4,0);Y=0,U=0,W.mode=p8;case p8:while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.head)W.head.xflags=Y&255,W.head.os=Y>>8;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0);Y=0,U=0,W.mode=u8;case u8:if(W.flags&1024){while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.length=Y,W.head)W.head.extra_len=Y;if(W.flags&512&&W.wrap&4)S[0]=Y&255,S[1]=Y>>>8&255,W.check=l(W.check,S,2,0);Y=0,U=0}else if(W.head)W.head.extra=null;W.mode=m8;case m8:if(W.flags&1024){if(K=W.length,K>G)K=G;if(K){if(W.head){if(L=W.head.extra_len-W.length,!W.head.extra)W.head.extra=new Uint8Array(W.head.extra_len);W.head.extra.set(V.subarray(X,X+K),L)}if(W.flags&512&&W.wrap&4)W.check=l(W.check,V,K,X);G-=K,X+=K,W.length-=K}if(W.length)break J}W.length=0,W.mode=_8;case _8:if(W.flags&2048){if(G===0)break J;K=0;do if(L=V[X+K++],W.head&&L&&W.length<65536)W.head.name+=String.fromCharCode(L);while(L&&K<G);if(W.flags&512&&W.wrap&4)W.check=l(W.check,V,K,X);if(G-=K,X+=K,L)break J}else if(W.head)W.head.name=null;W.length=0,W.mode=c8;case c8:if(W.flags&4096){if(G===0)break J;K=0;do if(L=V[X+K++],W.head&&L&&W.length<65536)W.head.comment+=String.fromCharCode(L);while(L&&K<G);if(W.flags&512&&W.wrap&4)W.check=l(W.check,V,K,X);if(G-=K,X+=K,L)break J}else if(W.head)W.head.comment=null;W.mode=d8;case d8:if(W.flags&512){while(U<16){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.wrap&4&&Y!==(W.check&65535)){J.msg="header crc mismatch",W.mode=m;break}Y=0,U=0}if(W.head)W.head.hcrc=W.flags>>9&1,W.head.done=!0;J.adler=W.check=0,W.mode=U6;break;case l8:while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}J.adler=W.check=qJ(Y),Y=0,U=0,W.mode=D0;case D0:if(W.havedict===0)return J.next_out=P,J.avail_out=H,J.next_in=X,J.avail_in=G,W.hold=Y,W.bits=U,kW;J.adler=W.check=1,W.mode=U6;case U6:if(Q===HW||Q===M0)break J;case _0:if(W.last){Y>>>=U&7,U-=U&7,W.mode=d0;break}while(U<3){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}switch(W.last=Y&1,Y>>>=1,U-=1,Y&3){case 0:W.mode=i8;break;case 1:if(xW(W),W.mode=C0,Q===M0){Y>>>=2,U-=2;break J}break;case 2:W.mode=r8;break;case 3:J.msg="invalid block type",W.mode=m}Y>>>=2,U-=2;break;case i8:Y>>>=U&7,U-=U&7;while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if((Y&65535)!==(Y>>>16^65535)){J.msg="invalid stored block lengths",W.mode=m;break}if(W.length=Y&65535,Y=0,U=0,W.mode=c0,Q===M0)break J;case c0:W.mode=n8;case n8:if(K=W.length,K){if(K>G)K=G;if(K>H)K=H;if(K===0)break J;q.set(V.subarray(X,X+K),P),G-=K,X+=K,H-=K,P+=K,W.length-=K;break}W.mode=U6;break;case r8:while(U<14){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.nlen=(Y&31)+257,Y>>>=5,U-=5,W.ndist=(Y&31)+1,Y>>>=5,U-=5,W.ncode=(Y&15)+4,Y>>>=4,U-=4,W.nlen>286||W.ndist>30){J.msg="too many length or distance symbols",W.mode=m;break}W.have=0,W.mode=o8;case o8:while(W.have<W.ncode){while(U<3){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}W.lens[Q6[W.have++]]=Y&7,Y>>>=3,U-=3}while(W.have<19)W.lens[Q6[W.have++]]=0;if(W.lencode=W.lendyn,W.lenbits=7,D={bits:W.lenbits},g=a6(zW,W.lens,0,19,W.lencode,0,W.work,D),W.lenbits=D.bits,g){J.msg="invalid code lengths set",W.mode=m;break}W.have=0,W.mode=a8;case a8:while(W.have<W.nlen+W.ndist){for(;;){if(j=W.lencode[Y&(1<<W.lenbits)-1],C=j>>>24,x=j>>>16&255,w=j&65535,C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(w<16)Y>>>=C,U-=C,W.lens[W.have++]=w;else{if(w===16){T=C+2;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(Y>>>=C,U-=C,W.have===0){J.msg="invalid bit length repeat",W.mode=m;break}L=W.lens[W.have-1],K=3+(Y&3),Y>>>=2,U-=2}else if(w===17){T=C+3;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=C,U-=C,L=0,K=3+(Y&7),Y>>>=3,U-=3}else{T=C+7;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=C,U-=C,L=0,K=11+(Y&127),Y>>>=7,U-=7}if(W.have+K>W.nlen+W.ndist){J.msg="invalid bit length repeat",W.mode=m;break}while(K--)W.lens[W.have++]=L}}if(W.mode===m)break;if(W.lens[256]===0){J.msg="invalid code -- missing end-of-block",W.mode=m;break}if(W.lenbits=9,D={bits:W.lenbits},g=a6(SJ,W.lens,0,W.nlen,W.lencode,0,W.work,D),W.lenbits=D.bits,g){J.msg="invalid literal/lengths set",W.mode=m;break}if(W.distbits=6,W.distcode=W.distdyn,D={bits:W.distbits},g=a6(TJ,W.lens,W.nlen,W.ndist,W.distcode,0,W.work,D),W.distbits=D.bits,g){J.msg="invalid distances set",W.mode=m;break}if(W.mode=C0,Q===M0)break J;case C0:W.mode=L0;case L0:if(G>=6&&H>=258){if(J.next_out=P,J.avail_out=H,J.next_in=X,J.avail_in=G,W.hold=Y,W.bits=U,YW(J,F),P=J.next_out,q=J.output,H=J.avail_out,X=J.next_in,V=J.input,G=J.avail_in,Y=W.hold,U=W.bits,W.mode===U6)W.back=-1;break}W.back=0;for(;;){if(j=W.lencode[Y&(1<<W.lenbits)-1],C=j>>>24,x=j>>>16&255,w=j&65535,C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(x&&(x&240)===0){k=C,N=x,h=w;for(;;){if(j=W.lencode[h+((Y&(1<<k+N)-1)>>k)],C=j>>>24,x=j>>>16&255,w=j&65535,k+C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=k,U-=k,W.back+=k}if(Y>>>=C,U-=C,W.back+=C,W.length=w,x===0){W.mode=WJ;break}if(x&32){W.back=-1,W.mode=U6;break}if(x&64){J.msg="invalid literal/length code",W.mode=m;break}W.extra=x&15,W.mode=s8;case s8:if(W.extra){T=W.extra;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}W.length+=Y&(1<<W.extra)-1,Y>>>=W.extra,U-=W.extra,W.back+=W.extra}W.was=W.length,W.mode=t8;case t8:for(;;){if(j=W.distcode[Y&(1<<W.distbits)-1],C=j>>>24,x=j>>>16&255,w=j&65535,C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if((x&240)===0){k=C,N=x,h=w;for(;;){if(j=W.distcode[h+((Y&(1<<k+N)-1)>>k)],C=j>>>24,x=j>>>16&255,w=j&65535,k+C<=U)break;if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}Y>>>=k,U-=k,W.back+=k}if(Y>>>=C,U-=C,W.back+=C,x&64){J.msg="invalid distance code",W.mode=m;break}W.offset=w,W.extra=x&15,W.mode=e8;case e8:if(W.extra){T=W.extra;while(U<T){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}W.offset+=Y&(1<<W.extra)-1,Y>>>=W.extra,U-=W.extra,W.back+=W.extra}if(W.offset>W.dmax){J.msg="invalid distance too far back",W.mode=m;break}W.mode=JJ;case JJ:if(H===0)break J;if(K=F-H,W.offset>K){if(K=W.offset-K,K>W.whave){if(W.sane){J.msg="invalid distance too far back",W.mode=m;break}}if(K>W.wnext)K-=W.wnext,$=W.wsize-K;else $=W.wnext-K;if(K>W.length)K=W.length;I=W.window}else I=q,$=P-W.offset,K=W.length;if(K>H)K=H;H-=K,W.length-=K;do q[P++]=I[$++];while(--K);if(W.length===0)W.mode=L0;break;case WJ:if(H===0)break J;q[P++]=W.length,H--,W.mode=L0;break;case d0:if(W.wrap){while(U<32){if(G===0)break J;G--,Y|=V[X++]<<U,U+=8}if(F-=H,J.total_out+=F,W.total+=F,W.wrap&4&&F)J.adler=W.check=W.flags?l(W.check,q,F,P-F):W0(W.check,q,F,P-F);if(F=H,W.wrap&4&&(W.flags?Y:qJ(Y))!==W.check){J.msg="incorrect data check",W.mode=m;break}Y=0,U=0}W.mode=QJ;case QJ:if(W.wrap&&W.flags){while(U<32){if(G===0)break J;G--,Y+=V[X++]<<U,U+=8}if(W.wrap&4&&Y!==(W.total&4294967295)){J.msg="incorrect length check",W.mode=m;break}Y=0,U=0}W.mode=VJ;case VJ:g=$W;break J;case m:g=vJ;break J;case EJ:return gJ;case yJ:default:return J6}if(J.next_out=P,J.avail_out=H,J.next_in=X,J.avail_in=G,W.hold=Y,W.bits=U,W.wsize||F!==J.avail_out&&W.mode<m&&(W.mode<d0||Q!==y8)){if(uJ(J,J.output,J.next_out,F-J.avail_out));}if(Z-=J.avail_in,F-=J.avail_out,J.total_in+=Z,J.total_out+=F,W.total+=F,W.wrap&4&&F)J.adler=W.check=W.flags?l(W.check,q,F,J.next_out-F):W0(W.check,q,F,J.next_out-F);if(J.data_type=W.bits+(W.last?64:0)+(W.mode===U6?128:0)+(W.mode===C0||W.mode===c0?256:0),(Z===0&&F===0||Q===y8)&&g===D6)g=BW;return g},IW=(J)=>{if(w6(J))return J6;let Q=J.state;if(Q.window)Q.window=null;return J.state=null,D6},wW=(J,Q)=>{if(w6(J))return J6;let W=J.state;if((W.wrap&2)===0)return J6;return W.head=Q,Q.done=!1,D6},AW=(J,Q)=>{let W=Q.length,V,q,X;if(w6(J))return J6;if(V=J.state,V.wrap!==0&&V.mode!==D0)return J6;if(V.mode===D0){if(q=1,q=W0(q,Q,W,0),q!==V.check)return vJ}if(X=uJ(J,Q,W,W),X)return V.mode=EJ,gJ;return V.havedict=1,D6},NW=bJ,SW=hJ,TW=fJ,vW=OW,gW=pJ,EW=DW,yW=IW,fW=wW,bW=AW,hW="pako inflate (from Nodeca project)",F6={inflateReset:NW,inflateReset2:SW,inflateResetKeep:TW,inflateInit:vW,inflateInit2:gW,inflate:EW,inflateEnd:yW,inflateGetHeader:fW,inflateSetDictionary:bW,inflateInfo:hW};function pW(){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 uW=pW,mJ=Object.prototype.toString,{Z_NO_FLUSH:mW,Z_FINISH:_W,Z_OK:q0,Z_STREAM_END:n0,Z_NEED_DICT:r0,Z_STREAM_ERROR:cW,Z_DATA_ERROR:GJ,Z_MEM_ERROR:dW}=I6;function P0(J){this.options=w0.assign({chunkSize:65536,windowBits:15,to:""},J||{});let Q=this.options;if(Q.raw&&Q.windowBits>=0&&Q.windowBits<16){if(Q.windowBits=-Q.windowBits,Q.windowBits===0)Q.windowBits=-15}if(Q.windowBits>=0&&Q.windowBits<16&&!(J&&J.windowBits))Q.windowBits+=32;if(Q.windowBits>15&&Q.windowBits<48){if((Q.windowBits&15)===0)Q.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new AJ,this.strm.avail_out=0;let W=F6.inflateInit2(this.strm,Q.windowBits);if(W!==q0)throw Error(O6[W]);if(this.header=new uW,F6.inflateGetHeader(this.strm,this.header),Q.dictionary){if(typeof Q.dictionary==="string")Q.dictionary=V0.string2buf(Q.dictionary);else if(mJ.call(Q.dictionary)==="[object ArrayBuffer]")Q.dictionary=new Uint8Array(Q.dictionary);if(Q.raw){if(W=F6.inflateSetDictionary(this.strm,Q.dictionary),W!==q0)throw Error(O6[W])}}}P0.prototype.push=function(J,Q){let W=this.strm,V=this.options.chunkSize,q=this.options.dictionary,X,P,G;if(this.ended)return!1;if(Q===~~Q)P=Q;else P=Q===!0?_W:mW;if(mJ.call(J)==="[object ArrayBuffer]")W.input=new Uint8Array(J);else W.input=J;W.next_in=0,W.avail_in=W.input.length;for(;;){if(W.avail_out===0)W.output=new Uint8Array(V),W.next_out=0,W.avail_out=V;if(X=F6.inflate(W,P),X===r0&&q){if(X=F6.inflateSetDictionary(W,q),X===q0)X=F6.inflate(W,P);else if(X===GJ)X=r0}while(W.avail_in>0&&X===n0&&W.state.wrap>0&&J[W.next_in]!==0)F6.inflateReset(W),X=F6.inflate(W,P);switch(X){case cW:case GJ:case r0:case dW:return this.onEnd(X),this.ended=!0,!1}if(G=W.avail_out,W.next_out){if(W.avail_out===0||X===n0)if(this.options.to==="string"){let H=V0.utf8border(W.output,W.next_out),Y=W.next_out-H,U=V0.buf2string(W.output,H);if(W.next_out=Y,W.avail_out=V-Y,Y)W.output.set(W.output.subarray(H,H+Y),0);this.onData(U)}else this.onData(W.output.length===W.next_out?W.output:W.output.subarray(0,W.next_out))}if(X===q0&&G===0)continue;if(X===n0)return X=F6.inflateEnd(this.strm),this.onEnd(X),this.ended=!0,!0;if(W.avail_in===0)break}return!0};P0.prototype.onData=function(J){this.chunks.push(J)};P0.prototype.onEnd=function(J){if(J===q0)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=w0.flattenChunks(this.chunks);this.chunks=[],this.err=J,this.msg=this.strm.msg};function K8(J,Q){let W=new P0(Q);if(W.push(J),W.err)throw W.msg||O6[W.err];return W.result}function lW(J,Q){return Q=Q||{},Q.raw=!0,K8(J,Q)}var iW=P0,nW=K8,rW=lW,oW=K8,aW=I6,sW={Inflate:iW,inflate:nW,inflateRaw:rW,ungzip:oW,constants:aW},{Deflate:tW,deflate:eW,deflateRaw:J7,gzip:W7}=XW,{Inflate:Q7,inflate:V7,inflateRaw:q7,ungzip:X7}=sW,G7=tW,Y7=eW,P7=J7,U7=W7,K7=Q7,F7=V7,Z7=q7,z7=X7,H7=I6,m6={Deflate:G7,deflate:Y7,deflateRaw:P7,gzip:U7,Inflate:K7,inflate:F7,inflateRaw:Z7,ungzip:z7,constants:H7};function _J(J,Q,W){let V=Q.timestamp;if(V?.physical>Date.now()+7200000)V={physical:Date.now()+7200000,logical:V.logical};if(Q?.value?.priority===!0&&typeof Q.id==="string"&&Q.id.startsWith("user:")&&"role"in Q.value){let{priority:q,...X}=Q.value;return{resolved:!0,value:X,timestamp:V}}if(Q?.value?.priority!==void 0){let{priority:q,...X}=Q.value;Q={...Q,value:X}}if(!J?.timestamp)return{resolved:!0,value:Q.value,timestamp:V};if(W.compare(V,J.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:Q.value,timestamp:V}}function cJ(J,Q=50){let W=`gdb_oplog_${J}`,V=[];function q(){try{let P=localStorage.getItem(W);V=P?JSON.parse(P):[]}catch(P){log.error("❌ GDB: Failed to load oplog from localStorage:",P),V=[]}}function X(){try{localStorage.setItem(W,JSON.stringify(V))}catch(P){log.error("❌ GDB: Failed to save oplog to localStorage:",P)}}return q(),{remove(P){V=V.filter((G)=>G.id!==P),X()},add(P){if(V.push(P),V.length>Q)V.shift();X()},getDelta(P,G){if(!P)return[...V];return V.filter((H)=>G(H.timestamp,P)>0)},getOldest(){return V[0]},clear(){V=[],localStorage.removeItem(W)}}}var $7=()=>{let J=new Map,Q=async(U,Z)=>{let F=J.get(U)??[];J.set(U,F);let K=F[F.length-1]??Promise.resolve(),$,I=new Promise((j)=>$=j);F.push(I);try{return await K,await Z()}finally{if(F.shift(),$(),!F.length)J.delete(U)}},W=(U,Z)=>navigator.locks?.request?.(`opfs:${U}`,{mode:"exclusive"},Z)??Q(U,Z),V=async()=>{try{let U=await navigator.storage.getDirectory(),F=await(await U.getFileHandle("~opfs-sync-test",{create:!0})).createSyncAccessHandle?.();return await F?.close(),await U.removeEntry("~opfs-sync-test"),!!F}catch{return!1}},q="idb",X=(async()=>{if(await V()){q="sync";return}try{let U=await navigator.storage.getDirectory(),F=await(await U.getFileHandle("~opfs-async-test",{create:!0})).createWritable?.();await F?.close(),await U.removeEntry("~opfs-async-test"),q=F?"async":"idb"}catch{q="idb"}})(),P=navigator.storage.getDirectory(),G=(()=>{let U,Z=()=>U??=new Promise((F,K)=>{let $=indexedDB.open("opfs-fallback-db",1);$.onupgradeneeded=()=>$.result.createObjectStore("files"),$.onsuccess=()=>F($.result),$.onerror=()=>K($.error)});return{get:async(F)=>{let K=await Z();return new Promise(($,I)=>{let C=K.transaction("files","readonly").objectStore("files").get(F);C.onsuccess=()=>$(C.result||new Uint8Array),C.onerror=()=>I(C.error)})},set:async(F,K)=>{let $=await Z();return new Promise((I,j)=>{let x=$.transaction("files","readwrite").objectStore("files").put(K,F);x.onsuccess=()=>I(),x.onerror=()=>j(x.error)})}}})(),H=async(U)=>{await X;try{if(q==="idb"){let j=await G.get(U);self.postMessage({type:"loaded",name:U,data:j},[j.buffer]);return}let F=await(await P).getFileHandle(U).catch(()=>null);if(!F){let j=new Uint8Array;self.postMessage({type:"loaded",name:U,data:j},[j.buffer]);return}let K=async()=>{try{let j=await F.createSyncAccessHandle();try{let C=j.getSize(),x=new Uint8Array(C),w=j.read(x,{at:0}),k=x.slice(0,w);self.postMessage({type:"loaded",name:U,data:k},[k.buffer])}finally{j.close()}}catch(j){if(j?.name==="NoModificationAllowedError"){let C=await F.getFile(),x=new Uint8Array(await C.arrayBuffer());self.postMessage({type:"loaded",name:U,data:x},[x.buffer])}else throw j}};if(q==="sync"){await W(U,K);return}let $=await F.getFile(),I=new Uint8Array(await $.arrayBuffer());self.postMessage({type:"loaded",name:U,data:I},[I.buffer])}catch(Z){if(Z?.name==="NotFoundError"){let F=new Uint8Array;self.postMessage({type:"loaded",name:U,data:F},[F.buffer]);return}self.postMessage({type:"error",name:U,message:Z?.message??"Error reading file"})}},Y=async(U,Z)=>{if(await X,!(Z instanceof Uint8Array))return{type:"error",name:U,message:"Content must be a Uint8Array"};return W(U,async()=>{try{if(q==="idb")return await G.set(U,Z),{type:"saved",name:U};let K=await(await P).getFileHandle(U,{create:!0});if(q==="sync"){let $=await K.createSyncAccessHandle();try{$.truncate(0),$.write(Z,{at:0}),$.flush()}finally{$.close()}}else{let $=await K.createWritable();try{await $.write(Z)}finally{await $.close()}}return{type:"saved",name:U}}catch(F){return{type:"error",name:U,message:F?.message??"Error saving file"}}})};self.onmessage=async({data:U})=>{let{type:Z,name:F,content:K}=U;await X;let $={load:()=>H(F),save:()=>Y(F,K)};try{let I=$[Z],j=I?await I():{type:"error",message:`Unrecognized action type: ${Z}`};if(j&&j.type)self.postMessage(j)}catch(I){self.postMessage({type:"error",name:F,message:I?.message??"Unexpected worker error"})}}},dJ=$7;var U0={$eq:(J,Q)=>J===Q,$ne:(J,Q)=>J!==Q,$gt:(J,Q)=>J>Q,$gte:(J,Q)=>J>=Q,$lt:(J,Q)=>J<Q,$lte:(J,Q)=>J<=Q,$in:(J,Q)=>Array.isArray(Q)&&(Array.isArray(J)?J.some((W)=>Q.includes(W)):Q.includes(J)),$between:(J,[Q,W])=>J>=Q&&J<=W,$exists:(J,Q)=>Q?J!==void 0:J===void 0,$startsWith:(J,Q)=>typeof J==="string"&&J.startsWith(Q),$endsWith:(J,Q)=>typeof J==="string"&&J.endsWith(Q),$contains:(J,Q)=>typeof J==="string"&&J.includes(Q),$text:{global:(J,Q)=>{let W=(q)=>String(q).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=W(Q);return Object.values(J).some((q)=>typeof q==="object"?null.fieldSearch(q,V):W(q).includes(V))},field:(J,Q)=>{let W=(q)=>String(q).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=W(Q);return Array.isArray(J)?J.some((q)=>W(q).includes(V)):W(J).includes(V)}},$like:(J,Q)=>typeof J==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(J),$regex:(J,Q)=>typeof J==="string"&&new RegExp(Q.$regex||Q,"i").test(J),$and:(J,Q,W)=>Q.every((V)=>W.createFilter(V,W.allNodes)(J)),$or:(J,Q,W)=>Q.some((V)=>W.createFilter(V,W.allNodes)(J)),$not:(J,Q,W)=>!W.createFilter(Q,W.allNodes)(J),$edge:(J,Q,W)=>{if(!J.edges?.length||typeof Q!=="object"||Q===null)return!1;let V=W.createFilter(Q,W.allNodes),q=[...J.edges],X=new Set(q).add(J.id),P=[];while(q.length){let G=q.shift(),H=W.allNodes[G];if(!H)continue;if(V(H))P.push(H);H.edges?.forEach((Y)=>!X.has(Y)&&X.add(Y)&&q.push(Y))}if(P.length)J._edgeResult=P;return P.length>0}},N0=(J,Q)=>Q.split(".").reduce((W,V)=>W&&typeof W==="object"&&(V in W)?W[V]:void 0,J),S0=(J,Q)=>{if(Object.keys(J).length===0)return()=>!0;return(W)=>Object.entries(J).every(([V,q])=>{if(V.startsWith("$"))return U0[V](W,q,{createFilter:S0,allNodes:Q});let X=N0(W.value,V);if(X===void 0)X=N0(W,V);if(q instanceof RegExp)return q.test(String(X));if(typeof q!=="object"||q===null)return U0.$eq(X,q);return Object.entries(q).every(([P,G])=>{if(P==="$text")return U0.$text.field(X,G);if(P==="$between"&&G.every((H)=>H instanceof Date))return U0.$between(new Date(X),G);return U0[P]?.(X,G,{createFilter:S0,allNodes:Q})??!1})})},F8=(J,Q)=>{let{$edge:W,...V}=Q.query||{},q=S0(V,J),X=Object.values(J).filter(q),G=[...W?(()=>{let H=S0({$edge:W},J);X.forEach((U)=>H(U));let Y=new Map;return X.forEach((U)=>{if(U._edgeResult)U._edgeResult.forEach((Z)=>Y.set(Z.id,Z)),delete U._edgeResult}),Array.from(Y.values())})():X];if(Q.field){let H=Q.order==="asc"?1:-1;G.sort((Y,U)=>{let Z=N0(Y.value,Q.field),F=N0(U.value,Q.field);if(typeof Z==="string"&&typeof F==="string")return Z.localeCompare(F)*H;return((Z??0)-(F??0))*H})}if(Q.$after){let H=G.findIndex((Y)=>Y.id===Q.$after);G=H>=0?G.slice(H+1):[]}if(Q.$before){let H=G.findIndex((Y)=>Y.id===Q.$before);G=H>=0?G.slice(0,H):[]}if(Q.$limit)G=G.slice(0,Q.$limit);return G};function lJ(){let J=Date.now(),Q=0;return{now(){let W=Date.now();return J=Math.max(J,W),Q++,{physical:J,logical:Q}},update(W){if(!W||typeof W.physical!=="number"||typeof W.logical!=="number"){log.warn("⚠️ HybridClock.update received an invalid remote timestamp.",W);return}J=Math.max(J,W.physical),Q=Math.max(Q,W.logical)+1},compare(W,V){if(!W&&!V)return 0;if(!W)return-1;if(!V)return 1;if(W.physical>V.physical)return 1;if(W.physical<V.physical)return-1;if(W.logical>V.logical)return 1;if(W.logical<V.logical)return-1;return 0}}}var k7={sm:()=>import(new URL("./sm.min.js",import.meta.url).href),ai:()=>import(new URL("./ai.min.js",import.meta.url).href),audit:()=>import(new URL("./audit.min.js",import.meta.url).href),geo:()=>import(new URL("./geo.min.js",import.meta.url).href),nlq:()=>import(new URL("./nlq.min.js",import.meta.url).href),genosrtc:()=>import(new URL("./genosrtc.min.js",import.meta.url).href)},iJ=(J,Q)=>J.length===Q.length&&J.every((W,V)=>W===Q[V]),Z8=(J)=>J&&typeof J==="object"?globalThis.structuredClone?.(J)??JSON.parse(JSON.stringify(J)):J,nJ=(J,Q=16)=>{let W=null,V=null;return(...q)=>{if(!V)V={},V.promise=new Promise((P,G)=>(V.resolve=P,V.reject=G));if(W)("cancelIdleCallback"in window?cancelIdleCallback:clearTimeout)(W);let X=async()=>{W=null;let P=V;V=null;try{P.resolve(await J(...q))}catch(G){P.reject(G)}};return W="requestIdleCallback"in window?requestIdleCallback(X,{timeout:Q}):setTimeout(X,Q),V.promise}},B7=(J)=>{let Q=null;return()=>{if(Q!==null)return;Q=requestAnimationFrame(()=>{Q=null,J()})}};async function j7(){if(log.info(navigator?.storage?.getDirectory?"✅ OPFS is enabled.":"\uD83D\uDEAB OPFS is not available."),navigator?.storage?.getDirectory)await navigator.storage.getDirectory()}function M7(){let J={nodes:{}};return{get nodes(){return J.nodes},set nodes(Q){J.nodes=Q||{}},upsert(Q,W,V){let q=J.nodes[Q];J.nodes[Q]={id:Q,value:W&&typeof W==="object"?Z8(W):W,edges:q?.edges?[...q.edges]:[],timestamp:V}},get(Q){return J.nodes[Q]||null},link(Q,W,V){let q=J.nodes[Q],X=J.nodes[W];if(q&&X&&!q.edges.includes(W))J.nodes[Q]={...q,edges:[...q.edges,W],timestamp:V}},unlink(Q,W,V){let q=J.nodes[Q];if(q?.edges.includes(W))J.nodes[Q]={...q,edges:q.edges.filter((X)=>X!==W),timestamp:V}},getAllNodes(){return Object.values(J.nodes)},serialize(){return m6.deflate(H0(J.nodes))},deserialize(Q){J.nodes=M6(m6.inflate(new Uint8Array(Q)))}}}async function yQ(J,Q={}){Q.debug&&(globalThis.__gdbDebug=!0),log.info("\x1B[36m⚡ GenosDB: Empowering distributed graph databases with real-time synchronization and scalability. Learn more: https://github.com/estebanrfp/gdb ⚡\x1B[0m");let{rtc:W=!1,password:V,sm:q=!1,audit:X=!1,ai:P=!1,geo:G=!1,nlq:H=!1,saveDelay:Y=200,oplogSize:U=200}=Q,Z=M7(),F=lJ(),K=cJ(J,U),$=[],I=null,j=[],C=null,x=null,w=null,k=null,N=[],h=null,L={};Object.defineProperties(L,{syncChannel:{get:()=>x},broadcastChannel:{get:()=>w},hybridClock:{get:()=>F},graph:{get:()=>({getAllNodes:()=>Z.getAllNodes(),get:(B)=>Z.get(B)})},worker:{get:()=>C},oplog:{get:()=>K},options:{get:()=>Q},pako:{get:()=>m6},encode:{get:()=>H0},decode:{get:()=>M6},deepClone:{get:()=>Z8}});async function g(B,R){try{let M=await k7[B](),y=R&&typeof R==="object"?R:{},c=await M.init?.(L,M,y);if(c)Object.assign(L,c);return M}catch(M){throw log.error(`❌ Initialization of ${B} failed:`,M),M}}function S(){let B=localStorage.getItem(`${J}_time`);I=B?JSON.parse(B):null}function D(B){I=B,localStorage.setItem(`${J}_time`,JSON.stringify(B))}function T(){try{let B=URL.createObjectURL(new Blob([`(${dJ.toString()})()`],{type:"application/javascript"}));C=new Worker(B),URL.revokeObjectURL(B),C.addEventListener("message",({data:R})=>log.info(`\uD83D\uDCBE ${R.name} ${R.type}`)),log.info("⚙️ Worker initialized successfully.")}catch({message:B}){log.error("❌ Failed to initialize worker:",B)}}function Q6(){let B={...Z.nodes};j.forEach((R)=>R(B))}let Y6=B7(()=>Q6()),P6=nJ(async()=>{let B=N.splice(0,N.length);if(!B.length)return!1;return await x.send(B),!0},16);async function B6(){try{let R=await((M)=>new Promise((y,c)=>{let f=async({data:z})=>{if(z.type==="loaded"&&z.name===M)C.removeEventListener("message",f),y(new Uint8Array(z.data));else if(z.type==="error")C.removeEventListener("message",f),c(Error(z.message||"Unknown error"))};C.addEventListener("message",f),C.postMessage({type:"load",name:M})}))(`${J}_graph.msgpack`).catch(()=>new Uint8Array);R.byteLength>0?Z.deserialize(R):log.info("\uD83D\uDCBE New database. File will be created on first save.")}catch({message:B}){log.error("❌ Error loading the graph:",B)}}async function z8(){try{let B=Z.serialize();return await((M,y)=>new Promise((c,f)=>{let z=({data:A})=>{if(A.type==="saved"&&A.name===M)C.removeEventListener("message",z),c();else if(A.type==="error")C.removeEventListener("message",z),f(Error(A.message||"Save error"))};C.addEventListener("message",z),C.postMessage({type:"save",name:M,content:y})}))(`${J}_graph.msgpack`,B),w.postMessage("update"),!0}catch({message:B}){throw log.error("❌ Save error:",B),Error("Save failed")}}let A6=nJ(()=>z8(),Y);async function rJ(B){let R=!1,M=null,y=(z)=>{if(!M||F.compare(z,M)>0)M=z},c=(z)=>{try{if(z instanceof Uint8Array)return M6(m6.inflate(z));if(Array.isArray(z))return z;if(z&&typeof z==="object")return M6(m6.inflate(new Uint8Array(Object.values(z))))}catch(A){log.error("❌ deltaSync decode failed",A)}return null},f={upsert:(z)=>{let A=Z.get(z.id);if(!A){for(let d of K.getDelta(null))if(d.type==="remove"&&d.id===z.id&&F.compare(d.timestamp,z.timestamp)>=0)return}if(h&&!h.op(z,A)){log.warn(`⚠️ [SYNC-AUTH] upsert denied: ${z.id}`);return}let{resolved:O,value:p,timestamp:_}=_J(A,z,F);if(!O)return;if(Z.upsert(z.id,p,_),z.signature&&h?.isOwned(p))Z.get(z.id).meta={author:z.originEthAddress,sig:z.signature,signedPayload:{type:"upsert",id:z.id,value:z.value,timestamp:z.timestamp,originUser:z.originUser}};F.update(_),K.add({type:"upsert",id:z.id,timestamp:_}),R=!0,y(_)},remove:(z)=>{let A=Z.get(z.id);if(!A||F.compare(A.timestamp,z.timestamp)>=0)return;if(h&&!h.op(z,A)){log.warn(`⚠️ [SYNC-AUTH] remove denied: ${z.id}`);return}delete Z.nodes[z.id],F.update(z.timestamp),K.add({type:"remove",id:z.id,timestamp:z.timestamp}),R=!0,y(z.timestamp)},link:(z)=>{let A=Z.get(z.sourceId),O=Z.get(z.targetId);if(!A||!O||F.compare(A.timestamp,z.timestamp)>=0)return;Z.link(z.sourceId,z.targetId,z.timestamp),F.update(z.timestamp),K.add({type:"link",...z}),R=!0,y(z.timestamp)},unlink:(z)=>{let A=Z.get(z.sourceId);if(!A||F.compare(A.timestamp,z.timestamp)>=0)return;Z.unlink(z.sourceId,z.targetId,z.timestamp),F.update(z.timestamp),K.add({type:"unlink",...z}),R=!0,y(z.timestamp)},sync:async({timestamp:z})=>{let A=K.getOldest();if(z==null||A&&F.compare(z,A.timestamp)<0)return log.info("\uD83D\uDCA5 [FALLBACK] Peer too far behind → sending FULL state."),x.send([{type:"fullStateSync",graphData:Z.nodes,removals:K.getDelta(null).filter((d)=>d.type==="remove"),timestamp:I}]);let p=K.getDelta(null);if(!p.length)return;let _=p.flatMap((d)=>{if(d.type!=="upsert")return[d];let E=Z.get(d.id);if(!E)return[];if(E.meta)return[{...E.meta.signedPayload,originEthAddress:E.meta.author,signature:E.meta.sig}];return[{...d,value:E.value}]});log.info(`\uD83D\uDE80 [DELTA SYNC SENDING] ${_.length} ops.`),await x.send([{type:"deltaSync",operations:_,timestamp:I}])},deltaSync:({operations:z})=>{let A=c(z);if(!Array.isArray(A)){log.warn("⚠️ deltaSync payload not array. Ignored.");return}log.info(`\uD83D\uDEF0️ [DELTA SYNC RECEIVED] ${A.length} ops.`);for(let O of A)if(O&&f[O.type])f[O.type](O);else if(O)log.warn(`\uD83E\uDD37 Unknown op: ${O.type}`)},fullStateSync:async({graphData:z,removals:A,timestamp:O})=>{if(!z||typeof z!=="object"){log.error("❌ Invalid full graph data received");return}try{log.info("\uD83D\uDCE6 [FULL SYNC RECEIVED] Merging full graph.");let p=z,_=new Map;for(let E of K.getDelta(null))if(E.type==="remove")_.set(E.id,E.timestamp);for(let[E,o]of Object.entries(p)){let S6=Z.nodes[E],u=o.meta?.signedPayload?.timestamp??o.timestamp,W6=S6?.timestamp??_.get(E);if(!W6||F.compare(W6,u)<0){if(h&&!h.node(o,S6)){log.warn(`⚠️ [SYNC-AUTH] fullStateSync upsert denied: ${E}`);continue}Z.nodes[E]=o.meta?{...o,value:o.meta.signedPayload.value,timestamp:u}:o,K.add({type:"upsert",id:E,timestamp:u})}}for(let E of A??[]){let o=Z.nodes[E.id];if(o&&F.compare(o.timestamp,E.timestamp)<0){if(h&&!h.removal(o)){log.warn(`⚠️ [SYNC-AUTH] fullStateSync removal denied: ${E.id}`);continue}delete Z.nodes[E.id],K.add({type:"remove",id:E.id,timestamp:E.timestamp})}}let d=new Set(Object.keys(p));if(Object.keys(Z.nodes).some((E)=>!d.has(E)))x.send([{type:"fullStateSync",graphData:Z.nodes,removals:K.getDelta(null).filter((E)=>E.type==="remove"),timestamp:I}]);if(R=!0,O)y(O),F.update(O)}catch(p){log.error("❌ Full sync failed:",p)}}};for(let z of B)if(f[z.type])await f[z.type](z);else log.warn(`\uD83E\uDD37 Unknown type: ${z.type}`);if(M&&(!I||F.compare(M,I)>0))log.info(`\uD83D\uDCC8 [GLOBAL TS] Advanced to ${M.logical}`),D(M);if(R)log.info("\uD83D\uDCBE [STATE CHANGED] Saving + emitting."),await A6(),Y6()}Object.assign(L,{use(B){if(typeof B==="function")$.push(B)},setSyncAuthGate(B){h=B},captureProvenance(B){let R=!1;for(let M of B??[]){if(M?.type!=="upsert"||!M.signature||!h?.isOwned(M.value))continue;let y=Z.get(M.id);if(!y||F.compare(y.timestamp,M.timestamp)!==0)continue;y.meta={author:M.originEthAddress,sig:M.signature,signedPayload:{type:"upsert",id:M.id,value:M.value,timestamp:M.timestamp,originUser:M.originUser}},R=!0}if(R)A6()},async put(B,R){let M=F.now();D(M),R=R??crypto.randomUUID(),Z.upsert(R,B,M),K.add({type:"upsert",id:R,timestamp:M}),A6();try{N.push({type:"upsert",id:R,value:B,timestamp:M}),P6().catch(()=>{})}finally{Y6()}return R},async link(B,R){let M=F.now();if(!Z.nodes[B]||!Z.nodes[R]){log.warn(`⚠️ One or both nodes (${B}, ${R}) do not exist.`);return}Z.link(B,R,M),K.add({type:"link",sourceId:B,targetId:R,timestamp:M}),A6(),D(M);try{N.push({type:"link",sourceId:B,targetId:R,timestamp:M}),P6().catch(()=>{})}finally{Y6()}},async unlink(B,R){let M=F.now();if(!Z.nodes[B]?.edges.includes(R)){log.warn(`⚠️ No edge from '${B}' to '${R}'.`);return}Z.unlink(B,R,M),K.add({type:"unlink",sourceId:B,targetId:R,timestamp:M}),A6(),D(M);try{N.push({type:"unlink",sourceId:B,targetId:R,timestamp:M}),P6().catch(()=>{})}finally{Y6()}},async remove(B){let R=F.now(),M=Z.get(B);if(!M)return log.warn(`⚠️ Node with ID '${B}' not found.`);delete Z.nodes[B],K.add({type:"remove",id:B,timestamp:R}),Object.values(Z.nodes).forEach((y)=>y.edges=y.edges.filter((c)=>c!==B)),A6(),D(R);try{N.push({type:"remove",id:B,value:M.value,timestamp:R}),P6().catch(()=>{})}finally{Y6()}},async get(B,R=null){if(typeof B!=="string")return{result:null};let M=Z.get(B);if(!M){if(R)R(null);return{result:null}}let y=(z)=>{if(!z)return null;let A=z.value!==null&&typeof z.value==="object"?{...z.value}:z.value;return{...z,value:A}};if(!R)return{result:y(M)};let c=M.timestamp;R(y(M));let f=(z)=>{let A=z[B];if(A){if(F.compare(A.timestamp,c)>0)c=A.timestamp,R(y(A))}else R(null),j.splice(j.indexOf(f),1)};return j.push(f),{result:y(M),unsubscribe:()=>{let z=j.indexOf(f);if(z>-1)j.splice(z,1)}}},async map(...B){let M={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},y=null,c=!1;B.forEach((O)=>typeof O==="function"?y=O:O&&typeof O==="object"&&(c=c||("realtime"in O),Object.assign(M,O))),y&&!c&&(M.realtime=!0);let f=F8(Z.nodes,M),z=null,A=(O)=>{let p=new Map(f.map((u)=>[u.id,u])),_=new Map(O.map((u)=>[u.id,u])),d=[],E=[],o=[];for(let[u,W6]of _){let K0=p.get(u);if(!K0)d.push(W6);else if((W6.timestamp?.physical||0)!==(K0.timestamp?.physical||0)||(W6.timestamp?.logical||0)!==(K0.timestamp?.logical||0)||!iJ(W6.edges||[],K0.edges||[]))E.push(W6)}for(let[u]of p)if(!_.has(u))o.push(p.get(u));let S6=(u,W6)=>y({id:u.id,value:W6==="removed"?null:u.value,edges:u.edges||[],timestamp:u.timestamp||null,action:W6});d.forEach((u)=>S6(u,"added")),o.forEach((u)=>S6(u,"removed")),E.forEach((u)=>S6(u,"updated"))};if(y){if(f.forEach((O)=>{y({id:O.id,value:O.value,edges:O.edges,timestamp:O.timestamp,action:"initial"})}),M.realtime){let O=(p)=>{let _=p.timestamp?.physical||0,d=p.timestamp?.logical||0,E=(p.edges||[]).join(",");return`${p.id}:${_}:${d}:${E}`};z=(p)=>{let _=F8(p,M);if(_.length!==f.length)A(_),f=_;else{let d=_.map(O),E=f.map(O);if(!iJ(d,E))A(_),f=_}},j.push(z)}}return{results:f,...M.realtime&&y&&z&&{unsubscribe:()=>{let O=j.indexOf(z);O>-1&&j.splice(O,1)}}}},async clear(){Z.nodes={},I=null,localStorage.removeItem(`${J}_time`),K.clear(),await z8(),Q6(),log.info("✅ All data has been deleted.")}}),T(),S(),await j7(),await B6();let N6=[];if(q)N6.push(g("sm",q));if(P)N6.push(g("ai",P));if(X)N6.push(g("audit",X));if(G)N6.push(g("geo",G));if(H)N6.push(g("nlq",H));await Promise.all(N6);let oJ=`graph-sync-room-${J}`;if(W){let B=W?.constructor===Object?W:{},{join:R,selfId:M}=await g("genosrtc"),y={appId:"1234",...V&&{password:V},...B.relayUrls&&{relayUrls:B.relayUrls},...B.turnConfig&&{turnConfig:B.turnConfig},...B.cells&&{cells:!0},...B.cells&&B.cells!==!0&&{overlay:B.cells}},c=R(y,oJ);x=c.channel("syncGraph"),k=R(y,`app-sync-${J}`),L.room=k,L.selfId=M,c.on("peer:join",async(f)=>{log.info("⚡ New peer connected:",f),x.send([{type:"sync",timestamp:I}])}),c.on("peer:leave",(f)=>{log.info("⚡ Peer disconnected:",f)}),x?.on("message",async(f)=>{let z;try{if(f instanceof Uint8Array||f instanceof ArrayBuffer){let O=M6(f);z=Array.isArray(O)?O:[O]}else z=Array.isArray(f)?f:[f]}catch(O){return log.error("❌ Failed to decode MessagePack:",O)}let A=new Map([...new Set(z.flatMap((O)=>["id","sourceId","targetId"].map((p)=>O&&O[p]).filter(Boolean)))].map((O)=>Z.get(O)?[O,Z8(Z.get(O))]:null).filter(Boolean));for(let O of $)try{if(z=await O(z,A),!z||!z.length)return}catch(p){log.error("❌ Middleware error, discarding message.",p);return}await rJ(z)})}return w=new BroadcastChannel(`graphdb_sync_${J}`),w.onmessage=async(B)=>{if(B.data==="update")log.info("\uD83D\uDD04 Update received from another tab..."),await B6(),S(),Y6()},log.info(`✅ GenosDB [ \x1B[32m${J}\x1B[0m ] instance is ready.`),L}export{yQ as gdb};
Binary file