@zip.js/zip.js 2.8.35 → 2.8.37
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 +246 -55
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +198 -55
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +249 -58
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +247 -56
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +248 -57
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +249 -58
- 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 +247 -56
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +249 -58
- package/index-native.min.js +1 -1
- package/index.cjs +247 -56
- package/index.d.cts +112 -2
- package/index.d.ts +112 -2
- package/index.min.js +1 -1
- package/lib/core/codec-pool.js +19 -3
- package/lib/core/codec-registry.js +116 -0
- package/lib/core/constants.js +1 -1
- package/lib/core/io.js +47 -26
- package/lib/core/options.js +2 -0
- package/lib/core/streams/codec-stream.js +1 -1
- package/lib/core/streams/zip-entry-stream.js +22 -5
- package/lib/core/streams/zlib-js/zlib-streams.min.js +1 -1
- package/lib/core/web-worker-base.js +5 -1
- 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 +6 -2
- package/lib/core/zip-writer.js +53 -18
- package/lib/zip-core-base.js +7 -0
- package/lib/zip-core-writer.js +1 -0
- package/package.json +1 -1
- package/worker-message-property-names.js +1 -1
package/dist/zip-fs-core.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:i,Math:a,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:b,document:S,crypto:z,btoa:F,TransformStream:E,ReadableStream:R,WritableStream:D,CompressionStream:A,DecompressionStream:v,navigator:T,Worker:k}="undefined"!=typeof globalThis?globalThis:this||self,C=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,Z=22,B=20,V=21589,H=2048,j=16384,q=2048,K=1024,G="/",Y=30,X=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function",re=new f;let ne=2;try{typeof T!=ee&&T.hardwareConcurrency&&(ne=T.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=ee&&A,DecompressionStream:typeof v!=ee&&v};function ie(){return se}function ae(e){return a.max(e.chunkSize,64)}function oe(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function ce(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function de(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const le="HTTP error ",ue="HTTP Range not supported",we="HTTP resource changed",fe="Content-Range",pe="Range",he="GET",me="bytes",ye="writable",ge=Symbol();class xe{constructor(){this.size=0}init(){this.initialized=!0}}class be extends xe{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=ae(ie())}={}){const n=this;let s=0;return new R({async pull(i){const o=t===Q?r:a.min(r,t-s),c=await tt(n,e+s,o);i.enqueue(c),s+r>t||t===Q&&!c.length&&o?i.close():s+=r}})}}class Se extends xe{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(ce(t))}});r.defineProperty(e,ye,{get:()=>t})}writeUint8Array(){}}class ze extends be{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:a.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),i=4*a.floor(e/3),o=atob(n.substring(i+r,4*a.ceil((e+t)/3)+r)),c=e-3*a.floor(i/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Fe extends Se{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const i=t.pending.length;for(t.pending="",r=0;r<3*a.floor((i+e.length)/3)-i;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let Ee,Re;class De extends be{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Re||(Re=(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();Ee=1==t}catch{Ee=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Ee?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 i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,n)),new f(i)}}class Ae extends xe{constructor(e){super();const t=this,n=new E,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,ye,{get:()=>n.writable}),t.blob=new l(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class ve extends De{constructor(e){super(new y([e],{type:"text/plain"}))}}class Te extends Ae{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,i)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)})}}}class ke extends be{constructor(e,t){super(),Ue(this,e,t)}async init(){await Ie(this,je,Ze),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:i}=t;if((r||n)&&i!==Q){const{offset:r=0,size:n=i-r}=e||{};if(n>0&&i>r)return((e,t,r)=>{let n,i=r;return new R({async start(){const i=await je(he,e,Le(e,t,r));if(206!=i.status)throw new w(ue);const a=i.headers.get(fe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Pe(e,i),_e(e,i),n=i.body.getReader()},async pull(e){const{value:t,done:r}=await n.read();if(r){if(i)throw new w(ue);e.close()}else{const r=t.length>i?t.subarray(0,i):t;i-=r.length,r.length&&e.enqueue(r),i||(e.close(),await n.cancel())}},cancel:e=>n&&n.cancel(e)})})(t,r,a.min(n,i-r))}return super.createReadable(e)}readUint8Array(e,t){return Oe(this,e,t,je,Ze)}}class Ce extends be{constructor(e,t){super(),Ue(this,e,t)}async init(){await Ie(this,qe,Be),super.init()}readUint8Array(e,t){return Oe(this,e,t,qe,Be)}}function Ue(e,t,n){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,fetch:d}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,fetch:d})}async function Ie(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(i||a)&&(void 0===s||s)){const n=await t(he,e,Le(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==me))throw new w(ue);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.h=t)}_e(e,n);const s=Me(n);s===Q?await He(e,t,r):e.size=s}}else await He(e,t,r)}async function Oe(e,t,r,n,i){const{useRangeHeader:a,forceRangeRequests:o,h:c,size:d,options:l}=e;if(a||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const i=await n(he,e,Le(e,t,r));if(206!=i.status)throw new w(ue);const a=i.headers.get(fe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Pe(e,i),_e(e,i);const o=new f(await i.arrayBuffer());if(o.length!=r)throw new w(ue);return o}return re}{const{data:n}=e;return n||await i(e,l),e.data.subarray(t,t+r)}}function Me(e){const t=e.headers.get(fe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Ne({headers:e}){return{m:e.get("Etag")||Q,lastModified:e.get("Last-Modified")||Q}}function _e(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=Ne(t))}function Pe(e,t){const{checkResourceChanges:n,S:s,size:i}=e;if(n){const e=Me(t);if(e!==Q&&i!==Q&&e!=i)throw new w(we);if(s){const e=Ne(t);if(r.entries(s).some(([t,r])=>r!==Q&&e[t]!==Q&&r!=e[t]))throw new w(we)}}}function Le(e,t=0,n=1){return r.assign({},We(e),{[pe]:me+"="+(0>t?t:t+"-"+(t+n-1))})}function We({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ze(e){await Ve(e,je)}async function Be(e){await Ve(e,qe)}async function Ve(e,t){const r=await t(he,e,We(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function He(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,We(e)),i=n.headers.get("Content-Length");i&&!n.headers.get("Content-Encoding")?e.size=s(i):await r(e,e.options)}}async function je(e,{fetch:t=fetch,options:n,url:s},i){const a=await t(s,r.assign({},n,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new w(ue):new w(le+(a.statusText||a.status))}function qe(e,{url:t},n){return new g((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.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:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new w(ue):new w(le+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new w("Network error")),!1),a.open(e,t),n)for(const e of r.entries(n))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Ke extends be{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Ce(e,t):new ke(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 Ge extends be{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)}}class Ye extends Se{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)}}class Xe extends be{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>et(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t.at(e);return n===Q?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,i=0,o=e;for(;n[i]&&o>=n[i].size;)o-=n[i].size,i++;const c=n[i];if(c){const n=c.size;if(o+t>n){const i=n-o;s=oe(await tt(c,o,i),await r.readUint8Array(e+i,t-i))}else s=await tt(c,o,t)}else s=re;return r.R=a.max(i,r.R),s}}class Je extends xe{constructor(e,t=4294967295){super();const n=this;let s,i,a;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===ge)return void(a&&await d());const{availableSize:r}=n;if(a)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await et(s),i=r.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await l())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}r.defineProperty(n,ye,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(ge)}finally{e.releaseLock()}}}class Qe{constructor(e){return t.isArray(e)&&(e=new Xe(e)),e instanceof R&&(e={readable:e}),e}}class $e{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new Je(e)),e instanceof D&&(e={writable:e}),e.size===Q&&(e.size=0),e}}async function et(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function tt(e,t,r){return e.readUint8Array(t,r)}const rt=[[],[],[],[],[],[],[],[]];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;rt[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=rt[t-1][e];rt[t][e]=r>>>8^rt[0][255&r]}const[nt,st,it,at,ot,ct,dt,lt]=rt;class ut{constructor(e){this.v=e||-1}append(e){let t=0|this.v;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),i=r-8;for(;i>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=lt[255&e]^dt[e>>>8&255]^ct[e>>>16&255]^ot[e>>>24&255]^at[255&r]^it[r>>>8&255]^st[r>>>16&255]^nt[r>>>24&255]}}for(;r>n;n++)t=t>>>8^nt[255&(t^e[n])];this.v=t}get(){return~this.v}}class wt extends E{constructor(){let e;const t=new ut;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 ft(e){if(typeof x==ee){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)}const pt={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=pt.T(r);return 32===n?e.concat(t):pt.C(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+pt.T(r)},I(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=pt.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,T:e=>a.round(e/1099511627776)||32,C(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,i=pt.T(s);return n.push(pt.O(t+i&31,t+i>32?r:n.pop(),1)),n}},ht={bytes:{M(e){const t=pt.U(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},N(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(pt.O(8*(3&r),n)),t}}},mt=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=ht.B.N(e));const r=t.W=pt.concat(t.W,e),n=t.Z,s=t.Z=n+pt.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const i=new h(r);let a=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(i.subarray(16*a,16*(a+1))),a+=1;return r.splice(0,16*a),t}H(){const e=this;let t=e.W;const r=e.L;t=pt.concat(t,[pt.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(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}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,i)+r.j(e,o,c,d)+l+s[e]+r.P[a.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=i,i=t}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},yt={importKey:e=>new yt.G(ht.bytes.N(e)),Y(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 i,a,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=pt;for(t=ht.bytes.N(t),d=1;(s||1)>f;d++){for(i=a=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)u.setInt32(f,i[o]),f+=4}return l.slice(0,n/8)},G:class{constructor(e){const t=this,r=t.X=mt,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},gt=typeof z!=ee&&typeof z.getRandomValues==te,xt="Invalid password",bt="Invalid signature",St="zipjs-abort-check-password";function zt(e){if(gt)return z.getRandomValues(e);throw new w("Crypto API not supported")}const Ft=16,Et={name:"PBKDF2"},Rt=r.assign({hash:{name:"HMAC"}},Et),Dt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Et),At=["deriveBits"],vt=[8,12,16],Tt=[16,24,32],kt=10,Ct=[0,0,0,0],Ut=typeof z!=ee,It=Ut&&z.subtle,Ot=Ut&&typeof It!=ee,Mt=ht.bytes,Nt=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||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.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],i=[];let a,o,c,d;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=a=0;!r[l];l^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,r[l]=i,n[i]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[i]^16843008*i;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][i]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],i=this.te[t],a=i[0],o=i[1],c=i[2],d=i[3],l=i[4];let u,f,p,h=e[0]^r[0],m=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=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=a[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=a[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[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]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},_t=class{constructor(e,t){this.se=e,this.ie=t,this.ae=t}reset(){this.ae=this.ie}update(e){return this.oe(this.se,e,this.ae)}ce(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}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=pt.U(t);for(let s=0;n>s;s+=4){this.de(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 pt.I(t,s)}},Pt=yt.G;let Lt=Ut&&Ot&&typeof It.importKey==te,Wt=Ut&&Ot&&typeof It.deriveBits==te;class Zt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){Vt(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:i,le:a,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await jt(e,t,r,Kt(n,0,vt[t])),i=Kt(n,vt[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new w(xt)})(r,i,s,Kt(e,0,vt[i]+2)),e=Kt(e,vt[i]+2),n?t.error(new w(St)):a()):await o;const c=new f(e.length-kt-(e.length-kt)%Ft);t.enqueue(Ht(r,e,c,0,kt,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;const i=Kt(n,0,n.length-kt),a=Kt(n,n.length-kt);let o=re;if(i.length){const e=Yt(Mt,i);r.update(e);const n=t.update(e);o=Gt(Mt,n)}const c=Kt(Gt(Mt,r.digest()),0,kt);let d=n.length<kt?1:0;for(let e=0;kt>e;e++)d|=c[e]^a[e];if(d)throw new w(bt);e.enqueue(o)}}})}}class Bt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){Vt(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,le:i,ready:a}=r;let o=re;n?(o=await(async(e,t,r)=>{const n=zt(new f(vt[t]));return oe(n,await jt(e,t,r,n))})(r,s,n),i()):await a;const c=new f(o.length+e.length-e.length%Ft);c.set(o,0),t.enqueue(Ht(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:s,ready:i}=this;if(r&&t){await i;let a=re;if(s.length){const e=t.update(Yt(Mt,s));r.update(e),a=Gt(Mt,e)}n.signature=Gt(Mt,r.digest()).slice(0,kt),e.enqueue(oe(a,n.signature))}}}),n=this}}function Vt(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:qt(t,n),strength:s-1,pending:re})}function Ht(e,t,r,n,s,i){const{ue:a,we:o,pending:c}=e;c.length&&(t=oe(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%Ft)),l=0;d-Ft>=l;l+=Ft){const e=Yt(Mt,Kt(t,l,l+Ft));i&&o.update(e);const s=a.update(e);i||o.update(s),r.set(Gt(Mt,s),l+n)}return e.pending=Kt(t,l),r}async function jt(e,n,s,i){e.password=null;const a=await(async(e,t,r,n,s)=>{if(!Lt)return yt.importKey(t);try{return await It.importKey("raw",t,r,!1,s)}catch{return Lt=!1,yt.importKey(t)}})(0,s,Rt,0,At),o=await(async(e,t,r)=>{if(!Wt)return yt.Y(t,e.salt,Dt.iterations,r);try{return await It.deriveBits(e,t,r)}catch{return Wt=!1,yt.Y(t,e.salt,Dt.iterations,r)}})(r.assign({salt:i},Dt),a,8*(2*Tt[n]+2)),c=new f(o),d=Yt(Mt,Kt(c,0,Tt[n])),l=Yt(Mt,Kt(c,Tt[n],2*Tt[n])),u=Kt(c,2*Tt[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new _t(new Nt(d),t.from(Ct)),we:new Pt(l)}),u}function qt(e,t){return t===Q?ft(e):t}function Kt(e,t,r){return e.subarray(t,r)}function Gt(e,t){return e.M(t)}function Yt(e,t){return e.N(t)}class Xt extends E{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){Qt(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=$t(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(xt);e=e.subarray(12)}n?t.error(new w(St)):t.enqueue($t(r,e))}})}}class Jt extends E{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){Qt(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=zt(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(er(r,t),0),s=12}else n=new f(e.length),s=0;n.set(er(r,e),s),t.enqueue(n)}})}}function Qt(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,pe:new ut(s[0]),he:new ut(s[2])}),n)for(let t=0;t<n.length;t++)tr(e,n[t]);else for(let r=0;r<t.length;r++)tr(e,t.charCodeAt(r))})(e,t,n)}function $t(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=rr(e)^t[n],tr(e,r[n]);return r}function er(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=rr(e)^t[n],tr(e,t[n]);return r}function tr(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=sr(a.imul(sr(r+nr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function rr(e){const t=2|e.keys[2];return nr(a.imul(t,1^t)>>>8)}function nr(e){return 255&e}function sr(e){return 4294967295&e}const ir="Invalid uncompressed size",ar="Invalid compressed data";class or extends E{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:d,deflate64:l}=e,u=this;let w,f,p,h=super.readable;const y=c&&s&&!l&&(!i||o)&&!(!a||!n);i&&!o||!c||y||(w=new wt,h=wr(h,w)),s&&(y?(p=new cr,h=fr(h,new n("gzip")),h=wr(h,p)):h=ur(h,a,{level:d,chunkSize:t},n,r,n)),i&&(o?h=wr(h,new Jt(e)):(f=new Bt(e),h=wr(h,f))),lr(u,h,()=>{let e;i&&!o&&(e=f.signature),i&&!o||!c||(e=y?p.signature:new m(w.value.buffer).getUint32(0)),u.signature=e})}}class cr extends E{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=a.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=oe(r,e));const i=s-8,o=a.min(i,r.length);n.enqueue(oe(r.subarray(0,o),e.subarray(0,i-o))),r=oe(r.subarray(o),e.subarray(i-o))},flush(){const t=de(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class dr extends E{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:d,deflate64:l}=e;let u,f,p=super.readable;i&&(s?p=wr(p,new Xt(e)):(f=new Zt(e),p=wr(p,f))),c&&(p=ur(p,d,{chunkSize:t,deflate64:l},n,r,n),p=(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(ar);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),i&&!s||!a||(u=new wt,p=wr(p,u)),lr(this,p,()=>{if((!i||s)&&a){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new w(bt)}})}}function lr(e,t,n){t=wr(t,new E({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function ur(e,t,r,n,s,i){const a=t&&n?n:s||i,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new a(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!i)throw e;c=new i(o,r)}}return fr(e,c)}function wr(e,t){return e.pipeThrough(t)}function fr(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 pr="data",hr="deflate",mr="inflate";class yr extends E{constructor(e,t){super({});const n=this,{codecType:s}=e;let i;s.startsWith(hr)?i=or:s.startsWith(mr)&&(i=dr),n.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,d=new E({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:a})}}),l=new E({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==Q&&n.outputSize>e.outputSize))throw new w(ir)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:a})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class gr extends E{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],i=e-s;r.length>i?(n.set(r.subarray(0,i),s),t[0]=r.subarray(i),s+=i):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}1>e&&(e=65536),super({transform(s,i){for(t.push(s),r+=s.length;r>e;)i.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 xr={type:"module"},br="error";let Sr,zr,Fr,Er,Rr=!0;try{Rr=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Q}catch{}class Dr{constructor(e,{readable:t,writable:n},{options:s,config:i,me:a,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=a;return r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new gr(ae(i))).pipeThrough(new Ar(a),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.be=t:(r.terminate(),t()),e.Se=null):t()}),ze(){if(e.ye){const{be:t}=e;t&&(e.be=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,l(e)}}}),Sr===Q&&(Sr=typeof k!=ee),(o&&Sr?kr:Tr)(e,i)}}class Ar extends E{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await vr(e,r)},async transform(e,n){s+=e.length,t&&await vr(t,s,r),n.enqueue(e)},async flush(){n&&await vr(n,s)}})}}async function vr(e,...t){try{await e(...t)}catch{}}function Tr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,ze:n},s)=>{let i;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(hr)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.Ee||(e.useCompressionStream=!0)}i=new yr(e,s),await t.pipeThrough(i).pipeThrough(new gr(ae(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:a,outputSize:o}=i;return{signature:n,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{n()}})(e,t)}}function kr(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:i}=t;if(!e.Se){let a;typeof i==te&&(i=i());try{a=Ur(e.workerURI,n,e)}catch{return Sr=!1,Tr(e,t)}r.assign(e,{xe:a,Fe:!1,Se:{run:()=>(async(e,t)=>{let n,s;const i=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,Re:n,De:s,result:i});const{readable:a,options:o}=e,{writable:c,closed:d,Ae:l}=(e=>{const t=new AbortController,{writable:r,readable:n}=new E,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let u;try{u=Or({type:"start",options:o,config:t,readable:a,writable:c},e)}catch(t){l();try{await d}catch{}throw e.ze(),t}u||r.assign(e,{reader:a.getReader(),writer:c.getWriter()});try{const e=await i;return await w(),await d,e}catch(e){await w(),l();try{await d}catch{}throw e}async function w(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:i,baseURI:n})}})}return e.Se}function Cr(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.Se=null}function Ur(e,t,n,s,i=!0){let a,o,c;if(Fr===Q||zr!==e){const r=typeof e==te;o=r?e(i):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===Q&&(s=!1),s&&(c=xr);try{a=new k(o,c)}catch(i){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return Ur(e,t,n,s,!1);if(s)throw i;return Ur(e,t,n,!0,!1)}}else{s===Q&&(s=!0),s&&(c=xr);try{o=new u(o,t)}catch{}try{a=new k(o,c)}catch(r){if(s)throw r;return Ur(e,t,n,!1,i)}}zr=e,Fr=o,Er=c}else a=new k(Fr,Er);return a.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:d,Re:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:i}=o,a=new w(e);r.assign(a,{stack:t,code:n,name:s,outputSize:i}),y(a)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Or({type:pr,value:e,done:r,messageId:i},t)}n==pr&&(await d.ready,await d.write(new f(s)),m()||Or({type:"ack",messageId:i},t)),"close"==n&&y(null,a)}}catch(o){m()||(Cr(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)),a.addEventListener(br,e=>Ir(e,n)),a.addEventListener("messageerror",e=>Ir(e,n)),a}function Ir(e,t){e.preventDefault&&e.preventDefault();const{De:r,writer:n,ze:s}=t;Cr(t),r&&(r(e.error||new w(e.message||br)),n&&n.releaseLock(),s())}function Or(e,{xe:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:i}=e,a=[];if(r&&(e.value=ce(r),a.push(e.value.buffer)),n&&Rr?(s&&a.push(s),i&&a.push(i)):e.readable=e.writable=null,a.length)try{return t.postMessage(e,a),!0}catch{Rr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Mr=[];const Nr=[];let _r,Pr,Lr=0;async function Wr(e,t){const{options:r,config:n}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:d,encrypted:l}=r,{workerURI:u,maxWorkers:w}=n;t.transferStreams=i||i===Q&&n.transferStreams;const f=!c&&!d&&!l;return t.useWebWorkers=!f&&(a||a===Q&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&n.useCompressionStream,(await(async()=>{const r=Mr.find(e=>!e.ye);if(r)return jr(r),new Dr(r,e,t,p);if(Mr.length<w){const r={ve:Lr};return Lr++,Mr.push(r),new Dr(r,e,t,p)}return new g(r=>{Nr.push({resolve:r,stream:e,Te:t}),Pr=n.workerStarvationTimeout,Zr()})})()).run();function p(e){if(Br(),Nr.length){const[{resolve:t,stream:r,Te:n}]=Nr.splice(0,1);t(new Dr(e,r,n,p)),Zr()}else e.xe?(jr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.ke=setTimeout(async()=>{Mr=Mr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Mr=Mr.filter(t=>t!=e)}}function Zr(){!_r&&Nr.length&&s.isFinite(Pr)&&Pr>=0&&(_r=setTimeout(Vr,Pr))}function Br(){_r&&(clearTimeout(_r),_r=null)}function Vr(){if(_r=null,Nr.length){const[{resolve:e,stream:t,Te:n}]=Nr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:Q});e(new Dr({},t,s,Hr)),Zr()}}function Hr(){Br(),Zr()}function jr(e){const{ke:t}=e;t&&(clearTimeout(t),e.ke=null)}const qr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Kr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=qr[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const Gr="filename",Yr="rawFilename",Xr="comment",Jr="rawComment",Qr="uncompressedSize",$r="compressedSize",en="offset",tn="diskNumberStart",rn="lastModDate",nn="rawLastModDate",sn="lastAccessDate",an="creationDate",on="rawCreationDate",cn="internalFileAttributes",dn="externalFileAttributes",ln="msdosAttributesRaw",un="msdosAttributes",wn="msDosCompatible",fn="zip64",pn="encrypted",hn="version",mn="versionMadeBy",yn="zipCrypto",gn="directory",xn="executable",bn="compressionMethod",Sn="signature",zn="extraField",Fn="unixMode",En="setuid",Rn="setgid",Dn="sticky",An=[Gr,Yr,Qr,$r,rn,nn,Xr,Jr,sn,an,on,en,tn,cn,dn,ln,un,wn,fn,pn,hn,mn,yn,gn,xn,bn,Sn,zn,"extraFieldUnix","extraFieldInfoZip","uid","gid",Fn,En,Rn,Dn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class vn{constructor(e){An.forEach(t=>this[t]=e[t])}}const Tn="password",kn="rawPassword",Cn="passThrough",Un="signal",In="checkAmbiguity",On="useWebWorkers",Mn="useCompressionStream",Nn="transferStreams",_n="preventClose",Pn="offset",Ln="strictness",Wn="strict",Zn="tolerant",Bn="File format is not recognized",Vn="End of central directory not found",Hn="End of Zip64 central directory locator not found",jn="Central directory header not found",qn="Local file header not found",Kn="Zip64 extra field not found",Gn="File contains encrypted entry",Yn="Encryption method not supported",Xn="Compression method not supported",Jn="Split zip file",Qn="Overlapping entry found",$n="Ambiguous archive",es="utf-8",ts="cp437",rs=[[Qr,C],[$r,C],[en,C],[tn,U]],ns={[U]:{Ce:As,bytes:4},[C]:{Ce:vs,bytes:8}};class ss{constructor(e,t={}){r.assign(this,{reader:new Qe(e),options:t,config:ie(),Ue:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await et(n),n.size!==Q&&n.readUint8Array||(n=new De(await new l(n.readable).blob()),await et(n)),n.size<Z)throw new w(Bn);const i=ws(zs(t,e,Ln),zs(t,e,In)),o=i==Wn,c=i!=Zn,u=((e,t)=>e!==Q?e:t==Wn?0:t==Zn?1/0:U)(zs(t,e,"maxAppendedDataSize"),i),{Ie:f,Oe:p}=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,65557),i={count:fs};let o,c,d=0;for await(const[r,a,l,u,w]of ys(e,s)){const s=Ds(r,u+20);if(w+Z+s==n){const s=await xs(e,r,a,u,w,n,i);if(s==ms){if(o||(o=gs(l,u,w)),d++,!t||d>1)break}else s!=hs||c||(c=gs(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,t==1/0?n:65557+t);let i,o;for await(const[t,a,c,d,l]of ys(e,s)){const s=gs(c,d,l);i||(i=s);const u=await xs(e,t,a,d,l,n,r);if(u==ms)return s;u!=hs||o||(o=s)}return o||i})(e,r,i)),{Ie:o,Oe:d}})(n,c,u);if(!f)throw As(de(await tt(n,0,4)))==M?new w(Jn):new w(Vn);c&&p>1&&Ss("multiple end of central directory records");const h=de(f);let m=As(h,12),y=As(h,16);const x=f.offset,b=Ds(h,20),S=x+Z+b;n.size-S>u&&Ss("appended data");let z=Ds(h,4);const F=n.R||0;let R,D,A=Ds(h,6),v=Ds(h,10),T=0;const k=y==C||m==C||v==U||A==U;if(y!=C&&A!=U&&(y+=us(n,A)),k){const e=f.offset<B?re:await tt(n,f.offset-B,B),t=de(e);if(e.length==B&&As(t,0)==W){y=us(n,As(t,4))+vs(t,8);let e=await tt(n,y,56),r=de(e);const s=f.offset-B-56;if((56>e.length||As(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await tt(n,y,56),r=de(e)}if(56>e.length||As(r,0)!=L)throw new w(Hn);D=!0,z==U?z=As(r,16):o&&z!=As(r,16)&&Ss("mismatched zip64 end of central directory record"),A==U?A=As(r,20):o&&A!=As(r,20)&&Ss("mismatched zip64 end of central directory record"),v==U?v=vs(r,32):o&&v!=vs(r,32)&&Ss("mismatched zip64 end of central directory record"),m==C?m=vs(r,40):o&&m!=vs(r,40)&&Ss("mismatched zip64 end of central directory record"),y=us(n,A)+vs(r,48)+T}}const O=m,N=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(Jn);if(0>y)throw new w(Bn);let P=0,V=await tt(n,y,m),H=de(V);if(m){if(4>V.length)throw new w(Bn);const e=N-m;if(y!=e&&A==z){let t=!(As(H,P)==_);if(t||0>e||e+4>n.size||(t=As(de(await tt(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(T+=y-t),V=await tt(n,y,m),H=de(V)}}}const Y=N-y;if(m==Y||0>Y||A!=z||(m=Y,V=await tt(n,y,m),H=de(V)),0>y||y>=n.size)throw new w(Bn);R=y;const X=zs(t,e,"filenameEncoding"),J=zs(t,e,"commentEncoding"),$=o?new d:Q;let ee;for(let i=0;v>i;i++){const c=new is(n,s,t.options);if(P+46>V.length||As(H,P)!=_)throw new w(jn);as(c,H,P+6);const d=!!c.bitFlag.languageEncodingFlag,u=P+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=Ds(H,P+4),m=!(h>>8),y=h>>8==3,x=V.subarray(u,f),b=Ds(H,P+32),S=p+b,z=V.subarray(p,S),F=d,D=d,A=As(H,P+38),k=A&I,C={readOnly:!!(1&k),hidden:!!(2&k),system:!!(4&k),directory:!!(16&k),archive:!!(32&k)},O=As(H,P+42),M=zs(t,e,"decodeText")||Kr,N=F?es:X||ts,L=D?es:J||ts;let W=M(x,N);W===Q&&(W=Kr(x,N));let Z=M(z,L);Z===Q&&(Z=Kr(z,L)),r.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Me:b,offset:O,diskNumberStart:Ds(H,P+34),internalFileAttributes:Ds(H,P+36),externalFileAttributes:A,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:V.subarray(f,p),rawComment:z,filename:W,comment:Z}),os(c,c,H,P+6),c.offset+=T,R=a.min(us(n,c.diskNumberStart)+c.offset,R),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const B=c.externalFileAttributes>>16&U;c.unixMode===Q&&16877&B&&(c.unixMode=B);const Y=!!(c.unixMode&q),te=!!(c.unixMode&K),re=!!(512&c.unixMode),ne=c.unixMode!==Q?!!(73&c.unixMode):y&&!!(73&B),se=c.unixMode!==Q&&(61440&c.unixMode)==j,ie=(61440&B)==j;r.assign(c,{setuid:Y,setgid:te,sticky:re,unixExternalUpper:B,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ie||m&&C.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ae=new vn(c);ae.getData=(e,r)=>c.getData(e,ae,t.Ue,r),ae.arrayBuffer=async e=>{const r=new E,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,ae,t.Ue,e)]);return n},P=S;const{onprogress:oe}=e;if(oe)try{await oe(i+1,v,new vn(c))}catch{}yield ae}o&&P!=O&&Ss("trailing central directory data"),ee&&Ss("duplicate filename"),o&&(T||v&&R>0)&&Ss("prepended data");const te=zs(t,e,"extractPrependedData"),ne=zs(t,e,"extractAppendedData");return te&&(t.prependedData=R>0?await tt(n,0,R):re),t.comment=b?await tt(n,x+Z,b):re,ne&&(t.appendedData=S<n.size?await tt(n,S,n.size-S):re),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let is=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:x}=p,b=t.localDirectory={},S=us(i,c)+o,z=await tt(i,S,Y),F=de(z);let E=zs(s,n,Tn),R=zs(s,n,kn);const A=zs(s,n,Cn);if(E=E&&E.length&&E,R=R&&R.length&&R,d&&99!=d.originalCompressionMethod)throw new w(Xn);if(0!=u&&8!=u&&9!=u&&!A)throw new w(Xn);if(z.length<Y||As(F,0)!=O)throw new w(qn);as(b,F,4);const{extraFieldLength:v,filenameLength:T}=b,k=ws(zs(s,n,Ln),zs(s,n,In))==Wn;let C=re;if(k&&(T||v)){const e=await tt(i,S+Y,T+v);C=e.subarray(0,T),b.rawExtraField=e.subarray(T)}else b.rawExtraField=v?await tt(i,S+Y+T,v):re;os(s,b,F,4,!0),k&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&Ss("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Ss("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Ss("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||Ss("mismatched local file header (signature or sizes)")})(s,b,C);const{lastAccessDate:U,creationDate:M}=b;U&&(t.lastAccessDate=U),M&&(t.creationDate=M);const _=s.encrypted&&b.encrypted&&!A,P=_&&!d;if(A||(t.zipCrypto=P),_){if(!P&&d.strength===Q)throw new w(Yn);if(!E&&!R)throw new w(Gn)}const L=S+Y+T+v,W=g,Z=i.createReadable({offset:L,size:W}),B=zs(s,n,Un),V=zs(s,n,"checkPasswordOnly");let H=zs(s,n,"checkOverlappingEntry");const j=zs(s,n,"checkOverlappingEntryOnly");j&&(H=!0);const{onstart:q,onprogress:K,onend:G}=n,X=9==u;let J=zs(s,n,Mn);X&&(J=!1);const $={options:{codecType:mr,password:E,rawPassword:R,zipCrypto:P,encryptionStrength:d&&d.strength,signed:zs(s,n,"checkSignature")&&!A,passwordVerification:P&&(x?m>>>8&I:h>>>24&I),outputSize:A?g:y,signature:h,compressed:0!=u&&!A,encrypted:_,useWebWorkers:zs(s,n,On),useCompressionStream:J,transferStreams:zs(s,n,Nn),deflate64:X,checkPasswordOnly:V},config:f,me:{signal:B,size:W,onstart:q,onprogress:K,onend:G}};let ee;H&&await(async({reader:e,Ne:t,index:r,offset:n,signature:s,compressedSize:i,uncompressedSize:a,_e:o,dataDescriptor:c,extraFieldZip64:d,Ue:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await tt(e,o+i,u+4);if(r.length==u+4&&As(de(r),0)==N){const e=As(de(r),4);let n,o;d?(n=vs(de(r),8),o=vs(de(r),16)):(n=As(de(r),8),o=As(de(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==i&&o==a&&(u+=4)}}const f={start:n,end:o+i+u,Ne:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w(Qn);throw e.Pe=t.Ne,e}l.set(r,f)})({reader:i,Ne:t,index:a,offset:S,signature:h,compressedSize:g,uncompressedSize:y,_e:L,dataDescriptor:x||b.bitFlag.dataDescriptor,extraFieldZip64:l||b.extraFieldZip64,Ue:r});try{if(!j){V&&(e=new D),e=new $e(e),await et(e,A?g:y),({writable:ee}=e);const{outputSize:t}=await Wr({readable:Z,writable:ee},$);if(e.size+=t,t!=(A?g:y))throw new w(ir)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!V||t.message!=St)throw t}finally{zs(s,n,_n)||!ee||ee.locked||await ee.getWriter().close()}return V||j?Q:e.getData?e.getData():ee}};function as(e,t,n){const s=e.rawBitFlag=Ds(t,n+2),i=!(1&~s),a=As(t,n+6);r.assign(e,{encrypted:i,version:Ds(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&H)==H},rawLastModDate:a,lastModDate:Fs(a),filenameLength:Ds(t,n+22),extraFieldLength:Ds(t,n+24)})}function os(e,t,n,s,i){const{rawExtraField:a}=t,d=t.extraField=new c,l=de(a);let u=0;try{for(;u<a.length;){const e=Ds(l,u),t=Ds(l,u+2);d.set(e,{type:e,data:a.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=Ds(n,s+4);r.assign(t,{signature:As(n,s+10),compressedSize:As(n,s+14),uncompressedSize:As(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=de(e.data),n=rs.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+ns[t].bytes,0);if(e.data.length<s)throw new w(Kn);for(let s=0,i=0;s<n.length;s++){const[a,o]=n[s],c=ns[o];t[a]=e[a]=c.Ce(r,i),i+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(cs(h,Gr,Yr,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(cs(m,Xr,Jr,t,e),t.extraFieldUnicodeComment=m);const y=d.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=de(e.data),i=Rs(s,4);r.assign(e,{Le:Rs(s,0),vendorId:Rs(s,2),strength:i,originalCompressionMethod:n,compressionMethod:Ds(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(10);g&&(((e,t)=>{const n=de(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=Ds(n,i),r=Ds(n,i+2);1==t&&(s=e.data.slice(i+4,i+4+r)),i+=4+r}}catch{}try{if(s&&24==s.length){const n=de(s),i=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:Es(i),lastAccessDate:Es(a),creationDate:Es(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=d.get(30805);if(x)ds(x,t,!1),t.extraFieldUnix=x;else{const e=d.get(30837);e&&(ds(e,t,!0),t.extraFieldInfoZip=e)}const b=d.get(V);b&&(((e,t,r)=>{if(!e.data.length)return;const n=de(e.data),s=Rs(n,0),i=[],a=[];r?(1&~s||(i.push(rn),a.push(nn)),2&~s||(i.push(sn),a.push("rawLastAccessDate")),4&~s||(i.push(an),a.push(on))):5>e.data.length||(i.push(rn),a.push(nn));let c=1;i.forEach((r,s)=>{if(e.data.length>=c+4){const i=As(n,c);t[r]=e[r]=new o(1e3*(0|i));const d=a[s];e[d]=i}c+=4})})(b,t,i),t.extraFieldExtendedTimestamp=b);const S=d.get(6534);S&&(t.extraFieldUSDZ=S)}function cs(e,t,n,s,i){if(5>e.data.length)return void(e.valid=!1);const a=de(e.data),o=new ut;o.append(i[n]);const c=de(new f(4));c.setUint32(0,o.get(),!0);const d=As(a,1);r.assign(e,{version:Rs(a,0),[t]:Kr(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&d==As(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function ds(e,t,n){try{const s=de(e.data);let i,a;if(n){let t=0;const n=Rs(s,t++),o=Rs(s,t++);i=ls(e.data.subarray(t,t+o)),t+=o;const c=Rs(s,t++);a=ls(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:i,gid:a})}else 4>e.data.length||(i=Ds(s,0),a=Ds(s,2),r.assign(e,{uid:i,gid:a}));i!==Q&&(t.uid=i),a!==Q&&(t.gid=a)}catch{}}function ls(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function us(e,t){return e.A?e.A(t):0}function ws(e,t){return e===Q?t?Wn:"balanced":e}const fs=64,ps=0,hs=1,ms=2;async function*ys(e,t){const r=e.size-t,n=await tt(e,r,t),s=de(n);for(let e=n.length-Z;e>=0;e--)As(s,e)==P&&(yield[s,r,n,e,r+e])}function gs(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function xs(e,t,r,n,s,i,a){const o=Ds(t,n+10),c=As(t,n+12),d=As(t,n+16);if(o==U||c==C||d==C)return await bs(e,t,r,s-B,i,a)==W?ms:ps;if(!o&&!c)return hs;const l=Ds(t,n+6);for(const n of[s-c,us(e,l)+d])if(await bs(e,t,r,n,i,a)==_)return ms;return ps}async function bs(e,t,r,n,s,i){return 0>n||n+4>s?Q:r>n?i.count>0?(i.count--,As(de(await tt(e,n,4)),0)):Q:As(t,n-r)}function Ss(e){const t=new w($n);throw t.reason=e,t}function zs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Fs(e){const t=(4294901760&e)>>16,r=e&U;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 Es(e){return new o(s(e/i(1e4)-i(116444736e5)))}function Rs(e,t){return e.getUint8(t)}function Ds(e,t){return e.getUint16(t,!0)}function As(e,t){return e.getUint32(t,!0)}function vs(e,t){return s(e.getBigUint64(t,!0))}var Ts=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:$n,ERR_BAD_FORMAT:Bn,ERR_CENTRAL_DIRECTORY_NOT_FOUND:jn,ERR_ENCRYPTED:Gn,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Hn,ERR_EOCDR_NOT_FOUND:Vn,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Kn,ERR_INVALID_COMPRESSED_DATA:ar,ERR_INVALID_PASSWORD:xt,ERR_INVALID_SIGNATURE:bt,ERR_INVALID_UNCOMPRESSED_SIZE:ir,ERR_LOCAL_FILE_HEADER_NOT_FOUND:qn,ERR_OVERLAPPING_ENTRY:Qn,ERR_SPLIT_ZIP_FILE:Jn,ERR_UNSUPPORTED_COMPRESSION:Xn,ERR_UNSUPPORTED_ENCRYPTION:Yn,ZipReader:ss});const ks="Zip file comment exceeds 64KB",Cs="Version exceeds 65535",Us="Extra field data exceeds 64KB",Is=-2147483648,Os=2147483647,Ms="Zip64 is not supported (set the 'zip64' option to 'true')",Ns=new f([7,0,2,0,65,69,3,0,0]),_s="infozip",Ps="unix";let Ls=0;const Ws=[];class Zs{constructor(e,t={}){e=new $e(e);const{availableSize:n=$,maxSize:s=$}=e,i=n>0&&n!==$&&s>0&&s!==$;r.assign(this,{writer:e,We:i,options:t,config:ie(),files:new c,Ze:new d,offset:t[Pn]===Q?e.size||e.writable.size||0:t[Pn],Be:t[Pn]===Q?0:t[Pn]-(e.size||e.writable.size||0),Ve:new d,He:0,je:Q})}async prependZip(e){if(this.Ze.size)throw new w("Zip file not empty");e=new Qe(e),await et(e);const{ZipReader:t}=await g.resolve().then(()=>Ts),n=new t(e.readable),s=await n.getEntries();await n.close(),await et(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ze=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:b,dataDescriptor:S}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,g=g||re,e.extraFieldAES&&(w=99);const z=ai(f,p,h,m,y,g),F=u&&d>=C,E=u&&l>=C,R=-7&ci(x,b,S,c,w)|x<<1,{Je:D,Qe:A}=oi({version:t,bitFlag:R,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:a,$e:E,et:F,extraFieldLength:z}),{signature:v}=e;return v!==Q&&ni(A,10,v),r.assign(e,{et:F,$e:E,nt:u&&e.offset>=C,diskNumberStart:0,st:!1,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,it:1+(s?2:0)+(i?4:0),Je:D,Qe:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ve:a,config:c}=s;let d,l;Ls<c.maxWorkers?Ls++:await new g(e=>Ws.push(e));try{if(e=e.trim(),ei(s,n,gn)&&!e.endsWith(G)&&(e+=G),s.Ze.has(e))throw new w("File already exists");return s.Ze.add(e),l=!0,d=(async(e,t,n,s)=>{const a=((e,t,r)=>{t=t.trim();let n=ei(e,r,wn),s=ei(e,r,mn,n?20:768);const i=ei(e,r,xn),a=ei(e,r,"uid"),o=ei(e,r,"gid");let c=ei(e,r,Fn),d=ei(e,r,"unixExtraFieldType"),l=ei(e,r,En),u=ei(e,r,Rn),f=ei(e,r,Dn);if(a!==Q&&(0>a||a>C))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==Q&&(0>o||o>C))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==Q&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==Q&&d!==_s&&d!==Ps)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===Ps&&(a!==Q&&a>U||o!==Q&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==Q||a===Q&&o===Q||(d=_s);let p=ei(e,r,ln),h=ei(e,r,un);const m=p!==Q||h!==Q;if(a!==Q||o!==Q||c!==Q||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==Q&&(0>p||p>I))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>U)throw new w(Cs);let y=ei(e,r,dn,0);!r[gn]&&t.endsWith(G)&&(r[gn]=!0);const g=ei(e,r,gn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=i?493<<16:27525120),n||(x=y>>16&U,c=c===Q?x:c&U,l?c|=q:l=!!(c&q),u?c|=K:u=!!(c&K),f?c|=512:f=!!(512&c),g&&(c|=j),y=(c&U)<<16|y&I),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==Q)e&=I;else if(t!==Q){const{readOnly:r,hidden:n,system:s,directory:i,archive:a}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&I}return t===Q&&(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&C|p&I),{name:t,ot:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:a,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=a);const c=((e,t,r)=>{const n=ei(e,r,"encodeText",ft);let s=n(t);if(s===Q&&(s=ft(t)),ai(s)>U)throw new w("File entry name exceeds 64KB");const i=r[Xr]||"";let a=n(i);if(a===Q&&(a=ft(i)),ai(a)>U)throw new w("File entry comment exceeds 64KB");const c=ei(e,r,hn,20);if(c>U)throw new w(Cs);const d=ei(e,r,rn,new o),l=ei(e,r,sn),u=ei(e,r,an),p=ei(e,r,cn,0),h=ei(e,r,Cn);let m,y;h||(m=ei(e,r,Tn),y=ei(e,r,kn));const g=ei(e,r,"encryptionStrength",3),x=ei(e,r,yn),b=ei(e,r,"extendedTimestamp",!0),S=ei(e,r,"keepOrder",!0),z=ei(e,r,On),F=ei(e,r,Nn),E=ei(e,r,"bufferedWrite"),R=ei(e,r,"createTempStream"),D=ei(e,r,"dataDescriptorSignature",!0),A=ei(e,r,Un),v=ei(e,r,"useUnicodeFileNames",!0),T=ei(e,r,bn);if(!h&&T!==Q&&0!==T&&8!==T)throw new w("Compression method not supported");let k=ei(e,r,"level"),C=ei(e,r,Mn),I=ei(e,r,"dataDescriptor");E&&I===Q&&(I=!1),(I===Q||x)&&(I=!0),k!==Q&&6!=k&&(C=!1),C||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(k=0);const O=ei(e,r,fn);if(!x&&(m!==Q||y!==Q)&&(1>g||g>3))throw new w("The strength must equal 1, 2, or 3");let M=re;const N=r[zn];if(N){let e=0,t=0;N.forEach(t=>e+=4+ai(t)),M=new f(e);const r=de(M);N.forEach((e,n)=>{if(n>U)throw new w("Extra field type exceeds 65535");if(ai(e)>U)throw new w(Us);ri(r,t,n),ri(r,t+2,ai(e)),ii(M,e,t+4),t+=4+ai(e)})}return{comment:i,ot:{rawFilename:s,rawComment:a,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:b,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:E,createTempStream:R,dataDescriptorSignature:D,signal:A,useUnicodeFileNames:v,compressionMethod:T,level:k,useCompressionStream:C,dataDescriptor:I,zip64:O,rawExtraField:M}}})(e,t,s),{comment:d}=c,l=s[zn];let u;e.files.set(t,Q);try{const o=await(async(e,t,{ot:r},n)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[Qr],h===Q)throw new w("Undefined uncompressed size")}const m=!0===l,y=ei(e,n,pn),g=!!t&&(!!(a&&ai(a)||o&&ai(o))||s&&y);t||(u=0,f=0);const x=g?i?12:16+4*c:0;t&&(t=new Qe(t),await et(t),s?(n.uncompressedSize=h,p=ti(h)+x):t.size===Q?(d=!0,(l||l===Q)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=ti(h)+x));const b=m||h>=C,S=m||p>=C;if(b||S){if(!1===l)throw new w(Ms);l=!0}return l=l||!1,{reader:t,ot:{dataDescriptor:d,zip64:l,et:b,$e:S,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const d=qs(e.writer),l=js(e.writer),p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:i,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:d,directory:l,rawExtraField:u,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,et:y,$e:g,uncompressedSize:x}=e;let{version:b,compressionMethod:S}=e;const z=!l&&(S===Q?i===Q||i>0:0!==S);let F;const E=h||!z,R=a&&(e.bufferedWrite||!d||!y&&!g||E),D=R||a&&d&&(y||g);if(a&&(y||g)){const e=20,t=Hs(e);if(t.uint16(1),t.uint16(e-4),F=t.array,R&&(t.ct(x),E)){const e=m?o?12:16+4*f:0;t.ct(h?0:x+e)}}else F=re;let A,v,T,k,C;if(m&&!o){const e=Hs(ai(Ns)+2);e.uint16(39169),e.bytes(Ns),A=e.array,A[8]=f}else A=re;if(p){const e=Js(r);if(Qs(e)){const t=9+(n?4:0)+(s?4:0),r=Hs(t);k=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(k),r.uint32(e),n&&r.uint32($s(Js(n))),s&&r.uint32($s(Js(s))),T=r.array}else T=re;try{const e=Xs(r),t=Hs(36);t.uint16(10),t.uint16(32),t.lt(4),t.uint16(1),t.uint16(24),t.ct(e),t.ct(Xs(n)||e),t.ct(Xs(s)||e),v=t.array}catch{v=re}}else v=T=re;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=_s||t===Q&&r===Q)if(n!=Ps||t===Q&&r===Q)C=re;else{const e=Hs(8);e.uint16(30805),e.uint16(4),e.uint16((t===Q?0:t)&U),e.uint16((r===Q?0:r)&U),C=e.array}else{const e=Vs(t),n=Vs(r),s=3+e.length+n.length,i=Hs(4+s);i.uint16(30837),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(n.length),i.bytes(n),C=i.array}}catch{C=re}S===Q&&(S=z?8:0),a&&(b=b>45?b:45),m&&!o&&(b=b>51?b:51,A[9]=S,S=99);const I=D?ai(F):0,M=I+ai(A,T,v,C,u);if(M>U)throw new w(Us);const{Je:N,Qe:_,rawLastModDate:P}=oi({version:b,bitFlag:ci(i,c,d,m,S),compressionMethod:S,uncompressedSize:x,lastModDate:J>r?J:r>X?X:r,rawFilename:t,$e:g,et:y,extraFieldLength:M}),L=Hs(Y+ai(t)+M),W=L.array,Z=de(W);return L.uint32(O),L.bytes(N),L.bytes(t),D&&L.bytes(F),L.bytes(A),L.bytes(T),L.bytes(v),L.bytes(C),L.bytes(u),d&&(g||ni(Z,18,0),y||ni(Z,22,0)),{ut:W,wt:Z,Je:N,Qe:_,lastModDate:r,rawLastModDate:P,encrypted:m,compressed:z,version:b,compressionMethod:S,it:k,qe:re,ft:I,Ge:T,Ye:v,Xe:C,Ke:A,extraFieldLength:M}})(s=r.assign({},s,a.ot,c.ot,o.ot,{internalFileAttribute:c.ot.internalFileAttributes,externalFileAttribute:a.ot.externalFileAttributes,signature:s[Sn],offset:e.offset-d,diskNumberStart:l})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=re,i=0,a=e?20:12;return r&&(a+=4),t&&(s=new f(a),n=de(s),r&&(i=4,ni(n,0,N))),{ht:s,yt:n,gt:i}})(s),m=ai(p.ut,h.ht);u=await(async(e,t,n,s,a)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=a,{xt:p}=s,h=e.options.usdz,m=e.je;let y,x,b,S,z,F,R,A={},v=0;o.set(t,A),e.je=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>b=e)),a.bufferedWrite||!d||e.bt||e.He||!l?(y=!0,e.He++,R=a.createTempStream?await a.createTempStream():new E(Q,Q,{highWaterMark:$}),R.size=0,await et(c)):(R=c,await T()),await et(R);const U=qs(c);if(e.We){delete e.We;const t=new f(4);ni(de(t),0,M),await Ys(c,t),e.offset+=4}h&&!y&&Bs(s,e.offset-U);const{ut:O}=p;y||(await x,await k());const N=js(c),_=Gs(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await Ys(R,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},a,o,c)=>{const{xt:d,St:l,zt:u}=a,{Je:f,Qe:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:b,qe:S,ft:z,Ge:F,it:E,Ye:R,Xe:D,Ke:A}=d,{ht:v}=l,{rawFilename:T,lastAccessDate:k,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,et:P,$e:L,zipCrypto:W,dataDescriptor:Z,directory:B,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:G,onstart:Y,onprogress:X,onend:J,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he}=c,me={lock:s,versionMadeBy:H,zip64:_,directory:!!B,executable:!!V,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:j,qe:S,ft:z,Ge:F,Ye:R,Xe:D,Ke:A,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{signature:ye,uncompressedSize:ge}=c,xe=0;he||(ge=0);const{writable:be}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:hr,level:N,rawPassword:M,password:O,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:G},config:o,me:{signal:$,size:n,onstart:Y,onprogress:X,onend:J}};try{const e=await Wr({readable:r,writable:be},s);if(xe=e.outputSize,t.size+=xe,he||(ge=e.inputSize,ye=e.signature),!L&&xe>=C||!P&&ge>=C)throw new w(Ms)}catch(e){throw e.outputSize!==Q&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,St:s},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{Qe:d,encrypted:l}=n,{yt:u,gt:w}=s;l&&!o||e===Q||(ni(d,10,e),c&&ni(u,w,e)),a?c&&(si(u,w+4,i(t)),si(u,w+12,i(r))):(ni(d,14,t),ni(d,18,r),c&&(ni(u,w+4,t),ni(u,w+8,r)))})({signature:ye,compressedSize:xe,uncompressedSize:ge,xt:d,St:l},c),Z&&await Ys(t,v),r.assign(me,{uncompressedSize:ge,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:k,encrypted:y,zipCrypto:W,size:u+xe,compressionMethod:b,version:x,Je:f,Qe:p,signature:ye,it:E,et:P,$e:L}),me})(n,R,A,s,e.config,a),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([R.writable.getWriter().close(),x]),await T(),S=!0,F=c.size,await k(),A.diskNumberStart=js(c),A.offset=Gs(e,c),h){const t=s.zt;Bs(s,e.offset-qs(c)),A.size+=s.zt-t}(({rawFilename:e,encrypted:t,zip64:r,ft:n,signature:s,compressedSize:a,uncompressedSize:o,et:c,$e:d},l,{dataDescriptor:u})=>{if(u||(t||ni(l,14,s),d||ni(l,18,a),c||ni(l,22,o)),r&&n){const t=Y+ai(e)+4;si(l,t,i(o)),si(l,t+8,i(a))}})(A,p.wt,a),await Ys(c,p.ut),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=ai(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(R.readable,c,u),c.size+=R.size,S=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(S||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=v)}throw o.delete(t),r}finally{if(y&&e.He--,b&&b(),x&&x(),y&&R&&R.dispose)try{await R.dispose()}catch{}}async function T(){e.bt=!0;const{Ft:t}=e;e.Ft=new g(t=>x=()=>{e.bt=!1,t()}),await t}async function k(){Ks(c,ai(p.ut))&&await c.closeDisk()}})(e,t,n,{xt:p,St:h,zt:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:d,extraField:l}),new vn(u)})(s,e,t,n),a.add(d),await d}catch(t){throw l&&s.Ze.delete(e),t}finally{a.delete(d);const e=Ws.shift();e?e():Ls--}}remove(e){const{Ze:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=re,r={}){const{Ve:n,writer:s}=this,{writable:a}=s;if(ai(e)>U)throw new w(ks);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,Ke:n,rawComment:s,Ye:i,Xe:a,rawExtraField:o,extendedTimestamp:c,it:d,lastModDate:l,et:u,$e:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=C,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Hs(e);t.uint16(1),t.uint16(e-4),u&&t.ct(p),f&&t.ct(h),m&&t.ct(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=re;r.qe=g,r.nt=m,r.st=y;const b=Js(l);if(c&&Qs(b)){const e=Hs(9);e.uint16(V),e.uint16(5),e.uint8(d),e.uint32(b),x=e.array}else x=re;r.Ge=x;const S=ai(g,n,i,a,x,o);if(S>U)throw new w(Us);t+=46+ai(e,s)+S}return t})(e.files),a=await(async(e,r,n)=>{const{files:s,writer:i}=e,a=new f(r);await et(i);let o=0,c=0,d=js(i),l=qs(i);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,qe:w,Ke:f,Ge:p,Ye:h,Xe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,Je:b,Qe:S,et:z,$e:F,st:E,nt:R,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:k}=r,I=ai(w,f,p,h,m,y),O=46+ai(u,g)+I;Ks(i,o+O-c)&&(await Ys(i,a.slice(c,o)),c=o,await i.closeDisk()),0==e&&(d=js(i),l=qs(i)),z||ni(S,18,T),F||ni(S,14,k),(R||E)&&45>r.version&&ri(S,0,45);const M=Hs(O);if(M.uint32(_),M.uint16(x),M.bytes(b.subarray(0,24)),M.uint16(I),M.uint16(ai(g)),M.uint16(E?U:v),M.uint16(D),M.uint32(A),M.uint32(R?C:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),ii(a,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new vn(r))}catch{}}return await Ys(i,c?a.slice(c):a),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Et:a}=n;let{Rt:o}=n,c=e.files.size,d=a.diskNumber,l=Gs(e,a),u=js(s);Ks(s,Z)&&u++;let f=ei(e,r,fn);if(!(C>l&&C>o&&U>c&&U>u)){if(!1===f)throw new w(Ms);f=!0}const p=ai(t);if(p>U)throw new w(ks);const h=Hs(f?98:Z);Ks(s,ai(h.array)+p)&&await s.closeDisk(),u=js(s),f&&(h.uint32(L),h.ct(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.ct(c),h.ct(c),h.ct(o),h.ct(l),h.uint32(W),h.uint32(u),h.ct(i(Gs(e,s))+i(o)),h.uint32(u+1),ei(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=C,o=C),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await Ys(s,h.array),p&&await Ys(s,t)})(e,r,n,{Et:a,Rt:s})})(this,e,r),ei(this,r,_n)||await a.getWriter().close(),s.getData?s.getData():a}}function Bs(e,t){const{xt:r}=e;let{ut:n,extraFieldLength:s}=r,i=64-(t+ai(n))%64;4>i&&(i+=64);const a=new f(i),o=de(a);ri(o,0,6534),ri(o,2,i-4);const c=n;r.ut=n=new f(ai(c)+i),ii(n,c),ii(n,a,ai(c));const d=de(n);ri(d,28,s+i),r.wt=d,e.zt+=i}function Vs(e){if(e===Q)return re;{const t=new f(4);de(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Hs(e){const t=new f(e),r=de(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{ri(r,n,e),n+=2},uint32:e=>{ni(r,n,e),n+=4},ct:e=>{si(r,n,i(e)),n+=8},bytes:e=>{ii(t,e,n),n+=ai(e)},lt:e=>n+=e}}function js(e){const{diskNumber:t=0}=e;return t}function qs(e){const{diskOffset:t=0}=e;return t}function Ks(e,t){const{availableSize:r=$}=e;return t>r}function Gs(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.Be:0)}async function Ys(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=ai(t),await n.write(t)}finally{n.releaseLock()}}function Xs(e){if(e)return(i(e.getTime())+i(116444736e5))*i(1e4)}function Js(e){return a.floor(e.getTime()/1e3)}function Qs(e){return e>=Is&&Os>=e}function $s(e){return a.min(Os,a.max(Is,e))}function ei(e,t,r,n){const s=t[r]===Q?e.options[r]:t[r];return s===Q?n:s}function ti(e){return e+5*(a.floor(e/16383)+1)}function ri(e,t,r){e.setUint16(t,r,!0)}function ni(e,t,r){e.setUint32(t,r,!0)}function si(e,t,r){e.setBigUint64(t,r,!0)}function ii(e,t,r){e.set(t,r)}function ai(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function oi({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,$e:c,et:d,extraFieldLength:l}){const u=Hs(26),w=u.array,f=de(w);if(u.uint16(e),u.uint16(t),u.uint16(r),a===Q){const e=new h(1),t=de(e);ri(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),ri(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return u.uint32(a),u.lt(4),c||s!==Q?u.uint32(c?C:s):u.lt(4),d||n!==Q?u.uint32(d?C:n):u.lt(4),u.uint16(ai(o)),u.uint16(l),{Je:w,Qe:f,rawLastModDate:a}}function ci(e,t,r,n,s){let i=0;return t&&(i|=H),r&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),n&&(i|=1),i}const di="Entry filename already exists";class li{constructor(e,t,n,s){const i=this;if(e.root&&s&&s.getChildByName(t))throw new w(di);n||(n={}),r.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.Dt++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[i.id]=i),s&&i.parent.children.push(i)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new w(di);this.name=e}}class ui extends li{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new ui(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=yi(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([et(n),et(e,s)]);const{readable:i}=n;return r.uncompressedSize=n.size,await i.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==xt)return!1;throw e}}getText(e,t){return this.getData(new Te(e),t)}getBlob(e,t){return this.getData(new Ae(e),t)}getData64URI(e,t){return this.getData(new Fe(e),t)}getUint8Array(e){return this.getData(new Ye,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return ce(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:De,Writer:Ae,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:ve,Writer:Te,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:ze,Writer:Fe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Ge,Writer:Ye,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:hi(e),Writer:null,reader:null})}}class wi extends li{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new wi(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return Fi(this,e,{options:t},!0)}addText(e,t,r={}){return Fi(this,e,{data:t,Reader:ve,Writer:Te,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return Fi(this,e,{data:t,Reader:De,Writer:Ae,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return Fi(this,e,{data:t,Reader:ze,Writer:Fe,options:r,uncompressedSize:a.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return Fi(this,e,{data:t,Reader:Ge,Writer:Ye,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return Fi(this,e,{data:t,Reader:class extends Ke{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return Fi(this,e,{Reader:hi(t),options:r})}addFileSystemEntry(e,t={}){return bi(this,e,t)}addFileSystemHandle(e,t={}){return bi(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),Fi(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}At(e,t){return Fi(this,e,t)}importBlob(e,t){return this.importZip(new De(e),t)}importData64URI(e,t){return this.importZip(new ze(e),t)}importUint8Array(e,t){return this.importZip(new Ge(e),t)}importHttpContent(e,t){return this.importZip(new Ke(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new Ae(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Fe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Ye,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const i=pi([e],"uncompressedSize"),a=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){a.set(e.id,r);try{await s.onprogress(t.from(a.values()).reduce((e,t)=>e+t,0),i)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await et(e);const n=new ss(e,t),s=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),a=i.pop();if(i.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(di)}else n=new wi(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(a)if(t=n.getChildByName(a),t){if(!t.directory)throw new w(di)}else t=new wi(this.fs,a,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(Fi(n,a,{data:e,Reader:mi(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===Q&&(n.bufferedWrite=!0);const[i]=await g.all([gi(s,n.readerOptions),et(e)]),a=new Zs(e,n);return await(async(e,n,s,i,a)=>{const o=n,d=new c;await async function e(n,c){async function l(c){const l=i.relativePath?c.getRelativeName(o):c.getFullname(),u=c.options||{};let w={};if(c.data instanceof vn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a,uncompressedSize:o,encrypted:d,zipCrypto:l,signature:u,compressionMethod:f,extraFieldAES:p}=c.data;if(w={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a},c.passThrough){let e,t;0===f&&(e=0),p&&(t=p.strength),w=r.assign(w,{passThrough:!0,encrypted:d,zipCrypto:l,signature:u,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await n.add(l,a.get(c),r.assign({},i,w,u,{directory:c.directory,onprogress:async e=>{if(i.onprogress){d.set(l,e);try{await i.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,c)}await(async()=>{if(i.bufferedWrite){const e=(await g.allSettled(c.children.map(l))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of c.children)await l(e)})()}(e,n)})(a,s,pi([s],"uncompressedSize"),n,i),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const fi={FS:class{constructor(){zi(this)}get children(){return this.root.children}remove(e){xi(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=Q}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(di)}else xi(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}At(e,t){return this.root.At(e,t)}importBlob(e,t){return zi(this),this.root.importBlob(e,t)}importData64URI(e,t){return zi(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return zi(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return zi(this),this.root.importHttpContent(e,t)}importReadable(e,t){return zi(this),this.root.importReadable(e,t)}importZip(e,t){return zi(this),this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:wi,ZipFileEntry:ui};function pi(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function hi(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function mi(e){return class extends be{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new Ae,r.assign({},e,t.options));t.data=n,t.vt=new De(n),super.init()}readUint8Array(e,t){return this.vt.readUint8Array(e,t)}}}function yi(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function gi(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=yi(e.Reader,e.data,t);s.set(e,r);try{await et(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==Q&&(e.uncompressedSize=r.size)})),s}function xi(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function bi(e,t,n){return async function e(t,s,i){if(s)try{if((s.isFile||s.isDirectory)&&(s=await Si(s)),"file"==s.kind){const e=await s.getFile();i.push(t.At(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);i.push(r);for await(const t of s.values())await e(r,t,i)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return i}(e,t,[])}async function Si(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async i=>{if(i.length){for(const e of i)t.push(await Si(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function zi(e){e.entries=[],e.Dt=0,e.root=new wi(e)}function Fi(e,t,r,n){if(e.directory)return n?new wi(e.fs,t,r,e):new ui(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=fi});
|
|
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:i,Math:a,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:S,document:b,crypto:z,btoa:F,TransformStream:R,ReadableStream:E,WritableStream:D,CompressionStream:A,DecompressionStream:v,navigator:T,Worker:k}="undefined"!=typeof globalThis?globalThis:this||self,C=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,Z=22,B=20,V=21589,H=2048,j=16384,q=2048,K=1024,G="/",Y=30,X=new o(2107,11,31,23,59,58),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function",re=new f;let ne=2;try{typeof T!=ee&&T.hardwareConcurrency&&(ne=T.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=ee&&A,DecompressionStream:typeof v!=ee&&v};function ie(){return se}function ae(e){return a.max(e.chunkSize,64)}function oe(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function ce(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function de(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const le="HTTP error ",ue="HTTP Range not supported",we="HTTP resource changed",fe="Content-Range",pe="Range",he="GET",me="bytes",ye=16777216,ge="writable",xe=Symbol();class Se{constructor(){this.size=0}init(){this.initialized=!0}}class be extends Se{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=ae(ie())}={}){const n=this;let s=0;return new E({async pull(i){const o=t===Q?r:a.min(r,t-s),c=await rt(n,e+s,o);i.enqueue(c),s+r>t||t===Q&&!c.length&&o?i.close():s+=r}})}}class ze extends Se{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(ce(t))}});r.defineProperty(e,ge,{get:()=>t})}writeUint8Array(){}}class Fe extends be{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:a.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),i=4*a.floor(e/3),o=atob(n.substring(i+r,4*a.ceil((e+t)/3)+r)),c=e-3*a.floor(i/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Re extends ze{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const i=t.pending.length;for(t.pending="",r=0;r<3*a.floor((i+e.length)/3)-i;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let Ee,De;class Ae extends be{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),De||(De=(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();Ee=1==t}catch{Ee=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Ee?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 i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,n)),new f(i)}}class ve extends Se{constructor(e){super();const t=this,n=new R,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,ge,{get:()=>n.writable}),t.blob=new l(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Te extends Ae{constructor(e){super(new y([e],{type:"text/plain"}))}}class ke extends ve{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,i)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)})}}}class Ce extends be{constructor(e,t){super(),Ie(this,e,t)}async init(){await Oe(this,qe,Be),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:i}=t;if((r||n)&&i!==Q){const{offset:r=0,size:n=i-r}=e||{};if(n>0&&i>r)return((e,t,r)=>{let n,i=t,o=0,c=r;return new E({start:()=>d(),async pull(e){n||await d();const{value:t,done:r}=await n.read();if(r)throw new w(ue);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=Q,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function d(){const t=a.min(e.maximumRangeSize,c),r=await qe(he,e,We(e,i,t));if(206!=r.status)throw new w(ue);const d=r.headers.get(fe);if(d){const e=s(d.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=i)throw new w(ue)}Le(e,r),Pe(e,r),i+=t,o=t,n=r.body.getReader()}})(t,r,a.min(n,i-r))}return super.createReadable(e)}readUint8Array(e,t){return Me(this,e,t,qe,Be)}}class Ue extends be{constructor(e,t){super(),Ie(this,e,t)}async init(){await Oe(this,Ke,Ve),super.init()}readUint8Array(e,t){return Me(this,e,t,Ke,Ve)}}function Ie(e,t,n){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:d=ye,fetch:l}=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:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:d,fetch:l})}async function Oe(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(i||a)&&(void 0===s||s)){const n=await t(he,e,We(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==me))throw new w(ue);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.h=t)}Pe(e,n);const s=Ne(n);s===Q?await je(e,t,r):e.size=s}}else await je(e,t,r)}async function Me(e,t,r,n,i){const{useRangeHeader:a,forceRangeRequests:o,h:c,size:d,options:l}=e;if(a||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const i=await n(he,e,We(e,t,r));if(206!=i.status)throw new w(ue);const a=i.headers.get(fe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Le(e,i),Pe(e,i);const o=new f(await i.arrayBuffer());if(o.length!=r)throw new w(ue);return o}return re}{const{data:n}=e;return n||await i(e,l),e.data.subarray(t,t+r)}}function Ne(e){const t=e.headers.get(fe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function _e({headers:e}){return{m:e.get("Etag")||Q,lastModified:e.get("Last-Modified")||Q}}function Pe(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=_e(t))}function Le(e,t){const{checkResourceChanges:n,S:s,size:i}=e;if(n){const e=Ne(t);if(e!==Q&&i!==Q&&e!=i)throw new w(we);if(s){const e=_e(t);if(r.entries(s).some(([t,r])=>r!==Q&&e[t]!==Q&&r!=e[t]))throw new w(we)}}}function We(e,t=0,n=1){return r.assign({},Ze(e),{[pe]:me+"="+(0>t?t:t+"-"+(t+n-1))})}function Ze({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Be(e){await He(e,qe)}async function Ve(e){await He(e,Ke)}async function He(e,t){const r=await t(he,e,Ze(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function je(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Ze(e)),i=n.headers.get("Content-Length");i&&!n.headers.get("Content-Encoding")?e.size=s(i):await r(e,e.options)}}async function qe(e,{fetch:t=fetch,options:n,url:s},i){const a=await t(s,r.assign({},n,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new w(ue):new w(le+(a.statusText||a.status))}function Ke(e,{url:t},n){return new g((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.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:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new w(ue):new w(le+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new w("Network error")),!1),a.open(e,t),n)for(const e of r.entries(n))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Ge extends be{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Ue(e,t):new Ce(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 Ye extends be{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)}}class Xe extends ze{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)}}class Je extends be{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>tt(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t.at(e);return n===Q?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,i=0,o=e;for(;n[i]&&o>=n[i].size;)o-=n[i].size,i++;const c=n[i];if(c){const n=c.size;if(o+t>n){const i=n-o;s=oe(await rt(c,o,i),await r.readUint8Array(e+i,t-i))}else s=await rt(c,o,t)}else s=re;return r.R=a.max(i,r.R),s}}class Qe extends Se{constructor(e,t=4294967295){super();const n=this;let s,i,a;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===xe)return void(a&&await d());const{availableSize:r}=n;if(a)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await tt(s),i=r.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await l())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}r.defineProperty(n,ge,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(xe)}finally{e.releaseLock()}}}class $e{constructor(e){return t.isArray(e)&&(e=new Je(e)),e instanceof E&&(e={readable:e}),e}}class et{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new Qe(e)),e instanceof D&&(e={writable:e}),e.size===Q&&(e.size=0),e}}async function tt(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function rt(e,t,r){return e.readUint8Array(t,r)}const nt=new c,st=new c;function it(e){return nt.get(e)}function at(e){return st.get(e)}const ot=[[],[],[],[],[],[],[],[]];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;ot[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=ot[t-1][e];ot[t][e]=r>>>8^ot[0][255&r]}const[ct,dt,lt,ut,wt,ft,pt,ht]=ot;class mt{constructor(e){this.v=e||-1}append(e){let t=0|this.v;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),i=r-8;for(;i>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=ht[255&e]^pt[e>>>8&255]^ft[e>>>16&255]^wt[e>>>24&255]^ut[255&r]^lt[r>>>8&255]^dt[r>>>16&255]^ct[r>>>24&255]}}for(;r>n;n++)t=t>>>8^ct[255&(t^e[n])];this.v=t}get(){return~this.v}}class yt extends R{constructor(){let e;const t=new mt;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 gt(e){if(typeof x==ee){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)}const xt={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=xt.T(r);return 32===n?e.concat(t):xt.C(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+xt.T(r)},I(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=xt.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,T:e=>a.round(e/1099511627776)||32,C(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,i=xt.T(s);return n.push(xt.O(t+i&31,t+i>32?r:n.pop(),1)),n}},St={bytes:{M(e){const t=xt.U(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},N(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(xt.O(8*(3&r),n)),t}}},bt=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=St.B.N(e));const r=t.W=xt.concat(t.W,e),n=t.Z,s=t.Z=n+xt.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const i=new h(r);let a=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(i.subarray(16*a,16*(a+1))),a+=1;return r.splice(0,16*a),t}H(){const e=this;let t=e.W;const r=e.L;t=xt.concat(t,[xt.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(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}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,i)+r.j(e,o,c,d)+l+s[e]+r.P[a.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=i,i=t}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},zt={importKey:e=>new zt.G(St.bytes.N(e)),Y(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 i,a,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=xt;for(t=St.bytes.N(t),d=1;(s||1)>f;d++){for(i=a=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)u.setInt32(f,i[o]),f+=4}return l.slice(0,n/8)},G:class{constructor(e){const t=this,r=t.X=bt,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Ft=typeof z!=ee&&typeof z.getRandomValues==te,Rt="Invalid password",Et="Invalid signature",Dt="zipjs-abort-check-password";function At(e){if(Ft)return z.getRandomValues(e);throw new w("Crypto API not supported")}const vt=16,Tt={name:"PBKDF2"},kt=r.assign({hash:{name:"HMAC"}},Tt),Ct=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Tt),Ut=["deriveBits"],It=[8,12,16],Ot=[16,24,32],Mt=10,Nt=[0,0,0,0],_t=typeof z!=ee,Pt=_t&&z.subtle,Lt=_t&&typeof Pt!=ee,Wt=St.bytes,Zt=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||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.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],i=[];let a,o,c,d;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=a=0;!r[l];l^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,r[l]=i,n[i]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[i]^16843008*i;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][i]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],i=this.te[t],a=i[0],o=i[1],c=i[2],d=i[3],l=i[4];let u,f,p,h=e[0]^r[0],m=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=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=a[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=a[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[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]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},Bt=class{constructor(e,t){this.se=e,this.ie=t,this.ae=t}reset(){this.ae=this.ie}update(e){return this.oe(this.se,e,this.ae)}ce(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}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=xt.U(t);for(let s=0;n>s;s+=4){this.de(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 xt.I(t,s)}},Vt=zt.G;let Ht=_t&&Lt&&typeof Pt.importKey==te,jt=_t&&Lt&&typeof Pt.deriveBits==te;class qt extends R{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:i,le:a,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await Xt(e,t,r,Qt(n,0,It[t])),i=Qt(n,It[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new w(Rt)})(r,i,s,Qt(e,0,It[i]+2)),e=Qt(e,It[i]+2),n?t.error(new w(Dt)):a()):await o;const c=new f(e.length-Mt-(e.length-Mt)%vt);t.enqueue(Yt(r,e,c,0,Mt,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;const i=Qt(n,0,n.length-Mt),a=Qt(n,n.length-Mt);let o=re;if(i.length){const e=er(Wt,i);r.update(e);const n=t.update(e);o=$t(Wt,n)}const c=Qt($t(Wt,r.digest()),0,Mt);let d=n.length<Mt?1:0;for(let e=0;Mt>e;e++)d|=c[e]^a[e];if(d)throw new w(Et);e.enqueue(o)}}})}}class Kt extends R{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,le:i,ready:a}=r;let o=re;n?(o=await(async(e,t,r)=>{const n=At(new f(It[t]));return oe(n,await Xt(e,t,r,n))})(r,s,n),i()):await a;const c=new f(o.length+e.length-e.length%vt);c.set(o,0),t.enqueue(Yt(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:s,ready:i}=this;if(r&&t){await i;let a=re;if(s.length){const e=t.update(er(Wt,s));r.update(e),a=$t(Wt,e)}n.signature=$t(Wt,r.digest()).slice(0,Mt),e.enqueue(oe(a,n.signature))}}}),n=this}}function Gt(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:Jt(t,n),strength:s-1,pending:re})}function Yt(e,t,r,n,s,i){const{ue:a,we:o,pending:c}=e;c.length&&(t=oe(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%vt)),l=0;d-vt>=l;l+=vt){const e=er(Wt,Qt(t,l,l+vt));i&&o.update(e);const s=a.update(e);i||o.update(s),r.set($t(Wt,s),l+n)}return e.pending=Qt(t,l),r}async function Xt(e,n,s,i){e.password=null;const a=await(async(e,t,r,n,s)=>{if(!Ht)return zt.importKey(t);try{return await Pt.importKey("raw",t,r,!1,s)}catch{return Ht=!1,zt.importKey(t)}})(0,s,kt,0,Ut),o=await(async(e,t,r)=>{if(!jt)return zt.Y(t,e.salt,Ct.iterations,r);try{return await Pt.deriveBits(e,t,r)}catch{return jt=!1,zt.Y(t,e.salt,Ct.iterations,r)}})(r.assign({salt:i},Ct),a,8*(2*Ot[n]+2)),c=new f(o),d=er(Wt,Qt(c,0,Ot[n])),l=er(Wt,Qt(c,Ot[n],2*Ot[n])),u=Qt(c,2*Ot[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new Bt(new Zt(d),t.from(Nt)),we:new Vt(l)}),u}function Jt(e,t){return t===Q?gt(e):t}function Qt(e,t,r){return e.subarray(t,r)}function $t(e,t){return e.M(t)}function er(e,t){return e.N(t)}class tr extends R{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){nr(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=sr(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(Rt);e=e.subarray(12)}n?t.error(new w(Dt)):t.enqueue(sr(r,e))}})}}class rr extends R{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){nr(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=At(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(ir(r,t),0),s=12}else n=new f(e.length),s=0;n.set(ir(r,e),s),t.enqueue(n)}})}}function nr(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,pe:new mt(s[0]),he:new mt(s[2])}),n)for(let t=0;t<n.length;t++)ar(e,n[t]);else for(let r=0;r<t.length;r++)ar(e,t.charCodeAt(r))})(e,t,n)}function sr(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=or(e)^t[n],ar(e,r[n]);return r}function ir(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=or(e)^t[n],ar(e,t[n]);return r}function ar(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=dr(a.imul(dr(r+cr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function or(e){const t=2|e.keys[2];return cr(a.imul(t,1^t)>>>8)}function cr(e){return 255&e}function dr(e){return 4294967295&e}const lr="Invalid uncompressed size",ur="Invalid compressed data";class wr extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:d,deflate64:l,format:u}=e,w=this;let f,p,h,y=super.readable;const g=u&&at(u),x=c&&s&&!l&&!g&&(!i||o)&&!(!a||!n);i&&!o||!c||x||(f=new yt,y=gr(y,f)),s&&(g?y=xr(y,mr(g.CompressionStream,u,{level:d,chunkSize:t})):x?(h=new fr,y=xr(y,new n("gzip")),y=gr(y,h)):y=yr(y,a,{level:d,chunkSize:t},n,r,n)),i&&(o?y=gr(y,new rr(e)):(p=new Kt(e),y=gr(y,p))),hr(w,y,()=>{let e;i&&!o&&(e=p.signature),i&&!o||!c||(e=x?h.signature:new m(f.value.buffer).getUint32(0)),w.signature=e})}}class fr extends R{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=a.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=oe(r,e));const i=s-8,o=a.min(i,r.length);n.enqueue(oe(r.subarray(0,o),e.subarray(0,i-o))),r=oe(r.subarray(o),e.subarray(i-o))},flush(){const t=de(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class pr extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:d,deflate64:l,format:u}=e;let f,p,h=super.readable;if(i&&(s?h=gr(h,new tr(e)):(p=new qt(e),h=gr(h,p))),c){const e=u&&at(u);h=e?xr(h,mr(e.DecompressionStream,u,{chunkSize:t})):yr(h,d,{chunkSize:t,deflate64:l},n,r,n),h=(e=>{const t=e.getReader();return new E({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(ur);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(h)}i&&!s||!a||(f=new yt,h=gr(h,f)),hr(this,h,()=>{if((!i||s)&&a){const e=new m(f.value.buffer);if(o!=e.getUint32(0,!1))throw new w(Et)}})}}function hr(e,t,n){t=gr(t,new R({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function mr(e,t,r){if(!e)throw new w("Compression method not supported");return new e(t,r)}function yr(e,t,r,n,s,i){const a=t&&n?n:s||i,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new a(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!i)throw e;c=new i(o,r)}}return xr(e,c)}function gr(e,t){return e.pipeThrough(t)}function xr(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 Sr="data",br="deflate",zr="inflate";class Fr extends R{constructor(e,t){super({});const n=this,{codecType:s}=e;let i;s.startsWith(br)?i=wr:s.startsWith(zr)&&(i=pr),n.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,d=new R({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:a})}}),l=new R({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==Q&&n.outputSize>e.outputSize))throw new w(lr)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:a})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class Rr extends R{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],i=e-s;r.length>i?(n.set(r.subarray(0,i),s),t[0]=r.subarray(i),s+=i):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,i){for(t.push(s),r+=s.length;r>e;)i.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"},Dr="error";let Ar,vr,Tr,kr,Cr=!0;try{Cr=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Q}catch{}class Ur{constructor(e,{readable:t,writable:n},{options:s,config:i,me:a,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=a;return r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new Rr(ae(i))).pipeThrough(new Ir(a),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.Se=t:(r.terminate(),t()),e.be=null):t()}),ze(){if(e.ye){const{Se:t}=e;t&&(e.Se=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,l(e)}}}),Ar===Q&&(Ar=typeof k!=ee),(o&&Ar?Nr:Mr)(e,i)}}class Ir extends R{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Or(e,r)},async transform(e,n){s+=e.length,t&&await Or(t,s,r),n.enqueue(e)},async flush(){n&&await Or(n,s)}})}}async function Or(e,...t){try{await e(...t)}catch{}}function Mr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,ze:n},s)=>{let i;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(br)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.Re||(e.useCompressionStream=!0)}i=new Fr(e,s),await t.pipeThrough(i).pipeThrough(new Rr(ae(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:a,outputSize:o}=i;return{signature:n,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{n()}})(e,t)}}function Nr(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:i}=t;if(!e.be){let a;typeof i==te&&(i=i());try{a=Pr(e.workerURI,n,e)}catch{return Ar=!1,Mr(e,t)}r.assign(e,{xe:a,Fe:!1,be:{run:()=>(async(e,t)=>{let n,s;const i=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,Ee:n,De:s,result:i});const{readable:a,options:o}=e,{writable:c,closed:d,Ae:l}=(e=>{const t=new AbortController,{writable:r,readable:n}=new R,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let u;try{u=Wr({type:"start",options:o,config:t,readable:a,writable:c},e)}catch(t){l();try{await d}catch{}throw e.ze(),t}u||r.assign(e,{reader:a.getReader(),writer:c.getWriter()});try{const e=await i;return await w(),await d,e}catch(e){await w(),l();try{await d}catch{}throw e}async function w(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:i,baseURI:n})}})}return e.be}function _r(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.be=null}function Pr(e,t,n,s,i=!0){let a,o,c;if(Tr===Q||vr!==e){const r=typeof e==te;o=r?e(i):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===Q&&(s=!1),s&&(c=Er);try{a=new k(o,c)}catch(i){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return Pr(e,t,n,s,!1);if(s)throw i;return Pr(e,t,n,!0,!1)}}else{s===Q&&(s=!0),s&&(c=Er);try{o=new u(o,t)}catch{}try{a=new k(o,c)}catch(r){if(s)throw r;return Pr(e,t,n,!1,i)}}vr=e,Tr=o,kr=c}else a=new k(Tr,kr);return a.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:d,Ee:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:i}=o,a=new w(e);r.assign(a,{stack:t,code:n,name:s,outputSize:i}),y(a)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Wr({type:Sr,value:e,done:r,messageId:i},t)}n==Sr&&(await d.ready,await d.write(new f(s)),m()||Wr({type:"ack",messageId:i},t)),"close"==n&&y(null,a)}}catch(o){m()||(_r(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)),a.addEventListener(Dr,e=>Lr(e,n)),a.addEventListener("messageerror",e=>Lr(e,n)),a}function Lr(e,t){e.preventDefault&&e.preventDefault();const{De:r,writer:n,ze:s}=t;_r(t),r&&(r(e.error||new w(e.message||Dr)),n&&n.releaseLock(),s())}function Wr(e,{xe:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:i}=e,a=[];if(r&&(e.value=ce(r),a.push(e.value.buffer)),n&&Cr?(s&&a.push(s),i&&a.push(i)):e.readable=e.writable=null,a.length)try{return t.postMessage(e,a),!0}catch{Cr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Zr=[];const Br=[];let Vr,Hr,jr=0;async function qr(e,t){const{options:r,config:n}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:d,encrypted:l,format:f,codecURI:p}=r,{workerURI:h,maxWorkers:m}=n;f&&(p&&(r.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(p,n.baseURI)),await(async(e,t)=>{!st.has(e)&&t&&((e,t)=>{const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=te&&typeof n!=te)throw new w("Invalid codec module");st.set(e,{CompressionStream:r,DecompressionStream:n})})(e,await(import(t)))})(f,r.codecURI)),t.transferStreams=i||i===Q&&n.transferStreams;const y=!c&&!d&&!l,x=f===Q||!!r.codecURI;return t.useWebWorkers=!y&&x&&(a||a===Q&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&h?h:Q,r.useCompressionStream=o||o===Q&&n.useCompressionStream,(await(async()=>{const r=Zr.find(e=>!e.ye);if(r)return Jr(r),new Ur(r,e,t,S);if(Zr.length<m){const r={ve:jr};return jr++,Zr.push(r),new Ur(r,e,t,S)}return new g(r=>{Br.push({resolve:r,stream:e,Te:t}),Hr=n.workerStarvationTimeout,Kr()})})()).run();function S(e){if(Gr(),Br.length){const[{resolve:t,stream:r,Te:n}]=Br.splice(0,1);t(new Ur(e,r,n,S)),Kr()}else e.xe?(Jr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.ke=setTimeout(async()=>{Zr=Zr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Zr=Zr.filter(t=>t!=e)}}function Kr(){!Vr&&Br.length&&s.isFinite(Hr)&&Hr>=0&&(Vr=setTimeout(Yr,Hr))}function Gr(){Vr&&(clearTimeout(Vr),Vr=null)}function Yr(){if(Vr=null,Br.length){const[{resolve:e,stream:t,Te:n}]=Br.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:Q});e(new Ur({},t,s,Xr)),Kr()}}function Xr(){Gr(),Kr()}function Jr(e){const{ke:t}=e;t&&(clearTimeout(t),e.ke=null)}const Qr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function $r(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=Qr[e[r]];return t}})(e):new S(t,{ignoreBOM:!0}).decode(e)}const en="filename",tn="rawFilename",rn="comment",nn="rawComment",sn="uncompressedSize",an="compressedSize",on="offset",cn="diskNumberStart",dn="lastModDate",ln="rawLastModDate",un="lastAccessDate",wn="creationDate",fn="rawCreationDate",pn="internalFileAttributes",hn="externalFileAttributes",mn="msdosAttributesRaw",yn="msdosAttributes",gn="msDosCompatible",xn="zip64",Sn="encrypted",bn="version",zn="versionMadeBy",Fn="zipCrypto",Rn="directory",En="executable",Dn="compressionMethod",An="signature",vn="extraField",Tn="unixMode",kn="setuid",Cn="setgid",Un="sticky",In=[en,tn,sn,an,dn,ln,rn,nn,un,wn,fn,on,cn,pn,hn,mn,yn,gn,xn,Sn,bn,zn,Fn,Rn,En,Dn,An,vn,"extraFieldUnix","extraFieldInfoZip","uid","gid",Tn,kn,Cn,Un,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class On{constructor(e){In.forEach(t=>this[t]=e[t])}}const Mn="password",Nn="rawPassword",_n="passThrough",Pn="signal",Ln="checkAmbiguity",Wn="useWebWorkers",Zn="useCompressionStream",Bn="transferStreams",Vn="preventClose",Hn="offset",jn="usdz",qn="strictness",Kn="strict",Gn="tolerant",Yn="File format is not recognized",Xn="End of central directory not found",Jn="End of Zip64 central directory locator not found",Qn="Central directory header not found",$n="Local file header not found",es="Zip64 extra field not found",ts="File contains encrypted entry",rs="Encryption method not supported",ns="Compression method not supported",ss="Split zip file",is="Overlapping entry found",as="Ambiguous archive",os="utf-8",cs="cp437",ds=[[sn,C],[an,C],[on,C],[cn,U]],ls={[U]:{Ce:Os,bytes:4},[C]:{Ce:Ms,bytes:8}};class us{constructor(e,t={}){r.assign(this,{reader:new $e(e),options:t,config:ie(),Ue:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await tt(n),n.size!==Q&&n.readUint8Array||(n=new Ae(await new l(n.readable).blob()),await tt(n)),n.size<Z)throw new w(Yn);const i=xs(Ts(t,e,qn),Ts(t,e,Ln)),o=i==Kn,c=i!=Gn,u=((e,t)=>e!==Q?e:t==Kn?0:t==Gn?1/0:U)(Ts(t,e,"maxAppendedDataSize"),i),{Ie:f,Oe:p}=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,65557),i={count:Ss};let o,c,d=0;for await(const[r,a,l,u,w]of Rs(e,s)){const s=Is(r,u+20);if(w+Z+s==n){const s=await Ds(e,r,a,u,w,n,i);if(s==Fs){if(o||(o=Es(l,u,w)),d++,!t||d>1)break}else s!=zs||c||(c=Es(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,t==1/0?n:65557+t);let i,o;for await(const[t,a,c,d,l]of Rs(e,s)){const s=Es(c,d,l);i||(i=s);const u=await Ds(e,t,a,d,l,n,r);if(u==Fs)return s;u!=zs||o||(o=s)}return o||i})(e,r,i)),{Ie:o,Oe:d}})(n,c,u);if(!f)throw Os(de(await rt(n,0,4)))==M?new w(ss):new w(Xn);c&&p>1&&vs("multiple end of central directory records");const h=de(f);let m=Os(h,12),y=Os(h,16);const x=f.offset,S=Is(h,20),b=x+Z+S;n.size-b>u&&vs("appended data");let z=Is(h,4);const F=n.R||0;let E,D,A=Is(h,6),v=Is(h,10),T=0;const k=y==C||m==C||v==U||A==U;if(y!=C&&A!=U&&(y+=gs(n,A)),k){const e=f.offset<B?re:await rt(n,f.offset-B,B),t=de(e);if(e.length==B&&Os(t,0)==W){y=gs(n,Os(t,4))+Ms(t,8);let e=await rt(n,y,56),r=de(e);const s=f.offset-B-56;if((56>e.length||Os(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await rt(n,y,56),r=de(e)}if(56>e.length||Os(r,0)!=L)throw new w(Jn);D=!0,z==U?z=Os(r,16):o&&z!=Os(r,16)&&vs("mismatched zip64 end of central directory record"),A==U?A=Os(r,20):o&&A!=Os(r,20)&&vs("mismatched zip64 end of central directory record"),v==U?v=Ms(r,32):o&&v!=Ms(r,32)&&vs("mismatched zip64 end of central directory record"),m==C?m=Ms(r,40):o&&m!=Ms(r,40)&&vs("mismatched zip64 end of central directory record"),y=gs(n,A)+Ms(r,48)+T}}const O=m,N=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(ss);if(0>y)throw new w(Yn);let P=0,V=await rt(n,y,m),H=de(V);if(m){if(4>V.length)throw new w(Yn);const e=N-m;if(y!=e&&A==z){let t=!(Os(H,P)==_);if(t||0>e||e+4>n.size||(t=Os(de(await rt(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(T+=y-t),V=await rt(n,y,m),H=de(V)}}}const Y=N-y;if(m==Y||0>Y||A!=z||(m=Y,V=await rt(n,y,m),H=de(V)),0>y||y>=n.size)throw new w(Yn);E=y;const X=Ts(t,e,"filenameEncoding"),J=Ts(t,e,"commentEncoding"),$=o?new d:Q;let ee;for(let i=0;v>i;i++){const c=new ws(n,s,t.options);if(P+46>V.length||Os(H,P)!=_)throw new w(Qn);fs(c,H,P+6);const d=!!c.bitFlag.languageEncodingFlag,u=P+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=Is(H,P+4),m=!(h>>8),y=h>>8==3,x=V.subarray(u,f),S=Is(H,P+32),b=p+S,z=V.subarray(p,b),F=d,D=d,A=Os(H,P+38),k=A&I,C={readOnly:!!(1&k),hidden:!!(2&k),system:!!(4&k),directory:!!(16&k),archive:!!(32&k)},O=Os(H,P+42),M=Ts(t,e,"decodeText")||$r,N=F?os:X||cs,L=D?os:J||cs;let W=M(x,N);W===Q&&(W=$r(x,N));let Z=M(z,L);Z===Q&&(Z=$r(z,L)),r.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Me:S,offset:O,diskNumberStart:Is(H,P+34),internalFileAttributes:Is(H,P+36),externalFileAttributes:A,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:V.subarray(f,p),rawComment:z,filename:W,comment:Z}),ps(c,c,H,P+6),c.offset+=T,E=a.min(gs(n,c.diskNumberStart)+c.offset,E),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const B=c.externalFileAttributes>>16&U;c.unixMode===Q&&16877&B&&(c.unixMode=B);const Y=!!(c.unixMode&q),te=!!(c.unixMode&K),re=!!(512&c.unixMode),ne=c.unixMode!==Q?!!(73&c.unixMode):y&&!!(73&B),se=c.unixMode!==Q&&(61440&c.unixMode)==j,ie=(61440&B)==j;r.assign(c,{setuid:Y,setgid:te,sticky:re,unixExternalUpper:B,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ie||m&&C.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ae=new On(c);ae.getData=(e,r)=>c.getData(e,ae,t.Ue,r),ae.arrayBuffer=async e=>{const r=new R,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,ae,t.Ue,e)]);return n},P=b;const{onprogress:oe}=e;if(oe)try{await oe(i+1,v,new On(c))}catch{}yield ae}o&&P!=O&&vs("trailing central directory data"),ee&&vs("duplicate filename"),o&&(T||v&&E>0)&&vs("prepended data");const te=Ts(t,e,"extractPrependedData"),ne=Ts(t,e,"extractAppendedData");return te&&(t.prependedData=E>0?await rt(n,0,E):re),t.comment=S?await rt(n,x+Z,S):re,ne&&(t.appendedData=b<n.size?await rt(n,b,n.size-b):re),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let ws=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:x}=p,S=t.localDirectory={},b=gs(i,c)+o,z=await rt(i,b,Y),F=de(z);let R=Ts(s,n,Mn),E=Ts(s,n,Nn);const A=Ts(s,n,_n);if(R=R&&R.length&&R,E=E&&E.length&&E,d&&99!=d.originalCompressionMethod)throw new w(ns);const v=A?Q:it(u);if(0!=u&&8!=u&&9!=u&&!v&&!A)throw new w(ns);if(z.length<Y||Os(F,0)!=O)throw new w($n);fs(S,F,4);const{extraFieldLength:T,filenameLength:k}=S,C=xs(Ts(s,n,qn),Ts(s,n,Ln))==Kn;let U=re;if(C&&(k||T)){const e=await rt(i,b+Y,k+T);U=e.subarray(0,k),S.rawExtraField=e.subarray(k)}else S.rawExtraField=T?await rt(i,b+Y+k,T):re;ps(s,S,F,4,!0),C&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&vs("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&vs("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&vs("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||vs("mismatched local file header (signature or sizes)")})(s,S,U);const{lastAccessDate:M,creationDate:_}=S;M&&(t.lastAccessDate=M),_&&(t.creationDate=_);const P=s.encrypted&&S.encrypted&&!A,L=P&&!d;if(A||(t.zipCrypto=L),P){if(!L&&(1>d.strength||d.strength>3))throw new w(rs);if(!R&&!E)throw new w(ts)}const W=b+Y+k+T,Z=g,B=i.createReadable({offset:W,size:Z}),V=Ts(s,n,Pn),H=Ts(s,n,"checkPasswordOnly");let j=Ts(s,n,"checkOverlappingEntry");const q=Ts(s,n,"checkOverlappingEntryOnly");q&&(j=!0);const{onstart:K,onprogress:G,onend:X}=n,J=9==u;let $=Ts(s,n,Zn);J&&($=!1);const ee={options:{codecType:zr,password:R,rawPassword:E,zipCrypto:L,encryptionStrength:d&&d.strength,signed:Ts(s,n,"checkSignature")&&!A,passwordVerification:L&&(x?m>>>8&I:h>>>24&I),outputSize:A?g:y,signature:h,compressed:0!=u&&!A,encrypted:P,useWebWorkers:Ts(s,n,Wn),useCompressionStream:$,transferStreams:Ts(s,n,Bn),deflate64:J,format:v?v.format:Q,codecURI:v?v.codecURI:Q,checkPasswordOnly:H},config:f,me:{signal:V,size:Z,onstart:K,onprogress:G,onend:X}};let te;j&&await(async({reader:e,Ne:t,index:r,offset:n,signature:s,compressedSize:i,uncompressedSize:a,_e:o,dataDescriptor:c,extraFieldZip64:d,Ue:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await rt(e,o+i,u+4);if(r.length==u+4&&Os(de(r),0)==N){const e=Os(de(r),4);let n,o;d?(n=Ms(de(r),8),o=Ms(de(r),16)):(n=Os(de(r),8),o=Os(de(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==i&&o==a&&(u+=4)}}const f={start:n,end:o+i+u,Ne:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w(is);throw e.Pe=t.Ne,e}l.set(r,f)})({reader:i,Ne:t,index:a,offset:b,signature:h,compressedSize:g,uncompressedSize:y,_e:W,dataDescriptor:x||S.bitFlag.dataDescriptor,extraFieldZip64:l||S.extraFieldZip64,Ue:r});try{if(!q){H&&(e=new D),e=new et(e),await tt(e,A?g:y),({writable:te}=e);const{outputSize:t}=await qr({readable:B,writable:te},ee);if(e.size+=t,t!=(A?g:y))throw new w(lr)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!H||t.message!=Dt)throw t}finally{Ts(s,n,Vn)||!te||te.locked||await te.getWriter().close()}return H||q?Q:e.getData?e.getData():te}};function fs(e,t,n){const s=e.rawBitFlag=Is(t,n+2),i=!(1&~s),a=Os(t,n+6);r.assign(e,{encrypted:i,version:Is(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&H)==H},rawLastModDate:a,lastModDate:ks(a),filenameLength:Is(t,n+22),extraFieldLength:Is(t,n+24)})}function ps(e,t,n,s,i){const{rawExtraField:a}=t,d=t.extraField=new c,l=de(a);let u=0;try{for(;u<a.length;){const e=Is(l,u),t=Is(l,u+2);d.set(e,{type:e,data:a.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=Is(n,s+4);r.assign(t,{signature:Os(n,s+10),compressedSize:Os(n,s+14),uncompressedSize:Os(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=de(e.data),n=ds.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+ls[t].bytes,0);if(e.data.length<s)throw new w(es);for(let s=0,i=0;s<n.length;s++){const[a,o]=n[s],c=ls[o];t[a]=e[a]=c.Ce(r,i),i+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(hs(h,en,tn,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(hs(m,rn,nn,t,e),t.extraFieldUnicodeComment=m);const y=d.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=de(e.data),i=Us(s,4);r.assign(e,{Le:Us(s,0),vendorId:Us(s,2),strength:i,originalCompressionMethod:n,compressionMethod:Is(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(10);g&&(((e,t)=>{const n=de(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=Is(n,i),r=Is(n,i+2);1==t&&(s=e.data.slice(i+4,i+4+r)),i+=4+r}}catch{}try{if(s&&24==s.length){const n=de(s),i=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:Cs(i),lastAccessDate:Cs(a),creationDate:Cs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=d.get(30805);if(x)ms(x,t,!1),t.extraFieldUnix=x;else{const e=d.get(30837);e&&(ms(e,t,!0),t.extraFieldInfoZip=e)}const S=d.get(V);S&&(((e,t,r)=>{if(!e.data.length)return;const n=de(e.data),s=Us(n,0),i=[],a=[];r?(1&~s||(i.push(dn),a.push(ln)),2&~s||(i.push(un),a.push("rawLastAccessDate")),4&~s||(i.push(wn),a.push(fn))):5>e.data.length||(i.push(dn),a.push(ln));let c=1;i.forEach((r,s)=>{if(e.data.length>=c+4){const i=Os(n,c);t[r]=e[r]=new o(1e3*(0|i));const d=a[s];e[d]=i}c+=4})})(S,t,i),t.extraFieldExtendedTimestamp=S);const b=d.get(6534);b&&(t.extraFieldUSDZ=b)}function hs(e,t,n,s,i){if(5>e.data.length)return void(e.valid=!1);const a=de(e.data),o=new mt;o.append(i[n]);const c=de(new f(4));c.setUint32(0,o.get(),!0);const d=Os(a,1);r.assign(e,{version:Us(a,0),[t]:$r(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&d==Os(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function ms(e,t,n){try{const s=de(e.data);let i,a;if(n){let t=0;const n=Us(s,t++),o=Us(s,t++);i=ys(e.data.subarray(t,t+o)),t+=o;const c=Us(s,t++);a=ys(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:i,gid:a})}else 4>e.data.length||(i=Is(s,0),a=Is(s,2),r.assign(e,{uid:i,gid:a}));i!==Q&&(t.uid=i),a!==Q&&(t.gid=a)}catch{}}function ys(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function gs(e,t){return e.A?e.A(t):0}function xs(e,t){return e===Q?t?Kn:"balanced":e}const Ss=64,bs=0,zs=1,Fs=2;async function*Rs(e,t){const r=e.size-t,n=await rt(e,r,t),s=de(n);for(let e=n.length-Z;e>=0;e--)Os(s,e)==P&&(yield[s,r,n,e,r+e])}function Es(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function Ds(e,t,r,n,s,i,a){const o=Is(t,n+10),c=Os(t,n+12),d=Os(t,n+16);if(o==U||c==C||d==C)return await As(e,t,r,s-B,i,a)==W?Fs:bs;if(!o&&!c)return zs;const l=Is(t,n+6);for(const n of[s-c,gs(e,l)+d])if(await As(e,t,r,n,i,a)==_)return Fs;return bs}async function As(e,t,r,n,s,i){return 0>n||n+4>s?Q:r>n?i.count>0?(i.count--,Os(de(await rt(e,n,4)),0)):Q:Os(t,n-r)}function vs(e){const t=new w(as);throw t.reason=e,t}function Ts(e,t,r){return t[r]===Q?e.options[r]:t[r]}function ks(e){const t=(4294901760&e)>>16,r=e&U;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 Cs(e){return new o(s(e/i(1e4)-i(116444736e5)))}function Us(e,t){return e.getUint8(t)}function Is(e,t){return e.getUint16(t,!0)}function Os(e,t){return e.getUint32(t,!0)}function Ms(e,t){return s(e.getBigUint64(t,!0))}var Ns=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:as,ERR_BAD_FORMAT:Yn,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Qn,ERR_ENCRYPTED:ts,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Jn,ERR_EOCDR_NOT_FOUND:Xn,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:es,ERR_INVALID_COMPRESSED_DATA:ur,ERR_INVALID_PASSWORD:Rt,ERR_INVALID_SIGNATURE:Et,ERR_INVALID_UNCOMPRESSED_SIZE:lr,ERR_LOCAL_FILE_HEADER_NOT_FOUND:$n,ERR_OVERLAPPING_ENTRY:is,ERR_SPLIT_ZIP_FILE:ss,ERR_UNSUPPORTED_COMPRESSION:ns,ERR_UNSUPPORTED_ENCRYPTION:rs,ZipReader:us});const _s="Zip file comment exceeds 64KB",Ps="Version exceeds 65535",Ls="Extra field data exceeds 64KB",Ws=-2147483648,Zs=2147483647,Bs="Zip64 is not supported (set the 'zip64' option to 'true')",Vs=new f([7,0,2,0,65,69,3,0,0]),Hs="infozip",js="unix";let qs=0;const Ks=[];class Gs{constructor(e,t={}){e=new et(e);const{availableSize:n=$,maxSize:s=$}=e,i=n>0&&n!==$&&s>0&&s!==$;r.assign(this,{writer:e,We:i,options:t,config:ie(),files:new c,Ze:new d,offset:t[Hn]===Q?e.size||e.writable.size||0:t[Hn],Be:t[Hn]===Q?0:t[Hn]-(e.size||e.writable.size||0),Ve:new d,He:0,je:Q})}async prependZip(e){if(this.Ze.size)throw new w("Zip file not empty");e=new $e(e),await tt(e);const{ZipReader:t}=await g.resolve().then(()=>Ns),n=new t(e.readable),s=await n.getEntries();await n.close(),await tt(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ze=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:S,dataDescriptor:b}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,g=g||re,e.extraFieldAES&&(w=99);const z=fi(f,p,h,m,y,g),F=u&&d>=C,R=u&&l>=C,E=-7&hi(x,S,b,c,w)|x<<1,{Je:D,Qe:A}=pi({version:t,bitFlag:E,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:a,$e:R,et:F,extraFieldLength:z}),{signature:v}=e;return v!==Q&&li(A,10,v),r.assign(e,{et:F,$e:R,nt:u&&e.offset>=C,diskNumberStart:0,st:!1,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,it:1+(s?2:0)+(i?4:0),Je:D,Qe:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ve:a,config:c}=s;let d,l;qs<c.maxWorkers?qs++:await new g(e=>Ks.push(e));try{if(e=e.trim(),oi(s,n,Rn)&&!e.endsWith(G)&&(e+=G),s.Ze.has(e))throw new w("File already exists");return s.Ze.add(e),l=!0,d=(async(e,t,n,s)=>{const a=((e,t,r)=>{t=t.trim();let n=oi(e,r,gn),s=oi(e,r,zn,n?20:768);const i=oi(e,r,En),a=oi(e,r,"uid"),o=oi(e,r,"gid");let c=oi(e,r,Tn),d=oi(e,r,"unixExtraFieldType"),l=oi(e,r,kn),u=oi(e,r,Cn),f=oi(e,r,Un);if(a!==Q&&(0>a||a>C))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==Q&&(0>o||o>C))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==Q&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==Q&&d!==Hs&&d!==js)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===js&&(a!==Q&&a>U||o!==Q&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==Q||a===Q&&o===Q||(d=Hs);let p=oi(e,r,mn),h=oi(e,r,yn);const m=p!==Q||h!==Q;if(a!==Q||o!==Q||c!==Q||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==Q&&(0>p||p>I))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>U)throw new w(Ps);let y=oi(e,r,hn,0);!r[Rn]&&t.endsWith(G)&&(r[Rn]=!0);const g=oi(e,r,Rn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=i?493<<16:27525120),n||(x=y>>16&U,c=c===Q?x:c&U,l?c|=q:l=!!(c&q),u?c|=K:u=!!(c&K),f?c|=512:f=!!(512&c),g&&(c|=j),y=(c&U)<<16|y&I),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==Q)e&=I;else if(t!==Q){const{readOnly:r,hidden:n,system:s,directory:i,archive:a}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&I}return t===Q&&(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&C|p&I),{name:t,ot:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:a,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=a);const c=((e,t,r)=>{const n=oi(e,r,"encodeText",gt);let s=n(t);if(s===Q&&(s=gt(t)),fi(s)>U)throw new w("File entry name exceeds 64KB");const i=r[rn]||"";let a=n(i);if(a===Q&&(a=gt(i)),fi(a)>U)throw new w("File entry comment exceeds 64KB");const c=oi(e,r,bn,20);if(c>U)throw new w(Ps);const d=oi(e,r,dn,new o),l=oi(e,r,un),u=oi(e,r,wn),p=oi(e,r,pn,0),h=oi(e,r,_n);let m,y;h||(m=oi(e,r,Mn),y=oi(e,r,Nn));const g=oi(e,r,"encryptionStrength",3),x=oi(e,r,Fn),S=oi(e,r,"extendedTimestamp",!0),b=oi(e,r,"ntfsTimestamp"),z=oi(e,r,"keepOrder",!0),F=oi(e,r,Wn),R=oi(e,r,Bn),E=oi(e,r,"bufferedWrite"),D=oi(e,r,"createTempStream"),A=oi(e,r,"dataDescriptorSignature",!0),v=oi(e,r,Pn),T=oi(e,r,"useUnicodeFileNames",!0),k=oi(e,r,Dn),C=h||k===Q?Q:it(k);if(!h&&k!==Q&&0!==k&&8!==k&&!C)throw new w("Compression method not supported");let I=oi(e,r,"level");if(e.options[jn]){if(m!==Q||y!==Q)throw new w("Encryption is not supported in USDZ files");I===Q&&k===Q&&(I=0)}let O=oi(e,r,Zn),M=oi(e,r,"dataDescriptor");E&&M===Q&&(M=!1),(M===Q||x)&&(M=!0),I!==Q&&6!=I&&(O=!1),O||C||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(I=0);const N=oi(e,r,xn);if(!x&&(m!==Q||y!==Q)&&(1>g||g>3))throw new w("The strength must equal 1, 2, or 3");let _=re;const P=r[vn];if(P){let e=0,t=0;P.forEach(t=>e+=4+fi(t)),_=new f(e);const r=de(_);P.forEach((e,n)=>{if(n>U)throw new w("Extra field type exceeds 65535");if(fi(e)>U)throw new w(Ls);di(r,t,n),di(r,t+2,fi(e)),wi(_,e,t+4),t+=4+fi(e)})}return{comment:i,ot:{rawFilename:s,rawComment:a,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:S,ntfsTimestamp:b,keepOrder:z,useWebWorkers:F,transferStreams:R,bufferedWrite:E,createTempStream:D,dataDescriptorSignature:A,signal:v,useUnicodeFileNames:T,compressionMethod:k,format:C?C.format:Q,codecURI:C?C.codecURI:Q,ct:C?C.versionNeeded:Q,level:I,useCompressionStream:O,dataDescriptor:M,zip64:N,rawExtraField:_}}})(e,t,s),{comment:d}=c,l=s[vn];let u;e.files.set(t,Q);try{const o=await(async(e,t,{ot:r},n)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[sn],h===Q)throw new w("Undefined uncompressed size")}const m=!0===l,y=oi(e,n,Sn),g=!!t&&(!!(a&&fi(a)||o&&fi(o))||s&&y);t||(u=0,f=0);const x=g?i?12:16+4*c:0;t&&(t=new $e(t),await tt(t),s?(n.uncompressedSize=h,p=ci(h)+x):t.size===Q?(d=!0,(l||l===Q)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=ci(h)+x));const S=m||h>=C,b=m||p>=C;if(S||b){if(!1===l)throw new w(Bs);l=!0}return l=l||!1,{reader:t,ot:{dataDescriptor:d,zip64:l,et:S,$e:b,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const d=$s(e.writer),l=Qs(e.writer),p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:i,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:d,directory:l,rawExtraField:u,encryptionStrength:f,extendedTimestamp:p,ntfsTimestamp:h,passThrough:m,encrypted:y,et:g,$e:x,uncompressedSize:S}=e;let{version:b,compressionMethod:z}=e;const F=!l&&(z===Q?i===Q||i>0:0!==z);let R;const E=m||!F,D=a&&(e.bufferedWrite||!d||!g&&!x||E),A=D||a&&d&&(g||x);if(a&&(g||x)){const e=20,t=Js(e);if(t.uint16(1),t.uint16(e-4),R=t.array,D&&(t.lt(S),E)){const e=y?o?12:16+4*f:0;t.lt(m?0:S+e)}}else R=re;let v,T,k,C,I;if(y&&!o){const e=Js(fi(Vs)+2);e.uint16(39169),e.bytes(Vs),v=e.array,v[8]=f}else v=re;if(p){const e=si(r),t=ii(e);if(t){const t=9+(n?4:0)+(s?4:0),r=Js(t);C=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(C),r.uint32(e),n&&r.uint32(ai(si(n))),s&&r.uint32(ai(si(s))),k=r.array}else k=re;if(h===Q?!t||n||s:h)try{const e=ni(r),t=Js(36);t.uint16(10),t.uint16(32),t.ut(4),t.uint16(1),t.uint16(24),t.lt(e),t.lt(ni(n)||e),t.lt(ni(s)||e),T=t.array}catch{T=re}else T=re}else T=k=re;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=Hs||t===Q&&r===Q)if(n!=js||t===Q&&r===Q)I=re;else{const e=Js(8);e.uint16(30805),e.uint16(4),e.uint16((t===Q?0:t)&U),e.uint16((r===Q?0:r)&U),I=e.array}else{const e=Xs(t),n=Xs(r),s=3+e.length+n.length,i=Js(4+s);i.uint16(30837),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(n.length),i.bytes(n),I=i.array}}catch{I=re}z===Q&&(z=F?8:0);const{ct:M}=e;F&&M!==Q&&(b=b>M?b:M),a&&(b=b>45?b:45),y&&!o&&(b=b>51?b:51,v[9]=z,z=99);const N=A?fi(R):0,_=N+fi(v,k,T,I,u);if(_>U)throw new w(Ls);const{Je:P,Qe:L,rawLastModDate:W}=pi({version:b,bitFlag:hi(i,c,d,y,z),compressionMethod:z,uncompressedSize:S,lastModDate:J>r?J:r>X?X:r,rawFilename:t,$e:x,et:g,extraFieldLength:_}),Z=Js(Y+fi(t)+_),B=Z.array,H=de(B);return Z.uint32(O),Z.bytes(P),Z.bytes(t),A&&Z.bytes(R),Z.bytes(v),Z.bytes(k),Z.bytes(T),Z.bytes(I),Z.bytes(u),d&&(x||li(H,18,0),g||li(H,22,0)),{wt:B,ft:H,Je:P,Qe:L,lastModDate:r,rawLastModDate:W,encrypted:y,compressed:F,version:b,compressionMethod:z,it:C,qe:re,ht:N,Ge:k,Ye:T,Xe:I,Ke:v,extraFieldLength:_}})(s=r.assign({},s,a.ot,c.ot,o.ot,{internalFileAttribute:c.ot.internalFileAttributes,externalFileAttribute:a.ot.externalFileAttributes,signature:s[An],offset:e.offset-d,diskNumberStart:l})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=re,i=0,a=e?20:12;return r&&(a+=4),t&&(s=new f(a),n=de(s),r&&(i=4,li(n,0,N))),{yt:s,gt:n,xt:i}})(s),m=fi(p.wt,h.yt);u=await(async(e,t,n,s,a)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=a,{St:p}=s,h=e.options[jn],m=e.je;let y,x,S,b,z,F,E,A={},v=0;o.set(t,A),e.je=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>S=e)),a.bufferedWrite||!d||e.bt||e.He||!l?(y=!0,e.He++,E=a.createTempStream?await a.createTempStream():new R(Q,Q,{highWaterMark:$}),E.size=0,await tt(c)):(E=c,await T()),await tt(E);const U=$s(c);if(e.We){delete e.We;const t=new f(4);li(de(t),0,M),await ri(c,t),e.offset+=4}h&&!y&&Ys(s,e.offset-U);const{wt:O}=p;y||(await x,await k());const N=Qs(c),_=ti(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await ri(E,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},a,o,c)=>{const{St:d,zt:l,Ft:u}=a,{Je:f,Qe:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:S,qe:b,ht:z,Ge:F,it:R,Ye:E,Xe:D,Ke:A}=d,{yt:v}=l,{rawFilename:T,lastAccessDate:k,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,et:P,$e:L,zipCrypto:W,dataDescriptor:Z,directory:B,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:G,onstart:Y,onprogress:X,onend:J,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,ge={lock:s,versionMadeBy:H,zip64:_,directory:!!B,executable:!!V,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:j,qe:b,ht:z,Ge:F,Ye:E,Xe:D,Ke:A,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{signature:xe,uncompressedSize:Se}=c,be=0;he||(Se=0);const{writable:ze}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:br,level:N,rawPassword:M,password:O,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:G,format:me,codecURI:ye},config:o,me:{signal:$,size:n,onstart:Y,onprogress:X,onend:J}};try{const e=await qr({readable:r,writable:ze},s);if(be=e.outputSize,t.size+=be,he||(Se=e.inputSize,xe=e.signature),!L&&be>=C||!P&&Se>=C)throw new w(Bs)}catch(e){throw e.outputSize!==Q&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,St:n,zt:s},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{Qe:d,encrypted:l}=n,{gt:u,xt:w}=s;l&&!o||e===Q||(li(d,10,e),c&&li(u,w,e)),a?c&&(ui(u,w+4,i(t)),ui(u,w+12,i(r))):(li(d,14,t),li(d,18,r),c&&(li(u,w+4,t),li(u,w+8,r)))})({signature:xe,compressedSize:be,uncompressedSize:Se,St:d,zt:l},c),Z&&await ri(t,v),r.assign(ge,{uncompressedSize:Se,compressedSize:be,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:k,encrypted:y,zipCrypto:W,size:u+be,compressionMethod:S,version:x,Je:f,Qe:p,signature:xe,it:R,et:P,$e:L}),ge})(n,E,A,s,e.config,a),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([E.writable.getWriter().close(),x]),await T(),b=!0,F=c.size,await k(),A.diskNumberStart=Qs(c),A.offset=ti(e,c),h){const t=s.Ft;Ys(s,e.offset-$s(c)),A.size+=s.Ft-t}(({rawFilename:e,encrypted:t,zip64:r,ht:n,signature:s,compressedSize:a,uncompressedSize:o,et:c,$e:d},l,{dataDescriptor:u})=>{if(u||(t||li(l,14,s),d||li(l,18,a),c||li(l,22,o)),r&&n){const t=Y+fi(e)+4;ui(l,t,i(o)),ui(l,t+8,i(a))}})(A,p.ft,a),await ri(c,p.wt),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=fi(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(E.readable,c,u),c.size+=E.size,b=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(b||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=v)}throw o.delete(t),r}finally{if(y&&e.He--,S&&S(),x&&x(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function T(){e.bt=!0;const{Rt:t}=e;e.Rt=new g(t=>x=()=>{e.bt=!1,t()}),await t}async function k(){ei(c,fi(p.wt))&&await c.closeDisk()}})(e,t,n,{St:p,zt:h,Ft:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:d,extraField:l}),new On(u)})(s,e,t,n),a.add(d),await d}catch(t){throw l&&s.Ze.delete(e),t}finally{a.delete(d);const e=Ks.shift();e?e():qs--}}remove(e){const{Ze:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=re,r={}){const{Ve:n,writer:s}=this,{writable:a}=s;if(fi(e)>U)throw new w(_s);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,Ke:n,rawComment:s,Ye:i,Xe:a,rawExtraField:o,extendedTimestamp:c,it:d,lastModDate:l,et:u,$e:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=C,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Js(e);t.uint16(1),t.uint16(e-4),u&&t.lt(p),f&&t.lt(h),m&&t.lt(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=re;r.qe=g,r.nt=m,r.st=y;const S=si(l);if(c&&ii(S)){const e=Js(9);e.uint16(V),e.uint16(5),e.uint8(d),e.uint32(S),x=e.array}else x=re;r.Ge=x;const b=fi(g,n,i,a,x,o);if(b>U)throw new w(Ls);t+=46+fi(e,s)+b}return t})(e.files),a=await(async(e,r,n)=>{const{files:s,writer:i}=e,a=new f(r);await tt(i);let o=0,c=0,d=Qs(i),l=$s(i);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,qe:w,Ke:f,Ge:p,Ye:h,Xe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,Je:S,Qe:b,et:z,$e:F,st:R,nt:E,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:k}=r,I=fi(w,f,p,h,m,y),O=46+fi(u,g)+I;ei(i,o+O-c)&&(await ri(i,a.slice(c,o)),c=o,await i.closeDisk()),0==e&&(d=Qs(i),l=$s(i)),z||li(b,18,T),F||li(b,14,k),(E||R)&&45>r.version&&di(b,0,45);const M=Js(O);if(M.uint32(_),M.uint16(x),M.bytes(S.subarray(0,24)),M.uint16(I),M.uint16(fi(g)),M.uint16(R?U:v),M.uint16(D),M.uint32(A),M.uint32(E?C:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),wi(a,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new On(r))}catch{}}return await ri(i,c?a.slice(c):a),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Et:a}=n;let{Dt:o}=n,c=e.files.size,d=a.diskNumber,l=ti(e,a),u=Qs(s);ei(s,Z)&&u++;let f=oi(e,r,xn);if(!(C>l&&C>o&&U>c&&U>u)){if(!1===f)throw new w(Bs);f=!0}const p=fi(t);if(p>U)throw new w(_s);const h=Js(f?98:Z);ei(s,fi(h.array)+p)&&await s.closeDisk(),u=Qs(s),f&&(h.uint32(L),h.lt(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.lt(c),h.lt(c),h.lt(o),h.lt(l),h.uint32(W),h.uint32(u),h.lt(i(ti(e,s))+i(o)),h.uint32(u+1),oi(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=C,o=C),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await ri(s,h.array),p&&await ri(s,t)})(e,r,n,{Et:a,Dt:s})})(this,e,r),oi(this,r,Vn)||await a.getWriter().close(),s.getData?s.getData():a}}function Ys(e,t){const{St:r}=e;let{wt:n,extraFieldLength:s}=r,i=64-(t+fi(n))%64;4>i&&(i+=64);const a=new f(i),o=de(a);di(o,0,6534),di(o,2,i-4);const c=n;r.wt=n=new f(fi(c)+i),wi(n,c),wi(n,a,fi(c));const d=de(n);di(d,28,s+i),r.ft=d,e.Ft+=i}function Xs(e){if(e===Q)return re;{const t=new f(4);de(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Js(e){const t=new f(e),r=de(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{di(r,n,e),n+=2},uint32:e=>{li(r,n,e),n+=4},lt:e=>{ui(r,n,i(e)),n+=8},bytes:e=>{wi(t,e,n),n+=fi(e)},ut:e=>n+=e}}function Qs(e){const{diskNumber:t=0}=e;return t}function $s(e){const{diskOffset:t=0}=e;return t}function ei(e,t){const{availableSize:r=$}=e;return t>r}function ti(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.Be:0)}async function ri(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=fi(t),await n.write(t)}finally{n.releaseLock()}}function ni(e){if(e)return(i(e.getTime())+i(116444736e5))*i(1e4)}function si(e){return a.floor(e.getTime()/1e3)}function ii(e){return e>=Ws&&Zs>=e}function ai(e){return a.min(Zs,a.max(Ws,e))}function oi(e,t,r,n){const s=t[r]===Q?e.options[r]:t[r];return s===Q?n:s}function ci(e){return e+5*(a.floor(e/16383)+1)}function di(e,t,r){e.setUint16(t,r,!0)}function li(e,t,r){e.setUint32(t,r,!0)}function ui(e,t,r){e.setBigUint64(t,r,!0)}function wi(e,t,r){e.set(t,r)}function fi(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function pi({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,$e:c,et:d,extraFieldLength:l}){const u=Js(26),w=u.array,f=de(w);if(u.uint16(e),u.uint16(t),u.uint16(r),a===Q){const e=new h(1),t=de(e);di(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),di(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return u.uint32(a),u.ut(4),c||s!==Q?u.uint32(c?C:s):u.ut(4),d||n!==Q?u.uint32(d?C:n):u.ut(4),u.uint16(fi(o)),u.uint16(l),{Je:w,Qe:f,rawLastModDate:a}}function hi(e,t,r,n,s){let i=0;return t&&(i|=H),r&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),n&&(i|=1),i}const mi="Entry filename already exists";class yi{constructor(e,t,n,s){const i=this;if(e.root&&s&&s.getChildByName(t))throw new w(mi);n||(n={}),r.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.At++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[i.id]=i),s&&i.parent.children.push(i)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new w(mi);this.name=e}}class gi extends yi{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new gi(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=Ri(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([tt(n),tt(e,s)]);const{readable:i}=n;return r.uncompressedSize=n.size,await i.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==Rt)return!1;throw e}}getText(e,t){return this.getData(new ke(e),t)}getBlob(e,t){return this.getData(new ve(e),t)}getData64URI(e,t){return this.getData(new Re(e),t)}getUint8Array(e){return this.getData(new Xe,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return ce(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:Ae,Writer:ve,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Te,Writer:ke,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:Fe,Writer:Re,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Ye,Writer:Xe,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:zi(e),Writer:null,reader:null})}}class xi extends yi{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new xi(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return ki(this,e,{options:t},!0)}addText(e,t,r={}){return ki(this,e,{data:t,Reader:Te,Writer:ke,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return ki(this,e,{data:t,Reader:Ae,Writer:ve,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return ki(this,e,{data:t,Reader:Fe,Writer:Re,options:r,uncompressedSize:a.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return ki(this,e,{data:t,Reader:Ye,Writer:Xe,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return ki(this,e,{data:t,Reader:class extends Ge{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return ki(this,e,{Reader:zi(t),options:r})}addFileSystemEntry(e,t={}){return Ai(this,e,t)}addFileSystemHandle(e,t={}){return Ai(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),ki(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}vt(e,t){return ki(this,e,t)}importBlob(e,t){return this.importZip(new Ae(e),t)}importData64URI(e,t){return this.importZip(new Fe(e),t)}importUint8Array(e,t){return this.importZip(new Ye(e),t)}importHttpContent(e,t){return this.importZip(new Ge(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new ve(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Re(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Xe,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const i=bi([e],"uncompressedSize"),a=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){a.set(e.id,r);try{await s.onprogress(t.from(a.values()).reduce((e,t)=>e+t,0),i)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await tt(e);const n=new us(e,t),s=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),a=i.pop();if(i.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(mi)}else n=new xi(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(a)if(t=n.getChildByName(a),t){if(!t.directory)throw new w(mi)}else t=new xi(this.fs,a,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(ki(n,a,{data:e,Reader:Fi(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===Q&&(n.bufferedWrite=!0);const[i]=await g.all([Ei(s,n.readerOptions),tt(e)]),a=new Gs(e,n);return await(async(e,n,s,i,a)=>{const o=n,d=new c;await async function e(n,c){async function l(c){const l=i.relativePath?c.getRelativeName(o):c.getFullname(),u=c.options||{};let w={};if(c.data instanceof On){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a,uncompressedSize:o,encrypted:d,zipCrypto:l,signature:u,compressionMethod:f,extraFieldAES:p}=c.data;if(w={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a},c.passThrough){let e,t;0===f&&(e=0),p&&(t=p.strength),w=r.assign(w,{passThrough:!0,encrypted:d,zipCrypto:l,signature:u,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await n.add(l,a.get(c),r.assign({},i,w,u,{directory:c.directory,onprogress:async e=>{if(i.onprogress){d.set(l,e);try{await i.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,c)}await(async()=>{if(i.bufferedWrite){const e=(await g.allSettled(c.children.map(l))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of c.children)await l(e)})()}(e,n)})(a,s,bi([s],"uncompressedSize"),n,i),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const Si={FS:class{constructor(){Ti(this)}get children(){return this.root.children}remove(e){Di(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=Q}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(mi)}else Di(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}vt(e,t){return this.root.vt(e,t)}importBlob(e,t){return Ti(this),this.root.importBlob(e,t)}importData64URI(e,t){return Ti(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return Ti(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return Ti(this),this.root.importHttpContent(e,t)}importReadable(e,t){return Ti(this),this.root.importReadable(e,t)}importZip(e,t){return Ti(this),this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:xi,ZipFileEntry:gi};function bi(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function zi(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function Fi(e){return class extends be{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new ve,r.assign({},e,t.options));t.data=n,t.Tt=new Ae(n),super.init()}readUint8Array(e,t){return this.Tt.readUint8Array(e,t)}}}function Ri(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function Ei(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=Ri(e.Reader,e.data,t);s.set(e,r);try{await tt(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==Q&&(e.uncompressedSize=r.size)})),s}function Di(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function Ai(e,t,n){return async function e(t,s,i){if(s)try{if((s.isFile||s.isDirectory)&&(s=await vi(s)),"file"==s.kind){const e=await s.getFile();i.push(t.vt(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);i.push(r);for await(const t of s.values())await e(r,t,i)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return i}(e,t,[])}async function vi(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async i=>{if(i.length){for(const e of i)t.push(await vi(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function Ti(e){e.entries=[],e.At=0,e.root=new xi(e)}function ki(e,t,r,n){if(e.directory)return n?new xi(e.fs,t,r,e):new gi(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=Si});
|