@zip.js/zip.js 2.5.12 → 2.5.15

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/dist/zip.js CHANGED
@@ -4,7 +4,7 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.zip = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- const { Array, Object, String, BigInt, Math, Date, Map, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, FileReader, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream } = globalThis;
7
+ const { Array, Object, String, BigInt, Math, Date, Map, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
8
8
 
9
9
  /*
10
10
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
@@ -37,6 +37,7 @@
37
37
  /* global navigator */
38
38
 
39
39
  const MINIMUM_CHUNK_SIZE = 64;
40
+ const UNDEFINED_TYPE$2 = undefined;
40
41
  const DEFAULT_CONFIGURATION = {
41
42
  chunkSize: 512 * 1024,
42
43
  maxWorkers: (typeof navigator != "undefined" && navigator.hardwareConcurrency) || 2,
@@ -56,53 +57,64 @@
56
57
  }
57
58
 
58
59
  function configure(configuration) {
59
- if (configuration.baseURL !== undefined) {
60
- config.baseURL = configuration.baseURL;
60
+ const {
61
+ baseURL,
62
+ chunkSize,
63
+ maxWorkers,
64
+ terminateWorkerTimeout,
65
+ useCompressionStream,
66
+ useWebWorkers,
67
+ Deflate,
68
+ Inflate,
69
+ workerScripts
70
+ } = configuration;
71
+ if (baseURL !== UNDEFINED_TYPE$2) {
72
+ config.baseURL = baseURL;
61
73
  }
62
- if (configuration.chunkSize !== undefined) {
63
- config.chunkSize = configuration.chunkSize;
74
+ if (chunkSize !== UNDEFINED_TYPE$2) {
75
+ config.chunkSize = chunkSize;
64
76
  }
65
- if (configuration.maxWorkers !== undefined) {
66
- config.maxWorkers = configuration.maxWorkers;
77
+ if (maxWorkers !== UNDEFINED_TYPE$2) {
78
+ config.maxWorkers = maxWorkers;
67
79
  }
68
- if (configuration.terminateWorkerTimeout !== undefined) {
69
- config.terminateWorkerTimeout = configuration.terminateWorkerTimeout;
80
+ if (terminateWorkerTimeout !== UNDEFINED_TYPE$2) {
81
+ config.terminateWorkerTimeout = terminateWorkerTimeout;
70
82
  }
71
- if (configuration.useCompressionStream !== undefined) {
72
- config.useCompressionStream = configuration.useCompressionStream;
83
+ if (useCompressionStream !== UNDEFINED_TYPE$2) {
84
+ config.useCompressionStream = useCompressionStream;
73
85
  }
74
- if (configuration.useWebWorkers !== undefined) {
75
- config.useWebWorkers = configuration.useWebWorkers;
86
+ if (useWebWorkers !== UNDEFINED_TYPE$2) {
87
+ config.useWebWorkers = useWebWorkers;
76
88
  }
77
- if (configuration.Deflate !== undefined) {
78
- config.Deflate = configuration.Deflate;
89
+ if (Deflate !== UNDEFINED_TYPE$2) {
90
+ config.Deflate = Deflate;
79
91
  }
80
- if (configuration.Inflate !== undefined) {
81
- config.Inflate = configuration.Inflate;
92
+ if (Inflate !== UNDEFINED_TYPE$2) {
93
+ config.Inflate = Inflate;
82
94
  }
83
- if (configuration.workerScripts !== undefined) {
84
- if (configuration.workerScripts.deflate) {
85
- if (!Array.isArray(configuration.workerScripts.deflate)) {
86
- throw new Error("workerScripts.deflate must be an array");
87
- }
95
+ if (workerScripts !== UNDEFINED_TYPE$2) {
96
+ const { deflate, inflate } = workerScripts;
97
+ if (deflate || inflate) {
88
98
  if (!config.workerScripts) {
89
99
  config.workerScripts = {};
90
100
  }
91
- config.workerScripts.deflate = configuration.workerScripts.deflate;
92
101
  }
93
- if (configuration.workerScripts.inflate) {
94
- if (!Array.isArray(configuration.workerScripts.inflate)) {
95
- throw new Error("workerScripts.inflate must be an array");
102
+ if (deflate) {
103
+ if (!Array.isArray(deflate)) {
104
+ throw new Error("workerScripts.deflate must be an array");
96
105
  }
97
- if (!config.workerScripts) {
98
- config.workerScripts = {};
106
+ config.workerScripts.deflate = deflate;
107
+ }
108
+ if (inflate) {
109
+ if (!Array.isArray(inflate)) {
110
+ throw new Error("workerScripts.inflate must be an array");
99
111
  }
100
- config.workerScripts.inflate = configuration.workerScripts.inflate;
112
+ config.workerScripts.inflate = inflate;
101
113
  }
102
114
  }
103
115
  }
104
116
 
105
- var e=e=>{if("function"==typeof URL.createObjectURL){const t=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:f,DataView:c,TextEncoder:l,crypto:a,postMessage:u,TransformStream:w,ReadableStream:h,WritableStream:d,CompressionStream:p,DecompressionStream:b}=globalThis,y=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;y[t]=e}class m{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^y[255&(e^t[n])];this.t=e}get(){return~this.t}}class k extends w{constructor(){super({start(){this.i=new m},transform(t){this.i.append(t)},flush(t){const e=new i(4);new c(e.buffer).setUint32(0,this.i.get()),t.enqueue(e)}})}}const g={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=g.o(n);return 32===r?t.concat(e):g.l(e,r,0|n,t.slice(0,t.length-1))},u(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+g.o(n)},h(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=g.p(e,t[r-1]&2147483648>>e-1,1)),t},p:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,o:t=>n.round(t/1099511627776)||32,l(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=g.o(i);return r.push(g.p(e+s&31,e+s>32?n:r.pop(),1)),r}},v={m:{k(t){const e=g.u(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},g(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(g.p(8*(3&n),r)),e}}},S={v:function(t){t?(this.S=t.S.slice(0),this._=t._.slice(0),this.C=t.C):this.reset()}};S.v.prototype={blockSize:512,reset(){const t=this;return t.S=this.A.slice(0),t._=[],t.C=0,t},update(t){const e=this;"string"==typeof t&&(t=v.I.g(t));const n=e._=g.concat(e._,t),i=e.C,s=e.C=i+g.u(t);if(s>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const f=new o(n);let c=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.V(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},P(){const t=this;let e=t._;const r=t.S;e=g.concat(e,[g.p(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t.C/4294967296)),e.push(0|t.C);e.length;)t.V(e.splice(0,16));return t.reset(),r},A:[1732584193,4023233417,2562383102,271733878,3285377520],B:[1518500249,1859775393,2400959708,3395469782],D:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,M:(t,e)=>e<<t|e>>>32-t,V(e){const r=this,i=r.S,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],f=i[1],c=i[2],l=i[3],a=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.M(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.M(5,o)+r.D(t,f,c,l)+a+s[t]+r.B[n.floor(t/20)]|0;a=l,l=c,c=r.M(30,f),f=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+f|0,i[2]=i[2]+c|0,i[3]=i[3]+l|0,i[4]=i[4]+a|0}};const _={getRandomValues(t){const e=new o(t.buffer),r=t=>{let e=987654321;const r=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&r,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let i,s=0;s<t.length;s+=4){const t=r(4294967296*(i||n.random()));i=987654071*t(),e[s/4]=4294967296*t()|0}return t}},C={importKey:t=>new C.R(v.m.g(t)),U(t,e,n,i){if(n=n||1e4,0>i||0>n)throw new r("invalid params to pbkdf2");const s=1+(i>>5)<<2;let o,f,l,a,u;const w=new ArrayBuffer(s),h=new c(w);let d=0;const p=g;for(e=v.m.g(e),u=1;(s||1)>d;u++){for(o=f=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(f=t.encrypt(f),a=0;a<f.length;a++)o[a]^=f[a];for(l=0;(s||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,i/8)},R:class{constructor(t){const e=this,n=e.T=S.v,r=[[],[]],i=n.prototype.blockSize/32;e.W=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.j=new n(e.W[0])}reset(){const t=this;t.j=new t.T(t.W[0]),t.H=!1}update(t){this.H=!0,this.j.update(t)}digest(){const t=this,e=t.j.P(),n=new t.T(t.W[1]).update(e).P();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},z={name:"PBKDF2"},x=e.assign({hash:{name:"HMAC"}},z),A=e.assign({iterations:1e3,hash:{name:"SHA-1"}},z),I=["deriveBits"],V=[8,12,16],P=[16,24,32],B=[0,0,0,0],D=void 0!==a,E=D&&void 0!==a.subtle,M=D&&"function"==typeof a.getRandomValues,R=D&&E&&"function"==typeof a.subtle.importKey,U=D&&E&&"function"==typeof a.subtle.deriveBits,T=v.m,W=class{constructor(t){const e=this;e.K=[[[],[],[],[],[]],[[],[],[],[],[]]],e.K[0][0][0]||e.L();const n=e.K[0][4],i=e.K[1],s=t.length;let o,f,c,l=1;if(4!==s&&6!==s&&8!==s)throw new r("invalid aes key size");for(e.B=[f=t.slice(0),c=[]],o=s;4*s+28>o;o++){let t=f[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-s]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.F(t,0)}decrypt(t){return this.F(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],i=[],s=[];let o,f,c,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let a=o=0;!n[a];a^=f||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[a]=s,r[s]=a,l=i[c=i[f=i[a]]];let u=16843009*l^65537*c^257*f^16843008*a,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][a]=w=w<<24^w>>>8,e[n][s]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}F(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.B[e],i=n.length/4-2,s=[0,0,0,0],o=this.K[e],f=o[0],c=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],m=t[e?1:3]^n[3],k=4;for(let t=0;i>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^a[255&m]^n[k],h=f[b>>>24]^c[y>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=f[y>>>24]^c[m>>16&255]^l[p>>8&255]^a[255&b]^n[k+2],m=f[m>>>24]^c[p>>16&255]^l[b>>8&255]^a[255&y]^n[k+3],k+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=u[p>>>24]<<24^u[b>>16&255]<<16^u[y>>8&255]<<8^u[255&m]^n[k++],w=p,p=b,b=y,y=m,m=w;return s}},j=class{constructor(t,e){this.O=t,this.q=e,this.G=e}reset(){this.G=this.q}update(t){return this.J(this.O,t,this.G)}N(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}X(t){0===(t[0]=this.N(t[0]))&&(t[1]=this.N(t[1]))}J(t,e,n){let r;if(!(r=e.length))return[];const i=g.u(e);for(let i=0;r>i;i+=4){this.X(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return g.h(e,i)}},H=C.R;class K extends w{constructor(n,s,o){let f;super({start(){e.assign(this,{ready:new Promise((t=>this.Y=t)),password:n,signed:s,Z:o-1,pending:new i(0)})},async transform(e,n){const s=this;if(s.password){const n=s.password;s.password=null;const i=G(e,0,V[s.Z]+2);await(async(t,e,n)=>{await O(t,n,G(e,0,V[t.Z]));const i=G(e,V[t.Z]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r("Invalid pasword")})(s,i,n),s.$=new j(new W(s.keys.key),t.from(B)),s.tt=new H(s.keys.et),e=G(e,V[s.Z]+2),s.Y()}else await s.ready;const o=new i(e.length-10-(e.length-10)%16);n.enqueue(F(s,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=G(n,0,n.length-10),s=G(n,n.length-10);let o=new i(0);if(r.length){const t=N(T,r);e.tt.update(t);const n=e.$.update(t);o=J(T,n)}if(f.valid=!0,e.signed){const t=G(J(T,e.tt.digest()),0,10);for(let e=0;10>e;e++)t[e]!=s[e]&&(f.valid=!1)}t.enqueue(o)}}),f=this}}class L extends w{constructor(n,r){let s;super({start(){e.assign(this,{ready:new Promise((t=>this.Y=t)),password:n,Z:r-1,pending:new i(0)})},async transform(e,n){const r=this;let s=new i(0);if(r.password){const e=r.password;r.password=null,s=await(async(t,e)=>{const n=(r=new i(V[t.Z]),M?a.getRandomValues(r):_.getRandomValues(r));var r;return await O(t,e,n),q(n,t.keys.passwordVerification)})(r,e),r.$=new j(new W(r.keys.key),t.from(B)),r.tt=new H(r.keys.et),r.Y()}else await r.ready;const o=new i(s.length+e.length-e.length%16);o.set(s,0),n.enqueue(F(r,e,o,s.length,0))},async flush(t){const e=this;await e.ready;let n=new i(0);if(e.pending.length){const t=e.$.update(N(T,e.pending));e.tt.update(t),n=J(T,t)}s.signature=J(T,e.tt.digest()).slice(0,10),t.enqueue(q(n,s.signature))}}),s=this}}function F(t,e,n,r,s,o){const f=e.length-s;let c;for(t.pending.length&&(e=q(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const i=N(T,G(e,c,c+16));o&&t.tt.update(i);const s=t.$.update(i);o||t.tt.update(s),n.set(J(T,s),c+r)}return t.pending=G(e,c),n}async function O(t,n,r){const s=(t=>{if(void 0===l){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new l).encode(t)})(n),o=await((t,e,n,r,i)=>R?a.subtle.importKey("raw",e,n,!1,i):C.importKey(e))(0,s,x,0,I),f=await(async(t,e,n)=>U?await a.subtle.deriveBits(t,e,n):C.U(e,t.salt,A.iterations,n))(e.assign({salt:r},A),o,8*(2*P[t.Z]+2)),c=new i(f);t.keys={key:N(T,G(c,0,P[t.Z])),et:N(T,G(c,P[t.Z],2*P[t.Z])),passwordVerification:G(c,2*P[t.Z])}}function q(t,e){let n=t;return t.length+e.length&&(n=new i(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function G(t,e,n){return t.subarray(e,n)}function J(t,e){return t.k(e)}function N(t,e){return t.g(e)}class Q extends w{constructor(t,n){let i;super({start(){e.assign(this,{password:t,passwordVerification:n}),$(this,t)},transform(t,e){const n=this;if(n.password){const e=Y(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid pasword");t=t.subarray(12)}e.enqueue(Y(n,t))},flush(){i.valid=!0}}),i=this}}class X extends w{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),$(this,t)},transform(t,e){const n=this;let r,s;if(n.password){n.password=null;const e=a.getRandomValues(new i(12));e[11]=n.passwordVerification,r=new i(t.length+e.length),r.set(Z(n,e),0),s=12}else r=new i(t.length),s=0;r.set(Z(n,t),s),e.enqueue(r)},flush(){}})}}function Y(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=et(t)^e[r],tt(t,n[r]);return n}function Z(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=et(t)^e[r],tt(t,e[r]);return n}function $(t,e){t.keys=[305419896,591751049,878082192],t.nt=new m(t.keys[0]),t.rt=new m(t.keys[2]);for(let n=0;n<e.length;n++)tt(t,e.charCodeAt(n))}function tt(t,e){t.nt.append([e]),t.keys[0]=~t.nt.get(),t.keys[1]=rt(t.keys[1]+nt(t.keys[0])),t.keys[1]=rt(n.imul(t.keys[1],134775813)+1),t.rt.append([t.keys[1]>>>24]),t.keys[2]=~t.rt.get()}function et(t){const e=2|t.keys[2];return nt(n.imul(e,1^e)>>>8)}function nt(t){return 255&t}function rt(t){return 4294967295&t}class it extends w{constructor(t,e){let n;super({start(){n=new t(e)},transform(t,e){t=n.append(t),e.enqueue(t)},flush(t){const e=n.flush();e&&t.enqueue(e)}})}}const st=void 0===p,ot=void 0===b;let ft=!0,ct=!0;class lt extends w{constructor(t,e,{it:n},...r){super({},...r);const{compressed:i,st:s,password:o,passwordVerification:f,encryptionStrength:l,zipCrypto:a,signed:u}=e,w=this;let h,d,b=wt(super.readable);const y=!!o;if(y&&!a||!u||([b,h]=b.tee(),h=h.pipeThrough(new k)),i)if(void 0!==s&&!s||st&&!ct)b=ut(t,b,n);else try{b=b.pipeThrough(new p("deflate-raw"))}catch(e){ct=!1,b=ut(t,b,n)}y&&(a?b=b.pipeThrough(new X(o,f)):(d=new L(o,l),b=b.pipeThrough(d))),ht(w,b,(async()=>{let t;y&&!a&&(t=d.signature),y&&!a||!u||(t=await h.getReader().read(),t=new c(t.value.buffer).getUint32(0)),w.signature=t}))}}class at extends w{constructor(t,e,{it:n},...i){super({},...i);const{zipCrypto:s,password:o,passwordVerification:f,signed:l,encryptionStrength:a,compressed:u,st:w}=e;let h,d,p=wt(super.readable);const y=!!o;if(y&&(s?p=p.pipeThrough(new Q(o,f)):(d=new K(o,l,a),p=p.pipeThrough(d))),u)if(void 0!==w&&!w||ot&&!ft)p=ut(t,p,n);else try{p=p.pipeThrough(new b("deflate-raw"))}catch(e){ft=!1,p=ut(t,p,n)}y&&!s||!l||([p,h]=p.tee(),h=h.pipeThrough(new k)),ht(this,p,(async()=>{if(y&&!s&&!d.valid)throw new r("Invalid signature");if((!y||s)&&l){const t=await h.getReader().read();if(t!=new c(t.value.buffer).getUint32(0,!1))throw new r("Invalid signature")}}))}}function ut(t,e,n){return e.pipeThrough(new it(t,{it:n}))}function wt(t){return t.pipeThrough(new w({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function ht(t,n,r){t.length=0,n=n.pipeThrough(new w({transform(e,n){e&&e.length&&(t.length+=e.length,n.enqueue(e))},flush:r})),e.defineProperty(t,"readable",{get:()=>n})}const dt=new Map;let pt,bt=0;function yt(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e.length!=e.buffer.byteLength&&(e=new i(e)),t.data=e.buffer,u(t,[t.data])}catch(e){u(t)}else u(t)}else u(t)}addEventListener("message",(async t=>{const e=t.data,n=e.type;try{if("start"==n&&(async t=>{try{t.scripts&&t.scripts.length&&importScripts.apply(void 0,t.scripts);const e=t.options;let n;self.initCodec&&self.initCodec(),e.codecType.startsWith("deflate")?n=self.Deflate:e.codecType.startsWith("inflate")&&(n=self.Inflate);const r=new h({async pull(t){let e=new Promise(((t,e)=>dt.set(bt,{resolve:t,reject:e})));yt({type:"pull",messageId:bt}),bt++;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},{highWaterMark:1}),i=new d({write(t){yt({type:"data",data:t})}});pt=((t,e,n,r,i)=>{const s=new AbortController,{signal:o}=s;if(r.codecType.startsWith("deflate"))return{ot:()=>f(lt),abort:c};if(r.codecType.startsWith("inflate"))return{ot:()=>f(at),abort:c};async function f(s){const f=new s(t,r,i);await e.pipeThrough(f,{signal:o}).pipeTo(n,{ft:!0});const{length:c,signature:l}=f;return{length:c,signature:l}}function c(){s.abort()}})(n,r,i,e,t.config),yt({type:"close",result:await pt.ot()})}catch(t){u({error:{message:t.message,stack:t.stack}})}})(e),"data"==n){const{resolve:t}=dt.get(e.messageId);dt.delete(e.messageId),t({value:new i(e.data),done:e.done})}"abort"==n&&pt.abort()}catch(t){u({error:{message:t.message,stack:t.stack}})}}));const mt=(()=>{const e=-2;function o(e){return f(e.map((([e,n])=>new t(e).fill(n,0,e))))}function f(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?f(n):n)),[])}const c=[0,1,2,3].concat(...o([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function l(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.ct=r=>{const i=t.lt,s=t.wt.ut,o=t.wt.ht;let f,c,l,a=-1;for(r.dt=0,r.bt=573,f=0;o>f;f++)0!==i[2*f]?(r.yt[++r.dt]=a=f,r.kt[f]=0):i[2*f+1]=0;for(;2>r.dt;)l=r.yt[++r.dt]=2>a?++a:0,i[2*l]=1,r.kt[l]=0,r.gt--,s&&(r.vt-=s[2*l+1]);for(t.St=a,f=n.floor(r.dt/2);f>=1;f--)r._t(i,f);l=o;do{f=r.yt[1],r.yt[1]=r.yt[r.dt--],r._t(i,1),c=r.yt[1],r.yt[--r.bt]=f,r.yt[--r.bt]=c,i[2*l]=i[2*f]+i[2*c],r.kt[l]=n.max(r.kt[f],r.kt[c])+1,i[2*f+1]=i[2*c+1]=l,r.yt[1]=l++,r._t(i,1)}while(r.dt>=2);r.yt[--r.bt]=r.yt[1],(e=>{const n=t.lt,r=t.wt.ut,i=t.wt.Ct,s=t.wt.zt,o=t.wt.xt;let f,c,l,a,u,w,h=0;for(a=0;15>=a;a++)e.At[a]=0;for(n[2*e.yt[e.bt]+1]=0,f=e.bt+1;573>f;f++)c=e.yt[f],a=n[2*n[2*c+1]+1]+1,a>o&&(a=o,h++),n[2*c+1]=a,c>t.St||(e.At[a]++,u=0,s>c||(u=i[c-s]),w=n[2*c],e.gt+=w*(a+u),r&&(e.vt+=w*(r[2*c+1]+u)));if(0!==h){do{for(a=o-1;0===e.At[a];)a--;e.At[a]--,e.At[a+1]+=2,e.At[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(c=e.At[a];0!==c;)l=e.yt[--f],l>t.St||(n[2*l+1]!=a&&(e.gt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),c--)}})(r),((t,n,r)=>{const i=[];let s,o,f,c=0;for(s=1;15>=s;s++)i[s]=c=c+r[s-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(i[f]++,f))})(i,t.St,r.At)}}function a(t,e,n,r,i){const s=this;s.ut=t,s.Ct=e,s.zt=n,s.ht=r,s.xt=i}l.It=[0,1,2,3,4,5,6,7].concat(...o([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),l.Vt=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],l.Pt=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],l.Bt=t=>256>t?c[t]:c[256+(t>>>7)],l.Dt=[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],l.Et=[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],l.Mt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l.Rt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const u=o([[144,8],[112,9],[24,7],[8,8]]);a.Ut=f([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,u[e]])));const w=o([[30,5]]);function h(t,e,n,r,i){const s=this;s.Tt=t,s.Wt=e,s.jt=n,s.Ht=r,s.Kt=i}a.Lt=f([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,w[e]]))),a.Ft=new a(a.Ut,l.Dt,257,286,15),a.Ot=new a(a.Lt,l.Et,0,30,15),a.qt=new a(null,l.Mt,0,19,7);const d=[new h(0,0,0,0,0),new h(4,4,8,4,1),new h(4,5,16,8,1),new h(4,6,32,32,1),new h(4,4,16,16,2),new h(8,16,32,32,2),new h(8,16,128,128,2),new h(8,32,128,256,2),new h(32,128,258,1024,2),new h(32,258,258,4096,2)],p=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],b=113,y=666,m=262;function k(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function g(){const t=this;let r,o,f,c,u,w,h,g,v,S,_,C,z,x,A,I,V,P,B,D,E,M,R,U,T,W,j,H,K,L,F,O,q;const G=new l,J=new l,N=new l;let Q,X,Y,Z,$,tt;function et(){let e;for(e=0;286>e;e++)F[2*e]=0;for(e=0;30>e;e++)O[2*e]=0;for(e=0;19>e;e++)q[2*e]=0;F[512]=1,t.gt=t.vt=0,X=Y=0}function nt(t,e){let n,r=-1,i=t[1],s=0,o=7,f=4;0===i&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=i,i=t[2*(c+1)+1],++s<o&&n==i||(f>s?q[2*n]+=s:0!==n?(n!=r&&q[2*n]++,q[32]++):s>10?q[36]++:q[34]++,s=0,r=n,0===i?(o=138,f=3):n==i?(o=6,f=3):(o=7,f=4))}function rt(e){t.Gt[t.pending++]=e}function it(t){rt(255&t),rt(t>>>8&255)}function st(t,e){let n;const r=e;tt>16-r?(n=t,$|=n<<tt&65535,it($),$=n>>>16-tt,tt+=r-16):($|=t<<tt&65535,tt+=r)}function ot(t,e){const n=2*t;st(65535&e[n],65535&e[n+1])}function ft(t,e){let n,r,i=-1,s=t[1],o=0,f=7,c=4;for(0===s&&(f=138,c=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=f||r!=s){if(c>o)do{ot(r,q)}while(0!=--o);else 0!==r?(r!=i&&(ot(r,q),o--),ot(16,q),st(o-3,2)):o>10?(ot(18,q),st(o-11,7)):(ot(17,q),st(o-3,3));o=0,i=r,0===s?(f=138,c=3):r==s?(f=6,c=3):(f=7,c=4)}}function ct(){16==tt?(it($),$=0,tt=0):8>tt||(rt(255&$),$>>>=8,tt-=8)}function lt(e,r){let i,s,o;if(t.Jt[X]=e,t.Nt[X]=255&r,X++,0===e?F[2*r]++:(Y++,e--,F[2*(l.It[r]+256+1)]++,O[2*l.Bt(e)]++),0==(8191&X)&&j>2){for(i=8*X,s=E-V,o=0;30>o;o++)i+=O[2*o]*(5+l.Et[o]);if(i>>>=3,Y<n.floor(X/2)&&i<n.floor(s/2))return!0}return X==Q-1}function at(e,n){let r,i,s,o,f=0;if(0!==X)do{r=t.Jt[f],i=t.Nt[f],f++,0===r?ot(i,e):(s=l.It[i],ot(s+256+1,e),o=l.Dt[s],0!==o&&(i-=l.Vt[s],st(i,o)),r--,s=l.Bt(r),ot(s,n),o=l.Et[s],0!==o&&(r-=l.Pt[s],st(r,o)))}while(X>f);ot(256,e),Z=e[513]}function ut(){tt>8?it($):tt>0&&rt(255&$),$=0,tt=0}function wt(e,n,r){st(0+(r?1:0),3),((e,n)=>{ut(),Z=8,it(n),it(~n),t.Gt.set(g.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function ht(e){((e,n,r)=>{let i,s,o=0;j>0?(G.ct(t),J.ct(t),o=(()=>{let e;for(nt(F,G.St),nt(O,J.St),N.ct(t),e=18;e>=3&&0===q[2*l.Rt[e]+1];e--);return t.gt+=14+3*(e+1),e})(),i=t.gt+3+7>>>3,s=t.vt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(st(2+(r?1:0),3),at(a.Ut,a.Lt)):(st(4+(r?1:0),3),((t,e,n)=>{let r;for(st(t-257,5),st(e-1,5),st(n-4,4),r=0;n>r;r++)st(q[2*l.Rt[r]+1],3);ft(F,t-1),ft(O,e-1)})(G.St+1,J.St+1,o+1),at(F,O)):wt(e,n,r),et(),r&&ut()})(0>V?-1:V,E-V,e),V=E,r.Qt()}function dt(){let t,e,n,i;do{if(i=v-R-E,0===i&&0===E&&0===R)i=u;else if(-1==i)i--;else if(E>=u+u-m){g.set(g.subarray(u,u+u),0),M-=u,E-=u,V-=u,t=z,n=t;do{e=65535&_[--n],_[n]=u>e?0:e-u}while(0!=--t);t=u,n=t;do{e=65535&S[--n],S[n]=u>e?0:e-u}while(0!=--t);i+=u}if(0===r.Xt)return;t=r.Yt(g,E+R,i),R+=t,3>R||(C=255&g[E],C=(C<<I^255&g[E+1])&A)}while(m>R&&0!==r.Xt)}function pt(t){let e,n,r=T,i=E,s=U;const o=E>u-m?E-(u-m):0;let f=L;const c=h,l=E+258;let a=g[i+s-1],w=g[i+s];K>U||(r>>=2),f>R&&(f=R);do{if(e=t,g[e+s]==w&&g[e+s-1]==a&&g[e]==g[i]&&g[++e]==g[i+1]){i+=2,e++;do{}while(g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&l>i);if(n=258-(l-i),i=l-258,n>s){if(M=t,s=n,n>=f)break;a=g[i+s-1],w=g[i+s]}}}while((t=65535&S[t&c])>o&&0!=--r);return s>R?R:s}t.kt=[],t.At=[],t.yt=[],F=[],O=[],q=[],t._t=(e,n)=>{const r=t.yt,i=r[n];let s=n<<1;for(;s<=t.dt&&(s<t.dt&&k(e,r[s+1],r[s],t.kt)&&s++,!k(e,i,r[s],t.kt));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Zt=(r,l,p,y,m,k)=>(y||(y=8),m||(m=8),k||(k=0),r.$t=null,-1==l&&(l=6),1>m||m>9||8!=y||9>p||p>15||0>l||l>9||0>k||k>2?e:(r.te=t,w=p,u=1<<w,h=u-1,x=m+7,z=1<<x,A=z-1,I=n.floor((x+3-1)/3),g=new i(2*u),S=[],_=[],Q=1<<m+6,t.Gt=new i(4*Q),f=4*Q,t.Jt=new s(Q),t.Nt=new i(Q),j=l,H=k,(e=>(e.ee=e.ne=0,e.$t=null,t.pending=0,t.re=0,o=b,c=0,G.lt=F,G.wt=a.Ft,J.lt=O,J.wt=a.Ot,N.lt=q,N.wt=a.qt,$=0,tt=0,Z=8,et(),(()=>{v=2*u,_[z-1]=0;for(let t=0;z-1>t;t++)_[t]=0;W=d[j].Wt,K=d[j].Tt,L=d[j].jt,T=d[j].Ht,E=0,V=0,R=0,P=U=2,D=0,C=0})(),0))(r))),t.ie=()=>42!=o&&o!=b&&o!=y?e:(t.Nt=null,t.Jt=null,t.Gt=null,_=null,S=null,g=null,t.te=null,o==b?-3:0),t.se=(t,n,r)=>{let i=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?e:(d[j].Kt!=d[n].Kt&&0!==t.ee&&(i=t.oe(1)),j!=n&&(j=n,W=d[j].Wt,K=d[j].Tt,L=d[j].jt,T=d[j].Ht),H=r,i)},t.fe=(t,n,r)=>{let i,s=r,f=0;if(!n||42!=o)return e;if(3>s)return 0;for(s>u-m&&(s=u-m,f=r-s),g.set(n.subarray(f,f+s),0),E=s,V=s,C=255&g[0],C=(C<<I^255&g[1])&A,i=0;s-3>=i;i++)C=(C<<I^255&g[i+2])&A,S[i&h]=_[C],_[C]=i;return 0},t.oe=(n,i)=>{let s,l,k,v,x;if(i>4||0>i)return e;if(!n.ce||!n.le&&0!==n.Xt||o==y&&4!=i)return n.$t=p[4],e;if(0===n.ae)return n.$t=p[7],-5;var T;if(r=n,v=c,c=i,42==o&&(l=8+(w-8<<4)<<8,k=(j-1&255)>>1,k>3&&(k=3),l|=k<<6,0!==E&&(l|=32),l+=31-l%31,o=b,rt((T=l)>>8&255),rt(255&T)),0!==t.pending){if(r.Qt(),0===r.ae)return c=-1,0}else if(0===r.Xt&&v>=i&&4!=i)return r.$t=p[7],-5;if(o==y&&0!==r.Xt)return n.$t=p[7],-5;if(0!==r.Xt||0!==R||0!=i&&o!=y){switch(x=-1,d[j].Kt){case 0:x=(t=>{let e,n=65535;for(n>f-5&&(n=f-5);;){if(1>=R){if(dt(),0===R&&0==t)return 0;if(0===R)break}if(E+=R,R=0,e=V+n,(0===E||E>=e)&&(R=E-e,E=e,ht(!1),0===r.ae))return 0;if(E-V>=u-m&&(ht(!1),0===r.ae))return 0}return ht(4==t),0===r.ae?4==t?2:0:4==t?3:1})(i);break;case 1:x=(t=>{let e,n=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(C=(C<<I^255&g[E+2])&A,n=65535&_[C],S[E&h]=_[C],_[C]=E),0===n||(E-n&65535)>u-m||2!=H&&(P=pt(n)),3>P)e=lt(0,255&g[E]),R--,E++;else if(e=lt(E-M,P-3),R-=P,P>W||3>R)E+=P,P=0,C=255&g[E],C=(C<<I^255&g[E+1])&A;else{P--;do{E++,C=(C<<I^255&g[E+2])&A,n=65535&_[C],S[E&h]=_[C],_[C]=E}while(0!=--P);E++}if(e&&(ht(!1),0===r.ae))return 0}return ht(4==t),0===r.ae?4==t?2:0:4==t?3:1})(i);break;case 2:x=(t=>{let e,n,i=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(C=(C<<I^255&g[E+2])&A,i=65535&_[C],S[E&h]=_[C],_[C]=E),U=P,B=M,P=2,0!==i&&W>U&&u-m>=(E-i&65535)&&(2!=H&&(P=pt(i)),5>=P&&(1==H||3==P&&E-M>4096)&&(P=2)),3>U||P>U)if(0!==D){if(e=lt(0,255&g[E-1]),e&&ht(!1),E++,R--,0===r.ae)return 0}else D=1,E++,R--;else{n=E+R-3,e=lt(E-1-B,U-3),R-=U-1,U-=2;do{++E>n||(C=(C<<I^255&g[E+2])&A,i=65535&_[C],S[E&h]=_[C],_[C]=E)}while(0!=--U);if(D=0,P=2,E++,e&&(ht(!1),0===r.ae))return 0}}return 0!==D&&(e=lt(0,255&g[E-1]),D=0),ht(4==t),0===r.ae?4==t?2:0:4==t?3:1})(i)}if(2!=x&&3!=x||(o=y),0==x||2==x)return 0===r.ae&&(c=-1),0;if(1==x){if(1==i)st(2,3),ot(256,a.Ut),ct(),9>1+Z+10-tt&&(st(2,3),ot(256,a.Ut),ct()),Z=7;else if(wt(0,0,!1),3==i)for(s=0;z>s;s++)_[s]=0;if(r.Qt(),0===r.ae)return c=-1,0}}return 4!=i?0:1}}function v(){const t=this;t.ue=0,t.we=0,t.Xt=0,t.ee=0,t.ae=0,t.ne=0}return v.prototype={Zt(t,e){const n=this;return n.te=new g,e||(e=15),n.te.Zt(n,t,e)},oe(t){const n=this;return n.te?n.te.oe(n,t):e},ie(){const t=this;if(!t.te)return e;const n=t.te.ie();return t.te=null,n},se(t,n){const r=this;return r.te?r.te.se(r,t,n):e},fe(t,n){const r=this;return r.te?r.te.fe(r,t,n):e},Yt(t,e,n){const r=this;let i=r.Xt;return i>n&&(i=n),0===i?0:(r.Xt-=i,t.set(r.le.subarray(r.ue,r.ue+i),e),r.ue+=i,r.ee+=i,i)},Qt(){const t=this;let e=t.te.pending;e>t.ae&&(e=t.ae),0!==e&&(t.ce.set(t.te.Gt.subarray(t.te.re,t.te.re+e),t.we),t.we+=e,t.te.re+=e,t.ne+=e,t.ae-=e,t.te.pending-=e,0===t.te.pending&&(t.te.re=0))}},function(t){const e=new v,s=(o=t&&t.it?t.it:65536)+5*(n.floor(o/16383)+1);var o;const f=new i(s);let c=t?t.level:-1;void 0===c&&(c=-1),e.Zt(c),e.ce=f,this.append=(t,n)=>{let o,c,l=0,a=0,u=0;const w=[];if(t.length){e.ue=0,e.le=t,e.Xt=t.length;do{if(e.we=0,e.ae=s,o=e.oe(0),0!=o)throw new r("deflating: "+e.$t);e.we&&(e.we==s?w.push(new i(f)):w.push(f.slice(0,e.we))),u+=e.we,n&&e.ue>0&&e.ue!=l&&(n(e.ue),l=e.ue)}while(e.Xt>0||0===e.ae);return w.length>1?(c=new i(u),w.forEach((t=>{c.set(t,a),a+=t.length}))):c=w[0]||new i(0),c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.we=0,e.ae=s,t=e.oe(4),1!=t&&0!=t)throw new r("deflating: "+e.$t);s-e.ae>0&&l.push(f.slice(0,e.we)),c+=e.we}while(e.Xt>0||0===e.ae);return e.ie(),n=new i(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}})(),kt=(()=>{const t=-2,e=-3,s=-5,o=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],c=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u=[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,112,112],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h=[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];function d(){let t,n,r,i,o,c;function l(t,n,f,l,a,u,w,h,d,p,b){let y,m,k,g,v,S,_,C,z,x,A,I,V,P,B;x=0,v=f;do{r[t[n+x]]++,x++,v--}while(0!==v);if(r[0]==f)return w[0]=-1,h[0]=0,0;for(C=h[0],S=1;15>=S&&0===r[S];S++);for(_=S,S>C&&(C=S),v=15;0!==v&&0===r[v];v--);for(k=v,C>v&&(C=v),h[0]=C,P=1<<S;v>S;S++,P<<=1)if(0>(P-=r[S]))return e;if(0>(P-=r[v]))return e;for(r[v]+=P,c[1]=S=0,x=1,V=2;0!=--v;)c[V]=S+=r[x],V++,x++;v=0,x=0;do{0!==(S=t[n+x])&&(b[c[S]++]=v),x++}while(++v<f);for(f=c[k],c[0]=v=0,x=0,g=-1,I=-C,o[0]=0,A=0,B=0;k>=_;_++)for(y=r[_];0!=y--;){for(;_>I+C;){if(g++,I+=C,B=k-I,B=B>C?C:B,(m=1<<(S=_-I))>y+1&&(m-=y+1,V=_,B>S))for(;++S<B&&(m<<=1)>r[++V];)m-=r[V];if(B=1<<S,p[0]+B>1440)return e;o[g]=A=p[0],p[0]+=B,0!==g?(c[g]=v,i[0]=S,i[1]=C,S=v>>>I-C,i[2]=A-o[g-1]-S,d.set(i,3*(o[g-1]+S))):w[0]=A}for(i[1]=_-I,f>x?b[x]<l?(i[0]=256>b[x]?0:96,i[2]=b[x++]):(i[0]=u[b[x]-l]+16+64,i[2]=a[b[x++]-l]):i[0]=192,m=1<<_-I,S=v>>>I;B>S;S+=m)d.set(i,3*(A+S));for(S=1<<_-1;0!=(v&S);S>>>=1)v^=S;for(v^=S,z=(1<<I)-1;(v&z)!=c[g];)g--,I-=C,z=(1<<I)-1}return 0!==P&&1!=k?s:0}function d(e){let s;for(t||(t=[],n=[],r=new f(16),i=[],o=new f(15),c=new f(16)),n.length<e&&(n=[]),s=0;e>s;s++)n[s]=0;for(s=0;16>s;s++)r[s]=0;for(s=0;3>s;s++)i[s]=0;o.set(r.subarray(0,15),0),c.set(r.subarray(0,16),0)}this.he=(r,i,o,f,c)=>{let a;return d(19),t[0]=0,a=l(r,0,19,19,null,null,o,i,f,t,n),a==e?c.$t="oversubscribed dynamic bit lengths tree":a!=s&&0!==i[0]||(c.$t="incomplete dynamic bit lengths tree",a=e),a},this.de=(r,i,o,f,c,p,b,y,m)=>{let k;return d(288),t[0]=0,k=l(o,0,r,257,a,u,p,f,y,t,n),0!=k||0===f[0]?(k==e?m.$t="oversubscribed literal/length tree":-4!=k&&(m.$t="incomplete literal/length tree",k=e),k):(d(288),k=l(o,r,i,0,w,h,b,c,y,t,n),0!=k||0===c[0]&&r>257?(k==e?m.$t="oversubscribed distance tree":k==s?(m.$t="incomplete distance tree",k=e):-4!=k&&(m.$t="empty distance tree with lengths",k=e),k):0)}}function p(){const n=this;let r,i,s,f,c=0,l=0,a=0,u=0,w=0,h=0,d=0,p=0,b=0,y=0;function m(t,n,r,i,s,f,c,l){let a,u,w,h,d,p,b,y,m,k,g,v,S,_,C,z;b=l.ue,y=l.Xt,d=c.pe,p=c.be,m=c.write,k=m<c.read?c.read-m-1:c.end-m,g=o[t],v=o[n];do{for(;20>p;)y--,d|=(255&l.ye(b++))<<p,p+=8;if(a=d&g,u=r,w=i,z=3*(w+a),0!==(h=u[z]))for(;;){if(d>>=u[z+1],p-=u[z+1],0!=(16&h)){for(h&=15,S=u[z+2]+(d&o[h]),d>>=h,p-=h;15>p;)y--,d|=(255&l.ye(b++))<<p,p+=8;for(a=d&v,u=s,w=f,z=3*(w+a),h=u[z];;){if(d>>=u[z+1],p-=u[z+1],0!=(16&h)){for(h&=15;h>p;)y--,d|=(255&l.ye(b++))<<p,p+=8;if(_=u[z+2]+(d&o[h]),d>>=h,p-=h,k-=S,_>m){C=m-_;do{C+=c.end}while(0>C);if(h=c.end-C,S>h){if(S-=h,m-C>0&&h>m-C)do{c.me[m++]=c.me[C++]}while(0!=--h);else c.me.set(c.me.subarray(C,C+h),m),m+=h,C+=h,h=0;C=0}}else C=m-_,m-C>0&&2>m-C?(c.me[m++]=c.me[C++],c.me[m++]=c.me[C++],S-=2):(c.me.set(c.me.subarray(C,C+2),m),m+=2,C+=2,S-=2);if(m-C>0&&S>m-C)do{c.me[m++]=c.me[C++]}while(0!=--S);else c.me.set(c.me.subarray(C,C+S),m),m+=S,C+=S,S=0;break}if(0!=(64&h))return l.$t="invalid distance code",S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,e;a+=u[z+2],a+=d&o[h],z=3*(w+a),h=u[z]}break}if(0!=(64&h))return 0!=(32&h)?(S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,1):(l.$t="invalid literal/length code",S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,e);if(a+=u[z+2],a+=d&o[h],z=3*(w+a),0===(h=u[z])){d>>=u[z+1],p-=u[z+1],c.me[m++]=u[z+2],k--;break}}else d>>=u[z+1],p-=u[z+1],c.me[m++]=u[z+2],k--}while(k>=258&&y>=10);return S=l.Xt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.pe=d,c.be=p,l.Xt=y,l.ee+=b-l.ue,l.ue=b,c.write=m,0}n.init=(t,e,n,o,c,l)=>{r=0,d=t,p=e,s=n,b=o,f=c,y=l,i=null},n.ke=(n,k,g)=>{let v,S,_,C,z,x,A,I=0,V=0,P=0;for(P=k.ue,C=k.Xt,I=n.pe,V=n.be,z=n.write,x=z<n.read?n.read-z-1:n.end-z;;)switch(r){case 0:if(x>=258&&C>=10&&(n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,g=m(d,p,s,b,f,y,n,k),P=k.ue,C=k.Xt,I=n.pe,V=n.be,z=n.write,x=z<n.read?n.read-z-1:n.end-z,0!=g)){r=1==g?7:9;break}a=d,i=s,l=b,r=1;case 1:for(v=a;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}if(S=3*(l+(I&o[v])),I>>>=i[S+1],V-=i[S+1],_=i[S],0===_){u=i[S+2],r=6;break}if(0!=(16&_)){w=15&_,c=i[S+2],r=2;break}if(0==(64&_)){a=_,l=S/3+i[S+2];break}if(0!=(32&_)){r=7;break}return r=9,k.$t="invalid literal/length code",g=e,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);case 2:for(v=w;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}c+=I&o[v],I>>=v,V-=v,a=p,i=f,l=y,r=3;case 3:for(v=a;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}if(S=3*(l+(I&o[v])),I>>=i[S+1],V-=i[S+1],_=i[S],0!=(16&_)){w=15&_,h=i[S+2],r=4;break}if(0==(64&_)){a=_,l=S/3+i[S+2];break}return r=9,k.$t="invalid distance code",g=e,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);case 4:for(v=w;v>V;){if(0===C)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,C--,I|=(255&k.ye(P++))<<V,V+=8}h+=I&o[v],I>>=v,V-=v,r=5;case 5:for(A=z-h;0>A;)A+=n.end;for(;0!==c;){if(0===x&&(z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x&&(n.write=z,g=n.ge(k,g),z=n.write,x=z<n.read?n.read-z-1:n.end-z,z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x)))return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);n.me[z++]=n.me[A++],x--,A==n.end&&(A=0),c--}r=0;break;case 6:if(0===x&&(z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x&&(n.write=z,g=n.ge(k,g),z=n.write,x=z<n.read?n.read-z-1:n.end-z,z==n.end&&0!==n.read&&(z=0,x=z<n.read?n.read-z-1:n.end-z),0===x)))return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);g=0,n.me[z++]=u,x--,r=0;break;case 7:if(V>7&&(V-=8,C++,P--),n.write=z,g=n.ge(k,g),z=n.write,x=z<n.read?n.read-z-1:n.end-z,n.read!=n.write)return n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);r=8;case 8:return g=1,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);case 9:return g=e,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g);default:return g=t,n.pe=I,n.be=V,k.Xt=C,k.ee+=P-k.ue,k.ue=P,n.write=z,n.ge(k,g)}},n.ve=()=>{}}d.Se=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=c,r[0]=l,0);const b=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function y(n,r){const c=this;let l,a=0,u=0,w=0,h=0;const y=[0],m=[0],k=new p;let g=0,v=new f(4320);const S=new d;c.be=0,c.pe=0,c.me=new i(r),c.end=r,c.read=0,c.write=0,c.reset=(t,e)=>{e&&(e[0]=0),6==a&&k.ve(t),a=0,c.be=0,c.pe=0,c.read=c.write=0},c.reset(n,null),c.ge=(t,e)=>{let n,r,i;return r=t.we,i=c.read,n=(i>c.write?c.end:c.write)-i,n>t.ae&&(n=t.ae),0!==n&&e==s&&(e=0),t.ae-=n,t.ne+=n,t.ce.set(c.me.subarray(i,i+n),r),r+=n,i+=n,i==c.end&&(i=0,c.write==c.end&&(c.write=0),n=c.write-i,n>t.ae&&(n=t.ae),0!==n&&e==s&&(e=0),t.ae-=n,t.ne+=n,t.ce.set(c.me.subarray(i,i+n),r),r+=n,i+=n),t.we=r,c.read=i,e},c.ke=(n,r)=>{let i,s,f,p,_,C,z,x;for(p=n.ue,_=n.Xt,s=c.pe,f=c.be,C=c.write,z=C<c.read?c.read-C-1:c.end-C;;){let A,I,V,P,B,D,E,M;switch(a){case 0:for(;3>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}switch(i=7&s,g=1&i,i>>>1){case 0:s>>>=3,f-=3,i=7&f,s>>>=i,f-=i,a=1;break;case 1:A=[],I=[],V=[[]],P=[[]],d.Se(A,I,V,P),k.init(A[0],I[0],V[0],0,P[0],0),s>>>=3,f-=3,a=6;break;case 2:s>>>=3,f-=3,a=3;break;case 3:return s>>>=3,f-=3,a=9,n.$t="invalid block type",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r)}break;case 1:for(;32>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if((~s>>>16&65535)!=(65535&s))return a=9,n.$t="invalid stored block lengths",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);u=65535&s,s=f=0,a=0!==u?2:0!==g?7:0;break;case 2:if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);if(0===z&&(C==c.end&&0!==c.read&&(C=0,z=C<c.read?c.read-C-1:c.end-C),0===z&&(c.write=C,r=c.ge(n,r),C=c.write,z=C<c.read?c.read-C-1:c.end-C,C==c.end&&0!==c.read&&(C=0,z=C<c.read?c.read-C-1:c.end-C),0===z)))return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);if(r=0,i=u,i>_&&(i=_),i>z&&(i=z),c.me.set(n.Yt(p,i),C),p+=i,_-=i,C+=i,z-=i,0!=(u-=i))break;a=0!==g?7:0;break;case 3:for(;14>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if(w=i=16383&s,(31&i)>29||(i>>5&31)>29)return a=9,n.$t="too many length or distance symbols",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);if(i=258+(31&i)+(i>>5&31),!l||l.length<i)l=[];else for(x=0;i>x;x++)l[x]=0;s>>>=14,f-=14,h=0,a=4;case 4:for(;4+(w>>>10)>h;){for(;3>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}l[b[h++]]=7&s,s>>>=3,f-=3}for(;19>h;)l[b[h++]]=0;if(y[0]=7,i=S.he(l,y,m,v,n),0!=i)return(r=i)==e&&(l=null,a=9),c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);h=0,a=5;case 5:for(;i=w,258+(31&i)+(i>>5&31)>h;){let t,u;for(i=y[0];i>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if(i=v[3*(m[0]+(s&o[i]))+1],u=v[3*(m[0]+(s&o[i]))+2],16>u)s>>>=i,f-=i,l[h++]=u;else{for(x=18==u?7:u-14,t=18==u?11:3;i+x>f;){if(0===_)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);r=0,_--,s|=(255&n.ye(p++))<<f,f+=8}if(s>>>=i,f-=i,t+=s&o[x],s>>>=x,f-=x,x=h,i=w,x+t>258+(31&i)+(i>>5&31)||16==u&&1>x)return l=null,a=9,n.$t="invalid bit length repeat",r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);u=16==u?l[x-1]:0;do{l[x++]=u}while(0!=--t);h=x}}if(m[0]=-1,B=[],D=[],E=[],M=[],B[0]=9,D[0]=6,i=w,i=S.de(257+(31&i),1+(i>>5&31),l,B,D,E,M,v,n),0!=i)return i==e&&(l=null,a=9),r=i,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);k.init(B[0],D[0],v,E[0],v,M[0]),a=6;case 6:if(c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,1!=(r=k.ke(c,n,r)))return c.ge(n,r);if(r=0,k.ve(n),p=n.ue,_=n.Xt,s=c.pe,f=c.be,C=c.write,z=C<c.read?c.read-C-1:c.end-C,0===g){a=0;break}a=7;case 7:if(c.write=C,r=c.ge(n,r),C=c.write,z=C<c.read?c.read-C-1:c.end-C,c.read!=c.write)return c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);a=8;case 8:return r=1,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);case 9:return r=e,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r);default:return r=t,c.pe=s,c.be=f,n.Xt=_,n.ee+=p-n.ue,n.ue=p,c.write=C,c.ge(n,r)}}},c.ve=t=>{c.reset(t,null),c.me=null,v=null},c._e=(t,e,n)=>{c.me.set(t.subarray(e,e+n),0),c.read=c.write=n},c.Ce=()=>1==a?1:0}const m=13,k=[0,0,255,255];function g(){const n=this;function r(e){return e&&e.ze?(e.ee=e.ne=0,e.$t=null,e.ze.mode=7,e.ze.xe.reset(e,null),0):t}n.mode=0,n.method=0,n.Ae=[0],n.Ie=0,n.marker=0,n.Ve=0,n.Pe=t=>(n.xe&&n.xe.ve(t),n.xe=null,0),n.Be=(e,i)=>(e.$t=null,n.xe=null,8>i||i>15?(n.Pe(e),t):(n.Ve=i,e.ze.xe=new y(e,1<<i),r(e),0)),n.De=(n,r)=>{let i,o;if(!n||!n.ze||!n.le)return t;const f=n.ze;for(r=4==r?s:0,i=s;;)switch(f.mode){case 0:if(0===n.Xt)return i;if(i=r,n.Xt--,n.ee++,8!=(15&(f.method=n.ye(n.ue++)))){f.mode=m,n.$t="unknown compression method",f.marker=5;break}if(8+(f.method>>4)>f.Ve){f.mode=m,n.$t="invalid win size",f.marker=5;break}f.mode=1;case 1:if(0===n.Xt)return i;if(i=r,n.Xt--,n.ee++,o=255&n.ye(n.ue++),((f.method<<8)+o)%31!=0){f.mode=m,n.$t="incorrect header check",f.marker=5;break}if(0==(32&o)){f.mode=7;break}f.mode=2;case 2:if(0===n.Xt)return i;i=r,n.Xt--,n.ee++,f.Ie=(255&n.ye(n.ue++))<<24&4278190080,f.mode=3;case 3:if(0===n.Xt)return i;i=r,n.Xt--,n.ee++,f.Ie+=(255&n.ye(n.ue++))<<16&16711680,f.mode=4;case 4:if(0===n.Xt)return i;i=r,n.Xt--,n.ee++,f.Ie+=(255&n.ye(n.ue++))<<8&65280,f.mode=5;case 5:return 0===n.Xt?i:(i=r,n.Xt--,n.ee++,f.Ie+=255&n.ye(n.ue++),f.mode=6,2);case 6:return f.mode=m,n.$t="need dictionary",f.marker=0,t;case 7:if(i=f.xe.ke(n,i),i==e){f.mode=m,f.marker=0;break}if(0==i&&(i=r),1!=i)return i;i=r,f.xe.reset(n,f.Ae),f.mode=12;case 12:return n.Xt=0,1;case m:return e;default:return t}},n.Ee=(e,n,r)=>{let i=0,s=r;if(!e||!e.ze||6!=e.ze.mode)return t;const o=e.ze;return s<1<<o.Ve||(s=(1<<o.Ve)-1,i=r-s),o.xe._e(n,i,s),o.mode=7,0},n.Me=n=>{let i,o,f,c,l;if(!n||!n.ze)return t;const a=n.ze;if(a.mode!=m&&(a.mode=m,a.marker=0),0===(i=n.Xt))return s;for(o=n.ue,f=a.marker;0!==i&&4>f;)n.ye(o)==k[f]?f++:f=0!==n.ye(o)?0:4-f,o++,i--;return n.ee+=o-n.ue,n.ue=o,n.Xt=i,a.marker=f,4!=f?e:(c=n.ee,l=n.ne,r(n),n.ee=c,n.ne=l,a.mode=7,0)},n.Re=e=>e&&e.ze&&e.ze.xe?e.ze.xe.Ce():t}function v(){}return v.prototype={Be(t){const e=this;return e.ze=new g,t||(t=15),e.ze.Be(e,t)},De(e){const n=this;return n.ze?n.ze.De(n,e):t},Pe(){const e=this;if(!e.ze)return t;const n=e.ze.Pe(e);return e.ze=null,n},Me(){const e=this;return e.ze?e.ze.Me(e):t},Ee(e,n){const r=this;return r.ze?r.ze.Ee(r,e,n):t},ye(t){return this.le[t]},Yt(t,e){return this.le.subarray(t,t+e)}},function(t){const e=new v,o=t&&t.it?n.floor(2*t.it):131072,f=new i(o);let c=!1;e.Be(),e.ce=f,this.append=(t,n)=>{const l=[];let a,u,w=0,h=0,d=0;if(0!==t.length){e.ue=0,e.le=t,e.Xt=t.length;do{if(e.we=0,e.ae=o,0!==e.Xt||c||(e.ue=0,c=!0),a=e.De(0),c&&a===s){if(0!==e.Xt)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+e.$t);if((c||1===a)&&e.Xt===t.length)throw new r("inflating: bad input");e.we&&(e.we===o?l.push(new i(f)):l.push(f.slice(0,e.we))),d+=e.we,n&&e.ue>0&&e.ue!=w&&(n(e.ue),w=e.ue)}while(e.Xt>0||0===e.ae);return l.length>1?(u=new i(d),l.forEach((t=>{u.set(t,h),h+=t.length}))):u=l[0]||new i(0),u}},this.flush=()=>{e.Pe()}}})();self.initCodec=()=>{self.Deflate=mt,self.Inflate=kt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}};
117
+ var e=e=>{if("function"==typeof URL.createObjectURL){const t=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:f,DataView:c,Promise:l,TextEncoder:a,crypto:u,postMessage:w,TransformStream:h,ReadableStream:d,WritableStream:p,CompressionStream:b,DecompressionStream:y}=globalThis,m=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;m[t]=e}class g{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^m[255&(e^t[n])];this.t=e}get(){return~this.t}}class k extends h{constructor(){super({start(){this.i=new g},transform(t){this.i.append(t)},flush(t){const e=new s(4);new c(e.buffer).setUint32(0,this.i.get()),t.enqueue(e)}})}}const v={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=v.o(n);return 32===r?t.concat(e):v.l(e,r,0|n,t.slice(0,t.length-1))},u(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+v.o(n)},h(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=v.p(e,t[r-1]&2147483648>>e-1,1)),t},p:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,o:t=>n.round(t/1099511627776)||32,l(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,i=v.o(s);return r.push(v.p(e+i&31,e+i>32?n:r.pop(),1)),r}},S={m:{g(t){const e=v.u(t)/8,n=new s(e);let r;for(let s=0;e>s;s++)0==(3&s)&&(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},k(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(v.p(8*(3&n),r)),e}}},_={v:function(t){t?(this.S=t.S.slice(0),this._=t._.slice(0),this.C=t.C):this.reset()}};_.v.prototype={blockSize:512,reset(){const t=this;return t.S=this.I.slice(0),t._=[],t.C=0,t},update(t){const e=this;"string"==typeof t&&(t=S.A.k(t));const n=e._=v.concat(e._,t),s=e.C,i=e.C=s+v.u(t);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const f=new o(n);let c=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);i>=t;t+=e.blockSize)e.V(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},B(){const t=this;let e=t._;const r=t.S;e=v.concat(e,[v.p(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t.C/4294967296)),e.push(0|t.C);e.length;)t.V(e.splice(0,16));return t.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],D:[1518500249,1859775393,2400959708,3395469782],M:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,P:(t,e)=>e<<t|e>>>32-t,V(e){const r=this,s=r.S,i=t(80);for(let t=0;16>t;t++)i[t]=e[t];let o=s[0],f=s[1],c=s[2],l=s[3],a=s[4];for(let t=0;79>=t;t++){16>t||(i[t]=r.P(1,i[t-3]^i[t-8]^i[t-14]^i[t-16]));const e=r.P(5,o)+r.M(t,f,c,l)+a+i[t]+r.D[n.floor(t/20)]|0;a=l,l=c,c=r.P(30,f),f=o,o=e}s[0]=s[0]+o|0,s[1]=s[1]+f|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+a|0}};const z={getRandomValues(t){const e=new o(t.buffer),r=t=>{let e=987654321;const r=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&r,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let s,i=0;i<t.length;i+=4){const t=r(4294967296*(s||n.random()));s=987654071*t(),e[i/4]=4294967296*t()|0}return t}},C={importKey:t=>new C.R(S.m.k(t)),T(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const i=1+(s>>5)<<2;let o,f,l,a,u;const w=new ArrayBuffer(i),h=new c(w);let d=0;const p=v;for(e=S.m.k(e),u=1;(i||1)>d;u++){for(o=f=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(f=t.encrypt(f),a=0;a<f.length;a++)o[a]^=f[a];for(l=0;(i||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,s/8)},R:class{constructor(t){const e=this,n=e.U=_.v,r=[[],[]],s=n.prototype.blockSize/32;e.W=[new n,new n],t.length>s&&(t=n.hash(t));for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.j=new n(e.W[0])}reset(){const t=this;t.j=new t.U(t.W[0]),t.H=!1}update(t){this.H=!0,this.j.update(t)}digest(){const t=this,e=t.j.B(),n=new t.U(t.W[1]).update(e).B();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},I={name:"PBKDF2"},x=e.assign({hash:{name:"HMAC"}},I),A=e.assign({iterations:1e3,hash:{name:"SHA-1"}},I),V=["deriveBits"],B=[8,12,16],D=[16,24,32],E=[0,0,0,0],M=void 0!==u,P=M&&void 0!==u.subtle,R=M&&"function"==typeof u.getRandomValues,T=M&&P&&"function"==typeof u.subtle.importKey,U=M&&P&&"function"==typeof u.subtle.deriveBits,W=S.m,j=class{constructor(t){const e=this;e.K=[[[],[],[],[],[]],[[],[],[],[],[]]],e.K[0][0][0]||e.L();const n=e.K[0][4],s=e.K[1],i=t.length;let o,f,c,l=1;if(4!==i&&6!==i&&8!==i)throw new r("invalid aes key size");for(e.D=[f=t.slice(0),c=[]],o=i;4*i+28>o;o++){let t=f[o-1];(o%i==0||8===i&&o%i==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%i==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-i]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.F(t,0)}decrypt(t){return this.F(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],s=[],i=[];let o,f,c,l;for(let t=0;256>t;t++)i[(s[t]=t<<1^283*(t>>7))^t]=t;for(let a=o=0;!n[a];a^=f||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[a]=i,r[i]=a,l=s[c=s[f=s[a]]];let u=16843009*l^65537*c^257*f^16843008*a,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)t[n][a]=w=w<<24^w>>>8,e[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}F(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.D[e],s=n.length/4-2,i=[0,0,0,0],o=this.K[e],f=o[0],c=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],m=t[e?1:3]^n[3],g=4;for(let t=0;s>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^a[255&m]^n[g],h=f[b>>>24]^c[y>>16&255]^l[m>>8&255]^a[255&p]^n[g+1],d=f[y>>>24]^c[m>>16&255]^l[p>>8&255]^a[255&b]^n[g+2],m=f[m>>>24]^c[p>>16&255]^l[b>>8&255]^a[255&y]^n[g+3],g+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)i[e?3&-t:t]=u[p>>>24]<<24^u[b>>16&255]<<16^u[y>>8&255]<<8^u[255&m]^n[g++],w=p,p=b,b=y,y=m,m=w;return i}},H=class{constructor(t,e){this.N=t,this.O=e,this.q=e}reset(){this.q=this.O}update(t){return this.G(this.N,t,this.q)}J(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}X(t){0===(t[0]=this.J(t[0]))&&(t[1]=this.J(t[1]))}G(t,e,n){let r;if(!(r=e.length))return[];const s=v.u(e);for(let s=0;r>s;s+=4){this.X(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return v.h(e,s)}},K=C.R;class L extends h{constructor(n,i,o){let f;super({start(){e.assign(this,{ready:new l((t=>this.Y=t)),password:n,signed:i,Z:o-1,pending:new s})},async transform(e,n){const i=this;if(i.password){const n=i.password;i.password=null;const s=G(e,0,B[i.Z]+2);await(async(t,e,n)=>{await O(t,n,G(e,0,B[t.Z]));const s=G(e,B[t.Z]),i=t.keys.passwordVerification;if(i[0]!=s[0]||i[1]!=s[1])throw new r("Invalid pasword")})(i,s,n),i.$=new H(new j(i.keys.key),t.from(E)),i.tt=new K(i.keys.et),e=G(e,B[i.Z]+2),i.Y()}else await i.ready;const o=new s(e.length-10-(e.length-10)%16);n.enqueue(N(i,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=G(n,0,n.length-10),i=G(n,n.length-10);let o=new s;if(r.length){const t=Q(W,r);e.tt.update(t);const n=e.$.update(t);o=J(W,n)}if(f.valid=!0,e.signed){const t=G(J(W,e.tt.digest()),0,10);for(let e=0;10>e;e++)t[e]!=i[e]&&(f.valid=!1)}t.enqueue(o)}}),f=this}}class F extends h{constructor(n,r){let i;super({start(){e.assign(this,{ready:new l((t=>this.Y=t)),password:n,Z:r-1,pending:new s})},async transform(e,n){const r=this;let i=new s;if(r.password){const e=r.password;r.password=null,i=await(async(t,e)=>{const n=(r=new s(B[t.Z]),R?u.getRandomValues(r):z.getRandomValues(r));var r;return await O(t,e,n),q(n,t.keys.passwordVerification)})(r,e),r.$=new H(new j(r.keys.key),t.from(E)),r.tt=new K(r.keys.et),r.Y()}else await r.ready;const o=new s(i.length+e.length-e.length%16);o.set(i,0),n.enqueue(N(r,e,o,i.length,0))},async flush(t){const e=this;await e.ready;let n=new s;if(e.pending.length){const t=e.$.update(Q(W,e.pending));e.tt.update(t),n=J(W,t)}i.signature=J(W,e.tt.digest()).slice(0,10),t.enqueue(q(n,i.signature))}}),i=this}}function N(t,e,n,r,i,o){const f=e.length-i;let c;for(t.pending.length&&(e=q(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new s(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const s=Q(W,G(e,c,c+16));o&&t.tt.update(s);const i=t.$.update(s);o||t.tt.update(i),n.set(J(W,i),c+r)}return t.pending=G(e,c),n}async function O(t,n,r){const i=(t=>{if(void 0===a){const e=new s((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new a).encode(t)})(n),o=await((t,e,n,r,s)=>T?u.subtle.importKey("raw",e,n,!1,s):C.importKey(e))(0,i,x,0,V),f=await(async(t,e,n)=>U?await u.subtle.deriveBits(t,e,n):C.T(e,t.salt,A.iterations,n))(e.assign({salt:r},A),o,8*(2*D[t.Z]+2)),c=new s(f);t.keys={key:Q(W,G(c,0,D[t.Z])),et:Q(W,G(c,D[t.Z],2*D[t.Z])),passwordVerification:G(c,2*D[t.Z])}}function q(t,e){let n=t;return t.length+e.length&&(n=new s(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function G(t,e,n){return t.subarray(e,n)}function J(t,e){return t.g(e)}function Q(t,e){return t.k(e)}class X extends h{constructor(t,n){let s;super({start(){e.assign(this,{password:t,passwordVerification:n}),tt(this,t)},transform(t,e){const n=this;if(n.password){const e=Z(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid pasword");t=t.subarray(12)}e.enqueue(Z(n,t))},flush(){s.valid=!0}}),s=this}}class Y extends h{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),tt(this,t)},transform(t,e){const n=this;let r,i;if(n.password){n.password=null;const e=u.getRandomValues(new s(12));e[11]=n.passwordVerification,r=new s(t.length+e.length),r.set($(n,e),0),i=12}else r=new s(t.length),i=0;r.set($(n,t),i),e.enqueue(r)},flush(){}})}}function Z(t,e){const n=new s(e.length);for(let r=0;r<e.length;r++)n[r]=nt(t)^e[r],et(t,n[r]);return n}function $(t,e){const n=new s(e.length);for(let r=0;r<e.length;r++)n[r]=nt(t)^e[r],et(t,e[r]);return n}function tt(t,e){t.keys=[305419896,591751049,878082192],t.nt=new g(t.keys[0]),t.rt=new g(t.keys[2]);for(let n=0;n<e.length;n++)et(t,e.charCodeAt(n))}function et(t,e){t.nt.append([e]),t.keys[0]=~t.nt.get(),t.keys[1]=st(t.keys[1]+rt(t.keys[0])),t.keys[1]=st(n.imul(t.keys[1],134775813)+1),t.rt.append([t.keys[1]>>>24]),t.keys[2]=~t.rt.get()}function nt(t){const e=2|t.keys[2];return rt(n.imul(e,1^e)>>>8)}function rt(t){return 255&t}function st(t){return 4294967295&t}class it extends h{constructor(t,e){let n;super({start(){n=new t(e)},transform(t,e){t=n.append(t),e.enqueue(t)},flush(t){const e=n.flush();e&&t.enqueue(e)}})}}const ot=void 0===b,ft=void 0===y;let ct=!0,lt=!0;class at extends h{constructor(t,e,{chunkSize:n},...r){super({},...r);const{compressed:s,st:i,password:o,passwordVerification:f,encryptionStrength:l,zipCrypto:a,signed:u}=e,w=this;let h,d,p=ht(super.readable);const y=!!o;if(y&&!a||!u||([p,h]=p.tee(),h=h.pipeThrough(new k)),s)if(void 0!==i&&!i||ot&&!lt)p=wt(t,p,n);else try{p=p.pipeThrough(new b("deflate-raw"))}catch(e){lt=!1,p=wt(t,p,n)}y&&(a?p=p.pipeThrough(new Y(o,f)):(d=new F(o,l),p=p.pipeThrough(d))),dt(w,p,(async()=>{let t;y&&!a&&(t=d.signature),y&&!a||!u||(t=await h.getReader().read(),t=new c(t.value.buffer).getUint32(0)),w.signature=t}))}}class ut extends h{constructor(t,e,{chunkSize:n},...s){super({},...s);const{zipCrypto:i,password:o,passwordVerification:f,signed:l,encryptionStrength:a,compressed:u,st:w}=e;let h,d,p=ht(super.readable);const b=!!o;if(b&&(i?p=p.pipeThrough(new X(o,f)):(d=new L(o,l,a),p=p.pipeThrough(d))),u)if(void 0!==w&&!w||ft&&!ct)p=wt(t,p,n);else try{p=p.pipeThrough(new y("deflate-raw"))}catch(e){ct=!1,p=wt(t,p,n)}b&&!i||!l||([p,h]=p.tee(),h=h.pipeThrough(new k)),dt(this,p,(async()=>{if(b&&!i&&!d.valid)throw new r("Invalid signature");if((!b||i)&&l){const t=await h.getReader().read();if(t!=new c(t.value.buffer).getUint32(0,!1))throw new r("Invalid signature")}}))}}function wt(t,e,n){return e.pipeThrough(new it(t,{chunkSize:n}))}function ht(t){return t.pipeThrough(new h({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function dt(t,n,r){t.length=0,n=n.pipeThrough(new h({transform(e,n){e&&e.length&&(t.length+=e.length,n.enqueue(e))},flush:r})),e.defineProperty(t,"readable",{get:()=>n})}const pt=new Map;let bt,yt=0;async function mt(t){try{const{options:e,scripts:n,config:r}=t,{codecType:s}=e;let i;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),s.startsWith("deflate")?i=self.Deflate:s.startsWith("inflate")&&(i=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},f=new d({async pull(t){let e=new l(((t,e)=>pt.set(yt,{resolve:t,reject:e})));gt({type:"pull",messageId:yt}),yt=(yt+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},o),c=new p({write(t){gt({type:"data",data:t})}},o);bt=((t,e,n,r,s)=>{const i=new AbortController,{signal:o}=i;if(r.codecType.startsWith("deflate"))return{it:()=>f(at),abort:c};if(r.codecType.startsWith("inflate"))return{it:()=>f(ut),abort:c};async function f(i){const f=new i(t,r,s);await e.pipeThrough(f,{signal:o}).pipeTo(n,{ot:!0});const{length:c,signature:l}=f;return{length:c,signature:l}}function c(){i.abort()}})(i,f,c,e,r),gt({type:"close",result:await bt.it()})}catch(t){const{message:e,stack:n}=t;w({error:{message:e,stack:n}})}}function gt(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e.length!=e.buffer.byteLength&&(e=new s(e)),t.data=e.buffer,w(t,[t.data])}catch(e){w(t)}else w(t)}else w(t)}addEventListener("message",(async t=>{const e=t.data,{type:n,messageId:r,data:i,done:o}=e;try{if("start"==n&&mt(e),"data"==n){const{resolve:t}=pt.get(r);pt.delete(r),t({value:new s(i),done:o})}"abort"==n&&bt.abort()}catch(t){w({error:{message:t.message,stack:t.stack}})}}));const kt=(()=>{const e=-2;function o(e){return f(e.map((([e,n])=>new t(e).fill(n,0,e))))}function f(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?f(n):n)),[])}const c=[0,1,2,3].concat(...o([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function l(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.ft=r=>{const s=t.ct,i=t.ut.lt,o=t.ut.wt;let f,c,l,a=-1;for(r.ht=0,r.dt=573,f=0;o>f;f++)0!==s[2*f]?(r.bt[++r.ht]=a=f,r.yt[f]=0):s[2*f+1]=0;for(;2>r.ht;)l=r.bt[++r.ht]=2>a?++a:0,s[2*l]=1,r.yt[l]=0,r.gt--,i&&(r.kt-=i[2*l+1]);for(t.vt=a,f=n.floor(r.ht/2);f>=1;f--)r.St(s,f);l=o;do{f=r.bt[1],r.bt[1]=r.bt[r.ht--],r.St(s,1),c=r.bt[1],r.bt[--r.dt]=f,r.bt[--r.dt]=c,s[2*l]=s[2*f]+s[2*c],r.yt[l]=n.max(r.yt[f],r.yt[c])+1,s[2*f+1]=s[2*c+1]=l,r.bt[1]=l++,r.St(s,1)}while(r.ht>=2);r.bt[--r.dt]=r.bt[1],(e=>{const n=t.ct,r=t.ut.lt,s=t.ut._t,i=t.ut.zt,o=t.ut.Ct;let f,c,l,a,u,w,h=0;for(a=0;15>=a;a++)e.It[a]=0;for(n[2*e.bt[e.dt]+1]=0,f=e.dt+1;573>f;f++)c=e.bt[f],a=n[2*n[2*c+1]+1]+1,a>o&&(a=o,h++),n[2*c+1]=a,c>t.vt||(e.It[a]++,u=0,i>c||(u=s[c-i]),w=n[2*c],e.gt+=w*(a+u),r&&(e.kt+=w*(r[2*c+1]+u)));if(0!==h){do{for(a=o-1;0===e.It[a];)a--;e.It[a]--,e.It[a+1]+=2,e.It[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(c=e.It[a];0!==c;)l=e.bt[--f],l>t.vt||(n[2*l+1]!=a&&(e.gt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),c--)}})(r),((t,n,r)=>{const s=[];let i,o,f,c=0;for(i=1;15>=i;i++)s[i]=c=c+r[i-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(s[f]++,f))})(s,t.vt,r.It)}}function a(t,e,n,r,s){const i=this;i.lt=t,i._t=e,i.zt=n,i.wt=r,i.Ct=s}l.xt=[0,1,2,3,4,5,6,7].concat(...o([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),l.At=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],l.Vt=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],l.Bt=t=>256>t?c[t]:c[256+(t>>>7)],l.Dt=[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],l.Et=[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],l.Mt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l.Pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const u=o([[144,8],[112,9],[24,7],[8,8]]);a.Rt=f([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,u[e]])));const w=o([[30,5]]);function h(t,e,n,r,s){const i=this;i.Tt=t,i.Ut=e,i.Wt=n,i.jt=r,i.Ht=s}a.Kt=f([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,w[e]]))),a.Lt=new a(a.Rt,l.Dt,257,286,15),a.Ft=new a(a.Kt,l.Et,0,30,15),a.Nt=new a(null,l.Mt,0,19,7);const d=[new h(0,0,0,0,0),new h(4,4,8,4,1),new h(4,5,16,8,1),new h(4,6,32,32,1),new h(4,4,16,16,2),new h(8,16,32,32,2),new h(8,16,128,128,2),new h(8,32,128,256,2),new h(32,128,258,1024,2),new h(32,258,258,4096,2)],p=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],b=113,y=666,m=262;function g(t,e,n,r){const s=t[2*e],i=t[2*n];return i>s||s==i&&r[e]<=r[n]}function k(){const t=this;let r,o,f,c,u,w,h,k,v,S,_,z,C,I,x,A,V,B,D,E,M,P,R,T,U,W,j,H,K,L,F,N,O;const q=new l,G=new l,J=new l;let Q,X,Y,Z,$,tt;function et(){let e;for(e=0;286>e;e++)F[2*e]=0;for(e=0;30>e;e++)N[2*e]=0;for(e=0;19>e;e++)O[2*e]=0;F[512]=1,t.gt=t.kt=0,X=Y=0}function nt(t,e){let n,r=-1,s=t[1],i=0,o=7,f=4;0===s&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=s,s=t[2*(c+1)+1],++i<o&&n==s||(f>i?O[2*n]+=i:0!==n?(n!=r&&O[2*n]++,O[32]++):i>10?O[36]++:O[34]++,i=0,r=n,0===s?(o=138,f=3):n==s?(o=6,f=3):(o=7,f=4))}function rt(e){t.Ot[t.pending++]=e}function st(t){rt(255&t),rt(t>>>8&255)}function it(t,e){let n;const r=e;tt>16-r?(n=t,$|=n<<tt&65535,st($),$=n>>>16-tt,tt+=r-16):($|=t<<tt&65535,tt+=r)}function ot(t,e){const n=2*t;it(65535&e[n],65535&e[n+1])}function ft(t,e){let n,r,s=-1,i=t[1],o=0,f=7,c=4;for(0===i&&(f=138,c=3),n=0;e>=n;n++)if(r=i,i=t[2*(n+1)+1],++o>=f||r!=i){if(c>o)do{ot(r,O)}while(0!=--o);else 0!==r?(r!=s&&(ot(r,O),o--),ot(16,O),it(o-3,2)):o>10?(ot(18,O),it(o-11,7)):(ot(17,O),it(o-3,3));o=0,s=r,0===i?(f=138,c=3):r==i?(f=6,c=3):(f=7,c=4)}}function ct(){16==tt?(st($),$=0,tt=0):8>tt||(rt(255&$),$>>>=8,tt-=8)}function lt(e,r){let s,i,o;if(t.qt[X]=e,t.Gt[X]=255&r,X++,0===e?F[2*r]++:(Y++,e--,F[2*(l.xt[r]+256+1)]++,N[2*l.Bt(e)]++),0==(8191&X)&&j>2){for(s=8*X,i=M-V,o=0;30>o;o++)s+=N[2*o]*(5+l.Et[o]);if(s>>>=3,Y<n.floor(X/2)&&s<n.floor(i/2))return!0}return X==Q-1}function at(e,n){let r,s,i,o,f=0;if(0!==X)do{r=t.qt[f],s=t.Gt[f],f++,0===r?ot(s,e):(i=l.xt[s],ot(i+256+1,e),o=l.Dt[i],0!==o&&(s-=l.At[i],it(s,o)),r--,i=l.Bt(r),ot(i,n),o=l.Et[i],0!==o&&(r-=l.Vt[i],it(r,o)))}while(X>f);ot(256,e),Z=e[513]}function ut(){tt>8?st($):tt>0&&rt(255&$),$=0,tt=0}function wt(e,n,r){it(0+(r?1:0),3),((e,n)=>{ut(),Z=8,st(n),st(~n),t.Ot.set(k.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function ht(e){((e,n,r)=>{let s,i,o=0;j>0?(q.ft(t),G.ft(t),o=(()=>{let e;for(nt(F,q.vt),nt(N,G.vt),J.ft(t),e=18;e>=3&&0===O[2*l.Pt[e]+1];e--);return t.gt+=14+3*(e+1),e})(),s=t.gt+3+7>>>3,i=t.kt+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==e?i==s?(it(2+(r?1:0),3),at(a.Rt,a.Kt)):(it(4+(r?1:0),3),((t,e,n)=>{let r;for(it(t-257,5),it(e-1,5),it(n-4,4),r=0;n>r;r++)it(O[2*l.Pt[r]+1],3);ft(F,t-1),ft(N,e-1)})(q.vt+1,G.vt+1,o+1),at(F,N)):wt(e,n,r),et(),r&&ut()})(0>V?-1:V,M-V,e),V=M,r.Jt()}function dt(){let t,e,n,s;do{if(s=v-R-M,0===s&&0===M&&0===R)s=u;else if(-1==s)s--;else if(M>=u+u-m){k.set(k.subarray(u,u+u),0),P-=u,M-=u,V-=u,t=C,n=t;do{e=65535&_[--n],_[n]=u>e?0:e-u}while(0!=--t);t=u,n=t;do{e=65535&S[--n],S[n]=u>e?0:e-u}while(0!=--t);s+=u}if(0===r.Qt)return;t=r.Xt(k,M+R,s),R+=t,3>R||(z=255&k[M],z=(z<<A^255&k[M+1])&x)}while(m>R&&0!==r.Qt)}function pt(t){let e,n,r=U,s=M,i=T;const o=M>u-m?M-(u-m):0;let f=L;const c=h,l=M+258;let a=k[s+i-1],w=k[s+i];K>T||(r>>=2),f>R&&(f=R);do{if(e=t,k[e+i]==w&&k[e+i-1]==a&&k[e]==k[s]&&k[++e]==k[s+1]){s+=2,e++;do{}while(k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&k[++s]==k[++e]&&l>s);if(n=258-(l-s),s=l-258,n>i){if(P=t,i=n,n>=f)break;a=k[s+i-1],w=k[s+i]}}}while((t=65535&S[t&c])>o&&0!=--r);return i>R?R:i}t.yt=[],t.It=[],t.bt=[],F=[],N=[],O=[],t.St=(e,n)=>{const r=t.bt,s=r[n];let i=n<<1;for(;i<=t.ht&&(i<t.ht&&g(e,r[i+1],r[i],t.yt)&&i++,!g(e,s,r[i],t.yt));)r[n]=r[i],n=i,i<<=1;r[n]=s},t.Yt=(r,l,p,y,m,g)=>(y||(y=8),m||(m=8),g||(g=0),r.Zt=null,-1==l&&(l=6),1>m||m>9||8!=y||9>p||p>15||0>l||l>9||0>g||g>2?e:(r.$t=t,w=p,u=1<<w,h=u-1,I=m+7,C=1<<I,x=C-1,A=n.floor((I+3-1)/3),k=new s(2*u),S=[],_=[],Q=1<<m+6,t.Ot=new s(4*Q),f=4*Q,t.qt=new i(Q),t.Gt=new s(Q),j=l,H=g,(e=>(e.te=e.ee=0,e.Zt=null,t.pending=0,t.ne=0,o=b,c=0,q.ct=F,q.ut=a.Lt,G.ct=N,G.ut=a.Ft,J.ct=O,J.ut=a.Nt,$=0,tt=0,Z=8,et(),(()=>{v=2*u,_[C-1]=0;for(let t=0;C-1>t;t++)_[t]=0;W=d[j].Ut,K=d[j].Tt,L=d[j].Wt,U=d[j].jt,M=0,V=0,R=0,B=T=2,E=0,z=0})(),0))(r))),t.re=()=>42!=o&&o!=b&&o!=y?e:(t.Gt=null,t.qt=null,t.Ot=null,_=null,S=null,k=null,t.$t=null,o==b?-3:0),t.se=(t,n,r)=>{let s=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?e:(d[j].Ht!=d[n].Ht&&0!==t.te&&(s=t.ie(1)),j!=n&&(j=n,W=d[j].Ut,K=d[j].Tt,L=d[j].Wt,U=d[j].jt),H=r,s)},t.oe=(t,n,r)=>{let s,i=r,f=0;if(!n||42!=o)return e;if(3>i)return 0;for(i>u-m&&(i=u-m,f=r-i),k.set(n.subarray(f,f+i),0),M=i,V=i,z=255&k[0],z=(z<<A^255&k[1])&x,s=0;i-3>=s;s++)z=(z<<A^255&k[s+2])&x,S[s&h]=_[z],_[z]=s;return 0},t.ie=(n,s)=>{let i,l,g,v,I;if(s>4||0>s)return e;if(!n.fe||!n.ce&&0!==n.Qt||o==y&&4!=s)return n.Zt=p[4],e;if(0===n.le)return n.Zt=p[7],-5;var U;if(r=n,v=c,c=s,42==o&&(l=8+(w-8<<4)<<8,g=(j-1&255)>>1,g>3&&(g=3),l|=g<<6,0!==M&&(l|=32),l+=31-l%31,o=b,rt((U=l)>>8&255),rt(255&U)),0!==t.pending){if(r.Jt(),0===r.le)return c=-1,0}else if(0===r.Qt&&v>=s&&4!=s)return r.Zt=p[7],-5;if(o==y&&0!==r.Qt)return n.Zt=p[7],-5;if(0!==r.Qt||0!==R||0!=s&&o!=y){switch(I=-1,d[j].Ht){case 0:I=(t=>{let e,n=65535;for(n>f-5&&(n=f-5);;){if(1>=R){if(dt(),0===R&&0==t)return 0;if(0===R)break}if(M+=R,R=0,e=V+n,(0===M||M>=e)&&(R=M-e,M=e,ht(!1),0===r.le))return 0;if(M-V>=u-m&&(ht(!1),0===r.le))return 0}return ht(4==t),0===r.le?4==t?2:0:4==t?3:1})(s);break;case 1:I=(t=>{let e,n=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(z=(z<<A^255&k[M+2])&x,n=65535&_[z],S[M&h]=_[z],_[z]=M),0===n||(M-n&65535)>u-m||2!=H&&(B=pt(n)),3>B)e=lt(0,255&k[M]),R--,M++;else if(e=lt(M-P,B-3),R-=B,B>W||3>R)M+=B,B=0,z=255&k[M],z=(z<<A^255&k[M+1])&x;else{B--;do{M++,z=(z<<A^255&k[M+2])&x,n=65535&_[z],S[M&h]=_[z],_[z]=M}while(0!=--B);M++}if(e&&(ht(!1),0===r.le))return 0}return ht(4==t),0===r.le?4==t?2:0:4==t?3:1})(s);break;case 2:I=(t=>{let e,n,s=0;for(;;){if(m>R){if(dt(),m>R&&0==t)return 0;if(0===R)break}if(3>R||(z=(z<<A^255&k[M+2])&x,s=65535&_[z],S[M&h]=_[z],_[z]=M),T=B,D=P,B=2,0!==s&&W>T&&u-m>=(M-s&65535)&&(2!=H&&(B=pt(s)),5>=B&&(1==H||3==B&&M-P>4096)&&(B=2)),3>T||B>T)if(0!==E){if(e=lt(0,255&k[M-1]),e&&ht(!1),M++,R--,0===r.le)return 0}else E=1,M++,R--;else{n=M+R-3,e=lt(M-1-D,T-3),R-=T-1,T-=2;do{++M>n||(z=(z<<A^255&k[M+2])&x,s=65535&_[z],S[M&h]=_[z],_[z]=M)}while(0!=--T);if(E=0,B=2,M++,e&&(ht(!1),0===r.le))return 0}}return 0!==E&&(e=lt(0,255&k[M-1]),E=0),ht(4==t),0===r.le?4==t?2:0:4==t?3:1})(s)}if(2!=I&&3!=I||(o=y),0==I||2==I)return 0===r.le&&(c=-1),0;if(1==I){if(1==s)it(2,3),ot(256,a.Rt),ct(),9>1+Z+10-tt&&(it(2,3),ot(256,a.Rt),ct()),Z=7;else if(wt(0,0,!1),3==s)for(i=0;C>i;i++)_[i]=0;if(r.Jt(),0===r.le)return c=-1,0}}return 4!=s?0:1}}function v(){const t=this;t.ae=0,t.ue=0,t.Qt=0,t.te=0,t.le=0,t.ee=0}return v.prototype={Yt(t,e){const n=this;return n.$t=new k,e||(e=15),n.$t.Yt(n,t,e)},ie(t){const n=this;return n.$t?n.$t.ie(n,t):e},re(){const t=this;if(!t.$t)return e;const n=t.$t.re();return t.$t=null,n},se(t,n){const r=this;return r.$t?r.$t.se(r,t,n):e},oe(t,n){const r=this;return r.$t?r.$t.oe(r,t,n):e},Xt(t,e,n){const r=this;let s=r.Qt;return s>n&&(s=n),0===s?0:(r.Qt-=s,t.set(r.ce.subarray(r.ae,r.ae+s),e),r.ae+=s,r.te+=s,s)},Jt(){const t=this;let e=t.$t.pending;e>t.le&&(e=t.le),0!==e&&(t.fe.set(t.$t.Ot.subarray(t.$t.ne,t.$t.ne+e),t.ue),t.ue+=e,t.$t.ne+=e,t.ee+=e,t.le-=e,t.$t.pending-=e,0===t.$t.pending&&(t.$t.ne=0))}},function(t){const e=new v,i=(o=t&&t.chunkSize?t.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const f=new s(i);let c=t?t.level:-1;void 0===c&&(c=-1),e.Yt(c),e.fe=f,this.append=(t,n)=>{let o,c,l=0,a=0,u=0;const w=[];if(t.length){e.ae=0,e.ce=t,e.Qt=t.length;do{if(e.ue=0,e.le=i,o=e.ie(0),0!=o)throw new r("deflating: "+e.Zt);e.ue&&(e.ue==i?w.push(new s(f)):w.push(f.slice(0,e.ue))),u+=e.ue,n&&e.ae>0&&e.ae!=l&&(n(e.ae),l=e.ae)}while(e.Qt>0||0===e.le);return w.length>1?(c=new s(u),w.forEach((t=>{c.set(t,a),a+=t.length}))):c=w[0]||new s,c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.ue=0,e.le=i,t=e.ie(4),1!=t&&0!=t)throw new r("deflating: "+e.Zt);i-e.le>0&&l.push(f.slice(0,e.ue)),c+=e.ue}while(e.Qt>0||0===e.le);return e.re(),n=new s(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}})(),vt=(()=>{const t=-2,e=-3,i=-5,o=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],c=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u=[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,112,112],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h=[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];function d(){let t,n,r,s,o,c;function l(t,n,f,l,a,u,w,h,d,p,b){let y,m,g,k,v,S,_,z,C,I,x,A,V,B,D;I=0,v=f;do{r[t[n+I]]++,I++,v--}while(0!==v);if(r[0]==f)return w[0]=-1,h[0]=0,0;for(z=h[0],S=1;15>=S&&0===r[S];S++);for(_=S,S>z&&(z=S),v=15;0!==v&&0===r[v];v--);for(g=v,z>v&&(z=v),h[0]=z,B=1<<S;v>S;S++,B<<=1)if(0>(B-=r[S]))return e;if(0>(B-=r[v]))return e;for(r[v]+=B,c[1]=S=0,I=1,V=2;0!=--v;)c[V]=S+=r[I],V++,I++;v=0,I=0;do{0!==(S=t[n+I])&&(b[c[S]++]=v),I++}while(++v<f);for(f=c[g],c[0]=v=0,I=0,k=-1,A=-z,o[0]=0,x=0,D=0;g>=_;_++)for(y=r[_];0!=y--;){for(;_>A+z;){if(k++,A+=z,D=g-A,D=D>z?z:D,(m=1<<(S=_-A))>y+1&&(m-=y+1,V=_,D>S))for(;++S<D&&(m<<=1)>r[++V];)m-=r[V];if(D=1<<S,p[0]+D>1440)return e;o[k]=x=p[0],p[0]+=D,0!==k?(c[k]=v,s[0]=S,s[1]=z,S=v>>>A-z,s[2]=x-o[k-1]-S,d.set(s,3*(o[k-1]+S))):w[0]=x}for(s[1]=_-A,f>I?b[I]<l?(s[0]=256>b[I]?0:96,s[2]=b[I++]):(s[0]=u[b[I]-l]+16+64,s[2]=a[b[I++]-l]):s[0]=192,m=1<<_-A,S=v>>>A;D>S;S+=m)d.set(s,3*(x+S));for(S=1<<_-1;0!=(v&S);S>>>=1)v^=S;for(v^=S,C=(1<<A)-1;(v&C)!=c[k];)k--,A-=z,C=(1<<A)-1}return 0!==B&&1!=g?i:0}function d(e){let i;for(t||(t=[],n=[],r=new f(16),s=[],o=new f(15),c=new f(16)),n.length<e&&(n=[]),i=0;e>i;i++)n[i]=0;for(i=0;16>i;i++)r[i]=0;for(i=0;3>i;i++)s[i]=0;o.set(r.subarray(0,15),0),c.set(r.subarray(0,16),0)}this.we=(r,s,o,f,c)=>{let a;return d(19),t[0]=0,a=l(r,0,19,19,null,null,o,s,f,t,n),a==e?c.Zt="oversubscribed dynamic bit lengths tree":a!=i&&0!==s[0]||(c.Zt="incomplete dynamic bit lengths tree",a=e),a},this.he=(r,s,o,f,c,p,b,y,m)=>{let g;return d(288),t[0]=0,g=l(o,0,r,257,a,u,p,f,y,t,n),0!=g||0===f[0]?(g==e?m.Zt="oversubscribed literal/length tree":-4!=g&&(m.Zt="incomplete literal/length tree",g=e),g):(d(288),g=l(o,r,s,0,w,h,b,c,y,t,n),0!=g||0===c[0]&&r>257?(g==e?m.Zt="oversubscribed distance tree":g==i?(m.Zt="incomplete distance tree",g=e):-4!=g&&(m.Zt="empty distance tree with lengths",g=e),g):0)}}function p(){const n=this;let r,s,i,f,c=0,l=0,a=0,u=0,w=0,h=0,d=0,p=0,b=0,y=0;function m(t,n,r,s,i,f,c,l){let a,u,w,h,d,p,b,y,m,g,k,v,S,_,z,C;b=l.ae,y=l.Qt,d=c.de,p=c.pe,m=c.write,g=m<c.read?c.read-m-1:c.end-m,k=o[t],v=o[n];do{for(;20>p;)y--,d|=(255&l.be(b++))<<p,p+=8;if(a=d&k,u=r,w=s,C=3*(w+a),0!==(h=u[C]))for(;;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15,S=u[C+2]+(d&o[h]),d>>=h,p-=h;15>p;)y--,d|=(255&l.be(b++))<<p,p+=8;for(a=d&v,u=i,w=f,C=3*(w+a),h=u[C];;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15;h>p;)y--,d|=(255&l.be(b++))<<p,p+=8;if(_=u[C+2]+(d&o[h]),d>>=h,p-=h,g-=S,_>m){z=m-_;do{z+=c.end}while(0>z);if(h=c.end-z,S>h){if(S-=h,m-z>0&&h>m-z)do{c.ye[m++]=c.ye[z++]}while(0!=--h);else c.ye.set(c.ye.subarray(z,z+h),m),m+=h,z+=h,h=0;z=0}}else z=m-_,m-z>0&&2>m-z?(c.ye[m++]=c.ye[z++],c.ye[m++]=c.ye[z++],S-=2):(c.ye.set(c.ye.subarray(z,z+2),m),m+=2,z+=2,S-=2);if(m-z>0&&S>m-z)do{c.ye[m++]=c.ye[z++]}while(0!=--S);else c.ye.set(c.ye.subarray(z,z+S),m),m+=S,z+=S,S=0;break}if(0!=(64&h))return l.Zt="invalid distance code",S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,e;a+=u[C+2],a+=d&o[h],C=3*(w+a),h=u[C]}break}if(0!=(64&h))return 0!=(32&h)?(S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,1):(l.Zt="invalid literal/length code",S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,e);if(a+=u[C+2],a+=d&o[h],C=3*(w+a),0===(h=u[C])){d>>=u[C+1],p-=u[C+1],c.ye[m++]=u[C+2],g--;break}}else d>>=u[C+1],p-=u[C+1],c.ye[m++]=u[C+2],g--}while(g>=258&&y>=10);return S=l.Qt-y,S=S>p>>3?p>>3:S,y+=S,b-=S,p-=S<<3,c.de=d,c.pe=p,l.Qt=y,l.te+=b-l.ae,l.ae=b,c.write=m,0}n.init=(t,e,n,o,c,l)=>{r=0,d=t,p=e,i=n,b=o,f=c,y=l,s=null},n.me=(n,g,k)=>{let v,S,_,z,C,I,x,A=0,V=0,B=0;for(B=g.ae,z=g.Qt,A=n.de,V=n.pe,C=n.write,I=C<n.read?n.read-C-1:n.end-C;;)switch(r){case 0:if(I>=258&&z>=10&&(n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,k=m(d,p,i,b,f,y,n,g),B=g.ae,z=g.Qt,A=n.de,V=n.pe,C=n.write,I=C<n.read?n.read-C-1:n.end-C,0!=k)){r=1==k?7:9;break}a=d,s=i,l=b,r=1;case 1:for(v=a;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>>=s[S+1],V-=s[S+1],_=s[S],0===_){u=s[S+2],r=6;break}if(0!=(16&_)){w=15&_,c=s[S+2],r=2;break}if(0==(64&_)){a=_,l=S/3+s[S+2];break}if(0!=(32&_)){r=7;break}return r=9,g.Zt="invalid literal/length code",k=e,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);case 2:for(v=w;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}c+=A&o[v],A>>=v,V-=v,a=p,s=f,l=y,r=3;case 3:for(v=a;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>=s[S+1],V-=s[S+1],_=s[S],0!=(16&_)){w=15&_,h=s[S+2],r=4;break}if(0==(64&_)){a=_,l=S/3+s[S+2];break}return r=9,g.Zt="invalid distance code",k=e,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);case 4:for(v=w;v>V;){if(0===z)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,z--,A|=(255&g.be(B++))<<V,V+=8}h+=A&o[v],A>>=v,V-=v,r=5;case 5:for(x=C-h;0>x;)x+=n.end;for(;0!==c;){if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,k=n.ge(g,k),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);n.ye[C++]=n.ye[x++],I--,x==n.end&&(x=0),c--}r=0;break;case 6:if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,k=n.ge(g,k),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);k=0,n.ye[C++]=u,I--,r=0;break;case 7:if(V>7&&(V-=8,z++,B--),n.write=C,k=n.ge(g,k),C=n.write,I=C<n.read?n.read-C-1:n.end-C,n.read!=n.write)return n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);r=8;case 8:return k=1,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);case 9:return k=e,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k);default:return k=t,n.de=A,n.pe=V,g.Qt=z,g.te+=B-g.ae,g.ae=B,n.write=C,n.ge(g,k)}},n.ke=()=>{}}d.ve=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=c,r[0]=l,0);const b=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function y(n,r){const c=this;let l,a=0,u=0,w=0,h=0;const y=[0],m=[0],g=new p;let k=0,v=new f(4320);const S=new d;c.pe=0,c.de=0,c.ye=new s(r),c.end=r,c.read=0,c.write=0,c.reset=(t,e)=>{e&&(e[0]=0),6==a&&g.ke(t),a=0,c.pe=0,c.de=0,c.read=c.write=0},c.reset(n,null),c.ge=(t,e)=>{let n,r,s;return r=t.ue,s=c.read,n=(s>c.write?c.end:c.write)-s,n>t.le&&(n=t.le),0!==n&&e==i&&(e=0),t.le-=n,t.ee+=n,t.fe.set(c.ye.subarray(s,s+n),r),r+=n,s+=n,s==c.end&&(s=0,c.write==c.end&&(c.write=0),n=c.write-s,n>t.le&&(n=t.le),0!==n&&e==i&&(e=0),t.le-=n,t.ee+=n,t.fe.set(c.ye.subarray(s,s+n),r),r+=n,s+=n),t.ue=r,c.read=s,e},c.me=(n,r)=>{let s,i,f,p,_,z,C,I;for(p=n.ae,_=n.Qt,i=c.de,f=c.pe,z=c.write,C=z<c.read?c.read-z-1:c.end-z;;){let x,A,V,B,D,E,M,P;switch(a){case 0:for(;3>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}switch(s=7&i,k=1&s,s>>>1){case 0:i>>>=3,f-=3,s=7&f,i>>>=s,f-=s,a=1;break;case 1:x=[],A=[],V=[[]],B=[[]],d.ve(x,A,V,B),g.init(x[0],A[0],V[0],0,B[0],0),i>>>=3,f-=3,a=6;break;case 2:i>>>=3,f-=3,a=3;break;case 3:return i>>>=3,f-=3,a=9,n.Zt="invalid block type",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r)}break;case 1:for(;32>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if((~i>>>16&65535)!=(65535&i))return a=9,n.Zt="invalid stored block lengths",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);u=65535&i,i=f=0,a=0!==u?2:0!==k?7:0;break;case 2:if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);if(0===C&&(z==c.end&&0!==c.read&&(z=0,C=z<c.read?c.read-z-1:c.end-z),0===C&&(c.write=z,r=c.ge(n,r),z=c.write,C=z<c.read?c.read-z-1:c.end-z,z==c.end&&0!==c.read&&(z=0,C=z<c.read?c.read-z-1:c.end-z),0===C)))return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);if(r=0,s=u,s>_&&(s=_),s>C&&(s=C),c.ye.set(n.Xt(p,s),z),p+=s,_-=s,z+=s,C-=s,0!=(u-=s))break;a=0!==k?7:0;break;case 3:for(;14>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if(w=s=16383&i,(31&s)>29||(s>>5&31)>29)return a=9,n.Zt="too many length or distance symbols",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);if(s=258+(31&s)+(s>>5&31),!l||l.length<s)l=[];else for(I=0;s>I;I++)l[I]=0;i>>>=14,f-=14,h=0,a=4;case 4:for(;4+(w>>>10)>h;){for(;3>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}l[b[h++]]=7&i,i>>>=3,f-=3}for(;19>h;)l[b[h++]]=0;if(y[0]=7,s=S.we(l,y,m,v,n),0!=s)return(r=s)==e&&(l=null,a=9),c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);h=0,a=5;case 5:for(;s=w,258+(31&s)+(s>>5&31)>h;){let t,u;for(s=y[0];s>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if(s=v[3*(m[0]+(i&o[s]))+1],u=v[3*(m[0]+(i&o[s]))+2],16>u)i>>>=s,f-=s,l[h++]=u;else{for(I=18==u?7:u-14,t=18==u?11:3;s+I>f;){if(0===_)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);r=0,_--,i|=(255&n.be(p++))<<f,f+=8}if(i>>>=s,f-=s,t+=i&o[I],i>>>=I,f-=I,I=h,s=w,I+t>258+(31&s)+(s>>5&31)||16==u&&1>I)return l=null,a=9,n.Zt="invalid bit length repeat",r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);u=16==u?l[I-1]:0;do{l[I++]=u}while(0!=--t);h=I}}if(m[0]=-1,D=[],E=[],M=[],P=[],D[0]=9,E[0]=6,s=w,s=S.he(257+(31&s),1+(s>>5&31),l,D,E,M,P,v,n),0!=s)return s==e&&(l=null,a=9),r=s,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);g.init(D[0],E[0],v,M[0],v,P[0]),a=6;case 6:if(c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,1!=(r=g.me(c,n,r)))return c.ge(n,r);if(r=0,g.ke(n),p=n.ae,_=n.Qt,i=c.de,f=c.pe,z=c.write,C=z<c.read?c.read-z-1:c.end-z,0===k){a=0;break}a=7;case 7:if(c.write=z,r=c.ge(n,r),z=c.write,C=z<c.read?c.read-z-1:c.end-z,c.read!=c.write)return c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);a=8;case 8:return r=1,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);case 9:return r=e,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r);default:return r=t,c.de=i,c.pe=f,n.Qt=_,n.te+=p-n.ae,n.ae=p,c.write=z,c.ge(n,r)}}},c.ke=t=>{c.reset(t,null),c.ye=null,v=null},c.Se=(t,e,n)=>{c.ye.set(t.subarray(e,e+n),0),c.read=c.write=n},c._e=()=>1==a?1:0}const m=13,g=[0,0,255,255];function k(){const n=this;function r(e){return e&&e.ze?(e.te=e.ee=0,e.Zt=null,e.ze.mode=7,e.ze.Ce.reset(e,null),0):t}n.mode=0,n.method=0,n.Ie=[0],n.xe=0,n.marker=0,n.Ae=0,n.Ve=t=>(n.Ce&&n.Ce.ke(t),n.Ce=null,0),n.Be=(e,s)=>(e.Zt=null,n.Ce=null,8>s||s>15?(n.Ve(e),t):(n.Ae=s,e.ze.Ce=new y(e,1<<s),r(e),0)),n.De=(n,r)=>{let s,o;if(!n||!n.ze||!n.ce)return t;const f=n.ze;for(r=4==r?i:0,s=i;;)switch(f.mode){case 0:if(0===n.Qt)return s;if(s=r,n.Qt--,n.te++,8!=(15&(f.method=n.be(n.ae++)))){f.mode=m,n.Zt="unknown compression method",f.marker=5;break}if(8+(f.method>>4)>f.Ae){f.mode=m,n.Zt="invalid win size",f.marker=5;break}f.mode=1;case 1:if(0===n.Qt)return s;if(s=r,n.Qt--,n.te++,o=255&n.be(n.ae++),((f.method<<8)+o)%31!=0){f.mode=m,n.Zt="incorrect header check",f.marker=5;break}if(0==(32&o)){f.mode=7;break}f.mode=2;case 2:if(0===n.Qt)return s;s=r,n.Qt--,n.te++,f.xe=(255&n.be(n.ae++))<<24&4278190080,f.mode=3;case 3:if(0===n.Qt)return s;s=r,n.Qt--,n.te++,f.xe+=(255&n.be(n.ae++))<<16&16711680,f.mode=4;case 4:if(0===n.Qt)return s;s=r,n.Qt--,n.te++,f.xe+=(255&n.be(n.ae++))<<8&65280,f.mode=5;case 5:return 0===n.Qt?s:(s=r,n.Qt--,n.te++,f.xe+=255&n.be(n.ae++),f.mode=6,2);case 6:return f.mode=m,n.Zt="need dictionary",f.marker=0,t;case 7:if(s=f.Ce.me(n,s),s==e){f.mode=m,f.marker=0;break}if(0==s&&(s=r),1!=s)return s;s=r,f.Ce.reset(n,f.Ie),f.mode=12;case 12:return n.Qt=0,1;case m:return e;default:return t}},n.Ee=(e,n,r)=>{let s=0,i=r;if(!e||!e.ze||6!=e.ze.mode)return t;const o=e.ze;return i<1<<o.Ae||(i=(1<<o.Ae)-1,s=r-i),o.Ce.Se(n,s,i),o.mode=7,0},n.Me=n=>{let s,o,f,c,l;if(!n||!n.ze)return t;const a=n.ze;if(a.mode!=m&&(a.mode=m,a.marker=0),0===(s=n.Qt))return i;for(o=n.ae,f=a.marker;0!==s&&4>f;)n.be(o)==g[f]?f++:f=0!==n.be(o)?0:4-f,o++,s--;return n.te+=o-n.ae,n.ae=o,n.Qt=s,a.marker=f,4!=f?e:(c=n.te,l=n.ee,r(n),n.te=c,n.ee=l,a.mode=7,0)},n.Pe=e=>e&&e.ze&&e.ze.Ce?e.ze.Ce._e():t}function v(){}return v.prototype={Be(t){const e=this;return e.ze=new k,t||(t=15),e.ze.Be(e,t)},De(e){const n=this;return n.ze?n.ze.De(n,e):t},Ve(){const e=this;if(!e.ze)return t;const n=e.ze.Ve(e);return e.ze=null,n},Me(){const e=this;return e.ze?e.ze.Me(e):t},Ee(e,n){const r=this;return r.ze?r.ze.Ee(r,e,n):t},be(t){return this.ce[t]},Xt(t,e){return this.ce.subarray(t,t+e)}},function(t){const e=new v,o=t&&t.chunkSize?n.floor(2*t.chunkSize):131072,f=new s(o);let c=!1;e.Be(),e.fe=f,this.append=(t,n)=>{const l=[];let a,u,w=0,h=0,d=0;if(0!==t.length){e.ae=0,e.ce=t,e.Qt=t.length;do{if(e.ue=0,e.le=o,0!==e.Qt||c||(e.ae=0,c=!0),a=e.De(0),c&&a===i){if(0!==e.Qt)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+e.Zt);if((c||1===a)&&e.Qt===t.length)throw new r("inflating: bad input");e.ue&&(e.ue===o?l.push(new s(f)):l.push(f.slice(0,e.ue))),d+=e.ue,n&&e.ae>0&&e.ae!=w&&(n(e.ae),w=e.ae)}while(e.Qt>0||0===e.le);return l.length>1?(u=new s(d),l.forEach((t=>{u.set(t,h),h+=t.length}))):u=l[0]||new s,u}},this.flush=()=>{e.Ve()}}})();self.initCodec=()=>{self.Deflate=kt,self.Inflate=vt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}};
106
118
 
107
119
  /*
108
120
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
@@ -178,7 +190,7 @@
178
190
  const codecAdapter = this;
179
191
  const onData = data => {
180
192
  if (codecAdapter.pendingData) {
181
- const pendingData = codecAdapter.pendingData;
193
+ const { pendingData } = codecAdapter;
182
194
  codecAdapter.pendingData = new Uint8Array(pendingData.length + data.length);
183
195
  codecAdapter.pendingData.set(pendingData, 0);
184
196
  codecAdapter.pendingData.set(data, pendingData.length);
@@ -198,7 +210,7 @@
198
210
  return getResponse(this);
199
211
  }
200
212
  flush() {
201
- this.codec.push(new Uint8Array(0), true);
213
+ this.codec.push(new Uint8Array(), true);
202
214
  return getResponse(this);
203
215
  }
204
216
  };
@@ -209,7 +221,7 @@
209
221
  codec.pendingData = null;
210
222
  return output;
211
223
  } else {
212
- return new Uint8Array(0);
224
+ return new Uint8Array();
213
225
  }
214
226
  }
215
227
  }
@@ -1249,7 +1261,7 @@
1249
1261
  password,
1250
1262
  signed,
1251
1263
  strength: strength - 1,
1252
- pending: new Uint8Array(0)
1264
+ pending: new Uint8Array()
1253
1265
  });
1254
1266
  },
1255
1267
  async transform(chunk, controller) {
@@ -1275,7 +1287,7 @@
1275
1287
  const pending = aesCrypto.pending;
1276
1288
  const chunkToDecrypt = subarray(pending, 0, pending.length - SIGNATURE_LENGTH);
1277
1289
  const originalSignature = subarray(pending, pending.length - SIGNATURE_LENGTH);
1278
- let decryptedChunkArray = new Uint8Array(0);
1290
+ let decryptedChunkArray = new Uint8Array();
1279
1291
  if (chunkToDecrypt.length) {
1280
1292
  const encryptedChunk = toBits(codecBytes, chunkToDecrypt);
1281
1293
  aesCrypto.hmac.update(encryptedChunk);
@@ -1308,12 +1320,12 @@
1308
1320
  ready: new Promise(resolve => this.resolveReady = resolve),
1309
1321
  password,
1310
1322
  strength: strength - 1,
1311
- pending: new Uint8Array(0)
1323
+ pending: new Uint8Array()
1312
1324
  });
1313
1325
  },
1314
1326
  async transform(chunk, controller) {
1315
1327
  const aesCrypto = this;
1316
- let preamble = new Uint8Array(0);
1328
+ let preamble = new Uint8Array();
1317
1329
  if (aesCrypto.password) {
1318
1330
  const password = aesCrypto.password;
1319
1331
  aesCrypto.password = null;
@@ -1331,7 +1343,7 @@
1331
1343
  async flush(controller) {
1332
1344
  const aesCrypto = this;
1333
1345
  await aesCrypto.ready;
1334
- let encryptedChunkArray = new Uint8Array(0);
1346
+ let encryptedChunkArray = new Uint8Array();
1335
1347
  if (aesCrypto.pending.length) {
1336
1348
  const encryptedChunk = aesCrypto.ctr.update(toBits(codecBytes, aesCrypto.pending));
1337
1349
  aesCrypto.hmac.update(encryptedChunk);
@@ -1912,9 +1924,9 @@
1912
1924
 
1913
1925
  let classicWorkersSupported = true;
1914
1926
 
1915
- function getWorker(workerData, codecConstructor, stream, workerOptions, onTaskFinished) {
1927
+ function getWorker(workerData, stream, workerOptions, onTaskFinished) {
1916
1928
  const { readable, writable } = stream;
1917
- const { options, config, streamOptions, webWorker, scripts } = workerOptions;
1929
+ const { options, config, streamOptions, webWorker, scripts, codecConstructor } = workerOptions;
1918
1930
  Object.assign(workerData, {
1919
1931
  busy: true,
1920
1932
  codecConstructor,
@@ -1950,7 +1962,7 @@
1950
1962
  if (onend) {
1951
1963
  transformer.flush = () => callHandler(onend);
1952
1964
  }
1953
- workerData.readable = readable.pipeThrough(new TransformStream(transformer), { signal });
1965
+ workerData.readable = readable.pipeThrough(new TransformStream(transformer, { highWaterMark: 1, size: () => config.chunkSize }), { signal });
1954
1966
  }
1955
1967
  return webWorker ? createWebWorkerInterface(workerData, config) : createWorkerInterface(workerData, config);
1956
1968
  }
@@ -1965,14 +1977,15 @@
1965
1977
 
1966
1978
  function createWorkerInterface(workerData, config) {
1967
1979
  const interfaceCodec = createCodec(workerData.codecConstructor, workerData.readable, workerData.writable, workerData.options, config);
1980
+ const { onTaskFinished } = workerData;
1968
1981
  const codec = {
1969
1982
  abort() {
1970
1983
  interfaceCodec.abort();
1971
- workerData.onTaskFinished();
1984
+ onTaskFinished();
1972
1985
  },
1973
- run() {
1974
- const result = interfaceCodec.run();
1975
- workerData.onTaskFinished();
1986
+ async run() {
1987
+ const result = await interfaceCodec.run();
1988
+ onTaskFinished();
1976
1989
  return result;
1977
1990
  }
1978
1991
  };
@@ -1981,11 +1994,14 @@
1981
1994
 
1982
1995
  function createWebWorkerInterface(workerData, { baseURL, chunkSize }) {
1983
1996
  const workerOptions = { type: "module" };
1984
- workerData.reader = workerData.readable.getReader();
1985
- workerData.writer = workerData.writable.getWriter();
1986
- workerData.result = new Promise((resolve, reject) => {
1987
- workerData.resolveResult = resolve;
1988
- workerData.rejectResult = reject;
1997
+ const { readable, writable } = workerData;
1998
+ Object.assign(workerData, {
1999
+ reader: readable.getReader(),
2000
+ writer: writable.getWriter(),
2001
+ result: new Promise((resolve, reject) => {
2002
+ workerData.resolveResult = resolve;
2003
+ workerData.rejectResult = reject;
2004
+ })
1989
2005
  });
1990
2006
  if (!workerData.interface) {
1991
2007
  if (!classicWorkersSupported) {
@@ -2001,12 +2017,13 @@
2001
2017
  workerData.worker.addEventListener(MESSAGE_EVENT_TYPE, onMessage, false);
2002
2018
  workerData.interface = {
2003
2019
  abort() {
2020
+ workerData.interface.aborted = true;
2004
2021
  sendMessage({ type: MESSAGE_ABORT });
2005
2022
  workerData.writer.releaseLock();
2006
2023
  workerData.onTaskFinished();
2007
2024
  },
2008
2025
  run() {
2009
- const options = workerData.options;
2026
+ const { options } = workerData;
2010
2027
  const scripts = workerData.scripts.slice(1);
2011
2028
  sendMessage({ type: MESSAGE_START, scripts, options, config: { chunkSize } });
2012
2029
  return workerData.result;
@@ -2030,12 +2047,13 @@
2030
2047
  }
2031
2048
 
2032
2049
  function sendMessage(message) {
2033
- const worker = workerData.worker;
2050
+ const { worker, writer, onTaskFinished } = workerData;
2034
2051
  try {
2035
2052
  let { data } = message;
2036
2053
  if (data) {
2037
2054
  try {
2038
- if (data.length != data.buffer.byteLength) {
2055
+ const { buffer, length } = data;
2056
+ if (length != buffer.byteLength) {
2039
2057
  data = new Uint8Array(data);
2040
2058
  }
2041
2059
  message.data = data.buffer;
@@ -2047,43 +2065,48 @@
2047
2065
  worker.postMessage(message);
2048
2066
  }
2049
2067
  } catch (error) {
2050
- workerData.writer.releaseLock();
2051
- workerData.onTaskFinished();
2068
+ writer.releaseLock();
2069
+ onTaskFinished();
2052
2070
  throw error;
2053
2071
  }
2054
2072
  }
2055
2073
 
2056
2074
  async function onMessage(event) {
2057
2075
  const message = event.data;
2076
+ const { reader, writer, resolveResult, rejectResult, onTaskFinished } = workerData;
2077
+ const { type, data, messageId, result } = message;
2058
2078
  const reponseError = message.error;
2059
2079
  try {
2060
2080
  if (reponseError) {
2061
- const error = new Error(reponseError.message);
2062
- error.stack = reponseError.stack;
2063
- workerData.rejectResult(error);
2064
- workerData.writer.releaseLock();
2065
- workerData.onTaskFinished();
2081
+ const { message, stack } = reponseError;
2082
+ const error = new Error(message);
2083
+ error.stack = stack;
2084
+ close(error);
2066
2085
  } else {
2067
- if (message.type == MESSAGE_PULL) {
2068
- const { value, done } = await workerData.reader.read();
2069
- sendMessage({ type: MESSAGE_DATA, data: value, done, messageId: message.messageId });
2086
+ if (type == MESSAGE_PULL) {
2087
+ const { value, done } = await reader.read();
2088
+ sendMessage({ type: MESSAGE_DATA, data: value, done, messageId });
2070
2089
  }
2071
- if (message.type == MESSAGE_DATA) {
2072
- let { data } = message;
2073
- data = new Uint8Array(data);
2074
- await workerData.writer.ready;
2075
- await workerData.writer.write(data);
2090
+ if (type == MESSAGE_DATA) {
2091
+ await writer.ready;
2092
+ await writer.write(new Uint8Array(data));
2076
2093
  }
2077
- if (message.type == MESSAGE_CLOSE) {
2078
- workerData.resolveResult(message.result);
2079
- workerData.writer.releaseLock();
2080
- workerData.onTaskFinished();
2094
+ if (type == MESSAGE_CLOSE) {
2095
+ close(null, result);
2081
2096
  }
2082
2097
  }
2083
2098
  } catch (error) {
2084
- workerData.rejectResult(error);
2085
- workerData.writer.releaseLock();
2086
- workerData.onTaskFinished();
2099
+ close(error);
2100
+ }
2101
+
2102
+ function close(error, result) {
2103
+ if (error && !workerData.interface.aborted) {
2104
+ rejectResult(error);
2105
+ } else {
2106
+ resolveResult(result);
2107
+ }
2108
+ writer.releaseLock();
2109
+ onTaskFinished();
2087
2110
  }
2088
2111
  }
2089
2112
  }
@@ -2121,26 +2144,27 @@
2121
2144
 
2122
2145
  let indexWorker = 0;
2123
2146
 
2124
- async function runCodec(codecConstructor, stream, codecOptions) {
2125
- const { options, config, streamOptions } = codecOptions;
2147
+ async function runWorker(stream, workerOptions) {
2148
+ const { options, config, streamOptions } = workerOptions;
2126
2149
  const streamCopy = !options.compressed && !options.signed && !options.encrypted;
2127
- codecOptions.webWorker = !streamCopy && (options.useWebWorkers || (options.useWebWorkers === undefined && config.useWebWorkers));
2128
- codecOptions.scripts = codecOptions.webWorker && config.workerScripts ? config.workerScripts[options.codecType] : [];
2129
- options.useCompressionStream = options.useCompressionStream === undefined ? config.useCompressionStream : options.useCompressionStream;
2150
+ const { useWebWorkers, useCompressionStream, codecType } = options;
2151
+ const { workerScripts } = config;
2152
+ workerOptions.webWorker = !streamCopy && (useWebWorkers || (useWebWorkers === undefined && config.useWebWorkers));
2153
+ workerOptions.scripts = workerOptions.webWorker && workerScripts ? workerScripts[codecType] : [];
2154
+ options.useCompressionStream = useCompressionStream === undefined ? config.useCompressionStream : useCompressionStream;
2130
2155
  let codec;
2131
-
2132
2156
  if (pool.length < config.maxWorkers) {
2133
2157
  const workerData = { indexWorker };
2134
2158
  indexWorker++;
2135
2159
  pool.push(workerData);
2136
- codec = getWorker(workerData, codecConstructor, stream, codecOptions, onTaskFinished);
2160
+ codec = getWorker(workerData, stream, workerOptions, onTaskFinished);
2137
2161
  } else {
2138
2162
  const workerData = pool.find(workerData => !workerData.busy);
2139
2163
  if (workerData) {
2140
2164
  clearTerminateTimeout(workerData);
2141
- codec = getWorker(workerData, codecConstructor, stream, codecOptions, onTaskFinished);
2165
+ codec = getWorker(workerData, stream, workerOptions, onTaskFinished);
2142
2166
  } else {
2143
- codec = await new Promise(resolve => pendingRequests.push({ resolve, codecConstructor, stream, codecOptions }));
2167
+ codec = await new Promise(resolve => pendingRequests.push({ resolve, stream, workerOptions }));
2144
2168
  }
2145
2169
  }
2146
2170
  const { signal } = streamOptions;
@@ -2157,15 +2181,16 @@
2157
2181
 
2158
2182
  function onTaskFinished(workerData) {
2159
2183
  if (pendingRequests.length) {
2160
- const [{ resolve, codecConstructor, stream, codecOptions }] = pendingRequests.splice(0, 1);
2161
- resolve(getWorker(workerData, codecConstructor, stream, codecOptions, onTaskFinished));
2184
+ const [{ resolve, stream, workerOptions }] = pendingRequests.splice(0, 1);
2185
+ resolve(getWorker(workerData, stream, workerOptions, onTaskFinished));
2162
2186
  } else if (workerData.worker) {
2187
+ const { terminateWorkerTimeout } = config;
2163
2188
  clearTerminateTimeout(workerData);
2164
- if (Number.isFinite(config.terminateWorkerTimeout) && config.terminateWorkerTimeout >= 0) {
2189
+ if (Number.isFinite(terminateWorkerTimeout) && terminateWorkerTimeout >= 0) {
2165
2190
  workerData.terminateTimeout = setTimeout(() => {
2166
2191
  pool = pool.filter(data => data != workerData);
2167
2192
  workerData.terminate();
2168
- }, config.terminateWorkerTimeout);
2193
+ }, terminateWorkerTimeout);
2169
2194
  }
2170
2195
  } else {
2171
2196
  pool = pool.filter(data => data != workerData);
@@ -2174,8 +2199,9 @@
2174
2199
  }
2175
2200
 
2176
2201
  function clearTerminateTimeout(workerData) {
2177
- if (workerData.terminateTimeout) {
2178
- clearTimeout(workerData.terminateTimeout);
2202
+ const { terminateTimeout } = workerData;
2203
+ if (terminateTimeout) {
2204
+ clearTimeout(terminateTimeout);
2179
2205
  workerData.terminateTimeout = null;
2180
2206
  }
2181
2207
  }
@@ -2215,7 +2241,7 @@
2215
2241
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2216
2242
  */
2217
2243
 
2218
- /* global Blob, FileReader, atob, btoa, XMLHttpRequest, document, fetch, ReadableStream, WritableStream, TransformStream */
2244
+ /* global Blob, atob, btoa, XMLHttpRequest, document, fetch, ReadableStream, WritableStream, TransformStream */
2219
2245
 
2220
2246
  const ERR_HTTP_STATUS = "HTTP error ";
2221
2247
  const ERR_HTTP_RANGE = "HTTP Range not supported";
@@ -2316,16 +2342,7 @@
2316
2342
 
2317
2343
  getData() {
2318
2344
  const writer = this;
2319
- if (writer.blob.text) {
2320
- return writer.blob.text();
2321
- } else {
2322
- const reader = new FileReader();
2323
- return new Promise((resolve, reject) => {
2324
- reader.onload = event => resolve(event.target.result);
2325
- reader.onerror = () => reject(reader.error);
2326
- reader.readAsText(writer.blob, writer.encoding);
2327
- });
2328
- }
2345
+ return writer.blob.text();
2329
2346
  }
2330
2347
  }
2331
2348
 
@@ -2399,16 +2416,7 @@
2399
2416
 
2400
2417
  async readUint8Array(offset, length) {
2401
2418
  const reader = this;
2402
- if (reader.blob.arrayBuffer) {
2403
- return new Uint8Array(await reader.blob.slice(offset, offset + length).arrayBuffer());
2404
- } else {
2405
- const reader = new FileReader();
2406
- return new Promise((resolve, reject) => {
2407
- reader.onload = event => resolve(new Uint8Array(event.target.result));
2408
- reader.onerror = () => reject(reader.error);
2409
- reader.readAsArrayBuffer(reader.blob.slice(offset, offset + length));
2410
- });
2411
- }
2419
+ return new Uint8Array(await reader.blob.slice(offset, offset + length).arrayBuffer());
2412
2420
  }
2413
2421
  }
2414
2422
 
@@ -2456,9 +2464,12 @@
2456
2464
 
2457
2465
  class ReadableStreamReader {
2458
2466
 
2459
- constructor(readableStream) {
2467
+ constructor(readable) {
2460
2468
  const reader = this;
2461
- reader.readableStream = readableStream.pipeThrough(new TransformStream({
2469
+ if (!readable) {
2470
+ readable = new ReadableStream({});
2471
+ }
2472
+ reader.readable = readable.pipeThrough(new TransformStream({
2462
2473
  transform(chunk, controller) {
2463
2474
  if (chunk) {
2464
2475
  reader.size += chunk.length;
@@ -2474,14 +2485,18 @@
2474
2485
  }
2475
2486
 
2476
2487
  getReadable() {
2477
- return this.readableStream;
2488
+ return this.readable;
2478
2489
  }
2479
2490
  }
2480
2491
 
2481
2492
  class WritableStreamWriter extends Writer {
2482
2493
 
2483
- constructor(writable) {
2494
+ constructor(writable, { preventClose } = {}) {
2484
2495
  super();
2496
+ this.preventClose = preventClose;
2497
+ if (!writable) {
2498
+ writable = new WritableStream({});
2499
+ }
2485
2500
  Object.defineProperty(this, "writable", {
2486
2501
  get() {
2487
2502
  return writable;
@@ -2489,16 +2504,13 @@
2489
2504
  });
2490
2505
  }
2491
2506
 
2492
- async writeUint8Array(array) {
2493
- await this.writer.ready;
2494
- const writer = this.writable.getWriter();
2495
- await writer.write(array);
2496
- writer.releaseLock();
2497
- }
2498
-
2499
2507
  async getData() {
2500
- await this.writable.getWriter().close();
2501
- return this.writable;
2508
+ const writer = this;
2509
+ const { writable } = writer;
2510
+ if (!writer.preventClose) {
2511
+ await writable.getWriter().close();
2512
+ }
2513
+ return writable;
2502
2514
  }
2503
2515
  }
2504
2516
 
@@ -2732,7 +2744,7 @@
2732
2744
 
2733
2745
  constructor() {
2734
2746
  super();
2735
- this.array = new Uint8Array(0);
2747
+ this.array = new Uint8Array();
2736
2748
  }
2737
2749
 
2738
2750
  writeUint8Array(array) {
@@ -2898,13 +2910,6 @@
2898
2910
  function decodeText(value, encoding) {
2899
2911
  if (encoding && encoding.trim().toLowerCase() == "cp437") {
2900
2912
  return decodeCP437(value);
2901
- } else if (typeof TextDecoder == "undefined") {
2902
- const fileReader = new FileReader();
2903
- return new Promise((resolve, reject) => {
2904
- fileReader.onload = event => resolve(event.target.result);
2905
- fileReader.onerror = () => reject(fileReader.error);
2906
- fileReader.readAsText(new Blob([value]));
2907
- });
2908
2913
  } else {
2909
2914
  return new TextDecoder(encoding).decode(value);
2910
2915
  }
@@ -3008,7 +3013,7 @@
3008
3013
 
3009
3014
  async* getEntriesGenerator(options = {}) {
3010
3015
  const zipReader = this;
3011
- const reader = zipReader.reader;
3016
+ const { reader, config } = zipReader;
3012
3017
  if (!reader.initialized) {
3013
3018
  await reader.init();
3014
3019
  }
@@ -3068,7 +3073,7 @@
3068
3073
  throw new Error(ERR_BAD_FORMAT);
3069
3074
  }
3070
3075
  for (let indexFile = 0; indexFile < filesLength; indexFile++) {
3071
- const fileEntry = new ZipEntry(reader, zipReader.config, zipReader.options);
3076
+ const fileEntry = new ZipEntry(reader, config, zipReader.options);
3072
3077
  if (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {
3073
3078
  throw new Error(ERR_CENTRAL_DIRECTORY_NOT_FOUND);
3074
3079
  }
@@ -3204,7 +3209,7 @@
3204
3209
  await writer.init();
3205
3210
  }
3206
3211
  const { onstart, onprogress, onend } = options;
3207
- const codecOptions = {
3212
+ const workerOptions = {
3208
3213
  options: {
3209
3214
  codecType: CODEC_INFLATE,
3210
3215
  password,
@@ -3219,9 +3224,10 @@
3219
3224
  useCompressionStream: getOptionValue$1(zipEntry, options, "useCompressionStream")
3220
3225
  },
3221
3226
  config,
3222
- streamOptions: { signal, size, onstart, onprogress, onend }
3227
+ streamOptions: { signal, size, onstart, onprogress, onend },
3228
+ codecConstructor: config.Inflate
3223
3229
  };
3224
- await runCodec(config.Inflate, { readable, writable }, codecOptions);
3230
+ await runWorker({ readable, writable }, workerOptions);
3225
3231
  return writer.getData();
3226
3232
  }
3227
3233
  }
@@ -3246,7 +3252,7 @@
3246
3252
  }
3247
3253
 
3248
3254
  async function readCommonFooter(fileEntry, directory, dataView, offset) {
3249
- const rawExtraField = directory.rawExtraField;
3255
+ const { rawExtraField } = directory;
3250
3256
  const extraField = directory.extraField = new Map();
3251
3257
  const rawExtraFieldView = getDataView$1(new Uint8Array(rawExtraField));
3252
3258
  let offsetExtraField = 0;
@@ -3566,7 +3572,7 @@
3566
3572
  }
3567
3573
  }
3568
3574
 
3569
- async close(comment = new Uint8Array(0), options = {}) {
3575
+ async close(comment = new Uint8Array(), options = {}) {
3570
3576
  while (this.pendingAddFileCalls.size) {
3571
3577
  await Promise.all(Array.from(this.pendingAddFileCalls));
3572
3578
  }
@@ -3611,8 +3617,8 @@
3611
3617
  if (password !== undefined && encryptionStrength !== undefined && (encryptionStrength < 1 || encryptionStrength > 3)) {
3612
3618
  throw new Error(ERR_INVALID_ENCRYPTION_STRENGTH);
3613
3619
  }
3614
- let rawExtraField = new Uint8Array(0);
3615
- const extraField = options.extraField;
3620
+ let rawExtraField = new Uint8Array();
3621
+ const { extraField } = options;
3616
3622
  if (extraField) {
3617
3623
  let extraFieldSize = 0;
3618
3624
  let offset = 0;
@@ -3838,7 +3844,7 @@
3838
3844
  arraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);
3839
3845
  setUint8(extraFieldAESView, 8, encryptionStrength);
3840
3846
  } else {
3841
- rawExtraFieldAES = new Uint8Array(0);
3847
+ rawExtraFieldAES = new Uint8Array();
3842
3848
  }
3843
3849
  let rawExtraFieldNTFS;
3844
3850
  let rawExtraFieldExtendedTimestamp;
@@ -3868,10 +3874,10 @@
3868
3874
  setBigUint64(extraFieldNTFSView, 20, getTimeNTFS(lastAccessDate) || lastModTimeNTFS);
3869
3875
  setBigUint64(extraFieldNTFSView, 28, getTimeNTFS(creationDate) || lastModTimeNTFS);
3870
3876
  } catch (_error) {
3871
- rawExtraFieldNTFS = new Uint8Array(0);
3877
+ rawExtraFieldNTFS = new Uint8Array();
3872
3878
  }
3873
3879
  } else {
3874
- rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);
3880
+ rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
3875
3881
  }
3876
3882
  const fileEntry = {
3877
3883
  version: version || VERSION_DEFLATE,
@@ -3882,7 +3888,7 @@
3882
3888
  rawFilename,
3883
3889
  commentUTF8: true,
3884
3890
  rawComment,
3885
- rawExtraFieldZip64: zip64 ? new Uint8Array(EXTRAFIELD_LENGTH_ZIP64 + 4) : new Uint8Array(0),
3891
+ rawExtraFieldZip64: zip64 ? new Uint8Array(EXTRAFIELD_LENGTH_ZIP64 + 4) : new Uint8Array(),
3886
3892
  rawExtraFieldExtendedTimestamp,
3887
3893
  rawExtraFieldNTFS,
3888
3894
  rawExtraFieldAES,
@@ -3953,7 +3959,7 @@
3953
3959
  fileEntry.dataWritten = true;
3954
3960
  const size = () => reader.size;
3955
3961
  const readable = reader.getReadable({ offset: 0, size, chunkSize: getChunkSize(config) });
3956
- const codecOptions = {
3962
+ const workerOptions = {
3957
3963
  options: {
3958
3964
  codecType: CODEC_DEFLATE,
3959
3965
  level,
@@ -3968,16 +3974,17 @@
3968
3974
  useCompressionStream
3969
3975
  },
3970
3976
  config,
3971
- streamOptions: { signal, size, onstart, onprogress, onend }
3977
+ streamOptions: { signal, size, onstart, onprogress, onend },
3978
+ codecConstructor: config.Deflate
3972
3979
  };
3973
- result = await runCodec(config.Deflate, { readable, writable }, codecOptions);
3980
+ result = await runWorker({ readable, writable }, workerOptions);
3974
3981
  uncompressedSize = fileEntry.uncompressedSize = reader.size;
3975
3982
  compressedSize = result.length;
3976
3983
  } else {
3977
3984
  await writeUint8Array(writable, localHeaderArray);
3978
3985
  fileEntry.dataWritten = true;
3979
3986
  }
3980
- let dataDescriptorArray = new Uint8Array(0);
3987
+ let dataDescriptorArray = new Uint8Array();
3981
3988
  let dataDescriptorView, dataDescriptorOffset = 0;
3982
3989
  if (dataDescriptor) {
3983
3990
  dataDescriptorArray = new Uint8Array(zip64 ? (dataDescriptorSignature ? 24 : 20) : (dataDescriptorSignature ? 16 : 12));
@@ -3988,7 +3995,7 @@
3988
3995
  }
3989
3996
  }
3990
3997
  if (reader) {
3991
- const signature = result.signature;
3998
+ const { signature } = result;
3992
3999
  if ((!encrypted || zipCrypto) && signature !== undefined) {
3993
4000
  setUint32(headerView, 10, signature);
3994
4001
  fileEntry.signature = signature;
@@ -4084,7 +4091,7 @@
4084
4091
  setUint8(extraFieldExtendedTimestampView, 4, 0x1);
4085
4092
  setUint32(extraFieldExtendedTimestampView, 5, Math.floor(fileEntry.lastModDate.getTime() / 1000));
4086
4093
  } else {
4087
- rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);
4094
+ rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
4088
4095
  }
4089
4096
  const extraFieldLength = rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
4090
4097
  setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
@@ -4149,19 +4156,10 @@
4149
4156
  }
4150
4157
 
4151
4158
  function sliceAsArrayBuffer(blob, start, end) {
4152
- if (blob.arrayBuffer) {
4153
- if (start || end) {
4154
- return blob.slice(start, end).arrayBuffer();
4155
- } else {
4156
- return blob.arrayBuffer();
4157
- }
4159
+ if (start || end) {
4160
+ return blob.slice(start, end).arrayBuffer();
4158
4161
  } else {
4159
- const fileReader = new FileReader();
4160
- return new Promise((resolve, reject) => {
4161
- fileReader.onload = event => resolve(event.target.result);
4162
- fileReader.onerror = () => reject(fileReader.error);
4163
- fileReader.readAsArrayBuffer(start || end ? blob.slice(start, end) : blob);
4164
- });
4162
+ return blob.arrayBuffer();
4165
4163
  }
4166
4164
  }
4167
4165