@missing-elements/h5p-offline-player 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +273 -0
  3. package/dist/VERSION +1 -0
  4. package/dist/frame-assets/MANIFEST.json +4 -0
  5. package/dist/frame-assets/fonts/h5p-core-30.woff2 +0 -0
  6. package/dist/frame-assets/fonts/h5p-hub-publish.woff +0 -0
  7. package/dist/frame-assets/fonts/h5p-hub-publish.woff2 +0 -0
  8. package/dist/frame-assets/fonts/h5p-theme.woff2 +0 -0
  9. package/dist/frame-assets/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  10. package/dist/frame-assets/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
  11. package/dist/frame-assets/fonts/inter/LICENSE.txt +92 -0
  12. package/dist/frame-assets/fonts/inter/inter-v18-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-600.woff2 +0 -0
  13. package/dist/frame-assets/fonts/inter/inter-v18-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-600italic.woff2 +0 -0
  14. package/dist/frame-assets/fonts/inter/inter-v18-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-italic.woff2 +0 -0
  15. package/dist/frame-assets/fonts/inter/inter-v18-cyrillic_cyrillic-ext_greek_greek-ext_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  16. package/dist/frame-assets/fonts/open-sans/OFL.txt +88 -0
  17. package/dist/frame-assets/fonts/open-sans/open-sans-v40-cyrillic_cyrillic-ext_greek_greek-ext_hebrew_latin_latin-ext_math_symbols_vietnamese-600.woff2 +0 -0
  18. package/dist/frame-assets/fonts/open-sans/open-sans-v40-cyrillic_cyrillic-ext_greek_greek-ext_hebrew_latin_latin-ext_math_symbols_vietnamese-600italic.woff2 +0 -0
  19. package/dist/frame-assets/fonts/open-sans/open-sans-v40-cyrillic_cyrillic-ext_greek_greek-ext_hebrew_latin_latin-ext_math_symbols_vietnamese-700.woff2 +0 -0
  20. package/dist/frame-assets/fonts/open-sans/open-sans-v40-cyrillic_cyrillic-ext_greek_greek-ext_hebrew_latin_latin-ext_math_symbols_vietnamese-700italic.woff2 +0 -0
  21. package/dist/frame-assets/fonts/open-sans/open-sans-v40-cyrillic_cyrillic-ext_greek_greek-ext_hebrew_latin_latin-ext_math_symbols_vietnamese-italic.woff2 +0 -0
  22. package/dist/frame-assets/fonts/open-sans/open-sans-v40-cyrillic_cyrillic-ext_greek_greek-ext_hebrew_latin_latin-ext_math_symbols_vietnamese-regular.woff2 +0 -0
  23. package/dist/frame-assets/frame.bundle.js +1 -0
  24. package/dist/frame-assets/images/h5p.svg +16 -0
  25. package/dist/frame-assets/images/throbber.gif +0 -0
  26. package/dist/frame-assets/main.bundle.js +2 -0
  27. package/dist/frame-assets/styles/h5p-fonts.css +103 -0
  28. package/dist/frame-assets/styles/h5p.css +1643 -0
  29. package/dist/h5p-player.js +1780 -0
  30. package/dist/h5p-sw-mount.js +88 -0
  31. package/dist/h5p-sw.js +88 -0
  32. package/package.json +81 -0
  33. package/types/h5p-offline-player.d.ts +154 -0
  34. package/types/jobs/chunk-writer.d.ts +16 -0
  35. package/types/jobs/jobs-worker.d.ts +1 -0
  36. package/types/node/tsconfig.node.tsbuildinfo +1 -0
  37. package/types/node/vite.config.d.ts +6 -0
  38. package/types/node/vite.demo.config.d.ts +2 -0
  39. package/types/node/vite.plugins.d.ts +19 -0
  40. package/types/shared/chunk-store.d.ts +104 -0
  41. package/types/shared/constants.d.ts +67 -0
  42. package/types/shared/entry-names.d.ts +29 -0
  43. package/types/shared/eviction.d.ts +16 -0
  44. package/types/shared/forward-index.d.ts +85 -0
  45. package/types/shared/idb.d.ts +9 -0
  46. package/types/shared/locks.d.ts +14 -0
  47. package/types/shared/mime.d.ts +7 -0
  48. package/types/shared/mp4.d.ts +41 -0
  49. package/types/shared/pkg-id.d.ts +21 -0
  50. package/types/shared/protocol.d.ts +232 -0
  51. package/types/shared/range.d.ts +16 -0
  52. package/types/shared/source.d.ts +57 -0
  53. package/types/shared/stream-utils.d.ts +7 -0
  54. package/types/sw/frame-document.d.ts +19 -0
  55. package/types/sw/mount.d.ts +17 -0
  56. package/types/sw/package-reader.d.ts +242 -0
  57. package/types/sw/routes.d.ts +26 -0
  58. package/types/sw/stream-utils.d.ts +9 -0
  59. package/types/sw/sw-entry.d.ts +1 -0
@@ -0,0 +1,88 @@
1
+ var ip=Object.defineProperty;var se=(t,e)=>()=>(t&&(e=t(t=0)),e);var ap=(t,e)=>{for(var r in e)ip(t,r,{get:e[r],enumerable:!0})};var Jr,Nt,w,Vt,ye,K,ss,We,Xc,Wi,j,is,ue=se(()=>{Jr=new Date(2107,11,31,23,59,58),Nt=new Date(1980,0,1),w=void 0,Vt=1/0,ye="undefined",K="function",ss="object",We="string",Xc="number",Wi="boolean",j=new Uint8Array,is=Symbol.asyncDispose||Symbol()});function hr(t){if(t&&typeof t!=K)throw new Error(Sl);return t}function tn(t){if(t&&(typeof t.addEventListener!=K||typeof t.aborted!=Wi))throw new Error(Il);return t||w}function jt(t){if(t&&t.aborted)throw t.reason===w?new DOMException(Nl,yp):t.reason}function gs(t,e){if(t&&typeof t!=We||e&&!(e instanceof Uint8Array))throw new Error(Zi)}function gr(t){if(t!==w&&typeof t!=Wi&&t!==en)throw new Error(bl);return t}function Ki(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function Rr(t,e,r){t!==w&&Ki(t,e,r)}function Dt(t){return typeof t==We&&t.trim()?Number(t):t}var jc,Zc,Kc,qc,Jc,as,os,Qr,cs,Qc,$c,el,tl,rl,nl,sl,il,al,ls,fs,us,ds,ol,cl,ll,fl,ps,ul,dl,pl,Gi,Vi,El,ml,$r,Xt,hl,gl,Rl,wl,_l,Tl,Xi,Al,yl,ji,Es,ms,Ot,hs,at,en,Sl,Il,Zi,bl,Nl,yp,wr=se(()=>{ue();jc="filenameEncoding",Zc="commentEncoding",Kc="decodeText",qc="extractPrependedData",Jc="extractAppendedData",as="password",os="rawPassword",Qr="passThrough",cs="signal",Qc="checkPasswordOnly",$c="checkOverlappingEntryOnly",el="checkOverlappingEntry",tl="checkAmbiguity",rl="checkLocalDirectory",nl="checkLocalFilename",sl="checkSignature",il="checkCrc32",al="checkAuthenticationCode",ls="useWebWorkers",fs="useCompressionStream",us="transferStreams",ds="preventClose",ol="encryptionStrength",cl="extendedTimestamp",ll="ntfsTimestamp",fl="keepOrder",ps="level",ul="bufferedWrite",dl="createTempStream",pl="dataDescriptorSignature",Gi="useUnicodeFileNames",Vi="dataDescriptor",El="supportZip64SplitFile",ml="encodeText",$r="offset",Xt="usdz",hl="unixExtraFieldType",gl="localExtraField",Rl="centralExtraField",wl="strictness",_l="filenameValidation",Tl="normalizeFilename",Xi="maxAppendedDataSize",Al="decryptCentralDirectory",yl="signCentralDirectory",ji="entry",Es="filename",ms="comment",Ot="strict",hs="balanced",at="tolerant",en="compressed",Sl="Invalid option (must be a function)",Il="Invalid signal (must be an AbortSignal instance)",Zi="Invalid password (password must be a string, rawPassword must be a Uint8Array)",bl="Invalid passThrough option (must be a boolean or 'compressed')",Nl="The operation was aborted",yp="AbortError"});function ot(){return zl}function rn(t){return qi(t.chunkSize)}function qi(t){return t=Dt(t),Number.isInteger(t)&&t>=Dl?Math.max(t,Sp):Ol}function Np(t){let e={};for(let r of bp){let n=t[r];n!==w&&(e[r]=Op(r,n))}return e}function Op(t,e){if(kl.includes(t)){if(e=Dt(e),t==Ul&&(!Number.isInteger(e)||e<Dl))throw new Error(Pl)}else if(Bl.includes(t))hr(e);else if(t==Ml){if(e&&typeof e!=We)throw new Error(xl)}else if(vl.includes(t)&&e&&typeof e!=We&&typeof e!=K)throw new Error(Cl);return e}function Dp(t){t=t||{};let{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===w&&r===w)return t;let n=Object.assign({},t);return n.CompressionStreamFallback===w&&(n.CompressionStreamFallback=e),n.DecompressionStreamFallback===w&&(n.DecompressionStreamFallback=r),n}function Pt(t){let e=Np(Dp(t));Object.assign(Fl,e),Object.assign(zl,e)}var Ol,Sp,Dl,Pl,xl,Cl,Ll,Fl,Ul,Ml,vl,Ip,kl,Bl,bp,zl,Ge=se(()=>{ue();wr();Ol=64*1024,Sp=64,Dl=1,Pl="Invalid maxWorkers (must be an integer greater than 0)",xl="Invalid baseURI (must be a string)",Cl="Invalid URI (must be a string or a function returning a string)",Ll=2;try{typeof navigator!=ye&&navigator.hardwareConcurrency&&(Ll=navigator.hardwareConcurrency)}catch{}Fl={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:Ol,maxWorkers:Ll,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=ye&&CompressionStream,DecompressionStream:typeof DecompressionStream!=ye&&DecompressionStream},Ul="maxWorkers",Ml="baseURI",vl=["wasmURI","workerURI"],Ip=["useCompressionStream","useWebWorkers","transferStreams"],kl=["chunkSize",Ul,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],Bl=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],bp=[Ml,...vl,...Ip,...kl,...Bl],zl={...Fl}});function Be(t,e){let r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function ws(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function L(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var xt=se(()=>{});function Re(t){return!!t&&typeof t=="object"}var Zt=se(()=>{});var nn,Yl,Pp,xp,Cp,Lp,Fp,Up,Mp,Ve,sn=se(()=>{nn=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let r=0;r<8;r++)e=e&1?e>>>1^3988292384:e>>>1;nn[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){let r=nn[e-1][t];nn[e][t]=r>>>8^nn[0][r&255]}[Yl,Pp,xp,Cp,Lp,Fp,Up,Mp]=nn,Ve=class{constructor(e){this.crc=e||-1}append(e){let r=this.crc|0,n=e.length|0,s=0;if(n>=8&&e.buffer){let i=new DataView(e.buffer,e.byteOffset,n),a=n-8;for(;s<=a;s+=8){let o=r^i.getInt32(s,!0),c=i.getInt32(s+4,!0);r=Mp[o&255]^Up[o>>>8&255]^Fp[o>>>16&255]^Lp[o>>>24&255]^Cp[c&255]^xp[c>>>8&255]^Pp[c>>>16&255]^Yl[c>>>24&255]}}for(;s<n;s++)r=r>>>8^Yl[(r^e[s])&255];this.crc=r}get(){return~this.crc}}});var an,Wl=se(()=>{sn();an=class extends TransformStream{constructor(){let e,r=new Ve;super({transform(n,s){r.append(n),s.enqueue(n)},flush(){let n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,r.get()),e.value=n}}),e=this}}});function _r(t){if(typeof TextEncoder==ye){t=unescape(encodeURIComponent(t));let e=new Uint8Array(t.length);for(let r=0;r<e.length;r++)e[r]=t.charCodeAt(r);return e}else return new TextEncoder().encode(t)}var Ji=se(()=>{ue()});function on(t,e){Yp();let r=new Int32Array(60),n=Wp(t,r),s=new Int32Array(16/4),i=Zl(e),a=0,o=0,c=0,f=0;return{process(l,h){h&&i.update(l,0,l.length),R(l),h||i.update(l,0,l.length)},digest(){return i.digest()}};function R(l){let h=new DataView(l.buffer,l.byteOffset,l.byteLength),g=l.length,p=0;for(;p+16<=g;p+=16)E(),h.setInt32(p,h.getInt32(p)^s[0]),h.setInt32(p+4,h.getInt32(p+4)^s[1]),h.setInt32(p+8,h.getInt32(p+8)^s[2]),h.setInt32(p+12,h.getInt32(p+12)^s[3]);if(p<g){E();for(let d=0;p<g;p++,d++)l[p]^=s[d>>2]>>>24-8*(d&3)}}function E(){a=a+1|0,a||(o=o+1|0,o||(c=c+1|0,c||(f=f+1|0)));let l=_s(a)^r[0],h=_s(o)^r[1],g=_s(c)^r[2],p=_s(f)^r[3],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[4],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[5],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[6],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[7];l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[8],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[9],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[10],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[11],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[12],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[13],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[14],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[15],l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[16],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[17],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[18],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[19],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[20],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[21],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[22],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[23],l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[24],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[25],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[26],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[27],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[28],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[29],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[30],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[31],l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[32],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[33],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[34],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[35],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[36],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[37],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[38],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[39];let A=40;n>10&&(l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[40],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[41],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[42],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[43],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[44],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[45],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[46],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[47],A=48),n>12&&(l=O[d>>>24]^D[u>>>16&255]^P[m>>>8&255]^x[_&255]^r[48],h=O[u>>>24]^D[m>>>16&255]^P[_>>>8&255]^x[d&255]^r[49],g=O[m>>>24]^D[_>>>16&255]^P[d>>>8&255]^x[u&255]^r[50],p=O[_>>>24]^D[d>>>16&255]^P[u>>>8&255]^x[m&255]^r[51],d=O[l>>>24]^D[h>>>16&255]^P[g>>>8&255]^x[p&255]^r[52],u=O[h>>>24]^D[g>>>16&255]^P[p>>>8&255]^x[l&255]^r[53],m=O[g>>>24]^D[p>>>16&255]^P[l>>>8&255]^x[h&255]^r[54],_=O[p>>>24]^D[l>>>16&255]^P[h>>>8&255]^x[g&255]^r[55],A=56),s[0]=(ce[d>>>24]<<24|ce[u>>>16&255]<<16|ce[m>>>8&255]<<8|ce[_&255])^r[A],s[1]=(ce[u>>>24]<<24|ce[m>>>16&255]<<16|ce[_>>>8&255]<<8|ce[d&255])^r[A+1],s[2]=(ce[m>>>24]<<24|ce[_>>>16&255]<<16|ce[d>>>8&255]<<8|ce[u&255])^r[A+2],s[3]=(ce[_>>>24]<<24|ce[d>>>16&255]<<16|ce[u>>>8&255]<<8|ce[m&255])^r[A+3]}}function jl(t,e,r,n){let s=Zl(t),i=new Uint8Array(n),a=new Uint8Array(e.length+4),o=new DataView(a.buffer);a.set(e);for(let c=1,f=0;f<n;c++,f+=20){o.setUint32(e.length,c),s.update(a,0,a.length);let R=s.digest(),E=R.slice();for(let l=1;l<r;l++){s.update(R,0,20),R=s.digest();for(let h=0;h<20;h++)E[h]^=R[h]}i.set(E.subarray(0,Math.min(20,n-f)),f)}return i}function Zl(t){let e=Hp(),r=new Uint8Array(64),n=new Uint8Array(64);t.length>64&&(e.update(t,0,t.length),t=e.digest());for(let s=0;s<64;s++){let i=s<t.length?t[s]:0;r[s]=i^Bp,n[s]=i^zp}return e.update(r,0,64),{update(s,i,a){e.update(s,i,a)},digest(){let s=e.digest();e.update(n,0,64),e.update(s,0,20);let i=e.digest();return e.update(r,0,64),i}}}function Hp(){let t=new Int32Array(Gl),e=new Int32Array(16),r=new Uint8Array(64),n=new DataView(r.buffer),s=new Uint8Array(8),i=0,a=0;return{update:o,digest:c};function o(R,E,l){let h=E+l;if(a+=l,i){for(;E<h&&i<64;)r[i++]=R[E++];i==64&&(f(n,0),i=0)}if(E+64<=h){let g=new DataView(R.buffer,R.byteOffset,R.byteLength);for(;E+64<=h;E+=64)f(g,E)}for(;E<h;)r[i++]=R[E++]}function c(){let R=a*8,E=Math.floor(R/4294967296),l=R>>>0;for(o(vp,0,1);i!=56;)o(kp,0,1);s[0]=E>>>24,s[1]=E>>>16,s[2]=E>>>8,s[3]=E,s[4]=l>>>24,s[5]=l>>>16,s[6]=l>>>8,s[7]=l,o(s,0,8);let h=new Uint8Array(20),g=new DataView(h.buffer);for(let p=0;p<t.length;p++)g.setInt32(4*p,t[p]);return t.set(Gl),i=0,a=0,h}function f(R,E){for(let m=0;m<16;m++)e[m]=R.getInt32(E+4*m);let l=t[0],h=t[1],g=t[2],p=t[3],d=t[4],u;for(let m=0;m<15;m+=5)d=(l<<5|l>>>27)+((g^p)&h^p)+d+1518500249+e[m]|0,h=h<<30|h>>>2,p=(d<<5|d>>>27)+((h^g)&l^g)+p+1518500249+e[m+1]|0,l=l<<30|l>>>2,g=(p<<5|p>>>27)+((l^h)&d^h)+g+1518500249+e[m+2]|0,d=d<<30|d>>>2,h=(g<<5|g>>>27)+((d^l)&p^l)+h+1518500249+e[m+3]|0,p=p<<30|p>>>2,l=(h<<5|h>>>27)+((p^d)&g^d)+l+1518500249+e[m+4]|0,g=g<<30|g>>>2;d=(l<<5|l>>>27)+((g^p)&h^p)+d+1518500249+e[15]|0,h=h<<30|h>>>2,u=e[13]^e[8]^e[2]^e[0],u=u<<1|u>>>31,e[0]=u,p=(d<<5|d>>>27)+((h^g)&l^g)+p+1518500249+u|0,l=l<<30|l>>>2,u=e[14]^e[9]^e[3]^e[1],u=u<<1|u>>>31,e[1]=u,g=(p<<5|p>>>27)+((l^h)&d^h)+g+1518500249+u|0,d=d<<30|d>>>2,u=e[15]^e[10]^e[4]^e[2],u=u<<1|u>>>31,e[2]=u,h=(g<<5|g>>>27)+((d^l)&p^l)+h+1518500249+u|0,p=p<<30|p>>>2,u=e[0]^e[11]^e[5]^e[3],u=u<<1|u>>>31,e[3]=u,l=(h<<5|h>>>27)+((p^d)&g^d)+l+1518500249+u|0,g=g<<30|g>>>2;for(let m=20;m<40;m+=5)u=e[m-3&15]^e[m-8&15]^e[m-14&15]^e[m&15],u=u<<1|u>>>31,e[m&15]=u,d=(l<<5|l>>>27)+(h^g^p)+d+1859775393+u|0,h=h<<30|h>>>2,u=e[m-2&15]^e[m-7&15]^e[m-13&15]^e[m+1&15],u=u<<1|u>>>31,e[m+1&15]=u,p=(d<<5|d>>>27)+(l^h^g)+p+1859775393+u|0,l=l<<30|l>>>2,u=e[m-1&15]^e[m-6&15]^e[m-12&15]^e[m+2&15],u=u<<1|u>>>31,e[m+2&15]=u,g=(p<<5|p>>>27)+(d^l^h)+g+1859775393+u|0,d=d<<30|d>>>2,u=e[m&15]^e[m-5&15]^e[m-11&15]^e[m+3&15],u=u<<1|u>>>31,e[m+3&15]=u,h=(g<<5|g>>>27)+(p^d^l)+h+1859775393+u|0,p=p<<30|p>>>2,u=e[m+1&15]^e[m-4&15]^e[m-10&15]^e[m+4&15],u=u<<1|u>>>31,e[m+4&15]=u,l=(h<<5|h>>>27)+(g^p^d)+l+1859775393+u|0,g=g<<30|g>>>2;for(let m=40;m<60;m+=5)u=e[m-3&15]^e[m-8&15]^e[m-14&15]^e[m&15],u=u<<1|u>>>31,e[m&15]=u,d=(l<<5|l>>>27)+(h&g|(h|g)&p)+d+2400959708+u|0,h=h<<30|h>>>2,u=e[m-2&15]^e[m-7&15]^e[m-13&15]^e[m+1&15],u=u<<1|u>>>31,e[m+1&15]=u,p=(d<<5|d>>>27)+(l&h|(l|h)&g)+p+2400959708+u|0,l=l<<30|l>>>2,u=e[m-1&15]^e[m-6&15]^e[m-12&15]^e[m+2&15],u=u<<1|u>>>31,e[m+2&15]=u,g=(p<<5|p>>>27)+(d&l|(d|l)&h)+g+2400959708+u|0,d=d<<30|d>>>2,u=e[m&15]^e[m-5&15]^e[m-11&15]^e[m+3&15],u=u<<1|u>>>31,e[m+3&15]=u,h=(g<<5|g>>>27)+(p&d|(p|d)&l)+h+2400959708+u|0,p=p<<30|p>>>2,u=e[m+1&15]^e[m-4&15]^e[m-10&15]^e[m+4&15],u=u<<1|u>>>31,e[m+4&15]=u,l=(h<<5|h>>>27)+(g&p|(g|p)&d)+l+2400959708+u|0,g=g<<30|g>>>2;for(let m=60;m<80;m+=5)u=e[m-3&15]^e[m-8&15]^e[m-14&15]^e[m&15],u=u<<1|u>>>31,e[m&15]=u,d=(l<<5|l>>>27)+(h^g^p)+d+3395469782+u|0,h=h<<30|h>>>2,u=e[m-2&15]^e[m-7&15]^e[m-13&15]^e[m+1&15],u=u<<1|u>>>31,e[m+1&15]=u,p=(d<<5|d>>>27)+(l^h^g)+p+3395469782+u|0,l=l<<30|l>>>2,u=e[m-1&15]^e[m-6&15]^e[m-12&15]^e[m+2&15],u=u<<1|u>>>31,e[m+2&15]=u,g=(p<<5|p>>>27)+(d^l^h)+g+3395469782+u|0,d=d<<30|d>>>2,u=e[m&15]^e[m-5&15]^e[m-11&15]^e[m+3&15],u=u<<1|u>>>31,e[m+3&15]=u,h=(g<<5|g>>>27)+(p^d^l)+h+3395469782+u|0,p=p<<30|p>>>2,u=e[m+1&15]^e[m-4&15]^e[m-10&15]^e[m+4&15],u=u<<1|u>>>31,e[m+4&15]=u,l=(h<<5|h>>>27)+(g^p^d)+l+3395469782+u|0,g=g<<30|g>>>2;t[0]=t[0]+l|0,t[1]=t[1]+h|0,t[2]=t[2]+g|0,t[3]=t[3]+p|0,t[4]=t[4]+d|0}}function Yp(){if(!Vl){let t=1,e=1;do t=(t^t<<1^(t&128?27:0))&255,e=(e^e<<1)&255,e=(e^e<<2)&255,e=(e^e<<4)&255,e&128&&(e^=9),ce[t]=(e^(e<<1|e>>7)^(e<<2|e>>6)^(e<<3|e>>5)^(e<<4|e>>4)^99)&255;while(t!=1);ce[0]=99;for(let r=0;r<256;r++){let n=ce[r],s=Kl(n),i=s<<24|n<<16|n<<8|s^n;O[r]=i,D[r]=i>>>8|i<<24,P[r]=i>>>16|i<<16,x[r]=i>>>24|i<<8}Vl=!0}}function Wp(t,e){let r=t.length>>2,n=r+6,s=4*(n+1),i=1;for(let a=0;a<r;a++)e[a]=t[4*a]<<24|t[4*a+1]<<16|t[4*a+2]<<8|t[4*a+3];for(let a=r;a<s;a++){let o=e[a-1];a%r==0?(o=Xl(o<<8|o>>>24)^i<<24,i=Kl(i)):r>6&&a%r==4&&(o=Xl(o)),e[a]=e[a-r]^o}return n}function Xl(t){return ce[t>>>24]<<24|ce[t>>>16&255]<<16|ce[t>>>8&255]<<8|ce[t&255]}function _s(t){return t<<24|(t&65280)<<8|t>>>8&65280|t>>>24}function Kl(t){return(t<<1^(t>>7)*27)&255}var vp,kp,Gl,Bp,zp,ce,O,D,P,x,Vl,Qi=se(()=>{vp=new Uint8Array([128]),kp=new Uint8Array(1),Gl=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),Bp=54,zp=92,ce=new Uint8Array(256),O=new Int32Array(256),D=new Int32Array(256),P=new Int32Array(256),x=new Int32Array(256),Vl=!1});function Ts(t){if(Gp)return crypto.getRandomValues(t);throw new Error(Tr)}var Gp,Xe,Ct,lt,Tr,As=se(()=>{ue();Gp=typeof crypto!=ye&&typeof crypto.getRandomValues==K,Xe="Invalid password",Ct="Invalid authentication code",lt="zipjs-abort-check-password",Tr="Crypto API not supported"});function tf(t){ef=t||on}function rf(t,e,r,n){Object.assign(t,{ready:new Promise(s=>t.resolveReady=s),password:rE(e,r),strength:n-1,pendingInput:j,discarded:!1})}function nf(t,e){let r=t.readable.getReader(),n=new ReadableStream({async pull(s){try{let{value:i,done:a}=await r.read();a?s.close():s.enqueue(i)}catch(i){throw fn(e),r.cancel(i).catch(()=>{}),i}},cancel(s){return fn(e),r.cancel(s)}});Object.defineProperty(t,"readable",{get(){return n}})}function sf(t,e,r,n,s,i){let{engine:a,pendingInput:o}=t;o.length&&(e=Be(o,e));let c=e.length-s,f=c-c%ea;if(r=nE(r,n+f),f){let R=xe(r,n,n+f);R.set(xe(e,0,f)),a.process(R,i)}return t.pendingInput=xe(e,f),r}async function $p(t,e,r,n){let s=await af(t,e,r,xe(n,0,cn[e])),i=xe(n,cn[e]);if(s[0]!=i[0]||s[1]!=i[1])throw fn(t),new Error(Xe)}function fn(t){let{engine:e}=t;t.discarded=!0,e&&e.dispose&&e.dispose()}async function eE(t,e,r){let n=Ts(new Uint8Array(cn[e])),s=await af(t,e,r,n);return Be(n,s)}async function af(t,e,r,n){t.password=null;let s=Jp[e],i=await tE(r,n,s*2+$i);return t.engine=ef(xe(i,0,s),xe(i,s,s*2)),t.discarded&&fn(t),xe(i,s*2)}async function tE(t,e,r){if(ql)try{let n=await ln.importKey(Vp,t,Zp,!1,qp);return new Uint8Array(await ln.deriveBits(Object.assign({salt:e},Kp),n,r*8))}catch{ql=!1}return jl(t,e,Ql,r)}function rE(t,e){return e===w?_r(t):e}function nE(t,e){if(e&&e>t.length){let r=t;t=new Uint8Array(e),t.set(r,0)}return t}function xe(t,e,r){return t.subarray(e,r)}var ea,Vp,Jl,Xp,jp,Ql,Zp,Kp,qp,cn,Jp,Lt,$i,$l,ln,Qp,ql,ef,ys,Ss,ta=se(()=>{ue();Ji();xt();Qi();As();ea=16,Vp="raw",Jl={name:"PBKDF2"},Xp={name:"HMAC"},jp="SHA-1",Ql=1e3,Zp=Object.assign({hash:Xp},Jl),Kp=Object.assign({iterations:Ql,hash:{name:jp}},Jl),qp=["deriveBits"],cn=[8,12,16],Jp=[16,24,32],Lt=10,$i=2,$l=typeof crypto!=ye,ln=$l&&crypto.subtle,Qp=$l&&typeof ln!=ye,ql=Qp&&typeof ln.importKey==K&&typeof ln.deriveBits==K,ef=on,ys=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n,checkPasswordOnly:s,checkAuthenticationCode:i=!0}){let a={};super({start(){rf(a,e,r,n)},async transform(o,c){let{password:f,strength:R,resolveReady:E,ready:l}=a;if(f?(await $p(a,R,f,xe(o,0,cn[R]+$i)),o=xe(o,cn[R]+$i),s?(fn(a),c.error(new Error(lt))):E()):await l,a.discarded)return;let h=new Uint8Array(o.length-Lt-(o.length-Lt)%ea);c.enqueue(sf(a,o,h,0,Lt,!0))},async flush(o){let{engine:c,pendingInput:f,ready:R}=a;if(c){if(await R,a.discarded)return;let E=xe(f,f.length-Lt),l=new Uint8Array(xe(f,0,f.length-Lt));c.process(l,!0);let h=c.digest(),g=f.length<Lt?1:0;for(let p=0;p<Lt;p++)g|=h[p]^E[p];if(g&&i){o.error(new Error(Ct));return}o.enqueue(l)}}}),nf(this,a)}},Ss=class extends TransformStream{constructor({password:e,rawPassword:r,encryptionStrength:n}){let s={};super({start(){rf(s,e,r,n)},async transform(i,a){let{password:o,strength:c,resolveReady:f,ready:R}=s,E=j;if(o?(E=await eE(s,c,o),f()):await R,s.discarded)return;let l=new Uint8Array(E.length+i.length-i.length%ea);l.set(E,0),a.enqueue(sf(s,i,l,E.length,0,!1))},async flush(i){let{engine:a,pendingInput:o,ready:c}=s;if(a){if(await c,s.discarded)return;let f=new Uint8Array(o);a.process(f,!1);let R=xe(a.digest(),0,Lt);i.enqueue(Be(f,R))}}}),nf(this,s)}}});function ff(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),sE(t,e,r)}function of(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=uf(t)^e[n],Ns(t,r[n]);return r}function cf(t,e){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=uf(t)^e[n],Ns(t,e[n]);return r}function sE(t,e,r){let n=[305419896,591751049,878082192];if(Object.assign(t,{cryptoKeys:n,crcKey0:new Ve(n[0]),crcKey2:new Ve(n[2])}),r)for(let s=0;s<r.length;s++)Ns(t,r[s]);else for(let s=0;s<e.length;s++)Ns(t,e.charCodeAt(s))}function Ns(t,e){let[,r]=t.cryptoKeys;t.crcKey0.append([e]);let n=~t.crcKey0.get();r=lf(Math.imul(lf(r+df(n)),134775813)+1),t.crcKey2.append([r>>>24]);let s=~t.crcKey2.get();t.cryptoKeys=[n,r,s]}function uf(t){let e=t.cryptoKeys[2]|2;return df(Math.imul(e,e^1)>>>8)}function df(t){return t&255}function lf(t){return t&4294967295}var Ar,Is,bs,pf=se(()=>{sn();As();Ar=12,Is=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n,checkPasswordOnly:s}){super({start(){ff(this,e,r,n)},transform(i,a){let o=this;if(o.password||o.rawPassword){let c=of(o,i.subarray(0,Ar));if(o.password=o.rawPassword=null,(c[Ar-1]^o.passwordVerification)!=0)throw new Error(Xe);i=i.subarray(Ar)}s?a.error(new Error(lt)):a.enqueue(of(o,i))}})}},bs=class extends TransformStream{constructor({password:e,rawPassword:r,passwordVerification:n}){super({start(){ff(this,e,r,n)},transform(s,i){let a=this,o,c;if(a.password||a.rawPassword){a.password=a.rawPassword=null;let f=Ts(new Uint8Array(Ar));f[Ar-1]=a.passwordVerification,o=new Uint8Array(s.length+f.length),o.set(cf(a,f),0),c=Ar}else o=new Uint8Array(s.length),c=0;o.set(cf(a,s),c),i.enqueue(o)}})}}});function ze(t){if(t instanceof ReadableStream)return t;let e=t.getReader();return new ReadableStream({async pull(r){try{let{value:n,done:s}=await e.read();s?r.close():r.enqueue(n)}catch(n){throw e.cancel(n).catch(()=>{}),n}},cancel(r){return e.cancel(r)}})}function ft(t,e){t=ze(t);let r=e?{type:e}:{};if(iE())return new Response(t).blob().then(s=>e?new Blob([s],r):s);let n=[];return t.pipeTo(new WritableStream({write(s){n.push(s)}})).then(()=>new Blob(n,r))}function iE(){return typeof Blob.prototype.stream!=K||new Blob([]).stream()instanceof ReadableStream}function ra(t){if(t instanceof WritableStream)return t;let e=t.getWriter();return new WritableStream({write(r){return e.write(r)},close(){return e.close()},abort(r){return e.abort(r)}})}var Kt=se(()=>{ue()});function Os(t){return aE.get(t)}function Ds(t){return na.get(t)}function oE(t,e){let{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=K&&typeof n!=K)throw new Error(Ef);na.set(t,{CompressionStream:r,DecompressionStream:n})}async function mf(t,e){!na.has(t)&&e&&oE(t,await import(e))}var Ef,ut,aE,na,Jt=se(()=>{ue();Ef="Invalid codec module",ut="Compression method not supported",aE=new Map,na=new Map});function fE(t,e,r,n,s){let i=e.writable.getWriter(),a=e.readable.getReader(),o=n===w?new Ve:w,c=0,f=!1,R=!1,E,l,h=new ReadableStream({start(A){l=A},pull(){m()},cancel(A){return R=!0,m(),a.cancel(A)}});return g(),p(),h;async function g(){let A=t.getReader();try{let T=new Uint8Array(Rf);for(T.set(lE),await i.write(T);;){await u(),await i.ready;let{value:I,done:N}=await Sf(A,s);if(N)break;await i.write(I)}o&&await i.write(new Uint8Array(0));let y=new Uint8Array(sa),S=L(y);S.setUint32(0,o?o.get():n,!0),S.setUint32(4,r,!0),f=!0,await i.write(y),await i.close()}catch(T){await yf(i,T),await Ls(A,T)}}async function p(){try{for(;;){let{value:A,done:T}=await d();if(T)break;if(c+=A.length,c>r)throw new Error(Je);o&&o.append(A),l.enqueue(A)}R||(R=!0,l.close())}catch(A){_(A),await Ls(a,A)}}function d(){return a.read().catch(A=>{if(f){if(!o)throw Us(A,Ft);if(c!=r)throw Us(A,Je);return{done:!0}}throw If(A,s)})}function u(){if(!R&&l.desiredSize<=0)return new Promise(A=>E=A)}function m(){if(E){let A=E;E=w,A()}}function _(A){R||(R=!0,l.error(A),m())}}function aa(t,e){if(!t)return!1;let r=hf.get(t);r||(r=new Map,hf.set(t,r));let n=r.get(e);if(n===w){try{new t(e),n=!0}catch{n=!1}r.set(e,n)}return n}function Ms(t){return aa(t,ia)}function oa(t){return aa(t,Sr)}function wf(t,e,r){e=dt(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get(){return e}})}function _f(t,e,r){if(!t)throw new Error(ut);return new t(e,r)}function Tf(t,e,r){if(t&&e)return e;if(r&&r.requiresModule)return r}function Af(t,e,r,n,s,i){let a=e&&n?n:s||n,o=r.deflate64?gf:ia,c;try{c=new a(o,r)}catch(f){if(e&&s&&a!=s)c=new s(o,r);else throw f}return dn(t,c,i)}function dt(t,e){return ze(t).pipeThrough(e)}function dn(t,e,r){let n=e.writable.getWriter(),s=t.getReader();return i(),e.readable;async function i(){try{for(;;){await n.ready;let a=await Sf(s,r);if(a.done){await n.close();break}await n.write(a.value)}}catch(a){await yf(n,a),await Ls(s,a)}}}async function yf(t,e){try{await t.abort(e)}catch{}}async function Ls(t,e){try{await t.cancel(e)}catch{}}function Sf(t,e){let r=t.read();return e?r.catch(n=>{throw e.add(n),n}):r}function If(t,e){return e.has(t)?t:Us(t,bf(t)?$t:Qt)}function Fs(t){return bf(t)?Us(t,$t):t}function bf(t){return Re(t)&&t.code==cE}function Us(t,e){let r=new Error(e);return r.cause=t,r}function uE(t,e){let r=t.getReader();return new ReadableStream({async pull(n){try{let{value:s,done:i}=await r.read();i?n.close():n.enqueue(s)}catch(s){throw await Ls(r,s),If(s,e)}},cancel(n){return r.cancel(n)}})}var Je,Qt,$t,Ft,cE,ia,gf,Sr,Rf,sa,lE,Ps,xs,Cs,hf,ca=se(()=>{sn();Wl();ta();pf();As();ue();xt();Kt();Zt();Jt();Je="Invalid uncompressed size",Qt="Invalid compressed data",$t="Codec out of memory",Ft="Invalid CRC32",cE="Z_MEM_ERROR",ia="deflate-raw",gf="deflate64-raw",Sr="gzip",Rf=10,sa=8,lE=[31,139,8],Ps=class extends TransformStream{constructor(e,{chunkSize:r,CompressionStreamFallback:n,CompressionStream:s}){super({});let{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:c,computeCrc32:f,level:R,deflate64:E,format:l,compressionMethod:h,inputSize:g}=e,p=this,d,u,m,_=super.readable,A=l&&Ds(l),T=Tf(o,s,n),y=f&&i&&!E&&!A&&(!a||c)&&!!T;if((!a||c)&&f&&!y&&(d=new an,_=dt(_,d)),i)if(A)_=dn(_,_f(A.CompressionStream,l,{level:R,chunkSize:r,compressionMethod:h,uncompressedSize:g}));else if(y)m=new xs,_=dn(_,new T(Sr,{level:R,chunkSize:r})),_=dt(_,m);else try{_=Af(_,o,{level:R,chunkSize:r},s,n)}catch(S){if(!o&&n)throw Fs(S);let I;try{I=new s(Sr)}catch{throw Fs(S)}_=dn(_,I),_=dt(_,new xs)}a&&(c?_=dt(_,new bs(e)):(u=new Ss(e),_=dt(_,u))),wf(p,_,()=>{(!a||c)&&f&&(p.crc32=y?m.crc32:new DataView(d.value.buffer).getUint32(0))})}},xs=class extends TransformStream{constructor(){let e,r=Rf,n=new Uint8Array(0);super({transform(s,i){if(r){let f=Math.min(r,s.length);if(r-=f,s=s.subarray(f),!s.length)return}let a=n.length+s.length;if(a<=sa){n=Be(n,s);return}let o=a-sa,c=Math.min(o,n.length);i.enqueue(Be(n.subarray(0,c),s.subarray(0,o-c))),n=Be(n.subarray(c),s.subarray(o-c))},flush(){let s=L(n);e.crc32=s.getUint32(0,!0),e.uncompressedSize=s.getUint32(4,!0)}}),e=this}};Cs=class extends TransformStream{constructor(e,{chunkSize:r,DecompressionStreamFallback:n,DecompressionStream:s}){super({});let{zipCrypto:i,encrypted:a,checkCrc32:o,crc32:c,compressed:f,useCompressionStream:R,deflate64:E,format:l,compressionMethod:h,rawBitFlag:g,outputSize:p}=e,d,u,m,_=super.readable;if(a&&(i?_=dt(_,new Is(e)):(u=new ys(e),_=dt(_,u))),f){let A=new Set,T=l&&Ds(l),y;if(T)_=dn(_,_f(T.DecompressionStream,l,{chunkSize:r,compressionMethod:h,rawBitFlag:g,uncompressedSize:p}),A);else{let S=Tf(R,s,n);if(o&&!E&&c!==w&&p!==w&&S)try{y=new S(Sr,{chunkSize:r})}catch{y=w}if(!y)try{_=Af(_,R,{chunkSize:r,deflate64:E},s,n,A)}catch(I){if(E||p===w||!R&&n)throw Fs(I);try{y=new s(Sr)}catch{throw Fs(I)}}}y?(m=!0,_=fE(_,y,p,c,A)):_=uE(_,A)}o&&!m&&(d=new an,_=dt(_,d)),wf(this,_,()=>{if(d){let A=new DataView(d.value.buffer).getUint32(0,!1);if(c!=A)throw new Error(Ft)}})}},hf=new Map});var dE,Nf,Of,Df,la,Pf,xf,Ir,ks,vs,pn,Bs=se(()=>{ue();ca();dE=64*1024,Nf="message",Of="start",Df="pull",la="data",Pf="ack",xf="close",Ir="deflate",ks="inflate",vs=class extends TransformStream{constructor(e,r){super({});let n=this,{codecType:s}=e,i;s.startsWith(Ir)?i=Ps:s.startsWith(ks)&&(i=Cs),n.outputSize=0;let a=0,o=new i(e,r),c=super.readable,f=new TransformStream({transform(E,l){E&&E.length&&(a+=E.length,l.enqueue(E))},flush(){Object.assign(n,{inputSize:a})}}),R=new TransformStream({transform(E,l){if(E&&E.length&&(l.enqueue(E),n.outputSize+=E.length,e.outputSize!==w&&n.outputSize>e.outputSize))throw new Error(Je)},flush(){let{crc32:E}=o;Object.assign(n,{crc32:E,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return c.pipeThrough(f).pipeThrough(o).pipeThrough(R)}})}},pn=class extends TransformStream{constructor(e){let r=[],n=0,s=0;(!Number.isFinite(e)||e<1)&&(e=dE),super({transform(o,c){for(r.push(o),n+=o.length;n>e;)s+=e,c.enqueue(i())},flush(o){n&&(s+=n,o.enqueue(a(r,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>s});function i(){let o=new Uint8Array(e),c=0;for(;c<e;){let f=r[0],R=e-c;f.length<=R?(o.set(f,c),c+=f.length,r.shift()):(o.set(f.subarray(0,R),c),r[0]=f.subarray(R),c+=R)}return n-=e,o}function a(o,c){let f=new Uint8Array(c),R=0;for(let E of o)f.set(E,R),R+=E.length;return f}}}});function Lf({initModule:t}){ua=t}function Ff(t){fa=t}async function Uf(t){let{CompressionStream:e,CompressionStreamFallback:r}=t;return r&&!r.requiresModule||Ms(e)||oa(e)?!0:r?await Mf(t):!1}async function Mf(t){if(ua)try{return await ua(t),!0}catch{}return!1}function da(t){t.createWorker?Cf=!0:zs=!1}async function Hs(t,...e){try{await t(...e)}catch{}}function pa(t,e){return{run:()=>Ws(t,e)}}async function Ws({options:t,readable:e,writable:r,onTaskFinished:n,workerOptions:s},i){let a,o,c;try{if(t.compressed&&!t.format){let g=t.codecType.startsWith(Ir),p=g?i.CompressionStreamFallback:i.DecompressionStreamFallback,d=g?i.CompressionStream:i.DecompressionStream;t.useCompressionStream?p&&p.requiresModule&&!Ms(d)&&await f():!await f()&&(!p||p.requiresModule)&&(t.useCompressionStream=!0)}t.encrypted&&!t.zipCrypto&&await f(),a=new vs(t,i),o=new pn(rn(i));let{signal:R}=s.streamOptions;await e.pipeThrough(a).pipeThrough(o).pipeTo(r,{preventClose:!0,preventAbort:!0,signal:R});let{crc32:E,inputSize:l,outputSize:h}=a;return{crc32:E,inputSize:l,outputSize:h}}catch(R){if(a){let E=o?o.outputSize:0;if(s.outputSize=E,Re(R))try{R.outputSize=E}catch{}}throw R}finally{n()}function f(){return c||(c=Mf(i)),c}}var er,zs,Cf,fa,ua,Ut,Ys,br=se(()=>{ue();Ge();Zt();Bs();er="Worker startup timeout",ua=()=>{};Ut=class{constructor(e,{readable:r,writable:n},s,i){let{options:a,config:o,streamOptions:c,useWebWorkers:f,transferStreams:R,workerURI:E}=s,{createWorker:l}=s,{signal:h}=c;return Cf&&(l=w),Object.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:r.pipeThrough(new pn(rn(o))).pipeThrough(new Ys(c),{signal:h}),writable:n,options:Object.assign({},a),workerOptions:s,workerURI:E,createWorker:l,transferStreams:R,terminate(){return new Promise(g=>{let{worker:p,busy:d}=e;d?(e.terminateResolvers=e.terminateResolvers||[],e.terminateResolvers.push(g)):(p&&(p.terminate(),e.worker=null),g()),e.interface=null})},onTaskFinished(){if(e.busy){let{terminateResolvers:g,worker:p}=e;g&&(e.terminateResolvers=null,p&&(e.terminated=!0,p.terminate())),e.busy=!1;let d=i(e);g&&g.forEach(u=>u(d))}}}),zs===w&&(zs=typeof Worker!=ye),(f&&fa&&(zs&&E||l)?fa:pa)(e,o)}},Ys=class extends TransformStream{constructor({onstart:e,onprogress:r,size:n,onend:s}){let i=0;super({async start(){e&&await Hs(e,n)},async transform(a,o){i+=a.length,r&&await Hs(r,i,n),o.enqueue(a)},async flush(){s&&await Hs(s,i)}})}}});async function js(t,e){let{options:r,config:n}=e,{transferStreams:s,useWebWorkers:i,useCompressionStream:a,compressed:o,checkCrc32:c,computeCrc32:f,encrypted:R,format:E,codecURI:l}=r,{workerURI:h,createWorker:g,maxWorkers:p}=n;E&&(l&&(r.codecURI=_E(l,n.baseURI)),await mf(E,r.codecURI)),e.transferStreams=!E&&(s||s===w&&n.transferStreams);let d=!o&&!c&&!f&&!R,u=E===w||!!r.codecURI;return e.useWebWorkers=!d&&u&&(i||i===w&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&h?h:w,e.createWorker=e.useWebWorkers&&g?g:w,r.useCompressionStream=a||a===w&&n.useCompressionStream,(await m()).run();async function m(){let A=tr.find(T=>!T.busy);if(A)return Vf(A),new Ut(A,t,e,_);if(tr.length<p){let T={indexWorker:Gf};return Gf++,tr.push(T),new Ut(T,t,e,_)}else return new Promise(T=>{rr.push({resolve:T,stream:t,workerOptions:e}),Vs=n.workerStarvationTimeout,Xs()})}function _(A){if(wa(),A.terminated)return A.terminated=!1,AE();if(rr.length){let[{resolve:T,stream:y,workerOptions:S}]=rr.splice(0,1);T(new Ut(A,y,S,_)),Xs()}else A.worker?(Vf(A),yE(A,e)):tr=tr.filter(T=>T!=A)}}function _E(t,e){try{return new URL(t,e).toString()}catch{return t}}function Xs(){!Nr&&rr.length&&Number.isFinite(Vs)&&Vs>=0&&(Nr=setTimeout(TE,Vs))}function wa(){Nr&&(clearTimeout(Nr),Nr=null)}function TE(){if(Nr=null,rr.length){let[{resolve:t,stream:e,workerOptions:r}]=rr.splice(0,1);t(new Ut({},e,Xf(r),jf)),Xs()}}function AE(){let t=rr.splice(0).map(({resolve:e,stream:r,workerOptions:n})=>new Promise(s=>{e(new Ut({},r,Xf(n),()=>{jf(),s()}))}));return wa(),Promise.all(t)}function Xf(t){return Object.assign({},t,{useWebWorkers:!1,workerURI:w,createWorker:w})}function jf(){wa(),Xs()}function yE(t,e){let{config:r}=e,{terminateWorkerTimeout:n}=r;Number.isFinite(n)&&n>=0&&(t.terminateTimeout=setTimeout(async()=>{tr=tr.filter(s=>s!=t);try{await t.terminate()}catch{}},n))}function Vf(t){let{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}var tr,rr,Nr,Vs,Gf,Zs=se(()=>{ue();Bs();Jt();br();tr=[],rr=[],Gf=0});function Zf(t){let e="";for(let r=0;r<t.length;r++)e+=SE[t[r]];return e}var SE,Kf=se(()=>{SE="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0".split("")});function En(t,e){return IE(t,e,!0)}function _a(t){if(t.some(e=>e>127))try{return new TextDecoder("utf-8",{fatal:!0}).decode(t),!0}catch{return!1}else return!1}function IE(t,e,r){return e&&e.trim().toLowerCase()=="cp437"?Zf(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}var Ta=se(()=>{Kf()});function NE(){$f=(async()=>{try{let e=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader(),r=0,n=await e.read();for(;!n.done;)r+=n.value.length,n=await e.read();Aa=r==1}catch{Aa=!1}})()}function mn(t){return!!(t&&t.getData)}async function ge(t,e){if(t.init&&!t.initialized)await t.init(e);else return Promise.resolve()}async function OE(t){return t=new Et(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new Qe(await ft(t.readable)),await ge(t)),t}function re(t,e,r){return t.readUint8Array(e,r)}function ya(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?pt.prototype.createReadable.call(t,e):t.readable}var Jf,Qf,FR,UR,MR,bE,qf,Ks,pt,Aa,$f,Qe,qs,Js,Et,Or,hn=se(()=>{ue();Ge();xt();Kt();Ta();Jf="Writer iterator completed too soon",Qf="Invalid writer (size must be writable)",FR=256*1024,UR=16*1024*1024,MR=65557,bE="writable",qf=Symbol(),Ks=class{constructor(){this.size=0}init(){this.initialized=!0}},pt=class extends Ks{get readable(){return this.createReadable()}createReadable({offset:e=0,size:r,chunkSize:n=rn(ot())}={}){let s=this,i=0;return n=qi(n),new ReadableStream({async pull(a){let o=r===w?n:Math.min(n,r-i),c=await re(s,e+i,o);c.length&&(a.enqueue(c),i+=c.length),(r!==w&&i>=r||!c.length&&o)&&a.close()}})}};Qe=class extends pt{constructor(e){super(),Object.assign(this,{sourceBlob:e,size:e.size}),$f||NE()}createReadable(e){let r=this,{sourceBlob:n,size:s}=r,{offset:i=0,size:a=s-i}=e||{};if(typeof n.stream==K){if(!i&&a>=s)return ze(n.stream());if(Aa)return ze(n.slice(i,i+a).stream())}return super.createReadable(e)}async readUint8Array(e,r){let n=this,s=e+r,o=await(!e&&s>=n.size?n.sourceBlob:n.sourceBlob.slice(e,s)).arrayBuffer();return o.byteLength>r&&(o=o.slice(e,s)),new Uint8Array(o)}},qs=class extends pt{constructor(e){super(),this.readers=e}async init(){let e=this;e.lastDiskNumber=0;let r=e.readers=await Promise.all(e.readers.map(OE));e.diskOffsets=r.map(n=>{let s=e.size;return e.size+=n.size,s}),super.init()}getDiskOffset(e){let{diskOffsets:r,size:n}=this,s=r[e];return s===w?n:s}async readUint8Array(e,r){let n=this,{readers:s}=this,i,a=0,o=e;for(;s[a]&&o>=s[a].size;)o-=s[a].size,a++;let c=s[a];if(c){let f=c.size;if(o+r<=f)i=await re(c,o,r);else{let R=f-o,E=await re(c,o,R),l=await n.readUint8Array(e+R,r-R);i=Be(E,l)}}else i=j;return n.lastDiskNumber=Math.max(a,n.lastDiskNumber),i}},Js=class extends Ks{constructor(e,r=4294967295){super();let n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:r,availableSize:r});let s,i,a,o=new WritableStream({async write(E){if(E===qf){a&&await f();return}let{availableSize:l}=n;if(a)E.length>=l?(await c(E.subarray(0,l)),await f(),E.length>l&&await this.write(E.subarray(l))):await c(E);else{let{value:h,done:g}=await e.next();if(g&&!h)throw new Error(Jf);s=h,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await ge(s),i=h.writable,a=i.getWriter(),await this.write(E)}},async close(){a&&(await a.ready,await R())},async abort(E){a&&await a.abort(E)}});Object.defineProperty(n,bE,{get(){return o}});async function c(E){let l=E.length;l&&(await a.ready,await a.write(E),s.size+=l,n.availableSize-=l)}async function f(){await R(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function R(){await a.close()}}async closeDisk(){let e=this.writable.getWriter();try{await e.ready,await e.write(qf)}finally{e.releaseLock()}}},Et=class{constructor(e){return Array.isArray(e)&&(e=new qs(e)),(e instanceof ReadableStream||typeof e.getReader==K)&&(e={readable:ze(e)}),e}},Or=class{constructor(e){e.writable===w&&typeof e.next==K&&(e=new Js(e)),(e instanceof WritableStream||typeof e.getWriter==K)&&(e={writable:ra(e)});try{e.size=e.size===w?0:e.size}catch{throw new Error(Qf)}return e}}});function Te(t,e,r){if(!t.some(n=>n.reason==e)){let n={reason:e};r!==w&&(n.filename=r),t.push(n)}}var Sa=se(()=>{ue()});function eu(t){if(t){let e=new Map;if(t.forEach((r,n)=>{JE.has(n)||e.set(n,r.data)}),e.size)return e}}function Nn(t,e,r){return t?e?12:16+r*4:0}var Da,Pa,An,xa,yn,Ca,La,Fa,sr,Pr,Sn,Ua,In,Ma,va,ka,Ba,za,Ha,Qs,Ya,Wa,Ga,Va,ir,Xa,DE,ja,$s,PE,bn,xE,CE,LE,FE,Za,Ka,qa,Ja,Qa,$a,UE,ME,vE,kE,BE,zE,HE,YE,WE,GE,VE,XE,jE,ZE,KE,qE,mt,JE,ei=se(()=>{ue();Da="filename",Pa="rawFilename",An="comment",xa="rawComment",yn="uncompressedSize",Ca="compressedSize",La="offset",Fa="diskNumberStart",sr="lastModDate",Pr="rawLastModDate",Sn="lastAccessDate",Ua="rawLastAccessDate",In="creationDate",Ma="rawCreationDate",va="internalFileAttributes",ka="externalFileAttributes",Ba="msdosAttributesRaw",za="msdosAttributes",Ha="msDosCompatible",Qs="zip64",Ya="encrypted",Wa="version",Ga="versionMadeBy",Va="zipCrypto",ir="directory",Xa="executable",DE="symlink",ja="compressionMethod",$s="signature",PE="crc32",bn="extraField",xE="extraFieldInfoZip",CE="extraFieldUnix",LE="extraFieldUnixType1",FE="extraFieldPkwareUnix",Za="uid",Ka="gid",qa="unixMode",Ja="setuid",Qa="setgid",$a="sticky",UE="bitFlag",ME="rawBitFlag",vE="filenameLength",kE="extraFieldLength",BE="unixExternalUpper",zE="filenameUTF8",HE="commentUTF8",YE="rawExtraField",WE="extraFieldZip64",GE="extraFieldUnicodePath",VE="extraFieldUnicodeComment",XE="extraFieldAES",jE="extraFieldNTFS",ZE="extraFieldExtendedTimestamp",KE="extraFieldUSDZ",qE=[Da,Pa,yn,Ca,sr,Pr,An,xa,Sn,Ua,In,Ma,La,Fa,va,ka,Ba,za,Ha,Qs,Ya,Wa,Ga,Va,ir,Xa,DE,ja,$s,PE,bn,CE,xE,LE,FE,Za,Ka,qa,BE,Ja,Qa,$a,UE,ME,vE,kE,zE,HE,YE,WE,GE,VE,XE,jE,ZE,KE],mt=class{constructor(e){qE.forEach(r=>this[r]=e[r])}},JE=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13])});var Ou={};ap(Ou,{ERR_AMBIGUOUS_ARCHIVE:()=>yo,ERR_BAD_FORMAT:()=>xr,ERR_CENTRAL_DIRECTORY_NOT_FOUND:()=>Ro,ERR_CODEC_OUT_OF_MEMORY:()=>$t,ERR_ENCRYPTED:()=>Ri,ERR_ENCRYPTED_CENTRAL_DIRECTORY:()=>So,ERR_ENTRY_DATA_OUT_OF_BOUNDS:()=>Ao,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:()=>go,ERR_EOCDR_NOT_FOUND:()=>ho,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:()=>_o,ERR_INVALID_AUTHENTICATION_CODE:()=>Ct,ERR_INVALID_COMPRESSED_DATA:()=>Qt,ERR_INVALID_CRC32:()=>Ft,ERR_INVALID_FILENAME_VALIDATION:()=>No,ERR_INVALID_MAX_APPENDED_DATA_SIZE:()=>Oo,ERR_INVALID_PASSWORD:()=>Xe,ERR_INVALID_STRICTNESS:()=>bo,ERR_INVALID_UNCOMPRESSED_SIZE:()=>Je,ERR_LOCAL_FILE_HEADER_NOT_FOUND:()=>wo,ERR_OVERLAPPING_ENTRY:()=>To,ERR_SPLIT_ZIP_FILE:()=>si,ERR_UNSAFE_FILENAME:()=>Io,ERR_UNSUPPORTED_COMPRESSION:()=>ut,ERR_UNSUPPORTED_ENCRYPTION:()=>ni,ERR_UNSUPPORTED_UINT64:()=>Do,ERR_WORKER_STARTUP_TIMEOUT:()=>er,WARNING_APPENDED_DATA:()=>ai,WARNING_COMPRESSED_PATCHED_DATA:()=>Co,WARNING_DUPLICATE_FILENAME:()=>Mo,WARNING_MALFORMED_EXTRA_FIELD:()=>wi,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:()=>Bo,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:()=>zo,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:()=>Ho,WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME:()=>ko,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:()=>Cr,WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY:()=>vo,WARNING_PREPENDED_CENTRAL_DIRECTORY:()=>Fo,WARNING_PREPENDED_DATA:()=>oi,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:()=>Uo,WARNING_UNKNOWN_VERSION:()=>xo,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:()=>Lo,WARNING_UNSORTED_CENTRAL_DIRECTORY:()=>Po,WARNING_WRAPPED_ENTRIES_COUNT:()=>ii,ZipReader:()=>kt,ZipReaderStream:()=>li,isZipFile:()=>wu});function cm(t,e){let{readable:r,writable:n}=new TransformStream,s,i={cancel:async o=>{e.delete(i),await(s?s.cancel(o):r.cancel(o))}};return i.readable=new ReadableStream({async pull(o){s||(s=r.getReader(),e.add(i),a());let{done:c,value:f}=await s.read();c?o.close():o.enqueue(f)},cancel:o=>i.cancel(o)},{highWaterMark:0}),i;async function a(){try{await t.getData(n,{preventClose:!1})}catch(o){try{await n.abort(o)}catch{}}finally{e.delete(i)}}}async function wu(t,e={}){if(t=new Et(t),await ge(t),(t.size===w||!t.readUint8Array)&&(t=new Qe(await ft(t.readable)),await ge(t)),t.size<22)return!1;let r=Wo(e,{}),n=r!=at,s=Su(e[Xi],r),{endOfDirectoryInfo:i,endOfDirectoryReachingEndCount:a}=await Iu(t,n,s);if(!i||r==Ot&&a>1)return!1;let o=V(L(i),20),c=i.offset+22+o;return t.size-c<=s}function eo(t){let e=Math.min(t.byteLength,1024)-3;for(let r=0;r<e;r++)if(v(t,r)==134630224)return!0;return!1}function lu(t,e,r){let n=0;for(;r+46<=e.length&&v(t,r)==33639248;)r+=46+V(t,r+28)+V(t,r+30)+V(t,r+32),n++;return n%65536?0:n}function to(t){if(t.length>=6){let e=L(t);if(v(e,0)==84233040){let r=V(e,4);if(6+r<=t.length)return new Uint8Array(t.subarray(6,6+r))}}}function lm(t,e,r){let n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}function fm(t){let e={rawExtensibleData:t};if(t.length>=28){let r=L(t),n=V(r,26);Object.assign(e,{compressionMethod:V(r,0),compressedSize:Ce(r,2),uncompressedSize:Ce(r,10),encryptionAlgorithm:V(r,18),bitLength:V(r,20),flags:V(r,22),hashAlgorithm:V(r,24),hashData:t.subarray(28,28+n)})}return e}function _u(t,e,r){let n=t.rawBitFlag=V(e,r+2),s=(n&1)==1,i=v(e,r+6);Object.assign(t,{encrypted:s,version:V(e,r),bitFlag:{level:(n&6)>>1,dataDescriptor:(n&8)==8,languageEncodingFlag:(n&2048)==2048},rawLastModDate:i,lastModDate:Nm(i),filenameLength:V(e,r+22),extraFieldLength:V(e,r+24)})}function Tu(t,e,r,n,s){let{rawExtraField:i}=e,a=e.extraField=new Map,o=L(i),c=0,f=!1;try{for(;c<i.length;){let y=V(o,c),S=V(o,c+2);a.set(y,{type:y,data:i.slice(c+4,c+4+S)}),c+=4+S}}catch{f=!0}c>i.length&&(f=!0);let R=V(r,n+4);Object.assign(e,{signature:v(r,n+10),crc32:v(r,n+10),compressedSize:v(r,n+14),uncompressedSize:v(r,n+18)});let E=a.get(1);E&&(um(E,e),e.extraFieldZip64=E);let l=a.get(28789);l&&(fu(l,Da,Pa,e,t),e.extraFieldUnicodePath=l);let h=a.get(25461);h&&(fu(h,An,xa,e,t),e.extraFieldUnicodeComment=h);let g=a.get(39169);g&&g.data.length>=7?(dm(g,e,R),e.extraFieldAES=g):e.compressionMethod=R;let p=a.get(13);p&&(uu(p,e),e.extraFieldPkwareUnix=p);let d=a.get(22613);d&&(uu(d,e),e.extraFieldUnixType1=d);let u=a.get(10);u&&(pm(u,e),e.extraFieldNTFS=u);let m=a.get(30805),_;if(m&&(_=du(m,e,!1),e.extraFieldUnix=m),!_){let y=a.get(30837);y&&(du(y,e,!0),e.extraFieldInfoZip=y)}let A=a.get(21589);A&&(Em(A,e,s),e.extraFieldExtendedTimestamp=A);let T=a.get(6534);return T&&(e.extraFieldUSDZ=T),f}function um(t,e){e.zip64=!0;let r=L(t.data),n=sm.filter(([i,a])=>e[i]==a),s=n.reduce((i,[,a])=>i+ou[a].bytes,0);if(t.data.length<s)throw new Error(_o);for(let i=0,a=0;i<n.length;i++){let[o,c]=n[i],f=ou[c];e[o]=t[o]=f.getValue(r,a),a+=f.bytes}}function fu(t,e,r,n,s){if(t.data.length<5){t.valid=!1;return}let i=L(t.data),a=new Ve;a.append(s[r]);let o=L(new Uint8Array(4));o.setUint32(0,a.get(),!0);let c=v(i,1),f=vt(i,0);Object.assign(t,{version:f,[e]:En(t.data.subarray(5)),valid:f==1&&!s.bitFlag.languageEncodingFlag&&c==v(o,0)}),t.valid&&(n[e]=t[e],n[e+nm]=!0)}function dm(t,e,r){let n=L(t.data),s=vt(n,4);Object.assign(t,{vendorVersion:vt(n,0),vendorId:vt(n,2),strength:s,originalCompressionMethod:r,compressionMethod:V(n,5)}),e.compressionMethod=t.compressionMethod,t.vendorVersion!=Ru&&(e.crc32=w)}function pm(t,e){let r=L(t.data),n=4,s;try{for(;n<t.data.length&&!s;){let i=V(r,n),a=V(r,n+2);i==1&&(s=t.data.slice(n+4,n+4+a)),n+=4+a}}catch{}if(s&&s.length==24){let i=L(s),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),c=i.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:c});let f=ro(a),R=ro(o),E=ro(c),l={lastModDate:f,lastAccessDate:R,creationDate:E};Object.assign(t,l),Object.assign(e,l,{rawLastAccessDate:o,rawCreationDate:c})}}function uu(t,e){if(t.data.length<8)return;let r=L(t.data),n=new Date((v(r,0)|0)*1e3),s=new Date((v(r,4)|0)*1e3),i={lastAccessDate:n,lastModDate:s};t.data.length>=12&&(i.uid=V(r,8),i.gid=V(r,10)),Object.assign(t,i),Object.assign(e,i)}function du(t,e,r){try{let n=L(t.data),s,i;if(r){let a=0,o=vt(n,a++),c=vt(n,a++);s=pu(t.data.subarray(a,a+c)),a+=c;let f=vt(n,a++);i=pu(t.data.subarray(a,a+f)),Object.assign(t,{version:o,uid:s,gid:i})}else t.data.length>=4&&(s=V(n,0),i=V(n,2),Object.assign(t,{uid:s,gid:i}));return s!==w&&(e.uid=s),i!==w&&(e.gid=i),s!==w||i!==w}catch{}}function pu(t){let e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function Em(t,e,r){if(!t.data.length)return;let n=L(t.data),s=vt(n,0),i=[],a=[];r?((s&1)==1&&(i.push(sr),a.push(Pr)),(s&2)==2&&(i.push(Sn),a.push(Ua)),(s&4)==4&&(i.push(In),a.push(Ma))):t.data.length>=5&&(i.push(sr),a.push(Pr));let o=1;i.forEach((c,f)=>{if(t.data.length>=o+4){let R=v(n,o);e[c]=t[c]=new Date((R|0)*1e3);let E=a[f];t[E]=R}o+=4})}async function mm({reader:t,fileEntry:e,index:r,offset:n,crc32:s,compressedSize:i,uncompressedSize:a,dataOffset:o,dataDescriptor:c,extraFieldZip64:f,readRanges:R}){let E=0;if(c&&(f?E=20:E=12),E){let d=await re(t,o+i,E+4),u=L(d),m=d.length==E+4&&v(u,0)==134695760;if(m){let _=Eu(u,4,f);(e.encrypted&&!e.zipCrypto||_.crc32==s)&&_.compressedSize==i&&_.uncompressedSize==a?E+=4:m=!1}if(d.length>=E){let _=Eu(u,m?4:0,f);_.signature=m,e.localDirectory.dataDescriptor=_}}let l={start:n,end:o+i+E,fileEntry:e},{indexes:h,sortedRanges:g,pendingRanges:p}=R;if(!h.has(r)){let d=hm(g,l)||p.find(u=>so(l,u));if(d){let u=new Error(To);throw u.overlappingEntry=d.fileEntry,u}h.add(r),p.push(l),p.length*p.length>g.length&&(p.sort((u,m)=>u.start-m.start),R.sortedRanges=gm(g,p),p.length=0)}}function hm(t,e){let r=0,n=t.length;for(;r<n;){let a=r+n>>>1;t[a].start<e.start?r=a+1:n=a}let s=t[r-1],i=t[r];if(s&&so(e,s))return s;if(i&&so(e,i))return i}function so(t,e){return t.start<e.end&&e.start<t.end}function gm(t,e){let r=[],n=0,s=0;for(;n<t.length||s<e.length;)s==e.length||n<t.length&&t[n].start<e[s].start?r.push(t[n++]):r.push(e[s++]);return r}function Eu(t,e,r){let n=v(t,e),s,i;return r?(s=Ce(t,e+4),i=Ce(t,e+12)):(s=v(t,e+4),i=v(t,e+8)),{crc32:n,compressedSize:s,uncompressedSize:i}}function Lr(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function Rm(t){return await Au(t)==134695760}async function wm(t){let e=await Au(t);return e==134695760||e==808471376}async function Au(t){let e=await re(t,0,4);return v(L(e))}function yu(t){return t===Ot||t===hs||t===at}function _m(t,e,r){return Math.min(t,r?e*om:e)}function Wo(t,e){return mu(t,mu(e,hs))}function mu(t,e){let r=t[wl];if(r!==w){if(!yu(r))throw new Error(bo);return r}let n=t[tl];return n===w?e:n?Ot:e==at?at:hs}function Tm(t,e){return t===w?e!=at:!!t}function Am(t,e){return t===w?e==Ot:!!t}function ym(t,e){if(t===w)return e;if(!yu(t))throw new Error(No);return t}function Sm(t,e){if(e==at)return!1;let r=t.split("/");return r.length>1&&r[r.length-1]===""&&r.pop(),rm.test(t)||t.startsWith("/")||t.startsWith("\\")||tm.test(t)?!0:e==Ot&&(r.includes(".")||r.includes("")||t.includes("\0"))}function Su(t,e){if(t!==w){let r=Dt(t);if(typeof r!=Xc||Number.isNaN(r)||r<0)throw new Error(Oo);return r}return e==Ot?0:e==at?1/0:65535}async function Iu(t,e,r){let{size:n}=t,s=Math.min(n,65557),i={remaining:am},a,o,c=0;for await(let[f,R,E,l,h]of bu(t,s)){let g=V(f,l+20);if(h+22+g==n){let p=await Nu(t,f,R,l,h,n,i);if(p==ci){if(a||(a=io(E,l,h)),c++,!e||c>1)break}else p==Yo&&!o&&(o=io(E,l,h))}}return a||(a=o),a||(a=await Im(t,r,i)),{endOfDirectoryInfo:a,endOfDirectoryReachingEndCount:c}}async function Im(t,e,r){let{size:n}=t,s=Math.min(n,e==1/0?n:65557+e),i,a;for await(let[o,c,f,R,E]of bu(t,s)){let l=io(f,R,E);i||(i=l);let h=await Nu(t,o,c,R,E,n,r);if(h==ci)return l;h==Yo&&!a&&(a=l)}return a||i}async function*bu(t,e){let r=t.size-e,n=await re(t,r,e),s=L(n);for(let i=n.length-22;i>=0;i--)v(s,i)==101010256&&(yield[s,r,n,i,r+i])}function io(t,e,r){return{offset:r,buffer:new Uint8Array(t.subarray(e,e+22)).buffer}}async function Nu(t,e,r,n,s,i,a){let o=V(e,n+10),c=v(e,n+12),f=v(e,n+16);if(o==65535||c==4294967295||f==4294967295)return await hu(t,e,r,s-20,i,a)==117853008?ci:cu;if(!o&&!c)return Yo;let R=V(e,n+6);for(let E of[s-c,Lr(t,R)+f])if(await hu(t,e,r,E,i,a)==33639248)return ci;return cu}async function hu(t,e,r,n,s,i){if(n<0||n+4>s)return w;if(n>=r)return v(e,n-r);if(i.remaining>0){i.remaining--;let a=await re(t,n,4);return v(L(a),0)}return w}function bm(t,e,r,n,s){let{rawFilename:i}=t,a=!s,o=t.decryptedDirectory&&(e.rawBitFlag&8192)==8192;n&&!o&&(r.length!=i.length||r.some((c,f)=>c!=i[f]))&&et(a,s,ko),(e.rawBitFlag&au)!=(t.rawBitFlag&au)&&et(a,s,Bo),e.compressionMethod!=t.compressionMethod&&et(a,s,zo),!e.bitFlag.dataDescriptor&&!o&&(e.crc32||e.compressedSize||e.uncompressedSize)&&(e.crc32!=t.crc32||e.compressedSize!=t.compressedSize||e.uncompressedSize!=t.uncompressedSize)&&et(a,s,Ho)}function et(t,e,r){t?ti(r):Te(e,r)}function ti(t){let e=new Error(yo);throw e.reason=t,e}function ae(t,e,r){return e[r]===w?t.options[r]:e[r]}function gu(t,e,r){return hr(ae(t,e,r))}function Nm(t){let e=(t&4294901760)>>16,r=t&65535,n=new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(r&63488)>>11,(r&2016)>>5,(r&31)*2,0);return n<Nt?Nt:n}function ro(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function vt(t,e){return t.getUint8(e)}function V(t,e){return t.getUint16(e,!0)}function v(t,e){return t.getUint32(e,!0)}function Ce(t,e){let r=t.getBigUint64(e,!0);if(r>im)throw new Error(Do);return Number(r)}var xr,ho,go,Ro,wo,_o,Ri,ni,si,To,Ao,yo,So,Io,bo,No,Oo,Do,Po,xo,Co,wi,Lo,ii,ai,oi,Fo,Uo,Mo,Cr,vo,ko,Bo,zo,Ho,em,tm,rm,su,nm,iu,au,Ru,sm,ou,im,am,om,cu,Yo,ci,kt,li,no,_i=se(()=>{ue();Ge();Jt();Zs();hn();Ta();xt();Sa();Kt();Zt();sn();ei();wr();xr="File format is not recognized",ho="End of central directory not found",go="End of Zip64 central directory locator not found",Ro="Central directory header not found",wo="Local file header not found",_o="Zip64 extra field not found",Ri="File contains encrypted entry",ni="Encryption method not supported",si="Split zip file",To="Overlapping entry found",Ao="Entry data out of bounds",yo="Ambiguous archive",So="Encrypted central directory is not supported",Io="Unsafe filename",bo="Invalid strictness (must be 'strict', 'balanced' or 'tolerant')",No="Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')",Oo="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",Do="64-bit value exceeds Number.MAX_SAFE_INTEGER",Po="unsorted central directory",xo="unknown version needed to extract",Co="compressed patched data",wi="malformed extra field",Lo="unknown zip64 extensible data",ii="wrapped entries count",ai="appended data",oi="prepended data",Fo="prepended central directory",Uo="trailing central directory data",Mo="duplicate filename",Cr="mismatched zip64 end of central directory record",vo="multiple end of central directory records",ko="mismatched local file header (filename)",Bo="mismatched local file header (general purpose bit flag)",zo="mismatched local file header (compression method)",Ho="mismatched local file header (crc32 or sizes)",em=63,tm=/^[a-zA-Z]:/,rm=/(^|[\\/])\.\.([\\/]|$)/,su="utf-8",nm="UTF8",iu="cp437",au=2057,Ru=1,sm=[[yn,4294967295],[Ca,4294967295],[La,4294967295],[Fa,65535]],ou={65535:{getValue:v,bytes:4},4294967295:{getValue:Ce,bytes:8}},im=BigInt(Number.MAX_SAFE_INTEGER),am=64,om=1032,cu=0,Yo=1,ci=2,kt=class{constructor(e,r={}){Object.assign(this,{reader:new Et(e),options:r,readRanges:{indexes:new Set,sortedRanges:[],pendingRanges:[]}})}async*getEntriesGenerator(e={}){let r=this,{reader:n}=r;if(await ge(n),(n.size===w||!n.readUint8Array)&&(n=new Qe(await ft(n.readable)),await ge(n)),n.size<22)throw new Error(xr);let s=r.warnings=[],i=Wo(e,r.options),a=i==Ot,o=i!=at,c=Su(ae(r,e,Xi),i),f=ym(ae(r,e,_l),i),R=ae(r,e,Tl),{endOfDirectoryInfo:E,endOfDirectoryReachingEndCount:l}=await Iu(n,o,c);if(!E)throw await Rm(n)?new Error(si):new Error(ho);o&&l>1&&ti(vo);let h=L(E),g=v(h,12),p=v(h,16),d=E.offset,u=V(h,20),m=d+22+u,_=n.size-m;_>c&&ti(ai),_>0&&Te(s,ai);let A=V(h,4),T=n.lastDiskNumber||0,y=V(h,6),S=V(h,10),I=0,N,F,H,q,$=56,Z,W=p==4294967295||g==4294967295||S==65535||y==65535;if(p!=4294967295&&y!=65535&&(p+=Lr(n,y)),W){let J=E.offset>=20?await re(n,E.offset-20,20):j,b=L(J);if(J.length==20&&v(b,0)==117853008){p=Lr(n,v(b,4))+Ce(b,8);let Y=await re(n,p,56),Q=L(Y),Ee=E.offset-20-56;if((Y.length<56||v(Q,0)!=101075792)&&p!=Ee&&Ee>=0){let Pe=p;p=Ee,p>Pe&&(I=p-Pe),Y=await re(n,p,56),Q=L(Y)}if(Y.length<56||v(Q,0)!=101075792)throw new Error(go);if(H=!0,q=Ce(Q,4)>44,q){let Pe=Math.min(Ce(Q,4)-44,n.size-p-56);if(Pe>0){$+=Pe;let Ze=await re(n,p+56,Pe);Z=fm(Ze)}}A==65535?A=v(Q,16):A!=v(Q,16)&&et(a,s,Cr),y==65535?y=v(Q,20):y!=v(Q,20)&&et(a,s,Cr),S==65535?S=Ce(Q,32):S!=Ce(Q,32)&&et(a,s,Cr),g==4294967295?g=Ce(Q,40):g!=Ce(Q,40)&&et(a,s,Cr),p=Lr(n,y)+Ce(Q,48)+I}}let U=g,ne=E.offset-(H?$+20:0);if(p>=n.size&&(I=n.size-p-g-22,p=n.size-g-22),T!=A)throw new Error(si);if(p<0)throw new Error(xr);let B=0,X=await re(n,p,g),M=L(X);if(g){if(X.length<4)throw new Error(xr);let J=ne-g;if(p!=J&&y==A){let b=v(M,B)==33639248||!!(Z&&Z.compressedSize)||eo(M),Y=!b;if(!Y&&J>=0&&J+4<=n.size){let Q=await re(n,J,4);Y=v(L(Q),0)==33639248}if(Y){let Q=p;p=J,p>Q&&(I+=p-Q,N=b),X=await re(n,p,g),M=L(X)}}}let G=ne-p;if(g!=G&&G>=0&&y==A&&(g=G,X=await re(n,p,g),M=L(X)),p<0||p>=n.size)throw new Error(xr);r.directoryOffset=p,r.directoryLength=U;let pe=gu(r,e,Al),me,nt;if(pe&&S&&X.length>=4&&v(M,0)!=33639248&&(q||eo(M))){let J=lm(Z,U,X.length);nt=X.subarray(J),X=await pe(X.subarray(0,J),Z),M=L(X),U=X.length,me=!0}Z&&!me&&(X.length<4||v(M,0)==33639248)&&Te(s,Lo),F=p;let Ue=ae(r,e,jc),Me=ae(r,e,Zc),je=new Set,be,Ne=-1,Oe=!a&&!H;!S&&Oe&&(S=lu(M,X,B),S&&Te(s,ii));for(let J=0;J<S;J++){let b=new no(n,r.options);if(B+46>X.length||v(M,B)!=33639248)throw J==0&&!me&&(q||eo(M))?new Error(So):new Error(Ro);_u(b,M,B+6);let Y=!!b.bitFlag.languageEncodingFlag,Q=B+46,Pe=Q+b.filenameLength+b.extraFieldLength,Ze=V(M,B+4),Bt=Ze>>8==0,Gr=Ze>>8==3,zt=V(M,B+32),He=Pe+zt,Tt=new Uint8Array(X.subarray(Q,He)),st=Tt.subarray(0,b.filenameLength),de=Tt.subarray(b.filenameLength+b.extraFieldLength),Ae=Y||!Ue&&_a(st),Yn=Y||!Me&&_a(de),At=v(M,B+38),yt=At&255,Wn={readOnly:!!(yt&1),hidden:!!(yt&2),system:!!(yt&4),directory:!!(yt&16),archive:!!(yt&32)},vi=v(M,B+42),Vr=gu(r,e,Kc)||En,Ht=Ae?su:Ue||iu,St=Yn?su:Me||iu,he=Vr(st,Ht,Es);if(he===w&&(he=En(st,Ht)),R){let ke=R(he);ke!==w&&(he=ke)}if(Sm(he,f)){let ke=new Error(Io);throw ke.filename=he,ke}let Xr=Vr(de,St,ms);Xr===w&&(Xr=En(de,St)),Object.assign(b,{index:J,decryptedDirectory:me,versionMadeBy:Ze,msDosCompatible:Bt,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:zt,offset:vi,diskNumberStart:V(M,B+34),internalFileAttributes:V(M,B+36),externalFileAttributes:At,msdosAttributesRaw:yt,msdosAttributes:Wn,rawFilename:st,filenameUTF8:Ae,commentUTF8:Yn,rawExtraField:Tt.subarray(b.filenameLength,b.filenameLength+b.extraFieldLength),rawComment:de,filename:he,comment:Xr}),Tu(b,b,M,B+6)&&Te(s,wi,he),b.offset+=I;let Yt=Lr(n,b.diskNumberStart)+b.offset;F=Math.min(Yt,F),Yt<Ne&&Te(s,Po,he),Ne=Yt,(b.version&255)>em&&Te(s,xo,he),(b.rawBitFlag&32)==32&&Te(s,Co,he),je.has(b.filename)&&(be=!0),je.add(b.filename);let It=b.externalFileAttributes>>16&65535;b.unixMode===w&&(It&16877)!=0&&(b.unixMode=It);let Gn=!!(b.unixMode&2048),Ke=!!(b.unixMode&1024),Vn=!!(b.unixMode&512),Rc=((b.unixMode===w?It:b.unixMode)&61440)==40960,tp=!Rc&&(b.unixMode!==w?(b.unixMode&73)!=0:Gr&&(It&73)!=0),rp=b.unixMode!==w&&(b.unixMode&61440)==16384,np=(It&61440)==16384;Object.assign(b,{setuid:Gn,setgid:Ke,sticky:Vn,symlink:Rc,unixExternalUpper:It,executable:tp,directory:rp||np||Bt&&Wn.directory||b.filename.endsWith("/"),zipCrypto:b.encrypted&&!b.extraFieldAES});let jr=new mt(b);if(jr.getData=(ke,Xn)=>b.getData(ke,jr,r.readRanges,Xn),jr.arrayBuffer=async ke=>{let Xn=new TransformStream,_c=ft(Xn.readable).then(sp=>sp.arrayBuffer());return _c.catch(()=>{}),await b.getData(Xn,jr,r.readRanges,Object.assign({},ke,{preventClose:!1})),_c},B=He,J==S-1&&Oe){let ke=lu(M,X,B);ke&&(S+=ke,Te(s,ii))}let{onprogress:wc}=e;if(wc)try{await wc(J+1,S,new mt(b))}catch{}yield jr}let oe=B,De=to(X.subarray(B))||(me?to(nt):w);if(!De&&!me){let J=p+B,b=Math.min(ne-J,65541);b>=6&&(De=to(await re(n,J,b)))}De&&(r.digitalSignature=De,oe=B+6+De.length),(B!=U&&oe!=U||!me&&B!=g&&oe!=g)&&et(a,s,Uo),be&&et(a,s,Mo);let ve=ae(r,e,qc),fe=ae(r,e,Jc),te=(a||ve)&&S&&F==4&&await wm(n)?4:0;return a&&(I||S&&F>te)&&ti(oi),(I||S&&F>4)&&Te(s,oi),N&&Te(s,Fo),ve&&(r.prependedData=F>te?await re(n,te,F-te):j),r.comment=u?await re(n,d+22,u):j,fe&&(r.appendedData=m<n.size?await re(n,m,n.size-m):j),!0}async getEntries(e={}){let r=[];for await(let n of this.getEntriesGenerator(e))r.push(n);return r}async close(){let{reader:e}=this;!e.readUint8Array&&e.readable&&!e.readable.locked&&await e.readable.cancel()}[is](){return this.close()}},li=class{constructor(e={}){let r,{readable:n,writable:s}=new TransformStream({start(c){r=c}}),i=new kt(n,e),a=i.getEntriesGenerator(),o=new Set;this.readable=new ReadableStream({async pull(c){let{done:f,value:R}=await a.next();if(f)return c.close();let E=cm(R,o),l={...R,readable:E.readable};delete l.getData,Object.defineProperties(l,{localDirectory:{get:()=>R.localDirectory,enumerable:!0},warnings:{get:()=>R.warnings,enumerable:!0}}),c.enqueue(l)},async cancel(c){let f=Array.from(o);o.clear(),r.error(c),await Promise.allSettled(f.map(R=>R.cancel(c))),await Promise.allSettled([a.return(),i.close()])}}),this.writable=s}};no=class{constructor(e,r){Object.assign(this,{reader:e,options:r})}async getData(e,r,n,s={}){let i=this,a=ot(),{reader:o,index:c,offset:f,diskNumberStart:R,extraFieldAES:E,extraFieldZip64:l,compressionMethod:h,bitFlag:g,rawBitFlag:p,crc32:d,rawLastModDate:u,uncompressedSize:m,compressedSize:_}=i,{dataDescriptor:A}=g,T=r.localDirectory={},y=r.warnings=[],S=Lr(o,R)+f,I=await re(o,S,30),N=L(I),F=ae(i,s,as),H=ae(i,s,os),q=gr(ae(i,s,Qr)),$=!!q,Z=q===!0;if(gs(F,H),F=F&&F.length?F:w,H=H&&H.length?H:w,E&&E.originalCompressionMethod!=99)throw new Error(ut);if(I.length<30||v(N,0)!=67324752)throw new Error(wo);_u(T,N,4);let{extraFieldLength:W,filenameLength:U}=T,ne=T.dataOffset=S+30+U+W,B=ae(i,s,rl),X=Wo(s,i.options),M=Tm(B,X),G=ae(i,s,nl),pe=Am(G===w?B:G,X),me=j;if(pe&&(U||W)){let de=await re(o,S+30,U+W);me=de.subarray(0,U),T.rawExtraField=de.subarray(U)}else T.rawExtraField=W?await re(o,S+30+U,W):j;pe&&(T.rawFilename=me),Tu(i,T,N,4,!0)&&Te(y,wi),bm(i,T,me,pe,M?w:y);let{lastAccessDate:nt,creationDate:Ue,uid:Me,gid:je}=T;nt&&(r.lastAccessDate=nt),Ue&&(r.creationDate=Ue),Me!==w&&r.uid===w&&(r.uid=Me),je!==w&&r.gid===w&&(r.gid=je);let be=ae(i,s,Qc),Ne=i.encrypted&&T.encrypted&&(!Z||be),Oe=Ne&&!E;if(Z||(r.zipCrypto=Oe),Ne&&(T.rawBitFlag&64)==64)throw new Error(ni);let oe=$?w:Os(h);if(h!=0&&h!=8&&h!=9&&!oe&&!$)throw new Error(ut);if(Ne){if(!Oe&&(E.strength<1||E.strength>3))throw new Error(ni);if(!F&&!H)throw new Error(Ri)}if(ne+_>o.size)throw new Error(Ao);let De=_,ve=tn(ae(i,s,cs));jt(ve);let fe=ae(i,s,el),te=ae(i,s,$c);te&&(fe=!0);let{onstart:J,onprogress:b,onend:Y}=s,Q=h!=0&&!$,Ee=$?_-Nn(Ne,Oe,E&&E.strength):m,Pe=h==9,Ze=ae(i,s,fs);Pe&&(Ze=!1);let Bt=ae(i,s,il),Gr=(Bt===w?ae(i,s,sl):Bt)&&!$&&(!Ne||Oe||E&&E.vendorVersion==Ru),zt={options:{codecType:ks,password:F,rawPassword:H,zipCrypto:Oe,encryptionStrength:E&&E.strength,checkCrc32:Gr,checkAuthenticationCode:ae(i,s,al),passwordVerification:Oe&&(A?u>>>8&255:d>>>24&255),outputSize:Ee,crc32:d,compressed:Q,encrypted:Ne,useWebWorkers:ae(i,s,ls),useCompressionStream:Ze,transferStreams:ae(i,s,us),deflate64:Pe,format:oe?oe.format:w,codecURI:oe?oe.codecURI:w,compressionMethod:h,rawBitFlag:p,checkPasswordOnly:be},config:a,streamOptions:{signal:ve,size:De,onstart:J,onprogress:b,onend:Y}};fe&&await mm({reader:o,fileEntry:r,index:c,offset:S,crc32:d,compressedSize:_,uncompressedSize:m,dataOffset:ne,dataDescriptor:A||T.bitFlag.dataDescriptor,extraFieldZip64:l||T.extraFieldZip64,readRanges:n});let He,Tt,st;try{if(!te){be&&(e=new WritableStream),e=new Or(e),await ge(e,_m(Ee,_,Q)),{writable:He}=e;let de=ze(o.createReadable({offset:ne,size:De})),{outputSize:Ae}=await js({readable:de,writable:He},zt);if(jt(ve),Ae!=Ee)throw Object.assign(new Error(Je),{outputSize:Ae});e.size+=Ae}}catch(de){let{outputSize:Ae}=zt;if(Ae!==w?e.size+=Ae:Re(de)&&de.outputSize!==w&&(e.size+=de.outputSize),!be||!Re(de)||de.message!=lt)throw Tt=de,st=!0,de}finally{if(!(!mn(e)&&ae(i,s,ds))&&He&&!He.locked){let Ae=He.getWriter();if(st)try{await Ae.abort(Tt)}catch{}else await Ae.close()}}return be||te?w:e.getData?e.getData():He}}});var ki="0.1.0";var Er="h5p-pkg-v0-";var it="__archive__";var Tc="h5p-player";var Zr="packages",Kr="https://chunks.h5p-player.invalid/";function Wt(t,e){let r=e.end-e.start+1,n=0,s=0,i=new TransformStream({transform(a,o){if(s>=r)return;let c=n;if(n+=a.length,n<=e.start)return;let f=Math.max(0,e.start-c),R=Math.min(a.length,f+(r-s)),E=a.subarray(f,R);s+=E.length,o.enqueue(E),s>=r&&o.terminate()}});return t.pipeTo(i.writable).catch(()=>{}),i.readable}var op=/^h5p:([^:]+):/;async function jn(){let t=new Set,e=typeof navigator>"u"?void 0:navigator.locks;if(!e?.query)return t;try{let{held:r=[]}=await e.query();for(let n of r){let s=n.name?op.exec(n.name):null;s&&t.add(s[1])}}catch{}return t}var cp="/__meta__",lp="/__forward__",Hi="__forward_index__",fp=32;function Kn(t){return t.split("/").map(encodeURIComponent).join("/")}function Zn(t){return`${Er}${t}`}function Ac(t,e){return`${Kr}${t}/whole/${Kn(e)}`}function Bi(t,e,r){return`${Kr}${t}/chunk/${Kn(e)}/${r}`}function yc(t,e){return`${Kr}${t}/chunk/${Kn(e)}${cp}`}function Sc(t){return`${Kr}${t}/chunk/${Kn(it)}${lp}`}function up(t){return t instanceof DOMException&&(t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")}var Gt=class extends Error{constructor(e="Not enough storage to cache this package"){super(e),this.name="QuotaError"}};function Ic(t){return{first:Math.floor(t.start/8388608),last:Math.floor(t.end/8388608)}}function bc(t,e){let r=t*8388608;return{from:Math.max(0,e.start-r),to:Math.min(8388608,e.end-r+1)}}var Ye=class{constructor(e){this.cachePromise=null;this.pkgId=e}cache(){return this.cachePromise??=caches.open(Zn(this.pkgId)),this.cachePromise}async getWhole(e){return(await this.cache()).match(Ac(this.pkgId,e))}async putWhole(e,r,n,s){let i=new Headers({"content-type":n});s!==void 0&&i.set("content-length",String(s)),await this.write(Ac(this.pkgId,e),()=>new Response(r(),{headers:i}))}async getMeta(e){let n=await(await this.cache()).match(yc(this.pkgId,e));if(n)try{return await n.json()}catch{return}}async setMeta(e,r){await(await this.cache()).put(yc(this.pkgId,e),new Response(JSON.stringify(r),{headers:{"content-type":"application/json"}})),Dc({pkgId:this.pkgId,entry:e,meta:r})}async putChunk(e,r,n){let s=n.slice();await this.write(Bi(this.pkgId,e,r),()=>new Response(s.buffer,{headers:{"content-type":"application/octet-stream"}}))}async getChunk(e,r){let s=await(await this.cache()).match(Bi(this.pkgId,e,r));if(s)return new Uint8Array(await s.arrayBuffer())}readRange(e,r,n){let{first:s,last:i}=Ic(r),a=s,o=null,c=this;return new ReadableStream({async pull(f){for(;;){if(o){let{done:g,value:p}=await o.read();if(!g){f.enqueue(p);return}o=null,a+=1}if(a>i){f.close();return}if(n){let g=Math.min((a+1)*8388608,r.end+1);if(!await n(g)){f.error(new Error(`Extraction of ${e} stalled before byte ${g}`));return}}let R=await c.chunkBody(e,a);if(!R){f.error(new Error(`Missing chunk ${a} of ${e}`));return}let{from:E,to:l}=bc(a,r);o=(E===0&&l>=8388608?R:Wt(R,{start:E,end:l-1})).getReader()}},async cancel(f){await o?.cancel(f)}},{highWaterMark:0})}async chunkBody(e,r){return(await(await this.cache()).match(Bi(this.pkgId,e,r)))?.body??void 0}async readRangeBytes(e,r){let n=new Uint8Array(r.end-r.start+1),{first:s,last:i}=Ic(r),a=0;for(let o=s;o<=i;o+=1){let c=await this.getChunk(e,o);if(!c)throw new Error(`Missing chunk ${o} of ${e}`);let{from:f,to:R}=bc(o,r),E=c.subarray(f,Math.min(R,c.length));n.set(E,a),a+=E.length}return a===n.length?n:n.subarray(0,a)}getArchiveMeta(){return this.getMeta(it)}async getForwardIndex(){let r=await(await this.cache()).match(Sc(this.pkgId));if(r)try{return await r.json()}catch{return}}async setForwardIndex(e){await(await this.cache()).put(Sc(this.pkgId),new Response(JSON.stringify(e),{headers:{"content-type":"application/json"}})),Dc({pkgId:this.pkgId,entry:Hi,meta:{size:null,available:e.parsedTo,complete:e.done}})}readArchiveRange(e){return this.readRangeBytes(it,e)}async write(e,r){let n=await this.cache();for(let s=0;;s+=1){let i=r();try{await n.put(e,i);return}catch(a){if(i.body?.cancel().catch(()=>{}),!up(a))throw a;if(s>=fp)throw new Gt;if(!await dp(this.pkgId))throw new Gt}}}async destroy(){this.cachePromise=null,await caches.delete(Zn(this.pkgId))}},zi=null;function Pc(t){zi=t}var xc=null;function Cc(t){xc=t}async function dp(t){let e=zi?await zi(t):await pp(t);return e?(await caches.delete(Zn(e)),await xc?.(e),!0):!1}async function pp(t){let[e,r]=await Promise.all([caches.keys(),jn()]),n=Zn(t),s=e.find(i=>i.startsWith(Er)&&i!==n&&!r.has(i.slice(Er.length)));return s?s.slice(Er.length):null}var Ep="h5p-player-watermark",Nc,Oc;function Lc(){if(typeof BroadcastChannel!="function")return null;let t=new BroadcastChannel(Ep);return t.unref?.(),t}function Dc(t){Nc??=Lc();try{Nc?.postMessage(t)}catch{}}function qn(t,e,r){Oc??=Lc();let n=Oc;if(!n)return()=>{};let s=i=>{let a=i.data;a?.pkgId===t&&a.entry===e&&r(a.meta)};return n.addEventListener("message",s),()=>n.removeEventListener("message",s)}async function Fc(){let e=(await caches.keys()).filter(r=>/^h5p-pkg-v(\d+)-/.test(r)&&!r.startsWith(Er));return await Promise.all(e.map(r=>caches.delete(r))),e}var bt=null;function Uc(t,e){bt===e&&(bt=null),t.close()}function hp(){if(bt)return bt;let t=new Promise((e,r)=>{let n=indexedDB.open(Tc,1);n.onupgradeneeded=()=>{let s=n.result;s.objectStoreNames.contains(Zr)||s.createObjectStore(Zr,{keyPath:"pkgId"}).createIndex("lastPlayed","lastPlayed")},n.onsuccess=()=>{let s=n.result;s.onversionchange=()=>Uc(s,t),s.onclose=()=>Uc(s,t),e(s)},n.onerror=()=>r(n.error)});return bt=t,t.catch(()=>{bt===t&&(bt=null)}),t}function gp(t){return t instanceof DOMException&&(t.name==="InvalidStateError"||t.name==="NotFoundError"||t.name==="TransactionInactiveError")}function Jn(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error)})}async function Mc(t,e){let n=(await hp()).transaction(Zr,t),s=await e(n.objectStore(Zr));return await new Promise((i,a)=>{n.oncomplete=()=>i(),n.onerror=()=>a(n.error),n.onabort=()=>a(n.error)}),s}async function Qn(t,e){try{return await Mc(t,e)}catch(r){if(!gp(r))throw r;return bt=null,Mc(t,e)}}function qr(t){return Qn("readonly",e=>Jn(e.get(t)))}function $n(t){return Qn("readwrite",async e=>{await Jn(e.put(t))})}function vc(t){return Qn("readwrite",async e=>{await Jn(e.delete(t))})}function Rp(){return Qn("readonly",t=>Jn(t.getAll()))}async function kc(t){let e=await qr(t);e&&(e.lastPlayed=Date.now(),await $n(e))}async function es(t,e){let r=await qr(t);if(!r)return;let n={...r,...e};return await $n(n),n}async function Bc(){return(await Rp()).sort((e,r)=>e.lastPlayed-r.lastPlayed)}async function wp(t,e={}){let[r,n]=await Promise.all([(e.packagesByAge??Bc)(),(e.busyPackages??jn)()]);return r.find(s=>s.pkgId!==t&&!n.has(s.pkgId))?.pkgId??null}function Hc(t){Pc(e=>wp(e)),Cc(async e=>{t?.(e),await vc(e)})}var _p=/[\u0000-\u001f\u007f]/;function ts(t){if(!t||_p.test(t))return null;let e=t.replace(/\\/g,"/");if(e.startsWith("/")||/^[a-zA-Z]:/.test(e))return null;let r=[];for(let n of e.split("/"))if(!(n===""||n===".")){if(n==="..")return null;r.push(n)}return r.length===0?null:r.join("/")}function Yc(t){let e;try{e=decodeURIComponent(t)}catch{return null}return ts(e)}function Wc(t){let e=new Map,r=[];for(let n of t){if(n.directory)continue;let s=ts(n.filename);if(s===null||e.has(s)){r.push(n.filename);continue}e.set(s,n)}return{index:e,rejected:r}}var Tp={js:"text/javascript; charset=utf-8",mjs:"text/javascript; charset=utf-8",json:"application/json; charset=utf-8",css:"text/css; charset=utf-8",html:"text/html; charset=utf-8",htm:"text/html; charset=utf-8",txt:"text/plain; charset=utf-8",xml:"application/xml; charset=utf-8",csv:"text/csv; charset=utf-8",vtt:"text/vtt; charset=utf-8",srt:"application/x-subrip; charset=utf-8",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",avif:"image/avif",bmp:"image/bmp",ico:"image/x-icon",mp3:"audio/mpeg",m4a:"audio/mp4",aac:"audio/aac",oga:"audio/ogg",ogg:"audio/ogg",wav:"audio/wav",weba:"audio/webm",flac:"audio/flac",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",pdf:"application/pdf"},Ap=new Set(["js","mjs","json","css","html","htm","txt","xml","csv","vtt","srt","svg"]);function Gc(t){let e=t.slice(t.lastIndexOf("/")+1),r=e.lastIndexOf(".");return r<=0?"":e.slice(r+1).toLowerCase()}function Yi(t){return Tp[Gc(t)]??"application/octet-stream"}function Vc(t){return Ap.has(Gc(t))}var ie=class extends Error{constructor(e,r,n){super(r,n),this.name="PlayerError",this.code=e,this.missingLibraries=n?.missingLibraries}};function rs(t,e){if(!t)return"none";let r=/^bytes=(\d*)-(\d*)$/.exec(t.trim());if(!r)return"none";let[,n,s]=r;if(n===""&&s==="")return"none";if(n===""){let o=Number(s);return o===0?"unsatisfiable":{start:Math.max(0,e-o),end:e-1}}let i=Number(n);if(i>=e)return"unsatisfiable";let a=s===""?e-1:Math.min(Number(s),e-1);return a<i?"unsatisfiable":{start:i,end:a}}function ns(t,e){return`bytes ${t.start}-${t.end}/${e}`}Ge();var Rs=new Uint8Array(288);Rs.fill(8,0,144),Rs.fill(9,144,256),Rs.fill(7,256,280),Rs.fill(8,280,288),new Uint8Array(30).fill(5);var ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hl=t=>t({workerURI:e=>{let r="text/javascript",n=`!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new c,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,M,A,E,R,x,P,D]=C;class F{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if($)return d.getRandomValues(t);throw new r("Crypto API not supported")}const ot={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},ot),ct=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),st=["deriveBits"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r("Invalid authentication code"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,"readable",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey("raw",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&&gt(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}function Ft(t){return Boolean(t)&&"object"==typeof t}const Ut=new f;function Bt(t){return Ut.get(t)}const Wt="Invalid uncompressed size",Ot="Codec out of memory",Vt="Invalid CRC32",Kt="deflate-raw",Tt="gzip",_t=[31,139,8];class jt extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Bt(l),b=Gt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Qt(g,y)),r)if(v)g=Xt(g,qt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new Ht,g=Xt(g,new b(Tt,{level:f,chunkSize:n})),g=Qt(g,S);else try{g=Jt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw en(t);let n;try{n=new o(Tt)}catch{throw en(t)}g=Xt(g,n),g=Qt(g,new Ht)}c&&(a?g=Qt(g,new Ct(t)):(m=new ht(t),g=Qt(g,m))),Nt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ht extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Lt extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Qt(C,new zt(t)):(k=new pt(t),C=Qt(C,k))),l){const t=new Set,s=h&&Bt(h);let a;if(s)C=Xt(C,qt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=Gt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Tt,{chunkSize:n})}catch{a=v}if(!a)try{C=Jt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw en(t);try{a=new o(Tt)}catch{throw en(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(_t),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await tn(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Yt(a,t),await $t(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Wt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await $t(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw rn(t,Vt);if(d!=e)throw rn(t,Wt);return{done:!0}}throw nn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await $t(e,t),nn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Qt(C,b)),Nt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Vt)}})}}const Zt=new f;function Nt(t,e,o){e=Qt(e,new h({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function qt(t,n,e){if(!t)throw new r("Compression method not supported");return new t(n,e)}function Gt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Jt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?"deflate64-raw":Kt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Xt(t,i,c)}function Qt(t,n){return Dt(t).pipeThrough(n)}function Xt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await tn(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Yt(o,t),await $t(r,t)}}(),n.readable}async function Yt(t,n){try{await t.abort(n)}catch{}}async function $t(t,n){try{await t.cancel(n)}catch{}}function tn(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function nn(t,n){return n.has(t)?t:rn(t,on(t)?Ot:"Invalid compressed data")}function en(t){return on(t)?rn(t,Ot):t}function on(t){return Ft(t)&&"Z_MEM_ERROR"==t.code}function rn(t,n){const e=new r(n);return e.cause=t,e}const cn="data",sn="deflate";class an extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(sn)?s=jt:c.startsWith("inflate")&&(s=Lt),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Wt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class fn extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}let un=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(un=navigator.hardwareConcurrency)}catch{}const wn=new f,ln=new f,dn=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let pn=0;async function hn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ut.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r("Invalid codec module");Ut.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Ft(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Zt.get(t);e||(e=new f,Zt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(a.codecType.startsWith(sn)?i.CompressionStream:i.DecompressionStream,Kt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>wn.set(pn,t));yn({type:"pull",messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);ln.set(pn,n),yn({type:cn,value:t,messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new an(a,i),c=new fn(function(t){return r="string"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):65536;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;yn({type:"close",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Ft(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}mn(t,n)}}function yn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function mn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r("Unknown error")){return Ft(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Ft(i)&&(u.cause={name:i.name,message:i.message}),f&&(u.codecImportFailed=!0),dn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:r}=t;try{if("start"==n&&hn(t),n==cn){const t=wn.get(e);wn.delete(e),t({value:o||new c,done:r})}if("ack"==n){const t=ln.get(e);ln.delete(e),t()}}catch(t){mn(t)}}),p({type:"ready"});const Sn="deflate",gn="deflate-raw",vn="deflate64-raw",bn="gzip",kn=[Sn,gn,bn],zn=[Sn,gn,bn,vn];let Cn,In,Mn,An,En;function Rn(t,n){return-4===n&&(t.code="Z_MEM_ERROR"),t}function xn(t,n,e={}){if(!(t?kn:zn).includes(n))throw new TypeError("Unsupported format: "+n);if(!Cn){const t=new r("WASM module not loaded");throw t.cause=En,t}const s="number"==typeof e.level?e.level:-1,a="number"==typeof e.outBuffer?e.outBuffer:65536,i="number"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=In(a),f.in=In(i),f.inBufferSize=i,!f.M||!f.in)throw Rn(new r("allocation failed"),-4);if(t?(f.P=Cn.deflate_process,f.D=Cn.deflate_last_consumed,f.F=Cn.deflate_end,f.A=Cn.deflate_new(),e=n===bn?Cn.deflate_init_gzip(f.A,s):n===gn?Cn.deflate_init_raw(f.A,s):Cn.deflate_init(f.A,s)):n===vn?(f.P=Cn.inflate9_process,f.D=Cn.inflate9_last_consumed,f.F=Cn.inflate9_end,f.A=Cn.inflate9_new(),e=Cn.inflate9_init_raw(f.A)):(f.P=Cn.inflate_process,f.D=Cn.inflate_last_consumed,f.F=Cn.inflate_end,f.A=Cn.inflate_new(),e=n===gn?Cn.inflate_init_raw(f.A):n===bn?Cn.inflate_init_gzip(f.A):Cn.inflate_init(f.A)),0!==e)throw Rn(new r("init failed:"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(An.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r("trailing data after the end of the stream");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&Mn&&(Mn(f.in),f.in=0),f.in=In(c),f.inBufferSize=c,!f.in))throw Rn(new r("allocation failed"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw Rn(new r("process error:"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(An.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw Rn(new r("process error:"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=Rn(new r("end error:"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&Mn&&Mn(t.in),t.in=0,t.M&&Mn&&Mn(t.M),t.M=0,n}}class Pn{constructor(t=Sn,n){return xn(!0,t,n)}}class Dn{constructor(t=Sn,n){return xn(!1,t,n)}}Pn.requiresModule=!0,Dn.requiresModule=!0,Pn.supportedFormats=kn,Dn.supportedFormats=zn;const Fn=65536;let Un,Bn;function Wn(t){return new c(t.memory.buffer)}let On=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:Pn,DecompressionStreamFallback:Dn,U:function(t,n){const e=Un;let o=e?function(t,n,e){Bn||(Bn=t.malloc(Fn));const o=Bn?t.aes_hmac_new():0;if(o){const r=Wn(t);if(r.set(n,Bn),r.set(e,Bn+n.length),t.aes_hmac_init(o,Bn,n.length,Bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return G(t,n);const r=Bn;return{process(t,n){for(let c=0;c<t.length;c+=Fn){const s=t.subarray(c,c+Fn),a=Wn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Wn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!On)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(Cn=t,({malloc:In,free:Mn,memory:An}=Cn),"function"!=typeof In||"function"!=typeof Mn||!An)throw Cn=In=Mn=An=null,new r("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Un=a,Bn=0)}(t,n),On=!0}catch(t){throw function(t){En=t}(t),t}}(t.wasmURI,t)})});
2
+ `;if(typeof n=="string"&&(n=new TextEncoder().encode(n)),e){let s=new Blob([n],{type:r});return URL.createObjectURL(s)}return"data:"+r+";base64,"+(function(s){let i="",a=s.length,o=0;for(;o+2<a;o+=3){let f=s[o]<<16|s[o+1]<<8|s[o+2];i+=ct[f>>18&63]+ct[f>>12&63]+ct[f>>6&63]+ct[63&f]}let c=a-o;if(c===1){let f=s[o]<<16;i+=ct[f>>18&63]+ct[f>>12&63]+"=="}else if(c===2){let f=s[o]<<16|s[o+1]<<8;i+=ct[f>>18&63]+ct[f>>12&63]+ct[f>>6&63]+"="}return i})(n)}});Ge();ue();xt();Zt();Bs();br();var vf={type:"module"},ma="error",pE="messageerror",kf="abort",Bf,Ea,zf,ha=!0;try{ha=typeof structuredClone==K&&structuredClone(new DOMException("","AbortError")).code!==w}catch{}Ff(EE);function EE(t,e){let{baseURI:r,chunkSize:n,workerStartupTimeout:s}=e,{wasmURI:i}=e;if(!t.interface){typeof i==K&&(i=i());let a;try{a=Gs(t.workerURI,r,t)}catch{return da(t),pa(t,e)}Object.assign(t,{worker:a,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await mE(t,{chunkSize:n,wasmURI:i,baseURI:r,workerStartupTimeout:s})}catch(o){if(o&&o.workerStartupFailed)return da(t),Hf(t),Ws(t,e);if(o&&o.codecImportFailed){if(t.reader)return Hf(t),Ws(t,e);t.onTaskFinished()}throw o}}}})}return t.interface}async function mE(t,e){if(!t.worker){let{startupError:h}=t;t.startupError=null;let g=h||new Error(er);throw g.workerStartupFailed=!0,g}let r,n,s=new Promise((h,g)=>{r=h,n=p=>{let{outputSize:d,workerOptions:u}=t;if(u.outputSize=d,Re(p))try{p.outputSize=d}catch{}g(p)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:r,rejectResult:n,result:s});let{readable:i,options:a}=t,{writable:o,closed:c,abortPipe:f}=hE(t.writable,t),R;try{R=ga({type:Of,options:a,config:e,readable:i,writable:o},t)}catch(h){f();try{await c}catch{}throw t.onTaskFinished(),h}R||Object.assign(t,{reader:i.getReader(),writer:o.getWriter()});let{workerStartupTimeout:E}=e;!t.workerAlive&&Number.isFinite(E)&&E>=0&&(t.startupTimeout=setTimeout(()=>gE(t),E));try{let h=await s;return await l(),await c,h}catch(h){await l(),f();try{await c}catch{}let{outputSize:g,workerOptions:p,destinationFailed:d,destinationError:u}=t;p.outputSize=g;let m=Re(h)&&(h.codecImportFailed||h.workerStartupFailed),_=d&&!m?u:h;if(Re(_))try{_.outputSize=g}catch{}throw _}async function l(){if(!R&&!o.locked)try{await o.getWriter().close()}catch{}}}function hE(t,e){let r=new AbortController,n,{writable:s,readable:i}=new TransformStream({transform(c,f){e.outputSize+=c.length,f.enqueue(c)}}),a=i.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:r.signal});a.catch(c=>{n||Object.assign(e,{destinationFailed:!0,destinationError:c})});let{signal:o}=e.workerOptions.streamOptions;if(o){let c=()=>r.abort(o.reason),f=()=>o.removeEventListener(kf,c);o.addEventListener(kf,c),a.then(f,f)}return{writable:s,closed:a,abortPipe:()=>{n=!0,r.abort()}}}function Hf(t){let{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function Ra(t){let{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function Gs(t,e,r,n,s=!0){let{createWorker:i}=r,a,o,c;if(i)a=i();else if(Ea===w||Bf!==t){let f=typeof t==K;f?o=t(s):o=t;let R=o.startsWith("data:"),E=o.startsWith("blob:");if(R||E){n===w&&(n=!1),n&&(c=vf);try{a=new Worker(o,c)}catch(l){if(E)try{URL.revokeObjectURL(o)}catch{}if(f&&E)return Gs(t,e,r,n,!1);if(n)throw l;return Gs(t,e,r,!0,!1)}}else{n===w&&(n=!0),n&&(c=vf);try{o=new URL(o,e)}catch{}try{a=new Worker(o,c)}catch(l){if(n)return Gs(t,e,r,!1,s);throw l}}Bf=t,Ea=o,zf=c}else a=new Worker(Ea,zf);return a.addEventListener(Nf,f=>{r.workerAlive=!0,Wf(r),RE(f,r)}),a.addEventListener(ma,f=>Yf(f,r)),a.addEventListener(pE,f=>Yf(f,r)),a}function gE(t){if(t.startupTimeout=null,t.workerAlive)return;let{rejectResult:e,writer:r}=t;if(Ra(t),t.worker=null,e){let n=new Error(er);n.workerStartupFailed=!0,e(n),r&&r.releaseLock()}}function Wf(t){let{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function Yf(t,e){t.preventDefault&&t.preventDefault(),Wf(e);let{workerAlive:r,rejectResult:n,writer:s,onTaskFinished:i}=e;Ra(e),r||(e.worker=null);let a=t.error||new Error(t.message||ma);r||(a=Object.assign(new Error(a.message||ma),{workerStartupFailed:!0}),e.startupError=a),n&&(n(a),s&&s.releaseLock(),r&&i())}function ga(t,{worker:e,writer:r,transferStreams:n,workerAlive:s}){try{let{value:i,readable:a,writable:o}=t,c=[];if(i&&(t.value=ws(i),c.push(t.value.buffer)),n&&ha&&s?(a&&c.push(a),o&&c.push(o)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{ha=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(i){throw r&&r.releaseLock(),i}}async function RE({data:t},e){let{type:r,value:n,messageId:s,result:i,error:a,errorValue:o}=t,{reader:c,writer:f,resolveResult:R,rejectResult:E,onTaskFinished:l,generation:h}=e,g=()=>e.generation!=h;try{if(a)p(wE(a,o));else{if(r==Df){let{value:m,done:_}=await c.read();g()||ga({type:la,value:m,done:_,messageId:s},e)}if(r==la){let m=new Uint8Array(n);await f.ready,await f.write(m),g()||ga({type:Pf,messageId:s},e)}r==xf&&d(i)}}catch(m){g()||(Ra(e),p(m))}function p(m){g()||(E(m),u(),Re(m)&&m.codecImportFailed||l())}function d(m){g()||(R(m),u(),l())}function u(){f&&f.releaseLock()}}function wE(t,e){let{message:r,stack:n,code:s,name:i,outputSize:a,cause:o,codecImportFailed:c}=t,f;if(e?f=e.value:f=Object.assign(new Error(r),{stack:n,code:s,name:i}),Re(f))try{a!==w&&(f.outputSize=a),c&&(f.codecImportFailed=!0),o&&!Re(f.cause)&&(f.cause=Object.assign(new Error(o.message),{name:o.name})),e&&(f.name!==i&&(f.name=i),f.code!==s&&(f.code=s))}catch{}return f}_i();ue();Ge();Jt();br();Zs();hn();Ji();xt();Sa();Kt();Zt();ei();wr();var $o="File already exists",ec="Zip file comment exceeds 64KB",Wu="Invalid zip file comment (must be a Uint8Array)",Gu="File entry comment exceeds 64KB",Vu="Invalid file entry comment (must be a string)",Xu="Invalid date (must be a valid Date instance)",ju="File entry name exceeds 64KB",tc="Version exceeds 65535",Zu="The strength must equal 1, 2, or 3",Ku="Encryption is not supported in USDZ files",qu="Split zip files are not supported in USDZ files",Ju="Encryption is not supported when the 'passThrough' option is set to true (use 'compressed' instead)",Qu="Invalid extra field (must be a Map)",$u="Invalid extra field type (must be integer 0..65535)",ed="Invalid extra field data (must be a Uint8Array)",Oi="Extra field data exceeds 64KB",td=-2147483648,rd=2147483647,Cu=BigInt(0),Lu=BigInt("0x7fffffffffffffff"),Di="Zip64 is not supported (set the 'zip64' option to 'true')",nd="Undefined uncompressed size",sd="Undefined compression method",id="Undefined CRC32";var ad="Undefined reader",od="Invalid reader (must be a Reader instance, a ReadableStream instance, or an object with a 'readable' property)",cd="Zip file not empty",ld="Invalid uid (must be integer 0..2^32-1)",fd="Invalid gid (must be integer 0..2^32-1)",ud="Invalid UNIX mode (must be integer 0..65535)",dd="Invalid unixExtraFieldType (must be 'infozip' or 'unix')",pd="uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)",Ed="Invalid msdosAttributesRaw (must be integer 0..255)",md="Invalid msdosAttributes (must be an object with boolean flags)",hd="Invalid level (must be integer 0..9)",gd="Signature data exceeds 64KB",Rd="Invalid entry option (must be an entry returned by ZipReader#getEntries())",wd="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",_d="compression unavailable",Td="clamped last modification date",Fu=new Uint8Array([7,0,2,0,65,69,3,0,0]),km=4,Bm=9,zm=67,Hm=32,Ym=126,Wm=1,Si="infozip",Ii="unix",Gm=[8,9,5,3],Vm=9,Go=0,Uu=[],bi=class{constructor(e,r={}){e=new Or(e);let{availableSize:n=Vt,maxSize:s=Vt}=e,i=n>0&&n!==Vt&&s>0&&s!==Vt;if(i&&r[Xt])throw new Error(qu);Object.assign(this,{writer:e,addSplitZipSignature:i,options:r,fileEntries:new Map,filenames:new Set,offset:r[$r]===w?e.size||e.writable.size||0:r[$r],initialOffset:r[$r]===w?0:r[$r]-(e.size||e.writable.size||0),pendingAddFileCalls:new Set,pendingErrors:[],warnings:[],bufferedWrites:0,directWrites:0,lastFileEntry:w,archiveClosed:!1})}prependZip(e){return Vo(this,Xm(this,e))}appendZip(e){return Vo(this,this.appendZipEntries(e))}async appendZipEntries(e){let r=this,{pendingAddFileCalls:n,filenames:s,fileEntries:i}=r;for(;n.size;)await Promise.allSettled(Array.from(n));let a,o=new Promise(R=>a=R);n.add(o);let c=[],f;try{e=new Et(e),await ge(e),(e.size===w||!e.readUint8Array)&&(e=new Qe(await ft(e.readable)),await ge(e));let{ZipReader:R}=await Promise.resolve().then(()=>(_i(),Ou)),E=new R(e),l=await E.getEntries();await E.close(),await ge(r.writer);let{directoryOffset:h}=E;l.forEach(({filename:d})=>{if(s.has(d))throw new Error($o);s.add(d),c.push(d)}),r.writerLocked=!0;let{lockWriter:g}=r;r.lockWriter=new Promise(d=>f=()=>{r.writerLocked=!1,d()}),await g,r.addSplitZipSignature&&(delete r.addSplitZipSignature,await dh(e)||(await rt(r.writer,Sd()),r.offset+=4));let p=await ph(r,e,l,h);l.forEach(d=>{let{version:u,rawLastModDate:m,rawFilename:_,bitFlag:A,encrypted:T,uncompressedSize:y,compressedSize:S,extraFieldZip64:I}=d,{compressionMethod:N,rawExtraField:F}=d,{level:H,languageEncodingFlag:q,dataDescriptor:$}=A;F=yd(F||j),d.extraFieldAES&&(N=99);let Z=z(F),W=!!I&&I.uncompressedSize!==w,U=!!I&&I.compressedSize!==w,ne=Nd(H,q,$,T,N)&-7|H<<1,{headerArray:B,headerView:X}=bd({version:u,bitFlag:ne,compressionMethod:N,uncompressedSize:y,compressedSize:S,rawLastModDate:m,rawFilename:_,zip64CompressedSize:U,zip64UncompressedSize:W,extraFieldLength:Z}),{crc32:M}=d;M!==w&&_e(X,10,M);let{offset:G,diskNumberStart:pe}=p.get(d);Object.assign(d,{zip64Enabled:!0,zip64UncompressedSize:W,zip64CompressedSize:U,offset:G,diskNumberStart:pe,zip64DiskNumberStart:!1,rawExtraFieldZip64:j,rawExtraFieldAES:j,rawExtraFieldExtendedTimestamp:j,rawExtraFieldNTFS:j,rawExtraFieldUnix:j,rawExtraField:F,rawCentralExtraField:j,headerArray:B,headerView:X}),i.set(d.filename,d)})}catch(R){throw c.forEach(E=>s.delete(E)),R}finally{a(),n.delete(o),f&&f()}}add(e="",r,n={}){let s=this,{pendingAddFileCalls:i}=s,a=jm(s,e,r,n);i.add(a);let o=()=>i.delete(a);return Promise.prototype.then.call(a,o,o),Vo(s,a)}remove(e){let{filenames:r,fileEntries:n}=this;if(typeof e==We&&(e=n.get(e)),e&&e.filename!==w){let{filename:s}=e;if(r.has(s)&&n.has(s))return r.delete(s),n.delete(s),!0}return!1}async close(e=j,r={}){let n=this,{pendingAddFileCalls:s,writer:i}=this,{writable:a}=i;if(n.archiveClosed)return Mu(i);if(!(e instanceof Uint8Array))throw new Error(Wu);if(z(e)>65535)throw new Error(ec);for(;s.size;)await Promise.allSettled(Array.from(s));await Promise.allSettled(n.pendingErrors.map(f=>f.recorded));let o=n.pendingErrors.filter(f=>f.failed&&!f.observed);if(o.length){let f=o.map(E=>E.error);o.forEach(E=>E.observed=!0);let[R]=f;try{R.entryErrors=f}catch{}throw R}return await oh(n,e,r),n.archiveClosed=!0,!mn(i)&&k(n,r,ds)||await a.getWriter().close(),Mu(i)}[is](){return this.close()}};var qo=class extends Promise{then(e,r){let{watcher:n}=this;return n&&(n.observed=!0),super.then(e,r)}};function Mu(t){return t.getData?t.getData():t.writable}function Vo(t,e){let r=new qo((s,i)=>Promise.prototype.then.call(e,s,i)),n={};return r.watcher=n,n.recorded=Promise.prototype.then.call(r,w,s=>Object.assign(n,{failed:!0,error:s})),t.pendingErrors.push(n),r}async function Xm(t,e){if(t.filenames.size)throw new Error(cd);await t.appendZipEntries(e)}async function jm(t,e,r,n){n=Object.assign({},n);let s=n[ji];if(s!==w){let{entryOptions:i,passThroughOptions:a}=Ad(s,gr(k(t,n,Qr)),k(t,n,sr));delete n[ji],n=Object.assign(i,a,n)}if(k(t,n,ir)&&!e.endsWith("/")&&(e+="/"),t.filenames.has(e))throw new Error($o);t.filenames.add(e),Go<ot().maxWorkers?Go++:await new Promise(i=>Uu.push(i));try{return await Zm(t,e,r,n)}catch(i){throw t.filenames.delete(e),i}finally{let i=Uu.shift();i?i():Go--}}async function Zm(t,e,r,n){let s=qm(t,e,n);({name:e}=s);let i=Jm(t,e,n),{comment:a}=i,o=n[bn];t.fileEntries.set(e,w);let c=t.lastFileEntry,f={},R;i.resolvedOptions.keepOrder&&(f.lockFileEntry=new Promise(l=>R=l)),t.lastFileEntry=f;let E;try{let{resolvedOptions:l}=i;l.level!=0&&l.compressionMethod===w&&!l.passThroughCompression&&!await Uf(ot())&&(l.level=0,Te(t.warnings,_d,e));let h=await Qm(t,r,i,n);({reader:r}=h);let g=Fn(t.writer),p=Rt(t.writer),d=n.crc32===w?n[$s]:n.crc32,u=h.resolvedOptions.encrypted&&!l.zipCrypto;if(l.passThroughCompression&&!l.passThroughEncryption&&u&&(d=w),l.passThroughCompression&&r&&!u&&d===w)throw new Error(id);n=Object.assign({},n,s.resolvedOptions,i.resolvedOptions,h.resolvedOptions,{signature:n[$s],crc32:d,offset:t.offset-g,diskNumberStart:p,[Xt]:t.options[Xt]});let m=rh(n);m.lastModDateClamped&&Te(t.warnings,Td,e);let _=sh(n),A=z(m.localHeaderArray,_.dataDescriptorArray);E=await eh(t,e,r,{headerInfo:m,dataDescriptorInfo:_,metadataSize:A,fileEntry:f,previousFileEntry:c,releaseLockFileEntry:R},n)}catch(l){throw t.fileEntries.delete(e),l}finally{R&&R(c&&c.lockFileEntry)}return Object.assign(E,{name:e,comment:a,extraField:o}),new mt(E)}function Ad(t,e,r){if(t===null||typeof t!=ss||Array.isArray(t))throw new Error(Rd);let{externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:a,rawLastModDate:o,creationDate:c,lastAccessDate:f,uncompressedSize:R,encrypted:E,zipCrypto:l,crc32:h,compressionMethod:g,extraFieldAES:p,extraFieldUnix:d,internalFileAttributes:u,extraField:m,bitFlag:_,directory:A,uid:T,gid:y}=t,S={externalFileAttributes:n,versionMadeBy:s,comment:i,lastModDate:a,creationDate:c,lastAccessDate:f,internalFileAttributes:u,directory:A};_&&_.languageEncodingFlag&&(S[Gi]=!0);let I=eu(m);I&&(S[bn]=I),(T!==w||y!==w)&&Object.assign(S,{uid:T,gid:y,unixExtraFieldType:d?Ii:Si});let N={};if(e&&!A){if(Object.assign(N,{uncompressedSize:R,crc32:h,compressionMethod:g}),e!==en&&Object.assign(N,{encrypted:E,zipCrypto:l,encryptionStrength:p?p.strength:w}),_&&(N.dataDescriptor=_.dataDescriptor,N[ps]=Gm[_.level]),r===w)N.rawLastModDate=o;else if(e!==en&&l&&(!_||_.dataDescriptor)&&r instanceof Date&&Km(r)!=(o>>>8&255))throw new Error(wd)}return{entryOptions:S,passThroughOptions:N}}function Km(t){let e=new Date(Math.ceil(Math.floor(t.getTime()/1e3)/2)*2e3);return e<Nt?e=Nt:e>Jr&&(e=Jr),(e.getHours()<<3|e.getMinutes()>>3)&255}function qm(t,e,r){let n=k(t,r,Ha),s=k(t,r,Ga,n?20:768),i=k(t,r,Xa),a=Br(t,r,Za),o=Br(t,r,Ka),c=Br(t,r,qa),f=k(t,r,hl),R=k(t,r,Ja),E=k(t,r,Qa),l=k(t,r,$a);if(Rr(a,4294967295,ld),Rr(o,4294967295,fd),Rr(c,65535,ud),f!==w&&f!==Si&&f!==Ii)throw new Error(dd);if(f===Ii&&(a!==w&&a>65535||o!==w&&o>65535))throw new Error(pd);f===w&&(a!==w||o!==w)&&(f=Si);let h=Br(t,r,Ba),g=k(t,r,za),p=a!==w||o!==w||c!==w||f||i,d=h!==w||g!==w;if(p?(n=!1,s=s&255|768):d&&(n=!0,s=s&255),Rr(h,255,Ed),g&&(typeof g!==ss||Array.isArray(g)))throw new Error(md);if(s>65535)throw new Error(tc);let u=k(t,r,ka),m=u!==w;m||(u=0),!r[ir]&&e.endsWith("/")&&(r[ir]=!0);let _=k(t,r,ir);if(_?(e.endsWith("/")||(e+="/"),m||(u=16,n||(u|=16877<<16))):!n&&!m&&(i?u=493<<16:u=420<<16),!n){let y=c!==w||!!(R||E||l),S=u>>16&65535;c=c===w?S:c&65535,R?c|=2048:R=!!(c&2048),E?c|=1024:E=!!(c&1024),l?c|=512:l=!!(c&512),(!m||y)&&(_?c=c&-61441|16384:c&61440||(c|=32768),u=(c&65535)<<16|u&65535)}({msdosAttributesRaw:h,msdosAttributes:g}=nh(h,g)),d&&(u=u&4294967295|h&255);let A=u>>16&65535,T=c!==w&&(c&61440)==40960;return{name:e,resolvedOptions:{versionMadeBy:s,msDosCompatible:!!n,externalFileAttributes:u,unixExternalUpper:A,uid:a,gid:o,unixMode:c,unixExtraFieldType:f,symlink:T,setuid:R,setgid:E,sticky:l,msdosAttributesRaw:h,msdosAttributes:g}}}function Jm(t,e,r){let n=Jo(t,r,ml)||_r,s=n(e,Es);if(s===w&&(s=_r(e)),z(s)>65535)throw new Error(ju);let i=r[An]||"";if(typeof i!=We)throw new Error(Vu);let a=n(i,ms);if(a===w&&(a=_r(i)),z(a)>65535)throw new Error(Gu);let o=k(t,r,Wa);if(o!==w&&o>65535)throw new Error(tc);let c=Ko(t,r,sr,new Date),f=k(t,r,Pr),R=Ko(t,r,Sn),E=Ko(t,r,In),l=k(t,r,va,0),h=gr(k(t,r,Qr)),g=!!h,p=h===!0,d=k(t,r,as),u=k(t,r,os);gs(d,u),d=d&&d.length?d:w,u=u&&u.length?u:w;let m=Br(t,r,ol,3),_=k(t,r,Va),A=k(t,r,cl,!0),T=k(t,r,ll),y=k(t,r,fl,!0),S=k(t,r,ls),I=k(t,r,us),N=k(t,r,ul),F=Jo(t,r,dl),H=k(t,r,pl,!0),q=tn(k(t,r,cs));jt(q);let $=k(t,r,Gi,!Yu(s)||!Yu(a)),Z=k(t,r,ja),W=g||Z===w?w:Os(Z);if(!g&&Z!==w&&Z!==0&&Z!==8&&!W)throw new Error(ut);let U=Br(t,r,ps);if(Rr(U,Vm,hd),t.options[Xt]){if(d!==w||u!==w)throw new Error(Ku);U===w&&Z===w&&(U=0)}g&&(U=Dt(r[ps]));let ne=k(t,r,fs),B=k(t,r,Vi);N&&B===w&&(B=!1),(B===w||_&&!p)&&(B=!0),U!==w&&U!=6&&(ne=!1);let X=k(t,r,Qs);if(!_&&(d!==w||u!==w)&&!(Number.isInteger(m)&&m>=1&&m<=3))throw new Error(Zu);let M=Xo(r[bn]),G=Xo(r[gl]),pe=Xo(r[Rl]);return{comment:i,resolvedOptions:{rawFilename:s,rawComment:a,version:o,lastModDate:c,rawLastModDate:f,lastAccessDate:R,creationDate:E,internalFileAttributes:l,passThroughCompression:g,passThroughEncryption:p,password:d,rawPassword:u,encryptionStrength:m,zipCrypto:_,extendedTimestamp:A,ntfsTimestamp:T,keepOrder:y,useWebWorkers:S,transferStreams:I,bufferedWrite:N,createTempStream:F,dataDescriptorSignature:H,signal:q,useUnicodeFileNames:$,compressionMethod:Z,format:W?W.format:w,codecURI:W?W.codecURI:w,codecVersionNeeded:W?W.versionNeeded:w,level:U,useCompressionStream:ne,dataDescriptor:B,zip64:X,rawExtraField:M,rawLocalExtraField:G,rawCentralExtraField:pe}}}function Xo(t){if(!t)return j;if(!(t instanceof Map))throw new Error(Qu);let e=0,r=0;t.forEach((i,a)=>{if(Ki(a,65535,$u),!(i instanceof Uint8Array))throw new Error(ed);if(z(i)>65535)throw new Error(Oi);e+=4+z(i)});let n=new Uint8Array(e),s=L(n);return t.forEach((i,a)=>{tt(s,r,a),tt(s,r+2,z(i)),vn(n,i,r+4),r+=4+z(i)}),n}async function Qm(t,e,{resolvedOptions:r},n){if(r.passThroughCompression&&!e&&!k(t,n,ir))throw new Error(ad);let s;if(e){if(e=new Et(e),await ge(e),!e.readable&&!e.readUint8Array)throw new Error(od);({size:s}=e)}return Object.assign({reader:e},$m(t,!!e,s,r,n))}function $m(t,e,r,n,s){let{passThroughCompression:i,passThroughEncryption:a,zipCrypto:o,password:c,rawPassword:f,encryptionStrength:R}=n,{dataDescriptor:E,zip64:l,level:h,compressionMethod:g}=n,p=0,d=0,u=!1;if(i&&e){if(d=s[yn],d===w)throw new Error(nd);if(g===w)throw new Error(sd)}let m=l===!0,_=k(t,s,Ya);if(e&&a&&!_&&z(c,f))throw new Error(Ju);let A=e&&(!!(c&&z(c)||f&&z(f))||a&&_);e||(h=0,g=0);let T=Nn(A,o,R);e&&(i?(s.uncompressedSize=d,p=r===w?Hu(d)+T:r+(a?0:T)):r===w?(E=!0,(l||l===w)&&(l=u=!0,p=4294967296)):(s.uncompressedSize=d=r,p=(Qo(g,h)?Hu(d):d)+T));let y=!A&&(!e||r===0&&!i)&&!Qo(g,h);y&&k(t,s,Vi)===w&&(E=!1);let S=m||u||d>=4294967295,I=m||p>=4294967295;if(S||I){if(l===!1)throw new Error(Di);l=!0}return l=l||!1,{maximumCompressedSize:p,resolvedOptions:{dataDescriptor:E,emptyEntry:y,zip64:l,zip64Enabled:m,unknownSize:u,zip64UncompressedSize:S,zip64CompressedSize:I,uncompressedSize:d,level:h,compressionMethod:g,encrypted:A}}}async function eh(t,e,r,n,s){let{fileEntries:i,writer:a}=t,{keepOrder:o,dataDescriptor:c,emptyEntry:f,signal:R}=s,{headerInfo:E,fileEntry:l,previousFileEntry:h,releaseLockFileEntry:g}=n,p=t.options[Xt],d=l,u,m,_,A,T,y,S=0,I,N=o&&h?h.lockFileEntry:w;i.set(e,d);try{s.bufferedWrite||!o||t.writerLocked||t.bufferedWrites||t.directWrites||!c&&!f?(u=!0,t.bufferedWrites++,s.createTempStream?I=await s.createTempStream():I=new TransformStream(w,w,{highWaterMark:Vt}),I.size=0,await ge(a)):(m=!0,t.directWrites++,I=a,await N,await F()),await ge(I);let q=Fn(a);t.addSplitZipSignature&&!u&&await Bu(t,a),p&&!u&&vu(n,t.offset-q);let{localHeaderArray:$}=E;u||await H();let Z=Rt(a),W=Un(t,a);if(d.diskNumberStart=Z,u||(T=!0,y=a.size,await rt(I,$)),d=await th(r,I,d,n,ot(),s),u||(T=!1),i.set(e,d),d.filename=e,u){if(await Promise.all([I.writable.getWriter().close(),N]),await F(),t.addSplitZipSignature&&await Bu(t,a),A=!0,y=a.size,await H(),d.diskNumberStart=Rt(a),d.offset=Un(t,a),p){let U=n.metadataSize;vu(n,t.offset-Fn(a)),d.size+=n.metadataSize-U}ah(d,E.localHeaderView,s),await rt(a,E.localHeaderArray),await Id(I.readable,a,R,U=>S+=U),a.size+=I.size,A=!1}else d.diskNumberStart=Z,d.offset=W;return t.offset+=d.size,d}catch(q){if(A||T){if(t.hasCorruptedEntries=!0,q)try{q.corruptedEntry=!0}catch{}t.offset+=a.size-y,u&&(t.offset+=S)}throw i.delete(e),q}finally{if(u&&t.bufferedWrites--,m&&t.directWrites--,g&&g(N),_&&_(),u&&I&&I.dispose)try{await I.dispose()}catch{}}async function F(){t.writerLocked=!0;let{lockWriter:q}=t;t.lockWriter=new Promise($=>_=()=>{t.writerLocked=!1,$()}),await q}async function H(){zr(a,z(E.localHeaderArray))&&await a.closeDisk()}}async function th(t,e,{diskNumberStart:r,lockFileEntry:n},s,i,a){let{headerInfo:o,dataDescriptorInfo:c,metadataSize:f}=s,{headerArray:R,headerView:E,lastModDate:l,rawLastModDate:h,encrypted:g,compressed:p,version:d,compressionMethod:u,rawExtraFieldZip64:m,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N}=o,{dataDescriptorArray:F}=c,{rawFilename:H,lastAccessDate:q,creationDate:$,password:Z,rawPassword:W,level:U,useUnicodeFileNames:ne,zip64:B,zip64Enabled:X,zip64UncompressedSize:M,zip64CompressedSize:G,zipCrypto:pe,dataDescriptor:me,directory:nt,executable:Ue,versionMadeBy:Me,rawComment:je,rawExtraField:be,rawCentralExtraField:Ne,useWebWorkers:Oe,transferStreams:oe,onstart:De,onprogress:ve,onend:fe,signal:te,encryptionStrength:J,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:Ee,uid:Pe,gid:Ze,unixMode:Bt,symlink:Gr,setuid:zt,setgid:He,sticky:Tt,unixExternalUpper:st,msdosAttributesRaw:de,msdosAttributes:Ae,useCompressionStream:Yn,passThroughCompression:At,passThroughEncryption:yt,format:Wn,codecURI:vi}=a,Vr={lockFileEntry:n,versionMadeBy:Me,zip64:B,zip64Enabled:X,directory:!!nt,executable:!!Ue,filenameUTF8:!!ne,rawFilename:H,commentUTF8:!!ne,rawComment:je,rawExtraFieldZip64:m,localExtraFieldZip64Length:_,rawExtraFieldExtendedTimestamp:A,rawExtraFieldNTFS:S,rawExtraFieldUnix:I,rawExtraFieldAES:N,rawExtraField:be,rawCentralExtraField:Ne,extendedTimestamp:b,msDosCompatible:Y,internalFileAttributes:Q,externalFileAttributes:Ee,diskNumberStart:r,uid:Pe,gid:Ze,unixMode:Bt,symlink:!!Gr,setuid:zt,setgid:He,sticky:Tt,unixExternalUpper:st,msdosAttributesRaw:de,msdosAttributes:Ae},{crc32:Ht,uncompressedSize:St}=a,he=0;At||(St=0);let{writable:Xr}=e;if(t){let Yt=t.size,It=ze(ya(t,{size:Yt})),Gn={options:{codecType:Ir,inputSize:Yt,level:U,rawPassword:W,password:Z,encryptionStrength:J,zipCrypto:g&&pe,passwordVerification:g&&pe&&h>>8&255,computeCrc32:!At,compressed:p&&!At,encrypted:g&&!yt,useWebWorkers:Oe,useCompressionStream:Yn,transferStreams:oe,format:Wn,codecURI:vi,compressionMethod:u},config:i,streamOptions:{signal:te,size:Yt,onstart:De,onprogress:ve,onend:fe}};try{let Ke=await js({readable:It,writable:Xr},Gn);if(he=Ke.outputSize,e.size+=he,jt(te),At||(St=Ke.inputSize,(!g||pe)&&(Ht=Ke.crc32)),!G&&he>=4294967295||!M&&St>=4294967295)throw new Error(Di)}catch(Ke){let{outputSize:Vn}=Gn;throw Vn!==w?e.size+=Vn:Re(Ke)&&Ke.outputSize!==w&&(e.size+=Ke.outputSize),Ke}}return ih({crc32:Ht,compressedSize:he,uncompressedSize:St,headerInfo:o,dataDescriptorInfo:c},a),me&&await rt(e,F),Object.assign(Vr,{uncompressedSize:St,compressedSize:he,lastModDate:l,rawLastModDate:h,creationDate:$,lastAccessDate:q,encrypted:!!g,zipCrypto:!!pe,size:f+he,compressionMethod:u,version:d,headerArray:R,headerView:E,signature:Ht,crc32:g&&!pe&&!At?w:Ht,extraFieldExtendedTimestampFlag:T,extraFieldExtendedTimestampTime:y,zip64UncompressedSize:M,zip64CompressedSize:G}),Vr}function rh(t){let{rawFilename:e,lastModDate:r,rawLastModDate:n,lastAccessDate:s,creationDate:i,level:a,zip64:o,zipCrypto:c,useUnicodeFileNames:f,dataDescriptor:R,directory:E,rawExtraField:l,rawLocalExtraField:h,encryptionStrength:g,extendedTimestamp:p,ntfsTimestamp:d,passThroughCompression:u,encrypted:m,zip64UncompressedSize:_,zip64CompressedSize:A,uncompressedSize:T,unknownSize:y,crc32:S}=t,{version:I,compressionMethod:N}=t,F=!E&&Qo(N,a),H,q=u||!F,$=o&&(t.bufferedWrite||!R||!_&&!A||q&&!y),Z=$||o&&R&&(_||A);if(o&&(_||A)){let te=Le(20);if(te.writeUint16(1),te.writeUint16(16),H=te.array,$&&(te.writeUint64(T),q)){let J=Nn(m,c,g);te.writeUint64(u?0:T+J)}}else H=j;let W;if(m&&!c){let fe=Le(z(Fu)+2);fe.writeUint16(39169),fe.writeBytes(Fu),W=fe.array,W[8]=g}else W=j;let U,ne,B,X;if(p){let fe=Ai(r),te=mh(fe);if(te){let b=9+(s?4:0)+(i?4:0),Y=Le(b);B=1+(s?2:0)+(i?4:0),X=fe,Y.writeUint16(21589),Y.writeUint16(b-4),Y.writeUint8(B),Y.writeUint32(fe),s&&Y.writeUint32(zu(Ai(s))),i&&Y.writeUint32(zu(Ai(i))),ne=Y.array}else ne=j;if(d===w?!te||!!(s||i):d)try{let b=Zo(r),Y=Le(36);Y.writeUint16(10),Y.writeUint16(32),Y.skip(4),Y.writeUint16(1),Y.writeUint16(24),Y.writeUint64(b),Y.writeUint64(s?Zo(s):b),Y.writeUint64(i?Zo(i):b),U=Y.array}catch{U=j}else U=j}else U=ne=j;let M;try{let{uid:fe,gid:te,unixExtraFieldType:J}=t;if(J==Si&&(fe!==w||te!==w)){let b=ku(fe===w?0:fe),Y=ku(te===w?0:te),Q=3+b.length+Y.length,Ee=Le(4+Q);Ee.writeUint16(30837),Ee.writeUint16(Q),Ee.writeUint8(1),Ee.writeUint8(b.length),Ee.writeBytes(b),Ee.writeUint8(Y.length),Ee.writeBytes(Y),M=Ee.array}else if(J==Ii&&(fe!==w||te!==w)){let b=Le(8);b.writeUint16(30805),b.writeUint16(4),b.writeUint16((fe===w?0:fe)&65535),b.writeUint16((te===w?0:te)&65535),M=b.array}else M=j}catch{M=j}N===w&&(N=F?8:0),I===w&&(I=N==0&&!E&&!m?10:20);let{codecVersionNeeded:G}=t;F&&G!==w&&(I=I>G?I:G),o&&(I=I>45?I:45),m&&!c&&(I=I>51?I:51,u&&S!==w&&(W[km]=Wm),tt(L(W),Bm,N),N=99);let pe=Z?z(H):0,me=pe+z(W,ne,U,M,l,h),nt=t[Xt]?zm:0;if(me+nt>65535)throw new Error(Oi);let Ue=new Date(Math.ceil(Math.floor(r.getTime()/1e3)/2)*2e3),Me=Ue<Nt?Nt:Ue>Jr?Jr:Ue,je=z(ne)?new Date(Ai(r)*1e3):z(U)?r:Me,{headerArray:be,headerView:Ne,rawLastModDate:Oe}=bd({version:I,bitFlag:Nd(a,f,R,m,N),compressionMethod:N,uncompressedSize:T,lastModDate:Me,rawLastModDate:n,rawFilename:e,zip64CompressedSize:A,zip64UncompressedSize:_,extraFieldLength:me}),oe=Le(30+z(e)+me),De=oe.array,ve=L(De);return oe.writeUint32(67324752),oe.writeBytes(be),oe.writeBytes(e),Z&&oe.writeBytes(H),oe.writeBytes(W),oe.writeBytes(ne),oe.writeBytes(U),oe.writeBytes(M),oe.writeBytes(l),oe.writeBytes(h),R&&(A||_e(ve,18,0),_||_e(ve,22,0)),{localHeaderArray:De,localHeaderView:ve,headerArray:be,headerView:Ne,lastModDate:je,lastModDateClamped:je===Me&&Ue.getTime()!=Me.getTime(),rawLastModDate:Oe,encrypted:m,compressed:F,version:I,compressionMethod:N,extraFieldExtendedTimestampFlag:B,extraFieldExtendedTimestampTime:X,rawExtraFieldZip64:j,localExtraFieldZip64Length:pe,rawExtraFieldExtendedTimestamp:ne,rawExtraFieldNTFS:U,rawExtraFieldUnix:M,rawExtraFieldAES:W,extraFieldLength:me}}function vu(t,e){let{headerInfo:r}=t,{localHeaderArray:n,extraFieldLength:s}=r,i=64-(e+z(n))%64;i<4&&(i+=64);let a=new Uint8Array(i),o=L(a);tt(o,0,6534),tt(o,2,i-4);let c=n;r.localHeaderArray=n=new Uint8Array(z(c)+i),vn(n,c),vn(n,a,z(c));let f=L(n);tt(f,28,s+i),r.localHeaderView=f,t.metadataSize+=i}function ku(t){let e=new Uint8Array(4);L(e).setUint32(0,t,!0);let n=4;for(;n>1&&e[n-1]===0;)n--;return e.subarray(0,n)}function nh(t,e){if(t!==w)t=t&255;else if(e!==w){let{readOnly:r,hidden:n,system:s,directory:i,archive:a}=e,o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),t=o&255}return e===w&&(e={readOnly:!!(t&1),hidden:!!(t&2),system:!!(t&4),directory:!!(t&16),archive:!!(t&32)}),{msdosAttributesRaw:t,msdosAttributes:e}}function sh({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n=j,s,i=0,a=t?20:12;return r&&(a+=4),e&&(n=new Uint8Array(a),s=L(n),r&&(i=4,_e(s,0,134695760))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:i}}function ih({crc32:t,compressedSize:e,uncompressedSize:r,headerInfo:n,dataDescriptorInfo:s},{zip64:i,zipCrypto:a,passThroughCompression:o,dataDescriptor:c}){let{headerView:f,encrypted:R}=n,{dataDescriptorView:E,dataDescriptorOffset:l}=s;(!R||a||o)&&t!==w&&(_e(f,10,t),c&&_e(E,l,t)),i?c&&(Mn(E,l+4,BigInt(e)),Mn(E,l+12,BigInt(r))):(_e(f,14,e),_e(f,18,r),c&&(_e(E,l+4,e),_e(E,l+8,r)))}function ah({rawFilename:t,encrypted:e,zip64:r,localExtraFieldZip64Length:n,crc32:s,compressedSize:i,uncompressedSize:a,zip64UncompressedSize:o,zip64CompressedSize:c},f,{dataDescriptor:R,passThroughCompression:E}){if(R||((!e||E&&s!==w)&&_e(f,14,s),c||_e(f,18,i),o||_e(f,22,a)),r&&n){let l=30+z(t)+4;Mn(f,l,BigInt(a)),Mn(f,l+8,BigInt(i))}}async function oh(t,e,r){let{directoryDataLength:n,zip64Entries:s}=ch(t.fileEntries),{directoryStart:i,directoryEnd:a,directoryArray:o}=await lh(t,n,r),c=await fh(t,o,r);await uh(t,e,r,{directoryStart:i,directoryEnd:a,directoryDataLength:n,signatureLength:c,zip64Entries:s})}function ch(t){let e=0,r=!1;for(let[,n]of t){let{rawFilename:s,rawExtraFieldAES:i,rawComment:a,rawExtraFieldNTFS:o,rawExtraFieldUnix:c,rawExtraField:f,rawCentralExtraField:R,extraFieldExtendedTimestampFlag:E,extraFieldExtendedTimestampTime:l,zip64Enabled:h,uncompressedSize:g,compressedSize:p}=n,{zip64UncompressedSize:d,zip64CompressedSize:u}=n;h||(d&&g<4294967295&&(d=n.zip64UncompressedSize=!1),u&&p<4294967295&&(u=n.zip64CompressedSize=!1)),r=r||d||u;let m=n.offset>=4294967295,_=n.diskNumberStart>=65535,A;if(m||_||d||u){let S=4+(d?8:0)+(u?8:0)+(m?8:0)+(_?4:0),I=Le(S);I.writeUint16(1),I.writeUint16(S-4),d&&I.writeUint64(g),u&&I.writeUint64(p),m&&I.writeUint64(n.offset),_&&I.writeUint32(n.diskNumberStart),A=I.array}else A=j;n.rawExtraFieldZip64=A,n.zip64Offset=m,n.zip64DiskNumberStart=_;let T;if(l===w)T=j;else{let S=Le(9);S.writeUint16(21589),S.writeUint16(5),S.writeUint8(E),S.writeUint32(l),T=S.array}n.rawExtraFieldExtendedTimestamp=T;let y=z(A,i,o,c,T,f,R);if(y>65535)throw new Error(Oi);e+=46+z(s,a)+y}return{directoryDataLength:e,zip64Entries:r}}async function lh(t,e,r){let{fileEntries:n,writer:s}=t,i=new Uint8Array(e);await ge(s);let a=0,o=0,c=Rt(s),f=Fn(s),R=0;for(let[E,l]of Array.from(n.values()).entries()){let{offset:h,rawFilename:g,rawExtraFieldZip64:p,rawExtraFieldAES:d,rawExtraFieldExtendedTimestamp:u,rawExtraFieldNTFS:m,rawExtraFieldUnix:_,rawExtraField:A,rawCentralExtraField:T,rawComment:y,versionMadeBy:S,headerArray:I,headerView:N,zip64UncompressedSize:F,zip64CompressedSize:H,zip64DiskNumberStart:q,zip64Offset:$,internalFileAttributes:Z,externalFileAttributes:W,diskNumberStart:U,uncompressedSize:ne,compressedSize:B}=l,X=z(p,d,u,m,_,A,T),M=46+z(g,y)+X;zr(s,a+M-o)&&(await rt(s,i.slice(o,a)),o=a,R=0,await s.closeDisk()),E==0&&(c=Rt(s),f=Fn(s)),F||_e(N,18,ne),H||_e(N,14,B),($||q)&&l.version<45&&tt(N,0,45);let G=Le(M);if(G.writeUint32(33639248),G.writeUint16(S),G.writeBytes(I.subarray(0,24)),G.writeUint16(X),G.writeUint16(z(y)),G.writeUint16(q?65535:U),G.writeUint16(Z),G.writeUint32(W),G.writeUint32($?4294967295:h),G.writeBytes(g),G.writeBytes(p),G.writeBytes(d),G.writeBytes(u),G.writeBytes(m),G.writeBytes(_),G.writeBytes(A),G.writeBytes(T),G.writeBytes(y),vn(i,G.array,a),a+=M,R++,r.onprogress)try{await r.onprogress(E+1,n.size,new mt(l))}catch{}}return await rt(s,o?i.slice(o):i),{directoryStart:{diskNumber:c,diskOffset:f},directoryEnd:{diskNumber:Rt(s),entriesLength:R},directoryArray:i}}async function fh(t,e,r){let n=Jo(t,r,yl);if(n){let s=await n(e),i=z(s);if(i>65535)throw new Error(gd);let a=Le(6+i);a.writeUint32(84233040),a.writeUint16(i),a.writeBytes(s);let{writer:o}=t;return zr(o,z(a.array))&&await o.closeDisk(),await rt(o,a.array),6+i}return 0}async function uh(t,e,r,n){let{writer:s}=t,{directoryStart:i,directoryEnd:a,signatureLength:o,zip64Entries:c}=n,{directoryDataLength:f}=n,R=t.fileEntries.size,E=i.diskNumber,l=Un(t,i),h=z(e);if(h>65535)throw new Error(ec);let g=k(t,r,Qs),p=Rt(s);if(zr(s,(g?98:22)+h)&&p++,l>=4294967295||f>=4294967295||R>=65535||p>=65535){if(g===!1)throw new Error(Di);g=!0}else g===w&&c&&(g=!0);let d=Le(g?98:22);zr(s,z(d.array)+h)&&await s.closeDisk(),p=Rt(s);let u=p==a.diskNumber?a.entriesLength:0;g&&(d.writeUint32(101075792),d.writeUint64(44),d.writeUint16(45),d.writeUint16(45),d.writeUint32(p),d.writeUint32(E),d.writeUint64(u),d.writeUint64(R),d.writeUint64(f),d.writeUint64(l),d.writeUint32(117853008),d.writeUint32(p),d.writeUint64(BigInt(Un(t,s))+BigInt(f)+BigInt(o)),d.writeUint32(p+1),k(t,r,El,!0)&&(p=65535,E=65535),u=65535,R=65535,l=4294967295,f=4294967295),d.writeUint32(101010256),d.writeUint16(p),d.writeUint16(E),d.writeUint16(u),d.writeUint16(R),d.writeUint32(f),d.writeUint32(l),d.writeUint16(h),await rt(s,d.array),h&&await rt(s,e)}function Le(t){let e=new Uint8Array(t),r=L(e),n=0;return{array:e,writeUint8:s=>{gh(r,n,s),n+=1},writeUint16:s=>{tt(r,n,s),n+=2},writeUint32:s=>{_e(r,n,s),n+=4},writeUint64:s=>{Mn(r,n,BigInt(s)),n+=8},writeBytes:s=>{vn(e,s,n),n+=z(s)},skip:s=>n+=s}}function Rt(t){let{diskNumber:e=0}=t;return e}function Fn(t){let{diskOffset:e=0}=t;return e}function zr(t,e){let{availableSize:r=Vt}=t;return e>r}function Un(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.initialOffset:0)}async function dh(t){let e=await re(t,0,4);return hh(L(e),0)==134695760}function yd(t){let e=L(t),r=0;for(;r+4<=z(t);){let n=4+Ni(e,r+2);if(Ni(e,r)==1)return yd(Be(t.subarray(0,r),t.subarray(Math.min(r+n,z(t)))));r+=n}return t}async function ph(t,e,r,n){let{writer:s}=t,i=new Map;if(s.closeDisk){let a=Array.from(r).sort((c,f)=>Ti(e,c)-Ti(e,f)),o=0;for(let c of a){let f=Ti(e,c);await jo(t,e,o,f-o),zr(s,await Eh(e,f))&&await s.closeDisk(),i.set(c,{offset:Un(t,s),diskNumberStart:Rt(s)}),o=f}await jo(t,e,o,n-o)}else{let a=t.offset;await jo(t,e,0,n),r.forEach(o=>i.set(o,{offset:a+Ti(e,o),diskNumberStart:0}))}return i}async function jo(t,e,r,n){if(n>0){let{writer:s}=t,i=0;try{await Id(ya(e,{offset:r,size:n}),s,w,a=>i+=a)}catch(a){t.hasCorruptedEntries=!0;try{a.corruptedEntry=!0}catch{}throw a}finally{s.size+=i,t.offset+=i}}}async function Eh(t,e){let r=await re(t,e,30);if(z(r)<30)return 30;let n=L(r);return 30+Ni(n,26)+Ni(n,28)}function Ti(t,{offset:e,diskNumberStart:r}){return e+(t.getDiskOffset?t.getDiskOffset(r):0)}function Sd(){let t=new Uint8Array(4);return _e(L(t),0,134695760),t}async function Bu(t,e){delete t.addSplitZipSignature,await rt(e,Sd()),t.offset+=4}async function rt(t,e){let{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=z(e),await n.write(e)}finally{n.releaseLock()}}async function Id(t,e,r,n){let s=e.writable.getWriter();try{await t.pipeTo(new WritableStream({async write(i){await s.ready,await s.write(i),n(z(i))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{s.releaseLock()}}function Zo(t){if(t){let e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<Cu?Cu:e>Lu?Lu:e}}function Ai(t){return Math.floor(t.getTime()/1e3)}function mh(t){return t>=td&&t<=rd}function zu(t){return Math.min(rd,Math.max(td,t))}function k(t,e,r,n){let s=e[r]===w?t.options[r]:e[r];return s===w?n:s}function Ko(t,e,r,n){let s=k(t,e,r,n);if(s===null)return n;if(s!==w&&(typeof s.getTime!=K||Number.isNaN(s.getTime())))throw new Error(Xu);return s}function Jo(t,e,r){return hr(k(t,e,r))}function Br(t,e,r,n){return Dt(k(t,e,r,n))}function Hu(t){return t+5*(Math.floor(t/16383)+1)}function Qo(t,e){return t===w?e===w||e>0:t!==0}function Ni(t,e){return t.getUint16(e,!0)}function hh(t,e){return t.getUint32(e,!0)}function gh(t,e,r){t.setUint8(e,r)}function tt(t,e,r){t.setUint16(e,r,!0)}function _e(t,e,r){t.setUint32(e,r,!0)}function Mn(t,e,r){t.setBigUint64(e,r,!0)}function vn(t,e,r){t.set(e,r)}function z(...t){let e=0;return t.forEach(r=>r&&(e+=r.length)),e}function bd({version:t,bitFlag:e,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,zip64CompressedSize:c,zip64UncompressedSize:f,extraFieldLength:R}){let E=Le(26),l=E.array,h=L(l);if(E.writeUint16(t),E.writeUint16(e),E.writeUint16(r),a===w){let g=new Uint32Array(1),p=L(g);tt(p,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),tt(p,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=g[0]}return E.writeUint32(a),E.skip(4),c||s!==w?E.writeUint32(c?4294967295:s):E.skip(4),f||n!==w?E.writeUint32(f?4294967295:n):E.skip(4),E.writeUint16(z(o)),E.writeUint16(R),{headerArray:l,headerView:h,rawLastModDate:a}}function Yu(t){return t.every(e=>e>=Hm&&e<=Ym)}function Nd(t,e,r,n,s){let i=0;return e&&(i=i|2048),r&&(i=i|8),(s==8||s==9)&&(t>=0&&t<=3&&(i=i|6),t>3&&t<=5&&(i=i|4),t==9&&(i=i|2)),n&&(i=i|1),i}hn();wr();Ge();Jt();ue();Ge();Jt();ca();var Pw=1024*1024;Kt();var Lw=1024*1024;var Uw=1024*1024;var Mw=512*1024;try{Pt({baseURI:import.meta.url})}catch{}Ge();var Oh=[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],Dh=[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],Ph=[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],xh=[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],Ch=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Bn=new Uint8Array(288);Bn.fill(8,0,144),Bn.fill(9,144,256),Bn.fill(7,256,280),Bn.fill(8,280,288);var Lh=new Uint8Array(30).fill(5);function kn(t){let e=new Uint16Array(16);for(let s of t)e[s]++;e[0]=0;let r=new Uint16Array(17);for(let s=1;s<=15;s++)r[s+1]=r[s]+e[s];let n=new Uint16Array(t.length);for(let s=0;s<t.length;s++)t[s]&&(n[r[t[s]]++]=s);return{lengthCounts:e,symbols:n}}var Fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Od(t){let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+(function(r){let n="",s=r.length,i=0;for(;i+2<s;i+=3){let o=r[i]<<16|r[i+1]<<8|r[i+2];n+=Fe[o>>18&63]+Fe[o>>12&63]+Fe[o>>6&63]+Fe[63&o]}let a=s-i;if(a===1){let o=r[i]<<16;n+=Fe[o>>18&63]+Fe[o>>12&63]+"=="}else if(a===2){let o=r[i]<<16|r[i+1]<<8;n+=Fe[o>>18&63]+Fe[o>>12&63]+Fe[o>>6&63]+"="}return n})((function(r){let n=0,s=0,i=0,a=new Uint8Array(1024),o=0,c=0;for(;!c;){c=R(1);let d=R(2);if(d==0)E();else if(d==1)l(kn(Bn),kn(Lh));else{if(d!=2)throw new Error("invalid deflate block type");l(...h())}}return a.subarray(0,o);function f(){if(n>=r.length)throw new Error("unexpected end of deflate data");return r[n++]}function R(d){for(;i<d;)s|=f()<<i,i+=8;let u=s&(1<<d)-1;return s>>>=d,i-=d,u}function E(){s=0,i=0;let d=f()|f()<<8;n+=2,p(o+d);for(let u=0;u<d;u++)a[o++]=f()}function l(d,u){let m=g(d);for(;m!=256;){if(m<256)p(o+1),a[o++]=m;else{let _=m-257,A=Oh[_]+R(Dh[_]),T=g(u),y=Ph[T]+R(xh[T]);p(o+A);let S=o-y;for(let I=0;I<A;I++)a[o++]=a[S+I]}m=g(d)}}function h(){let d=R(5)+257,u=R(5)+1,m=R(4)+4,_=new Uint8Array(19);for(let S=0;S<m;S++)_[Ch[S]]=R(3);let A=kn(_),T=new Uint8Array(d+u),y=0;for(;y<T.length;){let S=g(A);if(S<16)T[y++]=S;else if(S==16){let I=T[y-1],N=R(2)+3;for(;N--;)T[y++]=I}else y+=S==17?R(3)+3:R(7)+11}return[kn(T.subarray(0,d)),kn(T.subarray(d))]}function g(d){let{lengthCounts:u,symbols:m}=d,_=0,A=0,T=0;for(let y=1;y<=15;y++){_|=R(1);let S=u[y];if(_-A<S)return m[T+(_-A)];T+=S,A=A+S<<1,_<<=1}throw new Error("invalid huffman code")}function p(d){if(a.length<d){let u=2*a.length;for(;u<d;)u*=2;let m=new Uint8Array(u);m.set(a.subarray(0,o)),a=m}}})((function(r){let n=(r=String(r).replace(/[^A-Za-z0-9+/=]/g,"")).length,s=[];for(let i=0;i<n;i+=4){let a=Fe.indexOf(r[i])<<18|Fe.indexOf(r[i+1])<<12|(63&Fe.indexOf(r[i+2]))<<6|63&Fe.indexOf(r[i+3]);s.push(a>>16&255),r[i+2]!=="="&&s.push(a>>8&255),r[i+3]!=="="&&s.push(255&a)}return new Uint8Array(s)})("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")))),e)})}ue();Ge();br();Zs();ta();var Ci="deflate",Pi="deflate-raw",Dd="deflate64-raw",xi="gzip";var Fh="Z_MEM_ERROR",Pd=[Ci,Pi,xi],xd=[Ci,Pi,xi,Dd],le,Yr,wt,zn,Cd;function Ld(t){if(le=t,{malloc:Yr,free:wt,memory:zn}=le,typeof Yr!="function"||typeof wt!="function"||!zn)throw le=Yr=wt=zn=null,new Error("Invalid WASM module")}function Fd(t){Cd=t}function Hr(t,e){return e===-4&&(t.code=Fh),t}function Ud(t,e,r={}){if(!(t?Pd:xd).includes(e))throw new TypeError("Unsupported format: "+e);if(!le){let T=new Error("WASM module not loaded");throw T.cause=Cd,T}let n=typeof r.level=="number"?r.level:-1,s=typeof r.outBuffer=="number"?r.outBuffer:64*1024,i=typeof r.inBufferSize=="number"?r.inBufferSize:64*1024,a={out:0,in:0,inBufferSize:0,streamHandle:0,streamEnded:!1},o,c,f,R,E=!0,l=!1;p();let h=new ReadableStream({start(T){o=T},pull(){E=!1,_()},cancel(T){l=!0,R=T,A(a),c.error(T),_()}},{highWaterMark:0}),g=new WritableStream({start(T){c=T},async write(T){if(E&&await new Promise(y=>f=y),l)throw R;try{d(T)}catch(y){throw A(a),o.error(y),y}},close(){if(l)return;try{u()}catch(y){throw A(a),o.error(y),y}let T=A(a);if(T!==0){let y=Hr(new Error("end error:"+T),T);throw o.error(y),y}o.close()},abort(T){A(a),o.error(T)}},{highWaterMark:1});return{readable:h,writable:g};function p(){try{let T;if(a.out=Yr(s),a.in=Yr(i),a.inBufferSize=i,!a.out||!a.in)throw Hr(new Error("allocation failed"),-4);if(t?(a._process=le.deflate_process,a._last_consumed=le.deflate_last_consumed,a._end=le.deflate_end,a.streamHandle=le.deflate_new(),e===xi?T=le.deflate_init_gzip(a.streamHandle,n):e===Pi?T=le.deflate_init_raw(a.streamHandle,n):T=le.deflate_init(a.streamHandle,n)):e===Dd?(a._process=le.inflate9_process,a._last_consumed=le.inflate9_last_consumed,a._end=le.inflate9_end,a.streamHandle=le.inflate9_new(),T=le.inflate9_init_raw(a.streamHandle)):(a._process=le.inflate_process,a._last_consumed=le.inflate_last_consumed,a._end=le.inflate_end,a.streamHandle=le.inflate_new(),e===Pi?T=le.inflate_init_raw(a.streamHandle):e===xi?T=le.inflate_init_gzip(a.streamHandle):T=le.inflate_init(a.streamHandle)),T!==0)throw Hr(new Error("init failed:"+T),T)}catch(T){throw A(a),T}}function d(T){let y=new Uint8Array(zn.buffer),S=a._process,I=a._last_consumed,N=a.out,F=0;for(;F<T.length;){if(a.streamEnded)throw new Error("trailing data after the end of the stream");let H=Math.min(T.length-F,32*1024);if((!a.in||a.inBufferSize<H)&&(a.in&&wt&&(wt(a.in),a.in=0),a.in=Yr(H),a.inBufferSize=H,!a.in))throw Hr(new Error("allocation failed"),-4);y.set(T.subarray(F,F+H),a.in);let q=S(a.streamHandle,a.in,H,N,s,0),$=q>>24&255,Z=$&128?$-256:$;if(Z<0)throw Hr(new Error("process error:"+Z),Z);let W=q&16777215;W&&m(y.slice(N,N+W));let U=I(a.streamHandle);if($===1)a.streamEnded=!0;else if(U===0&&W===0)break;F+=U}}function u(){let T=new Uint8Array(zn.buffer),y=a._process,S=a.out;for(;;){let I=y(a.streamHandle,0,0,S,s,4),N=I>>24&255,F=N&128?N-256:N;if(F<0)throw Hr(new Error("process error:"+F),F);let H=I&16777215;if(H&&m(T.slice(S,S+H)),N===1||H===0)break}}function m(T){E=!0,o.enqueue(T)}function _(){if(f){let T=f;f=null,T()}}function A(T){let y=0;return T.streamHandle&&T._end&&(y=T._end(T.streamHandle)),T.streamHandle=0,T.in&&wt&&wt(T.in),T.in=0,T.out&&wt&&wt(T.out),T.out=0,y}}var ur=class{constructor(e=Ci,r){return Ud(!0,e,r)}},dr=class{constructor(e=Ci,r){return Ud(!1,e,r)}};ur.requiresModule=!0;dr.requiresModule=!0;ur.supportedFormats=Pd;dr.supportedFormats=xd;ue();Qi();var rc=64*1024,Uh=20,Md,_t;function vd(t){typeof t.aes_hmac_new==K&&(Md=t,_t=0)}function sc(t,e){let r=Md,n=r?Mh(r,t,e):0;if(!n)return on(t,e);let s=_t;return{process(i,a){for(let o=0;o<i.length;o+=rc){let c=i.subarray(o,o+rc),f=nc(r);f.set(c,s),r.aes_hmac_process(n,s,c.length,a?1:0),c.set(f.subarray(s,s+c.length))}},digest(){return r.aes_hmac_end(n,s),n=0,nc(r).slice(s,s+Uh)},dispose(){n&&(r.aes_hmac_end(n,0),n=0)}}}function Mh(t,e,r){_t||(_t=t.malloc(rc));let n=_t?t.aes_hmac_new():0;if(n){let s=nc(t);if(s.set(e,_t),s.set(r,_t+e.length),t.aes_hmac_init(n,_t,e.length,_t+e.length,r.length))return t.aes_hmac_end(n,0),0}return n}function nc(t){return new Uint8Array(t.memory.buffer)}var kd=!1;async function Bd(t,{baseURI:e}){if(!kd)try{await vh(t,e),kd=!0}catch(r){throw Fd(r),r}}async function vh(t,e){let r,n;try{try{n=new URL(t,e)}catch{}r=await(await fetch(n)).arrayBuffer()}catch(i){if(t.startsWith("data:application/wasm;base64,"))r=kh(t);else throw i}let s=await WebAssembly.instantiate(r);Ld(s.instance.exports),vd(s.instance.exports)}function kh(t){let e=t.split(",")[1],r=atob(e),n=r.length,s=new Uint8Array(n);for(let i=0;i<n;++i)s[i]=r.charCodeAt(i);return s.buffer}var Li;tf(sc);Lf({initModule:t=>{if(!Li){let{wasmURI:e}=t;typeof e==K&&(e=e()),Li=Bd(e,t).catch(r=>{throw Li=null,r})}return Li}});Pt({CompressionStreamFallback:ur,DecompressionStreamFallback:dr});Od(Pt);hn();_i();ei();wr();br();ue();xt();Kt();Zt();var rT=new Uint8Array(0);Hl(Pt);var ac=class{constructor(e,r){this.descriptor=e;this.size=r}async fetchRange(e){let r=await fetch(this.descriptor.url,{headers:{Range:`bytes=${e.start}-${e.end}`},cache:"no-store"});if(r.status!==206&&r.status!==200)throw new ie("network",`Range request failed with ${r.status}`);return r}async read(e){let r=await this.fetchRange(e);if(r.status!==200)return new Uint8Array(await r.arrayBuffer());if(!r.body)throw new ie("network","Range response had no body");return new Uint8Array(await new Response(Wt(r.body,e)).arrayBuffer())}async stream(e){let r=await this.fetchRange(e);if(!r.body)throw new ie("network","Range response had no body");return r.status===200?Wt(r.body,e):r.body}},oc=class{constructor(e,r,n){this.descriptor=e;this.size=r;this.store=new Ye(n)}read(e){return this.store.readRangeBytes(it,e)}async stream(e){return this.store.readRange(it,e)}},cc=class{constructor(e,r){this.descriptor=e;this.blob=r}get size(){return this.blob.size}async read(e){let r=this.blob.slice(e.start,e.end+1);return new Uint8Array(await r.arrayBuffer())}async stream(e){return this.blob.slice(e.start,e.end+1).stream()}};async function lc(t,e,r,n={}){switch(e.type){case"range-http":return new ac(e,e.size);case"chunked":{let s=await new Ye(t).getArchiveMeta();if(!s||!s.complete&&!n.partial)throw new ie("bad-archive","Archive has not finished downloading");return new oc(e,s.size??s.available,t)}case"file":{if(!r)throw new ie("bad-archive","The picked file is no longer available");return new cc(e,r)}}}function Hh(t,e){let r=e.end-e.start+1,n=Math.ceil(r/4194304),s=new Map,i=0,a=0,o=!1,c=f=>{let R=e.start+f*4194304,E=t.read({start:R,end:Math.min(R+4194304-1,e.end)});E.catch(()=>{}),s.set(f,E)};return new ReadableStream({async pull(f){if(a>=n){f.close();return}for(;!o&&i<n&&s.size<4;)c(i++);let R=await s.get(a);s.delete(a),a+=1,f.enqueue(R)},cancel(){o=!0,s.clear()}},{highWaterMark:0})}var Fi=class extends pt{constructor(r){super(r);this.handle=r;this.size=r.size}async readUint8Array(r,n){if(n===0)return new Uint8Array(0);let s=Math.min(r+n,this.size)-1;return s<r?new Uint8Array(0):this.handle.read({start:r,end:s})}createReadable(r={}){let n=r.offset??0,s=Math.min(n+(r.size??this.size-n),this.size)-1;if(s<n)return new Blob([]).stream();let i=this.handle;if(i.descriptor.type==="range-http"&&s-n+1>=8388608)return Hh(i,{start:n,end:s});let a=null;return new ReadableStream({async pull(o){a??=(await i.stream({start:n,end:s})).getReader();let{done:c,value:f}=await a.read();c?o.close():o.enqueue(f)},async cancel(o){await a?.cancel(o)}},{highWaterMark:0})}};var fc=0,Wd=8,Wh=67324752,zd=30,Hn=class t{constructor(e,r,n,s,i,a=!1){this.handle=r;this.parsedTo=0;this.forwardDone=!1;this.forwardStopped=!1;this.absorbed=0;this.lastTopFolder=null;this.fallbacks=[];this.librariesByName=null;this.dataRanges=new Map;this.pkgId=e,this.entries=n,this.rejected=s,this.manifest=i,this.partial=a}get title(){return this.manifest.title}static async open(e,r,n={}){let s;try{s=await new kt(new Fi(r)).getEntries({filenameValidation:"tolerant"})}catch(E){throw new ie("bad-archive","Could not read the archive index",{cause:E})}let{index:i,rejected:a}=Wc(s),o=new Map;for(let[E,l]of i)o.set(E,{name:E,size:l.uncompressedSize,compressedSize:l.compressedSize,method:l.compressionMethod,strategy:Gd(E,l),zip:l});if(!o.has("h5p.json"))throw new ie("bad-archive","Archive has no h5p.json, so it is not an H5P package");let c=new t(e,r,o,a,{}),f=await Yd(c),R=new t(e,r,o,a,f);return n.requireLibraries!==!1&&R.assertLibrariesPresent(),R}static async fromForwardIndex(e,r,n){let s=new t(e,r,new Map,[],{},!0);return await s.absorb(n),s}async absorb(e){if(!this.partial)return!1;let r=e.entries.slice(this.absorbed);this.absorbed=e.entries.length,this.parsedTo=e.parsedTo,this.forwardDone=e.done,this.forwardStopped=e.stopped!==null&&!e.done;let n=!1;for(let s of r){if(s.directory)continue;let i=ts(s.name);if(i===null||this.entries.has(i)){this.rejected.push(s.name);continue}this.entries.set(i,Gh(i,s)),this.lastTopFolder=Hd(i),i==="h5p.json"&&(n=!0)}return r.length>0&&(this.librariesByName=null),n&&(this.manifest=await Yd(this)),r.length>0}bootReady(){if(!this.partial)return!0;if(this.forwardStopped||!this.entries.has("h5p.json"))return!1;let e=this.manifest.preloadedDependencies;if(!Array.isArray(e)||e.length===0)return!1;let r=this.entryNames(),n=this.availableLibraries();return e.every(s=>{let i=Ui(s).find(a=>r.has(`${a}/library.json`))??dc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)});return i!==void 0&&this.folderComplete(i)})}provablyAbsent(e){if(!this.partial||this.forwardDone)return!0;let r=Hd(e);if(r===null)return!1;if(this.hasFolder(r))return this.folderComplete(r);let n=uc(r);return n!==null&&this.hasFolder(n.machineName)&&this.folderComplete(n.machineName)}folderComplete(e){return this.forwardDone||this.lastTopFolder!==e}hasFolder(e){let r=`${e}/`;for(let n of this.entries.keys())if(n.startsWith(r))return!0;return!1}use(e){e===this||this.fallbacks.includes(e)||(this.fallbacks.push(e),this.librariesByName=null)}get(e){return this.locate(e)??this.locateCompatible(e)}locate(e){let r=this.entries.get(e);if(r)return{reader:this,entry:r};for(let n of this.fallbacks){let s=n.locate(e);if(s)return s}}locateCompatible(e){let r=e.indexOf("/");if(r<0)return;let n=uc(e.slice(0,r));if(!n)return;let s=dc(this.availableLibraries(),n);if(!(!s||s===n.folder))return this.locate(`${s}/${e.slice(r+1)}`)}availableLibraries(){if(this.librariesByName)return this.librariesByName;let e=Vd(this.entries.keys());for(let r of this.fallbacks)for(let[n,s]of r.availableLibraries()){let i=e.get(n);i?i.push(...s):e.set(n,[...s])}return this.librariesByName=e,e}entryNames(){let e=new Set(this.entries.keys());for(let r of this.fallbacks)for(let n of r.entryNames())e.add(n);return e}missingLibraries(){return jh(this.entryNames(),this.manifest)}get hasFallbacks(){return this.fallbacks.length>0}mergedManifest(){let e=this.entryNames(),r=new Map,n=s=>{r.has(s.machineName)||Ui(s).some(i=>e.has(`${i}/library.json`))&&r.set(s.machineName,s)};for(let s of this.manifest.preloadedDependencies??[])n(s);for(let s of this.fallbacks)for(let i of s.manifest.preloadedDependencies??[])n(i);return{...this.manifest,preloadedDependencies:[...r.values()]}}assertLibrariesPresent(){let e=this.missingLibraries();if(e)throw new ie("bad-archive",Zh(e),{missingLibraries:e})}prefetchable(){return[...this.entries.values()].filter(e=>e.strategy.kind==="chunked").map(e=>({entry:e.name,size:e.size}))}inflate(e){if(!e.zip)return this.inflateDirect(e);if(e.zip.encrypted)throw new ie("bad-archive",`${e.name} is encrypted`);let r=e.zip.getData;if(!r)throw new ie("bad-archive",`${e.name} has no readable data`);let n=new TransformStream;return r.call(e.zip,n.writable).catch(s=>{if(!n.writable.locked)try{n.writable.abort(s)}catch{}}),n.readable}dataRange(e){let r=this.dataRanges.get(e.name);if(r)return r;let n=this.readDataRange(e);return this.dataRanges.set(e.name,n),n.catch(()=>this.dataRanges.delete(e.name)),n}inflateDirect(e){if(e.encrypted)throw new ie("bad-archive",`${e.name} is encrypted`);if(e.method!==fc&&e.method!==Wd)throw new ie("bad-archive",`${e.name} uses compression method ${e.method}`);if(e.compressedSize===0)return new Blob([]).stream();let r=Vh(()=>this.sliceStream(e,{start:0,end:e.compressedSize-1}));if(e.method===fc)return r;let n=new DecompressionStream("deflate-raw");return r.pipeThrough(n)}async readDataRange(e){if(e.dataStart!==void 0)return{start:e.dataStart,end:e.dataStart+e.compressedSize-1};if(!e.zip)throw new ie("bad-archive",`${e.name} has no known location`);let r=await this.handle.read({start:e.zip.offset,end:e.zip.offset+zd-1}),n=new DataView(r.buffer,r.byteOffset,r.byteLength);if(n.getUint32(0,!0)!==Wh)throw new ie("bad-archive",`${e.name} has a malformed local header`);let s=n.getUint16(26,!0),i=n.getUint16(28,!0),a=e.zip.offset+zd+s+i;return{start:a,end:a+e.compressedSize-1}}async sliceStream(e,r){let n=await this.dataRange(e);return this.handle.stream({start:n.start+r.start,end:n.start+r.end})}};function Gd(t,e){return Vc(t)?{kind:"inline"}:e.uncompressedSize<=16777216?{kind:"inline"}:e.compressionMethod===fc?{kind:"slice"}:e.compressionMethod===Wd?{kind:"chunked"}:{kind:"inline"}}function Gh(t,e){return{name:t,size:e.uncompressedSize,compressedSize:e.compressedSize,method:e.method,strategy:Gd(t,{uncompressedSize:e.uncompressedSize,compressionMethod:e.method}),dataStart:e.dataStart,encrypted:e.encrypted}}function Hd(t){let e=t.indexOf("/");return e<0?null:t.slice(0,e)}function Vh(t){let e=null;return new ReadableStream({async pull(r){e??=(await t()).getReader();let{done:n,value:s}=await e.read();n?r.close():r.enqueue(s)},async cancel(r){await e?.cancel(r)}},{highWaterMark:0})}async function Yd(t){let{entry:e}=t.get("h5p.json");try{let r=await new Response(t.inflate(e)).json();if(!r||typeof r!="object")throw new Error("not an object");return r}catch(r){throw new ie("bad-archive","h5p.json is not readable JSON",{cause:r})}}function Ui(t){return[`${t.machineName}-${t.majorVersion}.${t.minorVersion}`,t.machineName]}function uc(t){let e=/^(.+)-(\d+)\.(\d+)$/.exec(t);return e?{machineName:e[1],major:Number(e[2]),minor:Number(e[3]),folder:t}:null}function Vd(t){let e=new Map;for(let r of t){let n=r.indexOf("/");if(n<0||r.slice(n+1)!=="library.json")continue;let s=uc(r.slice(0,n));if(!s)continue;let i=e.get(s.machineName);i?i.push(s):e.set(s.machineName,[s])}return e}function dc(t,e){return(t.get(e.machineName)??[]).filter(n=>n.major===e.major&&n.minor>=e.minor).sort((n,s)=>n.minor-s.minor)[0]?.folder}function Xh(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r))return[];let n=Vd(t);return r.filter(s=>Ui(s).some(i=>t.has(`${i}/library.json`))?!1:!dc(n,{machineName:s.machineName,major:Number(s.majorVersion),minor:Number(s.minorVersion)}))}function jh(t,e){let r=e.preloadedDependencies;if(!Array.isArray(r)||r.length===0)return{mainLibrary:e.mainLibrary,folders:[],all:!0};let n=Xh(t,e);return n.length===0?null:{mainLibrary:e.mainLibrary,folders:n.map(s=>Ui(s)[0]),all:n.length===r.length}}function Zh(t){if(t.folders.length===0)return"h5p.json lists no preloadedDependencies, so there is nothing to run";let e=t.folders.join(", ");return t.all?`This package contains no libraries, only content. Exports from h5p.com and h5p.org often leave them out because the site they came from already has them. Set the "libraries" attribute to fetch them, or re-export with them included. Missing: ${e}`:`This package is missing ${t.folders.length} of its libraries: ${e}. Set the "libraries" attribute to fetch them, or re-export with them included.`}var pc={script:["cdn.jsdelivr.net","cdnjs.cloudflare.com","ajax.googleapis.com","www.youtube.com","player.vimeo.com","developers.panopto.com"],style:["fonts.googleapis.com"],font:["fonts.gstatic.com","fonts.googleapis.com"]},Kh=/^(?:(?:https?|wss?):\/\/)?(?:\*\.)?[a-z0-9.-]+(?::\d+)?$/i;function qh(t){return t?[...new Set(t.map(e=>e.trim()).filter(e=>Kh.test(e)))]:[]}function Ec(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Jh(t,e){let r=new Set;for(let n of Object.values(t))try{let s=new URL(n,e).origin;s!==new URL(e).origin&&r.add(s)}catch{}return[...r]}function Qh(t){let e=Jh(t.assets,t.virtualRoot),r=qh(t.allowOrigins),n=(s,...i)=>`${s} ${i.filter(Boolean).join(" ")}`;return["default-src 'self'",n("script-src","'self'",...e,...pc.script,...r,`'nonce-${t.nonce}'`,"'unsafe-eval'"),n("style-src","'self'",...e,...pc.style,...r,"'unsafe-inline'"),n("font-src","'self'",...e,...pc.font,...r,"data:"),"img-src * data: blob:","media-src * data: blob:","frame-src *",n("connect-src","'self'",...r),"worker-src 'self' blob:","object-src 'none'","base-uri 'self'","form-action 'none'"].join("; ")}function Xd(t){let{pkgId:e,virtualRoot:r,assets:n,nonce:s}=t,i=Qh(t),a=JSON.stringify({pkgId:e,h5pJsonPath:r,frameJs:n.frameJs,frameCss:n.frameCss});return`<!DOCTYPE html>
3
+ <html lang="en" class="h5p-iframe">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta http-equiv="Content-Security-Policy" content="${Ec(i)}">
8
+ <title>${Ec(t.title??"H5P content")}</title>
9
+ <style nonce="${s}">
10
+ html, body { background: transparent; }
11
+ body { overflow-x: hidden; }
12
+ #h5p-root { width: 100%; }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div id="h5p-root"></div>
17
+ <script nonce="${s}" src="${Ec(n.mainJs)}" charset="UTF-8"><\/script>
18
+ <script nonce="${s}">
19
+ ${$h(a)}
20
+ <\/script>
21
+ </body>
22
+ </html>`}function $h(t){return`(function () {
23
+ var config = ${t};
24
+ // To this document's own origin, never '*'. The element's page is same-origin by construction
25
+ // (the worker script must be, and this frame lives under its scope), so nothing legitimate is
26
+ // lost \u2014 but package ids are derived from the URL and therefore guessable, and a third-party
27
+ // page that framed this URL directly would otherwise be handed every xAPI statement.
28
+ var post = function (message) {
29
+ try { parent.postMessage(Object.assign({ channel: 'h5p-player', pkgId: config.pkgId }, message), location.origin); }
30
+ catch (error) { /* a detached parent is not worth reporting */ }
31
+ };
32
+
33
+ // The worker cannot start a long job itself, so it asks this client and the element obliges.
34
+ if (navigator.serviceWorker) {
35
+ navigator.serviceWorker.addEventListener('message', function (event) {
36
+ var data = event.data;
37
+ if (data && (data.type === 'need-job' || data.type === 'need-file')) {
38
+ post({ type: 'relay', payload: data });
39
+ }
40
+ });
41
+ }
42
+
43
+ var root = document.getElementById('h5p-root');
44
+
45
+ var options = {
46
+ h5pJsonPath: config.h5pJsonPath,
47
+ frameJs: config.frameJs,
48
+ frameCss: config.frameCss,
49
+ // Div embedding, not the default iframe: with 'iframe' H5P core writes the content into an
50
+ // inner about:blank frame, and whether such a child inherits this document's Service Worker
51
+ // controller differs between browsers. With 'div' this document is the H5P document.
52
+ embedType: 'div',
53
+ frame: false,
54
+ copyright: false,
55
+ export: false,
56
+ icon: false,
57
+ fullScreen: true,
58
+ // No result endpoints exist here. xAPI leaves as events; nothing is posted or stored.
59
+ postUserStatistics: false,
60
+ saveFreq: false
61
+ };
62
+
63
+ new window.H5PStandalone.H5P(root, options)
64
+ .then(function () {
65
+ var dispatcher = window.H5P && window.H5P.externalDispatcher;
66
+ if (dispatcher) {
67
+ dispatcher.on('xAPI', function (event) {
68
+ var statement = event && event.data ? event.data.statement : undefined;
69
+ var verb = statement && statement.verb ? statement.verb.id : undefined;
70
+ post({ type: 'xapi', statement: statement, verb: verb });
71
+ if (verb === 'http://adlnet.gov/expapi/verbs/completed') {
72
+ post({ type: 'finished', statement: statement });
73
+ }
74
+ });
75
+ }
76
+ // Sizing is H5P's own: it talks the resizer protocol to the element over postMessage,
77
+ // driven by the resize events content types raise when they actually change. Watching the
78
+ // DOM from here would miss those and fire on changes that are not resizes.
79
+ post({ type: 'ready' });
80
+ })
81
+ .catch(function (error) {
82
+ post({ type: 'error', message: String((error && error.message) || error) });
83
+ });
84
+
85
+ window.addEventListener('error', function (event) {
86
+ post({ type: 'error', message: String(event.message || 'Script error in H5P content') });
87
+ });
88
+ })();`}function jd(){let t=crypto.getRandomValues(new Uint8Array(16));return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function Kd(t){let e=t.endsWith("/")?t:`${t}/`,r=e.endsWith("h5p/")?e:`${e}h5p/`;return{base:r,virtual:`${r}virtual/`,frame:`${r}frame/`,ping:`${r}virtual/_ping`}}var Zd=/^[0-9a-f]{32}$/;function qd(t,e){if(e===t.ping)return{kind:"ping"};if(e.startsWith(t.frame)){let r=e.slice(t.frame.length).split(/[/?#]/,1)[0];return Zd.test(r)?{kind:"frame",pkgId:r}:{kind:"none"}}if(e.startsWith(t.virtual)){let r=e.slice(t.virtual.length).split(/[?#]/,1)[0],n=r.indexOf("/");if(n<0)return{kind:"none"};let s=r.slice(0,n);return Zd.test(s)?{kind:"entry",pkgId:s,path:r.slice(n+1)}:{kind:"none"}}return{kind:"none"}}function jT(t,e={}){let r=Kd(e.scope??t.registration.scope),n=new gc(t,r);t.addEventListener("install",()=>{t.skipWaiting()}),t.addEventListener("activate",s=>{s.waitUntil((async()=>{await Fc(),await t.clients.claim()})())}),t.addEventListener("message",s=>{s.waitUntil(n.handleMessage(s))}),t.addEventListener("fetch",s=>{let i=qd(r,s.request.url);i.kind!=="none"&&s.respondWith(n.handleFetch(s,i))})}var gc=class{constructor(e,r){this.worker=e;this.routes=r;this.readers=new Map;this.files=new Map;this.pendingFiles=new Map;this.requestedJobs=new Set;this.inflating=new Map;Hc(n=>{this.readers.delete(n)})}async handleMessage(e){let r=e.data;if(!r||typeof r.type!="string")return;let n=s=>{let i=e.ports[0];i&&i.postMessage(s)};try{switch(r.type){case"ping":n({ok:!0,type:"pong",version:ki});return;case"register":await $n(r.record),this.readers.delete(r.record.pkgId),n({ok:!0,type:"ack"});return;case"index":{let s=await this.refresh(r.pkgId,await this.reader(r.pkgId));s.partial||await es(r.pkgId,{status:"indexed",lastPlayed:Date.now()}),n({ok:!0,type:"indexed",pkgId:r.pkgId,entryCount:s.entries.size,title:s.title,prefetch:s.prefetchable(),partial:s.partial||void 0,ready:s.partial?s.bootReady():void 0});return}case"attach-libraries":{await es(r.pkgId,{libraryPkgId:r.libraryPkgId}),this.readers.delete(r.pkgId),n({ok:!0,type:"ack"});return}case"file":{this.files.set(r.pkgId,r.file);let s=this.pendingFiles.get(r.pkgId);s&&(clearTimeout(s.timer),s.resolve(r.file),this.pendingFiles.delete(r.pkgId)),n({ok:!0,type:"ack"});return}}}catch(s){n(tg(s))}}async handleFetch(e,r){try{switch(r.kind){case"ping":return $d({version:ki});case"frame":return await this.serveFrame(r.pkgId);case"entry":return await this.serveEntry(e,r.pkgId,r.path);default:return new Response(null,{status:404})}}catch(n){return n instanceof Mi?pr(n.message,404):n instanceof ie&&n.code==="bad-archive"?pr(n.message,422):n instanceof Gt?pr(n.message,507):pr(n instanceof Error?n.message:"Internal player error",500)}}async serveFrame(e){let r=await qr(e);if(!r)return pr("Unknown package",404);await kc(e);let n=jd(),s=Xd({pkgId:e,virtualRoot:`${this.routes.virtual}${e}`,assets:r.frameAssets,nonce:n,title:r.title,allowOrigins:r.allowOrigins});return new Response(s,{status:200,headers:{"content-type":"text/html; charset=utf-8","cache-control":"no-store"}})}async serveEntry(e,r,n){let s=Yc(n);if(s===null)return pr("Bad entry path",400);let i=await this.reader(r),a=i.get(s);if(!a&&i.partial){let c=await this.awaitEntry(r,i,s);if(c==="stalled")return Qd(`The download has stalled before ${s}`);i=c.reader,a=c.located}if(!a)return new Response(null,{status:404});if(s==="h5p.json"&&i.hasFallbacks)return $d(i.mergedManifest());let o=e.request.headers.get("range");switch(a.entry.strategy.kind){case"inline":return this.serveInline(a,o);case"slice":return this.serveSlice(a,o);case"chunked":return this.serveChunked(e,a,o)}}async serveInline({reader:e,entry:r},n){let s=new Ye(e.pkgId),i=await s.getWhole(r.name);if(i||(await this.cacheInline(s,e,r),i=await s.getWhole(r.name)),!i?.body)return pr("Entry could not be read",500);let a=rs(n,r.size);return a==="unsatisfiable"?mc(r.size):a==="none"?new Response(i.body,{status:200,headers:Wr(r,{length:r.size})}):new Response(Wt(i.body,a),{status:206,headers:Wr(r,{length:a.end-a.start+1,contentRange:ns(a,r.size)})})}cacheInline(e,r,n){let s=`${r.pkgId}\0${n.name}`,i=this.inflating.get(s);if(i)return i;let a=e.putWhole(n.name,()=>r.inflate(n),Yi(n.name),n.size).finally(()=>this.inflating.delete(s));return this.inflating.set(s,a),a}async serveSlice({reader:e,entry:r},n){let s=rs(n,r.size);if(s==="unsatisfiable")return mc(r.size);let i=s==="none"?{start:0,end:r.size-1}:s,a=await e.sliceStream(r,i);return s==="none"?new Response(a,{status:200,headers:Wr(r,{length:r.size})}):new Response(a,{status:206,headers:Wr(r,{length:i.end-i.start+1,contentRange:ns(i,r.size)})})}async serveChunked(e,{reader:r,entry:n},s){let i=r.pkgId,a=new Ye(i),o=()=>this.requestJob(e,i,n.name),c=async l=>await Jd(a,n.name,l,{onStall:o})!==null,f=await a.getMeta(n.name);if((!f||!f.complete&&f.available===0)&&(await o(),f=await Jd(a,n.name,1,{onStall:o}),!f))return Qd("Extraction has not produced any bytes yet");let R=rs(s,n.size);if(R==="unsatisfiable")return mc(n.size);if(R==="none")return new Response(a.readRange(n.name,{start:0,end:n.size-1},c),{status:200,headers:Wr(n,{length:n.size})});let E=R.start<f.available?{start:R.start,end:Math.min(R.end,f.available-1)}:R;return new Response(a.readRange(n.name,E,c),{status:206,headers:Wr(n,{length:E.end-E.start+1,contentRange:ns(E,n.size)})})}async awaitEntry(e,r,n){let s=new Ye(e),i=null,a=qn(e,Hi,()=>i?.()),o=qn(e,it,()=>i?.()),c=-1,f=Date.now();try{for(;;){let R=await this.refresh(e,r),E=R.get(n);if(E||!R.partial||R.provablyAbsent(n))return{reader:R,located:E};let l=(await s.getArchiveMeta())?.available??0;if(l!==c)c=l,f=Date.now();else if(Date.now()-f>=15e3)return"stalled";await new Promise(h=>{let g=setTimeout(h,500);i=()=>{clearTimeout(g),h()}}),i=null,r=R}}finally{a(),o()}}async requestJob(e,r,n){let s=`${r}\0${n}`;this.requestedJobs.has(s)||(this.requestedJobs.add(s),setTimeout(()=>this.requestedJobs.delete(s),2e3),await this.postToClient(e.clientId,{type:"need-job",pkgId:r,entry:n}))}async postToClient(e,r){let n=e?await this.worker.clients.get(e):void 0;if(n){n.postMessage(r);return}let s=await this.worker.clients.matchAll({type:"window"});for(let i of s)i.postMessage(r)}reader(e){let r=this.readers.get(e);if(r)return r;let n=this.openReader(e);return this.readers.set(e,n),n.catch(()=>this.readers.delete(e)),n}async openReader(e){let r=await qr(e);if(!r)throw new Mi(e);let n=r.source.type==="file"?await this.fileFor(e):void 0;if(r.source.type==="chunked"){let c=new Ye(e);if(!(await c.getArchiveMeta())?.complete){let R=await c.getForwardIndex()??{entries:[],parsedTo:0,done:!1,stopped:null},E=await lc(e,r.source,n,{partial:!0}),l=await Hn.fromForwardIndex(e,E,R);return r.libraryPkgId&&l.use(await this.reader(r.libraryPkgId)),l}}let s=await lc(e,r.source,n),i=r.role!=="libraries"&&!r.libraryPkgId,a=await Hn.open(e,s,{requireLibraries:i});r.libraryPkgId&&(a.use(await this.reader(r.libraryPkgId)),a.assertLibrariesPresent());let{title:o}=a;return o&&o!==r.title&&await es(e,{title:o}),a}async refresh(e,r){if(!r.partial)return r;let n=new Ye(e);if((await n.getArchiveMeta())?.complete)return this.readers.delete(e),this.reader(e);let i=await n.getForwardIndex();return i&&await r.absorb(i),r}async fileFor(e){let r=this.files.get(e);if(r)return r;let n=this.pendingFiles.get(e);if(n)return n.promise;let s,i,a=new Promise((c,f)=>{s=c,i=f}),o={promise:a,resolve:s,timer:setTimeout(()=>{this.pendingFiles.get(e)===o&&this.pendingFiles.delete(e),i(new ie("bad-archive","The picked file is no longer available"))},15e3)};return this.pendingFiles.set(e,o),await this.postToClient("",{type:"need-file",pkgId:e}),a}};async function Jd(t,e,r,n={}){let s=n.stallMs??15e3,i=-1,a=Date.now(),o=!1,c=null,f=qn(t.pkgId,e,()=>c?.());try{for(;;){let R=await t.getMeta(e);if(R&&(R.available>=r||R.complete))return R;let E=R?.available??0;if(E!==i)i=E,a=Date.now(),o=!1;else if(Date.now()-a>=s){if(o||!n.onStall)return null;await n.onStall(),o=!0,a=Date.now()}await new Promise(l=>{let h=setTimeout(l,500);c=()=>{clearTimeout(h),l()}}),c=null}}finally{f()}}function Wr(t,e){let r=new Headers({"content-type":Yi(t.name),"content-length":String(e.length),"accept-ranges":"bytes","cache-control":"no-store"});return e.contentRange&&r.set("content-range",e.contentRange),r}function mc(t){return new Response(null,{status:416,headers:{"content-range":`bytes */${t}`,"accept-ranges":"bytes"}})}function Qd(t){return new Response(t,{status:503,headers:{"retry-after":"1","content-type":"text/plain; charset=utf-8"}})}function $d(t){return new Response(JSON.stringify(t),{headers:{"content-type":"application/json; charset=utf-8","cache-control":"no-store"}})}function pr(t,e){return new Response(t,{status:e,headers:{"content-type":"text/plain; charset=utf-8"}})}var Mi=class extends ie{constructor(e){super("bad-archive",`Package ${e} is not registered`),this.name="UnknownPackageError"}};function tg(t){return t instanceof ie?{ok:!1,code:t.code,message:t.message,missingLibraries:t.missingLibraries}:t instanceof Gt?{ok:!1,code:"quota",message:t.message}:{ok:!1,code:"bad-archive",message:t instanceof Error?t.message:String(t)}}export{jT as mountH5P};