@zip.js/zip.js 2.8.37 → 2.8.38
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/deno.json +3 -2
- package/dist/zip-core.js +159 -36
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +152 -36
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +161 -38
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +160 -37
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +161 -38
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +161 -38
- package/dist/zip-native.min.js +1 -1
- package/dist/zip-web-worker-native.js +1 -1
- package/dist/zip-web-worker.js +1 -1
- package/dist/zip.js +160 -37
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +161 -38
- package/index-native.min.js +1 -1
- package/index.cjs +160 -37
- package/index.d.cts +22 -2
- package/index.d.ts +22 -2
- package/index.min.js +1 -1
- package/lib/core/codec-pool.js +2 -1
- package/lib/core/codec-worker.js +94 -18
- package/lib/core/configuration.js +2 -0
- package/lib/core/constants.js +4 -0
- package/lib/core/streams/codec-stream.js +6 -2
- package/lib/core/streams/zip-entry-stream.js +29 -12
- package/lib/core/web-worker-base.js +26 -8
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/lib/core/zip-reader.js +23 -1
- package/lib/core/zip-writer.js +15 -7
- package/lib/zip-core-reader.js +2 -1
- package/package.json +1 -1
- package/worker-message-property-names.js +1 -1
package/dist/zip-legacy.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:a,Math:o,Date:i,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:w,Uint16Array:p,Uint32Array:m,DataView:h,Blob:y,Promise:g,TextEncoder:x,TextDecoder:b,document:S,crypto:F,btoa:z,TransformStream:v,ReadableStream:k,WritableStream:E,CompressionStream:R,DecompressionStream:D,navigator:T,Worker:C}="undefined"!=typeof globalThis?globalThis:this||self;var N=void 0!==S?S.currentScript:null;const U=4294967295,W=65535,H=255,M=67324752,A=134695760,O=A,P=33639248,I=101010256,j=101075792,q=117853008,K=22,Z=20,L=21589,B=2048,V=16384,Y=2048,J=1024,G="/",X=30,Q=new i(2107,11,31,23,59,58),_=new i(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function",ne=new w;let se=2;try{typeof T!=te&&T.hardwareConcurrency&&(se=T.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof R!=te&&R,DecompressionStream:typeof D!=te&&D},oe=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],ie={...ae};function ce(){return ie}function le(e){return o.max(e.chunkSize,64)}function de(e){for(const t of oe){const r=e[t];r!==$&&(ie[t]=r)}}function ue(e){for(const t of oe){const r=e[t];r!==$&&(ae[t]=r)}de(e)}const fe=[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],we=[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],pe=[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],me=[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],he=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new w(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const ge=new w(30).fill(5);function xe(e){const t=new p(16);for(const r of e)t[r]++;t[0]=0;const r=new p(17);for(let e=1;15>=e;e++)r[e+1]=r[e]+t[e];const n=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(n[r[e[t]]++]=t);return{o:t,symbols:n}}const be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Se="Invalid codec definition",Fe="Reserved compression method",ze="Invalid codec module",ve="string",ke=[0,8,9,99],Ee=new c,Re=new c;function De(e){return Ee.get(e)}function Te(e){return Re.get(e)}function Ce(e,t){const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=re&&typeof n!=re)throw new f(ze);Re.set(e,{CompressionStream:r,DecompressionStream:n})}const Ne=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ne[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=Ne[t-1][e];Ne[t][e]=r>>>8^Ne[0][255&r]}const[Ue,We,He,Me,Ae,Oe,Pe,Ie]=Ne;class je{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new h(e.buffer,e.byteOffset,r),a=r-8;for(;a>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=Ie[255&e]^Pe[e>>>8&255]^Oe[e>>>16&255]^Ae[e>>>24&255]^Me[255&r]^He[r>>>8&255]^We[r>>>16&255]^Ue[r>>>24&255]}}for(;r>n;n++)t=t>>>8^Ue[255&(t^e[n])];this.l=t}get(){return~this.l}}class qe extends v{constructor(){let e;const t=new je;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new w(4);new h(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Ke(e){if(typeof x==te){const t=new w((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new x).encode(e)}function Ze(e,t){const r=new w(e.length+t.length);return r.set(e),r.set(t,e.length),r}function Le(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new w(e):e}function Be(e){return new h(e.buffer,e.byteOffset,e.byteLength)}const Ve={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Ve.m(r);return 32===n?e.concat(t):Ve.h(t,n,0|r,e.slice(0,e.length-1))},S(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Ve.m(r)},F(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,o.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=Ve.v(t,e[r-1]&2147483648>>t-1,1)),e},v:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,m:e=>o.round(e/1099511627776)||32,h(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Ve.m(s);return n.push(Ve.v(t+a&31,t+a>32?r:n.pop(),1)),n}},Ye={bytes:{R(e){const t=Ve.S(e)/8,r=new w(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},D(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(Ve.v(8*(3&r),n)),t}}},Je=class{constructor(e){const t=this;t.blockSize=512,t.T=[1732584193,4023233417,2562383102,271733878,3285377520],t.C=[1518500249,1859775393,2400959708,3395469782],e?(t.N=e.N.slice(0),t.U=e.U.slice(0),t.W=e.W):t.reset()}reset(){const e=this;return e.N=e.T.slice(0),e.U=[],e.W=0,e}update(e){const t=this;"string"==typeof e&&(e=Ye.H.D(e));const r=t.U=Ve.concat(t.U,e),n=t.W,s=t.W=n+Ve.S(e);if(s>9007199254740991)throw new f("Cannot hash more than 2^53 - 1 bits");const a=new m(r);let o=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.M(a.subarray(16*o,16*(o+1))),o+=1;return r.splice(0,16*o),t}A(){const e=this;let t=e.U;const r=e.N;t=Ve.concat(t,[Ve.v(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(o.floor(e.W/4294967296)),t.push(0|e.W);t.length;)e.M(t.splice(0,16));return e.reset(),r}O(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}P(e,t){return t<<e|t>>>32-e}M(e){const r=this,n=r.N,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],i=n[1],c=n[2],l=n[3],d=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.P(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.P(5,a)+r.O(e,i,c,l)+d+s[e]+r.C[o.floor(e/20)]|0;d=l,l=c,c=r.P(30,i),i=a,a=t}n[0]=n[0]+a|0,n[1]=n[1]+i|0,n[2]=n[2]+c|0,n[3]=n[3]+l|0,n[4]=n[4]+d|0}},Ge={importKey:e=>new Ge.I(Ye.bytes.D(e)),j(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new f("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,o,i,c,l;const d=new ArrayBuffer(s),u=new h(d);let w=0;const p=Ve;for(t=Ye.bytes.D(t),l=1;(s||1)>w;l++){for(a=o=e.encrypt(p.concat(t,[l])),i=1;r>i;i++)for(o=e.encrypt(o),c=0;c<o.length;c++)a[c]^=o[c];for(i=0;(s||1)>w&&i<a.length;i++)u.setInt32(w,a[i]),w+=4}return d.slice(0,n/8)},I:class{constructor(e){const t=this,r=t.K=Je,n=[[],[]];t.Z=[new r,new r];const s=t.Z[0].blockSize/32;e.length>s&&(e=(new r).update(e).A());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.Z[0].update(n[0]),t.Z[1].update(n[1]),t.L=new r(t.Z[0])}reset(){const e=this;e.L=new e.K(e.Z[0]),e.B=!1}update(e){this.B=!0,this.L.update(e)}digest(){const e=this,t=e.L.A(),r=new e.K(e.Z[1]).update(t).A();return e.reset(),r}encrypt(e){if(this.B)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Xe=typeof F!=te&&typeof F.getRandomValues==re,Qe="Invalid password",_e="Invalid signature",$e="zipjs-abort-check-password";function et(e){if(Xe)return F.getRandomValues(e);throw new f("Crypto API not supported")}const tt=16,rt={name:"PBKDF2"},nt=r.assign({hash:{name:"HMAC"}},rt),st=r.assign({iterations:1e3,hash:{name:"SHA-1"}},rt),at=["deriveBits"],ot=[8,12,16],it=[16,24,32],ct=10,lt=[0,0,0,0],dt=typeof F!=te,ut=dt&&F.subtle,ft=dt&&typeof ut!=te,wt=Ye.bytes,pt=class{constructor(e){const t=this;t.V=[[[],[],[],[],[]],[[],[],[],[],[]]],t.V[0][0][0]||t.Y();const r=t.V[0][4],n=t.V[1],s=e.length;let a,o,i,c=1;if(4!==s&&6!==s&&8!==s)throw new f("invalid aes key size");for(t.C=[o=e.slice(0),i=[]],a=s;4*s+28>a;a++){let e=o[a-1];(a%s===0||8===s&&a%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),o[a]=o[a-s]^e}for(let e=0;a;e++,a--){const t=o[3&e?a:a-4];i[e]=4>=a||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.J(e,0)}decrypt(e){return this.J(e,1)}Y(){const e=this.V[0],t=this.V[1],r=e[4],n=t[4],s=[],a=[];let o,i,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=o=0;!r[d];d^=i||1,o=a[o]||1){let a=o^o<<1^o<<2^o<<3^o<<4;a=a>>8^255&a^99,r[d]=a,n[a]=d,l=s[c=s[i=s[d]]];let u=16843009*l^65537*c^257*i^16843008*d,f=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=f=f<<24^f>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}J(e,t){if(4!==e.length)throw new f("invalid aes block size");const r=this.C[t],n=r.length/4-2,s=[0,0,0,0],a=this.V[t],o=a[0],i=a[1],c=a[2],l=a[3],d=a[4];let u,w,p,m=e[0]^r[0],h=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=o[m>>>24]^i[h>>16&255]^c[y>>8&255]^l[255&g]^r[x],w=o[h>>>24]^i[y>>16&255]^c[g>>8&255]^l[255&m]^r[x+1],p=o[y>>>24]^i[g>>16&255]^c[m>>8&255]^l[255&h]^r[x+2],g=o[g>>>24]^i[m>>16&255]^c[h>>8&255]^l[255&y]^r[x+3],x+=4,m=u,h=w,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[m>>>24]<<24^d[h>>16&255]<<16^d[y>>8&255]<<8^d[255&g]^r[x++],u=m,m=h,h=y,y=g,g=u;return s}},mt=class{constructor(e,t){this.G=e,this.X=t,this._=t}reset(){this._=this.X}update(e){return this.$(this.G,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,r){let n;if(!(n=t.length))return[];const s=Ve.S(t);for(let s=0;n>s;s+=4){this.te(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return Ve.F(t,s)}},ht=Ge.I;let yt=dt&&ft&&typeof ut.importKey==re,gt=dt&&ft&&typeof ut.deriveBits==re;class xt extends v{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){St(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,re:o,ready:i}=r;s?(await(async(e,t,r,n)=>{const s=await zt(e,t,r,kt(n,0,ot[t])),a=kt(n,ot[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new f(Qe)})(r,a,s,kt(e,0,ot[a]+2)),e=kt(e,ot[a]+2),n?t.error(new f($e)):o()):await i;const c=new w(e.length-ct-(e.length-ct)%tt);t.enqueue(Ft(r,e,c,0,ct,!0))},async flush(e){const{ne:t,se:r,pending:n,ready:s}=this;if(r&&t){await s;const a=kt(n,0,n.length-ct),o=kt(n,n.length-ct);let i=ne;if(a.length){const e=Rt(wt,a);r.update(e);const n=t.update(e);i=Et(wt,n)}const c=kt(Et(wt,r.digest()),0,ct);let l=n.length<ct?1:0;for(let e=0;ct>e;e++)l|=c[e]^o[e];if(l)throw new f(_e);e.enqueue(i)}}})}}class bt extends v{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){St(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,re:a,ready:o}=r;let i=ne;n?(i=await(async(e,t,r)=>{const n=et(new w(ot[t]));return Ze(n,await zt(e,t,r,n))})(r,s,n),a()):await o;const c=new w(i.length+e.length-e.length%tt);c.set(i,0),t.enqueue(Ft(r,e,c,i.length,0))},async flush(e){const{ne:t,se:r,pending:s,ready:a}=this;if(r&&t){await a;let o=ne;if(s.length){const e=t.update(Rt(wt,s));r.update(e),o=Et(wt,e)}n.signature=Et(wt,r.digest()).slice(0,ct),e.enqueue(Ze(o,n.signature))}}}),n=this}}function St(e,t,n,s){r.assign(e,{ready:new g(t=>e.re=t),password:vt(t,n),strength:s-1,pending:ne})}function Ft(e,t,r,n,s,a){const{ne:o,se:i,pending:c}=e;c.length&&(t=Ze(c,t));const l=t.length-s;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new w(t)).set(r,0)}return e})(r,n+(l-l%tt)),d=0;l-tt>=d;d+=tt){const e=Rt(wt,kt(t,d,d+tt));a&&i.update(e);const s=o.update(e);a||i.update(s),r.set(Et(wt,s),d+n)}return e.pending=kt(t,d),r}async function zt(e,n,s,a){e.password=null;const o=await(async(e,t,r,n,s)=>{if(!yt)return Ge.importKey(t);try{return await ut.importKey("raw",t,r,!1,s)}catch{return yt=!1,Ge.importKey(t)}})(0,s,nt,0,at),i=await(async(e,t,r)=>{if(!gt)return Ge.j(t,e.salt,st.iterations,r);try{return await ut.deriveBits(e,t,r)}catch{return gt=!1,Ge.j(t,e.salt,st.iterations,r)}})(r.assign({salt:a},st),o,8*(2*it[n]+2)),c=new w(i),l=Rt(wt,kt(c,0,it[n])),d=Rt(wt,kt(c,it[n],2*it[n])),u=kt(c,2*it[n]);return r.assign(e,{keys:{key:l,ae:d,passwordVerification:u},ne:new mt(new pt(l),t.from(lt)),se:new ht(d)}),u}function vt(e,t){return t===$?Ke(e):t}function kt(e,t,r){return e.subarray(t,r)}function Et(e,t){return e.R(t)}function Rt(e,t){return e.D(t)}class Dt extends v{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){Ct(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=Nt(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new f(Qe);e=e.subarray(12)}n?t.error(new f($e)):t.enqueue(Nt(r,e))}})}}class Tt extends v{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){Ct(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=et(new w(12));t[11]=r.passwordVerification,n=new w(e.length+t.length),n.set(Ut(r,t),0),s=12}else n=new w(e.length),s=0;n.set(Ut(r,e),s),t.enqueue(n)}})}}function Ct(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,oe:new je(s[0]),ie:new je(s[2])}),n)for(let t=0;t<n.length;t++)Wt(e,n[t]);else for(let r=0;r<t.length;r++)Wt(e,t.charCodeAt(r))})(e,t,n)}function Nt(e,t){const r=new w(t.length);for(let n=0;n<t.length;n++)r[n]=Ht(e)^t[n],Wt(e,r[n]);return r}function Ut(e,t){const r=new w(t.length);for(let n=0;n<t.length;n++)r[n]=Ht(e)^t[n],Wt(e,t[n]);return r}function Wt(e,t){let[,r]=e.keys;e.oe.append([t]);const n=~e.oe.get();r=At(o.imul(At(r+Mt(n)),134775813)+1),e.ie.append([r>>>24]);const s=~e.ie.get();e.keys=[n,r,s]}function Ht(e){const t=2|e.keys[2];return Mt(o.imul(t,1^t)>>>8)}function Mt(e){return 255&e}function At(e){return 4294967295&e}const Ot="Invalid uncompressed size",Pt="Invalid compressed data";class It extends v{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:o,zipCrypto:i,signed:c,level:l,deflate64:d,format:u}=e,f=this;let w,p,m,y=super.readable;const g=u&&Te(u),x=c&&s&&!d&&!g&&(!a||i)&&!(!o||!n);a&&!i||!c||x||(w=new qe,y=Bt(y,w)),s&&(g?y=Vt(y,Zt(g.CompressionStream,u,{level:l,chunkSize:t})):x?(m=new jt,y=Vt(y,new n("gzip")),y=Bt(y,m)):y=Lt(y,o,{level:l,chunkSize:t},n,r,n)),a&&(i?y=Bt(y,new Tt(e)):(p=new bt(e),y=Bt(y,p))),Kt(f,y,()=>{let e;a&&!i&&(e=p.signature),a&&!i||!c||(e=x?m.signature:new h(w.value.buffer).getUint32(0)),f.signature=e})}}class jt extends v{constructor(){let e,t=10,r=new w(0);super({transform(e,n){if(t){const r=o.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=Ze(r,e));const a=s-8,i=o.min(a,r.length);n.enqueue(Ze(r.subarray(0,i),e.subarray(0,a-i))),r=Ze(r.subarray(i),e.subarray(a-i))},flush(){const t=Be(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class qt extends v{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:o,signature:i,compressed:c,useCompressionStream:l,deflate64:d,format:u}=e;let w,p,m=super.readable;if(a&&(s?m=Bt(m,new Dt(e)):(p=new xt(e),m=Bt(m,p))),c){const e=u&&Te(u);m=e?Vt(m,Zt(e.DecompressionStream,u,{chunkSize:t})):Lt(m,l,{chunkSize:t,deflate64:d},n,r,n),m=(e=>{const t=e.getReader();return new k({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new f(Pt);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(m)}a&&!s||!o||(w=new qe,m=Bt(m,w)),Kt(this,m,()=>{if((!a||s)&&o){const e=new h(w.value.buffer);if(i!=e.getUint32(0,!1))throw new f(_e)}})}}function Kt(e,t,n){t=Bt(t,new v({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function Zt(e,t,r){if(!e)throw new f("Compression method not supported");return new e(t,r)}function Lt(e,t,r,n,s,a){const o=t&&n?n:s||a,i=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new o(i,r)}catch(e){if(!t)throw e;if(s)c=new s(i,r);else{if(!a)throw e;c=new a(i,r)}}return Vt(e,c)}function Bt(e,t){return e.pipeThrough(t)}function Vt(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const Yt="data",Jt="deflate",Gt="inflate";class Xt extends v{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(Jt)?a=It:s.startsWith(Gt)&&(a=qt),n.outputSize=0;let o=0;const i=new a(e,t),c=super.readable,l=new v({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:o})}}),d=new v({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==$&&n.outputSize>e.outputSize))throw new f(Ot)},flush(){const{signature:e}=i;r.assign(n,{signature:e,inputSize:o})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(i).pipeThrough(d)})}}class Qt extends v{constructor(e){const t=[];let r=0;function n(){const n=new w(e);let s=0;for(;e>s;){const r=t[0],a=e-s;r.length>a?(n.set(r.subarray(0,a),s),t[0]=r.subarray(a),s+=a):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),r+=s.length;r>e;)a.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new w(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const _t={type:"module"},$t="error";let er,tr,rr,nr,sr=!0;try{sr=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class ar{constructor(e,{readable:t,writable:n},{options:s,config:a,ce:o,useWebWorkers:i,transferStreams:c,workerURI:l},d){const{signal:u}=o;return r.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new Qt(le(a))).pipeThrough(new or(o),{signal:u}),writable:n,options:r.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new g(t=>{const{ue:r,le:n}=e;r?(n?e.fe=t:(r.terminate(),t()),e.we=null):t()}),pe(){if(e.le){const{fe:t}=e;t&&(e.fe=null,e.me=!0,e.ue.terminate(),t()),e.le=!1,d(e)}}}),er===$&&(er=typeof C!=te),(i&&er?lr:cr)(e,a)}}class or extends v{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await ir(e,r)},async transform(e,n){s+=e.length,t&&await ir(t,s,r),n.enqueue(e)},async flush(){n&&await ir(n,s)}})}}async function ir(e,...t){try{await e(...t)}catch{}}function cr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,pe:n},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(Jt)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.he||(e.useCompressionStream=!0)}a=new Xt(e,s),await t.pipeThrough(a).pipeThrough(new Qt(le(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:o,outputSize:i}=a;return{signature:n,inputSize:o,outputSize:i}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{n()}})(e,t)}}function lr(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.we){let o;typeof a==re&&(a=a());try{o=ur(e.workerURI,n,e)}catch{return er=!1,cr(e,t)}r.assign(e,{ue:o,me:!1,we:{run:()=>(async(e,t)=>{let n,s;const a=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,ye:n,ge:s,result:a});const{readable:o,options:i}=e,{writable:c,closed:l,xe:d}=(e=>{const t=new AbortController,{writable:r,readable:n}=new v,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,xe:()=>t.abort()}})(e.writable);let u;try{u=wr({type:"start",options:i,config:t,readable:o,writable:c},e)}catch(t){d();try{await l}catch{}throw e.pe(),t}u||r.assign(e,{reader:o.getReader(),writer:c.getWriter()});try{const e=await a;return await f(),await l,e}catch(e){await f(),d();try{await l}catch{}throw e}async function f(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:n})}})}return e.we}function dr(e){const{ue:t}=e;if(t)try{t.terminate()}catch{}e.we=null}function ur(e,t,n,s,a=!0){let o,i,c;if(rr===$||tr!==e){const r=typeof e==re;i=r?e(a):e;const l=i.startsWith("data:"),d=i.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=_t);try{o=new C(i,c)}catch(a){if(d)try{u.revokeObjectURL(i)}catch{}if(r&&d)return ur(e,t,n,s,!1);if(s)throw a;return ur(e,t,n,!0,!1)}}else{s===$&&(s=!0),s&&(c=_t);try{i=new u(i,t)}catch{}try{o=new C(i,c)}catch(r){if(s)throw r;return ur(e,t,n,!1,a)}}tr=e,rr=i,nr=c}else o=new C(rr,nr);return o.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:o,error:i}=e,{reader:c,writer:l,ye:d,ge:u,pe:p,de:m}=t,h=()=>t.de!=m;try{if(i){const{message:e,stack:t,code:n,name:s,outputSize:a}=i,o=new f(e);r.assign(o,{stack:t,code:n,name:s,outputSize:a}),y(o)}else{if("pull"==n){const{value:e,done:r}=await c.read();h()||wr({type:Yt,value:e,done:r,messageId:a},t)}n==Yt&&(await l.ready,await l.write(new w(s)),h()||wr({type:"ack",messageId:a},t)),"close"==n&&y(null,o)}}catch(i){h()||(dr(t),y(i))}function y(e,t){h()||(e?u(e):d(t),l&&l.releaseLock(),p())}})(e,n)),o.addEventListener($t,e=>fr(e,n)),o.addEventListener("messageerror",e=>fr(e,n)),o}function fr(e,t){e.preventDefault&&e.preventDefault();const{ge:r,writer:n,pe:s}=t;dr(t),r&&(r(e.error||new f(e.message||$t)),n&&n.releaseLock(),s())}function wr(e,{ue:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,o=[];if(r&&(e.value=Le(r),o.push(e.value.buffer)),n&&sr?(s&&o.push(s),a&&o.push(a)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{sr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let pr=[];const mr=[];let hr,yr,gr=0;async function xr(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:o,useCompressionStream:i,compressed:c,signed:l,encrypted:d,format:f,codecURI:w}=r,{workerURI:p,maxWorkers:m}=n;f&&(w&&(r.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(w,n.baseURI)),await(async(e,t)=>{!Re.has(e)&&t&&Ce(e,await(import(t)))})(f,r.codecURI)),t.transferStreams=a||a===$&&n.transferStreams;const h=!c&&!l&&!d,y=f===$||!!r.codecURI;return t.useWebWorkers=!h&&y&&(o||o===$&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&p?p:$,r.useCompressionStream=i||i===$&&n.useCompressionStream,(await(async()=>{const r=pr.find(e=>!e.le);if(r)return vr(r),new ar(r,e,t,x);if(pr.length<m){const r={be:gr};return gr++,pr.push(r),new ar(r,e,t,x)}return new g(r=>{mr.push({resolve:r,stream:e,Se:t}),yr=n.workerStarvationTimeout,br()})})()).run();function x(e){if(Sr(),mr.length){const[{resolve:t,stream:r,Se:n}]=mr.splice(0,1);t(new ar(e,r,n,x)),br()}else e.ue?(vr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.me?e.me=!1:e.Fe=setTimeout(async()=>{pr=pr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):pr=pr.filter(t=>t!=e)}}function br(){!hr&&mr.length&&s.isFinite(yr)&&yr>=0&&(hr=setTimeout(Fr,yr))}function Sr(){hr&&(clearTimeout(hr),hr=null)}function Fr(){if(hr=null,mr.length){const[{resolve:e,stream:t,Se:n}]=mr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:$});e(new ar({},t,s,zr)),br()}}function zr(){Sr(),br()}function vr(e){const{Fe:t}=e;t&&(clearTimeout(t),e.Fe=null)}const kr="HTTP error ",Er="HTTP Range not supported",Rr="HTTP resource changed",Dr="Writer iterator completed too soon",Tr="Writer not initialized",Cr="Content-Range",Nr="Range",Ur="GET",Wr="bytes",Hr=16777216,Mr="writable",Ar=Symbol();class Or{constructor(){this.size=0}init(){this.initialized=!0}}class Pr extends Or{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=le(ce())}={}){const n=this;let s=0;return new k({async pull(a){const i=t===$?r:o.min(r,t-s),c=await pn(n,e+s,i);a.enqueue(c),s+r>t||t===$&&!c.length&&i?a.close():s+=r}})}}class Ir extends Or{constructor(){super();const e=this,t=new E({write(t){if(!e.initialized)throw new f(Tr);return e.writeUint8Array(Le(t))}});r.defineProperty(e,Mr,{get:()=>t})}writeUint8Array(){}}let jr,qr;class Kr extends Pr{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),qr||(qr=(async()=>{try{const e=new y([new w(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();jr=1==t}catch{jr=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?jr?t.slice(n,n+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,n)),new w(a)}}class Zr extends Or{constructor(e){super();const t=this,n=new v,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,Mr,{get:()=>n.writable}),t.blob=new d(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Lr extends Pr{constructor(e,t){super(),Vr(this,e,t)}async init(){await Yr(this,an,tn),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:a}=t;if((r||n)&&a!==$){const{offset:r=0,size:n=a-r}=e||{};if(n>0&&a>r)return((e,t,r)=>{let n,a=t,i=0,c=r;return new k({start:()=>l(),async pull(e){n||await l();const{value:t,done:r}=await n.read();if(r)throw new f(Er);const s=t.length>i?t.subarray(0,i):t;i-=s.length,c-=s.length,s.length&&e.enqueue(s),i||(await(async()=>{const e=n;n=$,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function l(){const t=o.min(e.maximumRangeSize,c),r=await an(Ur,e,$r(e,a,t));if(206!=r.status)throw new f(Er);const l=r.headers.get(Cr);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new f(Er)}_r(e,r),Qr(e,r),a+=t,i=t,n=r.body.getReader()}})(t,r,o.min(n,a-r))}return super.createReadable(e)}readUint8Array(e,t){return Jr(this,e,t,an,tn)}}class Br extends Pr{constructor(e,t){super(),Vr(this,e,t)}async init(){await Yr(this,on,rn),super.init()}readUint8Array(e,t){return Jr(this,e,t,on,rn)}}function Vr(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:l=Hr,fetch:d}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:l,fetch:d})}async function Yr(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:i}=e;if((e=>{const{baseURI:t}=ce(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(a||o)&&(void 0===s||s)){const n=await t(Ur,e,$r(e,i?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(o||s&&s.toLowerCase()==Wr))throw new f(Er);{if(i){const t=new w(await n.arrayBuffer());206==n.status&&t.length==K&&(e.ze=t)}Qr(e,n);const s=Gr(n);s===$?await sn(e,t,r):e.size=s}}else await sn(e,t,r)}async function Jr(e,t,r,n,a){const{useRangeHeader:o,forceRangeRequests:i,ze:c,size:l,options:d}=e;if(o||i){if(c&&t==l-K&&r==K)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await n(Ur,e,$r(e,t,r));if(206!=a.status)throw new f(Er);const o=a.headers.get(Cr);if(o){const e=s(o.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new f(Er)}_r(e,a),Qr(e,a);const i=new w(await a.arrayBuffer());if(i.length!=r)throw new f(Er);return i}return ne}{const{data:n}=e;return n||await a(e,d),e.data.subarray(t,t+r)}}function Gr(e){const t=e.headers.get(Cr);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Xr({headers:e}){return{ve:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function Qr(e,t){const{checkResourceChanges:r,ke:n}=e;r&&!n&&206==t.status&&(e.ke=Xr(t))}function _r(e,t){const{checkResourceChanges:n,ke:s,size:a}=e;if(n){const e=Gr(t);if(e!==$&&a!==$&&e!=a)throw new f(Rr);if(s){const e=Xr(t);if(r.entries(s).some(([t,r])=>r!==$&&e[t]!==$&&r!=e[t]))throw new f(Rr)}}}function $r(e,t=0,n=1){return r.assign({},en(e),{[Nr]:Wr+"="+(0>t?t:t+"-"+(t+n-1))})}function en({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function tn(e){await nn(e,an)}async function rn(e){await nn(e,on)}async function nn(e,t){const r=await t(Ur,e,en(e));e.data=new w(await r.arrayBuffer()),e.size=e.data.length}async function sn(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,en(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function an(e,{fetch:t=fetch,options:n,url:s},a){const o=await t(s,r.assign({},n,{method:e,headers:a}));if(400>o.status)return o;throw 416==o.status?new f(Er):new f(kr+(o.statusText||o.status))}function on(e,{url:t},n){return new g((s,a)=>{const o=new XMLHttpRequest;if(o.addEventListener("load",()=>{if(400>o.status){const e=[];o.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:o.status,arrayBuffer:()=>o.response,headers:new c(e)})}else a(416==o.status?new f(Er):new f(kr+(o.statusText||o.status)))},!1),o.addEventListener("error",e=>a(e.detail?e.detail.error:new f("Network error")),!1),o.open(e,t),n)for(const e of r.entries(n))o.setRequestHeader(e[0],e[1]);o.responseType="arraybuffer",o.send()})}class cn extends Pr{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Br(e,t):new Lr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class ln extends Pr{constructor(e){super(),this.Ee=e}async init(){const e=this,{Ee:t}=e;e.Re=0,await g.all(t.map(e=>wn(e))),e.De=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}Te(e){const{De:t,size:r}=this,n=t.at(e);return n===$?r:n}async readUint8Array(e,t){const r=this,{Ee:n}=this;let s,a=0,i=e;for(;n[a]&&i>=n[a].size;)i-=n[a].size,a++;const c=n[a];if(c){const n=c.size;if(i+t>n){const a=n-i;s=Ze(await pn(c,i,a),await r.readUint8Array(e+a,t-a))}else s=await pn(c,i,t)}else s=ne;return r.Re=o.max(a,r.Re),s}}class dn extends Or{constructor(e,t=4294967295){super();const n=this;let s,a,o;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const i=new E({async write(t){if(t===Ar)return void(o&&await l());const{availableSize:r}=n;if(o)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:i}=await e.next();if(i&&!r)throw new f(Dr);s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await wn(s),a=r.writable,o=a.getWriter(),await this.write(t)}},async close(){o&&(await o.ready,await d())},async abort(e){o&&await o.abort(e)}});async function c(e){const t=e.length;t&&(await o.ready,await o.write(e),s.size+=t,n.availableSize-=t)}async function l(){await d(),n.diskOffset+=s.size,n.diskNumber++,o=null,n.availableSize=n.maxSize}async function d(){await o.close()}r.defineProperty(n,Mr,{get:()=>i})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Ar)}finally{e.releaseLock()}}}class un{constructor(e){return t.isArray(e)&&(e=new ln(e)),e instanceof k&&(e={readable:e}),e}}class fn{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new dn(e)),e instanceof E&&(e={writable:e}),e.size===$&&(e.size=0),e}}async function wn(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function pn(e,t,r){return e.readUint8Array(t,r)}const mn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function hn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=mn[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const yn="filename",gn="rawFilename",xn="comment",bn="rawComment",Sn="uncompressedSize",Fn="compressedSize",zn="offset",vn="diskNumberStart",kn="lastModDate",En="rawLastModDate",Rn="lastAccessDate",Dn="creationDate",Tn="rawCreationDate",Cn="internalFileAttributes",Nn="externalFileAttributes",Un="msdosAttributesRaw",Wn="msdosAttributes",Hn="msDosCompatible",Mn="zip64",An="encrypted",On="version",Pn="versionMadeBy",In="zipCrypto",jn="directory",qn="executable",Kn="compressionMethod",Zn="signature",Ln="extraField",Bn="unixMode",Vn="setuid",Yn="setgid",Jn="sticky",Gn=[yn,gn,Sn,Fn,kn,En,xn,bn,Rn,Dn,Tn,zn,vn,Cn,Nn,Un,Wn,Hn,Mn,An,On,Pn,In,jn,qn,Kn,Zn,Ln,"extraFieldUnix","extraFieldInfoZip","uid","gid",Bn,Vn,Yn,Jn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Xn{constructor(e){Gn.forEach(t=>this[t]=e[t])}}const Qn="password",_n="rawPassword",$n="passThrough",es="signal",ts="checkAmbiguity",rs="useWebWorkers",ns="useCompressionStream",ss="transferStreams",as="preventClose",os="offset",is="usdz",cs="strictness",ls="strict",ds="tolerant",us="File format is not recognized",fs="End of central directory not found",ws="End of Zip64 central directory locator not found",ps="Central directory header not found",ms="Local file header not found",hs="Zip64 extra field not found",ys="File contains encrypted entry",gs="Encryption method not supported",xs="Compression method not supported",bs="Split zip file",Ss="Overlapping entry found",Fs="Ambiguous archive",zs="utf-8",vs="cp437",ks=[[Sn,U],[Fn,U],[zn,U],[vn,W]],Es={[W]:{Ce:Qs,bytes:4},[U]:{Ce:_s,bytes:8}};class Rs{constructor(e,t={}){r.assign(this,{reader:new un(e),options:t,config:ce(),Ne:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await wn(n),n.size!==$&&n.readUint8Array||(n=new Kr(await new d(n.readable).blob()),await wn(n)),n.size<K)throw new f(us);const a=As(Vs(t,e,cs),Vs(t,e,ts)),i=a==ls,c=a!=ds,u=((e,t)=>e!==$?e:t==ls?0:t==ds?1/0:W)(Vs(t,e,"maxAppendedDataSize"),a),{Ue:w,We:p}=await(async(e,t,r)=>{const{size:n}=e,s=o.min(n,65557),a={count:Os};let i,c,l=0;for await(const[r,o,d,u,f]of qs(e,s)){const s=Xs(r,u+20);if(f+K+s==n){const s=await Zs(e,r,o,u,f,n,a);if(s==js){if(i||(i=Ks(d,u,f)),l++,!t||l>1)break}else s!=Is||c||(c=Ks(d,u,f))}}return i||(i=c),i||(i=await(async(e,t,r)=>{const{size:n}=e,s=o.min(n,t==1/0?n:65557+t);let a,i;for await(const[t,o,c,l,d]of qs(e,s)){const s=Ks(c,l,d);a||(a=s);const u=await Zs(e,t,o,l,d,n,r);if(u==js)return s;u!=Is||i||(i=s)}return i||a})(e,r,a)),{Ue:i,We:l}})(n,c,u);if(!w)throw Qs(Be(await pn(n,0,4)))==A?new f(bs):new f(fs);c&&p>1&&Bs("multiple end of central directory records");const m=Be(w);let h=Qs(m,12),y=Qs(m,16);const x=w.offset,b=Xs(m,20),S=x+K+b;n.size-S>u&&Bs("appended data");let F=Xs(m,4);const z=n.Re||0;let k,E,R=Xs(m,6),D=Xs(m,10),T=0;const C=y==U||h==U||D==W||R==W;if(y!=U&&R!=W&&(y+=Ms(n,R)),C){const e=w.offset<Z?ne:await pn(n,w.offset-Z,Z),t=Be(e);if(e.length==Z&&Qs(t,0)==q){y=Ms(n,Qs(t,4))+_s(t,8);let e=await pn(n,y,56),r=Be(e);const s=w.offset-Z-56;if((56>e.length||Qs(r,0)!=j)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await pn(n,y,56),r=Be(e)}if(56>e.length||Qs(r,0)!=j)throw new f(ws);E=!0,F==W?F=Qs(r,16):i&&F!=Qs(r,16)&&Bs("mismatched zip64 end of central directory record"),R==W?R=Qs(r,20):i&&R!=Qs(r,20)&&Bs("mismatched zip64 end of central directory record"),D==W?D=_s(r,32):i&&D!=_s(r,32)&&Bs("mismatched zip64 end of central directory record"),h==U?h=_s(r,40):i&&h!=_s(r,40)&&Bs("mismatched zip64 end of central directory record"),y=Ms(n,R)+_s(r,48)+T}}const N=h,M=w.offset-(E?76:0);if(y<n.size||(T=n.size-y-h-K,y=n.size-h-K),z!=F)throw new f(bs);if(0>y)throw new f(us);let O=0,I=await pn(n,y,h),L=Be(I);if(h){if(4>I.length)throw new f(us);const e=M-h;if(y!=e&&R==F){let t=!(Qs(L,O)==P);if(t||0>e||e+4>n.size||(t=Qs(Be(await pn(n,e,4)),0)==P),t){const t=y;y=e,y>t&&(T+=y-t),I=await pn(n,y,h),L=Be(I)}}}const B=M-y;if(h==B||0>B||R!=F||(h=B,I=await pn(n,y,h),L=Be(I)),0>y||y>=n.size)throw new f(us);k=y;const X=Vs(t,e,"filenameEncoding"),Q=Vs(t,e,"commentEncoding"),_=i?new l:$;let ee;for(let a=0;D>a;a++){const c=new Ts(n,s,t.options);if(O+46>I.length||Qs(L,O)!=P)throw new f(ps);Cs(c,L,O+6);const l=!!c.bitFlag.languageEncodingFlag,u=O+46,w=u+c.filenameLength,p=w+c.extraFieldLength,m=Xs(L,O+4),h=!(m>>8),y=m>>8==3,x=I.subarray(u,w),b=Xs(L,O+32),S=p+b,F=I.subarray(p,S),z=l,E=l,R=Qs(L,O+38),C=R&H,N={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},U=Qs(L,O+42),M=Vs(t,e,"decodeText")||hn,A=z?zs:X||vs,j=E?zs:Q||vs;let q=M(x,A);q===$&&(q=hn(x,A));let K=M(F,j);K===$&&(K=hn(F,j)),r.assign(c,{index:a,versionMadeBy:m,msDosCompatible:h,compressedSize:0,uncompressedSize:0,He:b,offset:U,diskNumberStart:Xs(L,O+34),internalFileAttributes:Xs(L,O+36),externalFileAttributes:R,msdosAttributesRaw:C,msdosAttributes:N,rawFilename:x,filenameUTF8:z,commentUTF8:E,rawExtraField:I.subarray(w,p),rawComment:F,filename:q,comment:K}),Ns(c,c,L,O+6),c.offset+=T,k=o.min(Ms(n,c.diskNumberStart)+c.offset,k),i&&(_.has(c.filename)&&(ee=!0),_.add(c.filename));const Z=c.externalFileAttributes>>16&W;c.unixMode===$&&16877&Z&&(c.unixMode=Z);const B=!!(c.unixMode&Y),te=!!(c.unixMode&J),re=!!(512&c.unixMode),ne=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&Z),se=c.unixMode!==$&&(61440&c.unixMode)==V,ae=(61440&Z)==V;r.assign(c,{setuid:B,setgid:te,sticky:re,unixExternalUpper:Z,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ae||h&&N.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new Xn(c);oe.getData=(e,r)=>c.getData(e,oe,t.Ne,r),oe.arrayBuffer=async e=>{const r=new v,[n]=await g.all([new d(r.readable).arrayBuffer(),c.getData(r,oe,t.Ne,e)]);return n},O=S;const{onprogress:ie}=e;if(ie)try{await ie(a+1,D,new Xn(c))}catch{}yield oe}i&&O!=N&&Bs("trailing central directory data"),ee&&Bs("duplicate filename"),i&&(T||D&&k>0)&&Bs("prepended data");const te=Vs(t,e,"extractPrependedData"),re=Vs(t,e,"extractAppendedData");return te&&(t.prependedData=k>0?await pn(n,0,k):ne),t.comment=b?await pn(n,x+K,b):ne,re&&(t.appendedData=S<n.size?await pn(n,S,n.size-S):ne),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class Ds{constructor(e={}){const{readable:t,writable:r}=new v,n=new Rs(t,e).getEntriesGenerator();this.readable=new k({async pull(e){const{done:t,value:r}=await n.next();if(t)return e.close();const s={...r,readable:(()=>{const{readable:e,writable:t}=new v;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=r}}class Ts{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:a,index:o,offset:i,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:p,signature:m,rawLastModDate:h,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:x}=p,b=t.localDirectory={},S=Ms(a,c)+i,F=await pn(a,S,X),z=Be(F);let v=Vs(s,n,Qn),k=Vs(s,n,_n);const R=Vs(s,n,$n);if(v=v&&v.length&&v,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new f(xs);const D=R?$:De(u);if(0!=u&&8!=u&&9!=u&&!D&&!R)throw new f(xs);if(F.length<X||Qs(z,0)!=M)throw new f(ms);Cs(b,z,4);const{extraFieldLength:T,filenameLength:C}=b,N=As(Vs(s,n,cs),Vs(s,n,ts))==ls;let U=ne;if(N&&(C||T)){const e=await pn(a,S+X,C+T);U=e.subarray(0,C),b.rawExtraField=e.subarray(C)}else b.rawExtraField=T?await pn(a,S+X+C,T):ne;Ns(s,b,z,4,!0),N&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&Bs("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Bs("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Bs("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Bs("mismatched local file header (signature or sizes)")})(s,b,U);const{lastAccessDate:W,creationDate:A}=b;W&&(t.lastAccessDate=W),A&&(t.creationDate=A);const P=s.encrypted&&b.encrypted&&!R,I=P&&!l;if(R||(t.zipCrypto=I),P){if(!I&&(1>l.strength||l.strength>3))throw new f(gs);if(!v&&!k)throw new f(ys)}const j=S+X+C+T,q=g,K=a.createReadable({offset:j,size:q}),Z=Vs(s,n,es),L=Vs(s,n,"checkPasswordOnly");let B=Vs(s,n,"checkOverlappingEntry");const V=Vs(s,n,"checkOverlappingEntryOnly");V&&(B=!0);const{onstart:Y,onprogress:J,onend:G}=n,Q=9==u;let _=Vs(s,n,ns);Q&&(_=!1);const ee={options:{codecType:Gt,password:v,rawPassword:k,zipCrypto:I,encryptionStrength:l&&l.strength,signed:Vs(s,n,"checkSignature")&&!R,passwordVerification:I&&(x?h>>>8&H:m>>>24&H),outputSize:R?g:y,signature:m,compressed:0!=u&&!R,encrypted:P,useWebWorkers:Vs(s,n,rs),useCompressionStream:_,transferStreams:Vs(s,n,ss),deflate64:Q,format:D?D.format:$,codecURI:D?D.codecURI:$,checkPasswordOnly:L},config:w,ce:{signal:Z,size:q,onstart:Y,onprogress:J,onend:G}};let te;B&&await(async({reader:e,Me:t,index:r,offset:n,signature:s,compressedSize:a,uncompressedSize:o,Ae:i,dataDescriptor:c,extraFieldZip64:l,Ne:d})=>{let u=0;if(c&&(u=l?20:12),u){const r=await pn(e,i+a,u+4);if(r.length==u+4&&Qs(Be(r),0)==O){const e=Qs(Be(r),4);let n,i;l?(n=_s(Be(r),8),i=_s(Be(r),16)):(n=Qs(Be(r),8),i=Qs(Be(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==a&&i==o&&(u+=4)}}const w={start:n,end:i+a+u,Me:t};for(const[e,t]of d)if(e!=r&&w.start<t.end&&t.start<w.end){const e=new f(Ss);throw e.Oe=t.Me,e}d.set(r,w)})({reader:a,Me:t,index:o,offset:S,signature:m,compressedSize:g,uncompressedSize:y,Ae:j,dataDescriptor:x||b.bitFlag.dataDescriptor,extraFieldZip64:d||b.extraFieldZip64,Ne:r});try{if(!V){L&&(e=new E),e=new fn(e),await wn(e,R?g:y),({writable:te}=e);const{outputSize:t}=await xr({readable:K,writable:te},ee);if(e.size+=t,t!=(R?g:y))throw new f(Ot)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!L||t.message!=$e)throw t}finally{Vs(s,n,as)||!te||te.locked||await te.getWriter().close()}return L||V?$:e.getData?e.getData():te}}function Cs(e,t,n){const s=e.rawBitFlag=Xs(t,n+2),a=!(1&~s),o=Qs(t,n+6);r.assign(e,{encrypted:a,version:Xs(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&B)==B},rawLastModDate:o,lastModDate:Ys(o),filenameLength:Xs(t,n+22),extraFieldLength:Xs(t,n+24)})}function Ns(e,t,n,s,a){const{rawExtraField:o}=t,l=t.extraField=new c,d=Be(o);let u=0;try{for(;u<o.length;){const e=Xs(d,u),t=Xs(d,u+2);l.set(e,{type:e,data:o.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Xs(n,s+4);r.assign(t,{signature:Qs(n,s+10),compressedSize:Qs(n,s+14),uncompressedSize:Qs(n,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const r=Be(e.data),n=ks.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+Es[t].bytes,0);if(e.data.length<s)throw new f(hs);for(let s=0,a=0;s<n.length;s++){const[o,i]=n[s],c=Es[i];t[o]=e[o]=c.Ce(r,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const m=l.get(28789);m&&(Us(m,yn,gn,t,e),t.extraFieldUnicodePath=m);const h=l.get(25461);h&&(Us(h,xn,bn,t,e),t.extraFieldUnicodeComment=h);const y=l.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=Be(e.data),a=Gs(s,4);r.assign(e,{Pe:Gs(s,0),vendorId:Gs(s,2),strength:a,originalCompressionMethod:n,compressionMethod:Xs(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const g=l.get(10);g&&(((e,t)=>{const n=Be(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=Xs(n,a),r=Xs(n,a+2);1==t&&(s=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(s&&24==s.length){const n=Be(s),a=n.getBigUint64(0,!0),o=n.getBigUint64(8,!0),i=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:i});const c={lastModDate:Js(a),lastAccessDate:Js(o),creationDate:Js(i)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=l.get(30805);if(x)Ws(x,t,!1),t.extraFieldUnix=x;else{const e=l.get(30837);e&&(Ws(e,t,!0),t.extraFieldInfoZip=e)}const b=l.get(L);b&&(((e,t,r)=>{if(!e.data.length)return;const n=Be(e.data),s=Gs(n,0),a=[],o=[];r?(1&~s||(a.push(kn),o.push(En)),2&~s||(a.push(Rn),o.push("rawLastAccessDate")),4&~s||(a.push(Dn),o.push(Tn))):5>e.data.length||(a.push(kn),o.push(En));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=Qs(n,c);t[r]=e[r]=new i(1e3*(0|a));const l=o[s];e[l]=a}c+=4})})(b,t,a),t.extraFieldExtendedTimestamp=b);const S=l.get(6534);S&&(t.extraFieldUSDZ=S)}function Us(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const o=Be(e.data),i=new je;i.append(a[n]);const c=Be(new w(4));c.setUint32(0,i.get(),!0);const l=Qs(o,1);r.assign(e,{version:Gs(o,0),[t]:hn(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Qs(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Ws(e,t,n){try{const s=Be(e.data);let a,o;if(n){let t=0;const n=Gs(s,t++),i=Gs(s,t++);a=Hs(e.data.subarray(t,t+i)),t+=i;const c=Gs(s,t++);o=Hs(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:o})}else 4>e.data.length||(a=Xs(s,0),o=Xs(s,2),r.assign(e,{uid:a,gid:o}));a!==$&&(t.uid=a),o!==$&&(t.gid=o)}catch{}}function Hs(e){const t=new w(4);return t.set(e,0),new h(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ms(e,t){return e.Te?e.Te(t):0}function As(e,t){return e===$?t?ls:"balanced":e}const Os=64,Ps=0,Is=1,js=2;async function*qs(e,t){const r=e.size-t,n=await pn(e,r,t),s=Be(n);for(let e=n.length-K;e>=0;e--)Qs(s,e)==I&&(yield[s,r,n,e,r+e])}function Ks(e,t,r){return{offset:r,buffer:e.slice(t,t+K).buffer}}async function Zs(e,t,r,n,s,a,o){const i=Xs(t,n+10),c=Qs(t,n+12),l=Qs(t,n+16);if(i==W||c==U||l==U)return await Ls(e,t,r,s-Z,a,o)==q?js:Ps;if(!i&&!c)return Is;const d=Xs(t,n+6);for(const n of[s-c,Ms(e,d)+l])if(await Ls(e,t,r,n,a,o)==P)return js;return Ps}async function Ls(e,t,r,n,s,a){return 0>n||n+4>s?$:r>n?a.count>0?(a.count--,Qs(Be(await pn(e,n,4)),0)):$:Qs(t,n-r)}function Bs(e){const t=new f(Fs);throw t.reason=e,t}function Vs(e,t,r){return t[r]===$?e.options[r]:t[r]}function Ys(e){const t=(4294901760&e)>>16,r=e&W;try{return new i(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function Js(e){return new i(s(e/a(1e4)-a(116444736e5)))}function Gs(e,t){return e.getUint8(t)}function Xs(e,t){return e.getUint16(t,!0)}function Qs(e,t){return e.getUint32(t,!0)}function _s(e,t){return s(e.getBigUint64(t,!0))}var $s=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Fs,ERR_BAD_FORMAT:us,ERR_CENTRAL_DIRECTORY_NOT_FOUND:ps,ERR_ENCRYPTED:ys,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:ws,ERR_EOCDR_NOT_FOUND:fs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:hs,ERR_INVALID_COMPRESSED_DATA:Pt,ERR_INVALID_PASSWORD:Qe,ERR_INVALID_SIGNATURE:_e,ERR_INVALID_UNCOMPRESSED_SIZE:Ot,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ms,ERR_OVERLAPPING_ENTRY:Ss,ERR_SPLIT_ZIP_FILE:bs,ERR_UNSUPPORTED_COMPRESSION:xs,ERR_UNSUPPORTED_ENCRYPTION:gs,ZipReader:Rs,ZipReaderStream:Ds});const ea="File already exists",ta="Zip file comment exceeds 64KB",ra="File entry comment exceeds 64KB",na="File entry name exceeds 64KB",sa="Version exceeds 65535",aa="The strength must equal 1, 2, or 3",oa="Encryption is not supported in USDZ files",ia="Extra field type exceeds 65535",ca="Extra field data exceeds 64KB",la=-2147483648,da=2147483647,ua="Zip64 is not supported (set the 'zip64' option to 'true')",fa="Undefined uncompressed size",wa="Undefined reader",pa="Zip file not empty",ma=new w([7,0,2,0,65,69,3,0,0]),ha="infozip",ya="unix";let ga=0;const xa=[];class ba{constructor(e,t={}){e=new fn(e);const{availableSize:n=ee,maxSize:s=ee}=e,a=n>0&&n!==ee&&s>0&&s!==ee;r.assign(this,{writer:e,Ie:a,options:t,config:ce(),files:new c,je:new l,offset:t[os]===$?e.size||e.writable.size||0:t[os],qe:t[os]===$?0:t[os]-(e.size||e.writable.size||0),Ke:new l,Ze:0,Le:$})}async prependZip(e){if(this.je.size)throw new f(pa);e=new un(e),await wn(e);const{ZipReader:t}=await g.resolve().then(()=>$s),n=new t(e.readable),s=await n.getEntries();await n.close(),await wn(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.je=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:a,rawFilename:o,bitFlag:i,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:u}=e;let{compressionMethod:f,Be:w,Ve:p,Ye:m,Je:h,Ge:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:b,dataDescriptor:S}=i;w=w||ne,p=p||ne,m=m||ne,h=h||ne,y=y||ne,g=g||ne,e.extraFieldAES&&(f=99);const F=ja(w,p,m,h,y,g),z=u&&l>=U,v=u&&d>=U,k=-7&Ka(x,b,S,c,f)|x<<1,{Xe:E,Qe:R}=qa({version:t,bitFlag:k,compressionMethod:f,uncompressedSize:l,compressedSize:d,rawLastModDate:n,rawFilename:o,_e:v,$e:z,extraFieldLength:F}),{signature:D}=e;return D!==$&&Oa(R,10,D),r.assign(e,{$e:z,_e:v,et:u&&e.offset>=U,diskNumberStart:0,nt:!1,Be:w,Ve:p,Ye:m,Je:h,Ge:y,rawExtraField:g,extendedTimestamp:m.length>0||h.length>0,st:1+(s?2:0)+(a?4:0),Xe:E,Qe:R}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ke:o,config:c}=s;let l,d;ga<c.maxWorkers?ga++:await new g(e=>xa.push(e));try{if(e=e.trim(),Ha(s,n,jn)&&!e.endsWith(G)&&(e+=G),s.je.has(e))throw new f(ea);return s.je.add(e),d=!0,l=(async(e,t,n,s)=>{const o=((e,t,r)=>{t=t.trim();let n=Ha(e,r,Hn),s=Ha(e,r,Pn,n?20:768);const a=Ha(e,r,qn),o=Ha(e,r,"uid"),i=Ha(e,r,"gid");let c=Ha(e,r,Bn),l=Ha(e,r,"unixExtraFieldType"),d=Ha(e,r,Vn),u=Ha(e,r,Yn),w=Ha(e,r,Jn);if(o!==$&&(0>o||o>U))throw new f("Invalid uid (must be integer 0..2^32-1)");if(i!==$&&(0>i||i>U))throw new f("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>W))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==ha&&l!==ya)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===ya&&(o!==$&&o>W||i!==$&&i>W))throw new f("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||o===$&&i===$||(l=ha);let p=Ha(e,r,Un),m=Ha(e,r,Wn);const h=p!==$||m!==$;if(o!==$||i!==$||c!==$||l?(n=!1,s=s&W|768):h&&(n=!0,s&=H),p!==$&&(0>p||p>H))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(m&&"object"!=typeof m)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(s>W)throw new f(sa);let y=Ha(e,r,Nn,0);!r[jn]&&t.endsWith(G)&&(r[jn]=!0);const g=Ha(e,r,jn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=a?493<<16:27525120),n||(x=y>>16&W,c=c===$?x:c&W,d?c|=Y:d=!!(c&Y),u?c|=J:u=!!(c&J),w?c|=512:w=!!(512&c),g&&(c|=V),y=(c&W)<<16|y&H),({msdosAttributesRaw:p,msdosAttributes:m}=((e,t)=>{if(e!==$)e&=H;else if(t!==$){const{readOnly:r,hidden:n,system:s,directory:a,archive:o}=t;let i=0;r&&(i|=1),n&&(i|=2),s&&(i|=4),a&&(i|=16),o&&(i|=32),e=i&H}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,m)),h&&(y=y&U|p&H),{name:t,ot:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:o,gid:i,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:u,sticky:w,msdosAttributesRaw:p,msdosAttributes:m}}})(e,t,s);({name:t}=o);const c=((e,t,r)=>{const n=Ha(e,r,"encodeText",Ke);let s=n(t);if(s===$&&(s=Ke(t)),ja(s)>W)throw new f(na);const a=r[xn]||"";let o=n(a);if(o===$&&(o=Ke(a)),ja(o)>W)throw new f(ra);const c=Ha(e,r,On,20);if(c>W)throw new f(sa);const l=Ha(e,r,kn,new i),d=Ha(e,r,Rn),u=Ha(e,r,Dn),p=Ha(e,r,Cn,0),m=Ha(e,r,$n);let h,y;m||(h=Ha(e,r,Qn),y=Ha(e,r,_n));const g=Ha(e,r,"encryptionStrength",3),x=Ha(e,r,In),b=Ha(e,r,"extendedTimestamp",!0),S=Ha(e,r,"ntfsTimestamp"),F=Ha(e,r,"keepOrder",!0),z=Ha(e,r,rs),v=Ha(e,r,ss),k=Ha(e,r,"bufferedWrite"),E=Ha(e,r,"createTempStream"),R=Ha(e,r,"dataDescriptorSignature",!0),D=Ha(e,r,es),T=Ha(e,r,"useUnicodeFileNames",!0),C=Ha(e,r,Kn),N=m||C===$?$:De(C);if(!m&&C!==$&&0!==C&&8!==C&&!N)throw new f("Compression method not supported");let U=Ha(e,r,"level");if(e.options[is]){if(h!==$||y!==$)throw new f(oa);U===$&&C===$&&(U=0)}let H=Ha(e,r,ns),M=Ha(e,r,"dataDescriptor");k&&M===$&&(M=!1),(M===$||x)&&(M=!0),U!==$&&6!=U&&(H=!1),H||N||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(U=0);const A=Ha(e,r,Mn);if(!x&&(h!==$||y!==$)&&(1>g||g>3))throw new f(aa);let O=ne;const P=r[Ln];if(P){let e=0,t=0;P.forEach(t=>e+=4+ja(t)),O=new w(e);const r=Be(O);P.forEach((e,n)=>{if(n>W)throw new f(ia);if(ja(e)>W)throw new f(ca);Aa(r,t,n),Aa(r,t+2,ja(e)),Ia(O,e,t+4),t+=4+ja(e)})}return{comment:a,ot:{rawFilename:s,rawComment:o,version:c,lastModDate:l,lastAccessDate:d,creationDate:u,internalFileAttributes:p,passThrough:m,password:h,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:b,ntfsTimestamp:S,keepOrder:F,useWebWorkers:z,transferStreams:v,bufferedWrite:k,createTempStream:E,dataDescriptorSignature:R,signal:D,useUnicodeFileNames:T,compressionMethod:C,format:N?N.format:$,codecURI:N?N.codecURI:$,it:N?N.versionNeeded:$,level:U,useCompressionStream:H,dataDescriptor:M,zip64:A,rawExtraField:O}}})(e,t,s),{comment:l}=c,d=s[Ln];let u;e.files.set(t,$);try{const i=await(async(e,t,{ot:r},n)=>{const{passThrough:s,zipCrypto:a,password:o,rawPassword:i,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:u,compressionMethod:w}=r,p=0,m=0;if(s){if(!t)throw new f(wa);if(m=n[Sn],m===$)throw new f(fa)}const h=!0===d,y=Ha(e,n,An),g=!!t&&(!!(o&&ja(o)||i&&ja(i))||s&&y);t||(u=0,w=0);const x=g?a?12:16+4*c:0;t&&(t=new un(t),await wn(t),s?(n.uncompressedSize=m,p=Ma(m)+x):t.size===$?(l=!0,(d||d===$)&&(d=!0,m=p=4294967296)):(n.uncompressedSize=m=t.size,p=Ma(m)+x));const b=h||m>=U,S=h||p>=U;if(b||S){if(!1===d)throw new f(ua);d=!0}return d=d||!1,{reader:t,ot:{dataDescriptor:l,zip64:d,$e:b,_e:S,uncompressedSize:m,level:u,compressionMethod:w,encrypted:g}}})(e,n,c,s);({reader:n}=i);const l=Ea(e.writer),d=ka(e.writer),p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:o,zipCrypto:i,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:u,encryptionStrength:w,extendedTimestamp:p,ntfsTimestamp:m,passThrough:h,encrypted:y,$e:g,_e:x,uncompressedSize:b}=e;let{version:S,compressionMethod:F}=e;const z=!d&&(F===$?a===$||a>0:0!==F);let v;const k=h||!z,E=o&&(e.bufferedWrite||!l||!g&&!x||k),R=E||o&&l&&(g||x);if(o&&(g||x)){const e=20,t=va(e);if(t.uint16(1),t.uint16(e-4),v=t.array,E&&(t.ct(b),k)){const e=y?i?12:16+4*w:0;t.ct(h?0:b+e)}}else v=ne;let D,T,C,N,U;if(y&&!i){const e=va(ja(ma)+2);e.uint16(39169),e.bytes(ma),D=e.array,D[8]=w}else D=ne;if(p){const e=Na(r),t=Ua(e);if(t){const t=9+(n?4:0)+(s?4:0),r=va(t);N=1+(n?2:0)+(s?4:0),r.uint16(L),r.uint16(t-4),r.uint8(N),r.uint32(e),n&&r.uint32(Wa(Na(n))),s&&r.uint32(Wa(Na(s))),C=r.array}else C=ne;if(m===$?!t||n||s:m)try{const e=Ca(r),t=va(36);t.uint16(10),t.uint16(32),t.lt(4),t.uint16(1),t.uint16(24),t.ct(e),t.ct(Ca(n)||e),t.ct(Ca(s)||e),T=t.array}catch{T=ne}else T=ne}else T=C=ne;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=ha||t===$&&r===$)if(n!=ya||t===$&&r===$)U=ne;else{const e=va(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&W),e.uint16((r===$?0:r)&W),U=e.array}else{const e=za(t),n=za(r),s=3+e.length+n.length,a=va(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(n.length),a.bytes(n),U=a.array}}catch{U=ne}F===$&&(F=z?8:0);const{it:H}=e;z&&H!==$&&(S=S>H?S:H),o&&(S=S>45?S:45),y&&!i&&(S=S>51?S:51,D[9]=F,F=99);const A=R?ja(v):0,O=A+ja(D,C,T,U,u);if(O>W)throw new f(ca);const{Xe:P,Qe:I,rawLastModDate:j}=qa({version:S,bitFlag:Ka(a,c,l,y,F),compressionMethod:F,uncompressedSize:b,lastModDate:_>r?_:r>Q?Q:r,rawFilename:t,_e:x,$e:g,extraFieldLength:O}),q=va(X+ja(t)+O),K=q.array,Z=Be(K);return q.uint32(M),q.bytes(P),q.bytes(t),R&&q.bytes(v),q.bytes(D),q.bytes(C),q.bytes(T),q.bytes(U),q.bytes(u),l&&(x||Oa(Z,18,0),g||Oa(Z,22,0)),{ut:K,ft:Z,Xe:P,Qe:I,lastModDate:r,rawLastModDate:j,encrypted:y,compressed:z,version:S,compressionMethod:F,st:N,Be:ne,wt:A,Ye:C,Je:T,Ge:U,Ve:D,extraFieldLength:O}})(s=r.assign({},s,o.ot,c.ot,i.ot,{internalFileAttribute:c.ot.internalFileAttributes,externalFileAttribute:o.ot.externalFileAttributes,signature:s[Zn],offset:e.offset-l,diskNumberStart:d})),m=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ne,a=0,o=e?20:12;return r&&(o+=4),t&&(s=new w(o),n=Be(s),r&&(a=4,Oa(n,0,O))),{ht:s,yt:n,gt:a}})(s),h=ja(p.ut,m.ht);u=await(async(e,t,n,s,o)=>{const{files:i,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:u}=o,{xt:p}=s,m=e.options[is],h=e.Le;let y,x,b,S,F,z,k,R={},D=0;i.set(t,R),e.Le=R;try{let x;l&&(x=h&&h.lock,R.lock=new g(e=>b=e)),o.bufferedWrite||!l||e.bt||e.Ze||!d?(y=!0,e.Ze++,k=o.createTempStream?await o.createTempStream():new v($,$,{highWaterMark:ee}),k.size=0,await wn(c)):(k=c,await T()),await wn(k);const N=Ea(c);if(e.Ie){delete e.Ie;const t=new w(4);Oa(Be(t),0,A),await Ta(c,t),e.offset+=4}m&&!y&&Fa(s,e.offset-N);const{ut:W}=p;y||(await x,await C());const M=ka(c),O=Da(e,c);if(R.diskNumberStart=M,y||(F=!0,z=c.size,await Ta(k,W)),R=await(async(e,t,{diskNumberStart:n,lock:s},o,i,c)=>{const{xt:l,St:d,Ft:u}=o,{Xe:w,Qe:p,lastModDate:m,rawLastModDate:h,encrypted:y,compressed:g,version:x,compressionMethod:b,Be:S,wt:F,Ye:z,st:v,Je:k,Ge:E,Ve:R}=l,{ht:D}=d,{rawFilename:T,lastAccessDate:C,creationDate:N,password:W,rawPassword:M,level:A,zip64:O,$e:P,_e:I,zipCrypto:j,dataDescriptor:q,directory:K,executable:Z,versionMadeBy:L,rawComment:B,rawExtraField:V,useWebWorkers:Y,transferStreams:J,onstart:G,onprogress:X,onend:Q,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:oe,unixMode:ie,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:we,useCompressionStream:pe,passThrough:me,format:he,codecURI:ye}=c,ge={lock:s,versionMadeBy:L,zip64:O,directory:!!K,executable:!!Z,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:B,Be:S,wt:F,Ye:z,Je:k,Ge:E,Ve:R,rawExtraField:V,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:oe,unixMode:ie,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:we};let{signature:xe,uncompressedSize:be}=c,Se=0;me||(be=0);const{writable:Fe}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:Jt,level:A,rawPassword:M,password:W,encryptionStrength:ee,zipCrypto:y&&j,passwordVerification:y&&j&&h>>8&H,signed:!me,compressed:g&&!me,encrypted:y&&!me,useWebWorkers:Y,useCompressionStream:pe,transferStreams:J,format:he,codecURI:ye},config:i,ce:{signal:_,size:n,onstart:G,onprogress:X,onend:Q}};try{const e=await xr({readable:r,writable:Fe},s);if(Se=e.outputSize,t.size+=Se,me||(be=e.inputSize,xe=e.signature),!I&&Se>=U||!P&&be>=U)throw new f(ua)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,St:s},{zip64:o,zipCrypto:i,dataDescriptor:c})=>{const{Qe:l,encrypted:d}=n,{yt:u,gt:f}=s;d&&!i||e===$||(Oa(l,10,e),c&&Oa(u,f,e)),o?c&&(Pa(u,f+4,a(t)),Pa(u,f+12,a(r))):(Oa(l,14,t),Oa(l,18,r),c&&(Oa(u,f+4,t),Oa(u,f+8,r)))})({signature:xe,compressedSize:Se,uncompressedSize:be,xt:l,St:d},c),q&&await Ta(t,D),r.assign(ge,{uncompressedSize:be,compressedSize:Se,lastModDate:m,rawLastModDate:h,creationDate:N,lastAccessDate:C,encrypted:y,zipCrypto:j,size:u+Se,compressionMethod:b,version:x,Xe:w,Qe:p,signature:xe,st:v,$e:P,_e:I}),ge})(n,k,R,s,e.config,o),y||(F=!1),i.set(t,R),R.filename=t,y){if(await g.all([k.writable.getWriter().close(),x]),await T(),S=!0,z=c.size,await C(),R.diskNumberStart=ka(c),R.offset=Da(e,c),m){const t=s.Ft;Fa(s,e.offset-Ea(c)),R.size+=s.Ft-t}(({rawFilename:e,encrypted:t,zip64:r,wt:n,signature:s,compressedSize:o,uncompressedSize:i,$e:c,_e:l},d,{dataDescriptor:u})=>{if(u||(t||Oa(d,14,s),l||Oa(d,18,o),c||Oa(d,22,i)),r&&n){const t=X+ja(e)+4;Pa(d,t,a(i)),Pa(d,t+8,a(o))}})(R,p.ft,o),await Ta(c,p.ut),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new E({async write(e){var t;await n.ready,await n.write(e),t=ja(e),D+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(k.readable,c,u),c.size+=k.size,S=!1}else R.diskNumberStart=M,R.offset=O;return e.offset+=R.size,R}catch(r){if(S||F){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-z,y&&(e.offset+=D)}throw i.delete(t),r}finally{if(y&&e.Ze--,b&&b(),x&&x(),y&&k&&k.dispose)try{await k.dispose()}catch{}}async function T(){e.bt=!0;const{zt:t}=e;e.zt=new g(t=>x=()=>{e.bt=!1,t()}),await t}async function C(){Ra(c,ja(p.ut))&&await c.closeDisk()}})(e,t,n,{xt:p,St:m,Ft:h},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:l,extraField:d}),new Xn(u)})(s,e,t,n),o.add(l),await l}catch(t){throw d&&s.je.delete(e),t}finally{o.delete(l);const e=xa.shift();e?e():ga--}}remove(e){const{je:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ne,r={}){const{Ke:n,writer:s}=this,{writable:o}=s;if(ja(e)>W)throw new f(ta);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Ve:n,rawComment:s,Je:a,Ge:o,rawExtraField:i,extendedTimestamp:c,st:l,lastModDate:d,$e:u,_e:w,uncompressedSize:p,compressedSize:m}=r,h=r.offset>=U,y=r.diskNumberStart>=W;let g,x;if(h||y||u||w){const e=4+(u?8:0)+(w?8:0)+(h?8:0)+(y?4:0),t=va(e);t.uint16(1),t.uint16(e-4),u&&t.ct(p),w&&t.ct(m),h&&t.ct(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=ne;r.Be=g,r.et=h,r.nt=y;const b=Na(d);if(c&&Ua(b)){const e=va(9);e.uint16(L),e.uint16(5),e.uint8(l),e.uint32(b),x=e.array}else x=ne;r.Ye=x;const S=ja(g,n,a,o,x,i);if(S>W)throw new f(ca);t+=46+ja(e,s)+S}return t})(e.files),o=await(async(e,r,n)=>{const{files:s,writer:a}=e,o=new w(r);await wn(a);let i=0,c=0,l=ka(a),d=Ea(a);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,Be:f,Ve:w,Ye:p,Je:m,Ge:h,rawExtraField:y,rawComment:g,versionMadeBy:x,Xe:b,Qe:S,$e:F,_e:z,nt:v,et:k,internalFileAttributes:E,externalFileAttributes:R,diskNumberStart:D,uncompressedSize:T,compressedSize:C}=r,N=ja(f,w,p,m,h,y),H=46+ja(u,g)+N;Ra(a,i+H-c)&&(await Ta(a,o.slice(c,i)),c=i,await a.closeDisk()),0==e&&(l=ka(a),d=Ea(a)),F||Oa(S,18,T),z||Oa(S,14,C),(k||v)&&45>r.version&&Aa(S,0,45);const M=va(H);if(M.uint32(P),M.uint16(x),M.bytes(b.subarray(0,24)),M.uint16(N),M.uint16(ja(g)),M.uint16(v?W:D),M.uint16(E),M.uint32(R),M.uint32(k?U:t),M.bytes(u),M.bytes(f),M.bytes(w),M.bytes(p),M.bytes(m),M.bytes(h),M.bytes(y),M.bytes(g),Ia(o,M.array,i),i+=H,n.onprogress)try{await n.onprogress(e+1,s.size,new Xn(r))}catch{}}return await Ta(a,c?o.slice(c):o),{diskNumber:l,diskOffset:d}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{vt:o}=n;let{kt:i}=n,c=e.files.size,l=o.diskNumber,d=Da(e,o),u=ka(s);Ra(s,K)&&u++;let w=Ha(e,r,Mn);if(!(U>d&&U>i&&W>c&&W>u)){if(!1===w)throw new f(ua);w=!0}const p=ja(t);if(p>W)throw new f(ta);const m=va(w?98:K);Ra(s,ja(m.array)+p)&&await s.closeDisk(),u=ka(s),w&&(m.uint32(j),m.ct(44),m.uint16(45),m.uint16(45),m.uint32(u),m.uint32(l),m.ct(c),m.ct(c),m.ct(i),m.ct(d),m.uint32(q),m.uint32(u),m.ct(a(Da(e,s))+a(i)),m.uint32(u+1),Ha(e,r,"supportZip64SplitFile",!0)&&(u=W,l=W),c=W,d=U,i=U),m.uint32(I),m.uint16(u),m.uint16(l),m.uint16(c),m.uint16(c),m.uint32(i),m.uint32(d),m.uint16(p),await Ta(s,m.array),p&&await Ta(s,t)})(e,r,n,{vt:o,kt:s})})(this,e,r),Ha(this,r,as)||await o.getWriter().close(),s.getData?s.getData():o}}function Sa(e,t,r){e.Ke.add(t),t.catch(e=>{try{r(e)}catch{}})}function Fa(e,t){const{xt:r}=e;let{ut:n,extraFieldLength:s}=r,a=64-(t+ja(n))%64;4>a&&(a+=64);const o=new w(a),i=Be(o);Aa(i,0,6534),Aa(i,2,a-4);const c=n;r.ut=n=new w(ja(c)+a),Ia(n,c),Ia(n,o,ja(c));const l=Be(n);Aa(l,28,s+a),r.ft=l,e.Ft+=a}function za(e){if(e===$)return ne;{const t=new w(4);Be(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function va(e){const t=new w(e),r=Be(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Aa(r,n,e),n+=2},uint32:e=>{Oa(r,n,e),n+=4},ct:e=>{Pa(r,n,a(e)),n+=8},bytes:e=>{Ia(t,e,n),n+=ja(e)},lt:e=>n+=e}}function ka(e){const{diskNumber:t=0}=e;return t}function Ea(e){const{diskOffset:t=0}=e;return t}function Ra(e,t){const{availableSize:r=ee}=e;return t>r}function Da(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.qe:0)}async function Ta(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=ja(t),await n.write(t)}finally{n.releaseLock()}}function Ca(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Na(e){return o.floor(e.getTime()/1e3)}function Ua(e){return e>=la&&da>=e}function Wa(e){return o.min(da,o.max(la,e))}function Ha(e,t,r,n){const s=t[r]===$?e.options[r]:t[r];return s===$?n:s}function Ma(e){return e+5*(o.floor(e/16383)+1)}function Aa(e,t,r){e.setUint16(t,r,!0)}function Oa(e,t,r){e.setUint32(t,r,!0)}function Pa(e,t,r){e.setBigUint64(t,r,!0)}function Ia(e,t,r){e.set(t,r)}function ja(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function qa({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:o,rawFilename:i,_e:c,$e:l,extraFieldLength:d}){const u=va(26),f=u.array,w=Be(f);if(u.uint16(e),u.uint16(t),u.uint16(r),o===$){const e=new m(1),t=Be(e);Aa(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Aa(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),o=e[0]}return u.uint32(o),u.lt(4),c||s!==$?u.uint32(c?U:s):u.lt(4),l||n!==$?u.uint32(l?U:n):u.lt(4),u.uint16(ja(i)),u.uint16(d),{Xe:f,Qe:w,rawLastModDate:o}}function Ka(e,t,r,n,s){let a=0;return t&&(a|=B),r&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),n&&(a|=1),a}const Za=1048576,La=".zip.js-temp",Ba=1048576,Va=1048576,Ya=".zip.js-temp";try{ue({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:N&&"SCRIPT"===N.tagName.toUpperCase()&&N.src||new u("zip-legacy.min.js",S.baseURI).href})}catch{}ue({workerURI:e=>{const t="text/javascript",r=(e=>{let t=0,r=0,n=0,s=new w(1024),a=0,o=0;for(;!o;){o=c(1);const e=c(2);if(0==e)l();else if(1==e)d(xe(ye),xe(ge));else{if(2!=e)throw f("invalid deflate block type");d(...u())}}return s.subarray(0,a);function i(){if(t>=e.length)throw f("unexpected end of deflate data");return e[t++]}function c(e){for(;e>n;)r|=i()<<n,n+=8;const t=r&(1<<e)-1;return r>>>=e,n-=e,t}function l(){r=0,n=0;const e=i()|i()<<8;t+=2,m(a+e);for(let t=0;e>t;t++)s[a++]=i()}function d(e,t){let r=p(e);for(;256!=r;){if(256>r)m(a+1),s[a++]=r;else{const e=r-257,n=fe[e]+c(we[e]),o=p(t),i=pe[o]+c(me[o]);m(a+n);const l=a-i;for(let e=0;n>e;e++)s[a++]=s[l+e]}r=p(e)}}function u(){const e=c(5)+257,t=c(5)+1,r=c(4)+4,n=new w(19);for(let e=0;r>e;e++)n[he[e]]=c(3);const s=xe(n),a=new w(e+t);let o=0;for(;o<a.length;){const e=p(s);if(16>e)a[o++]=e;else if(16==e){const e=a[o-1];let t=c(2)+3;for(;t--;)a[o++]=e}else o+=17==e?c(3)+3:c(7)+11}return[xe(a.subarray(0,e)),xe(a.subarray(e))]}function p(e){const{o:t,symbols:r}=e;let n=0,s=0,a=0;for(let e=1;15>=e;e++){n|=c(1);const o=t[e];if(o>n-s)return r[a+(n-s)];a+=o,s=s+o<<1,n<<=1}throw f("invalid huffman code")}function m(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const r=new w(t);r.set(s.subarray(0,a)),s=r}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,r=[];for(let n=0;t>n;n+=4){const t=be.indexOf(e[n])<<18|be.indexOf(e[n+1])<<12|(63&be.indexOf(e[n+2]))<<6|63&be.indexOf(e[n+3]);r.push(t>>16&255),"="!==e[n+2]&&r.push(t>>8&255),"="!==e[n+3]&&r.push(255&t)}return new w(r)})("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"));if(e){const e=new y([r],{type:t});return u.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const r=e.length;let n=0;for(;r>n+2;n+=3){const r=e[n]<<16|e[n+1]<<8|e[n+2];t+=be[r>>18&63]+be[r>>12&63]+be[r>>6&63]+be[63&r]}const s=r-n;if(1===s){const r=e[n]<<16;t+=be[r>>18&63]+be[r>>12&63]+"=="}else if(2===s){const r=e[n]<<16|e[n+1]<<8;t+=be[r>>18&63]+be[r>>12&63]+be[r>>6&63]+"="}return t})(r)}}),e.BlobReader=Kr,e.BlobWriter=Zr,e.Data64URIReader=class extends Pr{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,Et:n,size:o.floor(.75*(t-n))})}readUint8Array(e,t){const{Et:r,dataURI:n}=this,s=new w(t),a=4*o.floor(e/3),i=atob(n.substring(a+r,4*o.ceil((e+t)/3)+r)),c=e-3*o.floor(a/4);let l=0;for(let e=c;c+t>e&&e<i.length;e++)s[e-c]=i.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Ir{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*o.floor((a+e.length)/3)-a;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=z(s):t.pending=s+t.pending}getData(){return this.data+z(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Fs,e.ERR_BAD_FORMAT=us,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=ps,e.ERR_DUPLICATED_NAME=ea,e.ERR_ENCRYPTED=ys,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=ws,e.ERR_EOCDR_NOT_FOUND=fs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=hs,e.ERR_HTTP_RANGE=Er,e.ERR_HTTP_RESOURCE_CHANGED=Rr,e.ERR_INVALID_CODEC_DEFINITION=Se,e.ERR_INVALID_CODEC_MODULE=ze,e.ERR_INVALID_COMMENT=ta,e.ERR_INVALID_COMPRESSED_DATA=Pt,e.ERR_INVALID_ENCRYPTION_STRENGTH=aa,e.ERR_INVALID_ENTRY_COMMENT=ra,e.ERR_INVALID_ENTRY_NAME=na,e.ERR_INVALID_EXTRAFIELD_DATA=ca,e.ERR_INVALID_EXTRAFIELD_TYPE=ia,e.ERR_INVALID_PASSWORD=Qe,e.ERR_INVALID_SIGNATURE=_e,e.ERR_INVALID_UNCOMPRESSED_SIZE=Ot,e.ERR_INVALID_VERSION=sa,e.ERR_ITERATOR_COMPLETED_TOO_SOON=Dr,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ms,e.ERR_OVERLAPPING_ENTRY=Ss,e.ERR_RESERVED_COMPRESSION_METHOD=Fe,e.ERR_SPLIT_ZIP_FILE=bs,e.ERR_UNDEFINED_READER=wa,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=fa,e.ERR_UNSUPPORTED_COMPRESSION=xs,e.ERR_UNSUPPORTED_ENCRYPTION=gs,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=oa,e.ERR_UNSUPPORTED_FORMAT=ua,e.ERR_WRITER_NOT_INITIALIZED=Tr,e.ERR_ZIP_NOT_EMPTY=pa,e.HttpRangeReader=class extends cn{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=cn,e.Reader=Pr,e.SplitDataReader=ln,e.SplitDataWriter=dn,e.TextReader=class extends Kr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends Zr{constructor(e){super(e),r.assign(this,{encoding:e,Rt:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,Rt:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,a)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(n,e)})}}},e.Uint8ArrayReader=class extends Pr{constructor(e){super(),e=new w(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Ir{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new w(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new w(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Ir,e.ZipReader=Rs,e.ZipReaderStream=Ds,e.ZipWriter=ba,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new v;this.readable=t,this.zipWriter=new ba(r,e),this.Ke=new l}transform(e){const t=this.zipWriter;let r;const{readable:n,writable:s}=new v({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Sa(this,this.zipWriter.add(e,n),e=>r.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:r,writable:n}=new v({start(e){t=e}});return Sa(this,this.zipWriter.add(e,r),e=>t.error(e)),n}async close(e,r={}){return await g.all(t.from(this.Ke)),this.zipWriter.close(e,r)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=Ba}=e;return()=>{const e=[];let r,n,s,a=0,o=!1;const i=new E({async write(s){o?await r.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new v;n=new d(t.readable).blob(),r=t.writable.getWriter(),o=!0;for(const t of e)await r.write(t);e.length=0})())},async close(){r&&(await r.close(),r=null)}});let c=0;return{writable:i,readable:new k({async pull(t){if(o){if(!s){const e=await n;s=e.stream().getReader()}const{value:e,done:r}=await s.read();r?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(r){try{await r.abort()}catch{}r=null}n&&(n.catch(()=>{}),n=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Za,directoryName:r=La,getDirectory:n=()=>T.storage.getDirectory()}=e;let s;function a(){return s||(s=g.resolve(n()).then(e=>e.getDirectoryHandle(r,{create:!0}))),s}return()=>{const e=[];let r,n,s,o,i=0,c=!1;const l=new E({async write(o){c?await s.write(o):(e.push(o),i+=o.length,i>t&&await(async()=>{const t=await a();r=F.randomUUID(),n=await t.getFileHandle(r,{create:!0}),s=(await n.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new k({async pull(t){if(c){if(!o){const e=await n.getFile();o=e.stream().getReader()}const{value:e,done:r}=await o.read();r?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){o&&await o.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(r){try{const e=await a();await e.removeEntry(r)}catch{}n=r=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=Va,directoryName:r=Ya,getDirectory:n}=e;if(!(n||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new f("createSyncAccessHandle is only available in dedicated workers");const s=n||(()=>T.storage.getDirectory());let a;function i(){return a||(a=g.resolve(s()).then(e=>e.getDirectoryHandle(r,{create:!0}))),a}return()=>{const e=[];let r,n,s=0,a=!1,c=0,l=0;const d=new E({async write(o){a?(n.write(o,{at:c}),c+=o.length):(e.push(o),s+=o.length,s>t&&await(async()=>{const t=await i();r=F.randomUUID();const s=await t.getFileHandle(r,{create:!0});n=await s.createSyncAccessHandle(),a=!0;for(const t of e)n.write(t,{at:c}),c+=t.length;e.length=0})())},close(){n&&n.flush()}});let u=0;return{writable:d,readable:new k({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const r=new w(o.min(524288,e)),s=n.read(r,{at:l});s?(l+=s,t.enqueue(r.subarray(0,s))):t.close()}else u<e.length?t.enqueue(e[u++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(n){try{n.close()}catch{}n=null}if(r){try{const e=await i();await e.removeEntry(r)}catch{}r=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:r,codecURI:n,CompressionStream:a,DecompressionStream:o,versionNeeded:i}=e;if(!s.isInteger(t)||0>t||t>W||typeof r!=ve||!r.length)throw new f(Se);if(ke.includes(t))throw new f(Fe);const c=typeof a==re||typeof o==re;if(!(c||typeof n==ve&&n.length))throw new f(Se);Ee.set(t,{compressionMethod:t,format:r,codecURI:n,versionNeeded:i}),c&&Ce(r,{CompressionStream:a,DecompressionStream:o})},e.resetConfiguration=()=>{for(const e of oe)delete ie[e];r.assign(ie,ae)},e.terminateWorkers=async()=>{await g.allSettled(pr.map(e=>(vr(e),e.terminate())))},e.unregisterCodec=e=>{const t=Ee.get(e);if(t){let r;Ee.delete(e),Ee.forEach(e=>r=r||e.format==t.format),r||Re.delete(t.format)}}});
|
|
1
|
+
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:S,TextEncoder:x,TextDecoder:b,document:g,crypto:F,btoa:z,TransformStream:v,ReadableStream:R,WritableStream:D,CompressionStream:E,DecompressionStream:T,navigator:U,Worker:k}="undefined"!=typeof globalThis?globalThis:this||self;var C=void 0!==g?g.currentScript:null;const N=4294967295,M=65535,q=255,O=67324752,V=134695760,Y=V,W=33639248,A=101010256,G=101075792,K=117853008,P=22,I=20,L=21589,Z=2048,J=16384,X=2048,Q=1024,B="/",j=30,H=new o(2107,11,31,23,59,58),_=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function",ne=new f;let se=2;try{typeof U!=te&&U.hardwareConcurrency&&(se=U.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof E!=te&&E,DecompressionStream:typeof T!=te&&T},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const r=e[t];r!==$&&(oe[t]=r)}}function ue(e){for(const t of ie){const r=e[t];r!==$&&(ae[t]=r)}de(e)}const we=[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],fe=[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],pe=[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],he=[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],me=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const Se=new f(30).fill(5);function xe(e){const t=new p(16);for(const r of e)t[r]++;t[0]=0;const r=new p(17);for(let e=1;15>=e;e++)r[e+1]=r[e]+t[e];const n=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(n[r[e[t]]++]=t);return{o:t,symbols:n}}const be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ge="Invalid codec definition",Fe="Reserved compression method",ze="Invalid codec module",ve="string",Re=[0,8,9,99],De=new c,Ee=new c;function Te(e){return De.get(e)}function Ue(e){return Ee.get(e)}function ke(e,t){const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=re&&typeof n!=re)throw new w(ze);Ee.set(e,{CompressionStream:r,DecompressionStream:n})}const Ce=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ce[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=Ce[t-1][e];Ce[t][e]=r>>>8^Ce[0][255&r]}const[Ne,Me,qe,Oe,Ve,Ye,We,Ae]=Ce;class Ge{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),a=r-8;for(;a>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=Ae[255&e]^We[e>>>8&255]^Ye[e>>>16&255]^Ve[e>>>24&255]^Oe[255&r]^qe[r>>>8&255]^Me[r>>>16&255]^Ne[r>>>24&255]}}for(;r>n;n++)t=t>>>8^Ne[255&(t^e[n])];this.l=t}get(){return~this.l}}class Ke extends v{constructor(){let e;const t=new Ge;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Pe(e){if(typeof x==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new x).encode(e)}function Ie(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function Le(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Ze(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Je={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Je.h(r);return 32===n?e.concat(t):Je.m(t,n,0|r,e.slice(0,e.length-1))},S(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Je.h(r)},F(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=Je.v(t,e[r-1]&2147483648>>t-1,1)),e},v:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,h:e=>i.round(e/1099511627776)||32,m(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Je.h(s);return n.push(Je.v(t+a&31,t+a>32?r:n.pop(),1)),n}},Xe={bytes:{R(e){const t=Je.S(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},D(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(Je.v(8*(3&r),n)),t}}},Qe=class{constructor(e){const t=this;t.blockSize=512,t.T=[1732584193,4023233417,2562383102,271733878,3285377520],t.U=[1518500249,1859775393,2400959708,3395469782],e?(t.C=e.C.slice(0),t.N=e.N.slice(0),t.M=e.M):t.reset()}reset(){const e=this;return e.C=e.T.slice(0),e.N=[],e.M=0,e}update(e){const t=this;"string"==typeof e&&(e=Xe.O.D(e));const r=t.N=Je.concat(t.N,e),n=t.M,s=t.M=n+Je.S(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}Y(){const e=this;let t=e.N;const r=e.C;t=Je.concat(t,[Je.v(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.M/4294967296)),t.push(0|e.M);t.length;)e.V(t.splice(0,16));return e.reset(),r}W(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}A(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.C,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],l=n[3],d=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.A(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.A(5,a)+r.W(e,o,c,l)+d+s[e]+r.U[i.floor(e/20)]|0;d=l,l=c,c=r.A(30,o),o=a,a=t}n[0]=n[0]+a|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+l|0,n[4]=n[4]+d|0}},Be={importKey:e=>new Be.G(Xe.bytes.D(e)),K(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),u=new m(d);let f=0;const p=Je;for(t=Xe.bytes.D(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,n/8)},G:class{constructor(e){const t=this,r=t.P=Qe,n=[[],[]];t.I=[new r,new r];const s=t.I[0].blockSize/32;e.length>s&&(e=(new r).update(e).Y());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.I[0].update(n[0]),t.I[1].update(n[1]),t.L=new r(t.I[0])}reset(){const e=this;e.L=new e.P(e.I[0]),e.Z=!1}update(e){this.Z=!0,this.L.update(e)}digest(){const e=this,t=e.L.Y(),r=new e.P(e.I[1]).update(t).Y();return e.reset(),r}encrypt(e){if(this.Z)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},je=typeof F!=te&&typeof F.getRandomValues==re,He="Invalid password",_e="Invalid signature",$e="zipjs-abort-check-password";function et(e){if(je)return F.getRandomValues(e);throw new w("Crypto API not supported")}const tt=16,rt={name:"PBKDF2"},nt=r.assign({hash:{name:"HMAC"}},rt),st=r.assign({iterations:1e3,hash:{name:"SHA-1"}},rt),at=["deriveBits"],it=[8,12,16],ot=[16,24,32],ct=10,lt=[0,0,0,0],dt=typeof F!=te,ut=dt&&F.subtle,wt=dt&&typeof ut!=te,ft=Xe.bytes,pt=class{constructor(e){const t=this;t.J=[[[],[],[],[],[]],[[],[],[],[],[]]],t.J[0][0][0]||t.X();const r=t.J[0][4],n=t.J[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.U=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.B(e,0)}decrypt(e){return this.B(e,1)}X(){const e=this.J[0],t=this.J[1],r=e[4],n=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,n[a]=d,l=s[c=s[o=s[d]]];let u=16843009*l^65537*c^257*o^16843008*d,w=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=w=w<<24^w>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}B(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.U[t],n=r.length/4-2,s=[0,0,0,0],a=this.J[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],S=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&S]^r[x],f=i[m>>>24]^o[y>>16&255]^c[S>>8&255]^l[255&h]^r[x+1],p=i[y>>>24]^o[S>>16&255]^c[h>>8&255]^l[255&m]^r[x+2],S=i[S>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&S]^r[x++],u=h,h=m,m=y,y=S,S=u;return s}},ht=class{constructor(e,t){this.j=e,this.H=t,this._=t}reset(){this._=this.H}update(e){return this.$(this.j,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,r){let n;if(!(n=t.length))return[];const s=Je.S(t);for(let s=0;n>s;s+=4){this.te(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return Je.F(t,s)}},mt=Be.G;let yt=dt&&wt&&typeof ut.importKey==re,St=dt&&wt&&typeof ut.deriveBits==re;class xt extends v{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){gt(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,re:i,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await zt(e,t,r,Rt(n,0,it[t])),a=Rt(n,it[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new w(He)})(r,a,s,Rt(e,0,it[a]+2)),e=Rt(e,it[a]+2),n?t.error(new w($e)):i()):await o;const c=new f(e.length-ct-(e.length-ct)%tt);t.enqueue(Ft(r,e,c,0,ct,!0))},async flush(e){const{ne:t,se:r,pending:n,ready:s}=this;if(r&&t){await s;const a=Rt(n,0,n.length-ct),i=Rt(n,n.length-ct);let o=ne;if(a.length){const e=Et(ft,a);r.update(e);const n=t.update(e);o=Dt(ft,n)}const c=Rt(Dt(ft,r.digest()),0,ct);let l=n.length<ct?1:0;for(let e=0;ct>e;e++)l|=c[e]^i[e];if(l)throw new w(_e);e.enqueue(o)}}})}}class bt extends v{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){gt(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,re:a,ready:i}=r;let o=ne;n?(o=await(async(e,t,r)=>{const n=et(new f(it[t]));return Ie(n,await zt(e,t,r,n))})(r,s,n),a()):await i;const c=new f(o.length+e.length-e.length%tt);c.set(o,0),t.enqueue(Ft(r,e,c,o.length,0))},async flush(e){const{ne:t,se:r,pending:s,ready:a}=this;if(r&&t){await a;let i=ne;if(s.length){const e=t.update(Et(ft,s));r.update(e),i=Dt(ft,e)}n.signature=Dt(ft,r.digest()).slice(0,ct),e.enqueue(Ie(i,n.signature))}}}),n=this}}function gt(e,t,n,s){r.assign(e,{ready:new S(t=>e.re=t),password:vt(t,n),strength:s-1,pending:ne})}function Ft(e,t,r,n,s,a){const{ne:i,se:o,pending:c}=e;c.length&&(t=Ie(c,t));const l=t.length-s;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(l-l%tt)),d=0;l-tt>=d;d+=tt){const e=Et(ft,Rt(t,d,d+tt));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(Dt(ft,s),d+n)}return e.pending=Rt(t,d),r}async function zt(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!yt)return Be.importKey(t);try{return await ut.importKey("raw",t,r,!1,s)}catch{return yt=!1,Be.importKey(t)}})(0,s,nt,0,at),o=await(async(e,t,r)=>{if(!St)return Be.K(t,e.salt,st.iterations,r);try{return await ut.deriveBits(e,t,r)}catch{return St=!1,Be.K(t,e.salt,st.iterations,r)}})(r.assign({salt:a},st),i,8*(2*ot[n]+2)),c=new f(o),l=Et(ft,Rt(c,0,ot[n])),d=Et(ft,Rt(c,ot[n],2*ot[n])),u=Rt(c,2*ot[n]);return r.assign(e,{keys:{key:l,ae:d,passwordVerification:u},ne:new ht(new pt(l),t.from(lt)),se:new mt(d)}),u}function vt(e,t){return t===$?Pe(e):t}function Rt(e,t,r){return e.subarray(t,r)}function Dt(e,t){return e.R(t)}function Et(e,t){return e.D(t)}class Tt extends v{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){kt(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=Ct(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(He);e=e.subarray(12)}n?t.error(new w($e)):t.enqueue(Ct(r,e))}})}}class Ut extends v{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){kt(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=et(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(Nt(r,t),0),s=12}else n=new f(e.length),s=0;n.set(Nt(r,e),s),t.enqueue(n)}})}}function kt(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,ie:new Ge(s[0]),oe:new Ge(s[2])}),n)for(let t=0;t<n.length;t++)Mt(e,n[t]);else for(let r=0;r<t.length;r++)Mt(e,t.charCodeAt(r))})(e,t,n)}function Ct(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=qt(e)^t[n],Mt(e,r[n]);return r}function Nt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=qt(e)^t[n],Mt(e,t[n]);return r}function Mt(e,t){let[,r]=e.keys;e.ie.append([t]);const n=~e.ie.get();r=Vt(i.imul(Vt(r+Ot(n)),134775813)+1),e.oe.append([r>>>24]);const s=~e.oe.get();e.keys=[n,r,s]}function qt(e){const t=2|e.keys[2];return Ot(i.imul(t,1^t)>>>8)}function Ot(e){return 255&e}function Vt(e){return 4294967295&e}const Yt="Invalid uncompressed size",Wt="Invalid compressed data",At="deflate-raw";class Gt extends v{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d,format:u}=e,w=this;let f,p,h,y=super.readable;const S=u&&Ue(u),x=c&&s&&!d&&!S&&(!a||o)&&!(!i||!n);a&&!o||!c||x||(f=new Ke,y=Xt(y,f)),s&&(S?y=Qt(y,Zt(S.CompressionStream,u,{level:l,chunkSize:t})):x?(h=new Kt,y=Qt(y,new n("gzip")),y=Xt(y,h)):y=Jt(y,i,{level:l,chunkSize:t},n,r)),a&&(o?y=Xt(y,new Ut(e)):(p=new bt(e),y=Xt(y,p))),Lt(w,y,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=x?h.signature:new m(f.value.buffer).getUint32(0)),w.signature=e})}}class Kt extends v{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=i.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=Ie(r,e));const a=s-8,o=i.min(a,r.length);n.enqueue(Ie(r.subarray(0,o),e.subarray(0,a-o))),r=Ie(r.subarray(o),e.subarray(a-o))},flush(){const t=Ze(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Pt extends v{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d,format:u}=e;let f,p,h=super.readable;if(a&&(s?h=Xt(h,new Tt(e)):(p=new xt(e),h=Xt(h,p))),c){const e=u&&Ue(u);h=e?Qt(h,Zt(e.DecompressionStream,u,{chunkSize:t})):Jt(h,l,{chunkSize:t,deflate64:d},n,r),h=(e=>{const t=e.getReader();return new R({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(Wt);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(h)}a&&!s||!i||(f=new Ke,h=Xt(h,f)),Lt(this,h,()=>{if((!a||s)&&i){const e=new m(f.value.buffer);if(o!=e.getUint32(0,!1))throw new w(_e)}})}}const It=new c;function Lt(e,t,n){t=Xt(t,new v({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function Zt(e,t,r){if(!e)throw new w("Compression method not supported");return new e(t,r)}function Jt(e,t,r,n,s){const a=t&&n?n:s||n,i=r.deflate64?"deflate64-raw":At;let o;try{o=new a(i,r)}catch(e){if(!t||!s||a==s)throw e;o=new s(i,r)}return Qt(e,o)}function Xt(e,t){return e.pipeThrough(t)}function Qt(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const Bt="data",jt="deflate",Ht="inflate";class _t extends v{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(jt)?a=Gt:s.startsWith(Ht)&&(a=Pt),n.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new v({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:i})}}),d=new v({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==$&&n.outputSize>e.outputSize))throw new w(Yt)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class $t extends v{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],a=e-s;r.length>a?(n.set(r.subarray(0,a),s),t[0]=r.subarray(a),s+=a):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),r+=s.length;r>e;)a.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new f(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const er={type:"module"},tr="error";let rr,nr,sr,ar,ir=!0;try{ir=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class or{constructor(e,{readable:t,writable:n},{options:s,config:a,ce:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new $t(le(a))).pipeThrough(new cr(i),{signal:u}),writable:n,options:r.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new S(t=>{const{ue:r,le:n}=e;r?(n?e.we=t:(r.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{we:t}=e;t&&(e.we=null,e.he=!0,e.ue.terminate(),t()),e.le=!1,d(e)}}}),rr===$&&(rr=typeof k!=te),(o&&rr?ur:dr)(e,a)}}class cr extends v{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await lr(e,r)},async transform(e,n){s+=e.length,t&&await lr(t,s,r),n.enqueue(e)},async flush(){n&&await lr(n,s)}})}}async function lr(e,...t){try{await e(...t)}catch{}}function dr(e,t){return{run:()=>wr(e,t)}}function ur(e,t){const{baseURI:n,chunkSize:a,workerStartupTimeout:i}=t;let{wasmURI:o}=t;if(!e.fe){let c;typeof o==re&&(o=o());try{c=pr(e.workerURI,n,e)}catch{return rr=!1,dr(e,t)}r.assign(e,{ue:c,me:!1,he:!1,fe:{run:async()=>{try{return await(async(e,t)=>{let n,a;const i=new S((e,t)=>{n=e,a=t});r.assign(e,{reader:null,writer:null,ye:n,Se:a,result:i});const{readable:o,options:c}=e,{writable:l,closed:d,xe:u}=(e=>{const t=new AbortController,{writable:r,readable:n}=new v,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,xe:()=>t.abort()}})(e.writable);let f;try{f=yr({type:"start",options:c,config:t,readable:o,writable:l},e)}catch(t){u();try{await d}catch{}throw e.pe(),t}f||r.assign(e,{reader:o.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.me||!s.isFinite(p)||0>p||(e.be=setTimeout(()=>(e=>{if(e.be=null,e.me)return;const{Se:t,writer:r}=e;if(fr(e),e.ue=null,t){const e=new w("Worker startup timeout");e.ge=!0,t(e),r&&r.releaseLock()}})(e),p));try{const e=await i;return await h(),await d,e}catch(e){await h(),u();try{await d}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:a,wasmURI:o,baseURI:n,workerStartupTimeout:i})}catch(r){if(r&&r.ge){rr=!1;const{reader:r}=e;return r&&r.releaseLock(),e.reader=null,e.writer=null,wr(e,t)}throw r}}}})}return e.fe}async function wr({options:e,readable:t,writable:r,pe:n},s){let a;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(jt),r=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,n=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(r&&r.Fe&&!(e=>{if(!e)return!1;let t=It.get(e);if(t===$){try{new e(At),t=!0}catch{t=!1}It.set(e,t)}return t})(n))try{await void 0}catch{}}else try{await void 0}catch{r&&!r.Fe||(e.useCompressionStream=!0)}}a=new _t(e,s),await t.pipeThrough(a).pipeThrough(new $t(le(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:i,outputSize:o}=a;return{signature:n,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{n()}}function fr(e){const{ue:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function pr(e,t,n,s,a=!0){let i,o,c;if(sr===$||nr!==e){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=er);try{i=new k(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return pr(e,t,n,s,!1);if(s)throw a;return pr(e,t,n,!0,!1)}}else{s===$&&(s=!0),s&&(c=er);try{o=new u(o,t)}catch{}try{i=new k(o,c)}catch(r){if(s)throw r;return pr(e,t,n,!1,a)}}nr=e,sr=o,ar=c}else i=new k(sr,ar);return i.addEventListener("message",e=>{n.me=!0,hr(n),(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,ye:d,Se:u,pe:p,de:h}=t,m=()=>t.de!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new w(e);r.assign(i,{stack:t,code:n,name:s,outputSize:a}),y(i)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||yr({type:Bt,value:e,done:r,messageId:a},t)}n==Bt&&(await l.ready,await l.write(new f(s)),m()||yr({type:"ack",messageId:a},t)),"close"==n&&y(null,i)}}catch(o){m()||(fr(t),y(o))}function y(e,t){m()||(e?u(e):d(t),l&&l.releaseLock(),p())}})(e,n)}),i.addEventListener(tr,e=>mr(e,n)),i.addEventListener("messageerror",e=>mr(e,n)),i}function hr(e){const{be:t}=e;t&&(clearTimeout(t),e.be=null)}function mr(e,t){e.preventDefault&&e.preventDefault(),hr(t);const{me:n,Se:s,writer:a,pe:i}=t;if(fr(t),n||(t.ue=null),s){let t=e.error||new w(e.message||tr);n||(t=r.assign(new w(t.message||tr),{ge:!0})),s(t),a&&a.releaseLock(),n&&i()}}function yr(e,{ue:t,writer:r,transferStreams:n,me:s}){try{const{value:r,readable:a,writable:i}=e,o=[];if(r&&(e.value=Le(r),o.push(e.value.buffer)),n&&ir&&s?(a&&o.push(a),i&&o.push(i)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{ir=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Sr=[];const xr=[];let br,gr,Fr=0;async function zr(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d,format:w,codecURI:f}=r,{workerURI:p,maxWorkers:h}=n;w&&(f&&(r.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(f,n.baseURI)),await(async(e,t)=>{!Ee.has(e)&&t&&ke(e,await(import(t)))})(w,r.codecURI)),t.transferStreams=a||a===$&&n.transferStreams;const m=!c&&!l&&!d,y=w===$||!!r.codecURI;return t.useWebWorkers=!m&&y&&(i||i===$&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&p?p:$,r.useCompressionStream=o||o===$&&n.useCompressionStream,(await(async()=>{const r=Sr.find(e=>!e.le);if(r)return Tr(r),new or(r,e,t,x);if(Sr.length<h){const r={ze:Fr};return Fr++,Sr.push(r),new or(r,e,t,x)}return new S(r=>{xr.push({resolve:r,stream:e,ve:t}),gr=n.workerStarvationTimeout,vr()})})()).run();function x(e){if(Rr(),xr.length){const[{resolve:t,stream:r,ve:n}]=xr.splice(0,1);t(new or(e,r,n,x)),vr()}else e.ue?(Tr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.he?e.he=!1:e.Re=setTimeout(async()=>{Sr=Sr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Sr=Sr.filter(t=>t!=e)}}function vr(){!br&&xr.length&&s.isFinite(gr)&&gr>=0&&(br=setTimeout(Dr,gr))}function Rr(){br&&(clearTimeout(br),br=null)}function Dr(){if(br=null,xr.length){const[{resolve:e,stream:t,ve:n}]=xr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:$});e(new or({},t,s,Er)),vr()}}function Er(){Rr(),vr()}function Tr(e){const{Re:t}=e;t&&(clearTimeout(t),e.Re=null)}const Ur="HTTP error ",kr="HTTP Range not supported",Cr="HTTP resource changed",Nr="Writer iterator completed too soon",Mr="Writer not initialized",qr="Content-Range",Or="Range",Vr="GET",Yr="bytes",Wr=16777216,Ar="writable",Gr=Symbol();class Kr{constructor(){this.size=0}init(){this.initialized=!0}}class Pr extends Kr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=le(ce())}={}){const n=this;let s=0;return new R({async pull(a){const o=t===$?r:i.min(r,t-s),c=await Sn(n,e+s,o);a.enqueue(c),s+r>t||t===$&&!c.length&&o?a.close():s+=r}})}}class Ir extends Kr{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w(Mr);return e.writeUint8Array(Le(t))}});r.defineProperty(e,Ar,{get:()=>t})}writeUint8Array(){}}let Lr,Zr;class Jr extends Pr{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Zr||(Zr=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();Lr=1==t}catch{Lr=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Lr?t.slice(n,n+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,n)),new f(a)}}class Xr extends Kr{constructor(e){super();const t=this,n=new v,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,Ar,{get:()=>n.writable}),t.blob=new d(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Qr extends Pr{constructor(e,t){super(),jr(this,e,t)}async init(){await Hr(this,dn,an),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:a}=t;if((r||n)&&a!==$){const{offset:r=0,size:n=a-r}=e||{};if(n>0&&a>r)return((e,t,r)=>{let n,a=t,o=0,c=r;return new R({start:()=>l(),async pull(e){n||await l();const{value:t,done:r}=await n.read();if(r)throw new w(kr);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=n;n=$,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function l(){const t=i.min(e.maximumRangeSize,c),r=await dn(Vr,e,nn(e,a,t));if(206!=r.status)throw new w(kr);const l=r.headers.get(qr);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new w(kr)}rn(e,r),tn(e,r),a+=t,o=t,n=r.body.getReader()}})(t,r,i.min(n,a-r))}return super.createReadable(e)}readUint8Array(e,t){return _r(this,e,t,dn,an)}}class Br extends Pr{constructor(e,t){super(),jr(this,e,t)}async init(){await Hr(this,un,on),super.init()}readUint8Array(e,t){return _r(this,e,t,un,on)}}function jr(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=Wr,fetch:d}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:l,fetch:d})}async function Hr(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(a||i)&&(void 0===s||s)){const n=await t(Vr,e,nn(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==Yr))throw new w(kr);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==P&&(e.De=t)}tn(e,n);const s=$r(n);s===$?await ln(e,t,r):e.size=s}}else await ln(e,t,r)}async function _r(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,De:c,size:l,options:d}=e;if(i||o){if(c&&t==l-P&&r==P)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await n(Vr,e,nn(e,t,r));if(206!=a.status)throw new w(kr);const i=a.headers.get(qr);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(kr)}rn(e,a),tn(e,a);const o=new f(await a.arrayBuffer());if(o.length!=r)throw new w(kr);return o}return ne}{const{data:n}=e;return n||await a(e,d),e.data.subarray(t,t+r)}}function $r(e){const t=e.headers.get(qr);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function en({headers:e}){return{Ee:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function tn(e,t){const{checkResourceChanges:r,Te:n}=e;r&&!n&&206==t.status&&(e.Te=en(t))}function rn(e,t){const{checkResourceChanges:n,Te:s,size:a}=e;if(n){const e=$r(t);if(e!==$&&a!==$&&e!=a)throw new w(Cr);if(s){const e=en(t);if(r.entries(s).some(([t,r])=>r!==$&&e[t]!==$&&r!=e[t]))throw new w(Cr)}}}function nn(e,t=0,n=1){return r.assign({},sn(e),{[Or]:Yr+"="+(0>t?t:t+"-"+(t+n-1))})}function sn({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function an(e){await cn(e,dn)}async function on(e){await cn(e,un)}async function cn(e,t){const r=await t(Vr,e,sn(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function ln(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,sn(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function dn(e,{fetch:t=fetch,options:n,url:s},a){const i=await t(s,r.assign({},n,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new w(kr):new w(Ur+(i.statusText||i.status))}function un(e,{url:t},n){return new S((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new w(kr):new w(Ur+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new w("Network error")),!1),i.open(e,t),n)for(const e of r.entries(n))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class wn extends Pr{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Br(e,t):new Qr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class fn extends Pr{constructor(e){super(),this.Ue=e}async init(){const e=this,{Ue:t}=e;e.ke=0,await S.all(t.map(e=>yn(e))),e.Ce=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}Ne(e){const{Ce:t,size:r}=this,n=t.at(e);return n===$?r:n}async readUint8Array(e,t){const r=this,{Ue:n}=this;let s,a=0,o=e;for(;n[a]&&o>=n[a].size;)o-=n[a].size,a++;const c=n[a];if(c){const n=c.size;if(o+t>n){const a=n-o;s=Ie(await Sn(c,o,a),await r.readUint8Array(e+a,t-a))}else s=await Sn(c,o,t)}else s=ne;return r.ke=i.max(a,r.ke),s}}class pn extends Kr{constructor(e,t=4294967295){super();const n=this;let s,a,i;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===Gr)return void(i&&await l());const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w(Nr);s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await yn(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,n.availableSize-=t)}async function l(){await d(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize}async function d(){await i.close()}r.defineProperty(n,Ar,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Gr)}finally{e.releaseLock()}}}class hn{constructor(e){return t.isArray(e)&&(e=new fn(e)),e instanceof R&&(e={readable:e}),e}}class mn{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new pn(e)),e instanceof D&&(e={writable:e}),e.size===$&&(e.size=0),e}}async function yn(e,t){if(!e.init||e.initialized)return S.resolve();await e.init(t)}function Sn(e,t,r){return e.readUint8Array(t,r)}const xn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function bn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=xn[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const gn="filename",Fn="rawFilename",zn="comment",vn="rawComment",Rn="uncompressedSize",Dn="compressedSize",En="offset",Tn="diskNumberStart",Un="lastModDate",kn="rawLastModDate",Cn="lastAccessDate",Nn="creationDate",Mn="rawCreationDate",qn="internalFileAttributes",On="externalFileAttributes",Vn="msdosAttributesRaw",Yn="msdosAttributes",Wn="msDosCompatible",An="zip64",Gn="encrypted",Kn="version",Pn="versionMadeBy",In="zipCrypto",Ln="directory",Zn="executable",Jn="compressionMethod",Xn="signature",Qn="extraField",Bn="unixMode",jn="setuid",Hn="setgid",_n="sticky",$n=[gn,Fn,Rn,Dn,Un,kn,zn,vn,Cn,Nn,Mn,En,Tn,qn,On,Vn,Yn,Wn,An,Gn,Kn,Pn,In,Ln,Zn,Jn,Xn,Qn,"extraFieldUnix","extraFieldInfoZip","uid","gid",Bn,jn,Hn,_n,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class es{constructor(e){$n.forEach(t=>this[t]=e[t])}}const ts="password",rs="rawPassword",ns="passThrough",ss="signal",as="checkAmbiguity",is="useWebWorkers",os="useCompressionStream",cs="transferStreams",ls="preventClose",ds="offset",us="usdz",ws="strictness",fs="strict",ps="tolerant",hs="File format is not recognized",ms="End of central directory not found",ys="End of Zip64 central directory locator not found",Ss="Central directory header not found",xs="Local file header not found",bs="Zip64 extra field not found",gs="File contains encrypted entry",Fs="Encryption method not supported",zs="Compression method not supported",vs="Split zip file",Rs="Overlapping entry found",Ds="Ambiguous archive",Es="Encrypted central directory is not supported",Ts="utf-8",Us="cp437",ks=[[Rn,N],[Dn,N],[En,N],[Tn,M]],Cs={[M]:{Me:na,bytes:4},[N]:{Me:sa,bytes:8}};class Ns{constructor(e,t={}){r.assign(this,{reader:new hn(e),options:t,config:ce(),qe:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await yn(n),n.size!==$&&n.readUint8Array||(n=new Jr(await new d(n.readable).blob()),await yn(n)),n.size<P)throw new w(hs);const a=Ps(_s(t,e,ws),_s(t,e,as)),o=a==fs,c=a!=ps,u=((e,t)=>e!==$?e:t==fs?0:t==ps?1/0:M)(_s(t,e,"maxAppendedDataSize"),a),{Oe:f,Ve:p}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a={count:Is};let o,c,l=0;for await(const[r,i,d,u,w]of Xs(e,s)){const s=ra(r,u+20);if(w+P+s==n){const s=await Bs(e,r,i,u,w,n,a);if(s==Js){if(o||(o=Qs(d,u,w)),l++,!t||l>1)break}else s!=Zs||c||(c=Qs(d,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,t==1/0?n:65557+t);let a,o;for await(const[t,i,c,l,d]of Xs(e,s)){const s=Qs(c,l,d);a||(a=s);const u=await Bs(e,t,i,l,d,n,r);if(u==Js)return s;u!=Zs||o||(o=s)}return o||a})(e,r,a)),{Oe:o,Ve:l}})(n,c,u);if(!f)throw na(Ze(await Sn(n,0,4)))==V?new w(vs):new w(ms);c&&p>1&&Hs("multiple end of central directory records");const h=Ze(f);let m=na(h,12),y=na(h,16);const x=f.offset,b=ra(h,20),g=x+P+b;n.size-g>u&&Hs("appended data");let F=ra(h,4);const z=n.ke||0;let R,D,E,T=ra(h,6),U=ra(h,10),k=0;const C=y==N||m==N||U==M||T==M;if(y!=N&&T!=M&&(y+=Ks(n,T)),C){const e=f.offset<I?ne:await Sn(n,f.offset-I,I),t=Ze(e);if(e.length==I&&na(t,0)==K){y=Ks(n,na(t,4))+sa(t,8);let e=await Sn(n,y,56),r=Ze(e);const s=f.offset-I-56;if((56>e.length||na(r,0)!=G)&&y!=s&&s>=0){const t=y;y=s,y>t&&(k=y-t),e=await Sn(n,y,56),r=Ze(e)}if(56>e.length||na(r,0)!=G)throw new w(ys);D=!0,E=sa(r,4)>44,F==M?F=na(r,16):o&&F!=na(r,16)&&Hs("mismatched zip64 end of central directory record"),T==M?T=na(r,20):o&&T!=na(r,20)&&Hs("mismatched zip64 end of central directory record"),U==M?U=sa(r,32):o&&U!=sa(r,32)&&Hs("mismatched zip64 end of central directory record"),m==N?m=sa(r,40):o&&m!=sa(r,40)&&Hs("mismatched zip64 end of central directory record"),y=Ks(n,T)+sa(r,48)+k}}const O=m,Y=f.offset-(D?76:0);if(y<n.size||(k=n.size-y-m-P,y=n.size-m-P),z!=F)throw new w(vs);if(0>y)throw new w(hs);let A=0,L=await Sn(n,y,m),Z=Ze(L);if(m){if(4>L.length)throw new w(hs);const e=Y-m;if(y!=e&&T==F){let t=!(na(Z,A)==W);if(t||0>e||e+4>n.size||(t=na(Ze(await Sn(n,e,4)),0)==W),t){const t=y;y=e,y>t&&(k+=y-t),L=await Sn(n,y,m),Z=Ze(L)}}}const j=Y-y;if(m==j||0>j||T!=F||(m=j,L=await Sn(n,y,m),Z=Ze(L)),0>y||y>=n.size)throw new w(hs);R=y;const H=_s(t,e,"filenameEncoding"),_=_s(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let a=0;U>a;a++){const c=new qs(n,s,t.options);if(A+46>L.length||na(Z,A)!=W){if(0==a&&(E||Os(Z)))throw new w(Es);throw new w(Ss)}Vs(c,Z,A+6);const l=!!c.bitFlag.languageEncodingFlag,u=A+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=ra(Z,A+4),m=!(h>>8),y=h>>8==3,x=L.subarray(u,f),b=ra(Z,A+32),g=p+b,F=L.subarray(p,g),z=l,D=l,T=na(Z,A+38),C=T&q,N={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},O=na(Z,A+42),V=_s(t,e,"decodeText")||bn,Y=z?Ts:H||Us,G=D?Ts:_||Us;let K=V(x,Y);K===$&&(K=bn(x,Y));let P=V(F,G);P===$&&(P=bn(F,G)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ye:b,offset:O,diskNumberStart:ra(Z,A+34),internalFileAttributes:ra(Z,A+36),externalFileAttributes:T,msdosAttributesRaw:C,msdosAttributes:N,rawFilename:x,filenameUTF8:z,commentUTF8:D,rawExtraField:L.subarray(f,p),rawComment:F,filename:K,comment:P}),Ys(c,c,Z,A+6),c.offset+=k,R=i.min(Ks(n,c.diskNumberStart)+c.offset,R),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const I=c.externalFileAttributes>>16&M;c.unixMode===$&&16877&I&&(c.unixMode=I);const j=!!(c.unixMode&X),re=!!(c.unixMode&Q),ne=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&I),ae=c.unixMode!==$&&(61440&c.unixMode)==J,ie=(61440&I)==J;r.assign(c,{setuid:j,setgid:re,sticky:ne,unixExternalUpper:I,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ae||ie||m&&N.directory||c.filename.endsWith(B)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new es(c);oe.getData=(e,r)=>c.getData(e,oe,t.qe,r),oe.arrayBuffer=async e=>{const r=new v,[n]=await S.all([new d(r.readable).arrayBuffer(),c.getData(r,oe,t.qe,e)]);return n},A=g;const{onprogress:ce}=e;if(ce)try{await ce(a+1,U,new es(c))}catch{}yield oe}o&&A!=O&&Hs("trailing central directory data"),te&&Hs("duplicate filename"),o&&(k||U&&R>0)&&Hs("prepended data");const re=_s(t,e,"extractPrependedData"),se=_s(t,e,"extractAppendedData");return re&&(t.prependedData=R>0?await Sn(n,0,R):ne),t.comment=b?await Sn(n,x+P,b):ne,se&&(t.appendedData=g<n.size?await Sn(n,g,n.size-g):ne),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class Ms{constructor(e={}){const{readable:t,writable:r}=new v,n=new Ns(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await n.next();if(t)return e.close();const s={...r,readable:(()=>{const{readable:e,writable:t}=new v;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=r}}class qs{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:S}=s,{dataDescriptor:x}=p,b=t.localDirectory={},g=Ks(a,c)+o,F=await Sn(a,g,j),z=Ze(F);let v=_s(s,n,ts),R=_s(s,n,rs);const E=_s(s,n,ns);if(v=v&&v.length&&v,R=R&&R.length&&R,l&&99!=l.originalCompressionMethod)throw new w(zs);const T=E?$:Te(u);if(0!=u&&8!=u&&9!=u&&!T&&!E)throw new w(zs);if(F.length<j||na(z,0)!=O)throw new w(xs);Vs(b,z,4);const{extraFieldLength:U,filenameLength:k}=b,C=Ps(_s(s,n,ws),_s(s,n,as))==fs;let N=ne;if(C&&(k||U)){const e=await Sn(a,g+j,k+U);N=e.subarray(0,k),b.rawExtraField=e.subarray(k)}else b.rawExtraField=U?await Sn(a,g+j+k,U):ne;Ys(s,b,z,4,!0),C&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&Hs("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Hs("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Hs("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Hs("mismatched local file header (signature or sizes)")})(s,b,N);const{lastAccessDate:M,creationDate:V}=b;M&&(t.lastAccessDate=M),V&&(t.creationDate=V);const W=s.encrypted&&b.encrypted&&!E,A=W&&!l;if(E||(t.zipCrypto=A),W){if(!(64&~b.rawBitFlag))throw new w(Fs);if(!A&&(1>l.strength||l.strength>3))throw new w(Fs);if(!v&&!R)throw new w(gs)}const G=g+j+k+U,K=S,P=a.createReadable({offset:G,size:K}),I=_s(s,n,ss),L=_s(s,n,"checkPasswordOnly");let Z=_s(s,n,"checkOverlappingEntry");const J=_s(s,n,"checkOverlappingEntryOnly");J&&(Z=!0);const{onstart:X,onprogress:Q,onend:B}=n,H=9==u;let _=_s(s,n,os);H&&(_=!1);const ee={options:{codecType:Ht,password:v,rawPassword:R,zipCrypto:A,encryptionStrength:l&&l.strength,signed:_s(s,n,"checkSignature")&&!E,passwordVerification:A&&(x?m>>>8&q:h>>>24&q),outputSize:E?S:y,signature:h,compressed:0!=u&&!E,encrypted:W,useWebWorkers:_s(s,n,is),useCompressionStream:_,transferStreams:_s(s,n,cs),deflate64:H,format:T?T.format:$,codecURI:T?T.codecURI:$,checkPasswordOnly:L},config:f,ce:{signal:I,size:K,onstart:X,onprogress:Q,onend:B}};let te;Z&&await(async({reader:e,We:t,index:r,offset:n,signature:s,compressedSize:a,uncompressedSize:i,Ae:o,dataDescriptor:c,extraFieldZip64:l,qe:d})=>{let u=0;if(c&&(u=l?20:12),u){const r=await Sn(e,o+a,u+4);if(r.length==u+4&&na(Ze(r),0)==Y){const e=na(Ze(r),4);let n,o;l?(n=sa(Ze(r),8),o=sa(Ze(r),16)):(n=na(Ze(r),8),o=na(Ze(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==a&&o==i&&(u+=4)}}const f={start:n,end:o+a+u,We:t};for(const[e,t]of d)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w(Rs);throw e.Ge=t.We,e}d.set(r,f)})({reader:a,We:t,index:i,offset:g,signature:h,compressedSize:S,uncompressedSize:y,Ae:G,dataDescriptor:x||b.bitFlag.dataDescriptor,extraFieldZip64:d||b.extraFieldZip64,qe:r});try{if(!J){L&&(e=new D),e=new mn(e),await yn(e,E?S:y),({writable:te}=e);const{outputSize:t}=await zr({readable:P,writable:te},ee);if(e.size+=t,t!=(E?S:y))throw new w(Yt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!L||t.message!=$e)throw t}finally{_s(s,n,ls)||!te||te.locked||await te.getWriter().close()}return L||J?$:e.getData?e.getData():te}}function Os(e){const t=i.min(e.byteLength,1024)-3;for(let r=0;t>r;r++)if(134630224==na(e,r))return!0;return!1}function Vs(e,t,n){const s=e.rawBitFlag=ra(t,n+2),a=!(1&~s),i=na(t,n+6);r.assign(e,{encrypted:a,version:ra(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&Z)==Z},rawLastModDate:i,lastModDate:$s(i),filenameLength:ra(t,n+22),extraFieldLength:ra(t,n+24)})}function Ys(e,t,n,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Ze(i);let u=0;try{for(;u<i.length;){const e=ra(d,u),t=ra(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=ra(n,s+4);r.assign(t,{signature:na(n,s+10),compressedSize:na(n,s+14),uncompressedSize:na(n,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const r=Ze(e.data),n=ks.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+Cs[t].bytes,0);if(e.data.length<s)throw new w(bs);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=Cs[o];t[i]=e[i]=c.Me(r,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(Ws(h,gn,Fn,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(Ws(m,zn,vn,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=Ze(e.data),a=ta(s,4);r.assign(e,{Ke:ta(s,0),vendorId:ta(s,2),strength:a,originalCompressionMethod:n,compressionMethod:ra(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const S=l.get(10);S&&(((e,t)=>{const n=Ze(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=ra(n,a),r=ra(n,a+2);1==t&&(s=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(s&&24==s.length){const n=Ze(s),a=n.getBigUint64(0,!0),i=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:ea(a),lastAccessDate:ea(i),creationDate:ea(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(S,t),t.extraFieldNTFS=S);const x=l.get(30805);if(x)As(x,t,!1),t.extraFieldUnix=x;else{const e=l.get(30837);e&&(As(e,t,!0),t.extraFieldInfoZip=e)}const b=l.get(L);b&&(((e,t,r)=>{if(!e.data.length)return;const n=Ze(e.data),s=ta(n,0),a=[],i=[];r?(1&~s||(a.push(Un),i.push(kn)),2&~s||(a.push(Cn),i.push("rawLastAccessDate")),4&~s||(a.push(Nn),i.push(Mn))):5>e.data.length||(a.push(Un),i.push(kn));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=na(n,c);t[r]=e[r]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(b,t,a),t.extraFieldExtendedTimestamp=b);const g=l.get(6534);g&&(t.extraFieldUSDZ=g)}function Ws(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=Ze(e.data),o=new Ge;o.append(a[n]);const c=Ze(new f(4));c.setUint32(0,o.get(),!0);const l=na(i,1);r.assign(e,{version:ta(i,0),[t]:bn(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==na(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function As(e,t,n){try{const s=Ze(e.data);let a,i;if(n){let t=0;const n=ta(s,t++),o=ta(s,t++);a=Gs(e.data.subarray(t,t+o)),t+=o;const c=ta(s,t++);i=Gs(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=ra(s,0),i=ra(s,2),r.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function Gs(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ks(e,t){return e.Ne?e.Ne(t):0}function Ps(e,t){return e===$?t?fs:"balanced":e}const Is=64,Ls=0,Zs=1,Js=2;async function*Xs(e,t){const r=e.size-t,n=await Sn(e,r,t),s=Ze(n);for(let e=n.length-P;e>=0;e--)na(s,e)==A&&(yield[s,r,n,e,r+e])}function Qs(e,t,r){return{offset:r,buffer:e.slice(t,t+P).buffer}}async function Bs(e,t,r,n,s,a,i){const o=ra(t,n+10),c=na(t,n+12),l=na(t,n+16);if(o==M||c==N||l==N)return await js(e,t,r,s-I,a,i)==K?Js:Ls;if(!o&&!c)return Zs;const d=ra(t,n+6);for(const n of[s-c,Ks(e,d)+l])if(await js(e,t,r,n,a,i)==W)return Js;return Ls}async function js(e,t,r,n,s,a){return 0>n||n+4>s?$:r>n?a.count>0?(a.count--,na(Ze(await Sn(e,n,4)),0)):$:na(t,n-r)}function Hs(e){const t=new w(Ds);throw t.reason=e,t}function _s(e,t,r){return t[r]===$?e.options[r]:t[r]}function $s(e){const t=(4294901760&e)>>16,r=e&M;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function ea(e){return new o(s(e/a(1e4)-a(116444736e5)))}function ta(e,t){return e.getUint8(t)}function ra(e,t){return e.getUint16(t,!0)}function na(e,t){return e.getUint32(t,!0)}function sa(e,t){return s(e.getBigUint64(t,!0))}var aa=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Ds,ERR_BAD_FORMAT:hs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ss,ERR_ENCRYPTED:gs,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Es,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:ys,ERR_EOCDR_NOT_FOUND:ms,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:bs,ERR_INVALID_COMPRESSED_DATA:Wt,ERR_INVALID_PASSWORD:He,ERR_INVALID_SIGNATURE:_e,ERR_INVALID_UNCOMPRESSED_SIZE:Yt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:xs,ERR_OVERLAPPING_ENTRY:Rs,ERR_SPLIT_ZIP_FILE:vs,ERR_UNSUPPORTED_COMPRESSION:zs,ERR_UNSUPPORTED_ENCRYPTION:Fs,ZipReader:Ns,ZipReaderStream:Ms});const ia="File already exists",oa="Zip file comment exceeds 64KB",ca="File entry comment exceeds 64KB",la="File entry name exceeds 64KB",da="Version exceeds 65535",ua="The strength must equal 1, 2, or 3",wa="Encryption is not supported in USDZ files",fa="Extra field type exceeds 65535",pa="Extra field data exceeds 64KB",ha=-2147483648,ma=2147483647,ya="Zip64 is not supported (set the 'zip64' option to 'true')",Sa="Undefined uncompressed size",xa="Undefined reader",ba="Zip file not empty",ga=new f([7,0,2,0,65,69,3,0,0]),Fa="infozip",za="unix";let va=0;const Ra=[];class Da{constructor(e,t={}){e=new mn(e);const{availableSize:n=ee,maxSize:s=ee}=e,a=n>0&&n!==ee&&s>0&&s!==ee;r.assign(this,{writer:e,Pe:a,options:t,config:ce(),files:new c,Ie:new l,offset:t[ds]===$?e.size||e.writable.size||0:t[ds],Le:t[ds]===$?0:t[ds]-(e.size||e.writable.size||0),Ze:new l,Je:0,Xe:$})}async prependZip(e){if(this.Ie.size)throw new w(ba);e=new hn(e),await yn(e);const{ZipReader:t}=await S.resolve().then(()=>aa),n=new t(e.readable),s=await n.getEntries();await n.close(),await yn(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ie=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:u}=e;let{compressionMethod:w,Qe:f,Be:p,je:h,He:m,_e:y,rawExtraField:S}=e;const{level:x,languageEncodingFlag:b,dataDescriptor:g}=o;f=f||ne,p=p||ne,h=h||ne,m=m||ne,y=y||ne,S=S||ne,e.extraFieldAES&&(w=99);const F=Ja(f,p,h,m,y,S),z=u&&l>=N,v=u&&d>=N,R=-7&Qa(x,b,g,c,w)|x<<1,{$e:D,et:E}=Xa({version:t,bitFlag:R,compressionMethod:w,uncompressedSize:l,compressedSize:d,rawLastModDate:n,rawFilename:i,nt:v,st:z,extraFieldLength:F}),{signature:T}=e;return T!==$&&Ia(E,10,T),r.assign(e,{st:z,nt:v,it:u&&e.offset>=N,diskNumberStart:0,ot:!1,Qe:f,Be:p,je:h,He:m,_e:y,rawExtraField:S,extendedTimestamp:h.length>0||m.length>0,ct:1+(s?2:0)+(a?4:0),$e:D,et:E}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ze:c,config:l}=s;let d,u;va<l.maxWorkers?va++:await new S(e=>Ra.push(e));try{if(e=e.trim(),Ga(s,n,Ln)&&!e.endsWith(B)&&(e+=B),s.Ie.has(e))throw new w(ia);return s.Ie.add(e),u=!0,d=(async(e,t,n,s)=>{const c=((e,t,r)=>{t=t.trim();let n=Ga(e,r,Wn),s=Ga(e,r,Pn,n?20:768);const a=Ga(e,r,Zn),i=Ga(e,r,"uid"),o=Ga(e,r,"gid");let c=Ga(e,r,Bn),l=Ga(e,r,"unixExtraFieldType"),d=Ga(e,r,jn),u=Ga(e,r,Hn),f=Ga(e,r,_n);if(i!==$&&(0>i||i>N))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>N))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>M))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Fa&&l!==za)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===za&&(i!==$&&i>M||o!==$&&o>M))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=Fa);let p=Ga(e,r,Vn),h=Ga(e,r,Yn);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(n=!1,s=s&M|768):m&&(n=!0,s&=q),p!==$&&(0>p||p>q))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>M)throw new w(da);let y=Ga(e,r,On);const S=y!==$;S||(y=0),!r[Ln]&&t.endsWith(B)&&(r[Ln]=!0);const x=Ga(e,r,Ln);let b;if(x?(t.endsWith(B)||(t+=B),S||(y=16,n||(y|=16877<<16))):n||S||(y=a?493<<16:27525120),!n){const e=c!==$||!!(d||u||f);b=y>>16&M,c=c===$?b:c&M,d?c|=X:d=!!(c&X),u?c|=Q:u=!!(c&Q),f?c|=512:f=!!(512&c),S&&!e||(x&&(c|=J),y=(c&M)<<16|y&M)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=q;else if(t!==$){const{readOnly:r,hidden:n,system:s,directory:a,archive:i}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&q}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&N|p&q),{name:t,lt:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:b,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,r)=>{const n=Ga(e,r,"encodeText",Pe);let s=n(t);if(s===$&&(s=Pe(t)),Ja(s)>M)throw new w(la);const a=r[zn]||"";let i=n(a);if(i===$&&(i=Pe(a)),Ja(i)>M)throw new w(ca);const c=Ga(e,r,Kn,20);if(c>M)throw new w(da);const l=Ga(e,r,Un,new o),d=Ga(e,r,Cn),u=Ga(e,r,Nn),p=Ga(e,r,qn,0),h=Ga(e,r,ns);let m,y;h||(m=Ga(e,r,ts),y=Ga(e,r,rs));const S=Ga(e,r,"encryptionStrength",3),x=Ga(e,r,In),b=Ga(e,r,"extendedTimestamp",!0),g=Ga(e,r,"ntfsTimestamp"),F=Ga(e,r,"keepOrder",!0),z=Ga(e,r,is),v=Ga(e,r,cs),R=Ga(e,r,"bufferedWrite"),D=Ga(e,r,"createTempStream"),E=Ga(e,r,"dataDescriptorSignature",!0),T=Ga(e,r,ss),U=Ga(e,r,"useUnicodeFileNames",!0),k=Ga(e,r,Jn),C=h||k===$?$:Te(k);if(!h&&k!==$&&0!==k&&8!==k&&!C)throw new w("Compression method not supported");let N=Ga(e,r,"level");if(e.options[us]){if(m!==$||y!==$)throw new w(wa);N===$&&k===$&&(N=0)}let q=Ga(e,r,os),O=Ga(e,r,"dataDescriptor");R&&O===$&&(O=!1),(O===$||x)&&(O=!0),N!==$&&6!=N&&(q=!1),q||C||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(N=0);const V=Ga(e,r,An);if(!x&&(m!==$||y!==$)&&(1>S||S>3))throw new w(ua);let Y=ne;const W=r[Qn];if(W){let e=0,t=0;W.forEach(t=>e+=4+Ja(t)),Y=new f(e);const r=Ze(Y);W.forEach((e,n)=>{if(n>M)throw new w(fa);if(Ja(e)>M)throw new w(pa);Pa(r,t,n),Pa(r,t+2,Ja(e)),Za(Y,e,t+4),t+=4+Ja(e)})}return{comment:a,lt:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:S,zipCrypto:x,extendedTimestamp:b,ntfsTimestamp:g,keepOrder:F,useWebWorkers:z,transferStreams:v,bufferedWrite:R,createTempStream:D,dataDescriptorSignature:E,signal:T,useUnicodeFileNames:U,compressionMethod:k,format:C?C.format:$,codecURI:C?C.codecURI:$,ut:C?C.versionNeeded:$,level:N,useCompressionStream:q,dataDescriptor:O,zip64:V,rawExtraField:Y}}})(e,t,s),{comment:d}=l,u=s[Qn];let p;e.files.set(t,$);try{const d=await(async(e,t,{lt:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w(xa);if(h=n[Rn],h===$)throw new w(Sa)}const m=!0===d,y=Ga(e,n,Gn),S=!!t&&(!!(i&&Ja(i)||o&&Ja(o))||s&&y);t||(u=0,f=0);const x=S?a?12:16+4*c:0;t&&(t=new hn(t),await yn(t),s?(n.uncompressedSize=h,p=Ka(h)+x):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=Ka(h)+x));const b=m||h>=N,g=m||p>=N;if(b||g){if(!1===d)throw new w(ya);d=!0}return d=d||!1,{reader:t,lt:{dataDescriptor:l,zip64:d,st:b,nt:g,uncompressedSize:h,level:u,compressionMethod:f,encrypted:S}}})(e,n,l,s);({reader:n}=d);const u=Na(e.writer),h=Ca(e.writer),m=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:p,encryptionStrength:h,extendedTimestamp:m,ntfsTimestamp:y,passThrough:S,encrypted:x,st:b,nt:g,uncompressedSize:F}=e;let{version:z,compressionMethod:v}=e;const R=!f&&(v===$?a===$||a>0:0!==v);let D;const E=S||!R,T=c&&(e.bufferedWrite||!u||!b&&!g||E),U=T||c&&u&&(b||g);if(c&&(b||g)){const e=20,t=ka(e);if(t.uint16(1),t.uint16(e-4),D=t.array,T&&(t.wt(F),E)){const e=x?l?12:16+4*h:0;t.wt(S?0:F+e)}}else D=ne;let k,C,N,q,V;if(x&&!l){const e=ka(Ja(ga)+2);e.uint16(39169),e.bytes(ga),k=e.array,k[8]=h}else k=ne;if(m){const e=Ya(r),t=Wa(e);if(t){const t=9+(n?4:0)+(s?4:0),r=ka(t);q=1+(n?2:0)+(s?4:0),r.uint16(L),r.uint16(t-4),r.uint8(q),r.uint32(e),n&&r.uint32(Aa(Ya(n))),s&&r.uint32(Aa(Ya(s))),N=r.array}else N=ne;if(y===$?!t||n||s:y)try{const e=Va(r),t=ka(36);t.uint16(10),t.uint16(32),t.ft(4),t.uint16(1),t.uint16(24),t.wt(e),t.wt(Va(n)||e),t.wt(Va(s)||e),C=t.array}catch{C=ne}else C=ne}else C=N=ne;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=Fa||t===$&&r===$)if(n!=za||t===$&&r===$)V=ne;else{const e=ka(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&M),e.uint16((r===$?0:r)&M),V=e.array}else{const e=Ua(t),n=Ua(r),s=3+e.length+n.length,a=ka(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(n.length),a.bytes(n),V=a.array}}catch{V=ne}v===$&&(v=R?8:0);const{ut:Y}=e;R&&Y!==$&&(z=z>Y?z:Y),c&&(z=z>45?z:45),x&&!l&&(z=z>51?z:51,k[9]=v,v=99);const W=U?Ja(D):0,A=W+Ja(k,N,C,V,p);if(A>M)throw new w(pa);const G=new o(2e3*i.ceil(r.getTime()/2e3)),{$e:K,et:P,rawLastModDate:I}=Xa({version:z,bitFlag:Qa(a,d,u,x,v),compressionMethod:v,uncompressedSize:F,lastModDate:_>G?_:G>H?H:G,rawFilename:t,nt:g,st:b,extraFieldLength:A}),Z=ka(j+Ja(t)+A),J=Z.array,X=Ze(J);return Z.uint32(O),Z.bytes(K),Z.bytes(t),U&&Z.bytes(D),Z.bytes(k),Z.bytes(N),Z.bytes(C),Z.bytes(V),Z.bytes(p),u&&(g||Ia(X,18,0),b||Ia(X,22,0)),{ht:J,yt:X,$e:K,et:P,lastModDate:r,rawLastModDate:I,encrypted:x,compressed:R,version:z,compressionMethod:v,ct:q,Qe:ne,St:W,je:N,He:C,_e:V,Be:k,extraFieldLength:A}})(s=r.assign({},s,c.lt,l.lt,d.lt,{internalFileAttribute:l.lt.internalFileAttributes,externalFileAttribute:c.lt.externalFileAttributes,signature:s[Xn],offset:e.offset-u,diskNumberStart:h})),y=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ne,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new f(i),n=Ze(s),r&&(a=4,Ia(n,0,Y))),{xt:s,bt:n,gt:a}})(s),x=Ja(m.ht,y.xt);p=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:u}=i,{Ft:p}=s,h=e.options[us],m=e.Xe;let y,x,b,g,F,z,R,E={},T=0;o.set(t,E),e.Xe=E;try{let x;l&&(x=m&&m.lock,E.lock=new S(e=>b=e)),i.bufferedWrite||!l||e.zt||e.Je||!d?(y=!0,e.Je++,R=i.createTempStream?await i.createTempStream():new v($,$,{highWaterMark:ee}),R.size=0,await yn(c)):(R=c,await U()),await yn(R);const C=Na(c);if(e.Pe){delete e.Pe;const t=new f(4);Ia(Ze(t),0,V),await Oa(c,t),e.offset+=4}h&&!y&&Ta(s,e.offset-C);const{ht:M}=p;y||(await x,await k());const O=Ca(c),Y=qa(e,c);if(E.diskNumberStart=O,y||(F=!0,z=c.size,await Oa(R,M)),E=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{Ft:l,vt:d,Rt:u}=i,{$e:f,et:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:S,version:x,compressionMethod:b,Qe:g,St:F,je:z,ct:v,He:R,_e:D,Be:E}=l,{xt:T}=d,{rawFilename:U,lastAccessDate:k,creationDate:C,password:M,rawPassword:O,level:V,zip64:Y,st:W,nt:A,zipCrypto:G,dataDescriptor:K,directory:P,executable:I,versionMadeBy:L,rawComment:Z,rawExtraField:J,useWebWorkers:X,transferStreams:Q,onstart:B,onprogress:j,onend:H,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,Se={lock:s,versionMadeBy:L,zip64:Y,directory:!!P,executable:!!I,filenameUTF8:!0,rawFilename:U,commentUTF8:!0,rawComment:Z,Qe:g,St:F,je:z,He:R,_e:D,Be:E,rawExtraField:J,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{signature:xe,uncompressedSize:be}=c,ge=0;he||(be=0);const{writable:Fe}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:jt,level:V,rawPassword:O,password:M,encryptionStrength:ee,zipCrypto:y&&G,passwordVerification:y&&G&&m>>8&q,signed:!he,compressed:S&&!he,encrypted:y&&!he,useWebWorkers:X,useCompressionStream:pe,transferStreams:Q,format:me,codecURI:ye},config:o,ce:{signal:_,size:n,onstart:B,onprogress:j,onend:H}};try{const e=await zr({readable:r,writable:Fe},s);if(ge=e.outputSize,t.size+=ge,he||(be=e.inputSize,xe=e.signature),!A&&ge>=N||!W&&be>=N)throw new w(ya)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,Ft:n,vt:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{et:l,encrypted:d}=n,{bt:u,gt:w}=s;d&&!o||e===$||(Ia(l,10,e),c&&Ia(u,w,e)),i?c&&(La(u,w+4,a(t)),La(u,w+12,a(r))):(Ia(l,14,t),Ia(l,18,r),c&&(Ia(u,w+4,t),Ia(u,w+8,r)))})({signature:xe,compressedSize:ge,uncompressedSize:be,Ft:l,vt:d},c),K&&await Oa(t,T),r.assign(Se,{uncompressedSize:be,compressedSize:ge,lastModDate:h,rawLastModDate:m,creationDate:C,lastAccessDate:k,encrypted:y,zipCrypto:G,size:u+ge,compressionMethod:b,version:x,$e:f,et:p,signature:xe,ct:v,st:W,nt:A}),Se})(n,R,E,s,e.config,i),y||(F=!1),o.set(t,E),E.filename=t,y){if(await S.all([R.writable.getWriter().close(),x]),await U(),g=!0,z=c.size,await k(),E.diskNumberStart=Ca(c),E.offset=qa(e,c),h){const t=s.Rt;Ta(s,e.offset-Na(c)),E.size+=s.Rt-t}(({rawFilename:e,encrypted:t,zip64:r,St:n,signature:s,compressedSize:i,uncompressedSize:o,st:c,nt:l},d,{dataDescriptor:u})=>{if(u||(t||Ia(d,14,s),l||Ia(d,18,i),c||Ia(d,22,o)),r&&n){const t=j+Ja(e)+4;La(d,t,a(o)),La(d,t+8,a(i))}})(E,p.yt,i),await Oa(c,p.ht),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await n.ready,await n.write(e),t=Ja(e),T+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(R.readable,c,u),c.size+=R.size,g=!1}else E.diskNumberStart=O,E.offset=Y;return e.offset+=E.size,E}catch(r){if(g||F){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-z,y&&(e.offset+=T)}throw o.delete(t),r}finally{if(y&&e.Je--,b&&b(),x&&x(),y&&R&&R.dispose)try{await R.dispose()}catch{}}async function U(){e.zt=!0;const{Dt:t}=e;e.Dt=new S(t=>x=()=>{e.zt=!1,t()}),await t}async function k(){Ma(c,Ja(p.ht))&&await c.closeDisk()}})(e,t,n,{Ft:m,vt:y,Rt:x},s)}catch(r){throw e.files.delete(t),r}return r.assign(p,{name:t,comment:d,extraField:u}),new es(p)})(s,e,t,n),c.add(d),await d}catch(t){throw u&&s.Ie.delete(e),t}finally{c.delete(d);const e=Ra.shift();e?e():va--}}remove(e){const{Ie:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ne,r={}){const{Ze:n,writer:s}=this,{writable:i}=s;if(Ja(e)>M)throw new w(oa);for(;n.size;)await S.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Be:n,rawComment:s,He:a,_e:i,rawExtraField:o,extendedTimestamp:c,ct:l,lastModDate:d,st:u,nt:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=N,y=r.diskNumberStart>=M;let S,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=ka(e);t.uint16(1),t.uint16(e-4),u&&t.wt(p),f&&t.wt(h),m&&t.wt(r.offset),y&&t.uint32(r.diskNumberStart),S=t.array}else S=ne;r.Qe=S,r.it=m,r.ot=y;const b=Ya(d);if(c&&Wa(b)){const e=ka(9);e.uint16(L),e.uint16(5),e.uint8(l),e.uint32(b),x=e.array}else x=ne;r.je=x;const g=Ja(S,n,a,i,x,o);if(g>M)throw new w(pa);t+=46+Ja(e,s)+g}return t})(e.files),i=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new f(r);await yn(a);let o=0,c=0,l=Ca(a),d=Na(a);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,Qe:w,Be:f,je:p,He:h,_e:m,rawExtraField:y,rawComment:S,versionMadeBy:x,$e:b,et:g,st:F,nt:z,ot:v,it:R,internalFileAttributes:D,externalFileAttributes:E,diskNumberStart:T,uncompressedSize:U,compressedSize:k}=r,C=Ja(w,f,p,h,m,y),q=46+Ja(u,S)+C;Ma(a,o+q-c)&&(await Oa(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=Ca(a),d=Na(a)),F||Ia(g,18,U),z||Ia(g,14,k),(R||v)&&45>r.version&&Pa(g,0,45);const O=ka(q);if(O.uint32(W),O.uint16(x),O.bytes(b.subarray(0,24)),O.uint16(C),O.uint16(Ja(S)),O.uint16(v?M:T),O.uint16(D),O.uint32(E),O.uint32(R?N:t),O.bytes(u),O.bytes(w),O.bytes(f),O.bytes(p),O.bytes(h),O.bytes(m),O.bytes(y),O.bytes(S),Za(i,O.array,o),o+=q,n.onprogress)try{await n.onprogress(e+1,s.size,new es(r))}catch{}}return await Oa(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Et:i}=n;let{Tt:o}=n,c=e.files.size,l=i.diskNumber,d=qa(e,i),u=Ca(s);Ma(s,P)&&u++;let f=Ga(e,r,An);if(!(N>d&&N>o&&M>c&&M>u)){if(!1===f)throw new w(ya);f=!0}const p=Ja(t);if(p>M)throw new w(oa);const h=ka(f?98:P);Ma(s,Ja(h.array)+p)&&await s.closeDisk(),u=Ca(s),f&&(h.uint32(G),h.wt(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(l),h.wt(c),h.wt(c),h.wt(o),h.wt(d),h.uint32(K),h.uint32(u),h.wt(a(qa(e,s))+a(o)),h.uint32(u+1),Ga(e,r,"supportZip64SplitFile",!0)&&(u=M,l=M),c=M,d=N,o=N),h.uint32(A),h.uint16(u),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(d),h.uint16(p),await Oa(s,h.array),p&&await Oa(s,t)})(e,r,n,{Et:i,Tt:s})})(this,e,r),Ga(this,r,ls)||await i.getWriter().close(),s.getData?s.getData():i}}function Ea(e,t,r){e.Ze.add(t),t.catch(e=>{try{r(e)}catch{}})}function Ta(e,t){const{Ft:r}=e;let{ht:n,extraFieldLength:s}=r,a=64-(t+Ja(n))%64;4>a&&(a+=64);const i=new f(a),o=Ze(i);Pa(o,0,6534),Pa(o,2,a-4);const c=n;r.ht=n=new f(Ja(c)+a),Za(n,c),Za(n,i,Ja(c));const l=Ze(n);Pa(l,28,s+a),r.yt=l,e.Rt+=a}function Ua(e){if(e===$)return ne;{const t=new f(4);Ze(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function ka(e){const t=new f(e),r=Ze(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Pa(r,n,e),n+=2},uint32:e=>{Ia(r,n,e),n+=4},wt:e=>{La(r,n,a(e)),n+=8},bytes:e=>{Za(t,e,n),n+=Ja(e)},ft:e=>n+=e}}function Ca(e){const{diskNumber:t=0}=e;return t}function Na(e){const{diskOffset:t=0}=e;return t}function Ma(e,t){const{availableSize:r=ee}=e;return t>r}function qa(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.Le:0)}async function Oa(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=Ja(t),await n.write(t)}finally{n.releaseLock()}}function Va(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Ya(e){return i.floor(e.getTime()/1e3)}function Wa(e){return e>=ha&&ma>=e}function Aa(e){return i.min(ma,i.max(ha,e))}function Ga(e,t,r,n){const s=t[r]===$?e.options[r]:t[r];return s===$?n:s}function Ka(e){return e+5*(i.floor(e/16383)+1)}function Pa(e,t,r){e.setUint16(t,r,!0)}function Ia(e,t,r){e.setUint32(t,r,!0)}function La(e,t,r){e.setBigUint64(t,r,!0)}function Za(e,t,r){e.set(t,r)}function Ja(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Xa({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,nt:c,st:l,extraFieldLength:d}){const u=ka(26),w=u.array,f=Ze(w);if(u.uint16(e),u.uint16(t),u.uint16(r),i===$){const e=new h(1),t=Ze(e);Pa(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Pa(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return u.uint32(i),u.ft(4),c||s!==$?u.uint32(c?N:s):u.ft(4),l||n!==$?u.uint32(l?N:n):u.ft(4),u.uint16(Ja(o)),u.uint16(d),{$e:w,et:f,rawLastModDate:i}}function Qa(e,t,r,n,s){let a=0;return t&&(a|=Z),r&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),n&&(a|=1),a}const Ba=1048576,ja=".zip.js-temp",Ha=1048576,_a=1048576,$a=".zip.js-temp";try{ue({baseURI:void 0===g&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===g?location.href:C&&"SCRIPT"===C.tagName.toUpperCase()&&C.src||new u("zip-legacy.min.js",g.baseURI).href})}catch{}ue({workerURI:e=>{const t="text/javascript",r=(e=>{let t=0,r=0,n=0,s=new f(1024),a=0,i=0;for(;!i;){i=c(1);const e=c(2);if(0==e)l();else if(1==e)d(xe(ye),xe(Se));else{if(2!=e)throw w("invalid deflate block type");d(...u())}}return s.subarray(0,a);function o(){if(t>=e.length)throw w("unexpected end of deflate data");return e[t++]}function c(e){for(;e>n;)r|=o()<<n,n+=8;const t=r&(1<<e)-1;return r>>>=e,n-=e,t}function l(){r=0,n=0;const e=o()|o()<<8;t+=2,h(a+e);for(let t=0;e>t;t++)s[a++]=o()}function d(e,t){let r=p(e);for(;256!=r;){if(256>r)h(a+1),s[a++]=r;else{const e=r-257,n=we[e]+c(fe[e]),i=p(t),o=pe[i]+c(he[i]);h(a+n);const l=a-o;for(let e=0;n>e;e++)s[a++]=s[l+e]}r=p(e)}}function u(){const e=c(5)+257,t=c(5)+1,r=c(4)+4,n=new f(19);for(let e=0;r>e;e++)n[me[e]]=c(3);const s=xe(n),a=new f(e+t);let i=0;for(;i<a.length;){const e=p(s);if(16>e)a[i++]=e;else if(16==e){const e=a[i-1];let t=c(2)+3;for(;t--;)a[i++]=e}else i+=17==e?c(3)+3:c(7)+11}return[xe(a.subarray(0,e)),xe(a.subarray(e))]}function p(e){const{o:t,symbols:r}=e;let n=0,s=0,a=0;for(let e=1;15>=e;e++){n|=c(1);const i=t[e];if(i>n-s)return r[a+(n-s)];a+=i,s=s+i<<1,n<<=1}throw w("invalid huffman code")}function h(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const r=new f(t);r.set(s.subarray(0,a)),s=r}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,r=[];for(let n=0;t>n;n+=4){const t=be.indexOf(e[n])<<18|be.indexOf(e[n+1])<<12|(63&be.indexOf(e[n+2]))<<6|63&be.indexOf(e[n+3]);r.push(t>>16&255),"="!==e[n+2]&&r.push(t>>8&255),"="!==e[n+3]&&r.push(255&t)}return new f(r)})("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"));if(e){const e=new y([r],{type:t});return u.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const r=e.length;let n=0;for(;r>n+2;n+=3){const r=e[n]<<16|e[n+1]<<8|e[n+2];t+=be[r>>18&63]+be[r>>12&63]+be[r>>6&63]+be[63&r]}const s=r-n;if(1===s){const r=e[n]<<16;t+=be[r>>18&63]+be[r>>12&63]+"=="}else if(2===s){const r=e[n]<<16|e[n+1]<<8;t+=be[r>>18&63]+be[r>>12&63]+be[r>>6&63]+"="}return t})(r)}}),e.BlobReader=Jr,e.BlobWriter=Xr,e.Data64URIReader=class extends Pr{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,Ut:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{Ut:r,dataURI:n}=this,s=new f(t),a=4*i.floor(e/3),o=atob(n.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Ir{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=z(s):t.pending=s+t.pending}getData(){return this.data+z(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Ds,e.ERR_BAD_FORMAT=hs,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Ss,e.ERR_DUPLICATED_NAME=ia,e.ERR_ENCRYPTED=gs,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=Es,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=ys,e.ERR_EOCDR_NOT_FOUND=ms,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=bs,e.ERR_HTTP_RANGE=kr,e.ERR_HTTP_RESOURCE_CHANGED=Cr,e.ERR_INVALID_CODEC_DEFINITION=ge,e.ERR_INVALID_CODEC_MODULE=ze,e.ERR_INVALID_COMMENT=oa,e.ERR_INVALID_COMPRESSED_DATA=Wt,e.ERR_INVALID_ENCRYPTION_STRENGTH=ua,e.ERR_INVALID_ENTRY_COMMENT=ca,e.ERR_INVALID_ENTRY_NAME=la,e.ERR_INVALID_EXTRAFIELD_DATA=pa,e.ERR_INVALID_EXTRAFIELD_TYPE=fa,e.ERR_INVALID_PASSWORD=He,e.ERR_INVALID_SIGNATURE=_e,e.ERR_INVALID_UNCOMPRESSED_SIZE=Yt,e.ERR_INVALID_VERSION=da,e.ERR_ITERATOR_COMPLETED_TOO_SOON=Nr,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=xs,e.ERR_OVERLAPPING_ENTRY=Rs,e.ERR_RESERVED_COMPRESSION_METHOD=Fe,e.ERR_SPLIT_ZIP_FILE=vs,e.ERR_UNDEFINED_READER=xa,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Sa,e.ERR_UNSUPPORTED_COMPRESSION=zs,e.ERR_UNSUPPORTED_ENCRYPTION=Fs,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=wa,e.ERR_UNSUPPORTED_FORMAT=ya,e.ERR_WRITER_NOT_INITIALIZED=Mr,e.ERR_ZIP_NOT_EMPTY=ba,e.HttpRangeReader=class extends wn{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=wn,e.Reader=Pr,e.SplitDataReader=fn,e.SplitDataWriter=pn,e.TextReader=class extends Jr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends Xr{constructor(e){super(e),r.assign(this,{encoding:e,kt:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,kt:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new S((s,a)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(n,e)})}}},e.Uint8ArrayReader=class extends Pr{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Ir{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Ir,e.ZipReader=Ns,e.ZipReaderStream=Ms,e.ZipWriter=Da,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new v;this.readable=t,this.zipWriter=new Da(r,e),this.Ze=new l}transform(e){const t=this.zipWriter;let r;const{readable:n,writable:s}=new v({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Ea(this,this.zipWriter.add(e,n),e=>r.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:r,writable:n}=new v({start(e){t=e}});return Ea(this,this.zipWriter.add(e,r),e=>t.error(e)),n}async close(e,r={}){return await S.all(t.from(this.Ze)),this.zipWriter.close(e,r)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=Ha}=e;return()=>{const e=[];let r,n,s,a=0,i=!1;const o=new D({async write(s){i?await r.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new v;n=new d(t.readable).blob(),r=t.writable.getWriter(),i=!0;for(const t of e)await r.write(t);e.length=0})())},async close(){r&&(await r.close(),r=null)}});let c=0;return{writable:o,readable:new R({async pull(t){if(i){if(!s){const e=await n;s=e.stream().getReader()}const{value:e,done:r}=await s.read();r?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(r){try{await r.abort()}catch{}r=null}n&&(n.catch(()=>{}),n=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Ba,directoryName:r=ja,getDirectory:n=()=>U.storage.getDirectory()}=e;let s;function a(){return s||(s=S.resolve(n()).then(e=>e.getDirectoryHandle(r,{create:!0}))),s}return()=>{const e=[];let r,n,s,i,o=0,c=!1;const l=new D({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();r=F.randomUUID(),n=await t.getFileHandle(r,{create:!0}),s=(await n.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new R({async pull(t){if(c){if(!i){const e=await n.getFile();i=e.stream().getReader()}const{value:e,done:r}=await i.read();r?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(r){try{const e=await a();await e.removeEntry(r)}catch{}n=r=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=_a,directoryName:r=$a,getDirectory:n}=e;if(!(n||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new w("createSyncAccessHandle is only available in dedicated workers");const s=n||(()=>U.storage.getDirectory());let a;function o(){return a||(a=S.resolve(s()).then(e=>e.getDirectoryHandle(r,{create:!0}))),a}return()=>{const e=[];let r,n,s=0,a=!1,c=0,l=0;const d=new D({async write(i){a?(n.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();r=F.randomUUID();const s=await t.getFileHandle(r,{create:!0});n=await s.createSyncAccessHandle(),a=!0;for(const t of e)n.write(t,{at:c}),c+=t.length;e.length=0})())},close(){n&&n.flush()}});let u=0;return{writable:d,readable:new R({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const r=new f(i.min(524288,e)),s=n.read(r,{at:l});s?(l+=s,t.enqueue(r.subarray(0,s))):t.close()}else u<e.length?t.enqueue(e[u++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(n){try{n.close()}catch{}n=null}if(r){try{const e=await o();await e.removeEntry(r)}catch{}r=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:r,codecURI:n,CompressionStream:a,DecompressionStream:i,versionNeeded:o}=e;if(!s.isInteger(t)||0>t||t>M||typeof r!=ve||!r.length)throw new w(ge);if(Re.includes(t))throw new w(Fe);const c=typeof a==re||typeof i==re;if(!(c||typeof n==ve&&n.length))throw new w(ge);De.set(t,{compressionMethod:t,format:r,codecURI:n,versionNeeded:o}),c&&ke(r,{CompressionStream:a,DecompressionStream:i})},e.resetConfiguration=()=>{for(const e of ie)delete oe[e];r.assign(oe,ae)},e.terminateWorkers=async()=>{await S.allSettled(Sr.map(e=>(Tr(e),e.terminate()))),rr=$},e.unregisterCodec=e=>{const t=De.get(e);if(t){let r;De.delete(e),De.forEach(e=>r=r||e.format==t.format),r||Ee.delete(t.format)}}});
|