@wasm-audio-decoders/flac
Version:
Web Assembly streaming FLAC decoder
85 lines • 68.8 kB
JavaScript
/* Copyright 2021-2025 Ethan Halsall. This file is part of wasm-audio-decoders. https://github.com/eshaz/wasm-audio-decoders */
var t,i;t=this,i=function(t,i){const s=(t,i=4294967295,s=79764919)=>{const e=new Int32Array(256);let r,n,h,o=i;for(r=0;r<256;r++){for(h=r<<24,n=8;n>0;--n)h=2147483648&h?h<<1^s:h<<1;e[r]=h}for(r=0;r<t.length;r++)o=o<<8^e[255&(o>>24^t[r])];return o},e=(t,i=s)=>{const e=t=>new Uint8Array(t.length/2).map(((i,s)=>parseInt(t.substring(2*s,2*(s+1)),16))),r=t=>e(t)[0],n=new Map;[,8364,,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,,381,,,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,,382,376].forEach(((t,i)=>n.set(t,i)));const h=new Uint8Array(t.length);let o,a,l,c=!1,u=0,H=42,d=t.length>13&&"dynEncode"===t.substring(0,9),f=0;d&&(f=11,a=r(t.substring(9,f)),a<=1&&(f+=2,H=r(t.substring(11,f))),1===a&&(f+=8,l=(t=>new DataView(e(t).buffer).getInt32(0,!0))(t.substring(13,f))));const p=256-H;for(let s=f;s<t.length;s++)if(o=t.charCodeAt(s),61!==o||c){if(92===o&&s<t.length-5&&d){const i=t.charCodeAt(s+1);117!==i&&85!==i||(o=parseInt(t.substring(s+2,s+6),16),s+=5)}if(o>255){const t=n.get(o);t&&(o=t+127)}c&&(c=!1,o-=64),h[u++]=o<H&&o>0?o+p:o-H}else c=!0;const y=h.subarray(0,u);if(d&&1===a){const t=i(y);if(t!==l){const i="Decode failed crc32 validation";throw console.error("`simple-yenc`\n",i+"\n","Expected: "+l+"; Got: "+t+"\n","Visit https://github.com/eshaz/simple-yenc for more information"),Error(i)}}return y};function r(){const t=Uint8Array,i=Float32Array;r.t||Object.defineProperties(r,{t:{value:new WeakMap},u:{value(t,i){r.t.set(t,Promise.resolve(i))}},H:{value(t,i){let s=r.t.get(t);return s||(i?s=WebAssembly.compile(e(i)):(i=t.I,s=r.M(i).then((t=>WebAssembly.compile(t)))),r.t.set(t,s)),s}},P:{value(t,s){let e=new i(s),r=0,n=0;for(;r<t.length;)e.set(t[r],n),n+=t[r++].length;return e}},A:{value:(t,i,s,e,r)=>({v:t,channelData:i,samplesDecoded:s,sampleRate:e,bitDepth:r})},J:{value(t,i,s,e,n,h){let o,a,l=[];for(o=0;o<s;o++){const t=[];for(a=0;a<i.length;)t.push(i[a++][o]||[]);l.push(r.P(t,e))}return r.A(t,l,e,n,h)}},M:{value(i){return i=e(i),new Promise((s=>{const e=String.raw`dynEncode012804c7886d()((()>+*§§)§,§§§§)§+§§§)§+.-()(*)-+)(.7*§)i¸¸,3§(i¸¸,3/G+.¡*(,(,3+)2å:-),§H(P*DI*H(P*@I++hH)H*r,hH(H(P*<J,i)^*<H,H(P*4U((I-H(H*i0J,^*DH+H-H*I+H,I*4)33H(H*H)^*DH(H+H)^*@H+i§H)i§3æ*).§K(iHI/+§H,iHn,§H+i(H+i(rCJ0I,H*I-+hH,,hH(H-V)(i)J.H.W)(i)c)(H,i)I,H-i*I-4)33i(I.*hH(V)(H+n5(H(i*I-i(I,i)I.+hH,i*J+iHn,hi(I-i*I,+hH,H/H-c)(H,iFn,hi(I,+hH,H0n5-H*V)(J(,hH/H(i)J(H(V)(J(i)c)(H)H(i)H,c)(3H*i*I*H,i)I,4(3(-H(H,W)(H-I-H,i*I,4)3(3(3H,H-I1H+I,H.i)H1V)(J.i(v5(33H.-H(H,i(c)(H,i*I,4)333)-§i*I*+§H*iHn,hi73H,H(i)8(H+J+H)P*(H*V)(J-r,§H)P*,H.i)H+H,i)V)(-H*i*I*H+i)I+H-H.I.H,H-i)I,4)333Ã+)-§iø7i(^*(iü7I,*h+hH+iDn,h*hilI+i)I,+hH+,hH+iô7H,c)(i)H+i´8W)(H,I,H+i*I+4)-+hH(H)8*J-i(p5.*h*h*hH-i')u,hH(P*(J+,hH(P*0J,H(P*,n50H+H,H-b((3H(P*0i)I.4)3H-i¨*n5*H-iÅ*s,hi73H-i)J+V)&+I,H(H+V)æ,8(I.H(H*8*J-i(p51H-i)J+i¸7V)(H(H+iø7V)(8(J/H(P*0J+s,hi73H+H,H.J,I.H(P*(m5(H.H(P*,s5.+hH,m5*H(P*(J.H+H.H+H/U((b((H(H(P*0i)J+^*0H,i)I,4(3(3H(H.^*03H-i¨*o5)33i(73(3(3-H,H+i)c)(H,i*I,H+i)I+4)33i)I-3H-3!2)0§K(i2J,L(H,H(^*(H,H*^*4H,i(^*0H,i(^*DH,j(_*<H,H)P*(^*,H,H+P*(^*8*h*h+hH,i)8(I3i§I**h*h*h*h*h*h*hH,i*8(6+(),03H,j(_*@i*I-H,P*<J.i,J(H,P*8J/s50H,H.i+J0^*<i¦I*H.H,P*4J1J.U(*H.U((J2i')o5/H.U()I.H,H(^*<H0H1U((H.i0J.i§i0i')o5/H/H.H2J*H(J.q50H,P*0J/H*I-H,P*(J0,hH,P*,H-q,hi)I-423+hH*m5+H/H0H(H1U((b((H/i)I/H(i)I(H*i)I*4(3(3H,H.^*<H,H-^*04*3iØ1U((5+i(I(i¨7i1^*(i$6iè1^*(i°7iè6^*(i¬7iÈ6^*(+hH(iÈ*n,hiÈ*I(+hH(i¨,n,hi¨,I(+hH(iØ,n,hiØ,I(+hH(iè,o,hH,i-H(i0c)(H(i*I(4)33iè1i1H,i-iÈ*8)Bi(I(+hH(ido,hH,i-H(i-c)(H(i*I(4)33iÈ6iè6H,i-iF8)BiØ1i)b((41-H,i-H(i/c)(H(i*I(4)3(3(-H,i-H(i1c)(H(i*I(4)3(3(-H,i-H(i0c)(H(i*I(4)3(3(3H,H/^*0H,H(^*<3i(I*4*3H,H,i¸)^*TH,H,iø-^*PH,H,iX^*LH,H,i(^*HH,i-8(I(H,i-8(I-i¥I*H,i,8(I.H(iErH-iEr5)H(i©*I1H-i)I0i(i;H.i,J(i(H(i(rCJ(J*H*i;sCI*i¨1I-H(I/+hH/,hH,i-H-V)(i)H,i+8(c)(H/i)I/H-i*I-H*i)I*4)-H(i)i¨1I/+hH(H*o,hH,i-H/V)(i)i(c)(H/i*I/H(i)I(4)33i¤I*H,iø-H,i¸)H,i-i;8)5+H0H1I2i(I-+hH-H2p,hH,H,iP8*J*i(p5-H*i7u,hH,i-H-i)H*c)(H-i)I-4*3i(I/i+I.i+I(*h*h*hH*i86*(*)3H-m,hi£I*403H-i)H,W)-I/i*I(4)3i3I.i/I(3H2H,H(8(H.J(H-J.p,hi¢I*4.3H,i-H-i)I*+hH(,hH*H/c)(H*i*I*H(i)I(4)-H.I-4+3(3(33H,W)1m,hiI*4,3H,iø-H,i¸)H,i-H18)J(,hi¡I*H(i(p5,H1H,V)ú-H,V)ø-o5,3H,i(H,iXH,i-H1i)H08)J(,hi I*H(i(p5,H0H,V)H,V)o5,3H,H,iPH,iH8+I*4+3(3(3H,i$6i¬78+I*3H*H3m5(3i)I-H*i(r5)3H)H,P*0^*(H+H,P*<^*(H*I-3H,i2L(H-33Á)+(i¨03b+(,(-(.(/(0(1(2(3(5(7(9(;(?(C(G(K(S([(c(k({(((«(Ë(ë((*)(iø03O)()()()(*(*(*(*(+(+(+(+(,(,(,(,(-(-(-(-(i¨13M8(9(:(((0(/(1(.(2(-(3(,(4(+(5(*(6()(7(T7*S7US0U `;r.H(r,e).then((t=>WebAssembly.instantiate(t,{}))).then((({exports:e})=>{const r=new Map(Object.entries(e)),n=r.get("puff"),h=r.get("memory").buffer,o=new t(h),a=new DataView(h);let l=r.get("__heap_base");const c=i.length,u=l;l+=4,a.setInt32(u,c,!0);const H=l;l+=c,o.set(i,H);const d=l;l+=4,a.setInt32(d,o.byteLength-l,!0),n(l,d,H,u),s(o.slice(l,l+a.getInt32(d,!0)))}))}))}}}),Object.defineProperty(this,"I",{enumerable:!0,get:()=>this.U}),this.C=(t,i,s)=>{let e=[],r=0;for(;r<i;)e.push(t.slice(r*s,r++*s+s));return e},this.S=(t,i,s=!0)=>{const e=this.U.O(i.BYTES_PER_ELEMENT*t);return s&&this.F.add(e),{T:e,V:t,L:new i(this.U.$,e,t)}},this.free=()=>{this.F.forEach((t=>{this.U.free(t)})),this.F.clear()},this.D=t=>{const i=[],s=new Uint8Array(this.U.$);for(let e=s[t];0!==e;e=s[++t])i.push(e);return String.fromCharCode.apply(null,i)},this.B=(t,i,s,e,r,n)=>{t.push({message:i,frameLength:s,frameNumber:e,inputBytes:r,outputSamples:n})},this.instantiate=(t,i)=>(i&&r.u(t,i),this.U=new t(r).instantiate(),this.F=new Set,this.U.ready.then((()=>this)))}class n extends((()=>globalThis.Worker||i)()){constructor(t,i,s,e){r.t||new r;let n=r.t.get(s);if(!n){let t,i="text/javascript",h=`'use strict';(${""+((t,i,s)=>{let e,r,n=new Promise((t=>{r=t}));self.onmessage=({data:{id:h,command:o,data:a}})=>{let l,c=n,u={id:h};"init"===o?(Object.defineProperties(t,{W:{value:i},R:{value:s},module:{value:a.module},_:{value:!0}}),e=new t(a.options),r()):"free"===o?e.free():"ready"===o?c=c.then((()=>e.ready)):"reset"===o?c=c.then((()=>e.reset())):(Object.assign(u,e[o](Array.isArray(a)?a.map((t=>new Uint8Array(t))):new Uint8Array(a))),l=u.channelData?u.channelData.map((t=>t.buffer)):[]),c.then((()=>self.postMessage(u,l)))}})})(${s}, ${r}, ${e})`;try{t=void 0!==process.versions.node}catch{}n=t?`data:${i};base64,${Buffer.from(h).toString("base64")}`:URL.createObjectURL(new Blob([h],{type:i})),r.t.set(s,n)}super(n,{name:i}),this.N=Number.MIN_SAFE_INTEGER,this.q=new Map,this.onmessage=({data:t})=>{const{id:i,...s}=t;this.q.get(i)(s),this.q.delete(i)},new e(r).H().then((i=>{this.X("init",{module:i,options:t})}))}async X(t,i){return new Promise((s=>{this.postMessage({command:t,id:this.N,data:i}),this.q.set(this.N++,s)}))}get ready(){return this.X("ready")}async free(){await this.X("free").finally((()=>{this.terminate()}))}async reset(){await this.X("reset")}}const h=(t,i)=>{Object.defineProperty(t,"name",{value:i})},o=Symbol,a=(()=>{const t="left",i="center",s="right";return["","front ","side ","rear "].map((e=>[[t,s],[t,s,i],[t,i,s],[i,t,s],[i]].flatMap((t=>t.map((t=>e+t)).join(", ")))))})(),l="LFE",c="monophonic (mono)",u="stereo",H="surround",d=(t,...i)=>`${[c,u,"linear "+H,"quadraphonic","5.0 "+H,"5.1 "+H,"6.1 "+H,"7.1 "+H][t-1]} (${i.join(", ")})`,f=[c,d(2,a[0][0]),d(3,a[0][2]),d(4,a[1][0],a[3][0]),d(5,a[1][2],a[3][0]),d(6,a[1][2],a[3][0],l),d(7,a[1][2],a[2][0],a[3][4],l),d(8,a[1][2],a[2][0],a[3][0],l)],p=48e3,y=44100,I=32e3,m=24e3,g=22050,b=16e3,M=8e3,w="absoluteGranulePosition",P="bandwidth",A="bitDepth",v="bitrate",J=v+"Maximum",U=v+"Minimum",C=v+"Nominal",x="buffer",S=x+"Fullness",k="codec",O=k+"Frames",F="coupledStreamCount",T="crc",V=T+"16",L=T+"32",$="data",D="description",B="duration",W="emphasis",R="hasOpusPadding",_="header",N="isContinuedPacket",j="isCopyrighted",q="isFirstPage",E="isHome",X="isLastPage",K="isOriginal",Y="isPrivate",Z="isVbr",G="layer",z="length",Q="mode",tt=Q+"Extension",it="mpeg",st=it+"Version",et="numberAACFrames",rt="outputGain",nt="preSkip",ht="profile",ot=o(),at="protection",lt="segments",ct="subarray",ut="version",Ht="vorbis",dt=Ht+"Comments",ft=Ht+"Setup",pt="block",yt=pt+"ingStrategy",It=o(),mt=pt+"Size",gt=pt+"size0",bt=pt+"size1",Mt=o(),wt="channel",Pt=wt+"MappingFamily",At=wt+"MappingTable",vt=wt+"Mode",Jt=o(),Ut=wt+"s",Ct="copyright",xt=Ct+"Id",St=Ct+"IdStart",kt="frame",Ot=kt+"Count",Ft=kt+"Length",Tt="Number",Vt=kt+Tt,Lt=kt+"Padding",$t=kt+"Size",Dt="Rate",Bt="inputSample"+Dt,Wt="page",Rt=Wt+"Checksum",_t=o(),Nt=Wt+"SegmentTable",jt=Wt+"Sequence"+Tt,qt="sample",Et=qt+Tt,Xt=qt+Dt,Kt=o(),Yt=qt+"s",Zt="stream",Gt=Zt+"Count",zt=Zt+"Info",Qt=Zt+"Serial"+Tt,ti=Zt+"StructureVersion",ii="total",si=ii+"BytesOut",ei=ii+"Duration",ri=ii+"Samples",ni=o(),hi=o(),oi=o(),ai=o(),li=o(),ci=o(),ui=o(),Hi=o(),di=o(),fi=o(),pi=o(),yi=o(),Ii=o(),mi=o(),gi=o(),bi=o(),Mi=o(),wi=o(),Pi=Uint8Array,Ai=DataView,vi="reserved",Ji="bad",Ui="free",Ci="none",xi="16bit CRC",Si=(t,i,s)=>{for(let e=0;e<t[z];e++){let r=i(e);for(let t=8;t>0;t--)r=s(r);t[e]=r}return t},ki=Si(new Pi(256),(t=>t),(t=>128&t?7^t<<1:t<<1)),Oi=[Si(new Uint16Array(256),(t=>t<<8),(t=>t<<1^(32768&t?32773:0)))],Fi=[Si(new Uint32Array(256),(t=>t),(t=>t>>>1^3988292384*(1&t)))];for(let ve=0;ve<15;ve++){Oi.push(new Uint16Array(256)),Fi.push(new Uint32Array(256));for(let t=0;t<=255;t++)Oi[ve+1][t]=Oi[0][Oi[ve][t]>>>8]^Oi[ve][t]<<8,Fi[ve+1][t]=Fi[ve][t]>>>8^Fi[0][255&Fi[ve][t]]}const Ti=t=>{const i=t[z],s=i-16;let e=0,r=0;for(;r<=s;)e=Fi[15][255&(t[r++]^e)]^Fi[14][255&(t[r++]^e>>>8)]^Fi[13][255&(t[r++]^e>>>16)]^Fi[12][t[r++]^e>>>24]^Fi[11][t[r++]]^Fi[10][t[r++]]^Fi[9][t[r++]]^Fi[8][t[r++]]^Fi[7][t[r++]]^Fi[6][t[r++]]^Fi[5][t[r++]]^Fi[4][t[r++]]^Fi[3][t[r++]]^Fi[2][t[r++]]^Fi[1][t[r++]]^Fi[0][t[r++]];for(;r!==i;)e=Fi[0][255&(e^t[r++])]^e>>>8;return~e},Vi=(...t)=>{const i=new Pi(t.reduce(((t,i)=>t+i[z]),0));return t.reduce(((t,s)=>(i.set(s,t),t+s[z])),0),i},Li=t=>String.fromCharCode(...t),$i=[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],Di=t=>$i[15&t]<<4|$i[t>>4];class Bi{constructor(t){this.K=t,this.Y=8*t[z]}set position(t){this.Y=t}get position(){return this.Y}read(t){const i=Math.floor(this.Y/8),s=this.Y%8;return this.Y-=t,(Di(this.K[i-1])<<8)+Di(this.K[i])>>7-s&255}}class Wi{constructor(t,i){this.Z=t,this.G=i,this[gi]()}[bi](){this.tt=!0}[gi](){this.it=new Map,this.st=new WeakMap,this.et=!1,this.rt=!1,this.nt=null,this.tt=!1}[mi](t,i){if(this.G){this.nt!==t&&(this.nt=t,this.rt=!0);const s=this.st.get(this.it.get(this.ht));this.rt&&s&&this.G({ot:t,...s},i),this.rt=!1}}[di](t){const i=this.it.get(t);return i&&this.lt(t),i}[fi](t,i,s){this.tt&&(this.et||(this.Z({...i}),this.et=!0),this.lt(t),this.it.set(t,i),this.st.set(i,s))}lt(t){this.G&&t!==this.ht&&(this.rt=!0,this.ht=t)}}const Ri=new WeakMap,_i=new WeakMap;class Ni{constructor(t,i){this.ct=t,this.it=i}*[ui](){let t;for(;;){if(t=yield*this.ut[pi](this.ct,this.it,0),t)return t;this.ct[hi](1)}}*[Hi](t){let i=yield*this[ui]();const s=_i.get(i)[z];if(t||this.ct.Ht||(yield*this.dt[di](this.ct,this.it,s)))return this.it[bi](),this.ct[hi](s),this.ct[ai](i),i;this.ct[li](`Missing ${kt} at ${s} bytes from current position.`,`Dropping current ${kt} and trying again.`),this.it[gi](),this.ct[hi](1)}}class ji{constructor(t,i){_i.set(this,{[_]:t}),this[$]=i}}class qi extends ji{static*[pi](t,i,s,e,r){const n=yield*t[di](s,e,r);if(n){const t=Ri.get(n)[Ft],e=Ri.get(n)[Yt];return new i(n,(yield*s[ni](t,r))[ct](0,t),e)}return null}constructor(t,i,s){super(t,i),this[_]=t,this[Yt]=s,this[B]=s/t[Xt]*1e3,this[Vt]=null,this[si]=null,this[ri]=null,this[ei]=null,_i.get(this)[z]=i[z]}}const Ei="unsynchronizationFlag",Xi="extendedHeaderFlag",Ki="experimentalFlag",Yi="footerPresent";class Zi{static*ft(t,i,s){const e={};let r=yield*t[ni](3,s);if(73!==r[0]||68!==r[1]||51!==r[2])return null;if(r=yield*t[ni](10,s),e[ut]=`id3v2.${r[3]}.${r[4]}`,15&r[5])return null;if(e[Ei]=!!(128&r[5]),e[Xi]=!!(64&r[5]),e[Ki]=!!(32&r[5]),e[Yi]=!!(16&r[5]),128&r[6]||128&r[7]||128&r[8]||128&r[9])return null;const n=r[6]<<21|r[7]<<14|r[8]<<7|r[9];return e[z]=10+n,new Zi(e)}constructor(t){this[ut]=t[ut],this[Ei]=t[Ei],this[Xi]=t[Xi],this[Ki]=t[Ki],this[Yi]=t[Yi],this[z]=t[z]}}class Gi{constructor(t){Ri.set(this,t),this[A]=t[A],this[v]=null,this[Ut]=t[Ut],this[vt]=t[vt],this[Xt]=t[Xt]}}const zi={0:[Ui,Ui,Ui,Ui,Ui],16:[32,32,32,32,8],240:[Ji,Ji,Ji,Ji,Ji]},Qi=(t,i,s)=>8*((t+s)%i+i)*(1<<(t+s)/i)-8*i*(i/8|0);for(let ve=2;ve<15;ve++)zi[ve<<4]=[32*ve,Qi(ve,4,0),Qi(ve,4,-1),Qi(ve,8,4),Qi(ve,8,0)];const ts="bands ",is=" to 31",ss={0:ts+4+is,16:ts+8+is,32:ts+12+is,48:ts+16+is},es="bitrateIndex",rs="v2",ns="v1",hs="Intensity stereo ",os=", MS stereo ",as="on",ls="off",cs={0:hs+ls+os+ls,16:hs+as+os+ls,32:hs+ls+os+as,48:hs+as+os+as},us={0:{[D]:vi},2:{[D]:"Layer III",[Lt]:1,[tt]:cs,[ns]:{[es]:2,[Yt]:1152},[rs]:{[es]:4,[Yt]:576}},4:{[D]:"Layer II",[Lt]:1,[tt]:ss,[Yt]:1152,[ns]:{[es]:1},[rs]:{[es]:4}},6:{[D]:"Layer I",[Lt]:4,[tt]:ss,[Yt]:384,[ns]:{[es]:0},[rs]:{[es]:3}}},Hs="MPEG Version ",ds="ISO/IEC ",fs={0:{[D]:Hs+"2.5 (later extension of MPEG 2)",[G]:rs,[Xt]:{0:11025,4:12e3,8:M,12:vi}},8:{[D]:vi},16:{[D]:`${Hs}2 (${ds}13818-3)`,[G]:rs,[Xt]:{0:g,4:m,8:b,12:vi}},24:{[D]:`${Hs}1 (${ds}11172-3)`,[G]:ns,[Xt]:{0:y,4:p,8:I,12:vi}},length:z},ps={0:xi,1:Ci},ys={0:Ci,1:"50/15 ms",2:vi,3:"CCIT J.17"},Is={0:{[Ut]:2,[D]:u},64:{[Ut]:2,[D]:"joint "+u},128:{[Ut]:2,[D]:"dual channel"},192:{[Ut]:1,[D]:c}};class ms extends Gi{static*[di](t,i,s){const e={},r=yield*Zi.ft(t,i,s);r&&(yield*t[ni](r[z],s),t[hi](r[z]));const n=yield*t[ni](4,s),h=Li(n[ct](0,4)),o=i[di](h);if(o)return new ms(o);if(255!==n[0]||n[1]<224)return null;const a=fs[24&n[1]];if(a[D]===vi)return null;const l=6&n[1];if(us[l][D]===vi)return null;const c={...us[l],...us[l][a[G]]};if(e[st]=a[D],e[G]=c[D],e[Yt]=c[Yt],e[at]=ps[1&n[1]],e[z]=4,e[v]=zi[240&n[2]][c[es]],e[v]===Ji)return null;if(e[Xt]=a[Xt][12&n[2]],e[Xt]===vi)return null;if(e[Lt]=2&n[2]&&c[Lt],e[Y]=!!(1&n[2]),e[Ft]=Math.floor(125*e[v]*e[Yt]/e[Xt]+e[Lt]),!e[Ft])return null;const u=192&n[3];if(e[vt]=Is[u][D],e[Ut]=Is[u][Ut],e[tt]=c[tt][48&n[3]],e[j]=!!(8&n[3]),e[K]=!!(4&n[3]),e[W]=ys[3&n[3]],e[W]===vi)return null;e[A]=16;{const{length:t,frameLength:s,yt:r,...n}=e;i[fi](h,e,n)}return new ms(e)}constructor(t){super(t),this[v]=t[v],this[W]=t[W],this[Lt]=t[Lt],this[j]=t[j],this[K]=t[K],this[Y]=t[Y],this[G]=t[G],this[tt]=t[tt],this[st]=t[st],this[at]=t[at]}}class gs extends qi{static*[pi](t,i,s){return yield*super[pi](ms,gs,t,i,s)}constructor(t,i,s){super(t,i,s)}}class bs extends Ni{constructor(t,i,s){super(t,i),this.ut=gs,this.dt=ms,s(this[k])}get[k](){return it}*[yi](){return yield*this[Hi]()}}const Ms={0:"MPEG-4",8:"MPEG-2"},ws={0:"valid",2:Ji,4:Ji,6:Ji},Ps={0:xi,1:Ci},As={0:"AAC Main",64:"AAC LC (Low Complexity)",128:"AAC SSR (Scalable Sample Rate)",192:"AAC LTP (Long Term Prediction)"},vs={0:96e3,4:88200,8:64e3,12:p,16:y,20:I,24:m,28:g,32:b,36:12e3,40:11025,44:M,48:7350,52:vi,56:vi,60:"frequency is written explicitly"},Js={0:{[Ut]:0,[D]:"Defined in AOT Specific Config"},64:{[Ut]:1,[D]:c},128:{[Ut]:2,[D]:d(2,a[0][0])},192:{[Ut]:3,[D]:d(3,a[1][3])},256:{[Ut]:4,[D]:d(4,a[1][3],a[3][4])},320:{[Ut]:5,[D]:d(5,a[1][3],a[3][0])},384:{[Ut]:6,[D]:d(6,a[1][3],a[3][0],l)},448:{[Ut]:8,[D]:d(8,a[1][3],a[2][0],a[3][0],l)}};class Us extends Gi{static*[di](t,i,s){const e={},r=yield*t[ni](7,s),n=Li([r[0],r[1],r[2],252&r[3]|3&r[6]]),h=i[di](n);if(h)Object.assign(e,h);else{if(255!==r[0]||r[1]<240)return null;if(e[st]=Ms[8&r[1]],e[G]=ws[6&r[1]],e[G]===Ji)return null;const t=1&r[1];e[at]=Ps[t],e[z]=t?7:9,e[ot]=192&r[2],e[Kt]=60&r[2];const s=2&r[2];if(e[ht]=As[e[ot]],e[Xt]=vs[e[Kt]],e[Xt]===vi)return null;e[Y]=!!s,e[Jt]=448&(r[2]<<8|r[3]),e[vt]=Js[e[Jt]][D],e[Ut]=Js[e[Jt]][Ut],e[K]=!!(32&r[3]),e[E]=!!(8&r[3]),e[xt]=!!(8&r[3]),e[St]=!!(4&r[3]),e[A]=16,e[Yt]=1024,e[et]=3&r[6];{const{length:t,It:s,gt:r,bt:h,frameLength:o,yt:a,Mt:l,...c}=e;i[fi](n,e,c)}}if(e[Ft]=8191&(r[3]<<11|r[4]<<3|r[5]>>5),!e[Ft])return null;const o=2047&(r[5]<<6|r[6]>>2);return e[S]=2047===o?"VBR":o,new Us(e)}constructor(t){super(t),this[xt]=t[xt],this[St]=t[St],this[S]=t[S],this[E]=t[E],this[K]=t[K],this[Y]=t[Y],this[G]=t[G],this[z]=t[z],this[st]=t[st],this[et]=t[et],this[ht]=t[ht],this[at]=t[at]}get wt(){const t=Ri.get(this),i=t[ot]+64<<5|t[Kt]<<5|t[Jt]>>3,s=new Pi(2);return new Ai(s[x]).setUint16(0,i,!1),s}}class Cs extends qi{static*[pi](t,i,s){return yield*super[pi](Us,Cs,t,i,s)}constructor(t,i,s){super(t,i,s)}}class xs extends Ni{constructor(t,i,s){super(t,i),this.ut=Cs,this.dt=Us,s(this[k])}get[k](){return"aac"}*[yi](){return yield*this[Hi]()}}class Ss extends qi{static Pt(t){return(t[t[z]-2]<<8)+t[t[z]-1]}static[wi](t){const i=Ss.Pt(t),s=(t=>{const i=t[z],s=i-16;let e=0,r=0;for(;r<=s;)e^=t[r++]<<8|t[r++],e=Oi[15][e>>8]^Oi[14][255&e]^Oi[13][t[r++]]^Oi[12][t[r++]]^Oi[11][t[r++]]^Oi[10][t[r++]]^Oi[9][t[r++]]^Oi[8][t[r++]]^Oi[7][t[r++]]^Oi[6][t[r++]]^Oi[5][t[r++]]^Oi[4][t[r++]]^Oi[3][t[r++]]^Oi[2][t[r++]]^Oi[1][t[r++]]^Oi[0][t[r++]];for(;r!==i;)e=(255&e)<<8^Oi[0][e>>8^t[r++]];return e})(t[ct](0,-2));return i===s}constructor(t,i,s){i[zt]=s,i[V]=Ss.Pt(t),super(i,t,Ri.get(i)[Yt])}}const ks="get from STREAMINFO metadata block",Os={0:"Fixed",1:"Variable"},Fs={0:vi,16:192};for(let ve=2;ve<16;ve++)Fs[ve<<4]=ve<6?576*2**(ve-2):2**ve;const Ts={0:ks,1:88200,2:176400,3:192e3,4:M,5:b,6:g,7:m,8:I,9:y,10:p,11:96e3,15:Ji},Vs={0:{[Ut]:1,[D]:c},16:{[Ut]:2,[D]:d(2,a[0][0])},32:{[Ut]:3,[D]:d(3,a[0][1])},48:{[Ut]:4,[D]:d(4,a[1][0],a[3][0])},64:{[Ut]:5,[D]:d(5,a[1][1],a[3][0])},80:{[Ut]:6,[D]:d(6,a[1][1],l,a[3][0])},96:{[Ut]:7,[D]:d(7,a[1][1],l,a[3][4],a[2][0])},112:{[Ut]:8,[D]:d(8,a[1][1],l,a[3][0],a[2][0])},128:{[Ut]:2,[D]:u+" (left, diff)"},144:{[Ut]:2,[D]:u+" (diff, right)"},160:{[Ut]:2,[D]:u+" (avg, diff)"},176:vi,192:vi,208:vi,224:vi,240:vi},Ls={0:ks,2:8,4:12,6:vi,8:16,10:20,12:24,14:vi};class $s extends Gi{static At(t){if(t[0]>254)return null;if(t[0]<128)return{value:t[0],length:1};let i=1;for(let n=64;n&t[0];n>>=1)i++;let s=i-1,e=0,r=0;for(;s>0;r+=6,s--){if(128!=(192&t[s]))return null;e|=(63&t[s])<<r}return e|=(t[s]&127>>i)<<r,{value:e,length:i}}static[Mi](t,i){const s={*[ni](){return t}};return $s[di](s,i,0).next().value}static*[di](t,i,s){let e=yield*t[ni](6,s);if(255!==e[0]||248!==e[1]&&249!==e[1])return null;const r={},n=Li(e[ct](0,4)),h=i[di](n);if(h)Object.assign(r,h);else{if(r[It]=1&e[1],r[yt]=Os[r[It]],r[Mt]=240&e[2],r[Kt]=15&e[2],r[mt]=Fs[r[Mt]],r[mt]===vi)return null;if(r[Xt]=Ts[r[Kt]],r[Xt]===Ji)return null;if(1&e[3])return null;const t=Vs[240&e[3]];if(t===vi)return null;if(r[Ut]=t[Ut],r[vt]=t[D],r[A]=Ls[14&e[3]],r[A]===vi)return null}r[z]=5,e=yield*t[ni](r[z]+8,s);const o=$s.At(e[ct](4));if(!o)return null;if(r[It]?r[Et]=o.value:r[Vt]=o.value,r[z]+=o[z],96===r[Mt]?(e[z]<r[z]&&(e=yield*t[ni](r[z],s)),r[mt]=e[r[z]-1]+1,r[z]+=1):112===r[Mt]&&(e[z]<r[z]&&(e=yield*t[ni](r[z],s)),r[mt]=(e[r[z]-1]<<8)+e[r[z]]+1,r[z]+=2),r[Yt]=r[mt],12===r[Kt]?(e[z]<r[z]&&(e=yield*t[ni](r[z],s)),r[Xt]=1e3*e[r[z]-1],r[z]+=1):13===r[Kt]?(e[z]<r[z]&&(e=yield*t[ni](r[z],s)),r[Xt]=(e[r[z]-1]<<8)+e[r[z]],r[z]+=2):14===r[Kt]&&(e[z]<r[z]&&(e=yield*t[ni](r[z],s)),r[Xt]=10*((e[r[z]-1]<<8)+e[r[z]]),r[z]+=2),e[z]<r[z]&&(e=yield*t[ni](r[z],s)),r[T]=e[r[z]-1],r[T]!==(t=>{let i=0;const s=t[z];for(let e=0;e!==s;e++)i=ki[i^t[e]];return i})(e[ct](0,r[z]-1)))return null;if(!h){const{vt:t,frameNumber:s,Jt:e,yt:h,bt:o,Ut:a,Ct:l,length:c,...u}=r;i[fi](n,r,u)}return new $s(r)}constructor(t){super(t),this[V]=null,this[yt]=t[yt],this[mt]=t[mt],this[Vt]=t[Vt],this[Et]=t[Et],this[zt]=null}}class Ds extends Ni{constructor(t,i,s){super(t,i),this.ut=Ss,this.dt=$s,s(this[k])}get[k](){return"flac"}*xt(t){const i=yield*this.ct[ni](2,0),s=i[z]-2;for(;t<s;){if(255===i[t]){const s=i[t+1];if(248===s||249===s)break;255!==s&&t++}t++}return t}*[yi](){for(;;){const t=yield*$s[di](this.ct,this.it,0);if(t){let i=Ri.get(t)[z]+2;for(;i<=524288;){if(this.ct.Ht||(yield*$s[di](this.ct,this.it,i))){let s=yield*this.ct[ni](i);if(this.ct.Ht||(s=s[ct](0,i)),Ss[wi](s)){const e=new Ss(s,t);return this.it[bi](),this.ct[hi](i),this.ct[ai](e),e}}i=yield*this.xt(i+1)}this.ct[li](`Unable to sync FLAC frame after searching ${i} bytes.`),this.ct[hi](i)}else this.ct[hi](yield*this.xt(1))}}[Ii](t){return 0===t[jt]?(this.it[bi](),this.St=t[$][ct](13)):1===t[jt]||(t[O]=_i.get(t)[lt].map((t=>{const i=$s[Mi](t,this.it);if(i)return new Ss(t,i,this.St);this.ct[li]("Failed to parse Ogg FLAC frame","Skipping invalid FLAC frame")})).filter((t=>!!t))),t}}class Bs{static*[di](t,i,s){const e={};let r=yield*t[ni](28,s);if(79!==r[0]||103!==r[1]||103!==r[2]||83!==r[3])return null;if(e[ti]=r[4],248&r[5])return null;e[X]=!!(4&r[5]),e[q]=!!(2&r[5]),e[N]=!!(1&r[5]);const n=new Ai(Pi.from(r[ct](0,28))[x]);e[w]=(t=>{try{return t.getBigInt64(6,!0)}catch{const i=128&t.getUint8(13)?-1:1;let s=t.getUint32(6,!0),e=t.getUint32(10,!0);return-1===i&&(s=1+~s,e=1+~e),e>1048575&&console.warn("This platform does not support BigInt"),i*(s+e*2**32)}})(n),e[Qt]=n.getInt32(14,!0),e[jt]=n.getInt32(18,!0),e[Rt]=n.getInt32(22,!0);const h=r[26];e[z]=h+27,r=yield*t[ni](e[z],s),e[Ft]=0,e[Nt]=[],e[_t]=Pi.from(r[ct](27,e[z]));for(let o=0,a=0;o<h;o++){const t=e[_t][o];e[Ft]+=t,a+=t,255===t&&o!==h-1||(e[Nt].push(a),a=0)}return new Bs(e)}constructor(t){Ri.set(this,t),this[w]=t[w],this[N]=t[N],this[q]=t[q],this[X]=t[X],this[Nt]=t[Nt],this[jt]=t[jt],this[Rt]=t[Rt],this[Qt]=t[Qt]}}class Ws extends ji{static*[pi](t,i,s){const e=yield*Bs[di](t,i,s);if(e){const i=Ri.get(e)[Ft],s=Ri.get(e)[z],r=s+i,n=(yield*t[ni](r,0))[ct](0,r),h=n[ct](s,r);return new Ws(e,h,n)}return null}constructor(t,i,s){super(t,i),_i.get(this)[z]=s[z],this[O]=[],this.kt=s,this[w]=t[w],this[L]=t[Rt],this[B]=0,this[N]=t[N],this[q]=t[q],this[X]=t[X],this[jt]=t[jt],this[Yt]=0,this[Qt]=t[Qt]}}class Rs extends qi{constructor(t,i,s){super(i,t,s)}}const _s={0:f.slice(0,2),1:f},Ns="SILK-only",js="CELT-only",qs="Hybrid",Es="narrowband",Xs="medium-band",Ks="wideband",Ys="super-wideband",Zs="fullband",Gs={0:{[Q]:Ns,[P]:Es,[$t]:10},8:{[Q]:Ns,[P]:Es,[$t]:20},16:{[Q]:Ns,[P]:Es,[$t]:40},24:{[Q]:Ns,[P]:Es,[$t]:60},32:{[Q]:Ns,[P]:Xs,[$t]:10},40:{[Q]:Ns,[P]:Xs,[$t]:20},48:{[Q]:Ns,[P]:Xs,[$t]:40},56:{[Q]:Ns,[P]:Xs,[$t]:60},64:{[Q]:Ns,[P]:Ks,[$t]:10},72:{[Q]:Ns,[P]:Ks,[$t]:20},80:{[Q]:Ns,[P]:Ks,[$t]:40},88:{[Q]:Ns,[P]:Ks,[$t]:60},96:{[Q]:qs,[P]:Ys,[$t]:10},104:{[Q]:qs,[P]:Ys,[$t]:20},112:{[Q]:qs,[P]:Zs,[$t]:10},120:{[Q]:qs,[P]:Zs,[$t]:20},128:{[Q]:js,[P]:Es,[$t]:2.5},136:{[Q]:js,[P]:Es,[$t]:5},144:{[Q]:js,[P]:Es,[$t]:10},152:{[Q]:js,[P]:Es,[$t]:20},160:{[Q]:js,[P]:Ks,[$t]:2.5},168:{[Q]:js,[P]:Ks,[$t]:5},176:{[Q]:js,[P]:Ks,[$t]:10},184:{[Q]:js,[P]:Ks,[$t]:20},192:{[Q]:js,[P]:Ys,[$t]:2.5},200:{[Q]:js,[P]:Ys,[$t]:5},208:{[Q]:js,[P]:Ys,[$t]:10},216:{[Q]:js,[P]:Ys,[$t]:20},224:{[Q]:js,[P]:Zs,[$t]:2.5},232:{[Q]:js,[P]:Zs,[$t]:5},240:{[Q]:js,[P]:Zs,[$t]:10},248:{[Q]:js,[P]:Zs,[$t]:20}};class zs extends Gi{static[Mi](t,i,s){const e={};if(e[Ut]=t[9],e[Pt]=t[18],e[z]=0!==e[Pt]?21+e[Ut]:19,t[z]<e[z])throw Error("Out of data while inside an Ogg Page");const r=3&i[0],n=3===r?2:1,h=Li(t[ct](0,e[z]))+Li(i[ct](0,n)),o=s[di](h);if(o)return new zs(o);if("OpusHead"!==h.substr(0,8))return null;if(1!==t[8])return null;e[$]=Pi.from(t[ct](0,e[z]));const a=new Ai(e[$][x]);if(e[A]=16,e[nt]=a.getUint16(10,!0),e[Bt]=a.getUint32(12,!0),e[Xt]=p,e[rt]=a.getInt16(16,!0),e[Pt]in _s&&(e[vt]=_s[e[Pt]][e[Ut]-1],!e[vt]))return null;0!==e[Pt]&&(e[Gt]=t[19],e[F]=t[20],e[At]=[...t[ct](21,e[Ut]+21)]);const l=Gs[248&i[0]];switch(e[Q]=l[Q],e[P]=l[P],e[$t]=l[$t],r){case 0:e[Ot]=1;break;case 1:case 2:e[Ot]=2;break;case 3:e[Z]=!!(128&i[1]),e[R]=!!(64&i[1]),e[Ot]=63&i[1];break;default:return null}{const{length:t,data:i,Ot:r,...n}=e;s[fi](h,e,n)}return new zs(e)}constructor(t){super(t),this[$]=t[$],this[P]=t[P],this[Pt]=t[Pt],this[At]=t[At],this[F]=t[F],this[Ot]=t[Ot],this[$t]=t[$t],this[R]=t[R],this[Bt]=t[Bt],this[Z]=t[Z],this[Q]=t[Q],this[rt]=t[rt],this[nt]=t[nt],this[Gt]=t[Gt]}}class Qs extends Ni{constructor(t,i,s){super(t,i),this.ut=Rs,this.dt=zs,s(this[k]),this.Ft=null,this.Tt=null}get[k](){return"opus"}[Ii](t){return 0===t[jt]?(this.it[bi](),this.Ft=t[$]):1===t[jt]||(t[O]=_i.get(t)[lt].map((t=>{const i=zs[Mi](this.Ft,t,this.it);if(i){null===this.Tt&&(this.Tt=i[nt]);let s=i[$t]*i[Ot]/1e3*i[Xt];return this.Tt>0&&(this.Tt-=s,s=this.Tt<0?-this.Tt:0),new Rs(t,i,s)}this.ct[ci]("Failed to parse Ogg Opus Header","Not a valid Ogg Opus file")}))),t}}class te extends qi{constructor(t,i,s){super(i,t,s)}}const ie={};for(let ve=0;ve<8;ve++)ie[ve+6]=2**(6+ve);class se extends Gi{static[Mi](t,i,s,e){if(t[z]<30)throw Error("Out of data while inside an Ogg Page");const r=Li(t[ct](0,30)),n=i[di](r);if(n)return new se(n);const h={[z]:30};if("vorbis"!==r.substr(0,7))return null;h[$]=Pi.from(t[ct](0,30));const o=new Ai(h[$][x]);if(h[ut]=o.getUint32(7,!0),0!==h[ut])return null;if(h[Ut]=t[11],h[vt]=f[h[Ut]-1]||"application defined",h[Xt]=o.getUint32(12,!0),h[J]=o.getInt32(16,!0),h[C]=o.getInt32(20,!0),h[U]=o.getInt32(24,!0),h[bt]=ie[(240&t[28])>>4],h[gt]=ie[15&t[28]],h[gt]>h[bt])return null;if(1!==t[29])return null;h[A]=32,h[ft]=e,h[dt]=s;{const{length:t,data:s,version:e,Vt:n,Lt:o,...a}=h;i[fi](r,h,a)}return new se(h)}constructor(t){super(t),this[J]=t[J],this[U]=t[U],this[C]=t[C],this[gt]=t[gt],this[bt]=t[bt],this[$]=t[$],this[dt]=t[dt],this[ft]=t[ft]}}class ee extends Ni{constructor(t,i,s){super(t,i),this.ut=te,s(this[k]),this.Ft=null,this.$t=!1,this.Dt=null}get[k](){return Ht}[Ii](t){t[O]=[];for(const i of _i.get(t)[lt])if(1===i[0])this.it[bi](),this.Ft=t[$],this.$t=!1;else if(3===i[0])this.Bt=i;else if(5===i[0])this.Wt=i,this.Rt=this._t(i),this.$t=!0;else if(this.$t){const s=se[Mi](this.Ft,this.it,this.Bt,this.Wt);s?t[O].push(new te(i,s,this.Nt(i,s))):this.ct[logError]("Failed to parse Ogg Vorbis Header","Not a valid Ogg Vorbis file")}return t}Nt(t,i){const s=this.Rt.jt[t[0]>>1&this.Rt.mask]?i[bt]:i[gt],e=null===this.Dt?0:(this.Dt+s)/4;return this.Dt=s,e}_t(t){const i=new Bi(t),s={count:0,jt:[]};for(;1&~i.read(1););let e;for(;s.count<64&&i.position>0;){Di(i.read(8));let t=0;for(;0===i.read(8)&&t++<3;);if(4!==t){1+((126&Di(e))>>1)!==s.count&&this.ct[li]("vorbis derived mode count did not match actual mode count");break}e=i.read(7),s.jt.unshift(1&e),i.position+=6,s.count++}return s.mask=(1<<Math.log2(s.count))-1,s}}class re{constructor(t,i,s){this.ct=t,this.it=i,this.qt=s,this.Et=new Pi,this.Xt=null,this.Kt=null,this.Yt=null}get[k](){return this.Xt||""}Zt(t,i){this.Xt!==t&&(this.it[gi](),this.Gt=new i(this.ct,this.it,this.qt),this.Xt=t)}zt({data:t}){const i=Li(t[ct](0,8));switch(i){case"fishead\0":return!1;case"OpusHead":return this.Zt("opus",Qs),!0;case/^\x7fFLAC/.test(i)&&i:return this.Zt("flac",Ds),!0;case/^\x01vorbis/.test(i)&&i:return this.Zt(Ht,ee),!0;default:return!1}}Qt(t){t[jt]!==this.ti+1&&this.ti>1&&t[jt]>1&&this.ct[li]("Unexpected gap in Ogg Page Sequence Number.",`Expected: ${this.ti+1}, Got: ${t[jt]}`),this.ti=t[jt]}ii(t){null===this.Kt&&(this.ti=t[jt],this.Kt=this.zt(t)),this.Qt(t);const i=_i.get(t),s=Ri.get(i[_]);let e=0;if(i[lt]=s[Nt].map((i=>t[$][ct](e,e+=i))),this.Et[z]&&(i[lt][0]=Vi(this.Et,i[lt][0]),this.Et=new Pi),255===s[_t][s[_t][z]-1]&&(this.Et=Vi(this.Et,i[lt].pop())),null!==this.Yt&&(t[Yt]=Number(t[w]-this.Yt)),this.Yt=t[w],this.Kt){const i=this.Gt[Ii](t);return this.ct[ai](i),i}return t}}class ne extends Ni{constructor(t,i,s){super(t,i),this.qt=s,this.ut=Ws,this.dt=Bs,this.si=new Map,this.ei=null}get[k](){const t=this.si.get(this.ei);return t?t.ri:""}*[yi](){const t=yield*this[Hi](!0);this.ei=t[Qt];let i=this.si.get(this.ei);return i||(i=new re(this.ct,this.it,this.qt),this.si.set(this.ei,i)),t[X]&&this.si.delete(this.ei),i.ii(t)}}const he=()=>{};class oe{constructor(t,{ni:i,hi:s,oi:e,ai:r=!1,li:n=!0}={}){this.ci=t,this.qt=i||he,this.Z=s||he,this.G=e,this.ui=r,this.Hi=n?Ti:he,this[gi]()}get[k](){return this.Gt?this.Gt[k]:""}[gi](){this.it=new Wi(this.Z,this.G),this.di=this.fi(),this.di.next()}*flush(){this.Ht=!0;for(let t=this.di.next();t.value;t=this.di.next())yield t.value;this.Ht=!1,this[gi]()}*pi(t){for(let i=this.di.next(t);i.value;i=this.di.next())yield i.value}parseAll(t){return[...this.pi(t),...this.flush()]}*fi(){if(this.ci.match(/aac/))this.Gt=new xs(this,this.it,this.qt);else if(this.ci.match(/mpeg/))this.Gt=new bs(this,this.it,this.qt);else if(this.ci.match(/flac/))this.Gt=new Ds(this,this.it,this.qt);else{if(!this.ci.match(/ogg/))throw Error("Unsupported Codec "+mimeType);this.Gt=new ne(this,this.it,this.qt)}for(this.yi=0,this.Ii=0,this.mi=0,this.gi=0,this.bi=0,this.Mi=void 0,this.wi=new Uint8Array(0);;){const t=yield*this.Gt[yi]();t&&(yield t)}}*[ni](t=0,i=0){let s;for(;this.wi[z]<=t+i;){if(s=yield,this.Ht)return this.wi[ct](i);s&&(this.mi+=s[z],this.wi=Vi(this.wi,s))}return this.wi[ct](i)}[hi](t){this.Ii+=t,this.wi=this.wi[ct](t)}[oi](t){this.Mi=t[_][Xt],t[_][v]=t[B]>0?8*Math.round(t[$][z]/t[B]):0,t[Vt]=this.yi++,t[si]=this.gi,t[ri]=this.bi,t[ei]=this.bi/this.Mi*1e3,t[L]=this.Hi(t[$]),this.it[mi](t[_][v],t[ei]),this.gi+=t[$][z],this.bi+=t[Yt]}[ai](t){if(t[O]){if(t[X]){let i=t[Yt];t[O].forEach((t=>{const s=t[Yt];i<s&&(t[Yt]=i>0?i:0,t[B]=t[Yt]/t[_][Xt]*1e3),i-=s,this[oi](t)}))}else t[Yt]=0,t[O].forEach((i=>{t[Yt]+=i[Yt],this[oi](i)}));t[B]=t[Yt]/this.Mi*1e3||0,t[ri]=this.bi,t[ei]=this.bi/this.Mi*1e3||0,t[si]=this.gi}else this[oi](t)}Pi(t,i){if(this.ui){const s=[`${k}: ${this[k]}`,"inputMimeType: "+this.ci,"readPosition: "+this.Ii,"totalBytesIn: "+this.mi,`${si}: ${this.gi}`],e=Math.max(...s.map((t=>t[z])));i.push("--stats--"+"-".repeat(e-9),...s,"-".repeat(e)),t("codec-parser",i.reduce(((t,i)=>t+"\n "+i),""))}}[li](...t){this.Pi(console.warn,t)}[ci](...t){this.Pi(console.error,t)}}const ae=O,le=$,ce=X,ue=ri;function He(t){var i,s,e,r=t=>console.log(t),n=t=>console.error(t);function h(){}for(var o={},a=[null,[],[]],l=new TextDecoder,c=(t,i)=>{var s=a[t];0===i||10===i?((1===t?r:n)(((t,i=0,s=NaN)=>{for(var e=i+s,r=i;t[r]&&!(r>=e);)++r;return l.decode(t.buffer?t.subarray(i,r):new Uint8Array(t.slice(i,r)))})(s)),s.length=0):s.push(i)},u=new Uint8Array(123),H=25;H>=0;--H)u[48+H]=52+H,u[65+H]=H,u[97+H]=26+H;u[43]=62,u[47]=63;var d,f,p,y,I,m,g={c:()=>(()=>{throw""})(),b(){},d(t,i){if(o[t]&&(clearTimeout(o[t].id),delete o[t]),!i)return 0;var s=setTimeout((()=>{delete o[t],m(t,performance.now())}),i);return o[t]={id:s,Ai:i},0},e:t=>(i.length,!1),g:t=>52,i:(t,i,s,e)=>52,f:(t,i,s,e)=>70,h(t,e,r,n){for(var h=0,o=0;o<r;o++){var a=s[e>>2],l=s[e+4>>2];e+=8;for(var u=0;u<l;u++)c(t,i[a+u]);h+=l}return s[n>>2]=h,0},a(t){throw`exit(${t})`}};He.I||Object.defineProperty(He,"I",{get:()=>String.raw`dynEncode0179c5946f1dÄ>º}ÊÄ%®z¦IGUn5Or/ñ)÷6yú=}{ üÎ
wûø@¸îqÐdµ»ôæ¾Xf+gúÕe2ëþÞ5=}\Î>ä=Muj ðÎX¼¬·¹nuí¸3_«ßLÏýU¯= C?hXi°$²OƬ´KeSäÔkf
®RJþÊo<̤@8@uw÷©«ýºGßßµm¨7¬¬¬¬¬¬qNЮ´S.^GïPíðNpήæîTVþ§¨Qísüee+.ÜèFfÖZç_¿og_soß06 RÞÑÜfÌÔ%Â/eVéw= ¨Éî6ê@U/'fÈ8vpçPûl¤g:çUf;RÝbS¤Eû8ÖHÕ·&UÞÀ÷ØY-+aRÑÈçAØ%[¾"÷
<=MÿQÆwéÚs28aÒ«vF¶Ìþ¹RQÄD¤]È&§,Bm¿ì 2£ 5Ñ©ªM= ôÌîAêrÚmI*=MÌ= !©oMc¾B Îïû$VÅPÆ= ¸À5JvÝ2¼V7= A3=}»KGvûÚuZaÆ ÇgdRlÃÏÛü"+ÝÃÄ^[ªÒ}
O»LÖíb{þB\ÑÀ¡|æ -ʪÇo£fñ®ªµ£/APãç«/åJ'2Å/õ(,rb9
z!¥rCêÆª=}ðõCg¨¬ç:þ
<
AÖº²Þ§)êÔÐb¢M%¤ñMåÒ{|3ºàú§4ÖÿÖÀ<¶iyÒ)C&y%ÂàE÷fhe-E8À´5ð ÑBh1dGv¶ì×3ù>ýï ïDfh©E$¨q2«s,Z§OY|pø2!ç¡ÆÅjËÁ8uìw<|+åòÇT\ÆÒ·1(*ÍÍ:¦B£Xz%üí¸uÒYh7Q$ûÓþÔÂ~õ"RàýöxUx óaÇ&?"ÞlPzEácw*Ñ&UüBÊêp¼yµ5?!Ôk¾=MÚ0lvaô²ÒÀJ7PEq~𹾿~s¼£ÿ&¤ÀÌDïvÒ±nIº¨þo
â&¤gðJ)CUø"¥{'¥DÀq8i0¶7Ûá]»G@7P,Ü}iÏǶ*=MXúªÄ;Ë4Òç¿23¸Y£+Q&² _O¥.Ùó7Ø·O´@ÀGnÅcܰçb%6¨c89 e+éôì+àRÄ= 'Ù®³tú#sJ¡)¬kF?ßÊ ÈV¢Û/5p}ÞDÀ÷h§¨±jAè´ÀÕÁvë\J^[=}ª$Æ~DüÎf sþÎÊ ¯.óeQ*¶?©»û3+´M-Í$3dV%}rö\£q_Z[U&ÌJûDaÃ=}=M
¸¯KÌaQy¯BnãgSMÃÏbPlÿõräv<ù%ôo !ÂoêÛµeÒ\???|
3?V'@J*ÆíåHíü¿?Õe°<áZ6¨ eÑæ²sîàV¯]4¿P¨N²Òëî幸Ök𮳦¥oæßB.´æÀHn&ãcæs|J<5JJóM²J¹.ÐbÍáÝïºÀT= /ÓEáJP8Ô.Ï-K/¿?KYÙm¼»Û ºUF¸I(¾~9"'Ù0|ÏÝD(è-ü¥ø~÷»Ú[= Oó[^ó[îÉíÜòay c-s6|T2^ë+ágOMJ¦ÐÌ"gÿ0ðÑ,<·oÄ([±ðhüÚmá[ÿ·l µPNâLöQ$òçéUi1¨(wÀÚdöé±ì®~çiUi¨·sÙ£|
|çä=MüQ KÅU=}¢ zjePÿ«
®ÑXtBdØþýÛ\ÿ¬tS%é馲ZiB¤§õè×ü¼Ùù4ÒU¥)°Ô¡[MF@Rê£Çµ_4¨e
Ô£º:j|híÚA¸qî¿JA?j5= 6j,C,ÂquâUÓÌù-°Ì í$±y,®)h¶\ÒÔýý3PvqÈô¨[áïoìl:pþ¥L¹/jéÔ_¼ZyÒgp%uyÊ÷YéÐ+èõch÷@ܳNyÓSËêkÆÍ×s$¤Ö¯¡gëÃl\¸õ:ïßOÉàîLcl8ip4n!2qªdªI&à'u^$ÒĺösCNLèËÉV2@!À}Ü/¾lØøsBÀ4!ÏÉ62m Hxs(É¢q3®nÐØ6eÌß½9ÿ_è×c?àq³mn° ÷ñ³Ôhdc¤XṤ¹æÏÅÄ wMjP7(Ô Ü!¸xs@MÒìSÜù{¶±ßAdòG©~ ·gèÞ6Ë= &m?UõlH7DöùÍ5GE¿©z·s´5Lgzã(6eQ ¬ÑÐU|ÆN+w=}rÄvH éï
g²XóU4F)þ,@Í*1@õA<;³50xgôèîn×ñLÜñ Çx_Ë´µh°HóD V±W¥isÜñ@Øvrså1ðõZk¤Uôöì1Æd_ªI 8p*hãºVm8óah¥Û#LÃÜ:OÌ\¢{f5xL×ÕNÏ=MÿP7_¬= ¡^Rù:ôkDCºçQÓaÕò^H\*Ê0Oe9NÛ»ý?1 èè1ÛçßÉXû7^X4(({mtØøhBGi£¹·rß{$Ïà[ÿÂE8ntb¹Va÷tUX!S&f= ÕrW9ýfêÄXvN(8ìBd5L>PÓ÷gll<É|k¥ð÷øZè¼é+OØ~%êhWlm µ¢-1Ø
GÉcÆso÷Z\'Ï¿JOQÒC:âïL·rN= ÔýzbÙr+¢Ô%
÷BÂ2þásL1QéÕeGÁàµGð8VÔJ
4üÍ~Å¿³u¶òäí¤ Ïuåvw¥X¿Ê½G×lf9<ÎÿÞ¸Ãö©?
Æ;°bÝW¥ç uXPíK0bÝW¥g-´-°baã³"bP¡ÚzEÜÅK½;â;;ÆÄ¡Z+Üj! Ï%a˧PÊót ë.ùj×8®õa°dgáiÝÆñ+.iÝeXÜIiý¯µRÓñ«ÈIiý¯µúûýÒ|òý¡û¬Iý¡ÝôNðBëí>¢*0ÈÂ÷efè+@TÍ8z¸l|Õ^vÇ\@kT°ö³µ6Áë]ø´æM'U;]Ç#øÂïÑûÆHxñâ4*JvIÔ§ï{LuÇí^EÉßó3þ×#X°+Ú©£ÚΣ
3Ñ@nû,aßÍâTT¦³Ëâ÷JF$-9rðÓí°ËbßgߣVãJVÃ6ç(Ãø3aw=MöÔµå6tZÕY´Fo§~úåJõPN=}à¼qµ²
¥¥
+§
µK#¦ïGr^N@829¡*¤Ê!ÕÂ'u¯kÖ]!ÁÈX4
öäÌÞDí]û*+ÊðÅdSõp§= ÂOø/VÚ5 ão¿gÃHÝg1
?f®èÄ¿+YÆO!.àP'^&ßÁ×¹© "ÔQMªqNåèTñÿÿ=M*àtÆHrȰRö²è¿"ò:7f£ÌÂeèT)$wþ¯ãF£XÔ³]º
=M ñH<fV6â+J®ØWÄr"áXÄ*QÔ0u¿l0ì ñÌÁeP°.ïð±jæCú¼Ûåd£N%Ø7ÖÎ8bÎ$¨ÕÀndØ.³ÖÀnÐ&·1Çcï¦hrt$-I8}¯û9Á"ùèu³õÁU
}M»= W$=M0vC£Éÿnb-6"Ym
û+Ú¿¬CÞÍ@JÜÛ©Ec¾ #RÛUÓ¿=M.1¬Fp?_ôIõLõè<°Ûw"ãc?c_'L÷¨aðìõKx#
ûì9Ë9n©HjYÛ4I髼öRªð!RJ~2´{×ÌÀÀô¬K ZíâÌ·ýÛßÛ¯ÕýªU Q«-éeÚª_.½(+}¥çªfS¦Ö4>-0ïeLVÛSoL¯0W©.M&zô¤uì¬WÖ»ÖX¥ðM+ôâzFî]Që½g ¡i&´Àºu¬2zdC~ÞgÞ#è¶î%px\Má3_Õ=}3ëL\4°×§Íz²v3cËúIäB>É@â°vx½¨ÉhùJv|Ù]î
wXÿËgí
Þá+ë51&»ÂWpÿk¢W~÷äIIJsi5²ó!"u]¾nØmIè±v¥ß'<b K]÷?È«
án§ð*Õh(ôÚzº)¢Åà&V?Å#6ä-8¢va
²³å:µÐ GÀP¡´+û¥-d>o6.øç3]p4¡ÓbÜá®Ì äèõ&u7.0å×ÑcæÑ¦"à6Õ9Þ$¡Óu=MXÏÀnêÆ(H(ô¬áâ+A¨,¼Â cCÌîGcO_»Ô
ú«ÒÛ:{L dØÙ¶äóßB'ÞŬôÖDeÎÞÅeÑ»â®Ôc8åܸxì*9ë÷N5zð$÷|E
ÛÖ/B?\z£8ê|PØjñÚUµèsbAçÉ·¶ Æ@< O´y63Ü4Qtùý= OGÍÔAhN
ÂXÛbõxGàx4EKòY¸,]ò,£PEµ¡ç2¡_3urÚh¡Ä´*E¿dãÓ¨*:´Ä vÖÇî
y3ñ°þmKV®%£Òµ0WVãÑ6ÇPn]æRÆréþP e¦Dàq8À1Øl¿{+lqà)B£f3W0n/]Jê§xï¦÷ú~BLïNÎØ°þ¯ êa°Àã÷ÃÁ@[Müj<