!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).singlefile={})}(this,(function(n){"use strict";const{Array:e,Object:t,String:a,Number:o,BigInt:i,Math:r,Date:s,Map:l,Set:c,Response:m,URL:d,Error:h,Uint8Array:p,Uint16Array:u,Uint32Array:g,DataView:w,Blob:b,Promise:f,TextEncoder:y,TextDecoder:k,crypto:v,btoa:j,TransformStream:S,ReadableStream:x,WritableStream:C,CompressionStream:A,DecompressionStream:L,navigator:z,Worker:E}=globalThis,T=4294967295,R=65535,I=8,M=0,D=99,_=67324752,P=134695760,N=P,B=33639248,O=101010256,U=101075792,F=117853008,q=22,H=1,W=39169,G=10,V=1,K=21589,Y=6534,J=1,Z=8,X=2048,$=45,Q=51,nn="/",en=new s(2107,11,31),tn=new s(1980,0,1),an=void 0,on="undefined",rn="function";class sn{constructor(n){return class extends S{constructor(e,t){const a=new n(t);super({transform(n,e){e.enqueue(a.append(n))},flush(n){const e=a.flush();e&&n.enqueue(e)}})}}}}const ln=64;let cn=2;try{typeof z!=on&&z.hardwareConcurrency&&(cn=z.hardwareConcurrency)}catch(n){}const mn={chunkSize:524288,maxWorkers:cn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:an,CompressionStreamNative:typeof A!=on&&A,DecompressionStreamNative:typeof L!=on&&L},dn=t.assign({},mn);function hn(){return dn}function pn(n){return r.max(n.chunkSize,ln)}function un(n){const{baseURL:t,chunkSize:a,maxWorkers:o,terminateWorkerTimeout:i,useCompressionStream:r,useWebWorkers:s,Deflate:l,Inflate:c,CompressionStream:m,DecompressionStream:d,workerScripts:p}=n;if(gn("baseURL",t),gn("chunkSize",a),gn("maxWorkers",o),gn("terminateWorkerTimeout",i),gn("useCompressionStream",r),gn("useWebWorkers",s),l&&(dn.CompressionStream=new sn(l)),c&&(dn.DecompressionStream=new sn(c)),gn("CompressionStream",m),gn("DecompressionStream",d),p!==an){const{deflate:n,inflate:t}=p;if((n||t)&&(dn.workerScripts||(dn.workerScripts={})),n){if(!e.isArray(n))throw new h("workerScripts.deflate must be an array");dn.workerScripts.deflate=n}if(t){if(!e.isArray(t))throw new h("workerScripts.inflate must be an array");dn.workerScripts.inflate=t}}}function gn(n,e){e!==an&&(dn[n]=e)}function wn(n,e,a){return class{constructor(o){const i=this;var r,s;r=o,s="level",("function"==typeof t.hasOwn?t.hasOwn(r,s):r.hasOwnProperty(s))&&void 0===o.level&&delete o.level,i.codec=new n(t.assign({},e,o)),a(i.codec,(n=>{if(i.pendingData){const e=i.pendingData;i.pendingData=new p(e.length+n.length);const{pendingData:t}=i;t.set(e,0),t.set(n,e.length)}else i.pendingData=new p(n)}))}append(n){return this.codec.push(n),o(this)}flush(){return this.codec.push(new p,!0),o(this)}};function o(n){if(n.pendingData){const e=n.pendingData;return n.pendingData=null,e}return new p}}const bn=[];for(let n=0;n<256;n++){let e=n;for(let n=0;n<8;n++)1&e?e=e>>>1^3988292384:e>>>=1;bn[n]=e}class fn{constructor(n){this.crc=n||-1}append(n){let e=0|this.crc;for(let t=0,a=0|n.length;t>>8^bn[255&(e^n[t])];this.crc=e}get(){return~this.crc}}class yn extends S{constructor(){let n;const e=new fn;super({transform(n,t){e.append(n),t.enqueue(n)},flush(){const t=new p(4);new w(t.buffer).setUint32(0,e.get()),n.value=t}}),n=this}}function kn(n){if(void 0===y){n=unescape(encodeURIComponent(n));const e=new p(n.length);for(let t=0;t0&&e&&(n[t-1]=vn.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>32===n?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>r.round(n/1099511627776)||32,_shiftRight(n,e,t,a){for(void 0===a&&(a=[]);e>=32;e-=32)a.push(t),t=0;if(0===e)return a.concat(n);for(let o=0;o>>e),t=n[o]<<32-e;const o=n.length?n[n.length-1]:0,i=vn.getPartial(o);return a.push(vn.partial(e+i&31,e+i>32?t:a.pop(),1)),a}},jn={bytes:{fromBits(n){const e=vn.bitLength(n)/8,t=new p(e);let a;for(let o=0;o>>24,a<<=8;return t},toBits(n){const e=[];let t,a=0;for(t=0;t9007199254740991)throw new h("Cannot hash more than 2^53 - 1 bits");const i=new g(t);let r=0;for(let n=e.blockSize+a-(e.blockSize+a&e.blockSize-1);n<=o;n+=e.blockSize)e._block(i.subarray(16*r,16*(r+1))),r+=1;return t.splice(0,16*r),e}finalize(){const n=this;let e=n._buffer;const t=n._h;e=vn.concat(e,[vn.partial(1,1)]);for(let n=e.length+2;15&n;n++)e.push(0);for(e.push(r.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t}_f(n,e,t,a){return n<=19?e&t|~e&a:n<=39?e^t^a:n<=59?e&t|e&a|t&a:n<=79?e^t^a:void 0}_S(n,e){return e<>>32-n}_block(n){const t=this,a=t._h,o=e(80);for(let e=0;e<16;e++)o[e]=n[e];let i=a[0],s=a[1],l=a[2],c=a[3],m=a[4];for(let n=0;n<=79;n++){n>=16&&(o[n]=t._S(1,o[n-3]^o[n-8]^o[n-14]^o[n-16]));const e=t._S(5,i)+t._f(n,s,l,c)+m+o[n]+t._key[r.floor(n/20)]|0;m=c,c=l,l=t._S(30,s),s=i,i=e}a[0]=a[0]+i|0,a[1]=a[1]+s|0,a[2]=a[2]+l|0,a[3]=a[3]+c|0,a[4]=a[4]+m|0}}},xn={aes:class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],a=e._tables[1],o=n.length;let i,r,s,l=1;if(4!==o&&6!==o&&8!==o)throw new h("invalid aes key size");for(e._key=[r=n.slice(0),s=[]],i=o;i<4*o+28;i++){let n=r[i-1];(i%o==0||8===o&&i%o==4)&&(n=t[n>>>24]<<24^t[n>>16&255]<<16^t[n>>8&255]<<8^t[255&n],i%o==0&&(n=n<<8^n>>>24^l<<24,l=l<<1^283*(l>>7))),r[i]=r[i-o]^n}for(let n=0;i;n++,i--){const e=r[3&n?i:i-4];s[n]=i<=4||n<4?e:a[0][t[e>>>24]]^a[1][t[e>>16&255]]^a[2][t[e>>8&255]]^a[3][t[255&e]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],a=e[4],o=[],i=[];let r,s,l,c;for(let n=0;n<256;n++)i[(o[n]=n<<1^283*(n>>7))^n]=n;for(let m=r=0;!t[m];m^=s||1,r=i[r]||1){let i=r^r<<1^r<<2^r<<3^r<<4;i=i>>8^255&i^99,t[m]=i,a[i]=m,c=o[l=o[s=o[m]]];let d=16843009*c^65537*l^257*s^16843008*m,h=257*o[i]^16843008*i;for(let t=0;t<4;t++)n[t][m]=h=h<<24^h>>>8,e[t][i]=d=d<<24^d>>>8}for(let t=0;t<5;t++)n[t]=n[t].slice(0),e[t]=e[t].slice(0)}_crypt(n,e){if(4!==n.length)throw new h("invalid aes block size");const t=this._key[e],a=t.length/4-2,o=[0,0,0,0],i=this._tables[e],r=i[0],s=i[1],l=i[2],c=i[3],m=i[4];let d,p,u,g=n[0]^t[0],w=n[e?3:1]^t[1],b=n[2]^t[2],f=n[e?1:3]^t[3],y=4;for(let n=0;n>>24]^s[w>>16&255]^l[b>>8&255]^c[255&f]^t[y],p=r[w>>>24]^s[b>>16&255]^l[f>>8&255]^c[255&g]^t[y+1],u=r[b>>>24]^s[f>>16&255]^l[g>>8&255]^c[255&w]^t[y+2],f=r[f>>>24]^s[g>>16&255]^l[w>>8&255]^c[255&b]^t[y+3],y+=4,g=d,w=p,b=u;for(let n=0;n<4;n++)o[e?3&-n:n]=m[g>>>24]<<24^m[w>>16&255]<<16^m[b>>8&255]<<8^m[255&f]^t[y++],d=g,g=w,w=b,b=f,f=d;return o}}},Cn={getRandomValues(n){const e=new g(n.buffer),t=n=>{let e=987654321;const t=4294967295;return function(){e=36969*(65535&e)+(e>>16)&t;return(((e<<16)+(n=18e3*(65535&n)+(n>>16)&t)&t)/4294967296+.5)*(r.random()>.5?1:-1)}};for(let a,o=0;o>24&255)){let e=n>>16&255,t=n>>8&255,a=255&n;255===e?(e=0,255===t?(t=0,255===a?a=0:++a):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=a}else n+=1<<24;return n}incCounter(n){0===(n[0]=this.incWord(n[0]))&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let a;if(!(a=e.length))return[];const o=vn.bitLength(e);for(let o=0;onew Ln.hmacSha1(jn.bytes.toBits(n)),pbkdf2(n,e,t,a){if(t=t||1e4,a<0||t<0)throw new h("invalid params to pbkdf2");const o=1+(a>>5)<<2;let i,r,s,l,c;const m=new ArrayBuffer(o),d=new w(m);let p=0;const u=vn;for(e=jn.bytes.toBits(e),c=1;p<(o||1);c++){for(i=r=n.encrypt(u.concat(e,[c])),s=1;so&&(n=(new t).update(n).finalize());for(let e=0;ethis.resolveReady=n)),password:n,signed:e,strength:a-1,pending:new p})},async transform(n,e){const t=this,{password:a,strength:i,resolveReady:r,ready:s}=t;a?(await async function(n,e,t,a){const o=await ae(n,e,t,ie(a,0,On[e])),i=ie(a,On[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new h(En)}(t,i,a,ie(n,0,On[i]+2)),n=ie(n,On[i]+2),o?e.error(new h(Rn)):r()):await s;const l=new p(n.length-Fn-(n.length-Fn)%Mn);e.enqueue(te(t,n,l,0,Fn,!0))},async flush(n){const{signed:e,ctr:t,hmac:a,pending:o,ready:i}=this;if(a&&t){await i;const r=ie(o,0,o.length-Fn),s=ie(o,o.length-Fn);let l=new p;if(r.length){const n=se(Yn,r);a.update(n);const e=t.update(n);l=re(Yn,e)}if(e){const n=ie(re(Yn,a.digest()),0,Fn);for(let e=0;ethis.resolveReady=n)),password:n,strength:e-1,pending:new p})},async transform(n,e){const t=this,{password:a,strength:o,resolveReady:i,ready:r}=t;let s=new p;a?(s=await async function(n,e,t){const a=In(new p(On[e])),o=await ae(n,e,t,a);return oe(a,o)}(t,o,a),i()):await r;const l=new p(s.length+n.length-n.length%Mn);l.set(s,0),e.enqueue(te(t,n,l,s.length,0))},async flush(n){const{ctr:e,hmac:t,pending:o,ready:i}=this;if(t&&e){await i;let r=new p;if(o.length){const n=e.update(se(Yn,o));t.update(n),r=re(Yn,n)}a.signature=re(Yn,t.digest()).slice(0,Fn),n.enqueue(oe(r,a.signature))}}}),a=this}}function te(n,e,t,a,o,i){const{ctr:r,hmac:s,pending:l}=n,c=e.length-o;let m;for(l.length&&(e=oe(l,e),t=function(n,e){if(e&&e>n.length){const t=n;(n=new p(e)).set(t,0)}return n}(t,c-c%Mn)),m=0;m<=c-Mn;m+=Mn){const n=se(Yn,ie(e,m,m+Mn));i&&s.update(n);const o=r.update(n);i||s.update(o),t.set(re(Yn,o),m+a)}return n.pending=ie(e,m),t}async function ae(n,a,o,i){n.password=null;const r=kn(o),s=await async function(n,e,t,a,o){if(!$n)return Ln.importKey(e);try{return await Vn.importKey(n,e,t,a,o)}catch(n){return $n=!1,Ln.importKey(e)}}(Dn,r,Pn,!1,Bn),l=await async function(n,e,t){if(!Qn)return Ln.pbkdf2(e,n.salt,Nn.iterations,t);try{return await Vn.deriveBits(n,e,t)}catch(a){return Qn=!1,Ln.pbkdf2(e,n.salt,Nn.iterations,t)}}(t.assign({salt:i},Nn),s,8*(2*Un[a]+2)),c=new p(l),m=se(Yn,ie(c,0,Un[a])),d=se(Yn,ie(c,Un[a],2*Un[a])),h=ie(c,2*Un[a]);return t.assign(n,{keys:{key:m,authentication:d,passwordVerification:h},ctr:new Zn(new Jn(m),e.from(qn)),hmac:new Xn(d)}),h}function oe(n,e){let t=n;return n.length+e.length&&(t=new p(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function ie(n,e,t){return n.subarray(e,t)}function re(n,e){return n.fromBits(e)}function se(n,e){return n.toBits(e)}const le=12;class ce extends S{constructor({password:n,passwordVerification:e,checkPasswordOnly:a}){super({start(){t.assign(this,{password:n,passwordVerification:e}),pe(this,n)},transform(n,e){const t=this;if(t.password){const e=de(t,n.subarray(0,le));if(t.password=null,e[11]!=t.passwordVerification)throw new h(En);n=n.subarray(le)}a?e.error(new h(Rn)):e.enqueue(de(t,n))}})}}class me extends S{constructor({password:n,passwordVerification:e}){super({start(){t.assign(this,{password:n,passwordVerification:e}),pe(this,n)},transform(n,e){const t=this;let a,o;if(t.password){t.password=null;const e=In(new p(le));e[11]=t.passwordVerification,a=new p(n.length+e.length),a.set(he(t,e),0),o=le}else a=new p(n.length),o=0;a.set(he(t,n),o),e.enqueue(a)}})}}function de(n,e){const t=new p(e.length);for(let a=0;a>>24]),o=~n.crcKey2.get(),n.keys=[t,a,o]}function ge(n){const e=2|n.keys[2];return we(r.imul(e,1^e)>>>8)}function we(n){return 255&n}function be(n){return 4294967295&n}const fe="deflate-raw";class ye extends S{constructor(n,{chunkSize:e,CompressionStream:t,CompressionStreamNative:a}){super({});const{compressed:o,encrypted:i,useCompressionStream:r,zipCrypto:s,signed:l,level:c}=n,m=this;let d,h,p=ve(super.readable);i&&!s||!l||(d=new yn,p=xe(p,d)),o&&(p=Se(p,r,{level:c,chunkSize:e},a,t)),i&&(s?p=xe(p,new me(n)):(h=new ee(n),p=xe(p,h))),je(m,p,(()=>{let n;i&&!s&&(n=h.signature),i&&!s||!l||(n=new w(d.value.buffer).getUint32(0)),m.signature=n}))}}class ke extends S{constructor(n,{chunkSize:e,DecompressionStream:t,DecompressionStreamNative:a}){super({});const{zipCrypto:o,encrypted:i,signed:r,signature:s,compressed:l,useCompressionStream:c}=n;let m,d,p=ve(super.readable);i&&(o?p=xe(p,new ce(n)):(d=new ne(n),p=xe(p,d))),l&&(p=Se(p,c,{chunkSize:e},a,t)),i&&!o||!r||(m=new yn,p=xe(p,m)),je(this,p,(()=>{if((!i||o)&&r){const n=new w(m.value.buffer);if(s!=n.getUint32(0,!1))throw new h(Tn)}}))}}function ve(n){return xe(n,new S({transform(n,e){n&&n.length&&e.enqueue(n)}}))}function je(n,e,a){e=xe(e,new S({flush:a})),t.defineProperty(n,"readable",{get:()=>e})}function Se(n,e,t,a,o){try{n=xe(n,new(e&&a?a:o)(fe,t))}catch(a){if(!e)throw a;n=xe(n,new o(fe,t))}return n}function xe(n,e){return n.pipeThrough(e)}const Ce="message",Ae="start",Le="pull",ze="data",Ee="ack",Te="close",Re="deflate",Ie="inflate";class Me extends S{constructor(n,e){super({});const a=this,{codecType:o}=n;let i;o.startsWith(Re)?i=ye:o.startsWith(Ie)&&(i=ke);let r=0;const s=new i(n,e),l=super.readable,c=new S({transform(n,e){n&&n.length&&(r+=n.length,e.enqueue(n))},flush(){const{signature:n}=s;t.assign(a,{signature:n,size:r})}});t.defineProperty(a,"readable",{get:()=>l.pipeThrough(s).pipeThrough(c)})}}const De=typeof E!=on;class _e{constructor(n,{readable:e,writable:a},{options:o,config:i,streamOptions:r,useWebWorkers:s,transferStreams:l,scripts:c},m){const{signal:d}=r;return t.assign(n,{busy:!0,readable:e.pipeThrough(new Pe(e,r,i),{signal:d}),writable:a,options:t.assign({},o),scripts:c,transferStreams:l,terminate(){const{worker:e,busy:t}=n;e&&!t&&(e.terminate(),n.interface=null)},onTaskFinished(){n.busy=!1,m(n)}}),(s&&De?Oe:Be)(n,i)}}class Pe extends S{constructor(n,{onstart:e,onprogress:t,size:a,onend:o},{chunkSize:i}){let r=0;super({start(){e&&Ne(e,a)},async transform(n,e){r+=n.length,t&&await Ne(t,r,a),e.enqueue(n)},flush(){n.size=r,o&&Ne(o,r)}},{highWaterMark:1,size:()=>i})}}async function Ne(n,...e){try{await n(...e)}catch(n){}}function Be(n,e){return{run:()=>async function({options:n,readable:e,writable:t,onTaskFinished:a},o){const i=new Me(n,o);try{await e.pipeThrough(i).pipeTo(t,{preventClose:!0,preventAbort:!0});const{signature:n,size:a}=i;return{signature:n,size:a}}finally{a()}}(n,e)}}function Oe(n,{baseURL:e,chunkSize:a}){return n.interface||t.assign(n,{worker:qe(n.scripts[0],e,n),interface:{run:()=>async function(n,e){let a,o;const i=new f(((n,e)=>{a=n,o=e}));t.assign(n,{reader:null,writer:null,resolveResult:a,rejectResult:o,result:i});const{readable:r,options:s,scripts:l}=n,{writable:c,closed:m}=function(n){const e=n.getWriter();let t;const a=new f((n=>t=n)),o=new C({async write(n){await e.ready,await e.write(n)},close(){e.releaseLock(),t()},abort:n=>e.abort(n)});return{writable:o,closed:a}}(n.writable),d=He({type:Ae,scripts:l.slice(1),options:s,config:e,readable:r,writable:c},n);d||t.assign(n,{reader:r.getReader(),writer:c.getWriter()});const h=await i;try{await c.getWriter().close()}catch(n){}return await m,h}(n,{chunkSize:a})}}),n.interface}let Ue=!0,Fe=!0;function qe(n,e,a){const o={type:"module"};let i,r;typeof n==rn&&(n=n());try{i=new d(n,e)}catch(e){i=n}if(Ue)try{r=new E(i)}catch(n){Ue=!1,r=new E(i,o)}else r=new E(i,o);return r.addEventListener(Ce,(n=>async function({data:n},e){const{type:a,value:o,messageId:i,result:r,error:s}=n,{reader:l,writer:c,resolveResult:m,rejectResult:d,onTaskFinished:u}=e;try{if(s){const{message:n,stack:e,code:a,name:o}=s,i=new h(n);t.assign(i,{stack:e,code:a,name:o}),g(i)}else{if(a==Le){const{value:n,done:t}=await l.read();He({type:ze,value:n,done:t,messageId:i},e)}a==ze&&(await c.ready,await c.write(new p(o)),He({type:Ee,messageId:i},e)),a==Te&&g(null,r)}}catch(s){g(s)}function g(n,e){n?d(n):m(e),c&&c.releaseLock(),u()}}(n,a))),r}function He(n,{worker:e,writer:t,onTaskFinished:a,transferStreams:o}){try{let{value:t,readable:a,writable:i}=n;const r=[];if(t&&(n.value=t.buffer,r.push(n.value)),o&&Fe?(a&&r.push(a),i&&r.push(i)):n.readable=n.writable=null,r.length)try{return e.postMessage(n,r),!0}catch(t){Fe=!1,n.readable=n.writable=null,e.postMessage(n)}else e.postMessage(n)}catch(n){throw t&&t.releaseLock(),a(),n}}let We=[];const Ge=[];let Ve=0;async function Ke(n,e){const{options:t,config:a}=e,{transferStreams:i,useWebWorkers:r,useCompressionStream:s,codecType:l,compressed:c,signed:m,encrypted:d}=t,{workerScripts:h,maxWorkers:p,terminateWorkerTimeout:u}=a;e.transferStreams=i||i===an;const g=!(c||m||d||e.transferStreams);let w;e.useWebWorkers=!g&&(r||r===an&&a.useWebWorkers),e.scripts=e.useWebWorkers&&h?h[l]:[],t.useCompressionStream=s||s===an&&a.useCompressionStream;const b=We.find((n=>!n.busy));if(b)Ye(b),w=new _e(b,n,e,y);else if(We.lengthGe.push({resolve:t,stream:n,workerOptions:e})));return w.run();function y(n){if(Ge.length){const[{resolve:e,stream:t,workerOptions:a}]=Ge.splice(0,1);e(new _e(n,t,a,y))}else n.worker?(Ye(n),o.isFinite(u)&&u>=0&&(n.terminateTimeout=setTimeout((()=>{We=We.filter((e=>e!=n)),n.terminate()}),u))):We=We.filter((e=>e!=n))}}function Ye(n){const{terminateTimeout:e}=n;e&&(clearTimeout(e),n.terminateTimeout=null)}const Je="HTTP error ",Ze="HTTP Range not supported",Xe="Writer iterator completed too soon",$e="Content-Length",Qe="Range",nt="HEAD",et="GET",tt="bytes",at=65536,ot="writable";class it{constructor(){this.size=0}init(){this.initialized=!0}}class rt extends it{get readable(){const n=this,{chunkSize:e=at}=n,t=new x({start(){this.chunkOffset=0},async pull(a){const{offset:o=0,size:i,diskNumberStart:s}=t,{chunkOffset:l}=this;a.enqueue(await Rt(n,o+l,r.min(e,i-l),s)),l+e>i?a.close():this.chunkOffset+=e}});return t}}class st extends it{constructor(){super();const n=this,e=new C({write:e=>n.writeUint8Array(e)});t.defineProperty(n,ot,{get:()=>e})}writeUint8Array(){}}class lt extends rt{constructor(n){super(),t.assign(this,{blob:n,size:n.size})}async readUint8Array(n,e){const t=this,a=n+e,o=n||ae&&(i=i.slice(n,a)),new p(i)}}class ct extends it{constructor(n){super();const e=new S,a=[];n&&a.push(["Content-Type",n]),t.defineProperty(this,ot,{get:()=>e.writable}),this.blob=new m(e.readable,{headers:a}).blob()}getData(){return this.blob}}class mt extends lt{constructor(n){super(new b([n],{type:"text/plain"}))}}class dt extends rt{constructor(n,e){super(),pt(this,n,e)}async init(){await ut(this,jt,ft),super.init()}readUint8Array(n,e){return gt(this,n,e,jt,ft)}}class ht extends rt{constructor(n,e){super(),pt(this,n,e)}async init(){await ut(this,St,yt),super.init()}readUint8Array(n,e){return gt(this,n,e,St,yt)}}function pt(n,e,a){const{preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:r}=a;delete(a=t.assign({},a)).preventHeadRequest,delete a.useRangeHeader,delete a.forceRangeRequests,delete a.useXHR,t.assign(n,{url:e,options:a,preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:r})}async function ut(n,e,t){const{url:a,useRangeHeader:i,forceRangeRequests:r}=n;if(function(n){const{baseURL:e}=hn(),{protocol:t}=new d(n,e);return"http:"==t||"https:"==t}(a)&&(i||r)){const{headers:a}=await e(et,n,wt(n));if(!r&&a.get("Accept-Ranges")!=tt)throw new h(Ze);{let i;const r=a.get("Content-Range");if(r){const n=r.trim().split(/\s*\/\s*/);if(n.length){const e=n[1];e&&"*"!=e&&(i=o(e))}}i===an?await vt(n,e,t):n.size=i}}else await vt(n,e,t)}async function gt(n,e,t,a,o){const{useRangeHeader:i,forceRangeRequests:r,options:s}=n;if(i||r){const o=await a(et,n,wt(n,e,t));if(206!=o.status)throw new h(Ze);return new p(await o.arrayBuffer())}{const{data:a}=n;return a||await o(n,s),new p(n.data.subarray(e,e+t))}}function wt(n,e=0,a=1){return t.assign({},bt(n),{[Qe]:tt+"="+e+"-"+(e+a-1)})}function bt({options:n}){const{headers:e}=n;if(e)return Symbol.iterator in e?t.fromEntries(e):e}async function ft(n){await kt(n,jt)}async function yt(n){await kt(n,St)}async function kt(n,e){const t=await e(et,n,bt(n));n.data=new p(await t.arrayBuffer()),n.size||(n.size=n.data.length)}async function vt(n,e,t){if(n.preventHeadRequest)await t(n,n.options);else{const a=(await e(nt,n,bt(n))).headers.get($e);a?n.size=o(a):await t(n,n.options)}}async function jt(n,{options:e,url:a},o){const i=await fetch(a,t.assign({},e,{method:n,headers:o}));if(i.status<400)return i;throw 416==i.status?new h(Ze):new h(Je+(i.statusText||i.status))}function St(n,{url:e},a){return new f(((o,i)=>{const r=new XMLHttpRequest;if(r.addEventListener("load",(()=>{if(r.status<400){const n=[];r.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach((e=>{const t=e.trim().split(/\s*:\s*/);t[0]=t[0].trim().replace(/^[a-z]|-[a-z]/g,(n=>n.toUpperCase())),n.push(t)})),o({status:r.status,arrayBuffer:()=>r.response,headers:new l(n)})}else i(416==r.status?new h(Ze):new h(Je+(r.statusText||r.status)))}),!1),r.addEventListener("error",(n=>i(n.detail?n.detail.error:new h("Network error"))),!1),r.open(n,e),a)for(const n of t.entries(a))r.setRequestHeader(n[0],n[1]);r.responseType="arraybuffer",r.send()}))}class xt extends rt{constructor(n,e={}){super(),t.assign(this,{url:n,reader:e.useXHR?new ht(n,e):new dt(n,e)})}set size(n){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(n,e){return this.reader.readUint8Array(n,e)}}class Ct extends st{init(n=0){t.assign(this,{offset:0,array:new p(n)}),super.init()}writeUint8Array(n){const e=this;if(e.offset+n.length>e.array.length){const t=e.array;e.array=new p(t.length+n.length),e.array.set(t)}e.array.set(n,e.offset),e.offset+=n.length}getData(){return this.array}}class At extends rt{constructor(n){super(),this.readers=n}async init(){const n=this,{readers:e}=n;n.lastDiskNumber=0,n.lastDiskOffset=0,await f.all(e.map((async(t,a)=>{await t.init(),a!=e.length-1&&(n.lastDiskOffset+=t.size),n.size+=t.size}))),super.init()}async readUint8Array(n,e,t=0){const a=this,{readers:o}=this;let i,s=t;-1==s&&(s=o.length-1);let l=n;for(;l>=o[s].size;)l-=o[s].size,s++;const c=o[s],m=c.size;if(l+e<=m)i=await Rt(c,l,e);else{const o=m-l;i=new p(e),i.set(await Rt(c,l,o)),i.set(await a.readUint8Array(n+o,e-o,t),o)}return a.lastDiskNumber=r.max(s,a.lastDiskNumber),i}}class Lt extends it{constructor(n,e=4294967295){super();const a=this;let o,i,r;t.assign(a,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const s=new C({async write(e){const{availableSize:t}=a;if(r)e.length>=t?(await l(e.slice(0,t)),await c(),a.diskOffset+=o.size,a.diskNumber++,r=null,await this.write(e.slice(t))):await l(e);else{const{value:t,done:s}=await n.next();if(s&&!t)throw new h(Xe);o=t,o.size=0,o.maxSize&&(a.maxSize=o.maxSize),a.availableSize=a.maxSize,await zt(o),i=t.writable,r=i.getWriter(),await this.write(e)}},async close(){await r.ready,await c()}});async function l(n){const e=n.length;e&&(await r.ready,await r.write(n),o.size+=e,a.size+=e,a.availableSize-=e)}async function c(){i.size=o.size,await r.close()}t.defineProperty(a,ot,{get:()=>s})}}async function zt(n,e){n.init&&!n.initialized&&await n.init(e)}function Et(n){return e.isArray(n)&&(n=new At(n)),n instanceof x&&(n={readable:n}),n}function Tt(n){n.writable===an&&typeof n.next==rn&&(n=new Lt(n)),n instanceof C&&(n={writable:n});const{writable:e}=n;e.size===an&&(e.size=0);return n instanceof Lt||t.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function Rt(n,e,t,a){return n.readUint8Array(e,t,a)}const It=At,Mt=Lt,Dt="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),_t=256==Dt.length;function Pt(n,e){return e&&"cp437"==e.trim().toLowerCase()?function(n){if(_t){let e="";for(let t=0;tthis[e]=n[e]))}}const aa="File format is not recognized",oa="End of central directory not found",ia="End of Zip64 central directory not found",ra="End of Zip64 central directory locator not found",sa="Central directory header not found",la="Local file header not found",ca="Zip64 extra field not found",ma="File contains encrypted entry",da="Encryption method not supported",ha="Compression method not supported",pa="Split zip file",ua="utf-8",ga="cp437",wa=[[Ft,T],[qt,T],[Ht,T],[Wt,R]],ba={[R]:{getValue:La,bytes:4},[T]:{getValue:za,bytes:8}};class fa{constructor(n,e,a){t.assign(this,{reader:n,config:e,options:a})}async getData(n,e,a={}){const o=this,{reader:i,offset:r,diskNumberStart:s,extraFieldAES:l,compressionMethod:c,config:m,bitFlag:d,signature:u,rawLastModDate:g,uncompressedSize:w,compressedSize:b}=o,f=e.localDirectory={},y=Ea(await Rt(i,r,30,s));let k=ja(o,a,"password");if(k=k&&k.length&&k,l&&l.originalCompressionMethod!=D)throw new h(ha);if(c!=M&&c!=I)throw new h(ha);if(La(y,0)!=_)throw new h(la);ya(f,y,4),f.rawExtraField=f.extraFieldLength?await Rt(i,r+30+f.filenameLength,f.extraFieldLength,s):new p,await ka(o,f,y,4,!0),t.assign(e,{lastAccessDate:f.lastAccessDate,creationDate:f.creationDate});const v=o.encrypted&&f.encrypted,j=v&&!l;if(v){if(!j&&l.strength===an)throw new h(da);if(!k)throw new h(ma)}const S=r+30+f.filenameLength+f.extraFieldLength,x=b,A=i.readable;t.assign(A,{diskNumberStart:s,offset:S,size:x});const L=ja(o,a,"signal"),z=ja(o,a,"checkPasswordOnly");z&&(n=new C),n=Tt(n),await zt(n,w);const{writable:E}=n,{onstart:T,onprogress:R,onend:P}=a,N={options:{codecType:Ie,password:k,zipCrypto:j,encryptionStrength:l&&l.strength,signed:ja(o,a,"checkSignature"),passwordVerification:j&&(d.dataDescriptor?g>>>8&255:u>>>24&255),signature:u,compressed:0!=c,encrypted:v,useWebWorkers:ja(o,a,"useWebWorkers"),useCompressionStream:ja(o,a,"useCompressionStream"),transferStreams:ja(o,a,"transferStreams"),checkPasswordOnly:z},config:m,streamOptions:{signal:L,size:x,onstart:T,onprogress:R,onend:P}};let B=0;try{({outputSize:B}=await Ke({readable:A,writable:E},N))}catch(n){if(!z||n.message!=Rn)throw n}finally{const n=ja(o,a,"preventClose");E.size+=B,n||E.locked||await E.getWriter().close()}return z?void 0:n.getData?n.getData():E}}function ya(n,e,a){const o=n.rawBitFlag=Aa(e,a+2),i=(o&J)==J,r=La(e,a+6);t.assign(n,{encrypted:i,version:Aa(e,a),bitFlag:{level:(6&o)>>1,dataDescriptor:(o&Z)==Z,languageEncodingFlag:(o&X)==X},rawLastModDate:r,lastModDate:Sa(r),filenameLength:Aa(e,a+22),extraFieldLength:Aa(e,a+24)})}async function ka(n,e,a,o,i){const{rawExtraField:r}=e,c=e.extraField=new l,m=Ea(new p(r));let d=0;try{for(;de[n]==t));for(let o=0,i=0;o=5&&(i.push(Gt),r.push(Vt));let l=1;i.forEach(((t,o)=>{if(n.data.length>=l+4){const i=La(a,l);e[t]=n[t]=new s(1e3*i);const c=r[o];n[c]=i}l+=4}))}(k,e,i),e.extraFieldExtendedTimestamp=k);const v=c.get(Y);v&&(e.extraFieldUSDZ=v)}async function va(n,e,a,o,i){const r=Ea(n.data),s=new fn;s.append(i[a]);const l=Ea(new p(4));l.setUint32(0,s.get(),!0);const c=La(r,1);t.assign(n,{version:Ca(r,0),[e]:Pt(n.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&c==La(l,0)}),n.valid&&(o[e]=n[e],o[e+"UTF8"]=!0)}function ja(n,e,t){return e[t]===an?n.options[t]:e[t]}function Sa(n){const e=(4294901760&n)>>16,t=65535&n;try{return new s(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch(n){}}function xa(n){return new s(o(n/i(1e4)-i(116444736e5)))}function Ca(n,e){return n.getUint8(e)}function Aa(n,e){return n.getUint16(e,!0)}function La(n,e){return n.getUint32(e,!0)}function za(n,e){return o(n.getBigUint64(e,!0))}function Ea(n){return new w(n.buffer)}const Ta="File already exists",Ra="Zip file comment exceeds 64KB",Ia="File entry comment exceeds 64KB",Ma="File entry name exceeds 64KB",Da="Version exceeds 65535",_a="The strength must equal 1, 2, or 3",Pa="Extra field type exceeds 65535",Na="Extra field data exceeds 64KB",Ba="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Oa=new p([7,0,2,0,65,69,3,0,0]);let Ua=0;const Fa=[];class qa{constructor(n,e={}){n=Tt(n),t.assign(this,{writer:n,addSplitZipSignature:n instanceof Lt,options:e,config:hn(),files:new l,filenames:new c,offset:n.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new c,bufferedWrites:0})}async add(n="",a,o={}){const l=this,{pendingAddFileCalls:c,config:m}=l;let d;UaFa.push(n)));try{if(n=n.trim(),l.filenames.has(n))throw new h(Ta);return l.filenames.add(n),d=async function(n,a,o,l){a=a.trim(),l.directory&&!a.endsWith(nn)?a+=nn:l.directory=a.endsWith(nn);const c=kn(a);if($a(c)>R)throw new h(Ma);const m=l.comment||"",d=kn(m);if($a(d)>R)throw new h(Ia);const b=Ga(n,l,"version",20);if(b>R)throw new h(Da);const y=Ga(n,l,"versionMadeBy",20);if(y>R)throw new h(Da);const k=Ga(n,l,Gt,new s),v=Ga(n,l,Kt),j=Ga(n,l,Jt),S=Ga(n,l,Qt,!0),x=Ga(n,l,Xt,0),C=Ga(n,l,$t,0),A=Ga(n,l,"password"),L=Ga(n,l,"encryptionStrength",3),z=Ga(n,l,"zipCrypto"),E=Ga(n,l,"extendedTimestamp",!0),B=Ga(n,l,"keepOrder",!0),O=Ga(n,l,"level"),U=Ga(n,l,"useWebWorkers"),F=Ga(n,l,"bufferedWrite"),q=Ga(n,l,"dataDescriptorSignature",!1),on=Ga(n,l,"signal"),rn=Ga(n,l,"useCompressionStream");let sn=Ga(n,l,"dataDescriptor",!0),ln=Ga(n,l,na);if(A!==an&&L!==an&&(L<1||L>3))throw new h(_a);let cn=new p;const{extraField:mn}=l;if(mn){let n=0,e=0;mn.forEach((e=>n+=4+$a(e))),cn=new p(n),mn.forEach(((n,t)=>{if(t>R)throw new h(Pa);if($a(n)>R)throw new h(Na);Za(cn,new u([t]),e),Za(cn,new u([$a(n)]),e+2),Za(cn,n,e+4),e+=4+$a(n)}))}let dn=0,hn=0,un=0;const gn=!0===ln;o&&(o=Et(o),await zt(o),o.size===an?(sn=!0,(ln||ln===an)&&(ln=!0,un=dn=T)):(un=o.size,dn=function(n){return n+5*(r.floor(n/16383)+1)}(un)));const{diskOffset:wn,diskNumber:bn,maxSize:fn}=n.writer,yn=gn||un>=T,vn=gn||dn>=T,jn=gn||n.offset+n.pendingEntriesSize-wn>=T,Sn=Ga(n,l,"supportZip64SplitFile",!0),xn=Sn&&gn||bn+r.ceil(n.pendingEntriesSize/fn)>=R;if(jn||yn||vn||xn){if(!1===ln||!B)throw new h(Ba);ln=!0}ln=ln||!1,l=t.assign({},l,{rawFilename:c,rawComment:d,version:b,versionMadeBy:y,lastModDate:k,lastAccessDate:v,creationDate:j,rawExtraField:cn,zip64:ln,zip64UncompressedSize:yn,zip64CompressedSize:vn,zip64Offset:jn,zip64DiskNumberStart:xn,password:A,level:O,useWebWorkers:U,encryptionStrength:L,extendedTimestamp:E,zipCrypto:z,bufferedWrite:F,keepOrder:B,dataDescriptor:sn,dataDescriptorSignature:q,signal:on,msDosCompatible:S,internalFileAttribute:x,externalFileAttribute:C,useCompressionStream:rn});const Cn=function(n){const{rawFilename:e,lastModDate:t,lastAccessDate:a,creationDate:o,password:i,level:s,zip64:l,zipCrypto:c,dataDescriptor:m,directory:d,rawExtraField:h,encryptionStrength:u,extendedTimestamp:w}=n,b=0!==s&&!d,f=Boolean(i&&$a(i));let y,k,v,j,S=n.version;if(f&&!c){y=new p($a(Oa)+2);const n=Xa(y);Ka(n,0,W),Za(y,Oa,2),Va(n,8,u)}else y=new p;if(w){v=new p(9+(a?4:0)+(o?4:0));const n=Xa(v);Ka(n,0,K),Ka(n,2,$a(v)-4),j=1+(a?2:0)+(o?4:0),Va(n,4,j);let e=5;Ya(n,e,r.floor(t.getTime()/1e3)),e+=4,a&&(Ya(n,e,r.floor(a.getTime()/1e3)),e+=4),o&&Ya(n,e,r.floor(o.getTime()/1e3));try{k=new p(36);const n=Xa(k),e=Wa(t);Ka(n,0,G),Ka(n,2,32),Ka(n,8,V),Ka(n,10,24),Ja(n,12,e),Ja(n,20,Wa(a)||e),Ja(n,28,Wa(o)||e)}catch(n){k=new p}}else k=v=new p;let x=X;m&&(x|=Z);let C=M;b&&(C=I);l&&(S=S>$?S:$);f&&(x|=J,c||(S=S>Q?S:Q,C=D,b&&(y[9]=I)));const A=new p(26),L=Xa(A);Ka(L,0,S),Ka(L,2,x),Ka(L,4,C);const z=new g(1),E=Xa(z);let T;T=ten?en:t;Ka(E,0,(T.getHours()<<6|T.getMinutes())<<5|T.getSeconds()/2),Ka(E,2,(T.getFullYear()-1980<<4|T.getMonth()+1)<<5|T.getDate());const R=z[0];Ya(L,6,R),Ka(L,22,$a(e));const P=$a(y,v,k,h);Ka(L,24,P);const N=new p(30+$a(e)+P);return Ya(Xa(N),0,_),Za(N,A,4),Za(N,e,30),Za(N,y,30+$a(e)),Za(N,v,30+$a(e,y)),Za(N,k,30+$a(e,y,v)),Za(N,h,30+$a(e,y,v,k)),{localHeaderArray:N,headerArray:A,headerView:L,lastModDate:t,rawLastModDate:R,encrypted:f,compressed:b,version:S,compressionMethod:C,extraFieldExtendedTimestampFlag:j,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:k,rawExtraFieldAES:y,extraFieldLength:P}}(l),An=function(n){const{zip64:e,dataDescriptor:t,dataDescriptorSignature:a}=n;let o,i=new p,r=0;t&&(i=new p(e?a?24:20:a?16:12),o=Xa(i),a&&(r=4,Ya(o,0,N)));return{dataDescriptorArray:i,dataDescriptorView:o,dataDescriptorOffset:r}}(l),Ln=$a(Cn.localHeaderArray,An.dataDescriptorArray);hn=Ln+dn,n.options.usdz&&(hn+=hn+64);let zn;n.pendingEntriesSize+=hn;try{zn=await async function(n,a,o,r,s){const{files:l,writer:c}=n,{keepOrder:m,dataDescriptor:d,signal:u}=s,{headerInfo:g}=r,{usdz:b}=n.options,y=e.from(l.values()).pop();let k,v,j,S,x,C,A={};l.set(a,A);try{let e;m&&(e=y&&y.lock,L()),!(s.bufferedWrite||n.writerLocked||n.bufferedWrites&&m)&&d||b?(C=c,await z()):(C=new ct,C.writable.size=0,k=!0,n.bufferedWrites++,await zt(c)),await zt(C);const{writable:g}=c;let{diskOffset:f}=c;if(n.addSplitZipSignature){delete n.addSplitZipSignature;const e=new p(4);Ya(Xa(e),0,P),await Ha(g,e),n.offset+=4}b&&function(n,e){const{headerInfo:t}=n;let{localHeaderArray:a,extraFieldLength:o}=t,i=Xa(a),r=64-(e+a.length)%64;r<4&&(r+=64);const s=new p(r),l=Xa(s);Ka(l,0,Y),Ka(l,2,r-2);const c=a;t.localHeaderArray=a=new p(c.length+r),Za(a,c),Za(a,s,c.length),i=Xa(a),Ka(i,28,o+r),n.metadataSize+=r}(r,n.offset-f),k||(await e,await E(g));const{diskNumber:v}=c;if(x=!0,A.diskNumberStart=v,A=await async function(n,e,{diskNumberStart:a,lock:o},r,s,l){const{headerInfo:c,dataDescriptorInfo:m,metadataSize:d}=r,{localHeaderArray:h,headerArray:u,lastModDate:g,rawLastModDate:w,encrypted:b,compressed:f,version:y,compressionMethod:k,rawExtraFieldExtendedTimestamp:v,extraFieldExtendedTimestampFlag:j,rawExtraFieldNTFS:S,rawExtraFieldAES:x}=c,{dataDescriptorArray:C}=m,{rawFilename:A,lastAccessDate:L,creationDate:z,password:E,level:R,zip64:I,zip64UncompressedSize:M,zip64CompressedSize:D,zip64Offset:_,zip64DiskNumberStart:P,zipCrypto:N,dataDescriptor:B,directory:O,versionMadeBy:U,rawComment:F,rawExtraField:q,useWebWorkers:W,onstart:G,onprogress:V,onend:K,signal:Y,encryptionStrength:J,extendedTimestamp:Z,msDosCompatible:X,internalFileAttribute:$,externalFileAttribute:Q,useCompressionStream:nn}=l,en={lock:o,versionMadeBy:U,zip64:I,directory:Boolean(O),filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:F,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:S,rawExtraFieldAES:x,rawExtraField:q,extendedTimestamp:Z,msDosCompatible:X,internalFileAttribute:$,externalFileAttribute:Q,diskNumberStart:a};let tn,on=0,rn=0;const{writable:sn}=e;if(n){n.chunkSize=pn(s),await Ha(sn,h);const e=n.readable,t=e.size=n.size,a={options:{codecType:Re,level:R,password:E,encryptionStrength:J,zipCrypto:b&&N,passwordVerification:b&&N&&w>>8&255,signed:!0,compressed:f,encrypted:b,useWebWorkers:W,useCompressionStream:nn,transferStreams:!1},config:s,streamOptions:{signal:Y,size:t,onstart:G,onprogress:V,onend:K}},o=await Ke({readable:e,writable:sn},a);sn.size+=o.size,tn=o.signature,rn=n.size=e.size,on=o.size}else await Ha(sn,h);let ln;if(I){let n=4;M&&(n+=8),D&&(n+=8),_&&(n+=8),P&&(n+=4),ln=new p(n)}else ln=new p;(function(n,e){const{signature:t,rawExtraFieldZip64:a,compressedSize:o,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:l}=n,{headerView:c,encrypted:m}=s,{dataDescriptorView:d,dataDescriptorOffset:h}=l,{zip64:p,zip64UncompressedSize:u,zip64CompressedSize:g,zipCrypto:w,dataDescriptor:b}=e;m&&!w||t===an||(Ya(c,10,t),b&&Ya(d,h,t));if(p){const n=Xa(a);Ka(n,0,H),Ka(n,2,a.length-4);let e=4;u&&(Ya(c,18,T),Ja(n,e,i(r)),e+=8),g&&(Ya(c,14,T),Ja(n,e,i(o))),b&&(Ja(d,h+4,i(o)),Ja(d,h+12,i(r)))}else Ya(c,14,o),Ya(c,18,r),b&&(Ya(d,h+4,o),Ya(d,h+8,r))})({signature:tn,rawExtraFieldZip64:ln,compressedSize:on,uncompressedSize:rn,headerInfo:c,dataDescriptorInfo:m},l),B&&await Ha(sn,C);return t.assign(en,{uncompressedSize:rn,compressedSize:on,lastModDate:g,rawLastModDate:w,creationDate:z,lastAccessDate:L,encrypted:b,length:d+on,compressionMethod:k,version:y,headerArray:u,signature:tn,rawExtraFieldZip64:ln,extraFieldExtendedTimestampFlag:j,zip64UncompressedSize:M,zip64CompressedSize:D,zip64Offset:_,zip64DiskNumberStart:P}),en}(o,C,A,r,n.config,s),x=!1,l.set(a,A),A.filename=a,k){await C.writable.getWriter().close();let n=await C.getData();await e,await z(),S=!0,d||(n=await async function(n,e,t,{zipCrypto:a}){let o;o=await e.slice(0,26).arrayBuffer(),26!=o.byteLength&&(o=o.slice(0,26));const i=new w(o);n.encrypted&&!a||Ya(i,14,n.signature);n.zip64?(Ya(i,18,T),Ya(i,22,T)):(Ya(i,18,n.compressedSize),Ya(i,22,n.uncompressedSize));return await Ha(t,new p(o)),e.slice(o.byteLength)}(A,n,g,s)),await E(g),A.diskNumberStart=c.diskNumber,f=c.diskOffset,await n.stream().pipeTo(g,{preventClose:!0,preventAbort:!0,signal:u}),g.size+=n.size,S=!1}if(A.offset=n.offset-f,A.zip64)!function(n,e){const{rawExtraFieldZip64:t,offset:a,diskNumberStart:o}=n,{zip64UncompressedSize:r,zip64CompressedSize:s,zip64Offset:l,zip64DiskNumberStart:c}=e,m=Xa(t);let d=4;r&&(d+=8);s&&(d+=8);l&&(Ja(m,d,i(a)),d+=8);c&&Ya(m,d,o)}(A,s);else if(A.offset>=T)throw new h(Ba);return n.offset+=A.length,A}catch(e){if(k&&S||!k&&x){if(n.hasCorruptedEntries=!0,e)try{e.corruptedEntry=!0}catch(n){}k?n.offset+=C.writable.size:n.offset=C.writable.size}throw l.delete(a),e}finally{k&&n.bufferedWrites--,j&&j(),v&&v()}function L(){A.lock=new f((n=>j=n))}async function z(){n.writerLocked=!0;const{lockWriter:e}=n;n.lockWriter=new f((e=>v=()=>{n.writerLocked=!1,e()})),await e}async function E(n){g.localHeaderArray.length>c.availableSize&&(c.availableSize=0,await Ha(n,new p))}}(n,a,o,{headerInfo:Cn,dataDescriptorInfo:An,metadataSize:Ln},l)}finally{n.pendingEntriesSize-=hn}return t.assign(zn,{name:a,comment:m,extraField:mn}),new ta(zn)}(l,n,a,o),c.add(d),await d}catch(e){throw l.filenames.delete(n),e}finally{c.delete(d);const n=Fa.shift();n?n():Ua--}}async close(n=new p,t={}){const{pendingAddFileCalls:a,writer:o}=this,{writable:s}=o;for(;a.size;)await f.all(e.from(a));await async function(n,t,a){const{files:o,writer:s}=n,{diskOffset:l,writable:c}=s;let{diskNumber:m}=s,d=0,u=0,g=n.offset-l,w=o.size;for(const[,n]of o){const{rawFilename:e,rawExtraFieldZip64:t,rawExtraFieldAES:a,rawComment:o,rawExtraFieldNTFS:i,rawExtraField:s,extendedTimestamp:l,extraFieldExtendedTimestampFlag:c,lastModDate:m}=n;let d;if(l){d=new p(9);const n=Xa(d);Ka(n,0,K),Ka(n,2,5),Va(n,4,c),Ya(n,5,r.floor(m.getTime()/1e3))}else d=new p;n.rawExtraFieldCDExtendedTimestamp=d,u+=46+$a(e,o,t,a,i,d,s)}const b=new p(u),f=Xa(b);await zt(s);let y=0;for(const[n,t]of e.from(o.values()).entries()){const{offset:e,rawFilename:i,rawExtraFieldZip64:r,rawExtraFieldAES:l,rawExtraFieldCDExtendedTimestamp:m,rawExtraFieldNTFS:h,rawExtraField:p,rawComment:u,versionMadeBy:g,headerArray:w,directory:k,zip64:v,zip64UncompressedSize:j,zip64CompressedSize:S,zip64DiskNumberStart:x,zip64Offset:C,msDosCompatible:A,internalFileAttribute:L,externalFileAttribute:z,diskNumberStart:E,uncompressedSize:I,compressedSize:M}=t,D=$a(r,l,m,h,p);Ya(f,d,B),Ka(f,d+4,g);const _=Xa(w);j||Ya(_,18,I),S||Ya(_,14,M),Za(b,w,d+6),Ka(f,d+30,D),Ka(f,d+32,$a(u)),Ka(f,d+34,v&&x?R:E),Ka(f,d+36,L),z?Ya(f,d+38,z):k&&A&&Va(f,d+38,16),Ya(f,d+42,v&&C?T:e),Za(b,i,d+46),Za(b,r,d+46+$a(i)),Za(b,l,d+46+$a(i,r)),Za(b,m,d+46+$a(i,r,l)),Za(b,h,d+46+$a(i,r,l,m)),Za(b,p,d+46+$a(i,r,l,m,h)),Za(b,u,d+46+$a(i)+D);const P=46+$a(i,u)+D;if(d-y>s.availableSize&&(s.availableSize=0,await Ha(c,b.slice(y,d)),y=d),d+=P,a.onprogress)try{await a.onprogress(n+1,o.size,new ta(t))}catch(n){}}await Ha(c,y?b.slice(y):b);let k=s.diskNumber;const{availableSize:v}=s;v=T||u>=T||w>=R||k>=R){if(!1===j)throw new h(Ba);j=!0}const S=new p(j?98:q),x=Xa(S);if(d=0,j){Ya(x,0,U),Ja(x,4,i(44)),Ka(x,12,45),Ka(x,14,45),Ya(x,16,k),Ya(x,20,m),Ja(x,24,i(w)),Ja(x,32,i(w)),Ja(x,40,i(u)),Ja(x,48,i(g)),Ya(x,56,F),Ja(x,64,i(g)+i(u)),Ya(x,72,k+1);Ga(n,a,"supportZip64SplitFile",!0)&&(k=R,m=R),w=R,g=T,u=T,d+=76}Ya(x,d,O),Ka(x,d+4,k),Ka(x,d+6,m),Ka(x,d+8,w),Ka(x,d+10,w),Ya(x,d+12,u),Ya(x,d+16,g);const C=$a(t);if(C){if(!(C<=R))throw new h(Ra);Ka(x,d+20,C)}await Ha(c,S),C&&await Ha(c,t)}(this,n,t);return Ga(this,t,"preventClose")||await s.getWriter().close(),o.getData?o.getData():s}}async function Ha(n,e){const t=n.getWriter();await t.ready,n.size+=$a(e),await t.write(e),t.releaseLock()}function Wa(n){if(n)return(i(n.getTime())+i(116444736e5))*i(1e4)}function Ga(n,e,t,a){const o=e[t]===an?n.options[t]:e[t];return o===an?a:o}function Va(n,e,t){n.setUint8(e,t)}function Ka(n,e,t){n.setUint16(e,t,!0)}function Ya(n,e,t){n.setUint32(e,t,!0)}function Ja(n,e,t){n.setBigUint64(e,t,!0)}function Za(n,e,t){n.set(e,t)}function Xa(n){return new w(n.buffer)}function $a(...n){let e=0;return n.forEach((n=>n&&(e+=n.length))),e}let Qa;try{Qa="undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("single-file.js",document.baseURI).href}catch(n){}un({baseURL:Qa}),function(n){const e=()=>d.createObjectURL(new b(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:a,Uint16Array:i,Uint32Array:o,Int32Array:l,Map:c,DataView:h,Promise:f,TextEncoder:u,crypto:p,postMessage:d,TransformStream:g,ReadableStream:w,WritableStream:v,CompressionStream:y,DecompressionStream:b}=self;class m{constructor(e){return class extends g{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const _=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;_[e]=t}class k{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class S extends g{constructor(){let e;const t=new k;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new a(4);new h(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const z={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=z.getPartial(n);return 32===r?e.concat(t):z._shiftRight(t,r,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+z.getPartial(n)},clamp(e,t){if(32*e.length0&&t&&(e[n-1]=z.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>r.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=z.getPartial(s);return r.push(z.partial(t+a&31,t+a>32?n:r.pop(),1)),r}},D={bytes:{fromBits(e){const t=z.bitLength(e)/8,n=new a(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const i=new o(n);let l=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);a>=e;e+=t.blockSize)t._block(i.subarray(16*l,16*(l+1))),l+=1;return n.splice(0,16*l),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=z.concat(t,[z.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}_S(e,t){return t<>>32-e}_block(t){const n=this,s=n._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=s[0],o=s[1],l=s[2],c=s[3],h=s[4];for(let e=0;79>=e;e++){16>e||(a[e]=n._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=n._S(5,i)+n._f(e,o,l,c)+h+a[e]+n._key[r.floor(e/20)]|0;h=c,c=l,l=n._S(30,o),o=i,i=t}s[0]=s[0]+i|0,s[1]=s[1]+o|0,s[2]=s[2]+l|0,s[3]=s[3]+c|0,s[4]=s[4]+h|0}},I={getRandomValues(e){const t=new o(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,a=0;anew x.hmacSha1(D.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,c,f;const u=new ArrayBuffer(a),p=new h(u);let d=0;const g=z;for(t=D.bytes.toBits(t),f=1;(a||1)>d;f++){for(i=o=e.encrypt(g.concat(t,[f])),l=1;n>l;l++)for(o=e.encrypt(o),c=0;cd&&ls&&(e=(new n).update(e).finalize());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},A=void 0!==p&&"function"==typeof p.getRandomValues,T="Invalid password",R="Invalid signature",H="zipjs-abort-check-password";function q(e){return A?p.getRandomValues(e):I.getRandomValues(e)}const B=16,K={name:"PBKDF2"},V=t.assign({hash:{name:"HMAC"}},K),P=t.assign({iterations:1e3,hash:{name:"SHA-1"}},K),E=["deriveBits"],U=[8,12,16],W=[16,24,32],M=10,N=[0,0,0,0],O="undefined",F="function",L=typeof p!=O,j=L&&p.subtle,G=L&&typeof j!=O,X=D.bytes,J=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,l,c=1;if(4!==a&&6!==a&&8!==a)throw new s("invalid aes key size");for(t._key=[o=e.slice(0),l=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];l[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],s=[],a=[];let i,o,l,c;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,r[a]=h,c=s[l=s[o=s[h]]];let f=16843009*c^65537*l^257*o^16843008*h,u=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=u=u<<24^u>>>8,t[n][a]=f=f<<24^f>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],l=i[1],c=i[2],h=i[3],f=i[4];let u,p,d,g=e[0]^n[0],w=e[t?3:1]^n[1],v=e[2]^n[2],y=e[t?1:3]^n[3],b=4;for(let e=0;r>e;e++)u=o[g>>>24]^l[w>>16&255]^c[v>>8&255]^h[255&y]^n[b],p=o[w>>>24]^l[v>>16&255]^c[y>>8&255]^h[255&g]^n[b+1],d=o[v>>>24]^l[y>>16&255]^c[g>>8&255]^h[255&w]^n[b+2],y=o[y>>>24]^l[g>>16&255]^c[w>>8&255]^h[255&v]^n[b+3],b+=4,g=u,w=p,v=d;for(let e=0;4>e;e++)a[t?3&-e:e]=f[g>>>24]<<24^f[w>>16&255]<<16^f[v>>8&255]<<8^f[255&y]^n[b++],u=g,g=w,w=v,v=y,y=u;return a}},Q=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const s=z.bitLength(t);for(let s=0;r>s;s+=4){this.incCounter(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return z.clamp(t,s)}},Y=x.hmacSha1;let Z=L&&G&&typeof j.importKey==F,$=L&&G&&typeof j.deriveBits==F;class ee extends g{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:i}){super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:e,signed:n,strength:r-1,pending:new a})},async transform(e,t){const n=this,{password:r,strength:o,resolveReady:l,ready:c}=n;r?(await(async(e,t,n,r)=>{const a=await re(e,t,n,ae(r,0,U[t])),i=ae(r,U[t]);if(a[0]!=i[0]||a[1]!=i[1])throw new s(T)})(n,o,r,ae(e,0,U[o]+2)),e=ae(e,U[o]+2),i?t.error(new s(H)):l()):await c;const h=new a(e.length-M-(e.length-M)%B);t.enqueue(ne(n,e,h,0,M,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:i,ready:o}=this;if(r&&n){await o;const l=ae(i,0,i.length-M),c=ae(i,i.length-M);let h=new a;if(l.length){const e=oe(X,l);r.update(e);const t=n.update(e);h=ie(X,t)}if(t){const e=ae(ie(X,r.digest()),0,M);for(let t=0;M>t;t++)if(e[t]!=c[t])throw new s(R)}e.enqueue(h)}}})}}class te extends g{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:e,strength:n-1,pending:new a})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:i,ready:o}=n;let l=new a;r?(l=await(async(e,t,n)=>{const r=q(new a(U[t]));return se(r,await re(e,t,n,r))})(n,s,r),i()):await o;const c=new a(l.length+e.length-e.length%B);c.set(l,0),t.enqueue(ne(n,e,c,l.length,0))},async flush(e){const{ctr:t,hmac:n,pending:s,ready:i}=this;if(n&&t){await i;let o=new a;if(s.length){const e=t.update(oe(X,s));n.update(e),o=ie(X,e)}r.signature=ie(X,n.digest()).slice(0,M),e.enqueue(se(o,r.signature))}}}),r=this}}function ne(e,t,n,r,s,i){const{ctr:o,hmac:l,pending:c}=e,h=t.length-s;let f;for(c.length&&(t=se(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new a(t)).set(n,0)}return e})(n,h-h%B)),f=0;h-B>=f;f+=B){const e=oe(X,ae(t,f,f+B));i&&l.update(e);const s=o.update(e);i||l.update(s),n.set(ie(X,s),f+r)}return e.pending=ae(t,f),n}async function re(n,r,s,i){n.password=null;const o=(e=>{if(void 0===u){const t=new a((e=unescape(encodeURIComponent(e))).length);for(let n=0;n{if(!Z)return x.importKey(t);try{return await j.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,x.importKey(t)}})(0,o,V,0,E),c=await(async(e,t,n)=>{if(!$)return x.pbkdf2(t,e.salt,P.iterations,n);try{return await j.deriveBits(e,t,n)}catch(r){return $=!1,x.pbkdf2(t,e.salt,P.iterations,n)}})(t.assign({salt:i},P),l,8*(2*W[r]+2)),h=new a(c),f=oe(X,ae(h,0,W[r])),p=oe(X,ae(h,W[r],2*W[r])),d=ae(h,2*W[r]);return t.assign(n,{keys:{key:f,authentication:p,passwordVerification:d},ctr:new Q(new J(f),e.from(N)),hmac:new Y(p)}),d}function se(e,t){let n=e;return e.length+t.length&&(n=new a(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ae(e,t,n){return e.subarray(t,n)}function ie(e,t){return e.fromBits(t)}function oe(e,t){return e.toBits(t)}class le extends g{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),ue(this,e)},transform(e,t){const n=this;if(n.password){const t=he(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(T);e=e.subarray(12)}r?t.error(new s(H)):t.enqueue(he(n,e))}})}}class ce extends g{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),ue(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=q(new a(12));t[11]=n.passwordVerification,r=new a(e.length+t.length),r.set(fe(n,t),0),s=12}else r=new a(e.length),s=0;r.set(fe(n,e),s),t.enqueue(r)}})}}function he(e,t){const n=new a(t.length);for(let r=0;r>>24]),a=~e.crcKey2.get(),e.keys=[n,s,a]}function de(e){const t=2|e.keys[2];return ge(r.imul(t,1^t)>>>8)}function ge(e){return 255&e}function we(e){return 4294967295&e}const ve="deflate-raw";class ye extends g{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:l,level:c}=e,f=this;let u,p,d=me(super.readable);a&&!o||!l||(u=new S,d=Se(d,u)),s&&(d=ke(d,i,{level:c,chunkSize:t},r,n)),a&&(o?d=Se(d,new ce(e)):(p=new te(e),d=Se(d,p))),_e(f,d,(()=>{let e;a&&!o&&(e=p.signature),a&&!o||!l||(e=new h(u.value.buffer).getUint32(0)),f.signature=e}))}}class be extends g{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:a,encrypted:i,signed:o,signature:l,compressed:c,useCompressionStream:f}=e;let u,p,d=me(super.readable);i&&(a?d=Se(d,new le(e)):(p=new ee(e),d=Se(d,p))),c&&(d=ke(d,f,{chunkSize:t},r,n)),i&&!a||!o||(u=new S,d=Se(d,u)),_e(this,d,(()=>{if((!i||a)&&o){const e=new h(u.value.buffer);if(l!=e.getUint32(0,!1))throw new s(R)}}))}}function me(e){return Se(e,new g({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function _e(e,n,r){n=Se(n,new g({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function ke(e,t,n,r,s){try{e=Se(e,new(t&&r?r:s)(ve,n))}catch(r){if(!t)throw r;e=Se(e,new s(ve,n))}return e}function Se(e,t){return e.pipeThrough(t)}const ze="data";class De extends g{constructor(e,n){super({});const r=this,{codecType:s}=e;let a;s.startsWith("deflate")?a=ye:s.startsWith("inflate")&&(a=be);let i=0;const o=new a(e,n),l=super.readable,c=new g({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=o;t.assign(r,{signature:e,size:i})}});t.defineProperty(r,"readable",{get:()=>l.pipeThrough(o).pipeThrough(c)})}}const Ce=new c,Ie=new c;let xe=0;async function Ae(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new m(self.Deflate)),self.Inflate&&(s.DecompressionStream=new m(self.Inflate));const a={highWaterMark:1,size:()=>s.chunkSize},i=e.readable||new w({async pull(e){const t=new f((e=>Ce.set(xe,e)));Te({type:"pull",messageId:xe}),xe=(xe+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},a),o=e.writable||new v({async write(e){let t;const r=new f((e=>t=e));Ie.set(xe,t),Te({type:ze,value:e,messageId:xe}),xe=(xe+1)%n.MAX_SAFE_INTEGER,await r}},a),l=new De(t,s);await i.pipeThrough(l).pipeTo(o,{preventClose:!0,preventAbort:!0});try{await o.getWriter().close()}catch(e){}const{signature:c,size:h}=l;Te({type:"close",result:{signature:c,size:h}})}catch(e){Re(e)}}function Te(e){let{value:t}=e;if(t)if(t.length)try{t=new a(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Re(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:a}=e;d({error:{message:t,stack:n,code:r,name:a}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Ae(e),t==ze){const e=Ce.get(n);Ce.delete(n),e({value:new a(r),done:s})}if("ack"==t){const e=Ie.get(n);Ie.delete(n),e()}}catch(e){Re(e)}}));var He=a,qe=i,Be=l,Ke=new He([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ve=new He([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Pe=new He([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ee=(e,t)=>{for(var n=new qe(31),r=0;31>r;++r)n[r]=t+=1<r;++r)for(var a=n[r];aje;++je){var Ge=(43690&je)>>1|(21845&je)<<1;Ge=(61680&(Ge=(52428&Ge)>>2|(13107&Ge)<<2))>>4|(3855&Ge)<<4,Le[je]=((65280&Ge)>>8|(255&Ge)<<8)>>1}var Xe=(e,t,n)=>{for(var r=e.length,s=0,a=new qe(t);r>s;++s)e[s]&&++a[e[s]-1];var i,o=new qe(t);for(s=1;t>s;++s)o[s]=o[s-1]+a[s-1]<<1;if(n){i=new qe(1<s;++s)if(e[s])for(var c=s<<4|e[s],h=t-e[s],f=o[e[s]-1]++<=f;++f)i[Le[f]>>l]=c}else for(i=new qe(r),s=0;r>s;++s)e[s]&&(i[s]=Le[o[e[s]-1]++]>>15-e[s]);return i},Je=new He(288);for(je=0;144>je;++je)Je[je]=8;for(je=144;256>je;++je)Je[je]=9;for(je=256;280>je;++je)Je[je]=7;for(je=280;288>je;++je)Je[je]=8;var Qe=new He(32);for(je=0;32>je;++je)Qe[je]=5;var Ye=Xe(Je,9,0),Ze=Xe(Je,9,1),$e=Xe(Qe,5,0),et=Xe(Qe,5,1),tt=e=>{for(var t=e[0],n=1;nt&&(t=e[n]);return t},nt=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},rt=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},st=e=>(e+7)/8|0,at=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new He(e.subarray(t,n))),it=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],ot=(e,t,n)=>{var r=new s(t||it[e]);if(r.code=e,s.captureStackTrace&&s.captureStackTrace(r,ot),!n)throw r;return r},lt=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},ct=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},ht=(e,t)=>{for(var n=[],r=0;re.f-t.f)),n.push({s:-1,f:25001});var o=n[0],l=n[1],c=0,h=1,f=2;for(n[0]={s:-1,f:o.f+l.f,l:o,r:l};h!=s-1;)o=n[n[c].fr;++r)a[r].s>u&&(u=a[r].s);var p=new qe(u+1),d=ft(n[h-1],p,0);if(d>t){r=0;var g=0,w=d-t,v=1<p[t.s]-p[e.s]||e.f-t.f));s>r;++r){var y=a[r].s;if(p[y]<=t)break;g+=v-(1<>=w;g>0;){var b=a[r].s;p[b]=0&&g;--r){var m=a[r].s;p[m]==t&&(--p[m],++g)}d=t}return{t:new He(p),l:d}},ft=(e,t,n)=>-1==e.s?r.max(ft(e.l,t,n+1),ft(e.r,t,n+1)):t[e.s]=n,ut=e=>{for(var t=e.length;t&&!e[--t];);for(var n=new qe(++t),r=0,s=e[0],a=1,i=e=>{n[r++]=e},o=1;t>=o;++o)if(e[o]==s&&o!=t)++a;else{if(!s&&a>2){for(;a>138;a-=138)i(32754);a>2&&(i(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(i(s),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(s);a=1,s=e[o]}return{c:n.subarray(0,r),n:t}},pt=(e,t)=>{for(var n=0,r=0;r{var r=n.length,s=st(t+2);e[s]=255&r,e[s+1]=r>>8,e[s+2]=255^e[s],e[s+3]=255^e[s+1];for(var a=0;r>a;++a)e[s+a+4]=n[a];return 8*(s+4+r)},gt=(e,t,n,r,s,a,i,o,l,c,h)=>{lt(t,h++,n),++s[256];for(var f=ht(s,15),u=f.t,p=f.l,d=ht(a,15),g=d.t,w=d.l,v=ut(u),y=v.c,b=v.n,m=ut(g),_=m.c,k=m.n,S=new qe(19),z=0;z4&&!C[Pe[x-1]];--x);var A,T,R,H,q=c+5<<3,B=pt(s,Je)+pt(a,Qe)+i,K=pt(s,u)+pt(a,g)+i+14+3*x+pt(S,C)+2*S[16]+3*S[17]+7*S[18];if(l>=0&&B>=q&&K>=q)return dt(t,h,e.subarray(l,l+c));if(lt(t,h,1+(B>K)),h+=2,B>K){A=Xe(u,p,0),T=u,R=Xe(g,w,0),H=g;var V=Xe(C,I,0);for(lt(t,h,b-257),lt(t,h+5,k-1),lt(t,h+10,x-4),h+=14,z=0;x>z;++z)lt(t,h+3*z,C[Pe[z]]);h+=3*x;for(var P=[y,_],E=0;2>E;++E){var U=P[E];for(z=0;z15&&(lt(t,h,U[z]>>5&127),h+=U[z]>>12)}}}else A=Ye,T=Je,R=$e,H=Qe;for(z=0;o>z;++z){var M=r[z];if(M>255){ct(t,h,A[257+(W=M>>18&31)]),h+=T[W+257],W>7&&(lt(t,h,M>>23&31),h+=Ke[W]);var N=31&M;ct(t,h,R[N]),h+=H[N],N>3&&(ct(t,h,M>>5&8191),h+=Ve[N])}else ct(t,h,A[M]),h+=T[M]}return ct(t,h,A[256]),h+T[256]},wt=new Be([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),vt=new He(0),yt=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new He(98304),this.o.dictionary){var n=this.o.dictionary.subarray(-32768);this.b.set(n,32768-n.length),this.s.i=32768-n.length}}return e.prototype.p=function(e,t){this.ondata(((e,t,n,s,a)=>{if(!a&&(a={l:1},t.dictionary)){var i=t.dictionary.subarray(-32768),o=new He(i.length+e.length);o.set(i),o.set(e,i.length),e=o,a.w=i.length}return((e,t,n,s,a,i)=>{var o=i.z||e.length,l=new He(0+o+5*(1+r.ceil(o/7e3))+0),c=l.subarray(0,l.length-0),h=i.l,f=7&(i.r||0);if(t){f&&(c[0]=i.r>>3);for(var u=wt[t-1],p=u>>13,d=8191&u,g=(1<(e[t]^e[t+1]<C+2;++C){var T=m(C),R=32767&C,H=v[T];if(w[R]=H,v[T]=R,C>=x){var q=o-C;if((z>7e3||I>24576)&&(q>423||!h)){f=gt(e,c,0,_,k,S,D,I,A,C-A,f),I=z=D=0,A=C;for(var B=0;286>B;++B)k[B]=0;for(B=0;30>B;++B)S[B]=0}var K=2,V=0,P=d,E=R-H&32767;if(q>2&&T==m(C-E))for(var U=r.min(p,q)-1,W=r.min(32767,C),M=r.min(258,q);W>=E&&--P&&R!=H;){if(e[C+K]==e[C+K-E]){for(var N=0;M>N&&e[C+N]==e[C+N-E];++N);if(N>K){if(K=N,V=E,N>U)break;var O=r.min(E,N-2),F=0;for(B=0;O>B;++B){var L=C-E+B&32767,j=L-w[L]&32767;j>F&&(F=j,H=L)}}}E+=(R=H)-(H=w[R])&32767}if(V){_[I++]=268435456|Me[K]<<18|Fe[V];var G=31&Me[K],X=31&Fe[V];D+=Ke[G]+Ve[X],++k[257+G],++S[X],x=C+K,++z}else _[I++]=e[C],++k[e[C]]}}for(C=r.max(C,x);o>C;++C)_[I++]=e[C],++k[e[C]];f=gt(e,c,h,_,k,S,D,I,A,C-A,f),h||(i.r=7&f|c[f/8|0]<<3,f-=7,i.h=v,i.p=w,i.i=C,i.w=x)}else{for(C=i.w||0;o+h>C;C+=65535){var J=C+65535;o>J||(c[f/8|0]=h,J=o),f=dt(c,f+1,e.subarray(C,J))}i.i=o}return at(l,0,0+st(f)+0)})(e,null==t.level?6:t.level,null==t.mem?r.ceil(1.5*r.max(8,r.min(13,r.log(e.length)))):12+t.mem,0,0,a)})(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||ot(5),this.s.l&&ot(4);var n=e.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var r=new He(-32768&n);r.set(this.b.subarray(0,this.s.z)),this.b=r}var s=this.b.length-this.s.z;s&&(this.b.set(e.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(s),32768),this.s.z=e.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e}(),bt=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new He(32768),this.p=new He(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||ot(5),this.d&&ot(4),this.p.length){if(e.length){var t=new He(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=((e,t,n)=>{var s=e.length;if(!s||t.f&&!t.l)return n||new He(0);var a=!n,i=a||2!=t.i,o=t.i;a&&(n=new He(3*s));var l=e=>{var t=n.length;if(e>t){var s=new He(r.max(2*t,e));s.set(n),n=s}},c=t.f||0,h=t.p||0,f=t.b||0,u=t.l,p=t.d,d=t.m,g=t.n,w=8*s;do{if(!u){c=nt(e,h,1);var v=nt(e,h+1,3);if(h+=3,!v){var y=e[(A=st(h)+4)-4]|e[A-3]<<8,b=A+y;if(b>s){o&&ot(0);break}i&&l(f+y),n.set(e.subarray(A,b),f),t.b=f+=y,t.p=h=8*b,t.f=c;continue}if(1==v)u=Ze,p=et,d=9,g=5;else if(2==v){var m=nt(e,h,31)+257,_=nt(e,h+10,15)+4,k=m+nt(e,h+5,31)+1;h+=14;for(var S=new He(k),z=new He(19),D=0;_>D;++D)z[Pe[D]]=nt(e,h+3*D,7);h+=3*_;var C=tt(z),I=(1<D;){var A,T=x[nt(e,h,I)];if(h+=15&T,16>(A=T>>4))S[D++]=A;else{var R=0,H=0;for(16==A?(H=3+nt(e,h,3),h+=2,R=S[D-1]):17==A?(H=3+nt(e,h,7),h+=3):18==A&&(H=11+nt(e,h,127),h+=7);H--;)S[D++]=R}}var q=S.subarray(0,m),B=S.subarray(m);d=tt(q),g=tt(B),u=Xe(q,d,1),p=Xe(B,g,1)}else ot(1);if(h>w){o&&ot(0);break}}i&&l(f+131072);for(var K=(1<>4;if((h+=15&R)>w){o&&ot(0);break}if(R||ot(2),256>E)n[f++]=E;else{if(256==E){P=h,u=null;break}var U=E-254;if(E>264){var W=Ke[D=E-257];U=nt(e,h,(1<>4;if(M||ot(3),h+=15&M,B=Oe[N],N>3&&(W=Ve[N],B+=rt(e,h)&(1<w){o&&ot(0);break}i&&l(f+131072);var O=f+U;if(B>f){var F=0-B,L=r.min(B,O);for(0>F+f&&ot(3);L>f;++f)n[f]=undefined[F+f]}for(;O>f;++f)n[f]=n[f-B]}}t.l=u,t.p=P,t.b=f,t.f=c,u&&(c=1,t.m=d,t.d=p,t.n=g)}while(!c);return f!=n.length&&a?at(n,0,f):n.subarray(0,f)})(this.p,this.s,this.o);this.ondata(at(n,t,this.s.b),this.d),this.o=at(n,this.s.b-32768),this.s.b=this.o.length,this.p=at(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),mt="undefined"!=typeof TextDecoder&&new TextDecoder;try{mt.decode(vt,{stream:!0})}catch(e){}function _t(e,n,r){return class{constructor(s){const i=this;var o,l;o=s,l="level",("function"==typeof t.hasOwn?t.hasOwn(o,l):o.hasOwnProperty(l))&&void 0===s.level&&delete s.level,i.codec=new e(t.assign({},n,s)),r(i.codec,(e=>{if(i.pendingData){const t=i.pendingData;i.pendingData=new a(t.length+e.length);const{pendingData:n}=i;n.set(t,0),n.set(e,t.length)}else i.pendingData=new a(e)}))}append(e){return this.codec.push(e),s(this)}flush(){return this.codec.push(new a,!0),s(this)}};function s(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new a}}const{Deflate:kt,Inflate:St}=((e,t={},n)=>({Deflate:_t(e.Deflate,t.deflate,n),Inflate:_t(e.Inflate,t.inflate,n)}))({Deflate:yt,Inflate:bt},void 0,((e,t)=>e.ondata=t));self.initCodec=()=>{self.Deflate=kt,self.Inflate=St};\n'],{type:"text/javascript"}));n({workerScripts:{inflate:[e],deflate:[e]}})}(un);var no=Object.freeze({__proto__:null,BlobReader:lt,BlobWriter:ct,Data64URIReader:class extends rt{constructor(n){super();let e=n.length;for(;"="==n.charAt(e-1);)e--;const a=n.indexOf(",")+1;t.assign(this,{dataURI:n,dataStart:a,size:r.floor(.75*(e-a))})}readUint8Array(n,e){const{dataStart:t,dataURI:a}=this,o=new p(e),i=4*r.floor(n/3),s=atob(a.substring(i+t,4*r.ceil((n+e)/3)+t)),l=n-3*r.floor(i/4);for(let n=l;n2?e.data+=j(o):e.pending=o}getData(){return this.data+j(this.pending)}},ERR_BAD_FORMAT:aa,ERR_CENTRAL_DIRECTORY_NOT_FOUND:sa,ERR_DUPLICATED_NAME:Ta,ERR_ENCRYPTED:ma,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:ra,ERR_EOCDR_NOT_FOUND:oa,ERR_EOCDR_ZIP64_NOT_FOUND:ia,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ca,ERR_HTTP_RANGE:Ze,ERR_INVALID_COMMENT:Ra,ERR_INVALID_ENCRYPTION_STRENGTH:_a,ERR_INVALID_ENTRY_COMMENT:Ia,ERR_INVALID_ENTRY_NAME:Ma,ERR_INVALID_EXTRAFIELD_DATA:Na,ERR_INVALID_EXTRAFIELD_TYPE:Pa,ERR_INVALID_PASSWORD:En,ERR_INVALID_SIGNATURE:Tn,ERR_INVALID_VERSION:Da,ERR_ITERATOR_COMPLETED_TOO_SOON:Xe,ERR_LOCAL_FILE_HEADER_NOT_FOUND:la,ERR_SPLIT_ZIP_FILE:pa,ERR_UNSUPPORTED_COMPRESSION:ha,ERR_UNSUPPORTED_ENCRYPTION:da,ERR_UNSUPPORTED_FORMAT:Ba,HttpRangeReader:class extends xt{constructor(n,e={}){e.useRangeHeader=!0,super(n,e)}},HttpReader:xt,Reader:rt,SplitDataReader:At,SplitDataWriter:Lt,SplitZipReader:It,SplitZipWriter:Mt,TextReader:mt,TextWriter:class extends ct{constructor(n){super(n),t.assign(this,{encoding:n,utf8:!n||"utf-8"==n.toLowerCase()})}async getData(){const{encoding:n,utf8:e}=this,a=await super.getData();if(a.text&&e)return a.text();{const e=new FileReader;return new f(((o,i)=>{t.assign(e,{onload:({target:n})=>o(n.result),onerror:()=>i(e.error)}),e.readAsText(a,n)}))}}},Uint8ArrayReader:class extends rt{constructor(n){super(),t.assign(this,{array:n,size:n.length})}readUint8Array(n,e){return this.array.slice(n,n+e)}},Uint8ArrayWriter:Ct,Writer:st,ZipReader:class{constructor(n,e={}){t.assign(this,{reader:Et(n),options:e,config:hn()})}async*getEntriesGenerator(n={}){const e=this;let{reader:a}=e;const{config:o}=e;if(await zt(a),a.size!==an&&a.readUint8Array||(a=new lt(await new m(a.readable).blob()),await zt(a)),a.size=0;n--)if(r[n]==i[0]&&r[n+1]==i[1]&&r[n+2]==i[2]&&r[n+3]==i[3])return{offset:o+n,buffer:r.slice(n,n+a).buffer}}}(a,O,a.size,q,1048560);if(!i){throw La(Ea(await Rt(a,0,4)))==P?new h(pa):new h(oa)}const s=Ea(i);let l=La(s,12),c=La(s,16);const d=i.offset,u=Aa(s,20),g=d+q+u;let w=Aa(s,4);const b=a.lastDiskNumber||0;let y=Aa(s,6),k=Aa(s,8),v=0,j=0;if(c==T||l==T||k==R||y==R){const n=Ea(await Rt(a,i.offset-20,20));if(La(n,0)!=F)throw new h(ia);c=za(n,8);let e=await Rt(a,c,56,-1),t=Ea(e);const o=i.offset-20-56;if(La(t,0)!=U&&c!=o){const n=c;c=o,v=c-n,e=await Rt(a,c,56,-1),t=Ea(e)}if(La(t,0)!=U)throw new h(ra);w==R&&(w=La(t,16)),y==R&&(y=La(t,20)),k==R&&(k=za(t,32)),l==T&&(l=za(t,40)),c-=l}if(c>=a.size&&(v=a.size-c-l-q,c=a.size-l-q),b!=w)throw new h(pa);if(c<0)throw new h(aa);let S=0,x=await Rt(a,c,l,y),C=Ea(x);if(l){const n=i.offset-l;if(La(C,S)!=B&&c!=n){const e=c;c=n,v+=c-e,x=await Rt(a,c,l,y),C=Ea(x)}}const A=i.offset-c-(a.lastDiskOffset||0);if(l!=A&&A>=0&&(l=A,x=await Rt(a,c,l,y),C=Ea(x)),c<0||c>=a.size)throw new h(aa);const L=ja(e,n,"filenameEncoding"),z=ja(e,n,"commentEncoding");for(let i=0;is.getData(n,D,e),S=b;const{onprogress:_}=n;if(_)try{await _(i+1,k,new ta(s))}catch(n){}yield D}const E=ja(e,n,"extractPrependedData"),I=ja(e,n,"extractAppendedData");return E&&(e.prependedData=j>0?await Rt(a,0,j):new p),e.comment=u?await Rt(a,d+q,u):new p,I&&(e.appendedData=g{Ye(n),n.terminate()}))}});async function eo(n,{password:e,prompt:t=(()=>{}),shadowRootScriptURL:a,zipOptions:o={useWebWorkers:!1},noBlobURL:i}={}){const r={gif:"image/gif",jpg:"image/jpeg",png:"image/png",tif:"image/tiff",tiff:"image/tiff",bmp:"image/bmp",ico:"image/vnd.microsoft.icon",webp:"image/webp",svg:"image/svg+xml",avi:"video/x-msvideo",ogv:"video/ogg",mp4:"video/mp4",mpeg:"video/mpeg",ts:"video/mp2t",webm:"video/webm","3gp":"video/3gpp","3g2":"video/3gpp",mp3:"audio/mpeg",oga:"audio/ogg",mid:"audio/midi",midi:"audio/midi",opus:"audio/opus",wav:"audio/wav",weba:"audio/webm",heif:"image/heif",heic:"image/heic",avif:"image/avif",apng:"image/apng",mov:"video/quicktime",otf:"font/otf",ttf:"font/ttf",woff:"font/woff",woff2:"font/woff2",eot:"application/vnd.ms-fontobject"},s=/stylesheet_[0-9]+\.css/,l=/scripts\/[0-9]+\.js/,c=/^([0-9_]+\/)?index\.html$/,m=/index\.html$/,d=/frames\//,h=";charset=utf-8",p=/([{}()^$&.*?/+|[\\\\]|\]|-)/g;Array.isArray(n)&&(n=new Blob([new Uint8Array(n)])),zip.configure(o);const u=new zip.BlobReader(n),g=new zip.ZipReader(u),w=await g.getEntries(),b={password:e};let f,y,k,v=[],j=[];await Promise.all(w.map((async n=>{const{filename:e}=n;let a,o,c,p;const u={};if(e.match(m)?j.push(u):v.push(u),!b.password&&n.encrypted&&(b.password=t("Please enter the password to view the page")),e.match(m)||e.match(s)||e.match(l))a=new zip.TextWriter,c=await n.getData(a,b),e.match(m)?p="text/html"+h:(e.match(s)?p="text/css"+h:e.match(l)&&(p="text/javascript"+h),o=void 0!==c?i?await S(c,p):URL.createObjectURL(new Blob([c],{type:p})):"data:text/plain,");else{const t=e.match(/\.([^.]+)/);if(p=t&&t[1]&&r[t[1]]?r[t[1]]:"application/octet-stream",e.match(d)||i)o=await n.getData(new zip.Data64URIWriter(p),b);else{const e=await n.getData(new zip.BlobWriter(p),b);o=URL.createObjectURL(e)}}const g=n.filename.match(/^([0-9_]+\/)?(.*)$/)[2];Object.assign(u,{filename:n.filename,name:g,url:n.comment,content:o,mimeType:p,textContent:c,parentResources:[]})}))),await g.close(),j.sort((function(n,e){return e.filename.length-n.filename.length})),v=v.concat(...j);for(const n of v){let{textContent:e,mimeType:t,filename:o}=n;if(void 0!==e){let r="";const s=o.match(/(.*\/)[^/]+$/);if(s&&s[1]&&(r=s[1]),o.match(c)&&(y=e),!o.match(l)){const t=o;await Promise.all(v.map((async n=>{const{filename:a,parentResources:o,content:i}=n;if(a.startsWith(r)&&a!=t){const n=a.substring(r.length);if(!n.match(/manifest\.json$/)){-1!=e.indexOf(n)&&(o.push(t),e=x(e,n,i))}}}))),n.textContent=e}o.match(m)&&a&&(n.textContent=e.replace(/